Lines Matching refs:forw_packet

483 static void batadv_iv_ogm_send_to_if(struct batadv_forw_packet *forw_packet,  in batadv_iv_ogm_send_to_if()  argument
499 packet_pos = forw_packet->skb->data; in batadv_iv_ogm_send_to_if()
503 while (batadv_iv_ogm_aggr_packet(buff_pos, forw_packet->packet_len, in batadv_iv_ogm_send_to_if()
508 if (forw_packet->direct_link_flags & BIT(packet_num) && in batadv_iv_ogm_send_to_if()
509 forw_packet->if_incoming == hard_iface) in batadv_iv_ogm_send_to_if()
514 if (packet_num > 0 || !forw_packet->own) in batadv_iv_ogm_send_to_if()
533 packet_pos = forw_packet->skb->data + buff_pos; in batadv_iv_ogm_send_to_if()
538 skb = skb_clone(forw_packet->skb, GFP_ATOMIC); in batadv_iv_ogm_send_to_if()
548 static void batadv_iv_ogm_emit(struct batadv_forw_packet *forw_packet) in batadv_iv_ogm_emit() argument
552 if (!forw_packet->if_incoming) { in batadv_iv_ogm_emit()
557 soft_iface = forw_packet->if_incoming->soft_iface; in batadv_iv_ogm_emit()
559 if (WARN_ON(!forw_packet->if_outgoing)) in batadv_iv_ogm_emit()
562 if (WARN_ON(forw_packet->if_outgoing->soft_iface != soft_iface)) in batadv_iv_ogm_emit()
565 if (forw_packet->if_incoming->if_status != BATADV_IF_ACTIVE) in batadv_iv_ogm_emit()
569 batadv_iv_ogm_send_to_if(forw_packet, forw_packet->if_outgoing); in batadv_iv_ogm_emit()
593 const struct batadv_forw_packet *forw_packet) in batadv_iv_ogm_can_aggregate() argument
596 int aggregated_bytes = forw_packet->packet_len + packet_len; in batadv_iv_ogm_can_aggregate()
601 batadv_ogm_packet = (struct batadv_ogm_packet *)forw_packet->skb->data; in batadv_iv_ogm_can_aggregate()
613 if (!time_before(send_time, forw_packet->send_time) || in batadv_iv_ogm_can_aggregate()
614 !time_after_eq(aggregation_end_time, forw_packet->send_time)) in batadv_iv_ogm_can_aggregate()
621 if (forw_packet->if_outgoing != if_outgoing) in batadv_iv_ogm_can_aggregate()
645 (!forw_packet->own || in batadv_iv_ogm_can_aggregate()
646 forw_packet->if_incoming == primary_if)) { in batadv_iv_ogm_can_aggregate()
656 forw_packet->if_incoming == if_incoming && in batadv_iv_ogm_can_aggregate()
663 (forw_packet->own && in batadv_iv_ogm_can_aggregate()
664 forw_packet->if_incoming != primary_if))) { in batadv_iv_ogm_can_aggregate()
1791 struct batadv_forw_packet *forw_packet; in batadv_iv_send_outstanding_bat_ogm_packet() local
1796 forw_packet = container_of(delayed_work, struct batadv_forw_packet, in batadv_iv_send_outstanding_bat_ogm_packet()
1798 bat_priv = netdev_priv(forw_packet->if_incoming->soft_iface); in batadv_iv_send_outstanding_bat_ogm_packet()
1805 batadv_iv_ogm_emit(forw_packet); in batadv_iv_send_outstanding_bat_ogm_packet()
1815 if (forw_packet->own && in batadv_iv_send_outstanding_bat_ogm_packet()
1816 forw_packet->if_incoming == forw_packet->if_outgoing) in batadv_iv_send_outstanding_bat_ogm_packet()
1817 batadv_iv_ogm_schedule(forw_packet->if_incoming); in batadv_iv_send_outstanding_bat_ogm_packet()
1821 if (batadv_forw_packet_steal(forw_packet, in batadv_iv_send_outstanding_bat_ogm_packet()
1823 batadv_forw_packet_free(forw_packet, dropped); in batadv_iv_send_outstanding_bat_ogm_packet()