Lines Matching defs:mesh_iface
237 if (!hard_iface || !hard_iface->mesh_iface)
240 net = dev_net(hard_iface->mesh_iface);
442 batadv_hardif_get_active(struct net_device *mesh_iface)
448 netdev_for_each_lower_private_rcu(mesh_iface, hard_iface, iter) {
510 struct net_device *mesh_iface = hard_iface->mesh_iface;
514 if (!mesh_iface)
517 netdev_for_each_lower_private(mesh_iface, tmp_hard_iface, iter) {
536 * @mesh_iface: netdev struct of the mesh interface
538 static void batadv_hardif_recalc_extra_skbroom(struct net_device *mesh_iface)
548 netdev_for_each_lower_private_rcu(mesh_iface, hard_iface, iter) {
569 mesh_iface->needed_headroom = needed_headroom;
570 mesh_iface->needed_tailroom = lower_tailroom;
575 * @mesh_iface: netdev struct of the mesh interface
580 int batadv_hardif_min_mtu(struct net_device *mesh_iface)
582 struct batadv_priv *bat_priv = netdev_priv(mesh_iface);
588 netdev_for_each_lower_private_rcu(mesh_iface, hard_iface, iter) {
625 * @mesh_iface: netdev struct of the mesh interface
627 void batadv_update_min_mtu(struct net_device *mesh_iface)
629 struct batadv_priv *bat_priv = netdev_priv(mesh_iface);
633 mtu = batadv_hardif_min_mtu(mesh_iface);
641 dev_set_mtu(mesh_iface, mtu);
646 batadv_tt_local_resize_to_mtu(mesh_iface);
658 bat_priv = netdev_priv(hard_iface->mesh_iface);
670 batadv_info(hard_iface->mesh_iface, "Interface activated: %s\n",
673 batadv_update_min_mtu(hard_iface->mesh_iface);
691 batadv_info(hard_iface->mesh_iface, "Interface deactivated: %s\n",
694 batadv_update_min_mtu(hard_iface->mesh_iface);
700 * @mesh_iface: netdev struct of the mesh interface
705 struct net_device *mesh_iface)
715 required_mtu = READ_ONCE(mesh_iface->mtu) + max_header_len;
725 netdev_hold(mesh_iface, &hard_iface->meshif_dev_tracker, GFP_ATOMIC);
726 hard_iface->mesh_iface = mesh_iface;
727 bat_priv = netdev_priv(hard_iface->mesh_iface);
730 mesh_iface, hard_iface, NULL, NULL);
746 batadv_info(hard_iface->mesh_iface, "Adding interface: %s\n",
751 batadv_info(hard_iface->mesh_iface,
758 batadv_info(hard_iface->mesh_iface,
768 batadv_err(hard_iface->mesh_iface,
772 batadv_hardif_recalc_extra_skbroom(mesh_iface);
781 netdev_upper_dev_unlink(hard_iface->net_dev, mesh_iface);
783 hard_iface->mesh_iface = NULL;
784 netdev_put(mesh_iface, &hard_iface->meshif_dev_tracker);
791 * @mesh_iface: mesh interface to check
799 static size_t batadv_hardif_cnt(struct net_device *mesh_iface)
806 netdev_for_each_lower_private_rcu(mesh_iface, hard_iface, iter)
819 struct batadv_priv *bat_priv = netdev_priv(hard_iface->mesh_iface);
827 batadv_info(hard_iface->mesh_iface, "Removing interface: %s\n",
836 new_if = batadv_hardif_get_active(hard_iface->mesh_iface);
848 netdev_put(hard_iface->mesh_iface, &hard_iface->meshif_dev_tracker);
850 netdev_upper_dev_unlink(hard_iface->net_dev, hard_iface->mesh_iface);
851 batadv_hardif_recalc_extra_skbroom(hard_iface->mesh_iface);
854 if (batadv_hardif_cnt(hard_iface->mesh_iface) <= 1)
857 hard_iface->mesh_iface = NULL;
881 hard_iface->mesh_iface = NULL;
979 if (hard_iface->mesh_iface)
980 batadv_update_min_mtu(hard_iface->mesh_iface);
988 bat_priv = netdev_priv(hard_iface->mesh_iface);