• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/staging/batman-adv/

Lines Matching defs:batman_if

36 struct batman_if *get_batman_if_by_netdev(struct net_device *net_dev)
38 struct batman_if *batman_if;
41 list_for_each_entry_rcu(batman_if, &if_list, list) {
42 if (batman_if->net_dev == net_dev)
46 batman_if = NULL;
50 return batman_if;
80 static struct batman_if *get_active_batman_if(void)
82 struct batman_if *batman_if;
86 list_for_each_entry_rcu(batman_if, &if_list, list) {
87 if (batman_if->if_status == IF_ACTIVE)
91 batman_if = NULL;
95 return batman_if;
99 struct batman_if *batman_if)
103 bat_priv->primary_if = batman_if;
108 set_main_if_addr(batman_if->net_dev->dev_addr);
110 batman_packet = (struct batman_packet *)(batman_if->packet_buff);
121 static bool hardif_is_iface_up(struct batman_if *batman_if)
123 if (batman_if->net_dev->flags & IFF_UP)
129 static void update_mac_addresses(struct batman_if *batman_if)
131 if (!batman_if || !batman_if->packet_buff)
134 addr_to_string(batman_if->addr_str, batman_if->net_dev->dev_addr);
136 memcpy(((struct batman_packet *)(batman_if->packet_buff))->orig,
137 batman_if->net_dev->dev_addr, ETH_ALEN);
138 memcpy(((struct batman_packet *)(batman_if->packet_buff))->prev_sender,
139 batman_if->net_dev->dev_addr, ETH_ALEN);
144 struct batman_if *batman_if;
147 list_for_each_entry_rcu(batman_if, &if_list, list) {
148 if ((batman_if->if_status != IF_ACTIVE) &&
149 (batman_if->if_status != IF_TO_BE_ACTIVATED))
152 if (!compare_orig(batman_if->net_dev->dev_addr, addr))
156 "on: %s\n", addr, batman_if->dev);
165 struct batman_if *batman_if;
171 list_for_each_entry_rcu(batman_if, &if_list, list) {
172 if ((batman_if->if_status == IF_ACTIVE) ||
173 (batman_if->if_status == IF_TO_BE_ACTIVATED))
174 min_mtu = MIN(batman_if->net_dev->mtu - BAT_HEADER_LEN,
194 struct batman_if *batman_if)
196 if (batman_if->if_status != IF_INACTIVE)
199 update_mac_addresses(batman_if);
200 batman_if->if_status = IF_TO_BE_ACTIVATED;
207 set_primary_if(bat_priv, batman_if);
209 bat_info(net_dev, "Interface activated: %s\n", batman_if->dev);
219 struct batman_if *batman_if)
221 if ((batman_if->if_status != IF_ACTIVE) &&
222 (batman_if->if_status != IF_TO_BE_ACTIVATED))
225 batman_if->if_status = IF_INACTIVE;
227 bat_info(net_dev, "Interface deactivated: %s\n", batman_if->dev);
232 int hardif_enable_interface(struct batman_if *batman_if)
237 if (batman_if->if_status != IF_NOT_IN_USE)
240 batman_if->packet_len = BAT_PACKET_LEN;
241 batman_if->packet_buff = kmalloc(batman_if->packet_len, GFP_ATOMIC);
243 if (!batman_if->packet_buff) {
245 "out of memory\n", batman_if->dev);
249 batman_packet = (struct batman_packet *)(batman_if->packet_buff);
257 batman_if->if_num = bat_priv->num_ifaces;
259 batman_if->if_status = IF_INACTIVE;
260 orig_hash_add_if(batman_if, bat_priv->num_ifaces);
262 atomic_set(&batman_if->seqno, 1);
263 bat_info(soft_device, "Adding interface: %s\n", batman_if->dev);
265 if (hardif_is_iface_up(batman_if))
266 hardif_activate_interface(soft_device, bat_priv, batman_if);
270 batman_if->dev);
273 schedule_own_packet(batman_if);
282 void hardif_disable_interface(struct batman_if *batman_if)
286 if (batman_if->if_status == IF_ACTIVE)
287 hardif_deactivate_interface(soft_device, batman_if);
289 if (batman_if->if_status != IF_INACTIVE)
292 bat_info(soft_device, "Removing interface: %s\n", batman_if->dev);
294 orig_hash_del_if(batman_if, bat_priv->num_ifaces);
296 if (batman_if == bat_priv->primary_if)
299 kfree(batman_if->packet_buff);
300 batman_if->packet_buff = NULL;
301 batman_if->if_status = IF_NOT_IN_USE;
308 static struct batman_if *hardif_add_interface(struct net_device *net_dev)
310 struct batman_if *batman_if;
319 batman_if = kmalloc(sizeof(struct batman_if), GFP_ATOMIC);
320 if (!batman_if) {
326 batman_if->dev = kstrdup(net_dev->name, GFP_ATOMIC);
327 if (!batman_if->dev)
330 ret = sysfs_add_hardif(&batman_if->hardif_obj, net_dev);
334 batman_if->if_num = -1;
335 batman_if->net_dev = net_dev;
336 batman_if->if_status = IF_NOT_IN_USE;
337 batman_if->packet_buff = NULL;
338 INIT_LIST_HEAD(&batman_if->list);
340 check_known_mac_addr(batman_if->net_dev->dev_addr);
341 list_add_tail_rcu(&batman_if->list, &if_list);
342 return batman_if;
345 kfree(batman_if->dev);
347 kfree(batman_if);
356 struct batman_if *batman_if = container_of(rcu, struct batman_if, rcu);
358 /* delete all references to this batman_if */
360 purge_outstanding_packets(batman_if);
362 kfree(batman_if->dev);
363 kfree(batman_if);
366 static void hardif_remove_interface(struct batman_if *batman_if)
369 if (batman_if->if_status != IF_NOT_IN_USE)
370 hardif_disable_interface(batman_if);
372 if (batman_if->if_status != IF_NOT_IN_USE)
375 batman_if->if_status = IF_TO_BE_REMOVED;
376 list_del_rcu(&batman_if->list);
377 sysfs_del_hardif(&batman_if->hardif_obj);
378 dev_put(batman_if->net_dev);
379 call_rcu(&batman_if->rcu, hardif_free_interface);
384 struct batman_if *batman_if, *batman_if_tmp;
386 list_for_each_entry_safe(batman_if, batman_if_tmp, &if_list, list)
387 hardif_remove_interface(batman_if);
394 struct batman_if *batman_if = get_batman_if_by_netdev(net_dev);
397 if (!batman_if && event == NETDEV_REGISTER)
398 batman_if = hardif_add_interface(net_dev);
400 if (!batman_if)
405 hardif_activate_interface(soft_device, bat_priv, batman_if);
409 hardif_deactivate_interface(soft_device, batman_if);
412 hardif_remove_interface(batman_if);
417 check_known_mac_addr(batman_if->net_dev->dev_addr);
418 update_mac_addresses(batman_if);
419 if (batman_if == bat_priv->primary_if)
420 set_primary_if(bat_priv, batman_if);
437 struct batman_if *batman_if;
458 batman_if = get_batman_if_by_netdev(skb->dev);
459 if (!batman_if)
463 if (batman_if->if_status != IF_ACTIVE)
481 ret = recv_bat_packet(skb, batman_if);
491 ret = recv_unicast_packet(skb, batman_if);