Lines Matching refs:bat_priv
94 * @bat_priv: the bat priv with all the soft interface information
99 static u64 batadv_sum_counter(struct batadv_priv *bat_priv, size_t idx)
105 counters = per_cpu_ptr(bat_priv->bat_counters, cpu);
114 struct batadv_priv *bat_priv = netdev_priv(dev);
117 stats->tx_packets = batadv_sum_counter(bat_priv, BATADV_CNT_TX);
118 stats->tx_bytes = batadv_sum_counter(bat_priv, BATADV_CNT_TX_BYTES);
119 stats->tx_dropped = batadv_sum_counter(bat_priv, BATADV_CNT_TX_DROPPED);
120 stats->rx_packets = batadv_sum_counter(bat_priv, BATADV_CNT_RX);
121 stats->rx_bytes = batadv_sum_counter(bat_priv, BATADV_CNT_RX_BYTES);
127 struct batadv_priv *bat_priv = netdev_priv(dev);
139 if (atomic_read(&bat_priv->mesh_state) != BATADV_MESH_ACTIVE)
143 hlist_for_each_entry_rcu(vlan, &bat_priv->softif_vlan_list, list) {
144 batadv_tt_local_remove(bat_priv, old_addr, vlan->vid,
156 struct batadv_priv *bat_priv = netdev_priv(dev);
163 bat_priv->mtu_set_by_user = new_mtu;
184 struct batadv_priv *bat_priv = netdev_priv(soft_iface);
206 if (atomic_read(&bat_priv->mesh_state) != BATADV_MESH_ACTIVE)
240 if (batadv_bla_tx(bat_priv, skb, vid))
257 batadv_dat_snoop_outgoing_dhcp_ack(bat_priv, skb, proto, vid);
271 gw_mode = atomic_read(&bat_priv->gw.mode);
304 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_send_bcast_packet(bat_priv, skb, brd_delay, true);
361 ret = batadv_gw_out_of_range(bat_priv, skb);
364 ret = batadv_send_skb_via_gw(bat_priv, skb, vid);
366 ret = batadv_mcast_forw_send(bat_priv, skb, vid,
369 if (batadv_dat_snoop_outgoing_arp_request(bat_priv,
373 batadv_dat_snoop_outgoing_arp_reply(bat_priv, skb);
375 ret = batadv_send_skb_via_tt(bat_priv, skb, dst_hint,
382 batadv_inc_counter(bat_priv, BATADV_CNT_TX);
383 batadv_add_counter(bat_priv, BATADV_CNT_TX_BYTES, data_len);
389 batadv_inc_counter(bat_priv, BATADV_CNT_TX_DROPPED);
417 struct batadv_priv *bat_priv = netdev_priv(soft_iface);
460 batadv_inc_counter(bat_priv, BATADV_CNT_RX);
461 batadv_add_counter(bat_priv, BATADV_CNT_RX_BYTES,
467 if (batadv_bla_rx(bat_priv, skb, vid, packet_type))
471 batadv_tt_add_temporary_global_entry(bat_priv, orig_node,
478 if (batadv_vlan_ap_isola_get(bat_priv, vid) &&
479 batadv_tt_global_is_isolated(bat_priv, ethhdr->h_source,
484 skb->mark &= ~bat_priv->isolation_mark_mask;
485 skb->mark |= bat_priv->isolation_mark;
487 } else if (batadv_is_ap_isolated(bat_priv, ethhdr->h_source,
512 spin_lock_bh(&vlan->bat_priv->softif_vlan_list_lock);
514 spin_unlock_bh(&vlan->bat_priv->softif_vlan_list_lock);
521 * @bat_priv: the bat priv with all the soft interface information
527 struct batadv_softif_vlan *batadv_softif_vlan_get(struct batadv_priv *bat_priv,
533 hlist_for_each_entry_rcu(vlan_tmp, &bat_priv->softif_vlan_list, list) {
550 * @bat_priv: the bat priv with all the soft interface information
555 int batadv_softif_create_vlan(struct batadv_priv *bat_priv, unsigned short vid)
559 spin_lock_bh(&bat_priv->softif_vlan_list_lock);
561 vlan = batadv_softif_vlan_get(bat_priv, vid);
564 spin_unlock_bh(&bat_priv->softif_vlan_list_lock);
570 spin_unlock_bh(&bat_priv->softif_vlan_list_lock);
574 vlan->bat_priv = bat_priv;
581 hlist_add_head_rcu(&vlan->list, &bat_priv->softif_vlan_list);
582 spin_unlock_bh(&bat_priv->softif_vlan_list_lock);
587 batadv_tt_local_add(bat_priv->soft_iface,
588 bat_priv->soft_iface->dev_addr, vid,
599 * @bat_priv: the bat priv with all the soft interface information
602 static void batadv_softif_destroy_vlan(struct batadv_priv *bat_priv,
608 batadv_tt_local_remove(bat_priv, bat_priv->soft_iface->dev_addr,
628 struct batadv_priv *bat_priv = netdev_priv(dev);
645 vlan = batadv_softif_vlan_get(bat_priv, vid);
647 return batadv_softif_create_vlan(bat_priv, vid);
653 batadv_tt_local_add(bat_priv->soft_iface,
654 bat_priv->soft_iface->dev_addr, vid,
675 struct batadv_priv *bat_priv = netdev_priv(dev);
684 vlan = batadv_softif_vlan_get(bat_priv, vid | BATADV_VLAN_HAS_TAG);
688 batadv_softif_destroy_vlan(bat_priv, vlan);
734 struct batadv_priv *bat_priv;
741 bat_priv = netdev_priv(dev);
742 bat_priv->soft_iface = dev;
747 bat_priv->bat_counters = __alloc_percpu(cnt_len, __alignof__(u64));
748 if (!bat_priv->bat_counters)
751 atomic_set(&bat_priv->aggregated_ogms, 1);
752 atomic_set(&bat_priv->bonding, 0);
754 atomic_set(&bat_priv->bridge_loop_avoidance, 1);
757 atomic_set(&bat_priv->distributed_arp_table, 1);
760 atomic_set(&bat_priv->multicast_mode, 1);
761 atomic_set(&bat_priv->multicast_fanout, 16);
762 atomic_set(&bat_priv->mcast.num_want_all_unsnoopables, 0);
763 atomic_set(&bat_priv->mcast.num_want_all_ipv4, 0);
764 atomic_set(&bat_priv->mcast.num_want_all_ipv6, 0);
766 atomic_set(&bat_priv->gw.mode, BATADV_GW_MODE_OFF);
767 atomic_set(&bat_priv->gw.bandwidth_down, 100);
768 atomic_set(&bat_priv->gw.bandwidth_up, 20);
769 atomic_set(&bat_priv->orig_interval, 1000);
770 atomic_set(&bat_priv->hop_penalty, 30);
772 atomic_set(&bat_priv->log_level, 0);
774 atomic_set(&bat_priv->fragmentation, 1);
775 atomic_set(&bat_priv->packet_size_max, ETH_DATA_LEN);
776 atomic_set(&bat_priv->bcast_queue_left, BATADV_BCAST_QUEUE_LEN);
777 atomic_set(&bat_priv->batman_queue_left, BATADV_BATMAN_QUEUE_LEN);
779 atomic_set(&bat_priv->mesh_state, BATADV_MESH_INACTIVE);
780 atomic_set(&bat_priv->bcast_seqno, 1);
781 atomic_set(&bat_priv->tt.vn, 0);
782 atomic_set(&bat_priv->tt.local_changes, 0);
783 atomic_set(&bat_priv->tt.ogm_append_cnt, 0);
785 atomic_set(&bat_priv->bla.num_requests, 0);
787 atomic_set(&bat_priv->tp_num, 0);
789 bat_priv->tt.last_changeset = NULL;
790 bat_priv->tt.last_changeset_len = 0;
791 bat_priv->isolation_mark = 0;
792 bat_priv->isolation_mark_mask = 0;
796 atomic_set(&bat_priv->frag_seqno, random_seqno);
798 bat_priv->primary_if = NULL;
800 batadv_nc_init_bat_priv(bat_priv);
802 if (!bat_priv->algo_ops) {
803 ret = batadv_algo_select(bat_priv, batadv_routing_algo);
815 free_percpu(bat_priv->bat_counters);
816 bat_priv->bat_counters = NULL;
958 struct batadv_priv *bat_priv = netdev_priv(dev);
962 data[i] = batadv_sum_counter(bat_priv, i);
989 /* some scheduled RCU callbacks need the bat_priv struct to accomplish
991 * netdev and its private data (bat_priv)
1061 struct batadv_priv *bat_priv = netdev_priv(dev);
1067 err = batadv_algo_select(bat_priv, algo_name);
1084 struct batadv_priv *bat_priv = netdev_priv(soft_iface);
1094 vlan = batadv_softif_vlan_get(bat_priv, BATADV_NO_FLAGS);
1096 batadv_softif_destroy_vlan(bat_priv, vlan);