Lines Matching refs:upper
3079 * netif_inherit_tso_max() - copy all TSO limits from a lower device to an upper
5116 * the upper (protocol) levels to process via the backlog NAPI device. It
6793 /* upper master flag, there can only be one master device per list */
6830 * netdev_has_upper_dev - Check if device is linked to an upper device
6832 * @upper_dev: upper device to check
6834 * Find out if a device is linked to specified upper device and return true
6835 * in case it is. Note that this checks only immediate upper device,
6853 * netdev_has_upper_dev_all_rcu - Check if device is linked to an upper device
6855 * @upper_dev: upper device to check
6857 * Find out if a device is linked to specified upper device and return true
6858 * in case it is. Note that this checks the entire upper device chain.
6878 * Find out if a device is linked to an upper device and return true in case
6885 return !list_empty(&dev->adj_list.upper);
6890 * netdev_master_upper_dev_get - Get master upper device
6893 * Find a master upper device and return pointer to it or NULL in case
6898 struct netdev_adjacent *upper;
6902 if (list_empty(&dev->adj_list.upper))
6905 upper = list_first_entry(&dev->adj_list.upper,
6907 if (likely(upper->master))
6908 return upper->dev;
6915 struct netdev_adjacent *upper;
6919 if (list_empty(&dev->adj_list.upper))
6922 upper = list_first_entry(&dev->adj_list.upper,
6924 if (likely(upper->master) && !upper->ignore)
6925 return upper->dev;
6954 * netdev_upper_get_next_dev_rcu - Get the next dev from upper list
6958 * Gets the next device from the dev's upper list, starting from iter
6964 struct netdev_adjacent *upper;
6968 upper = list_entry_rcu((*iter)->next, struct netdev_adjacent, list);
6970 if (&upper->list == &dev->adj_list.upper)
6973 *iter = &upper->list;
6975 return upper->dev;
6983 struct netdev_adjacent *upper;
6985 upper = list_entry((*iter)->next, struct netdev_adjacent, list);
6987 if (&upper->list == &dev->adj_list.upper)
6990 *iter = &upper->list;
6991 *ignore = upper->ignore;
6993 return upper->dev;
6999 struct netdev_adjacent *upper;
7003 upper = list_entry_rcu((*iter)->next, struct netdev_adjacent, list);
7005 if (&upper->list == &dev->adj_list.upper)
7008 *iter = &upper->list;
7010 return upper->dev;
7024 iter = &dev->adj_list.upper;
7042 niter = &udev->adj_list.upper;
7072 iter = &dev->adj_list.upper;
7088 niter = &udev->adj_list.upper;
7354 for (iter = &dev->adj_list.upper,
7490 * netdev_master_upper_dev_get_rcu - Get master upper device
7493 * Find a master upper device and return pointer to it or NULL in case
7498 struct netdev_adjacent *upper;
7500 upper = list_first_or_null_rcu(&dev->adj_list.upper,
7502 if (upper && likely(upper->master))
7503 return upper->dev;
7514 sprintf(linkname, dev_list == &dev->adj_list.upper ?
7525 sprintf(linkname, dev_list == &dev->adj_list.upper ?
7534 return (dev_list == &dev->adj_list.upper ||
7679 &dev->adj_list.upper,
7688 &dev->adj_list.upper,
7716 /* To prevent loops, check if dev is not upper device to upper_dev. */
7765 * netdev_upper_dev_link - Add a link to the upper device
7767 * @upper_dev: new upper device
7770 * Adds a link to device which is upper to this one. The caller must hold
7790 * netdev_master_upper_dev_link - Add a master link to the upper device
7792 * @upper_dev: new upper device
7793 * @upper_priv: upper device private
7794 * @upper_info: upper info to be passed down via notifier
7797 * Adds a link to device which is upper to this one. In this case, only
7798 * one master upper device can be linked, although other non-master devices
7851 * netdev_upper_dev_unlink - Removes a link to upper device
7853 * @upper_dev: new upper device
7855 * Removes a link to device which is upper to this one. The caller must hold
7880 adj = __netdev_find_adj(upper_dev, &lower_dev->adj_list.upper);
8284 list_for_each_entry(iter, &dev->adj_list.upper, list) {
8290 &dev->adj_list.upper);
8297 &iter->dev->adj_list.upper);
8309 list_for_each_entry(iter, &dev->adj_list.upper, list) {
8315 &dev->adj_list.upper);
8322 &iter->dev->adj_list.upper);
8334 list_for_each_entry(iter, &dev->adj_list.upper, list) {
8347 &iter->dev->adj_list.upper);
8349 &iter->dev->adj_list.upper);
9255 struct net_device *upper;
9295 /* don't allow if an upper device already has a program */
9296 netdev_for_each_upper_dev_rcu(dev, upper, iter) {
9297 if (dev_xdp_prog_count(upper) > 0) {
9298 NL_SET_ERR_MSG(extack, "Cannot attach when an upper device already has a program");
9663 struct net_device *upper, netdev_features_t features)
9671 if (!(upper->wanted_features & feature)
9673 netdev_dbg(lower, "Dropping feature %pNF, upper dev %s has it off.\n",
9674 &feature, upper->name);
9682 static void netdev_sync_lower_features(struct net_device *upper,
9692 netdev_dbg(upper, "Disabling feature %pNF on lower dev %s.\n",
9698 netdev_WARN(upper, "failed to disable %pNF on %s!\n",
9808 struct net_device *upper, *lower;
9823 /* some features can't be enabled if they're off on an upper device */
9824 netdev_for_each_upper_dev_rcu(dev, upper, iter)
9825 features = netdev_sync_upper_features(dev, upper, features);
9850 * on an upper device (think: bonding master or bridge)
10815 INIT_LIST_HEAD(&dev->adj_list.upper);
11053 /* Notifier chain MUST detach us all upper devices. */