Lines Matching refs:bat_priv

97  * @bat_priv: the bat priv with all the soft interface information
102 static u64 batadv_sum_counter(struct batadv_priv *bat_priv, size_t idx)
108 counters = per_cpu_ptr(bat_priv->bat_counters, cpu);
117 struct batadv_priv *bat_priv = netdev_priv(dev);
120 stats->tx_packets = batadv_sum_counter(bat_priv, BATADV_CNT_TX);
121 stats->tx_bytes = batadv_sum_counter(bat_priv, BATADV_CNT_TX_BYTES);
122 stats->tx_dropped = batadv_sum_counter(bat_priv, BATADV_CNT_TX_DROPPED);
123 stats->rx_packets = batadv_sum_counter(bat_priv, BATADV_CNT_RX);
124 stats->rx_bytes = batadv_sum_counter(bat_priv, BATADV_CNT_RX_BYTES);
130 struct batadv_priv *bat_priv = netdev_priv(dev);
142 if (atomic_read(&bat_priv->mesh_state) != BATADV_MESH_ACTIVE)
146 hlist_for_each_entry_rcu(vlan, &bat_priv->softif_vlan_list, list) {
147 batadv_tt_local_remove(bat_priv, old_addr, vlan->vid,
159 struct batadv_priv *bat_priv = netdev_priv(dev);
166 bat_priv->mtu_set_by_user = new_mtu;
187 struct batadv_priv *bat_priv = netdev_priv(soft_iface);
210 if (atomic_read(&bat_priv->mesh_state) != BATADV_MESH_ACTIVE)
244 if (batadv_bla_tx(bat_priv, skb, vid))
261 batadv_dat_snoop_outgoing_dhcp_ack(bat_priv, skb, proto, vid);
275 gw_mode = atomic_read(&bat_priv->gw.mode);
308 forw_mode = batadv_mcast_forw_mode(bat_priv, skb,
324 primary_if = batadv_primary_if_get_selected(bat_priv);
332 if (batadv_dat_snoop_outgoing_arp_request(bat_priv, skb))
353 seqno = atomic_inc_return(&bat_priv->bcast_seqno);
356 batadv_add_bcast_packet_to_list(bat_priv, skb, brd_delay, true);
367 ret = batadv_gw_out_of_range(bat_priv, skb);
370 ret = batadv_send_skb_via_gw(bat_priv, skb, vid);
372 ret = batadv_mcast_forw_send_orig(bat_priv, skb, vid,
375 ret = batadv_mcast_forw_send(bat_priv, skb, vid,
378 if (batadv_dat_snoop_outgoing_arp_request(bat_priv,
382 batadv_dat_snoop_outgoing_arp_reply(bat_priv, skb);
384 ret = batadv_send_skb_via_tt(bat_priv, skb, dst_hint,
391 batadv_inc_counter(bat_priv, BATADV_CNT_TX);
392 batadv_add_counter(bat_priv, BATADV_CNT_TX_BYTES, data_len);
398 batadv_inc_counter(bat_priv, BATADV_CNT_TX_DROPPED);
429 struct batadv_priv *bat_priv = netdev_priv(soft_iface);
472 batadv_inc_counter(bat_priv, BATADV_CNT_RX);
473 batadv_add_counter(bat_priv, BATADV_CNT_RX_BYTES,
479 if (batadv_bla_rx(bat_priv, skb, vid, packet_type))
483 batadv_tt_add_temporary_global_entry(bat_priv, orig_node,
490 if (batadv_vlan_ap_isola_get(bat_priv, vid) &&
491 batadv_tt_global_is_isolated(bat_priv, ethhdr->h_source,
496 skb->mark &= ~bat_priv->isolation_mark_mask;
497 skb->mark |= bat_priv->isolation_mark;
499 } else if (batadv_is_ap_isolated(bat_priv, ethhdr->h_source,
524 spin_lock_bh(&vlan->bat_priv->softif_vlan_list_lock);
526 spin_unlock_bh(&vlan->bat_priv->softif_vlan_list_lock);
533 * @bat_priv: the bat priv with all the soft interface information
539 struct batadv_softif_vlan *batadv_softif_vlan_get(struct batadv_priv *bat_priv,
545 hlist_for_each_entry_rcu(vlan_tmp, &bat_priv->softif_vlan_list, list) {
562 * @bat_priv: the bat priv with all the soft interface information
567 int batadv_softif_create_vlan(struct batadv_priv *bat_priv, unsigned short vid)
572 spin_lock_bh(&bat_priv->softif_vlan_list_lock);
574 vlan = batadv_softif_vlan_get(bat_priv, vid);
577 spin_unlock_bh(&bat_priv->softif_vlan_list_lock);
583 spin_unlock_bh(&bat_priv->softif_vlan_list_lock);
587 vlan->bat_priv = bat_priv;
594 hlist_add_head_rcu(&vlan->list, &bat_priv->softif_vlan_list);
595 spin_unlock_bh(&bat_priv->softif_vlan_list_lock);
600 err = batadv_sysfs_add_vlan(bat_priv->soft_iface, vlan);
613 batadv_tt_local_add(bat_priv->soft_iface,
614 bat_priv->soft_iface->dev_addr, vid,
625 * @bat_priv: the bat priv with all the soft interface information
628 static void batadv_softif_destroy_vlan(struct batadv_priv *bat_priv,
634 batadv_tt_local_remove(bat_priv, bat_priv->soft_iface->dev_addr,
637 batadv_sysfs_del_vlan(bat_priv, vlan);
655 struct batadv_priv *bat_priv = netdev_priv(dev);
673 vlan = batadv_softif_vlan_get(bat_priv, vid);
675 return batadv_softif_create_vlan(bat_priv, vid);
681 ret = batadv_sysfs_add_vlan(bat_priv->soft_iface, vlan);
692 batadv_tt_local_add(bat_priv->soft_iface,
693 bat_priv->soft_iface->dev_addr, vid,
714 struct batadv_priv *bat_priv = netdev_priv(dev);
723 vlan = batadv_softif_vlan_get(bat_priv, vid | BATADV_VLAN_HAS_TAG);
727 batadv_softif_destroy_vlan(bat_priv, vlan);
773 struct batadv_priv *bat_priv;
780 bat_priv = netdev_priv(dev);
781 bat_priv->soft_iface = dev;
786 bat_priv->bat_counters = __alloc_percpu(cnt_len, __alignof__(u64));
787 if (!bat_priv->bat_counters)
790 atomic_set(&bat_priv->aggregated_ogms, 1);
791 atomic_set(&bat_priv->bonding, 0);
793 atomic_set(&bat_priv->bridge_loop_avoidance, 1);
796 atomic_set(&bat_priv->distributed_arp_table, 1);
799 atomic_set(&bat_priv->multicast_mode, 1);
800 atomic_set(&bat_priv->multicast_fanout, 16);
801 atomic_set(&bat_priv->mcast.num_want_all_unsnoopables, 0);
802 atomic_set(&bat_priv->mcast.num_want_all_ipv4, 0);
803 atomic_set(&bat_priv->mcast.num_want_all_ipv6, 0);
805 atomic_set(&bat_priv->gw.mode, BATADV_GW_MODE_OFF);
806 atomic_set(&bat_priv->gw.bandwidth_down, 100);
807 atomic_set(&bat_priv->gw.bandwidth_up, 20);
808 atomic_set(&bat_priv->orig_interval, 1000);
809 atomic_set(&bat_priv->hop_penalty, 30);
811 atomic_set(&bat_priv->log_level, 0);
813 atomic_set(&bat_priv->fragmentation, 1);
814 atomic_set(&bat_priv->packet_size_max, ETH_DATA_LEN);
815 atomic_set(&bat_priv->bcast_queue_left, BATADV_BCAST_QUEUE_LEN);
816 atomic_set(&bat_priv->batman_queue_left, BATADV_BATMAN_QUEUE_LEN);
818 atomic_set(&bat_priv->mesh_state, BATADV_MESH_INACTIVE);
819 atomic_set(&bat_priv->bcast_seqno, 1);
820 atomic_set(&bat_priv->tt.vn, 0);
821 atomic_set(&bat_priv->tt.local_changes, 0);
822 atomic_set(&bat_priv->tt.ogm_append_cnt, 0);
824 atomic_set(&bat_priv->bla.num_requests, 0);
826 atomic_set(&bat_priv->tp_num, 0);
828 bat_priv->tt.last_changeset = NULL;
829 bat_priv->tt.last_changeset_len = 0;
830 bat_priv->isolation_mark = 0;
831 bat_priv->isolation_mark_mask = 0;
835 atomic_set(&bat_priv->frag_seqno, random_seqno);
837 bat_priv->primary_if = NULL;
839 batadv_nc_init_bat_priv(bat_priv);
841 ret = batadv_algo_select(bat_priv, batadv_routing_algo);
858 free_percpu(bat_priv->bat_counters);
859 bat_priv->bat_counters = NULL;
1004 struct batadv_priv *bat_priv = netdev_priv(dev);
1008 data[i] = batadv_sum_counter(bat_priv, i);
1036 /* some scheduled RCU callbacks need the bat_priv struct to accomplish
1038 * netdev and its private data (bat_priv)
1107 struct batadv_priv *bat_priv = netdev_priv(soft_iface);
1113 vlan = batadv_softif_vlan_get(bat_priv, BATADV_NO_FLAGS);
1115 batadv_softif_destroy_vlan(bat_priv, vlan);
1132 struct batadv_priv *bat_priv = netdev_priv(soft_iface);
1143 vlan = batadv_softif_vlan_get(bat_priv, BATADV_NO_FLAGS);
1145 batadv_softif_destroy_vlan(bat_priv, vlan);