• Thomas Graf's avatar
    rtnetlink: Link address family API · f8ff182c
    Thomas Graf authored
    Each net_device contains address family specific data such as
    per device settings and statistics. We already expose this data
    via procfs/sysfs and partially netlink.
    
    The netlink method requires the requester to send one RTM_GETLINK
    request for each address family it wishes to receive data of
    and then merge this data itself.
    
    This patch implements a new API which combines all address family
    specific link data in a new netlink attribute IFLA_AF_SPEC.
    IFLA_AF_SPEC contains a sequence of nested attributes, one for each
    address family which in turn defines the structure of its own
    attribute. Example:
    
       [IFLA_AF_SPEC] = {
           [AF_INET] = {
               [IFLA_INET_CONF] = ...,
           },
           [AF_INET6] = {
               [IFLA_INET6_FLAGS] = ...,
               [IFLA_INET6_CONF] = ...,
           }
       }
    
    The API also allows for address families to implement a function
    which parses the IFLA_AF_SPEC attribute sent by userspace to
    implement address family specific link options.
    Signed-off-by: default avatarThomas Graf <tgraf@infradead.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    f8ff182c
rtnetlink.c 45.7 KB