Lines Matching refs:nc_packet
242 static void batadv_nc_packet_free(struct batadv_nc_packet *nc_packet) in batadv_nc_packet_free() argument
244 if (nc_packet->skb) in batadv_nc_packet_free()
245 kfree_skb(nc_packet->skb); in batadv_nc_packet_free()
247 batadv_nc_path_free_ref(nc_packet->nc_path); in batadv_nc_packet_free()
248 kfree(nc_packet); in batadv_nc_packet_free()
557 static void batadv_nc_send_packet(struct batadv_nc_packet *nc_packet) in batadv_nc_send_packet() argument
559 batadv_send_skb_packet(nc_packet->skb, in batadv_nc_send_packet()
560 nc_packet->neigh_node->if_incoming, in batadv_nc_send_packet()
561 nc_packet->nc_path->next_hop); in batadv_nc_send_packet()
562 nc_packet->skb = NULL; in batadv_nc_send_packet()
563 batadv_nc_packet_free(nc_packet); in batadv_nc_send_packet()
581 struct batadv_nc_packet *nc_packet) in batadv_nc_sniffed_purge() argument
592 !batadv_has_timed_out(nc_packet->timestamp, timeout)) in batadv_nc_sniffed_purge()
596 list_del(&nc_packet->list); in batadv_nc_sniffed_purge()
597 batadv_nc_packet_free(nc_packet); in batadv_nc_sniffed_purge()
620 struct batadv_nc_packet *nc_packet) in batadv_nc_fwd_flush() argument
630 !batadv_has_timed_out(nc_packet->timestamp, timeout)) in batadv_nc_fwd_flush()
636 nc_packet->skb->len + ETH_HLEN); in batadv_nc_fwd_flush()
637 list_del(&nc_packet->list); in batadv_nc_fwd_flush()
638 batadv_nc_send_packet(nc_packet); in batadv_nc_fwd_flush()
660 struct batadv_nc_packet *nc_packet, *nc_packet_tmp; in batadv_nc_process_nc_paths() local
677 list_for_each_entry_safe(nc_packet, nc_packet_tmp, in batadv_nc_process_nc_paths()
679 ret = process_fn(bat_priv, nc_path, nc_packet); in batadv_nc_process_nc_paths()
1039 struct batadv_nc_packet *nc_packet, in batadv_nc_code_packets() argument
1073 neigh_tmp = nc_packet->neigh_node; in batadv_nc_code_packets()
1094 first_dest = nc_packet->nc_path->next_hop; in batadv_nc_code_packets()
1095 first_source = nc_packet->nc_path->prev_hop; in batadv_nc_code_packets()
1098 packet1 = (struct batadv_unicast_packet *)nc_packet->skb->data; in batadv_nc_code_packets()
1100 packet_id1 = nc_packet->packet_id; in batadv_nc_code_packets()
1107 second_dest = nc_packet->nc_path->next_hop; in batadv_nc_code_packets()
1108 second_source = nc_packet->nc_path->prev_hop; in batadv_nc_code_packets()
1110 packet2 = (struct batadv_unicast_packet *)nc_packet->skb->data; in batadv_nc_code_packets()
1113 packet_id2 = nc_packet->packet_id; in batadv_nc_code_packets()
1119 if (skb->len <= nc_packet->skb->len) { in batadv_nc_code_packets()
1120 skb_dest = nc_packet->skb; in batadv_nc_code_packets()
1124 skb_src = nc_packet->skb; in batadv_nc_code_packets()
1200 nc_packet->skb = NULL; in batadv_nc_code_packets()
1201 batadv_nc_packet_free(nc_packet); in batadv_nc_code_packets()
1262 struct batadv_nc_packet *nc_packet, *nc_packet_tmp; in batadv_nc_path_search() local
1289 list_for_each_entry_safe(nc_packet, nc_packet_tmp, in batadv_nc_path_search()
1291 if (!batadv_nc_skb_coding_possible(nc_packet->skb, in batadv_nc_path_search()
1297 list_del(&nc_packet->list); in batadv_nc_path_search()
1298 nc_packet_out = nc_packet; in batadv_nc_path_search()
1330 struct batadv_nc_packet *nc_packet = NULL; in batadv_nc_skb_src_search() local
1345 nc_packet = batadv_nc_path_search(bat_priv, in_nc_node, in batadv_nc_skb_src_search()
1347 if (nc_packet) in batadv_nc_skb_src_search()
1353 return nc_packet; in batadv_nc_skb_src_search()
1412 struct batadv_nc_packet *nc_packet = NULL; in batadv_nc_skb_dst_search() local
1417 nc_packet = batadv_nc_skb_src_search(bat_priv, skb, in batadv_nc_skb_dst_search()
1422 if (nc_packet) in batadv_nc_skb_dst_search()
1427 if (!nc_packet) in batadv_nc_skb_dst_search()
1433 batadv_nc_skb_store_before_coding(bat_priv, nc_packet->skb, in batadv_nc_skb_dst_search()
1434 nc_packet->neigh_node->addr); in batadv_nc_skb_dst_search()
1437 if (batadv_nc_code_packets(bat_priv, skb, ethhdr, nc_packet, in batadv_nc_skb_dst_search()
1445 batadv_nc_send_packet(nc_packet); in batadv_nc_skb_dst_search()
1463 struct batadv_nc_packet *nc_packet; in batadv_nc_skb_add_to_path() local
1465 nc_packet = kzalloc(sizeof(*nc_packet), GFP_ATOMIC); in batadv_nc_skb_add_to_path()
1466 if (!nc_packet) in batadv_nc_skb_add_to_path()
1470 nc_packet->timestamp = jiffies; in batadv_nc_skb_add_to_path()
1471 nc_packet->packet_id = packet_id; in batadv_nc_skb_add_to_path()
1472 nc_packet->skb = skb; in batadv_nc_skb_add_to_path()
1473 nc_packet->neigh_node = neigh_node; in batadv_nc_skb_add_to_path()
1474 nc_packet->nc_path = nc_path; in batadv_nc_skb_add_to_path()
1478 list_add_tail(&nc_packet->list, &nc_path->packet_list); in batadv_nc_skb_add_to_path()
1634 struct batadv_nc_packet *nc_packet) in batadv_nc_skb_decode_packet() argument
1694 nc_packet->skb->data + h_size, in batadv_nc_skb_decode_packet()
1698 if (nc_packet->skb->len > coding_len + h_size) { in batadv_nc_skb_decode_packet()
1712 batadv_nc_packet_free(nc_packet); in batadv_nc_skb_decode_packet()
1731 struct batadv_nc_packet *tmp_nc_packet, *nc_packet = NULL; in batadv_nc_find_decoding_packet() local
1763 nc_packet = tmp_nc_packet; in batadv_nc_find_decoding_packet()
1769 if (nc_packet) in batadv_nc_find_decoding_packet()
1774 if (!nc_packet) in batadv_nc_find_decoding_packet()
1778 return nc_packet; in batadv_nc_find_decoding_packet()
1793 struct batadv_nc_packet *nc_packet; in batadv_nc_recv_coded_packet() local
1817 nc_packet = batadv_nc_find_decoding_packet(bat_priv, ethhdr, in batadv_nc_recv_coded_packet()
1819 if (!nc_packet) { in batadv_nc_recv_coded_packet()
1828 if (skb_linearize(nc_packet->skb) < 0) in batadv_nc_recv_coded_packet()
1832 unicast_packet = batadv_nc_skb_decode_packet(bat_priv, skb, nc_packet); in batadv_nc_recv_coded_packet()
1846 batadv_nc_packet_free(nc_packet); in batadv_nc_recv_coded_packet()