From: Ilya Maximets <i.maximets@ovn.org>
To: netdev@vger.kernel.org
Cc: Andrew Lunn <andrew+netdev@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Simon Horman <horms@kernel.org>,
Aaron Conole <aconole@redhat.com>,
Eelco Chaudron <echaudro@redhat.com>,
David Ahern <dsahern@kernel.org>,
Ido Schimmel <idosch@nvidia.com>, Shuah Khan <shuah@kernel.org>,
Nikolay Aleksandrov <razor@blackwall.org>,
Kuniyuki Iwashima <kuniyu@google.com>,
Petr Machata <petrm@nvidia.com>,
Fernando Fernandez Mancera <fmancera@suse.de>,
Antoine Tenart <atenart@kernel.org>,
Stanislav Fomichev <sdf@fomichev.me>,
linux-kernel@vger.kernel.org, dev@openvswitch.org,
linux-kselftest@vger.kernel.org,
Ilya Maximets <i.maximets@ovn.org>
Subject: [RFC net-next 0/6] openvswitch: remove support for legacy tunnel ports
Date: Wed, 13 May 2026 20:35:20 +0200 [thread overview]
Message-ID: <20260513183559.2141010-1-i.maximets@ovn.org> (raw)
ovs-vswitchd doesn't use OVS_VPORT_TYPE_GRE/VXLAN/GENEVE with upstream
Linux kernel module since adding support for standard tunnel devices
with COLLECT_METADATA back in 2017. The code to use them is still
present, but it is only activated as a fallback for old kernels, so
not used in practice. And it is marked for removal in the next OVS
release this summer. Modern way to use tunnels with OVS is to create
standard tunnel ports with RTM_NEWLINK + COLLECT_METADATA and add them
as OVS_VPORT_TYPE_NETDEV.
Device reference management and the netlink options parsing for these
legacy port types is complicated and was a CVE magnet recently. Since
there are no actual users for these port types for a very long time,
let's just remove the support entirely.
There are 3 parts to this set:
1. The first patch does the tunnel port removal, which is the primary
goal here.
2. Patches 2 and 3 remove extra infrastructure that is no longer in
use by anything inside the openvswitch module. It may technically
be used by some out-of-tree module, but it is unlikely, so the
proposal here is to also just remove it. Or we can consider
deprecation. It's not really a user API, it's an API for modules.
Which can be considered as users, I guess. Not sure.
3. Patches 4-6 remove functions from gre/vxlan/geneve modules that
were added for openvswitch in the past to support the tunnel types.
And openvswitch is the only in-tree consumer of these functions,
so we could remove them. But they are also exported symbols, so
can in theory be used by some out-of-tree modules, though I doubt
that. Not sure what the process should be here. Removal seems
reasonable, but we may consider deprecation first.
Thoughts?
Ilya Maximets (6):
openvswitch: remove support for legacy tunnel types
openvswitch: vport: remove infrastructure for vport options
openvswitch: vport: remove infrastructure for separate modules
net: geneve: remove unused geneve_dev_create_fb
net: gre: remove unused gretap_fb_dev_create
net: vxlan: remove unused vxlan_dev_create
drivers/net/geneve.c | 48 -----
drivers/net/vxlan/vxlan_core.c | 42 +----
include/net/geneve.h | 5 -
include/net/gre.h | 2 -
include/net/vxlan.h | 3 -
include/uapi/linux/openvswitch.h | 31 +++-
net/ipv4/ip_gre.c | 47 -----
net/openvswitch/Kconfig | 35 ----
net/openvswitch/Makefile | 4 -
net/openvswitch/datapath.c | 22 +--
net/openvswitch/vport-geneve.c | 143 ---------------
net/openvswitch/vport-gre.c | 106 -----------
net/openvswitch/vport-netdev.c | 28 +--
net/openvswitch/vport-netdev.h | 3 +-
net/openvswitch/vport-vxlan.c | 172 ------------------
net/openvswitch/vport.c | 76 +-------
net/openvswitch/vport.h | 23 +--
tools/testing/selftests/net/config | 3 -
.../selftests/net/openvswitch/openvswitch.sh | 37 ----
.../selftests/net/openvswitch/ovs-dpctl.py | 93 +++-------
20 files changed, 59 insertions(+), 864 deletions(-)
delete mode 100644 net/openvswitch/vport-geneve.c
delete mode 100644 net/openvswitch/vport-gre.c
delete mode 100644 net/openvswitch/vport-vxlan.c
--
2.53.0
next reply other threads:[~2026-05-13 18:36 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-13 18:35 Ilya Maximets [this message]
2026-05-13 18:35 ` [RFC net-next 1/6] openvswitch: remove support for legacy tunnel types Ilya Maximets
2026-05-13 18:35 ` [RFC net-next 2/6] openvswitch: vport: remove infrastructure for vport options Ilya Maximets
2026-05-13 18:35 ` [RFC net-next 3/6] openvswitch: vport: remove infrastructure for separate modules Ilya Maximets
2026-05-13 18:35 ` [RFC net-next 4/6] net: geneve: remove unused geneve_dev_create_fb Ilya Maximets
2026-05-13 18:35 ` [RFC net-next 5/6] net: gre: remove unused gretap_fb_dev_create Ilya Maximets
2026-05-13 18:35 ` [RFC net-next 6/6] net: vxlan: remove unused vxlan_dev_create Ilya Maximets
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260513183559.2141010-1-i.maximets@ovn.org \
--to=i.maximets@ovn.org \
--cc=aconole@redhat.com \
--cc=andrew+netdev@lunn.ch \
--cc=atenart@kernel.org \
--cc=davem@davemloft.net \
--cc=dev@openvswitch.org \
--cc=dsahern@kernel.org \
--cc=echaudro@redhat.com \
--cc=edumazet@google.com \
--cc=fmancera@suse.de \
--cc=horms@kernel.org \
--cc=idosch@nvidia.com \
--cc=kuba@kernel.org \
--cc=kuniyu@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=petrm@nvidia.com \
--cc=razor@blackwall.org \
--cc=sdf@fomichev.me \
--cc=shuah@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox