| /linux/net/batman-adv/ |
| H A D | hard-interface.c | 52 struct batadv_hard_iface *hard_iface; in batadv_hardif_release() local 54 hard_iface = container_of(ref, struct batadv_hard_iface, refcount); in batadv_hardif_release() 55 netdev_put(hard_iface->net_dev, &hard_iface->dev_tracker); in batadv_hardif_release() 57 kfree_rcu(hard_iface, rcu); in batadv_hardif_release() 69 struct batadv_hard_iface *hard_iface; in batadv_hardif_get_by_netdev() local 72 list_for_each_entry_rcu(hard_iface, &batadv_hardif_list, list) { in batadv_hardif_get_by_netdev() 73 if (hard_iface->net_dev == net_dev && in batadv_hardif_get_by_netdev() 74 kref_get_unless_zero(&hard_iface->refcount)) in batadv_hardif_get_by_netdev() 78 hard_iface = NULL; in batadv_hardif_get_by_netdev() 82 return hard_iface; in batadv_hardif_get_by_netdev() [all …]
|
| H A D | bat_v_elp.c | 61 static void batadv_v_elp_start_timer(struct batadv_hard_iface *hard_iface) in batadv_v_elp_start_timer() argument 65 msecs = atomic_read(&hard_iface->bat_v.elp_interval) - BATADV_JITTER; in batadv_v_elp_start_timer() 68 queue_delayed_work(batadv_event_workqueue, &hard_iface->bat_v.elp_wq, in batadv_v_elp_start_timer() 83 struct batadv_hard_iface *hard_iface = neigh->if_incoming; in batadv_v_elp_get_throughput() local 84 struct net_device *mesh_iface = hard_iface->mesh_iface; in batadv_v_elp_get_throughput() 100 throughput = atomic_read(&hard_iface->bat_v.throughput_override); in batadv_v_elp_get_throughput() 109 if (batadv_is_wifi_hardif(hard_iface)) { in batadv_v_elp_get_throughput() 110 if (!batadv_is_cfg80211_hardif(hard_iface)) in batadv_v_elp_get_throughput() 121 real_netdev = __batadv_get_real_netdev(hard_iface->net_dev); in batadv_v_elp_get_throughput() 172 ret = __ethtool_get_link_ksettings(hard_iface->net_dev, &link_settings); in batadv_v_elp_get_throughput() [all …]
|
| H A D | bat_v_ogm.c | 85 static void batadv_v_ogm_start_queue_timer(struct batadv_hard_iface *hard_iface) in batadv_v_ogm_start_queue_timer() argument 91 queue_delayed_work(batadv_event_workqueue, &hard_iface->bat_v.aggr_wq, in batadv_v_ogm_start_queue_timer() 120 struct batadv_hard_iface *hard_iface) in batadv_v_ogm_send_to_if() argument 122 struct batadv_priv *bat_priv = netdev_priv(hard_iface->mesh_iface); in batadv_v_ogm_send_to_if() 124 if (hard_iface->if_status != BATADV_IF_ACTIVE) { in batadv_v_ogm_send_to_if() 133 batadv_send_broadcast_skb(skb, hard_iface); in batadv_v_ogm_send_to_if() 161 struct batadv_hard_iface *hard_iface) in batadv_v_ogm_queue_left() argument 163 unsigned int max = min_t(unsigned int, hard_iface->net_dev->mtu, in batadv_v_ogm_queue_left() 167 lockdep_assert_held(&hard_iface->bat_v.aggr_list.lock); in batadv_v_ogm_queue_left() 169 return hard_iface->bat_v.aggr_len + ogm_len <= max; in batadv_v_ogm_queue_left() [all …]
|
| H A D | hard-interface.h | 72 bool batadv_is_cfg80211_hardif(struct batadv_hard_iface *hard_iface); 73 bool batadv_is_wifi_hardif(struct batadv_hard_iface *hard_iface); 76 int batadv_hardif_enable_interface(struct batadv_hard_iface *hard_iface, 78 void batadv_hardif_disable_interface(struct batadv_hard_iface *hard_iface); 90 static inline void batadv_hardif_put(struct batadv_hard_iface *hard_iface) in batadv_hardif_put() argument 92 if (!hard_iface) in batadv_hardif_put() 95 kref_put(&hard_iface->refcount, batadv_hardif_release); in batadv_hardif_put() 107 struct batadv_hard_iface *hard_iface; in batadv_primary_if_get_selected() local 110 hard_iface = rcu_dereference(bat_priv->primary_if); in batadv_primary_if_get_selected() 111 if (!hard_iface) in batadv_primary_if_get_selected() [all …]
|
| H A D | originator.c | 531 const struct batadv_hard_iface *hard_iface, in batadv_neigh_node_get() argument 541 if (tmp_neigh_node->if_incoming != hard_iface) in batadv_neigh_node_get() 564 batadv_hardif_neigh_create(struct batadv_hard_iface *hard_iface, in batadv_hardif_neigh_create() argument 568 struct batadv_priv *bat_priv = netdev_priv(hard_iface->mesh_iface); in batadv_hardif_neigh_create() 571 spin_lock_bh(&hard_iface->neigh_list_lock); in batadv_hardif_neigh_create() 574 hardif_neigh = batadv_hardif_neigh_get(hard_iface, neigh_addr); in batadv_hardif_neigh_create() 582 kref_get(&hard_iface->refcount); in batadv_hardif_neigh_create() 586 hardif_neigh->if_incoming = hard_iface; in batadv_hardif_neigh_create() 594 hlist_add_head_rcu(&hardif_neigh->list, &hard_iface->neigh_list); in batadv_hardif_neigh_create() 597 spin_unlock_bh(&hard_iface->neigh_list_lock); in batadv_hardif_neigh_create() [all …]
|
| H A D | bat_v.c | 44 static void batadv_v_iface_activate(struct batadv_hard_iface *hard_iface) in batadv_v_iface_activate() argument 46 struct batadv_priv *bat_priv = netdev_priv(hard_iface->mesh_iface); in batadv_v_iface_activate() 52 batadv_v_elp_iface_activate(primary_if, hard_iface); in batadv_v_iface_activate() 60 if (hard_iface->if_status == BATADV_IF_TO_BE_ACTIVATED) in batadv_v_iface_activate() 61 hard_iface->if_status = BATADV_IF_ACTIVE; in batadv_v_iface_activate() 64 static int batadv_v_iface_enable(struct batadv_hard_iface *hard_iface) in batadv_v_iface_enable() argument 68 ret = batadv_v_elp_iface_enable(hard_iface); in batadv_v_iface_enable() 72 ret = batadv_v_ogm_iface_enable(hard_iface); in batadv_v_iface_enable() 74 batadv_v_elp_iface_disable(hard_iface); in batadv_v_iface_enable() 79 static void batadv_v_iface_disable(struct batadv_hard_iface *hard_iface) in batadv_v_iface_disable() argument [all …]
|
| H A D | bat_iv_ogm.c | 174 batadv_iv_ogm_neigh_new(struct batadv_hard_iface *hard_iface, in batadv_iv_ogm_neigh_new() argument 182 hard_iface, neigh_addr); in batadv_iv_ogm_neigh_new() 192 static int batadv_iv_ogm_iface_enable(struct batadv_hard_iface *hard_iface) in batadv_iv_ogm_iface_enable() argument 198 mutex_lock(&hard_iface->bat_iv.ogm_buff_mutex); in batadv_iv_ogm_iface_enable() 202 atomic_set(&hard_iface->bat_iv.ogm_seqno, random_seqno); in batadv_iv_ogm_iface_enable() 204 hard_iface->bat_iv.ogm_buff_len = BATADV_OGM_HLEN; in batadv_iv_ogm_iface_enable() 205 ogm_buff = kmalloc(hard_iface->bat_iv.ogm_buff_len, GFP_ATOMIC); in batadv_iv_ogm_iface_enable() 207 mutex_unlock(&hard_iface->bat_iv.ogm_buff_mutex); in batadv_iv_ogm_iface_enable() 211 hard_iface->bat_iv.ogm_buff = ogm_buff; in batadv_iv_ogm_iface_enable() 221 mutex_unlock(&hard_iface->bat_iv.ogm_buff_mutex); in batadv_iv_ogm_iface_enable() [all …]
|
| H A D | send.c | 62 struct batadv_hard_iface *hard_iface, in batadv_send_skb_packet() argument 68 if (hard_iface->if_status != BATADV_IF_ACTIVE) in batadv_send_skb_packet() 71 if (unlikely(!hard_iface->net_dev)) in batadv_send_skb_packet() 74 if (!(hard_iface->net_dev->flags & IFF_UP)) { in batadv_send_skb_packet() 76 hard_iface->net_dev->name); in batadv_send_skb_packet() 87 ether_addr_copy(ethhdr->h_source, hard_iface->net_dev->dev_addr); in batadv_send_skb_packet() 94 skb->dev = hard_iface->net_dev; in batadv_send_skb_packet() 117 struct batadv_hard_iface *hard_iface) in batadv_send_broadcast_skb() argument 121 return batadv_send_skb_packet(skb, hard_iface, broadcast_addr); in batadv_send_broadcast_skb() 595 const struct batadv_hard_iface *hard_iface) in batadv_forw_packet_list_steal() argument [all …]
|
| H A D | mesh-interface.c | 836 struct batadv_hard_iface *hard_iface; in batadv_meshif_slave_add() local 839 hard_iface = batadv_hardif_get_by_netdev(slave_dev); in batadv_meshif_slave_add() 840 if (!hard_iface || hard_iface->mesh_iface) in batadv_meshif_slave_add() 843 ret = batadv_hardif_enable_interface(hard_iface, dev); in batadv_meshif_slave_add() 846 batadv_hardif_put(hard_iface); in batadv_meshif_slave_add() 860 struct batadv_hard_iface *hard_iface; in batadv_meshif_slave_del() local 863 hard_iface = batadv_hardif_get_by_netdev(slave_dev); in batadv_meshif_slave_del() 865 if (!hard_iface || hard_iface->mesh_iface != dev) in batadv_meshif_slave_del() 868 batadv_hardif_disable_interface(hard_iface); in batadv_meshif_slave_del() 872 batadv_hardif_put(hard_iface); in batadv_meshif_slave_del() [all …]
|
| H A D | bat_v_elp.h | 14 int batadv_v_elp_iface_enable(struct batadv_hard_iface *hard_iface); 15 void batadv_v_elp_iface_disable(struct batadv_hard_iface *hard_iface); 17 struct batadv_hard_iface *hard_iface);
|
| H A D | send.h | 36 struct batadv_hard_iface *hard_iface, 39 struct batadv_hard_iface *hard_iface); 52 const struct batadv_hard_iface *hard_iface);
|
| H A D | bat_v_ogm.h | 19 int batadv_v_ogm_iface_enable(struct batadv_hard_iface *hard_iface); 20 void batadv_v_ogm_iface_disable(struct batadv_hard_iface *hard_iface);
|
| H A D | originator.h | 28 batadv_hardif_neigh_get(const struct batadv_hard_iface *hard_iface, 33 struct batadv_hard_iface *hard_iface,
|
| H A D | multicast.c | 248 const struct batadv_hard_iface *hard_iface; in batadv_mcast_mla_forw_flags_get() local 252 netdev_for_each_lower_private_rcu(bat_priv->mesh_iface, hard_iface, iter) { in batadv_mcast_mla_forw_flags_get() 253 if (hard_iface->if_status != BATADV_IF_ACTIVE) in batadv_mcast_mla_forw_flags_get() 256 if (hard_iface->net_dev->mtu < IPV6_MIN_MTU) { in batadv_mcast_mla_forw_flags_get() 2103 struct batadv_hard_iface *hard_iface = NULL; in batadv_mcast_netlink_get_primary() local 2114 hard_iface = batadv_primary_if_get_selected(bat_priv); in batadv_mcast_netlink_get_primary() 2115 if (!hard_iface || hard_iface->if_status != BATADV_IF_ACTIVE) { in batadv_mcast_netlink_get_primary() 2124 *primary_if = hard_iface; in batadv_mcast_netlink_get_primary() 2126 batadv_hardif_put(hard_iface); in batadv_mcast_netlink_get_primary()
|
| H A D | routing.h | 16 struct batadv_hard_iface *hard_iface,
|