]> git.baikalelectronics.ru Git - kernel.git/commit
ethtool: add tunnel info interface
authorJakub Kicinski <kuba@kernel.org>
Fri, 10 Jul 2020 00:42:47 +0000 (17:42 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 10 Jul 2020 20:54:00 +0000 (13:54 -0700)
commit618f144f32d266c3ff246f75e542a815d8eddb72
treef11b19ed2d80954df499dd87d3520784a3536157
parent6303b17c4ba29fac33e7eb9eeacd796c289d5dee
ethtool: add tunnel info interface

Add an interface to report offloaded UDP ports via ethtool netlink.

Now that core takes care of tracking which UDP tunnel ports the NICs
are aware of we can quite easily export this information out to
user space.

The responsibility of writing the netlink dumps is split between
ethtool code and udp_tunnel_nic.c - since udp_tunnel module may
not always be loaded, yet we should always report the capabilities
of the NIC.

$ ethtool --show-tunnels eth0
Tunnel information for eth0:
  UDP port table 0:
    Size: 4
    Types: vxlan
    No entries
  UDP port table 1:
    Size: 4
    Types: geneve, vxlan-gpe
    Entries (1):
        port 1230, vxlan-gpe

v4:
 - back to v2, build fix is now directly in udp_tunnel.h
v3:
 - don't compile ETHTOOL_MSG_TUNNEL_INFO_GET in if CONFIG_INET
   not set.
v2:
 - fix string set count,
 - reorder enums in the uAPI,
 - fix type of ETHTOOL_A_TUNNEL_UDP_TABLE_TYPES to bitset
   in docs and comments.

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
12 files changed:
Documentation/networking/ethtool-netlink.rst
include/net/udp_tunnel.h
include/uapi/linux/ethtool.h
include/uapi/linux/ethtool_netlink.h
net/ethtool/Makefile
net/ethtool/common.c
net/ethtool/common.h
net/ethtool/netlink.c
net/ethtool/netlink.h
net/ethtool/strset.c
net/ethtool/tunnels.c [new file with mode: 0644]
net/ipv4/udp_tunnel_nic.c