Lines Matching defs:nc_packet

253  * @nc_packet: the nc packet to free
256 static void batadv_nc_packet_free(struct batadv_nc_packet *nc_packet,
260 kfree_skb(nc_packet->skb);
262 consume_skb(nc_packet->skb);
264 batadv_nc_path_put(nc_packet->nc_path);
265 kfree(nc_packet);
570 * batadv_nc_send_packet() - send non-coded packet and free nc_packet struct
571 * @nc_packet: the nc packet to send
573 static void batadv_nc_send_packet(struct batadv_nc_packet *nc_packet)
575 batadv_send_unicast_skb(nc_packet->skb, nc_packet->neigh_node);
576 nc_packet->skb = NULL;
577 batadv_nc_packet_free(nc_packet, false);
581 * batadv_nc_sniffed_purge() - Checks timestamp of given sniffed nc_packet.
584 * @nc_packet: the nc packet to be checked
586 * Checks whether the given sniffed (overheard) nc_packet has hit its buffering
595 struct batadv_nc_packet *nc_packet)
606 !batadv_has_timed_out(nc_packet->timestamp, timeout))
610 list_del(&nc_packet->list);
611 batadv_nc_packet_free(nc_packet, true);
623 * @nc_packet: the nc packet to be checked
634 struct batadv_nc_packet *nc_packet)
644 !batadv_has_timed_out(nc_packet->timestamp, timeout))
650 nc_packet->skb->len + ETH_HLEN);
651 list_del(&nc_packet->list);
652 batadv_nc_send_packet(nc_packet);
674 struct batadv_nc_packet *nc_packet, *nc_packet_tmp;
691 list_for_each_entry_safe(nc_packet, nc_packet_tmp,
693 ret = process_fn(bat_priv, nc_path, nc_packet);
1038 * @nc_packet: structure containing the packet to the skb can be coded with
1046 struct batadv_nc_packet *nc_packet,
1080 neigh_tmp = nc_packet->neigh_node;
1100 /* Destination from nc_packet is selected for MAC-header */
1101 first_dest = nc_packet->neigh_node;
1102 first_source = nc_packet->nc_path->prev_hop;
1105 packet1 = (struct batadv_unicast_packet *)nc_packet->skb->data;
1107 packet_id1 = nc_packet->packet_id;
1114 second_dest = nc_packet->neigh_node;
1115 second_source = nc_packet->nc_path->prev_hop;
1117 packet2 = (struct batadv_unicast_packet *)nc_packet->skb->data;
1120 packet_id2 = nc_packet->packet_id;
1126 if (skb->len <= nc_packet->skb->len) {
1127 skb_dest = nc_packet->skb;
1131 skb_src = nc_packet->skb;
1206 /* avoid duplicate free of skb from nc_packet */
1207 nc_packet->skb = NULL;
1208 batadv_nc_packet_free(nc_packet, false);
1265 struct batadv_nc_packet *nc_packet, *nc_packet_tmp;
1292 list_for_each_entry_safe(nc_packet, nc_packet_tmp,
1294 if (!batadv_nc_skb_coding_possible(nc_packet->skb,
1300 list_del(&nc_packet->list);
1301 nc_packet_out = nc_packet;
1333 struct batadv_nc_packet *nc_packet = NULL;
1348 nc_packet = batadv_nc_path_search(bat_priv, in_nc_node,
1350 if (nc_packet)
1356 return nc_packet;
1415 struct batadv_nc_packet *nc_packet = NULL;
1420 nc_packet = batadv_nc_skb_src_search(bat_priv, skb,
1425 if (nc_packet)
1430 if (!nc_packet)
1436 batadv_nc_skb_store_before_coding(bat_priv, nc_packet->skb,
1437 nc_packet->neigh_node->addr);
1440 if (batadv_nc_code_packets(bat_priv, skb, ethhdr, nc_packet,
1448 batadv_nc_send_packet(nc_packet);
1466 struct batadv_nc_packet *nc_packet;
1468 nc_packet = kzalloc(sizeof(*nc_packet), GFP_ATOMIC);
1469 if (!nc_packet)
1472 /* Initialize nc_packet */
1473 nc_packet->timestamp = jiffies;
1474 nc_packet->packet_id = packet_id;
1475 nc_packet->skb = skb;
1476 nc_packet->neigh_node = neigh_node;
1477 nc_packet->nc_path = nc_path;
1481 list_add_tail(&nc_packet->list, &nc_path->packet_list);
1627 * in nc_packet
1630 * @nc_packet: decode data needed to decode the skb
1637 struct batadv_nc_packet *nc_packet)
1697 nc_packet->skb->data + h_size,
1701 if (nc_packet->skb->len > coding_len + h_size) {
1715 batadv_nc_packet_free(nc_packet, false);
1734 struct batadv_nc_packet *tmp_nc_packet, *nc_packet = NULL;
1759 /* Find matching nc_packet */
1766 nc_packet = tmp_nc_packet;
1772 if (nc_packet)
1777 if (!nc_packet)
1781 return nc_packet;
1799 struct batadv_nc_packet *nc_packet;
1823 nc_packet = batadv_nc_find_decoding_packet(bat_priv, ethhdr,
1825 if (!nc_packet) {
1834 if (skb_linearize(nc_packet->skb) < 0)
1838 unicast_packet = batadv_nc_skb_decode_packet(bat_priv, skb, nc_packet);
1852 batadv_nc_packet_free(nc_packet, true);