From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6EF90A2EDB for ; Tue, 1 Oct 2019 17:16:04 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id DF9884C9D; Tue, 1 Oct 2019 17:16:03 +0200 (CEST) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70081.outbound.protection.outlook.com [40.107.7.81]) by dpdk.org (Postfix) with ESMTP id 8DB774C90 for ; Tue, 1 Oct 2019 17:16:01 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KXdYlWJDE12aBRBIVWmSmFSxi8lIh5IlZQiE8dYz+HzJ4Ph6kwlu3MnwBJgZzfpHP4voVSw2zDZKPFjALqJ4uaxoiRiTZjNEhwjubRo3fOEAMbXABo62xuLnS5JGww2TrGRAGHI9JlEmXBwGuSmfnR52jHAEiIcsvJKwT+wZfu/2Cf420R/pP1yiCuyRMNDDZGavwhMpO3poe54OGX5qNMAFZNPGZ2yLwaD6+vnM1kHL4V8eHeQFhjXf9J+ZDuf3eg5r+SAa7qG8D91+YMaIEv3/UJS08yb1bu7J2kOmH4j7v5be7zpUqsHWWhpsdqQfoktVPLmpYRFT20OeULeqnQ== 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-SenderADCheck; bh=3bFDmryftqTHdQhXCsn2kMgde9CnaN10o/TYdTeSjY0=; b=Vs2ra3NqJt9+l+4MU1CS6uB8lqcl6MtvGv5qXpplHNXaTGMQOIjmuvRsfsS+4euAbwf99TqZxMyKsYdYEDwCSLom78ourojSB6EiwVvjgLMYRDPOHd71D5IFwMwy/V9GUz9PzPEWEWpgo/ZZphQI6sHPD1tQtORXGWzUJElItjORjlsjqurVOVNGofhNKaA22XGBO1Q7ac+b/876Dwa+QrSfdzBxklqpA4VmC4wZuWtPQH+eYTxAmOHK31wXSfgbkWaaDyZJcFqm/+Azz0kQSTGDtgubea/JDk953D8BzWVFUb3s+aLPwGb9+xju5fl7c5IxDmInqUmhEk1NywJXXw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3bFDmryftqTHdQhXCsn2kMgde9CnaN10o/TYdTeSjY0=; b=lqGsX2ckAHjOZu5T26Dp+7ppMzzS6f8z0I02rNo99cJQhyoz4ZcMvS+ayYOmZskxy/nP5cUE3hBBTKJMFF/hkmqyKSy2Qg6m74HrtvmX52RrRLNqLSP8FPQXfc46e0AsXqNtOHIy2wTHMAL0/EJSlsF+TmS89sZLMgX2N9SDgHU= Received: from VI1PR04MB4480.eurprd04.prod.outlook.com (20.177.53.224) by VI1PR04MB4031.eurprd04.prod.outlook.com (10.171.182.28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2305.20; Tue, 1 Oct 2019 15:16:00 +0000 Received: from VI1PR04MB4480.eurprd04.prod.outlook.com ([fe80::681a:2c5b:e170:683]) by VI1PR04MB4480.eurprd04.prod.outlook.com ([fe80::681a:2c5b:e170:683%6]) with mapi id 15.20.2305.017; Tue, 1 Oct 2019 15:15:59 +0000 From: Nipun Gupta To: Aaron Conole CC: "dev@dpdk.org" , "jerinj@marvell.com" , "pbhagavatula@marvell.com" , "skori@marvell.com" , Hemant Agrawal , "bruce.richardson@intel.com" , "marko.kovacevic@intel.com" , "orika@mellanox.com" , "radu.nicolau@intel.com" , "tomasz.kantecki@intel.com" , "harry.van.haaren@intel.com" , "nikhil.rao@intel.com" Thread-Topic: [dpdk-dev] [PATCH] eventdev: flag to identify same destined packets enqueue Thread-Index: AQHVeCYo1dmaY6eZ/kuEX8G+rb7CUKdF3JyCgAAGwzA= Date: Tue, 1 Oct 2019 15:15:59 +0000 Message-ID: References: <20191001064641.28404-1-nipun.gupta@nxp.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=nipun.gupta@nxp.com; x-originating-ip: [92.120.1.68] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 4bd4fc70-8f94-49c6-7f2c-08d746824430 x-ms-office365-filtering-ht: Tenant x-ms-traffictypediagnostic: VI1PR04MB4031:|VI1PR04MB4031: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-forefront-prvs: 0177904E6B x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(396003)(346002)(366004)(136003)(376002)(39860400002)(199004)(189003)(13464003)(86362001)(8936002)(66066001)(74316002)(7416002)(305945005)(476003)(44832011)(446003)(486006)(11346002)(256004)(316002)(7736002)(54906003)(6916009)(8676002)(53546011)(2906002)(6116002)(3846002)(102836004)(81166006)(81156014)(229853002)(66476007)(66446008)(64756008)(66946007)(66556008)(76116006)(99286004)(6246003)(33656002)(26005)(5660300002)(52536014)(71200400001)(71190400001)(4326008)(186003)(6506007)(30864003)(9686003)(25786009)(7696005)(6436002)(55016002)(14454004)(76176011)(478600001); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR04MB4031; H:VI1PR04MB4480.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: TqI77+QypxuZSDAMC5d1xjfPOeRjd6UoR/SwO5cQL6cA2xYPKFg0eaLbYk63XPGAebPBgrUB/qC62n2PKkoZY4ONcKLDHcy+qnOduewO3TUcECW/E9QBkougVZAJSvysw3fn7ufm45z5PI26rVBbODTdaQ7pLEx0NwQ6wXbhLOw+SVWUPQCj9MF6usgxD1grISTkD5NaUUbFne5HP39vfYzuupbRgsZmE0eEMBGoZtGzq7Zh2crd3TK/uktZ+LXqG6kpILcL7yrBCSHT627vjz+PWDo3lCVG/fmIPVwermwTn4Td+BtInTqqIrxYAGk15rhu+Kv5JmRj6AsmHXXsA0PPsl396zuBnuLoh9xXFfe/YG+cg8RJICcZmnb+0EYQf4RenYrTQGj4KCrjJz820lFMBySJ/NjCtdmICLsRSoQ= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4bd4fc70-8f94-49c6-7f2c-08d746824430 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Oct 2019 15:15:59.8177 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: j+CuJe9UZV91pGOYksErONtsulyPlJGrIBTZsttDiC+8AW6/68bUGFAzr+IQNIK0ge+vS8m2Vf3VAuJ91r7pIg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4031 Subject: Re: [dpdk-dev] [PATCH] eventdev: flag to identify same destined packets enqueue X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" > -----Original Message----- > From: Aaron Conole > Sent: Tuesday, October 1, 2019 8:12 PM > To: Nipun Gupta > Cc: dev@dpdk.org; jerinj@marvell.com; pbhagavatula@marvell.com; > skori@marvell.com; Hemant Agrawal ; > bruce.richardson@intel.com; marko.kovacevic@intel.com; > orika@mellanox.com; radu.nicolau@intel.com; tomasz.kantecki@intel.com; > harry.van.haaren@intel.com; nikhil.rao@intel.com > Subject: Re: [dpdk-dev] [PATCH] eventdev: flag to identify same destined > packets enqueue >=20 > Nipun Gupta writes: >=20 > > This patch introduces a `flag` in the Eth TX adapter enqueue API. > > Some drivers may support burst functionality only with the packets > > having same destination device and queue. > > > > The flag `RTE_EVENT_ETH_TX_ADAPTER_ENQUEUE_SAME_DEST` can be > used > > to indicate this so the underlying driver, for drivers to utilize > > burst functionality appropriately. > > > > Signed-off-by: Nipun Gupta > > --- >=20 > In addition to the ABI concerns (which I mirror), you also should > compile test this patch. It currently doesn't build (for example, see a > missed adapter_enqueue in > examples/eventdev_pipeline/pipeline_worker_tx.c) Thanks for letting me know. I missed compiling the example. Will fix in v2. w.r.t. the ABI change, as API will freeze for 1 year post this we expect to= get some exception to deprecation process for 19.11. >=20 > > app/test-eventdev/test_pipeline_common.h | 6 +++--- > > .../prog_guide/event_ethernet_tx_adapter.rst | 3 ++- > > drivers/event/octeontx/ssovf_evdev.h | 2 +- > > drivers/event/octeontx/ssovf_worker.c | 3 ++- > > drivers/event/octeontx2/otx2_evdev.h | 12 ++++++++---- > > drivers/event/octeontx2/otx2_worker.c | 8 ++++++-- > > drivers/event/octeontx2/otx2_worker_dual.c | 8 ++++++-- > > lib/librte_eventdev/rte_event_eth_tx_adapter.h | 15 +++++++++++++- > - > > lib/librte_eventdev/rte_eventdev.c | 3 ++- > > lib/librte_eventdev/rte_eventdev.h | 2 +- > > 10 files changed, 44 insertions(+), 18 deletions(-) > > > > diff --git a/app/test-eventdev/test_pipeline_common.h b/app/test- > eventdev/test_pipeline_common.h > > index 0440b9e29..6e73c6ab2 100644 > > --- a/app/test-eventdev/test_pipeline_common.h > > +++ b/app/test-eventdev/test_pipeline_common.h > > @@ -106,7 +106,7 @@ pipeline_event_tx(const uint8_t dev, const uint8_t > port, > > struct rte_event * const ev) > > { > > rte_event_eth_tx_adapter_txq_set(ev->mbuf, 0); > > - while (!rte_event_eth_tx_adapter_enqueue(dev, port, ev, 1)) > > + while (!rte_event_eth_tx_adapter_enqueue(dev, port, ev, 1, 0)) > > rte_pause(); > > } > > > > @@ -116,10 +116,10 @@ pipeline_event_tx_burst(const uint8_t dev, const > uint8_t port, > > { > > uint16_t enq; > > > > - enq =3D rte_event_eth_tx_adapter_enqueue(dev, port, ev, nb_rx); > > + enq =3D rte_event_eth_tx_adapter_enqueue(dev, port, ev, nb_rx, 0); > > while (enq < nb_rx) { > > enq +=3D rte_event_eth_tx_adapter_enqueue(dev, port, > > - ev + enq, nb_rx - enq); > > + ev + enq, nb_rx - enq, 0); > > } > > } > > > > diff --git a/doc/guides/prog_guide/event_ethernet_tx_adapter.rst > b/doc/guides/prog_guide/event_ethernet_tx_adapter.rst > > index 192f9e1cf..a8c13e136 100644 > > --- a/doc/guides/prog_guide/event_ethernet_tx_adapter.rst > > +++ b/doc/guides/prog_guide/event_ethernet_tx_adapter.rst > > @@ -137,11 +137,12 @@ should use the ``rte_event_enqueue_burst()`` > function. > > if (cap & RTE_EVENT_ETH_TX_ADAPTER_CAP_INTERNAL_PORT) { > > > > event.mbuf =3D m; > > + eq_flags =3D 0; > > > > m->port =3D tx_port; > > rte_event_eth_tx_adapter_txq_set(m, tx_queue_id); > > > > - rte_event_eth_tx_adapter_enqueue(dev_id, ev_port, > &event, 1); > > + rte_event_eth_tx_adapter_enqueue(dev_id, ev_port, > &event, 1, eq_flags); > > } else { > > > > event.queue_id =3D qid; /* event queue linked to adapter port > */ > > diff --git a/drivers/event/octeontx/ssovf_evdev.h > b/drivers/event/octeontx/ssovf_evdev.h > > index 0e622152c..1b156edab 100644 > > --- a/drivers/event/octeontx/ssovf_evdev.h > > +++ b/drivers/event/octeontx/ssovf_evdev.h > > @@ -181,7 +181,7 @@ void ssows_flush_events(struct ssows *ws, uint8_t > queue_id, > > ssows_handle_event_t fn, void *arg); > > void ssows_reset(struct ssows *ws); > > uint16_t sso_event_tx_adapter_enqueue(void *port, > > - struct rte_event ev[], uint16_t nb_events); > > + struct rte_event ev[], uint16_t nb_events, uint8_t eq_flags); > > int ssovf_info(struct ssovf_info *info); > > void *ssovf_bar(enum ssovf_type, uint8_t id, uint8_t bar); > > int test_eventdev_octeontx(void); > > diff --git a/drivers/event/octeontx/ssovf_worker.c > b/drivers/event/octeontx/ssovf_worker.c > > index d940b5dd6..1d0467af3 100644 > > --- a/drivers/event/octeontx/ssovf_worker.c > > +++ b/drivers/event/octeontx/ssovf_worker.c > > @@ -264,7 +264,7 @@ ssows_reset(struct ssows *ws) > > > > uint16_t > > sso_event_tx_adapter_enqueue(void *port, > > - struct rte_event ev[], uint16_t nb_events) > > + struct rte_event ev[], uint16_t nb_events, uint8_t eq_flags) > > { > > uint16_t port_id; > > uint16_t queue_id; > > @@ -275,6 +275,7 @@ sso_event_tx_adapter_enqueue(void *port, > > octeontx_dq_t *dq; > > > > RTE_SET_USED(nb_events); > > + RTE_SET_USED(eq_flags); > > switch (ev->sched_type) { > > case SSO_SYNC_ORDERED: > > ssows_swtag_norm(ws, ev->event, SSO_SYNC_ATOMIC); > > diff --git a/drivers/event/octeontx2/otx2_evdev.h > b/drivers/event/octeontx2/otx2_evdev.h > > index 5cd80e3b2..74b749a15 100644 > > --- a/drivers/event/octeontx2/otx2_evdev.h > > +++ b/drivers/event/octeontx2/otx2_evdev.h > > @@ -333,16 +333,20 @@ SSO_RX_ADPTR_ENQ_FASTPATH_FUNC > > > > #define T(name, f4, f3, f2, f1, f0, sz, flags) \ > > uint16_t otx2_ssogws_tx_adptr_enq_ ## name(void *port, struct > rte_event ev[],\ > > - uint16_t nb_events); \ > > + uint16_t nb_events, \ > > + uint8_t eq_flags); \ > > uint16_t otx2_ssogws_tx_adptr_enq_seg_ ## name(void *port, > \ > > struct rte_event ev[], \ > > - uint16_t nb_events); \ > > + uint16_t nb_events, \ > > + uint8_t eq_flags); \ > > uint16_t otx2_ssogws_dual_tx_adptr_enq_ ## name(void *port, > \ > > struct rte_event ev[], \ > > - uint16_t nb_events); \ > > + uint16_t nb_events, \ > > + uint8_t eq_flags); \ > > uint16_t otx2_ssogws_dual_tx_adptr_enq_seg_ ## name(void *port, > \ > > struct rte_event ev[], \ > > - uint16_t nb_events); \ > > + uint16_t nb_events, \ > > + uint8_t eq_flags); \ > > > > SSO_TX_ADPTR_ENQ_FASTPATH_FUNC > > #undef T > > diff --git a/drivers/event/octeontx2/otx2_worker.c > b/drivers/event/octeontx2/otx2_worker.c > > index cd14cd3d2..100e21669 100644 > > --- a/drivers/event/octeontx2/otx2_worker.c > > +++ b/drivers/event/octeontx2/otx2_worker.c > > @@ -270,12 +270,14 @@ otx2_ssogws_enq_fwd_burst(void *port, const > struct rte_event ev[], > > #define T(name, f4, f3, f2, f1, f0, sz, flags) \ > > uint16_t __hot > \ > > otx2_ssogws_tx_adptr_enq_ ## name(void *port, struct rte_event ev[], > \ > > - uint16_t nb_events) \ > > + uint16_t nb_events, \ > > + uint8_t eq_flags) \ > > { \ > > struct otx2_ssogws *ws =3D port; \ > > uint64_t cmd[sz]; \ > > \ > > RTE_SET_USED(nb_events); \ > > + RTE_SET_USED(eq_flags); > \ > > return otx2_ssogws_event_tx(ws, ev, cmd, flags); \ > > } > > SSO_TX_ADPTR_ENQ_FASTPATH_FUNC > > @@ -284,12 +286,14 @@ SSO_TX_ADPTR_ENQ_FASTPATH_FUNC > > #define T(name, f4, f3, f2, f1, f0, sz, flags) \ > > uint16_t __hot > \ > > otx2_ssogws_tx_adptr_enq_seg_ ## name(void *port, struct rte_event > ev[],\ > > - uint16_t nb_events) \ > > + uint16_t nb_events, \ > > + uint8_t eq_flags) \ > > { \ > > struct otx2_ssogws *ws =3D port; \ > > uint64_t cmd[(sz) + NIX_TX_MSEG_SG_DWORDS - 2]; > \ > > \ > > RTE_SET_USED(nb_events); \ > > + RTE_SET_USED(eq_flags); > \ > > return otx2_ssogws_event_tx(ws, ev, cmd, (flags) | \ > > NIX_TX_MULTI_SEG_F); \ > > } > > diff --git a/drivers/event/octeontx2/otx2_worker_dual.c > b/drivers/event/octeontx2/otx2_worker_dual.c > > index 37c274a54..c3e48da42 100644 > > --- a/drivers/event/octeontx2/otx2_worker_dual.c > > +++ b/drivers/event/octeontx2/otx2_worker_dual.c > > @@ -310,7 +310,8 @@ SSO_RX_ADPTR_ENQ_FASTPATH_FUNC > > uint16_t __hot > \ > > otx2_ssogws_dual_tx_adptr_enq_ ## name(void *port, > \ > > struct rte_event ev[], \ > > - uint16_t nb_events) \ > > + uint16_t nb_events, \ > > + uint8_t eq_flags) \ > > { \ > > struct otx2_ssogws_dual *ws =3D port; \ > > struct otx2_ssogws *vws =3D \ > > @@ -318,6 +319,7 @@ otx2_ssogws_dual_tx_adptr_enq_ ## name(void > *port, \ > > uint64_t cmd[sz]; \ > > \ > > RTE_SET_USED(nb_events); \ > > + RTE_SET_USED(eq_flags); > \ > > return otx2_ssogws_event_tx(vws, ev, cmd, flags); \ > > } > > SSO_TX_ADPTR_ENQ_FASTPATH_FUNC > > @@ -327,7 +329,8 @@ SSO_TX_ADPTR_ENQ_FASTPATH_FUNC > > uint16_t __hot > \ > > otx2_ssogws_dual_tx_adptr_enq_seg_ ## name(void *port, > \ > > struct rte_event ev[], \ > > - uint16_t nb_events) \ > > + uint16_t nb_events, \ > > + uint8_t eq_flags) \ > > { \ > > struct otx2_ssogws_dual *ws =3D port; \ > > struct otx2_ssogws *vws =3D \ > > @@ -335,6 +338,7 @@ otx2_ssogws_dual_tx_adptr_enq_seg_ ## > name(void *port, \ > > uint64_t cmd[(sz) + NIX_TX_MSEG_SG_DWORDS - 2]; > \ > > \ > > RTE_SET_USED(nb_events); \ > > + RTE_SET_USED(eq_flags); > \ > > return otx2_ssogws_event_tx(vws, ev, cmd, (flags) | \ > > NIX_TX_MULTI_SEG_F); \ > > } > > diff --git a/lib/librte_eventdev/rte_event_eth_tx_adapter.h > b/lib/librte_eventdev/rte_event_eth_tx_adapter.h > > index c848261c4..98be77568 100644 > > --- a/lib/librte_eventdev/rte_event_eth_tx_adapter.h > > +++ b/lib/librte_eventdev/rte_event_eth_tx_adapter.h > > @@ -300,6 +300,11 @@ rte_event_eth_tx_adapter_txq_get(struct > rte_mbuf *pkt) > > int > > rte_event_eth_tx_adapter_event_port_get(uint8_t id, uint8_t > *event_port_id); > > > > +#define RTE_EVENT_ETH_TX_ADAPTER_ENQUEUE_SAME_DEST 0x1 > > +/**< This flag is used when all the packets enqueued in the tx adapter= are > > + * destined for the same Ethernet device, queue pair. > > + */ > > + > > /** > > * Enqueue a burst of events objects or an event object supplied in > *rte_event* > > * structure on an event device designated by its *dev_id* through th= e > event > > @@ -324,6 +329,10 @@ > rte_event_eth_tx_adapter_event_port_get(uint8_t id, uint8_t > *event_port_id); > > * The number of event objects to enqueue, typically number of > > * rte_event_port_attr_get(...RTE_EVENT_PORT_ATTR_ENQ_DEPTH...) > > * available for this port. > > + * @param flags > > + * See RTE_EVENT_ETH_TX_ADAPTER_ENQUEUE_ flags. > > + * #RTE_EVENT_ETH_TX_ADAPTER_ENQUEUE_SAME_DEST signifies that > all the packets > > + * which are enqueued are destined for the same Ethernet device, queu= e > pair. > > * > > * @return > > * The number of event objects actually enqueued on the event device= . > The > > @@ -343,7 +352,8 @@ static inline uint16_t > > rte_event_eth_tx_adapter_enqueue(uint8_t dev_id, > > uint8_t port_id, > > struct rte_event ev[], > > - uint16_t nb_events) > > + uint16_t nb_events, > > + uint8_t flags) > > { > > const struct rte_eventdev *dev =3D &rte_eventdevs[dev_id]; > > > > @@ -359,7 +369,8 @@ rte_event_eth_tx_adapter_enqueue(uint8_t > dev_id, > > return 0; > > } > > #endif > > - return dev->txa_enqueue(dev->data->ports[port_id], ev, > nb_events); > > + return dev->txa_enqueue(dev->data->ports[port_id], ev, > > + nb_events, flags); > > } > > > > /** > > diff --git a/lib/librte_eventdev/rte_eventdev.c > b/lib/librte_eventdev/rte_eventdev.c > > index f44c869cb..3bf9d7115 100644 > > --- a/lib/librte_eventdev/rte_eventdev.c > > +++ b/lib/librte_eventdev/rte_eventdev.c > > @@ -1324,7 +1324,8 @@ rte_eventdev_find_free_device_index(void) > > static uint16_t > > rte_event_tx_adapter_enqueue(__rte_unused void *port, > > __rte_unused struct rte_event ev[], > > - __rte_unused uint16_t nb_events) > > + __rte_unused uint16_t nb_events, > > + __rte_unused uint8_t flags) > > { > > rte_errno =3D ENOTSUP; > > return 0; > > diff --git a/lib/librte_eventdev/rte_eventdev.h > b/lib/librte_eventdev/rte_eventdev.h > > index 5044a13d0..2a5643da3 100644 > > --- a/lib/librte_eventdev/rte_eventdev.h > > +++ b/lib/librte_eventdev/rte_eventdev.h > > @@ -1227,7 +1227,7 @@ typedef uint16_t > (*event_dequeue_burst_t)(void *port, struct rte_event ev[], > > /**< @internal Dequeue burst of events from port of a device */ > > > > typedef uint16_t (*event_tx_adapter_enqueue)(void *port, > > - struct rte_event ev[], uint16_t nb_events); > > + struct rte_event ev[], uint16_t nb_events, uint8_t flags); > > /**< @internal Enqueue burst of events on port of a device */ > > > > #define RTE_EVENTDEV_NAME_MAX_LEN (64)