From 17344c02789ddd1d1eb92826e688d8b7023de94c Mon Sep 17 00:00:00 2001 From: Radu Nicolau Date: Thu, 14 Oct 2021 17:03:23 +0100 Subject: [PATCH] security: add UDP parameters for IPsec NAT-T Add support for specifying UDP port params for UDP encapsulation option. RFC3948 section-2.1 does not enforce using specific the UDP ports for UDP-Encapsulated ESP Header Signed-off-by: Declan Doherty Signed-off-by: Radu Nicolau Signed-off-by: Abhijit Sinha Signed-off-by: Daniel Martin Buckley Acked-by: Fan Zhang Acked-by: Anoob Joseph Acked-by: Konstantin Ananyev Acked-by: Akhil Goyal --- doc/guides/rel_notes/deprecation.rst | 5 ++--- doc/guides/rel_notes/release_21_11.rst | 4 ++++ lib/security/rte_security.h | 7 +++++++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index cc9718cdec..46cb3e70ba 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc/guides/rel_notes/deprecation.rst @@ -206,9 +206,8 @@ Deprecation Notices pointer for the private data to the application which can be attached to the packet while enqueuing. -* security: The structure ``rte_security_ipsec_xform`` will be extended with - multiple fields: source and destination port of UDP encapsulation, - IPsec payload MSS (Maximum Segment Size). +* security: The structure ``rte_security_ipsec_xform`` will be extended with: + new field: IPsec payload MSS (Maximum Segment Size). * security: The IPsec SA config options ``struct rte_security_ipsec_sa_options`` will be updated with new fields to support new features like TSO in case of diff --git a/doc/guides/rel_notes/release_21_11.rst b/doc/guides/rel_notes/release_21_11.rst index 99f10c9ec7..25424e6879 100644 --- a/doc/guides/rel_notes/release_21_11.rst +++ b/doc/guides/rel_notes/release_21_11.rst @@ -315,6 +315,10 @@ ABI Changes application to start from an arbitrary ESN value for debug and SA lifetime enforcement purposes. +* security: A new structure ``udp`` was added in structure + ``rte_security_ipsec_xform`` to allow setting the source and destination ports + for UDP encapsulated IPsec traffic. + * bbdev: Added capability related to more comprehensive CRC options, shifting values of the ``enum rte_bbdev_op_ldpcdec_flag_bitmasks``. diff --git a/lib/security/rte_security.h b/lib/security/rte_security.h index 764ce83bca..17d0e95412 100644 --- a/lib/security/rte_security.h +++ b/lib/security/rte_security.h @@ -128,6 +128,11 @@ struct rte_security_ipsec_tunnel_param { }; }; +struct rte_security_ipsec_udp_param { + uint16_t sport; + uint16_t dport; +}; + /** * IPsec Security Association option flags */ @@ -326,6 +331,8 @@ struct rte_security_ipsec_xform { }; } esn; /**< Extended Sequence Number */ + struct rte_security_ipsec_udp_param udp; + /**< UDP parameters, ignored when udp_encap option not specified */ }; /** -- 2.20.1