Lines Matching defs:forw_packet
332 static void batadv_iv_ogm_send_to_if(struct batadv_forw_packet *forw_packet,
348 packet_pos = forw_packet->skb->data;
352 while (batadv_iv_ogm_aggr_packet(buff_pos, forw_packet->packet_len,
357 if (test_bit(packet_num, forw_packet->direct_link_flags) &&
358 forw_packet->if_incoming == hard_iface)
363 if (packet_num > 0 || !forw_packet->own)
381 packet_pos = forw_packet->skb->data + buff_pos;
386 skb = skb_clone(forw_packet->skb, GFP_ATOMIC);
396 static void batadv_iv_ogm_emit(struct batadv_forw_packet *forw_packet)
400 if (!forw_packet->if_incoming) {
405 mesh_iface = forw_packet->if_incoming->mesh_iface;
407 if (WARN_ON(!forw_packet->if_outgoing))
410 if (forw_packet->if_outgoing->mesh_iface != mesh_iface) {
415 if (forw_packet->if_incoming->if_status != BATADV_IF_ACTIVE)
419 batadv_iv_ogm_send_to_if(forw_packet, forw_packet->if_outgoing);
432 * @forw_packet: the forwarded packet which should be checked
434 * Return: true if new_packet can be aggregated with forw_packet
443 const struct batadv_forw_packet *forw_packet)
446 unsigned int aggregated_bytes = forw_packet->packet_len + packet_len;
448 u8 packet_num = forw_packet->num_packets;
453 batadv_ogm_packet = (struct batadv_ogm_packet *)forw_packet->skb->data;
469 if (!time_before(send_time, forw_packet->send_time) ||
470 !time_after_eq(aggregation_end_time, forw_packet->send_time))
480 if (forw_packet->if_outgoing != if_outgoing)
504 (!forw_packet->own ||
505 forw_packet->if_incoming == primary_if)) {
515 forw_packet->if_incoming == if_incoming &&
522 (forw_packet->own &&
523 forw_packet->if_incoming != primary_if))) {
1683 struct batadv_forw_packet *forw_packet;
1688 forw_packet = container_of(delayed_work, struct batadv_forw_packet,
1690 bat_priv = netdev_priv(forw_packet->if_incoming->mesh_iface);
1697 batadv_iv_ogm_emit(forw_packet);
1704 * this function will be called for the forw_packet instances of the
1707 if (forw_packet->own &&
1708 forw_packet->if_incoming == forw_packet->if_outgoing)
1709 batadv_iv_ogm_schedule(forw_packet->if_incoming);
1713 if (batadv_forw_packet_steal(forw_packet,
1715 batadv_forw_packet_free(forw_packet, dropped);