From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 780D4A0547; Tue, 26 Oct 2021 19:39:04 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0C13240E0F; Tue, 26 Oct 2021 19:39:04 +0200 (CEST) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mails.dpdk.org (Postfix) with ESMTP id 8C91D407FF for ; Tue, 26 Oct 2021 19:39:02 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10149"; a="228726299" X-IronPort-AV: E=Sophos;i="5.87,184,1631602800"; d="scan'208";a="228726299" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Oct 2021 10:39:01 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,184,1631602800"; d="scan'208";a="529309092" Received: from orsmsx605.amr.corp.intel.com ([10.22.229.18]) by orsmga001.jf.intel.com with ESMTP; 26 Oct 2021 10:39:01 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Tue, 26 Oct 2021 10:39:01 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Tue, 26 Oct 2021 10:39:01 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.104) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Tue, 26 Oct 2021 10:39:01 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=j4k8+OOiQ6Jwl9B9D3Xs7E/LGIYoBYiVp4lULaLu2ylIWKiJEQbsTDsbWsCCedkD5/jnEBRtTe4VTjRd0FnEDIYqlUVP1k4Z51g+njbZnydzsAYglq14wnYxDJ51ItfxV4cFYw0oAADOyClLHndXbXFnFI+Ejh6udeVau7AxIGYeZgrCZOQ9AvYETaEif/Gyig9nL8AMbIVUJtKYIFmX5DWyu+StRmkV8ztcutr17X+zUnoNFsST/CYD34A2HpdEt4+R1t95FQsIahS7u8+y8zbgp0lPnD9AomPB2ex4ivJ/UwW5A7XjstrhESkRxj1mbdsRN6ptBhLYtbZjPjqCmw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=9FkY8Sd914XTmCATEg9uw5bmNttBYhl2Gr0dSnZRk9Y=; b=P55b3ONDtcbbd+ZTS5EY3VJBmhJsrrKTPU9UXMAnjGk9wxYyXKQ0ig/dMcARvND1Bw6p4RQKjDzs0RiJWGcuA9AEcXeHIDqDdnF9gvHH7xpGmPDRX8g3pJWVasZf1qA1fj30F8cH/twuo8eznb2PXxvo1KSx/XhW8E19X2TWhzLrJ31mSF+ZNfsL040PC+Sqin1mMhJoVLLsq/NG4I9VHIdi5/8qYDiH+s5K0uLAIoZvPrOr145uYbyn5/f8DHLSiH8GRZB7JBK74jHybzwVNoLBvFxpljTFLyBTlp2GGsGYAKthzqTDEnaa42t8yl6dHBbjasN+kn3RiumJZ1UenA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9FkY8Sd914XTmCATEg9uw5bmNttBYhl2Gr0dSnZRk9Y=; b=jkihjWfuGjZE2NCoEZYuIfGY302a5i254hNadp9D/lazQInEYJS/qNLKYgCKKcZ9aA2K5QgCiGMaDIQGVQjHVfb8EnjqZjAS21QPGe2TOgKw+dAF4npe/c+b9yQ6G4PW1BRgO4uWpuThjk8Is+h9KkYBn8GY4SrBTdh3nt0PfWY= Received: from DM6PR11MB4491.namprd11.prod.outlook.com (2603:10b6:5:204::19) by DM5PR1101MB2089.namprd11.prod.outlook.com (2603:10b6:4:54::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.18; Tue, 26 Oct 2021 17:39:00 +0000 Received: from DM6PR11MB4491.namprd11.prod.outlook.com ([fe80::2c0c:5383:f814:3b4e]) by DM6PR11MB4491.namprd11.prod.outlook.com ([fe80::2c0c:5383:f814:3b4e%6]) with mapi id 15.20.4628.023; Tue, 26 Oct 2021 17:38:59 +0000 From: "Ananyev, Konstantin" To: "Nicolau, Radu" , Akhil Goyal CC: "dev@dpdk.org" , "anoobj@marvell.com" , "Doherty, Declan" Thread-Topic: [PATCH v2 2/2] examples/ipsec-secgw: add support for TSO Thread-Index: AQHXyoYJvZlswpIv7EGBTinPeajWBavliw8Q Date: Tue, 26 Oct 2021 17:38:59 +0000 Message-ID: References: <20211026161104.2099054-1-radu.nicolau@intel.com> <20211026161104.2099054-3-radu.nicolau@intel.com> In-Reply-To: <20211026161104.2099054-3-radu.nicolau@intel.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.200.16 authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 39da5dad-9e2c-4af9-8131-08d998a77e79 x-ms-traffictypediagnostic: DM5PR1101MB2089: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6790; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: nWI7lU18RCxEyDul5jU8ztQcbxw3ylry2y40CPq8tCXZwqjW9cKMrH/JuRqPksp9HK0w9c9A3lFhTU+qfzJl796xYxOIMoEwXZdcG32AH5Ke5E0K1WdhnAThm0VU4FTtq4RANdXxJife1m9imCrEFW4yxltmowPuC0xWW2pPt+ffGi3tpFQMGnt+4aLACm34k3KXBwamJhYsEwc2L1odHQqTYNuamqyBDTxUEmsDvrQ5xNJsl68+8Mhbmt7O6Hq52paPNGIgoQsiG67dSc+AU3lC/hoSX1piwdFHJu7wYMaddh3fxzb5WFdAjPYYntyJIjFF7j365TkLPDvLIf0ChkSvy5LSPtfeXwsjaCD8PUynMlzpJpV6rG6rE3T9pAWcn5quB6IkqeSwXg3KVJS3hteXskX5nN5Ka/ZIGlhgKDSZPp2sOjcJBbgsBo6LVOip2glnSJQegziptWO9fiyaHzobcWHEKflj1Wby1oJQ/eRB9K5vEtg6s2lJt72D/M0+809sE4z01PAZNcKS9prAtENozq1Nn9pYG7k5wf5bs4l2aJggU974rzbKFBQ6EcpbC9n+aJ+YZAcKWXrQYL57bzs0FDJ7rnxO7Gm8Ah7F0yEt2ruSvPRmdzwfMdHW+fsz0DB6ryosQn0zAsf0NLYHZnn+LE7JeokfwAwRFWr1gTBOrL+IHF/woQOXxTB3AXyH x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR11MB4491.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(71200400001)(8676002)(33656002)(110136005)(86362001)(4326008)(64756008)(8936002)(9686003)(122000001)(83380400001)(107886003)(38070700005)(7696005)(508600001)(2906002)(316002)(52536014)(38100700002)(55016002)(82960400001)(76116006)(55236004)(26005)(186003)(66476007)(66946007)(66446008)(66556008)(5660300002)(6506007)(54906003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?scw8nM52sm3v0BLdxKGwhrI+nQJyZokiG2miQqfdU2mK3kB3c0FuuQ8Ex27S?= =?us-ascii?Q?tE9IZQCkQdywE9FdbjfYIZMebboza6LifvmVpX4GfO8/CEi09fafASYMXjT9?= =?us-ascii?Q?i9blFOiZDPguUTYuiDmXnKMeNio7+uT448w0RNZii0hsXx6fN5ZUinz+mCkI?= =?us-ascii?Q?FvNnKwiFqwxPJYCq+Q0m4iYKRZmJ+G3ns8AYXCcoR6nckUqrs4kBb1i+5UY8?= =?us-ascii?Q?vJz+tH77+3aJRaX0uXjp3dZ2SCuJB52xuUiCJ5thwX5YiDL8+7hp7wOO0O/U?= =?us-ascii?Q?jk9tsJBnr3b/0TAcCI4jx53VorOZ2EOw3HpPUgxI1Zmkfs/eaDHCl13N1W+B?= =?us-ascii?Q?O8VXMSXqn3RtQDARL+wLBo5a3mTTogrZzXxIjyAXyEvXRzoSz9ngY4yhhbl3?= =?us-ascii?Q?5UccfpMkiK4W3OoUXLCTSfR1xOiIUgZX6vPKzTgBS+wlT/lSAf9/fjfFwAjg?= =?us-ascii?Q?PXa6LbMnwc+xUMo5Zx9wbupNhOCa3W7RR2mtDkO/6QOKXr5xT3bsYS6eaaRZ?= =?us-ascii?Q?teFA5MsyEcXu0KPS498TbBKGoQJAIi007UBsEBSuU0PHDxAF6ZMzLtqx1QBR?= =?us-ascii?Q?YB03iGbQN01NJIZDGyHKvwBBbISPHq7MQvEG5ecjYQnCHgG8ZUS7tiI1jcBR?= =?us-ascii?Q?BLVHoFOpx61aptJvuI1DjciuOtRSTxxm+eZouid9j7xsKXOwcQ6xm3Es1lGV?= =?us-ascii?Q?bDNX7vhjTCKlylmlL9Yk8Ax9CWk2mE4FUesoNiLJVZ8YnZDI0mctODZaQ2N3?= =?us-ascii?Q?q9Qoiq5OQGJUwbCco+bWwdJdJE7HvfWAD2Wfi/X8kAsLZAjB3SxTyqVNCT5+?= =?us-ascii?Q?cR84geyLeG5SjPza2LATiZbDsf5799S3Uo4p9u3WPFctEi3ouP13qyiVU6IH?= =?us-ascii?Q?GCCfwjrwNnpN2FmreWH4er980v/ESRqFUfToG7w2FwK8GA4KC4tlzLK54WAs?= =?us-ascii?Q?Zg56uvh2yYr3BryrLnnd5kfiFMHmhI83jltmUVP/1V1oiAqLCfVKXvXUzZSR?= =?us-ascii?Q?6MuUruhjfRVK8YKgyl2EIvRMdn6N6hUytm6lNdMS6r9v7Yhjd3GbYRI6EgOT?= =?us-ascii?Q?XeS6XpphpQbasDPu4GTlG7bR8M9OfJnTF6FVvi/qYdNo8bYNXmnxaBqCCH5t?= =?us-ascii?Q?TXJlMYxlUHPi653SMqjbC2bNPLEoPynejSpY7j7IO1vvcPxx6bAQOip38bj7?= =?us-ascii?Q?ypxLPwBSHPy9F1W64wQ0Gc7ZgRXdoAHD7uDRYp7v+Tk27KIuuP4cRZWRlgxQ?= =?us-ascii?Q?475fXh6lsnuGbw1i+YINYP2A7lmSlmfvTW5b1CQJCPFXSA5n5y4hByPkAetM?= =?us-ascii?Q?rNUDVt3MoglvyR/8ZNi1/iKHAOiuTU+1ViwGgF5esq6UgOrhQhDXixVZ27wx?= =?us-ascii?Q?JH3cQLiGyJBHSxxBejF+ksFCOm+CkSrgiVE7kuU4gwCJKoHvTlN5YNIRRAnl?= =?us-ascii?Q?FQPSns/6eNytQC0/jonYgPm45G8xxC8EX4KyFoNZYvvqiJwLrT3NU/4NhJxr?= =?us-ascii?Q?gzxTmh/qK0VjyZ7nhK+3VJ8ORLyubc/BJuFNBG/vWkn2sXBGyKutRpr2jbOz?= =?us-ascii?Q?VgOvgoLvZOcl+HfYScAIz8+7ZjSc8Mvh39VStOfCvIFj+Jwxfjjf79BAV0jm?= =?us-ascii?Q?AshPsPUsicvqoxlSTmMhUVrPVWOYdmdQqgOK32xBm8sLvR93a8zkzmoY9j03?= =?us-ascii?Q?hhOxBA=3D=3D?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4491.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 39da5dad-9e2c-4af9-8131-08d998a77e79 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Oct 2021 17:38:59.7109 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: QKh5aDY4I2UytctEJRkYUa9x3jYfqLl3fJBhhpswmKffJeAI2ZDNV4IDCBTGsCqzdc0q8O2nyBI/GDMzoKrVBOSbwqzfdb6Pwpk76pxsf/s= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR1101MB2089 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v2 2/2] examples/ipsec-secgw: add support for TSO X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" >=20 > Add support to allow user to specific MSS for TSO offload on a per SA > basis. MSS configuration in the context of IPsec is only supported for > outbound SA's in the context of an inline IPsec Crypto offload. If this feature is enabled (by mss config file option), shouldn't we check= and request=20 RTE_ETH_TX_OFFLOAD_UDP_TSO and RTE_ETH_TX_OFFLOAD_TCP_TSO? As it is done for other TX offloads. =20 > Signed-off-by: Declan Doherty > Signed-off-by: Radu Nicolau > --- > doc/guides/rel_notes/release_21_11.rst | 4 ++++ > doc/guides/sample_app_ug/ipsec_secgw.rst | 11 +++++++++++ > examples/ipsec-secgw/ipsec-secgw.c | 4 ++++ > examples/ipsec-secgw/ipsec.h | 1 + > examples/ipsec-secgw/ipsec_process.c | 25 ++++++++++++++++++++++++ > examples/ipsec-secgw/sa.c | 10 ++++++++++ > 6 files changed, 55 insertions(+) >=20 > diff --git a/doc/guides/rel_notes/release_21_11.rst b/doc/guides/rel_note= s/release_21_11.rst > index b5b5abadee..8d1767b084 100644 > --- a/doc/guides/rel_notes/release_21_11.rst > +++ b/doc/guides/rel_notes/release_21_11.rst > @@ -306,6 +306,10 @@ New Features > * Pcapng format with timestamps and meta-data. > * Fixes packet capture with stripped VLAN tags. >=20 > +* **IPsec Security Gateway sample application new features.** > + > + * Added support for TSO > + >=20 > Removed Items > ------------- > diff --git a/doc/guides/sample_app_ug/ipsec_secgw.rst b/doc/guides/sample= _app_ug/ipsec_secgw.rst > index 782574dd39..639d309a6e 100644 > --- a/doc/guides/sample_app_ug/ipsec_secgw.rst > +++ b/doc/guides/sample_app_ug/ipsec_secgw.rst > @@ -720,6 +720,17 @@ where each options means: >=20 > * *udp-encap* >=20 > + ```` > + > + * Maximum segment size for TSO offload, available for egress SAs only. > + > + * Optional: Yes, TSO offload not set by default > + > + * Syntax: > + > + * *mss N* N is the segment size in bytes > + > + > Example SA rules: >=20 > .. code-block:: console > diff --git a/examples/ipsec-secgw/ipsec-secgw.c b/examples/ipsec-secgw/ip= sec-secgw.c > index 4bdf99b62b..5fcf424efe 100644 > --- a/examples/ipsec-secgw/ipsec-secgw.c > +++ b/examples/ipsec-secgw/ipsec-secgw.c > @@ -398,6 +398,10 @@ prepare_one_packet(struct rte_mbuf *pkt, struct ipse= c_traffic *t) > pkt->l2_len =3D 0; > pkt->l3_len =3D sizeof(*iph4); > pkt->packet_type |=3D RTE_PTYPE_L3_IPV4; > + if (pkt->packet_type & RTE_PTYPE_L4_TCP) > + pkt->l4_len =3D sizeof(struct rte_tcp_hdr); > + else if (pkt->packet_type & RTE_PTYPE_L4_UDP) > + pkt->l4_len =3D sizeof(struct rte_udp_hdr); > } else if (eth->ether_type =3D=3D rte_cpu_to_be_16(RTE_ETHER_TYPE_IPV6)= ) { > int next_proto; > size_t l3len, ext_len; > diff --git a/examples/ipsec-secgw/ipsec.h b/examples/ipsec-secgw/ipsec.h > index 8405c48171..2c3640833d 100644 > --- a/examples/ipsec-secgw/ipsec.h > +++ b/examples/ipsec-secgw/ipsec.h > @@ -137,6 +137,7 @@ struct ipsec_sa { > enum rte_security_ipsec_sa_direction direction; > uint8_t udp_encap; > uint16_t portid; > + uint16_t mss; > uint8_t fdir_qid; > uint8_t fdir_flag; >=20 > diff --git a/examples/ipsec-secgw/ipsec_process.c b/examples/ipsec-secgw/= ipsec_process.c > index 5012e1a6a4..26c6c2fe84 100644 > --- a/examples/ipsec-secgw/ipsec_process.c > +++ b/examples/ipsec-secgw/ipsec_process.c > @@ -222,6 +222,31 @@ prep_process_group(void *sa, struct rte_mbuf *mb[], = uint32_t cnt) > for (j =3D 0; j !=3D cnt; j++) { > priv =3D get_priv(mb[j]); > priv->sa =3D sa; > + /* setup TSO related fields if TSO enabled*/ > + if (priv->sa->mss) { > + mb[j]->tso_segsz =3D priv->sa->mss; > + > + if ((IS_TUNNEL(priv->sa->flags))) { > + mb[j]->outer_l3_len =3D mb[j]->l3_len; > + mb[j]->outer_l2_len =3D mb[j]->l2_len; > + mb[j]->ol_flags |=3D > + (RTE_MBUF_F_TX_OUTER_IP_CKSUM | > + RTE_MBUF_F_TX_TUNNEL_ESP); > + } > + uint32_t ptype =3D mb[j]->packet_type; > + if (ptype & RTE_PTYPE_L4_TCP) > + mb[j]->ol_flags |=3D > + (RTE_MBUF_F_TX_TCP_SEG | > + RTE_MBUF_F_TX_TCP_CKSUM); > + else > + mb[j]->ol_flags |=3D > + (RTE_MBUF_F_TX_UDP_SEG | > + RTE_MBUF_F_TX_UDP_CKSUM); > + if (RTE_ETH_IS_IPV4_HDR(ptype)) > + mb[j]->ol_flags |=3D RTE_MBUF_F_TX_OUTER_IPV4; > + else > + mb[j]->ol_flags |=3D RTE_MBUF_F_TX_OUTER_IPV6; > + } > } > } >=20 > diff --git a/examples/ipsec-secgw/sa.c b/examples/ipsec-secgw/sa.c > index 88dd30464f..6679e2a598 100644 > --- a/examples/ipsec-secgw/sa.c > +++ b/examples/ipsec-secgw/sa.c > @@ -677,6 +677,16 @@ parse_sa_tokens(char **tokens, uint32_t n_tokens, > continue; > } >=20 > + if (strcmp(tokens[ti], "mss") =3D=3D 0) { > + INCREMENT_TOKEN_INDEX(ti, n_tokens, status); > + if (status->status < 0) > + return; > + rule->mss =3D atoi(tokens[ti]); > + if (status->status < 0) > + return; > + continue; > + } > + > if (strcmp(tokens[ti], "fallback") =3D=3D 0) { > struct rte_ipsec_session *fb; >=20 > -- > 2.25.1