forw_packet 333 net/batman-adv/bat_iv_ogm.c static void batadv_iv_ogm_send_to_if(struct batadv_forw_packet *forw_packet, forw_packet 349 net/batman-adv/bat_iv_ogm.c packet_pos = forw_packet->skb->data; forw_packet 353 net/batman-adv/bat_iv_ogm.c while (batadv_iv_ogm_aggr_packet(buff_pos, forw_packet->packet_len, forw_packet 358 net/batman-adv/bat_iv_ogm.c if (forw_packet->direct_link_flags & BIT(packet_num) && forw_packet 359 net/batman-adv/bat_iv_ogm.c forw_packet->if_incoming == hard_iface) forw_packet 364 net/batman-adv/bat_iv_ogm.c if (packet_num > 0 || !forw_packet->own) forw_packet 383 net/batman-adv/bat_iv_ogm.c packet_pos = forw_packet->skb->data + buff_pos; forw_packet 388 net/batman-adv/bat_iv_ogm.c skb = skb_clone(forw_packet->skb, GFP_ATOMIC); forw_packet 398 net/batman-adv/bat_iv_ogm.c static void batadv_iv_ogm_emit(struct batadv_forw_packet *forw_packet) forw_packet 402 net/batman-adv/bat_iv_ogm.c if (!forw_packet->if_incoming) { forw_packet 407 net/batman-adv/bat_iv_ogm.c soft_iface = forw_packet->if_incoming->soft_iface; forw_packet 409 net/batman-adv/bat_iv_ogm.c if (WARN_ON(!forw_packet->if_outgoing)) forw_packet 412 net/batman-adv/bat_iv_ogm.c if (WARN_ON(forw_packet->if_outgoing->soft_iface != soft_iface)) forw_packet 415 net/batman-adv/bat_iv_ogm.c if (forw_packet->if_incoming->if_status != BATADV_IF_ACTIVE) forw_packet 419 net/batman-adv/bat_iv_ogm.c batadv_iv_ogm_send_to_if(forw_packet, forw_packet->if_outgoing); forw_packet 443 net/batman-adv/bat_iv_ogm.c const struct batadv_forw_packet *forw_packet) forw_packet 446 net/batman-adv/bat_iv_ogm.c int aggregated_bytes = forw_packet->packet_len + packet_len; forw_packet 451 net/batman-adv/bat_iv_ogm.c batadv_ogm_packet = (struct batadv_ogm_packet *)forw_packet->skb->data; forw_packet 463 net/batman-adv/bat_iv_ogm.c if (!time_before(send_time, forw_packet->send_time) || forw_packet 464 net/batman-adv/bat_iv_ogm.c !time_after_eq(aggregation_end_time, forw_packet->send_time)) forw_packet 471 net/batman-adv/bat_iv_ogm.c if (forw_packet->if_outgoing != if_outgoing) forw_packet 495 net/batman-adv/bat_iv_ogm.c (!forw_packet->own || forw_packet 496 net/batman-adv/bat_iv_ogm.c forw_packet->if_incoming == primary_if)) { forw_packet 506 net/batman-adv/bat_iv_ogm.c forw_packet->if_incoming == if_incoming && forw_packet 513 net/batman-adv/bat_iv_ogm.c (forw_packet->own && forw_packet 514 net/batman-adv/bat_iv_ogm.c forw_packet->if_incoming != primary_if))) { forw_packet 1696 net/batman-adv/bat_iv_ogm.c struct batadv_forw_packet *forw_packet; forw_packet 1701 net/batman-adv/bat_iv_ogm.c forw_packet = container_of(delayed_work, struct batadv_forw_packet, forw_packet 1703 net/batman-adv/bat_iv_ogm.c bat_priv = netdev_priv(forw_packet->if_incoming->soft_iface); forw_packet 1710 net/batman-adv/bat_iv_ogm.c batadv_iv_ogm_emit(forw_packet); forw_packet 1720 net/batman-adv/bat_iv_ogm.c if (forw_packet->own && forw_packet 1721 net/batman-adv/bat_iv_ogm.c forw_packet->if_incoming == forw_packet->if_outgoing) forw_packet 1722 net/batman-adv/bat_iv_ogm.c batadv_iv_ogm_schedule(forw_packet->if_incoming); forw_packet 1726 net/batman-adv/bat_iv_ogm.c if (batadv_forw_packet_steal(forw_packet, forw_packet 1728 net/batman-adv/bat_iv_ogm.c batadv_forw_packet_free(forw_packet, dropped); forw_packet 1848 net/batman-adv/distributed-arp-table.c struct batadv_forw_packet *forw_packet) forw_packet 1863 net/batman-adv/distributed-arp-table.c if (batadv_forw_packet_is_rebroadcast(forw_packet)) forw_packet 1866 net/batman-adv/distributed-arp-table.c vid = batadv_dat_get_vid(forw_packet->skb, &hdr_size); forw_packet 1868 net/batman-adv/distributed-arp-table.c type = batadv_arp_get_type(bat_priv, forw_packet->skb, hdr_size); forw_packet 1872 net/batman-adv/distributed-arp-table.c ip_dst = batadv_arp_ip_dst(forw_packet->skb, hdr_size); forw_packet 43 net/batman-adv/distributed-arp-table.h struct batadv_forw_packet *forw_packet); forw_packet 151 net/batman-adv/distributed-arp-table.h struct batadv_forw_packet *forw_packet) forw_packet 469 net/batman-adv/send.c void batadv_forw_packet_free(struct batadv_forw_packet *forw_packet, forw_packet 473 net/batman-adv/send.c kfree_skb(forw_packet->skb); forw_packet 475 net/batman-adv/send.c consume_skb(forw_packet->skb); forw_packet 477 net/batman-adv/send.c if (forw_packet->if_incoming) forw_packet 478 net/batman-adv/send.c batadv_hardif_put(forw_packet->if_incoming); forw_packet 479 net/batman-adv/send.c if (forw_packet->if_outgoing) forw_packet 480 net/batman-adv/send.c batadv_hardif_put(forw_packet->if_outgoing); forw_packet 481 net/batman-adv/send.c if (forw_packet->queue_left) forw_packet 482 net/batman-adv/send.c atomic_inc(forw_packet->queue_left); forw_packet 483 net/batman-adv/send.c kfree(forw_packet); forw_packet 507 net/batman-adv/send.c struct batadv_forw_packet *forw_packet; forw_packet 525 net/batman-adv/send.c forw_packet = kmalloc(sizeof(*forw_packet), GFP_ATOMIC); forw_packet 526 net/batman-adv/send.c if (!forw_packet) forw_packet 535 net/batman-adv/send.c INIT_HLIST_NODE(&forw_packet->list); forw_packet 536 net/batman-adv/send.c INIT_HLIST_NODE(&forw_packet->cleanup_list); forw_packet 537 net/batman-adv/send.c forw_packet->skb = skb; forw_packet 538 net/batman-adv/send.c forw_packet->queue_left = queue_left; forw_packet 539 net/batman-adv/send.c forw_packet->if_incoming = if_incoming; forw_packet 540 net/batman-adv/send.c forw_packet->if_outgoing = if_outgoing; forw_packet 541 net/batman-adv/send.c forw_packet->num_packets = 0; forw_packet 543 net/batman-adv/send.c return forw_packet; forw_packet 562 net/batman-adv/send.c batadv_forw_packet_was_stolen(struct batadv_forw_packet *forw_packet) forw_packet 564 net/batman-adv/send.c return !hlist_unhashed(&forw_packet->cleanup_list); forw_packet 579 net/batman-adv/send.c bool batadv_forw_packet_steal(struct batadv_forw_packet *forw_packet, forw_packet 584 net/batman-adv/send.c if (batadv_forw_packet_was_stolen(forw_packet)) { forw_packet 589 net/batman-adv/send.c hlist_del_init(&forw_packet->list); forw_packet 592 net/batman-adv/send.c hlist_add_fake(&forw_packet->cleanup_list); forw_packet 616 net/batman-adv/send.c struct batadv_forw_packet *forw_packet; forw_packet 619 net/batman-adv/send.c hlist_for_each_entry_safe(forw_packet, safe_tmp_node, forw_packet 625 net/batman-adv/send.c forw_packet->if_incoming != hard_iface && forw_packet 626 net/batman-adv/send.c forw_packet->if_outgoing != hard_iface) forw_packet 629 net/batman-adv/send.c hlist_del(&forw_packet->list); forw_packet 630 net/batman-adv/send.c hlist_add_head(&forw_packet->cleanup_list, cleanup_list); forw_packet 646 net/batman-adv/send.c struct batadv_forw_packet *forw_packet; forw_packet 649 net/batman-adv/send.c hlist_for_each_entry_safe(forw_packet, safe_tmp_node, head, forw_packet 651 net/batman-adv/send.c cancel_delayed_work_sync(&forw_packet->delayed_work); forw_packet 653 net/batman-adv/send.c hlist_del(&forw_packet->cleanup_list); forw_packet 654 net/batman-adv/send.c batadv_forw_packet_free(forw_packet, true); forw_packet 675 net/batman-adv/send.c static void batadv_forw_packet_queue(struct batadv_forw_packet *forw_packet, forw_packet 682 net/batman-adv/send.c if (batadv_forw_packet_was_stolen(forw_packet)) { forw_packet 686 net/batman-adv/send.c WARN_ONCE(hlist_fake(&forw_packet->cleanup_list), forw_packet 693 net/batman-adv/send.c hlist_del_init(&forw_packet->list); forw_packet 694 net/batman-adv/send.c hlist_add_head(&forw_packet->list, head); forw_packet 697 net/batman-adv/send.c &forw_packet->delayed_work, forw_packet 714 net/batman-adv/send.c struct batadv_forw_packet *forw_packet, forw_packet 717 net/batman-adv/send.c batadv_forw_packet_queue(forw_packet, &bat_priv->forw_bcast_list_lock, forw_packet 732 net/batman-adv/send.c struct batadv_forw_packet *forw_packet, forw_packet 735 net/batman-adv/send.c batadv_forw_packet_queue(forw_packet, &bat_priv->forw_bat_list_lock, forw_packet 760 net/batman-adv/send.c struct batadv_forw_packet *forw_packet; forw_packet 774 net/batman-adv/send.c forw_packet = batadv_forw_packet_alloc(primary_if, NULL, forw_packet 778 net/batman-adv/send.c if (!forw_packet) forw_packet 785 net/batman-adv/send.c forw_packet->own = own_packet; forw_packet 787 net/batman-adv/send.c INIT_DELAYED_WORK(&forw_packet->delayed_work, forw_packet 790 net/batman-adv/send.c batadv_forw_packet_bcast_queue(bat_priv, forw_packet, jiffies + delay); forw_packet 814 net/batman-adv/send.c batadv_forw_packet_bcasts_left(struct batadv_forw_packet *forw_packet, forw_packet 824 net/batman-adv/send.c return BATADV_SKB_CB(forw_packet->skb)->num_bcasts < max; forw_packet 833 net/batman-adv/send.c batadv_forw_packet_bcasts_inc(struct batadv_forw_packet *forw_packet) forw_packet 835 net/batman-adv/send.c BATADV_SKB_CB(forw_packet->skb)->num_bcasts++; forw_packet 844 net/batman-adv/send.c bool batadv_forw_packet_is_rebroadcast(struct batadv_forw_packet *forw_packet) forw_packet 846 net/batman-adv/send.c return BATADV_SKB_CB(forw_packet->skb)->num_bcasts > 0; forw_packet 854 net/batman-adv/send.c struct batadv_forw_packet *forw_packet; forw_packet 866 net/batman-adv/send.c forw_packet = container_of(delayed_work, struct batadv_forw_packet, forw_packet 868 net/batman-adv/send.c soft_iface = forw_packet->if_incoming->soft_iface; forw_packet 876 net/batman-adv/send.c if (batadv_dat_drop_broadcast_packet(bat_priv, forw_packet)) { forw_packet 881 net/batman-adv/send.c bcast_packet = (struct batadv_bcast_packet *)forw_packet->skb->data; forw_packet 889 net/batman-adv/send.c if (!batadv_forw_packet_bcasts_left(forw_packet, hard_iface)) forw_packet 892 net/batman-adv/send.c if (forw_packet->own) { forw_packet 895 net/batman-adv/send.c neigh_addr = eth_hdr(forw_packet->skb)->h_source; forw_packet 939 net/batman-adv/send.c skb1 = skb_clone(forw_packet->skb, GFP_ATOMIC); forw_packet 947 net/batman-adv/send.c batadv_forw_packet_bcasts_inc(forw_packet); forw_packet 950 net/batman-adv/send.c if (batadv_forw_packet_bcasts_left(forw_packet, NULL)) { forw_packet 951 net/batman-adv/send.c batadv_forw_packet_bcast_queue(bat_priv, forw_packet, forw_packet 958 net/batman-adv/send.c if (batadv_forw_packet_steal(forw_packet, forw_packet 960 net/batman-adv/send.c batadv_forw_packet_free(forw_packet, dropped); forw_packet 18 net/batman-adv/send.h void batadv_forw_packet_free(struct batadv_forw_packet *forw_packet, forw_packet 28 net/batman-adv/send.h struct batadv_forw_packet *forw_packet, forw_packet 30 net/batman-adv/send.h bool batadv_forw_packet_is_rebroadcast(struct batadv_forw_packet *forw_packet);