30 static void batadv_send_outstanding_bcast_packet(
struct work_struct *
work);
48 pr_warn(
"Interface %s is not up - can't send packet via that interface!\n",
57 skb_reset_mac_header(skb);
59 ethhdr = (
struct ethhdr *)skb_mac_header(skb);
64 skb_set_network_header(skb,
ETH_HLEN);
102 if (forw_packet->
skb)
110 _batadv_add_bcast_packet_to_list(
struct batadv_priv *bat_priv,
112 unsigned long send_time)
114 INIT_HLIST_NODE(&forw_packet->
list);
123 batadv_send_outstanding_bcast_packet);
148 "bcast packet queue full\n");
152 primary_if = batadv_primary_if_get_selected(bat_priv);
167 bcast_packet->
header.ttl--;
169 skb_reset_mac_header(newskb);
171 forw_packet->
skb = newskb;
177 _batadv_add_bcast_packet_to_list(bat_priv, forw_packet, delay);
186 batadv_hardif_free_ref(primary_if);
190 static void batadv_send_outstanding_bcast_packet(
struct work_struct *
work)
199 delayed_work =
container_of(work,
struct delayed_work, work);
203 bat_priv = netdev_priv(soft_iface);
206 hlist_del(&forw_packet->
list);
230 _batadv_add_bcast_packet_to_list(bat_priv, forw_packet,
236 batadv_forw_packet_free(forw_packet);
242 struct delayed_work *delayed_work;
246 delayed_work =
container_of(work,
struct delayed_work, work);
249 bat_priv = netdev_priv(forw_packet->
if_incoming->soft_iface);
251 hlist_del(&forw_packet->
list);
263 if (forw_packet->
own)
268 if (!forw_packet->
own)
271 batadv_forw_packet_free(forw_packet);
284 "purge_outstanding_packets(): %s\n",
288 "purge_outstanding_packets()\n");
311 hlist_del(&forw_packet->
list);
312 batadv_forw_packet_free(forw_packet);
338 hlist_del(&forw_packet->
list);
339 batadv_forw_packet_free(forw_packet);