Lines Matching refs:bat_priv
113 static u64 batadv_sum_counter(struct batadv_priv *bat_priv, size_t idx) in batadv_sum_counter() argument
119 counters = per_cpu_ptr(bat_priv->bat_counters, cpu); in batadv_sum_counter()
128 struct batadv_priv *bat_priv = netdev_priv(dev); in batadv_interface_stats() local
131 stats->tx_packets = batadv_sum_counter(bat_priv, BATADV_CNT_TX); in batadv_interface_stats()
132 stats->tx_bytes = batadv_sum_counter(bat_priv, BATADV_CNT_TX_BYTES); in batadv_interface_stats()
133 stats->tx_dropped = batadv_sum_counter(bat_priv, BATADV_CNT_TX_DROPPED); in batadv_interface_stats()
134 stats->rx_packets = batadv_sum_counter(bat_priv, BATADV_CNT_RX); in batadv_interface_stats()
135 stats->rx_bytes = batadv_sum_counter(bat_priv, BATADV_CNT_RX_BYTES); in batadv_interface_stats()
141 struct batadv_priv *bat_priv = netdev_priv(dev); in batadv_interface_set_mac_addr() local
153 if (atomic_read(&bat_priv->mesh_state) != BATADV_MESH_ACTIVE) in batadv_interface_set_mac_addr()
157 hlist_for_each_entry_rcu(vlan, &bat_priv->softif_vlan_list, list) { in batadv_interface_set_mac_addr()
158 batadv_tt_local_remove(bat_priv, old_addr, vlan->vid, in batadv_interface_set_mac_addr()
195 struct batadv_priv *bat_priv = netdev_priv(soft_iface); in batadv_interface_tx() local
216 if (atomic_read(&bat_priv->mesh_state) != BATADV_MESH_ACTIVE) in batadv_interface_tx()
243 if (batadv_bla_tx(bat_priv, skb, vid)) in batadv_interface_tx()
271 gw_mode = atomic_read(&bat_priv->gw.mode); in batadv_interface_tx()
304 forw_mode = batadv_mcast_forw_mode(bat_priv, skb, in batadv_interface_tx()
318 primary_if = batadv_primary_if_get_selected(bat_priv); in batadv_interface_tx()
326 if (batadv_dat_snoop_outgoing_arp_request(bat_priv, skb)) in batadv_interface_tx()
347 seqno = atomic_inc_return(&bat_priv->bcast_seqno); in batadv_interface_tx()
350 batadv_add_bcast_packet_to_list(bat_priv, skb, brd_delay, true); in batadv_interface_tx()
361 ret = batadv_gw_out_of_range(bat_priv, skb); in batadv_interface_tx()
364 ret = batadv_send_skb_via_gw(bat_priv, skb, vid); in batadv_interface_tx()
366 ret = batadv_send_skb_unicast(bat_priv, skb, in batadv_interface_tx()
370 if (batadv_dat_snoop_outgoing_arp_request(bat_priv, in batadv_interface_tx()
374 batadv_dat_snoop_outgoing_arp_reply(bat_priv, skb); in batadv_interface_tx()
376 ret = batadv_send_skb_via_tt(bat_priv, skb, dst_hint, in batadv_interface_tx()
383 batadv_inc_counter(bat_priv, BATADV_CNT_TX); in batadv_interface_tx()
384 batadv_add_counter(bat_priv, BATADV_CNT_TX_BYTES, data_len); in batadv_interface_tx()
390 batadv_inc_counter(bat_priv, BATADV_CNT_TX_DROPPED); in batadv_interface_tx()
421 struct batadv_priv *bat_priv = netdev_priv(soft_iface); in batadv_interface_rx() local
464 batadv_inc_counter(bat_priv, BATADV_CNT_RX); in batadv_interface_rx()
465 batadv_add_counter(bat_priv, BATADV_CNT_RX_BYTES, in batadv_interface_rx()
471 if (batadv_bla_rx(bat_priv, skb, vid, is_bcast)) in batadv_interface_rx()
475 batadv_tt_add_temporary_global_entry(bat_priv, orig_node, in batadv_interface_rx()
482 if (batadv_vlan_ap_isola_get(bat_priv, vid) && in batadv_interface_rx()
483 batadv_tt_global_is_isolated(bat_priv, ethhdr->h_source, in batadv_interface_rx()
488 skb->mark &= ~bat_priv->isolation_mark_mask; in batadv_interface_rx()
489 skb->mark |= bat_priv->isolation_mark; in batadv_interface_rx()
491 } else if (batadv_is_ap_isolated(bat_priv, ethhdr->h_source, in batadv_interface_rx()
516 spin_lock_bh(&vlan->bat_priv->softif_vlan_list_lock); in batadv_softif_vlan_release()
518 spin_unlock_bh(&vlan->bat_priv->softif_vlan_list_lock); in batadv_softif_vlan_release()
544 struct batadv_softif_vlan *batadv_softif_vlan_get(struct batadv_priv *bat_priv, in batadv_softif_vlan_get() argument
550 hlist_for_each_entry_rcu(vlan_tmp, &bat_priv->softif_vlan_list, list) { in batadv_softif_vlan_get()
572 int batadv_softif_create_vlan(struct batadv_priv *bat_priv, unsigned short vid) in batadv_softif_create_vlan() argument
577 spin_lock_bh(&bat_priv->softif_vlan_list_lock); in batadv_softif_create_vlan()
579 vlan = batadv_softif_vlan_get(bat_priv, vid); in batadv_softif_create_vlan()
582 spin_unlock_bh(&bat_priv->softif_vlan_list_lock); in batadv_softif_create_vlan()
588 spin_unlock_bh(&bat_priv->softif_vlan_list_lock); in batadv_softif_create_vlan()
592 vlan->bat_priv = bat_priv; in batadv_softif_create_vlan()
599 hlist_add_head_rcu(&vlan->list, &bat_priv->softif_vlan_list); in batadv_softif_create_vlan()
600 spin_unlock_bh(&bat_priv->softif_vlan_list_lock); in batadv_softif_create_vlan()
605 err = batadv_sysfs_add_vlan(bat_priv->soft_iface, vlan); in batadv_softif_create_vlan()
618 batadv_tt_local_add(bat_priv->soft_iface, in batadv_softif_create_vlan()
619 bat_priv->soft_iface->dev_addr, vid, in batadv_softif_create_vlan()
633 static void batadv_softif_destroy_vlan(struct batadv_priv *bat_priv, in batadv_softif_destroy_vlan() argument
639 batadv_tt_local_remove(bat_priv, bat_priv->soft_iface->dev_addr, in batadv_softif_destroy_vlan()
642 batadv_sysfs_del_vlan(bat_priv, vlan); in batadv_softif_destroy_vlan()
660 struct batadv_priv *bat_priv = netdev_priv(dev); in batadv_interface_add_vid() local
678 vlan = batadv_softif_vlan_get(bat_priv, vid); in batadv_interface_add_vid()
680 return batadv_softif_create_vlan(bat_priv, vid); in batadv_interface_add_vid()
686 ret = batadv_sysfs_add_vlan(bat_priv->soft_iface, vlan); in batadv_interface_add_vid()
697 batadv_tt_local_add(bat_priv->soft_iface, in batadv_interface_add_vid()
698 bat_priv->soft_iface->dev_addr, vid, in batadv_interface_add_vid()
719 struct batadv_priv *bat_priv = netdev_priv(dev); in batadv_interface_kill_vid() local
728 vlan = batadv_softif_vlan_get(bat_priv, vid | BATADV_VLAN_HAS_TAG); in batadv_interface_kill_vid()
732 batadv_softif_destroy_vlan(bat_priv, vlan); in batadv_interface_kill_vid()
778 struct batadv_priv *bat_priv; in batadv_softif_init_late() local
785 bat_priv = netdev_priv(dev); in batadv_softif_init_late()
786 bat_priv->soft_iface = dev; in batadv_softif_init_late()
791 bat_priv->bat_counters = __alloc_percpu(cnt_len, __alignof__(u64)); in batadv_softif_init_late()
792 if (!bat_priv->bat_counters) in batadv_softif_init_late()
795 atomic_set(&bat_priv->aggregated_ogms, 1); in batadv_softif_init_late()
796 atomic_set(&bat_priv->bonding, 0); in batadv_softif_init_late()
798 atomic_set(&bat_priv->bridge_loop_avoidance, 1); in batadv_softif_init_late()
801 atomic_set(&bat_priv->distributed_arp_table, 1); in batadv_softif_init_late()
804 bat_priv->mcast.querier_ipv4.exists = false; in batadv_softif_init_late()
805 bat_priv->mcast.querier_ipv4.shadowing = false; in batadv_softif_init_late()
806 bat_priv->mcast.querier_ipv6.exists = false; in batadv_softif_init_late()
807 bat_priv->mcast.querier_ipv6.shadowing = false; in batadv_softif_init_late()
808 bat_priv->mcast.flags = BATADV_NO_FLAGS; in batadv_softif_init_late()
809 atomic_set(&bat_priv->multicast_mode, 1); in batadv_softif_init_late()
810 atomic_set(&bat_priv->mcast.num_want_all_unsnoopables, 0); in batadv_softif_init_late()
811 atomic_set(&bat_priv->mcast.num_want_all_ipv4, 0); in batadv_softif_init_late()
812 atomic_set(&bat_priv->mcast.num_want_all_ipv6, 0); in batadv_softif_init_late()
814 atomic_set(&bat_priv->gw.mode, BATADV_GW_MODE_OFF); in batadv_softif_init_late()
815 atomic_set(&bat_priv->gw.bandwidth_down, 100); in batadv_softif_init_late()
816 atomic_set(&bat_priv->gw.bandwidth_up, 20); in batadv_softif_init_late()
817 atomic_set(&bat_priv->orig_interval, 1000); in batadv_softif_init_late()
818 atomic_set(&bat_priv->hop_penalty, 30); in batadv_softif_init_late()
820 atomic_set(&bat_priv->log_level, 0); in batadv_softif_init_late()
822 atomic_set(&bat_priv->fragmentation, 1); in batadv_softif_init_late()
823 atomic_set(&bat_priv->packet_size_max, ETH_DATA_LEN); in batadv_softif_init_late()
824 atomic_set(&bat_priv->bcast_queue_left, BATADV_BCAST_QUEUE_LEN); in batadv_softif_init_late()
825 atomic_set(&bat_priv->batman_queue_left, BATADV_BATMAN_QUEUE_LEN); in batadv_softif_init_late()
827 atomic_set(&bat_priv->mesh_state, BATADV_MESH_INACTIVE); in batadv_softif_init_late()
828 atomic_set(&bat_priv->bcast_seqno, 1); in batadv_softif_init_late()
829 atomic_set(&bat_priv->tt.vn, 0); in batadv_softif_init_late()
830 atomic_set(&bat_priv->tt.local_changes, 0); in batadv_softif_init_late()
831 atomic_set(&bat_priv->tt.ogm_append_cnt, 0); in batadv_softif_init_late()
833 atomic_set(&bat_priv->bla.num_requests, 0); in batadv_softif_init_late()
835 atomic_set(&bat_priv->tp_num, 0); in batadv_softif_init_late()
837 bat_priv->tt.last_changeset = NULL; in batadv_softif_init_late()
838 bat_priv->tt.last_changeset_len = 0; in batadv_softif_init_late()
839 bat_priv->isolation_mark = 0; in batadv_softif_init_late()
840 bat_priv->isolation_mark_mask = 0; in batadv_softif_init_late()
844 atomic_set(&bat_priv->frag_seqno, random_seqno); in batadv_softif_init_late()
846 bat_priv->primary_if = NULL; in batadv_softif_init_late()
847 bat_priv->num_ifaces = 0; in batadv_softif_init_late()
849 batadv_nc_init_bat_priv(bat_priv); in batadv_softif_init_late()
851 ret = batadv_algo_select(bat_priv, batadv_routing_algo); in batadv_softif_init_late()
868 free_percpu(bat_priv->bat_counters); in batadv_softif_init_late()
869 bat_priv->bat_counters = NULL; in batadv_softif_init_late()
1014 struct batadv_priv *bat_priv = netdev_priv(dev); in batadv_get_ethtool_stats() local
1018 data[i] = batadv_sum_counter(bat_priv, i); in batadv_get_ethtool_stats()
1116 struct batadv_priv *bat_priv = netdev_priv(soft_iface); in batadv_softif_destroy_sysfs() local
1122 vlan = batadv_softif_vlan_get(bat_priv, BATADV_NO_FLAGS); in batadv_softif_destroy_sysfs()
1124 batadv_softif_destroy_vlan(bat_priv, vlan); in batadv_softif_destroy_sysfs()
1141 struct batadv_priv *bat_priv = netdev_priv(soft_iface); in batadv_softif_destroy_netlink() local
1152 vlan = batadv_softif_vlan_get(bat_priv, BATADV_NO_FLAGS); in batadv_softif_destroy_netlink()
1154 batadv_softif_destroy_vlan(bat_priv, vlan); in batadv_softif_destroy_netlink()