Lines Matching full:reassembly

33 static struct net_ipv4_reassembly reassembly[CONFIG_NET_IPV4_FRAGMENT_MAX_COUNT];  variable
41 if (k_work_delayable_remaining_get(&reassembly[i].timer) && in reassembly_get()
42 reassembly[i].id == id && in reassembly_get()
43 net_ipv4_addr_cmp(src, &reassembly[i].src) && in reassembly_get()
44 net_ipv4_addr_cmp(dst, &reassembly[i].dst) && in reassembly_get()
45 reassembly[i].protocol == protocol) { in reassembly_get()
46 return &reassembly[i]; in reassembly_get()
49 if (k_work_delayable_remaining_get(&reassembly[i].timer)) { in reassembly_get()
62 k_work_reschedule(&reassembly[avail].timer, K_SECONDS(CONFIG_NET_IPV4_FRAGMENT_TIMEOUT)); in reassembly_get()
64 net_ipaddr_copy(&reassembly[avail].src, src); in reassembly_get()
65 net_ipaddr_copy(&reassembly[avail].dst, dst); in reassembly_get()
67 reassembly[avail].protocol = protocol; in reassembly_get()
68 reassembly[avail].id = id; in reassembly_get()
70 return &reassembly[avail]; in reassembly_get()
82 if (reassembly[i].id != id || in reassembly_cancel()
83 !net_ipv4_addr_cmp(src, &reassembly[i].src) || in reassembly_cancel()
84 !net_ipv4_addr_cmp(dst, &reassembly[i].dst)) { in reassembly_cancel()
89 k_work_delayable_remaining_get(&reassembly[i].timer)); in reassembly_cancel()
90 k_work_cancel_delayable(&reassembly[i].timer); in reassembly_cancel()
92 LOG_DBG("IPv4 reassembly id 0x%x remaining %d ms", reassembly[i].id, remaining); in reassembly_cancel()
94 reassembly[i].id = 0U; in reassembly_cancel()
97 if (!reassembly[i].pkt[j]) { in reassembly_cancel()
101 LOG_DBG("[%d] IPv4 reassembly pkt %p %zd bytes data", j, in reassembly_cancel()
102 reassembly[i].pkt[j], net_pkt_get_len(reassembly[i].pkt[j])); in reassembly_cancel()
104 net_pkt_unref(reassembly[i].pkt[j]); in reassembly_cancel()
105 reassembly[i].pkt[j] = NULL; in reassembly_cancel()
129 reassembly_info("Reassembly cancelled", reass); in reassembly_timeout()
230 if (!k_work_delayable_remaining_get(&reassembly[i].timer)) { in net_ipv4_frag_foreach()
234 cb(&reassembly[i], user_data); in net_ipv4_frag_foreach()
242 * - a positive value if we can proceed with the reassembly
254 * We have to test several requirements before proceeding with the reassembly: in fragments_are_ready()
337 LOG_ERR("Cannot get reassembly slot, dropping pkt %p", pkt); in net_ipv4_handle_fragment_hdr()
353 /* The fragments might come in wrong order so place them in the reassembly chain in the in net_ipv4_handle_fragment_hdr()
364 * the whole reassembly. in net_ipv4_handle_fragment_hdr()
400 reassembly_info("Reassembly nth pkt", reass); in net_ipv4_handle_fragment_hdr()
406 reassembly_info("Reassembly last pkt", reass); in net_ipv4_handle_fragment_hdr()
687 k_work_init_delayable(&reassembly[i].timer, reassembly_timeout); in net_ipv4_setup_fragment_buffers()