On Tue, Dec 10, 2024 at 10:30 AM Ales Musil <[email protected]> wrote:

>
>
> On Thu, Dec 5, 2024 at 1:28 PM Ilya Maximets <[email protected]> wrote:
>
>> STT tunnel support will be deprecated in upcoming OVS 3.5 release and
>> planned for removal in OVS 3.6.
>>
>
>
> Hi Ilya,
>
> thank you for the patch. I have two small comments that could be addressed
> during merge.
> We should leave a note in "enum chassis_tunnel_type" about the deprecation.
>
>
>> The main reasons are:
>>
>>   STT tunnel implementation was rejected in the upstream Linux kernel
>>   long time ago and will probably never be there, because it is
>>   not considered safe for use, as it can confuse parts of the network
>>   mistaking it for normal TCP.
>>
>>   The only available implementation for Linux is an OOT openvswitch
>>   kernel module shipped with OVS 2.17.  This module is deprecated and
>>   2.17 reaches EoL in Feb 2025.  At that point there will be no
>>   supported implementation for Linux.
>>
>>   The standard draft for the protocol itself is also expired and
>>   archived with the latest update made in 2016:
>>     https://datatracker.ietf.org/doc/draft-davie-stt/
>>
>>   Modern network interface cards support various hardware offload
>>   features with UDP tunnels, diminishing the main selling point of
>>   STT - the ability to reuse hardware offload features meant for TCP.
>>
>> Deprecate the STT encapsulation type in OVN as well, so support can
>> be removed in 25.06.
>>
>
> nit: 25.09 we don't have 25.06 anymore.
>
>
>>
>> Signed-off-by: Ilya Maximets <[email protected]>
>> ---
>>
>> The corresponding OVS patch:
>>
>> https://patchwork.ozlabs.org/project/openvswitch/patch/[email protected]/
>>
>> The OVS change is not applied yet, so maybe wait for it to be in ovs/main
>> before applying this deprecation patch.
>>
>>  Documentation/faq/general.rst   | 3 +++
>>  NEWS                            | 2 ++
>>  controller/chassis.c            | 8 ++++++--
>>  controller/ovn-controller.8.xml | 4 ++++
>>  ovn-architecture.7.xml          | 7 +++----
>>  ovn-sb.xml                      | 3 ++-
>>  tests/ovn-ic.at                 | 2 +-
>>  7 files changed, 21 insertions(+), 8 deletions(-)
>>
>> diff --git a/Documentation/faq/general.rst b/Documentation/faq/general.rst
>> index df4952ef5..63f5c4cbe 100644
>> --- a/Documentation/faq/general.rst
>> +++ b/Documentation/faq/general.rst
>> @@ -88,6 +88,9 @@ Q: Why does OVN use STT and Geneve instead of VLANs or
>> VXLAN (or GRE)?
>>
>>      See ``ovn-architecture(7)``, under "Tunnel Encapsulations", for
>> details.
>>
>> +    Note: Support for STT tunnels is deprecated and will be removed in
>> OVN
>> +    25.09 release.
>> +
>>      Together, these metadata require 24 + 15 + 16 = 55 bits.  GRE
>> provides 32
>>      bits, VXLAN provides 24, and VLAN only provides 12.  Most notably, if
>>      logical egress pipelines do not match on the logical ingress port,
>> thereby
>> diff --git a/NEWS b/NEWS
>> index da3aba739..c9eb8ede8 100644
>> --- a/NEWS
>> +++ b/NEWS
>> @@ -4,6 +4,8 @@ Post v24.09.0
>>       hash (with specified hash fields) for ECMP routes
>>       while choosing nexthop.
>>     - ovn-ic: Add support for route tag to prevent route learning.
>> +   - Support for STT tunnels in ovn-encap-type is deprecated and will be
>> +     removed in the next release.
>>
>>  OVN v24.09.0 - 13 Sep 2024
>>  --------------------------
>> diff --git a/controller/chassis.c b/controller/chassis.c
>> index 8b1964c54..19a251f26 100644
>> --- a/controller/chassis.c
>> +++ b/controller/chassis.c
>> @@ -243,12 +243,16 @@ chassis_parse_ovs_encap_type(const char *encap_type,
>>  {
>>      sset_from_delimited_string(encap_type_set, encap_type, ",");
>>
>> +    static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(1, 5);
>>      const char *type;
>>
>>      SSET_FOR_EACH (type, encap_type_set) {
>> -        if (!get_tunnel_type(type)) {
>> -            static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(1,
>> 5);
>> +        uint32_t tun_type = get_tunnel_type(type);
>> +
>> +        if (!tun_type) {
>>              VLOG_INFO_RL(&rl, "Unknown tunnel type: %s", type);
>> +        } else if (tun_type == STT) {
>> +            VLOG_WARN_RL(&rl, "STT encapsulation type is deprecated");
>>          }
>>      }
>>  }
>> diff --git a/controller/ovn-controller.8.xml
>> b/controller/ovn-controller.8.xml
>> index aeaa374c1..6a7d676af 100644
>> --- a/controller/ovn-controller.8.xml
>> +++ b/controller/ovn-controller.8.xml
>> @@ -168,6 +168,10 @@
>>            are <code>geneve</code>, <code>vxlan</code>, and
>> <code>stt</code>.
>>          </p>
>>
>> +        <p>
>> +          <code>stt</code> tunnel type is deprecated.
>> +        </p>
>> +
>>          <p>
>>            Due to the limited amount of metadata in <code>vxlan</code>,
>>            the capabilities and performance of connected gateways and
>> diff --git a/ovn-architecture.7.xml b/ovn-architecture.7.xml
>> index 640944faf..b11277bb9 100644
>> --- a/ovn-architecture.7.xml
>> +++ b/ovn-architecture.7.xml
>> @@ -2897,10 +2897,9 @@
>>    </diagram>
>>
>>    <p>
>> -    Environments whose NICs lack Geneve offload may prefer STT
>> encapsulation
>> -    for performance reasons.  For STT encapsulation, OVN encodes all
>> three
>> -    pieces of logical metadata in the STT 64-bit tunnel ID as follows,
>> from MSB
>> -    to LSB:
>> +    Support for STT encapsulation is deprecated.  While using STT on
>> setups
>> +    that didn't migrate to Geneve yet, OVN encodes all three pieces of
>> logical
>> +    metadata in the STT 64-bit tunnel ID as follows, from MSB to LSB:
>>    </p>
>>
>>    <diagram>
>> diff --git a/ovn-sb.xml b/ovn-sb.xml
>> index ea4adc1c3..9394bb5f4 100644
>> --- a/ovn-sb.xml
>> +++ b/ovn-sb.xml
>> @@ -479,7 +479,8 @@
>>      <column name="type">
>>        The encapsulation to use to transmit packets to this chassis.
>>        Hypervisors and gateways must use one of: <code>geneve</code>,
>> -      <code>vxlan</code>, or <code>stt</code>.
>> +      <code>vxlan</code>, or <code>stt</code>.  <code>stt</code> is
>> +      deprecated.
>>      </column>
>>
>>      <column name="options">
>> diff --git a/tests/ovn-ic.at b/tests/ovn-ic.at
>> index 1ba65fd9f..13150a453 100644
>> --- a/tests/ovn-ic.at
>> +++ b/tests/ovn-ic.at
>> @@ -333,7 +333,7 @@ OVS_WAIT_UNTIL([ovn_as az2 ovn-sbctl show | grep
>> "192.168.0.2"])
>>  ovs-vsctl set open . external_ids:ovn-encap-type="geneve,stt"
>>  OVS_WAIT_UNTIL([ovn_as az2 ovn-sbctl show | grep stt])
>>
>> -OVN_CLEANUP_SBOX(gw2)
>> +OVN_CLEANUP_SBOX([gw2], ["/STT encapsulation type is deprecated/d"])
>>  OVN_CLEANUP_IC([az1], [az2])
>>
>>  AT_CLEANUP
>> --
>> 2.47.0
>>
>> _______________________________________________
>> dev mailing list
>> [email protected]
>> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>>
>>
> Thanks,
> Ales
>

Forgot to add, that with those 2 things addressed:
Acked-by: Ales Musil <[email protected]>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to