Home
last modified time | relevance | path

Searched refs:hard_iface (Results 1 – 19 of 19) sorted by relevance

/linux/net/batman-adv/
H A Dhard-interface.c63 struct batadv_hard_iface *hard_iface; in batadv_hardif_release() local
65 hard_iface = container_of(ref, struct batadv_hard_iface, refcount); in batadv_hardif_release()
66 netdev_put(hard_iface->mesh_iface, &hard_iface->meshif_dev_tracker); in batadv_hardif_release()
67 netdev_put(hard_iface->net_dev, &hard_iface->dev_tracker); in batadv_hardif_release()
69 kfree_rcu(hard_iface, rcu); in batadv_hardif_release()
81 struct batadv_hard_iface *hard_iface; in batadv_hardif_get_by_netdev() local
90 hard_iface = netdev_lower_dev_get_private(mesh_iface, net_dev); in batadv_hardif_get_by_netdev()
91 if (!kref_get_unless_zero(&hard_iface->refcount)) in batadv_hardif_get_by_netdev()
94 return hard_iface; in batadv_hardif_get_by_netdev()
242 struct batadv_hard_iface *hard_iface = NULL; in __batadv_get_real_netdev() local
[all …]
H A Dbat_v_elp.c62 static void batadv_v_elp_start_timer(struct batadv_hard_iface *hard_iface) in batadv_v_elp_start_timer() argument
66 msecs = READ_ONCE(hard_iface->bat_v.elp_interval) - BATADV_JITTER; in batadv_v_elp_start_timer()
69 queue_delayed_work(batadv_event_workqueue, &hard_iface->bat_v.elp_wq, in batadv_v_elp_start_timer()
84 struct batadv_hard_iface *hard_iface = neigh->if_incoming; in batadv_v_elp_get_throughput() local
85 struct net_device *mesh_iface = hard_iface->mesh_iface; in batadv_v_elp_get_throughput()
96 throughput = READ_ONCE(hard_iface->bat_v.throughput_override); in batadv_v_elp_get_throughput()
105 wifi_flags = batadv_hardif_get_wifi_flags(hard_iface); in batadv_v_elp_get_throughput()
118 real_netdev = __batadv_get_real_netdev(hard_iface->net_dev); in batadv_v_elp_get_throughput()
169 ret = __ethtool_get_link_ksettings(hard_iface->net_dev, &link_settings); in batadv_v_elp_get_throughput()
174 hard_iface->bat_v.flags |= BATADV_FULL_DUPLEX; in batadv_v_elp_get_throughput()
[all …]
H A Dbat_v_ogm.c87 static void batadv_v_ogm_start_queue_timer(struct batadv_hard_iface *hard_iface) in batadv_v_ogm_start_queue_timer() argument
93 queue_delayed_work(batadv_event_workqueue, &hard_iface->bat_v.aggr_wq, in batadv_v_ogm_start_queue_timer()
123 struct batadv_hard_iface *hard_iface) in batadv_v_ogm_send_to_if() argument
125 struct batadv_priv *bat_priv = netdev_priv(hard_iface->mesh_iface); in batadv_v_ogm_send_to_if()
127 if (hard_iface->if_status != BATADV_IF_ACTIVE) { in batadv_v_ogm_send_to_if()
136 batadv_send_broadcast_skb(skb, hard_iface); in batadv_v_ogm_send_to_if()
164 struct batadv_hard_iface *hard_iface) in batadv_v_ogm_queue_left() argument
166 unsigned int max = min_t(unsigned int, hard_iface->net_dev->mtu, in batadv_v_ogm_queue_left()
170 lockdep_assert_held(&hard_iface->bat_v.aggr_list.lock); in batadv_v_ogm_queue_left()
172 return hard_iface->bat_v.aggr_len + ogm_len <= max; in batadv_v_ogm_queue_left()
[all …]
H A Dhard-interface.h68 u32 batadv_hardif_get_wifi_flags(struct batadv_hard_iface *hard_iface);
69 bool batadv_is_wifi_hardif(struct batadv_hard_iface *hard_iface);
74 void batadv_hardif_disable_interface(struct batadv_hard_iface *hard_iface);
88 static inline void batadv_hardif_put(struct batadv_hard_iface *hard_iface) in batadv_hardif_put() argument
90 if (!hard_iface) in batadv_hardif_put()
93 kref_put(&hard_iface->refcount, batadv_hardif_release); in batadv_hardif_put()
105 struct batadv_hard_iface *hard_iface; in batadv_primary_if_get_selected() local
108 hard_iface = rcu_dereference(bat_priv->primary_if); in batadv_primary_if_get_selected()
109 if (!hard_iface) in batadv_primary_if_get_selected()
112 if (!kref_get_unless_zero(&hard_iface->refcount)) in batadv_primary_if_get_selected()
[all …]
H A Doriginator.c533 const struct batadv_hard_iface *hard_iface, in batadv_neigh_node_get() argument
544 if (tmp_neigh_node->if_incoming != hard_iface) in batadv_neigh_node_get()
567 batadv_hardif_neigh_create(struct batadv_hard_iface *hard_iface, in batadv_hardif_neigh_create() argument
571 struct batadv_priv *bat_priv = netdev_priv(hard_iface->mesh_iface); in batadv_hardif_neigh_create()
574 spin_lock_bh(&hard_iface->neigh_list_lock); in batadv_hardif_neigh_create()
577 hardif_neigh = batadv_hardif_neigh_get(hard_iface, neigh_addr); in batadv_hardif_neigh_create()
585 kref_get(&hard_iface->refcount); in batadv_hardif_neigh_create()
589 hardif_neigh->if_incoming = hard_iface; in batadv_hardif_neigh_create()
597 hlist_add_head_rcu(&hardif_neigh->list, &hard_iface->neigh_list); in batadv_hardif_neigh_create()
600 spin_unlock_bh(&hard_iface->neigh_list_lock); in batadv_hardif_neigh_create()
[all …]
H A Dbat_v.c51 static void batadv_v_iface_activate(struct batadv_hard_iface *hard_iface) in batadv_v_iface_activate() argument
53 struct batadv_priv *bat_priv = netdev_priv(hard_iface->mesh_iface); in batadv_v_iface_activate()
59 batadv_v_elp_iface_activate(primary_if, hard_iface); in batadv_v_iface_activate()
67 if (hard_iface->if_status == BATADV_IF_TO_BE_ACTIVATED) in batadv_v_iface_activate()
68 hard_iface->if_status = BATADV_IF_ACTIVE; in batadv_v_iface_activate()
81 static int batadv_v_iface_enable(struct batadv_hard_iface *hard_iface) in batadv_v_iface_enable() argument
85 ret = batadv_v_elp_iface_enable(hard_iface); in batadv_v_iface_enable()
89 ret = batadv_v_ogm_iface_enable(hard_iface); in batadv_v_iface_enable()
91 batadv_v_elp_iface_disable(hard_iface); in batadv_v_iface_enable()
101 static void batadv_v_iface_disable(struct batadv_hard_iface *hard_iface) in batadv_v_iface_disable() argument
[all …]
H A Dbat_iv_ogm.c183 batadv_iv_ogm_neigh_new(struct batadv_hard_iface *hard_iface, in batadv_iv_ogm_neigh_new() argument
190 hard_iface, neigh_addr); in batadv_iv_ogm_neigh_new()
202 static int batadv_iv_ogm_iface_enable(struct batadv_hard_iface *hard_iface) in batadv_iv_ogm_iface_enable() argument
208 mutex_lock(&hard_iface->bat_iv.ogm_buff_mutex); in batadv_iv_ogm_iface_enable()
212 atomic_set(&hard_iface->bat_iv.ogm_seqno, random_seqno); in batadv_iv_ogm_iface_enable()
214 hard_iface->bat_iv.ogm_buff.len = BATADV_OGM_HLEN; in batadv_iv_ogm_iface_enable()
215 hard_iface->bat_iv.ogm_buff.capacity = BATADV_OGM_HLEN; in batadv_iv_ogm_iface_enable()
216 hard_iface->bat_iv.ogm_buff.header_length = BATADV_OGM_HLEN; in batadv_iv_ogm_iface_enable()
218 ogm_buff = kmalloc(hard_iface->bat_iv.ogm_buff.capacity, GFP_ATOMIC); in batadv_iv_ogm_iface_enable()
220 mutex_unlock(&hard_iface->bat_iv.ogm_buff_mutex); in batadv_iv_ogm_iface_enable()
[all …]
H A Dsend.c62 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()
600 const struct batadv_hard_iface *hard_iface) in batadv_forw_packet_list_steal() argument
[all …]
H A Dnetlink.c237 struct net_device *hard_iface; in batadv_netlink_mesh_fill() local
266 hard_iface = primary_if->net_dev; in batadv_netlink_mesh_fill()
269 hard_iface->ifindex) || in batadv_netlink_mesh_fill()
271 hard_iface->name) || in batadv_netlink_mesh_fill()
273 hard_iface->dev_addr)) in batadv_netlink_mesh_fill()
783 struct batadv_hard_iface *hard_iface, in batadv_netlink_hardif_fill() argument
788 struct net_device *net_dev = hard_iface->net_dev; in batadv_netlink_hardif_fill()
814 if (hard_iface->if_status == BATADV_IF_ACTIVE) { in batadv_netlink_hardif_fill()
820 READ_ONCE(hard_iface->hop_penalty))) in batadv_netlink_hardif_fill()
825 READ_ONCE(hard_iface->bat_v.elp_interval))) in batadv_netlink_hardif_fill()
[all …]
H A Dbat_v_elp.h14 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 Dmain.c346 const struct batadv_hard_iface *hard_iface; in batadv_is_my_mac() local
351 netdev_for_each_lower_private_rcu(bat_priv->mesh_iface, hard_iface, iter) { in batadv_is_my_mac()
352 if (hard_iface->if_status != BATADV_IF_ACTIVE) in batadv_is_my_mac()
355 if (batadv_compare_eth(hard_iface->net_dev->dev_addr, addr)) { in batadv_is_my_mac()
475 struct batadv_hard_iface *hard_iface; in batadv_batman_skb_recv() local
479 hard_iface = container_of(ptype, struct batadv_hard_iface, in batadv_batman_skb_recv()
486 if (!kref_get_unless_zero(&hard_iface->refcount)) in batadv_batman_skb_recv()
507 bat_priv = netdev_priv(hard_iface->mesh_iface); in batadv_batman_skb_recv()
513 if (hard_iface->if_status != BATADV_IF_ACTIVE) in batadv_batman_skb_recv()
529 (*batadv_rx_handler[idx])(skb, hard_iface); in batadv_batman_skb_recv()
[all...]
H A Dsend.h36 struct batadv_hard_iface *hard_iface,
39 struct batadv_hard_iface *hard_iface);
52 const struct batadv_hard_iface *hard_iface);
H A Dbat_v_ogm.h19 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 Dtypes.h2052 void (*activate)(struct batadv_hard_iface *hard_iface);
2055 int (*enable)(struct batadv_hard_iface *hard_iface);
2058 void (*enabled)(struct batadv_hard_iface *hard_iface);
2061 void (*disable)(struct batadv_hard_iface *hard_iface);
2067 void (*update_mac)(struct batadv_hard_iface *hard_iface);
2070 void (*primary_set)(struct batadv_hard_iface *hard_iface);
2102 struct batadv_hard_iface *hard_iface);
2112 struct batadv_hard_iface *hard_iface);
H A Dmesh-interface.c905 struct batadv_hard_iface *hard_iface; in batadv_meshif_slave_del()
908 hard_iface = batadv_hardif_get_by_netdev(slave_dev); in batadv_meshif_slave_del()
910 if (!hard_iface || hard_iface->mesh_iface != dev) in batadv_meshif_slave_del()
913 batadv_hardif_disable_interface(hard_iface); in batadv_meshif_slave_del()
917 batadv_hardif_put(hard_iface);
1157 struct batadv_hard_iface *hard_iface; in batadv_meshif_destroy_netlink()
1160 hard_iface = netdev_adjacent_get_private(mesh_iface->adj_list.lower.next); in batadv_meshif_destroy_netlink()
1161 batadv_hardif_disable_interface(hard_iface); in batadv_meshif_destroy_netlink()
902 struct batadv_hard_iface *hard_iface; batadv_meshif_slave_del() local
1154 struct batadv_hard_iface *hard_iface; batadv_meshif_destroy_netlink() local
H A Doriginator.h28 batadv_hardif_neigh_get(const struct batadv_hard_iface *hard_iface,
33 struct batadv_hard_iface *hard_iface,
H A Dmulticast.c248 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()
2114 struct batadv_hard_iface *hard_iface = NULL; in batadv_mcast_netlink_get_primary() local
2125 hard_iface = batadv_primary_if_get_selected(bat_priv); in batadv_mcast_netlink_get_primary()
2126 if (!hard_iface || hard_iface->if_status != BATADV_IF_ACTIVE) { in batadv_mcast_netlink_get_primary()
2135 *primary_if = hard_iface; in batadv_mcast_netlink_get_primary()
2137 batadv_hardif_put(hard_iface); in batadv_mcast_netlink_get_primary()
H A Drouting.h16 struct batadv_hard_iface *hard_iface,
H A Drouting.c183 struct batadv_hard_iface *hard_iface, in batadv_check_management_packet() argument