Tunnel support is in upstream Linux kernel since 2013.  However,
despite the FAQ saying so, I'm not aware of actual attempts to bring
support for LISP tunnels upstream.  The only available implementation
is in OOT kernel module shipped with OVS 2.17.  It is deprecated and
will reach EoL in Feb 2025.

Mark the tunnel port type as deprecated, so we can fully remove the
support once the only available implementation reaches end of life
together with OVS 2.17.

Signed-off-by: Ilya Maximets <[email protected]>
---
 Documentation/faq/releases.rst | 16 +++++-----------
 Documentation/howto/lisp.rst   |  4 ++++
 NEWS                           |  3 +++
 include/linux/openvswitch.h    |  2 +-
 lib/netdev-vport.c             |  1 +
 tests/tunnel.at                |  2 +-
 vswitchd/vswitch.xml           |  7 +++++++
 7 files changed, 22 insertions(+), 13 deletions(-)

diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index d345b63d5..30f47a1b0 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -141,7 +141,7 @@ Q: Are all features available with all datapaths?
     Conntrack NAT                   4.6            2.6          2.8      YES
     Conntrack NAT6                  4.6            2.6          2.8      3.0
     Conntrack Helper Persist.       YES            YES          3.3      NO
-    Tunnel - LISP                   NO             2.11         NO       NO
+    Tunnel - LISP (deprecated)      NO             2.11         NO       NO
     Tunnel - STT                    NO             2.4          NO       YES
     Tunnel - GRE                    3.11           1.0          2.4      YES
     Tunnel - VXLAN                  3.12           1.10         2.4      YES
@@ -270,16 +270,10 @@ Q: I get an error like this when I configure Open vSwitch:
 Q: What features are not available in the Open vSwitch kernel datapath that
 ships as part of the upstream Linux kernel?
 
-    A: The kernel module in upstream Linux does not include support for LISP.
-    Work is in progress to add support for LISP to the upstream Linux version
-    of the Open vSwitch kernel module. For now, if you need this feature, use
-    the kernel module from the Open vSwitch distribution instead of the
-    upstream Linux kernel module.
-
-    Certain features require kernel support to function or to have reasonable
-    performance. If the ovs-vswitchd log file indicates that a feature is not
-    supported, consider upgrading to a newer upstream Linux release or using
-    the kernel module paired with the userspace distribution.
+    A: Certain features require kernel support to function or to have
+    reasonable performance.  If the ovs-vswitchd log file indicates that a
+    feature is not supported, consider upgrading to a newer upstream Linux
+    release or using the kernel module paired with the userspace distribution.
 
     Please note that as of Open vSwitch 3.0 the kernel module is no longer
     part of the Open vSwitch distribution.
diff --git a/Documentation/howto/lisp.rst b/Documentation/howto/lisp.rst
index f9a329eff..f46a1bcaa 100644
--- a/Documentation/howto/lisp.rst
+++ b/Documentation/howto/lisp.rst
@@ -25,6 +25,10 @@
 Using LISP tunneling
 ====================
 
+.. warning::
+
+   LISP tunnel port type is deprecated and will be removed in OVS 3.6.
+
 LISP is a layer 3 tunneling mechanism, meaning that encapsulated packets do not
 carry Ethernet headers, and ARP requests shouldn't be sent over the tunnel.
 Because of this, there are some additional steps required for setting up LISP
diff --git a/NEWS b/NEWS
index 6e3f56d73..9ea8addf3 100644
--- a/NEWS
+++ b/NEWS
@@ -25,6 +25,9 @@ Post-v3.4.0
        formats.
    - DPDK:
      * OVS validated with DPDK 23.11.2.
+   - Tunnels:
+     * LISP tunnel port type is deprecated and will be removed in the next
+       release.
 
 
 v3.4.0 - 15 Aug 2024
diff --git a/include/linux/openvswitch.h b/include/linux/openvswitch.h
index 0023b65fb..a44b93830 100644
--- a/include/linux/openvswitch.h
+++ b/include/linux/openvswitch.h
@@ -247,7 +247,7 @@ enum ovs_vport_type {
        OVS_VPORT_TYPE_GRE,      /* GRE tunnel. */
        OVS_VPORT_TYPE_VXLAN,    /* VXLAN tunnel. */
        OVS_VPORT_TYPE_GENEVE,   /* Geneve tunnel. */
-       OVS_VPORT_TYPE_LISP = 105,  /* LISP tunnel */
+       OVS_VPORT_TYPE_LISP = 105,  /* LISP tunnel (deprecated). */
        OVS_VPORT_TYPE_STT = 106, /* STT tunnel */
        OVS_VPORT_TYPE_ERSPAN = 107, /* ERSPAN tunnel. */
        OVS_VPORT_TYPE_IP6ERSPAN = 108, /* ERSPAN tunnel. */
diff --git a/lib/netdev-vport.c b/lib/netdev-vport.c
index 234a4ebe1..cd011c6a8 100644
--- a/lib/netdev-vport.c
+++ b/lib/netdev-vport.c
@@ -226,6 +226,7 @@ netdev_vport_construct(struct netdev *netdev_)
         update_vxlan_global_cfg(netdev_, NULL, tnl_cfg);
     } else if (!strcmp(type, "lisp")) {
         tnl_cfg->dst_port = port ? htons(port) : htons(LISP_DST_PORT);
+        VLOG_WARN("%s: 'lisp' port type is deprecated.", name);
     } else if (!strcmp(type, "stt")) {
         tnl_cfg->dst_port = port ? htons(port) : htons(STT_DST_PORT);
     } else if (!strcmp(type, "gtpu")) {
diff --git a/tests/tunnel.at b/tests/tunnel.at
index 31e935901..c2a401390 100644
--- a/tests/tunnel.at
+++ b/tests/tunnel.at
@@ -573,7 +573,7 @@ AT_CHECK([ovs-appctl dpif/show | tail -n +3], [0], [dnl
     p1 1/4341: (lisp: remote_ip=1.1.1.1)
 ])
 
-OVS_VSWITCHD_STOP
+OVS_VSWITCHD_STOP(["/'lisp' port type is deprecated/d"])
 AT_CLEANUP
 
 AT_SETUP([tunnel - ERSPAN])
diff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml
index 762558459..c4c2dacd3 100644
--- a/vswitchd/vswitch.xml
+++ b/vswitchd/vswitch.xml
@@ -2825,6 +2825,9 @@
 
           <dt><code>lisp</code></dt>
           <dd>
+            <p>
+              This port type is deprecated.
+            </p>
             <p>
               A layer 3 tunnel over the experimental, UDP-based Locator/ID
               Separation Protocol (RFC 6830).
@@ -3095,6 +3098,10 @@
         <column name="options" key="packet_type"
                 type='{"type": "string", "enum": ["set",
                       ["legacy_l3", "ptap"]]}'>
+          <p>
+            LISP tunnel type is deprecated.
+          </p>
+
           <p>
             A LISP tunnel sends and receives only IPv4 and IPv6 packets.  This
             option controls what how the tunnel represents the packets that it
-- 
2.47.0

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to