• Johannes Berg's avatar
    rtnetlink: add IFLA_PARENT_[DEV|DEV_BUS]_NAME · 00e77ed8
    Johannes Berg authored
    In some cases, for example in the upcoming WWAN framework changes,
    there's no natural "parent netdev", so sometimes dummy netdevs are
    created or similar. IFLA_PARENT_DEV_NAME is a new attribute intended to
    contain a device (sysfs, struct device) name that can be used instead
    when creating a new netdev, if the rtnetlink family implements it.
    
    As suggested by Parav Pandit, we also introduce IFLA_PARENT_DEV_BUS_NAME
    attribute in order to uniquely identify a device on the system (with
    bus/name pair).
    
    ip-link(8) support for the generic parent device attributes will help
    us avoid code duplication, so no other link type will require a custom
    code to handle the parent name attribute. E.g. the WWAN interface
    creation command will looks like this:
    
    $ ip link add wwan0-1 parent-dev wwan0 type wwan channel-id 1
    
    So, some future subsystem (or driver) FOO will have an interface
    creation command that looks like this:
    
    $ ip link add foo1-3 parent-dev foo1 type foo bar-id 3 baz-type Y
    
    Below is an example of dumping link info of a random device with these
    new attributes:
    
    $ ip --details link show wlp0s20f3
      4: wlp0s20f3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue
         state UP mode DORMANT group default qlen 1000
         ...
         parent_bus pci parent_dev 0000:00:14.3
    Co-developed-by: default avatarSergey Ryazanov <ryazanov.s.a@gmail.com>
    Signed-off-by: default avatarSergey Ryazanov <ryazanov.s.a@gmail.com>
    Co-developed-by: default avatarLoic Poulain <loic.poulain@linaro.org>
    Signed-off-by: default avatarLoic Poulain <loic.poulain@linaro.org>
    Suggested-by: default avatarSergey Ryazanov <ryazanov.s.a@gmail.com>
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    00e77ed8
rtnetlink.c 137 KB