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 9BD4342FB8; Wed, 2 Aug 2023 18:12:42 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8AD7B40DDB; Wed, 2 Aug 2023 18:12:42 +0200 (CEST) Received: from mail-ua1-f50.google.com (mail-ua1-f50.google.com [209.85.222.50]) by mails.dpdk.org (Postfix) with ESMTP id 668404021D for ; Wed, 2 Aug 2023 18:12:41 +0200 (CEST) Received: by mail-ua1-f50.google.com with SMTP id a1e0cc1a2514c-799fa82fb44so11454241.0 for ; Wed, 02 Aug 2023 09:12:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1690992761; x=1691597561; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=7oaRz9dq87jrz1Y5cgbrbWXIYjsUESzdZz49/TJZJaA=; b=aeOPk5Qusl9YwNoeVMwJWF3xEI475KVWRQyAeDNxc92N95pHvDY34JAPG0fNxs22rY LGhJSA1A++UxDNnlT20wX/INTLKveuVeSUs1/Gmigr8cXr3MV9ZjNXxJVtuuzwDFZE95 ANq23n17FdXu94xpMxFwY28tCu+Hn71bKVbtgflmcAk1fSPTqdo6aamCL566kvmX5fao YN8EsWfZ3PqCPPOoACRZFIu13QOs1GwqqTkbDgqhYVl9eqbyiANN6K8I/dcNvx5lPTX6 7cryEesKKj2nQhcklmFh0QBXyej+buxYKG7rt2ZNb/yYXZx3g/phELxSfHTgI5b9myHr nHPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690992761; x=1691597561; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7oaRz9dq87jrz1Y5cgbrbWXIYjsUESzdZz49/TJZJaA=; b=dU+B7uylHN+3bh6+pytRqc0zmNO+9I+/w2w5eTEMwlt1ampik/Avn5k3RplcV6KVQC 2REjNlcXqW2Tfo7w1KScfTaErAsiSEIrNwUhz13mrXcDf9fNjpcEGf6hOllnY3DmtQ3+ 3BfRiIw2WVA8vF2oZKKS9wwSHYqVjJusdIHg378p2qEyyQcJWpgPWbAHE2A73jujKtWe xUrH+Cr+b9cwQFWAKC5Iz+llrGNdSi+KobRFeXZBPYM9o9xUTMsUHpzN5yczD2jfC1u7 UK4SC1QhiF/XT8kvFHUtB+HKHq/fAHAfgay3miWEGZbdwiYnhGIBr/0gpccdH18lXuog ZkSA== X-Gm-Message-State: ABy/qLYOD9s7uX5g+d8K94XCt5a/l/Vmk4tWQDvWRKOSmlrLJ21aLALb 1EWNhARtvTygzep1Cl90ZBTWVW8DKX5RTrdWRbeOuWFRdczb8KRW X-Google-Smtp-Source: APBJJlFD0EEpxsmescxO7OWZMWwg0XXSKvedHtkBIkE3SeFmuqboBWFTrU6fMVP/wcS4Uy4Yv2Fnk069wXwMBiViwBc= X-Received: by 2002:a05:6102:3008:b0:447:aec2:70ca with SMTP id s8-20020a056102300800b00447aec270camr3684317vsa.2.1690992760567; Wed, 02 Aug 2023 09:12:40 -0700 (PDT) MIME-Version: 1.0 References: <20230801094004.51939-1-s.v.naga.harish.k@intel.com> <20230801135149.135550-1-s.v.naga.harish.k@intel.com> In-Reply-To: From: Jerin Jacob Date: Wed, 2 Aug 2023 21:42:14 +0530 Message-ID: Subject: Re: [PATCH v2] eventdev/eth_rx: update adapter create APIs To: "Naga Harish K, S V" Cc: "dev@dpdk.org" , "Jayatheerthan, Jay" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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 On Wed, Aug 2, 2023 at 7:58=E2=80=AFPM Naga Harish K, S V wrote: > > Hi Jerin, Hi Harish, > > The API =E2=80=9Crte_event_eth_rx_adapter_create_with_params()=E2=80=9D i= s an extension to rte_event_eth_rx_adapter_create() with an additional adap= ter configuration params structure. > There is no equivalent API existing today for the =E2=80=9Crte_event_eth_= rx_adapter_create_ext()=E2=80=9D API which takes additional adapter params. > There are use cases where create_ext() version of create API with additio= nal parameters is needed. We may need to have one more adapter create API f= or this. > That makes so many Adapter create APIs (4 in number) and will be confusin= g for the user. > > That's why proposed the following changes to the Rx adapter create API= s which will consolidate the create APIs to 2 in number with all possible c= ombinations. > The applications that are currently using rte_event_eth_rx_adapter_create= _ext() or rte_event_eth_rx_adapter_create() APIs for creating Rx Adapter ca= n pass NULL argument for the > newly added argument which will behave the same as before. > > Trying to understand what are the concerns from your perspective with thi= s consolidated API approach. If single application code base needs to support both version of DPDK then they need have #ifdef clutter based on DPDK version check as we are changing the function prototype. IMO, We should do API prototype change as last resort. It is quite common have two APIs versions of single operation with more specialized parameters. > > -Harish > > > -----Original Message----- > > From: Jerin Jacob > > Sent: Tuesday, August 1, 2023 8:54 PM > > To: Naga Harish K, S V > > Cc: dev@dpdk.org; Jayatheerthan, Jay > > Subject: Re: [PATCH v2] eventdev/eth_rx: update adapter create APIs > > > > On Tue, Aug 1, 2023 at 7:22=E2=80=AFPM Naga Harish K S V > > wrote: > > > > > > The adapter create APIs such as rte_event_eth_rx_adapter_create_ext() > > > and > > > rte_event_eth_rx_adapter_create() are updated to take additional > > > argument as a pointer of type struct rte_event_eth_rx_adapter_params. > > > > > > The API rte_event_eth_rx_adapter_create_with_params() is deprecated. > > > > > > Signed-off-by: Naga Harish K S V > > > > Pleas check v1 comment > > http://mails.dpdk.org/archives/dev/2023-August/273602.html > > > > > --- > > > v2: > > > * Fix doxygen compile issue and warning > > > --- > > > --- > > > app/test-eventdev/test_perf_common.c | 2 +- > > > app/test-eventdev/test_pipeline_common.c | 2 +- > > > app/test/test_event_eth_rx_adapter.c | 22 ++-- > > > app/test/test_security_inline_proto.c | 2 +- > > > .../pipeline_worker_generic.c | 2 +- > > > .../eventdev_pipeline/pipeline_worker_tx.c | 2 +- > > > examples/ipsec-secgw/event_helper.c | 2 +- > > > examples/l2fwd-event/l2fwd_event_generic.c | 2 +- > > > .../l2fwd-event/l2fwd_event_internal_port.c | 2 +- > > > examples/l3fwd/l3fwd_event_generic.c | 2 +- > > > examples/l3fwd/l3fwd_event_internal_port.c | 2 +- > > > lib/eventdev/rte_event_eth_rx_adapter.c | 100 ++++++++--------= -- > > > lib/eventdev/rte_event_eth_rx_adapter.h | 36 ++----- > > > lib/eventdev/version.map | 1 - > > > 14 files changed, 74 insertions(+), 105 deletions(-) > > > > > > diff --git a/app/test-eventdev/test_perf_common.c > > > b/app/test-eventdev/test_perf_common.c > > > index 5e0255cfeb..0c6c252f7d 100644 > > > --- a/app/test-eventdev/test_perf_common.c > > > +++ b/app/test-eventdev/test_perf_common.c > > > @@ -1002,7 +1002,7 @@ perf_event_rx_adapter_setup(struct > > evt_options *opt, uint8_t stride, > > > } > > > queue_conf.ev.queue_id =3D prod * stride; > > > ret =3D rte_event_eth_rx_adapter_create(prod, opt->de= v_id, > > > - &prod_conf); > > > + &prod_conf, NULL); > > > if (ret) { > > > evt_err("failed to create rx adapter[%d]", pr= od); > > > return ret; > > > diff --git a/app/test-eventdev/test_pipeline_common.c > > > b/app/test-eventdev/test_pipeline_common.c > > > index b111690b7c..5ae175f2c7 100644 > > > --- a/app/test-eventdev/test_pipeline_common.c > > > +++ b/app/test-eventdev/test_pipeline_common.c > > > @@ -571,7 +571,7 @@ pipeline_event_rx_adapter_setup(struct > > evt_options *opt, uint8_t stride, > > > } > > > queue_conf.ev.queue_id =3D prod * stride; > > > ret =3D rte_event_eth_rx_adapter_create(prod, opt->de= v_id, > > > - &prod_conf); > > > + &prod_conf, NULL); > > > if (ret) { > > > evt_err("failed to create rx adapter[%d]", pr= od); > > > return ret; > > > diff --git a/app/test/test_event_eth_rx_adapter.c > > > b/app/test/test_event_eth_rx_adapter.c > > > index 52d146f97c..42edcb625a 100644 > > > --- a/app/test/test_event_eth_rx_adapter.c > > > +++ b/app/test/test_event_eth_rx_adapter.c > > > @@ -401,7 +401,7 @@ adapter_create(void) > > > rx_p_conf.dequeue_depth =3D > > dev_info.max_event_port_dequeue_depth; > > > rx_p_conf.enqueue_depth =3D > > dev_info.max_event_port_enqueue_depth; > > > err =3D rte_event_eth_rx_adapter_create(TEST_INST_ID, TEST_DE= V_ID, > > > - &rx_p_conf); > > > + &rx_p_conf, NULL); > > > TEST_ASSERT(err =3D=3D 0, "Expected 0 got %d", err); > > > > > > return err; > > > @@ -427,17 +427,17 @@ adapter_create_with_params(void) > > > rxa_params.use_queue_event_buf =3D false; > > > rxa_params.event_buf_size =3D 0; > > > > > > - err =3D rte_event_eth_rx_adapter_create_with_params(TEST_INST= _ID, > > > + err =3D rte_event_eth_rx_adapter_create(TEST_INST_ID, > > > TEST_DEV_ID, &rx_p_conf, &rxa_params)= ; > > > TEST_ASSERT(err =3D=3D -EINVAL, "Expected -EINVAL got %d", er= r); > > > > > > rxa_params.use_queue_event_buf =3D true; > > > > > > - err =3D rte_event_eth_rx_adapter_create_with_params(TEST_INST= _ID, > > > + err =3D rte_event_eth_rx_adapter_create(TEST_INST_ID, > > > TEST_DEV_ID, &rx_p_conf, &rxa_params)= ; > > > TEST_ASSERT(err =3D=3D 0, "Expected 0 got %d", err); > > > > > > - err =3D rte_event_eth_rx_adapter_create_with_params(TEST_INST= _ID, > > > + err =3D rte_event_eth_rx_adapter_create(TEST_INST_ID, > > > TEST_DEV_ID, &rx_p_conf, &rxa_params)= ; > > > TEST_ASSERT(err =3D=3D -EEXIST, "Expected -EEXIST got %d", er= r); > > > > > > @@ -567,15 +567,15 @@ adapter_create_free(void) > > > }; > > > > > > err =3D rte_event_eth_rx_adapter_create(TEST_INST_ID, TEST_DE= V_ID, > > > - NULL); > > > + NULL, NULL); > > > TEST_ASSERT(err =3D=3D -EINVAL, "Expected -EINVAL got %d", er= r); > > > > > > err =3D rte_event_eth_rx_adapter_create(TEST_INST_ID, TEST_DE= V_ID, > > > - &rx_p_conf); > > > + &rx_p_conf, NULL); > > > TEST_ASSERT(err =3D=3D 0, "Expected 0 got %d", err); > > > > > > err =3D rte_event_eth_rx_adapter_create(TEST_INST_ID, > > > - TEST_DEV_ID, &rx_p_conf); > > > + TEST_DEV_ID, &rx_p_conf, > > > + NULL); > > > TEST_ASSERT(err =3D=3D -EEXIST, "Expected -EEXIST %d got %d", > > > -EEXIST, err); > > > > > > err =3D rte_event_eth_rx_adapter_free(TEST_INST_ID); > > > @@ -605,20 +605,20 @@ adapter_create_free_with_params(void) > > > .event_buf_size =3D 1024 > > > }; > > > > > > - err =3D rte_event_eth_rx_adapter_create_with_params(TEST_INST= _ID, > > > + err =3D rte_event_eth_rx_adapter_create(TEST_INST_ID, > > > TEST_DEV_ID, NULL, NULL); > > > TEST_ASSERT(err =3D=3D -EINVAL, "Expected -EINVAL got %d", er= r); > > > > > > - err =3D rte_event_eth_rx_adapter_create_with_params(TEST_INST= _ID, > > > + err =3D rte_event_eth_rx_adapter_create(TEST_INST_ID, > > > TEST_DEV_ID, &rx_p_conf, &rxa_params)= ; > > > TEST_ASSERT(err =3D=3D 0, "Expected 0 got %d", err); > > > > > > - err =3D rte_event_eth_rx_adapter_create_with_params(TEST_INST= _ID, > > > + err =3D rte_event_eth_rx_adapter_create(TEST_INST_ID, > > > TEST_DEV_ID, &rx_p_conf, &rxa_params)= ; > > > TEST_ASSERT(err =3D=3D -EEXIST, "Expected -EEXIST %d got %d", > > > -EEXIST, err); > > > > > > rxa_params.event_buf_size =3D 0; > > > - err =3D rte_event_eth_rx_adapter_create_with_params(TEST_INST= _ID, > > > + err =3D rte_event_eth_rx_adapter_create(TEST_INST_ID, > > > TEST_DEV_ID, &rx_p_conf, &rxa_params)= ; > > > TEST_ASSERT(err =3D=3D -EINVAL, "Expected -EINVAL got %d", er= r); > > > > > > diff --git a/app/test/test_security_inline_proto.c > > > b/app/test/test_security_inline_proto.c > > > index 45aa742c6b..fc240201a3 100644 > > > --- a/app/test/test_security_inline_proto.c > > > +++ b/app/test/test_security_inline_proto.c > > > @@ -1872,7 +1872,7 @@ event_inline_ipsec_testsuite_setup(void) > > > > > > /* Create Rx adapter */ > > > ret =3D rte_event_eth_rx_adapter_create(rx_adapter_id, eventd= ev_id, > > > - &ev_port_conf); > > > + &ev_port_conf, NULL); > > > if (ret < 0) { > > > printf("Failed to create rx adapter %d\n", ret); > > > return ret; > > > diff --git a/examples/eventdev_pipeline/pipeline_worker_generic.c > > > b/examples/eventdev_pipeline/pipeline_worker_generic.c > > > index 783f68c91e..74510338ba 100644 > > > --- a/examples/eventdev_pipeline/pipeline_worker_generic.c > > > +++ b/examples/eventdev_pipeline/pipeline_worker_generic.c > > > @@ -436,7 +436,7 @@ init_adapters(uint16_t nb_ports) > > > init_ports(nb_ports); > > > /* Create one adapter for all the ethernet ports. */ > > > ret =3D rte_event_eth_rx_adapter_create(cdata.rx_adapter_id, > > evdev_id, > > > - &adptr_p_conf); > > > + &adptr_p_conf, NULL); > > > if (ret) > > > rte_exit(EXIT_FAILURE, "failed to create rx adapter[%= d]", > > > cdata.rx_adapter_id); diff --git > > > a/examples/eventdev_pipeline/pipeline_worker_tx.c > > > b/examples/eventdev_pipeline/pipeline_worker_tx.c > > > index 98a52f3892..88619d6c2e 100644 > > > --- a/examples/eventdev_pipeline/pipeline_worker_tx.c > > > +++ b/examples/eventdev_pipeline/pipeline_worker_tx.c > > > @@ -793,7 +793,7 @@ init_adapters(uint16_t nb_ports) > > > uint32_t service_id; > > > > > > ret =3D rte_event_eth_rx_adapter_create(i, evdev_id, > > > - &adptr_p_conf); > > > + &adptr_p_conf, NULL); > > > if (ret) > > > rte_exit(EXIT_FAILURE, > > > "failed to create rx > > > adapter[%d]", i); diff --git a/examples/ipsec-secgw/event_helper.c > > > b/examples/ipsec-secgw/event_helper.c > > > index 89fb7e62a5..28d6778134 100644 > > > --- a/examples/ipsec-secgw/event_helper.c > > > +++ b/examples/ipsec-secgw/event_helper.c > > > @@ -1035,7 +1035,7 @@ eh_rx_adapter_configure(struct > > eventmode_conf > > > *em_conf, > > > > > > /* Create Rx adapter */ > > > ret =3D rte_event_eth_rx_adapter_create(adapter->adapter_id, > > > - adapter->eventdev_id, &port_conf); > > > + adapter->eventdev_id, &port_conf, NULL); > > > if (ret < 0) { > > > EH_LOG_ERR("Failed to create rx adapter %d", ret); > > > return ret; > > > diff --git a/examples/l2fwd-event/l2fwd_event_generic.c > > > b/examples/l2fwd-event/l2fwd_event_generic.c > > > index 1977e23261..4360b20aa0 100644 > > > --- a/examples/l2fwd-event/l2fwd_event_generic.c > > > +++ b/examples/l2fwd-event/l2fwd_event_generic.c > > > @@ -235,7 +235,7 @@ l2fwd_rx_tx_adapter_setup_generic(struct > > l2fwd_resources *rsrc) > > > } > > > > > > ret =3D rte_event_eth_rx_adapter_create(rx_adptr_id, event_d_= id, > > > - &evt_rsrc->def_p_conf); > > > + &evt_rsrc->def_p_conf, > > > + NULL); > > > if (ret) > > > rte_panic("Failed to create rx adapter\n"); > > > > > > diff --git a/examples/l2fwd-event/l2fwd_event_internal_port.c > > > b/examples/l2fwd-event/l2fwd_event_internal_port.c > > > index 717a7bceb8..542890f354 100644 > > > --- a/examples/l2fwd-event/l2fwd_event_internal_port.c > > > +++ b/examples/l2fwd-event/l2fwd_event_internal_port.c > > > @@ -253,7 +253,7 @@ l2fwd_rx_tx_adapter_setup_internal_port(struct > > l2fwd_resources *rsrc) > > > } > > > > > > ret =3D rte_event_eth_rx_adapter_create(adapter_id, e= vent_d_id, > > > - &evt_rsrc->def_p_conf= ); > > > + &evt_rsrc->def_p_conf= , > > > + NULL); > > > if (ret) > > > rte_panic("Failed to create rx adapter[%d]\n"= , > > > adapter_id); diff --git > > > a/examples/l3fwd/l3fwd_event_generic.c > > > b/examples/l3fwd/l3fwd_event_generic.c > > > index c80573fc58..88e7af538e 100644 > > > --- a/examples/l3fwd/l3fwd_event_generic.c > > > +++ b/examples/l3fwd/l3fwd_event_generic.c > > > @@ -217,7 +217,7 @@ l3fwd_rx_tx_adapter_setup_generic(void) > > > } > > > > > > ret =3D rte_event_eth_rx_adapter_create(rx_adptr_id, event_d_= id, > > > - &evt_rsrc->def_p_conf); > > > + &evt_rsrc->def_p_conf, > > > + NULL); > > > if (ret) > > > rte_panic("Failed to create rx adapter\n"); > > > > > > diff --git a/examples/l3fwd/l3fwd_event_internal_port.c > > > b/examples/l3fwd/l3fwd_event_internal_port.c > > > index 32cf657148..dc8b5013cb 100644 > > > --- a/examples/l3fwd/l3fwd_event_internal_port.c > > > +++ b/examples/l3fwd/l3fwd_event_internal_port.c > > > @@ -246,7 +246,7 @@ l3fwd_rx_tx_adapter_setup_internal_port(void) > > > } > > > > > > ret =3D rte_event_eth_rx_adapter_create(adapter_id, e= vent_d_id, > > > - &evt_rsrc->def_= p_conf); > > > + > > > + &evt_rsrc->def_p_conf, NULL); > > > if (ret) > > > rte_panic("Failed to create rx adapter[%d]\n"= , > > > adapter_id); diff --git > > > a/lib/eventdev/rte_event_eth_rx_adapter.c > > > b/lib/eventdev/rte_event_eth_rx_adapter.c > > > index f7f93ccdfd..ce203a5e4b 100644 > > > --- a/lib/eventdev/rte_event_eth_rx_adapter.c > > > +++ b/lib/eventdev/rte_event_eth_rx_adapter.c > > > @@ -2485,90 +2485,78 @@ rxa_create(uint8_t id, uint8_t dev_id, > > > return 0; > > > } > > > > > > -int > > > -rte_event_eth_rx_adapter_create_ext(uint8_t id, uint8_t dev_id, > > > - rte_event_eth_rx_adapter_conf_cb conf= _cb, > > > - void *conf_arg) > > > +static int __rte_cold > > > +rxa_config_params_validate(struct rte_event_eth_rx_adapter_params > > *rxa_params, > > > + struct rte_event_eth_rx_adapter_params > > > +*temp_params) > > > { > > > - struct rte_event_eth_rx_adapter_params rxa_params =3D {0}; > > > + if (rxa_params =3D=3D NULL) { > > > + /* use default values if rxa_params is NULL */ > > > + temp_params->event_buf_size =3D ETH_EVENT_BUFFER_SIZE= ; > > > + temp_params->use_queue_event_buf =3D false; > > > + } else if (!rxa_params->use_queue_event_buf && > > > + rxa_params->event_buf_size =3D=3D 0) { > > > + RTE_EDEV_LOG_ERR("event buffer size can't be zero\n")= ; > > > + return -EINVAL; > > > + } else if (rxa_params->use_queue_event_buf && > > > + rxa_params->event_buf_size !=3D 0) { > > > + RTE_EDEV_LOG_ERR("event buffer size needs to be confi= gured " > > > + "as part of queue add\n"); > > > + return -EINVAL; > > > + } > > > > > > - /* use default values for adapter params */ > > > - rxa_params.event_buf_size =3D ETH_EVENT_BUFFER_SIZE; > > > - rxa_params.use_queue_event_buf =3D false; > > > + *temp_params =3D *rxa_params; > > > + /* adjust event buff size with BATCH_SIZE used for fetching > > > + * packets from NIC rx queues to get full buffer utilization > > > + * and prevent unnecessary rollovers. > > > + */ > > > + if (!temp_params->use_queue_event_buf) { > > > + temp_params->event_buf_size =3D > > > + RTE_ALIGN(temp_params->event_buf_size, BATCH_= SIZE); > > > + temp_params->event_buf_size +=3D (BATCH_SIZE + BATCH_= SIZE); > > > + } > > > > > > - return rxa_create(id, dev_id, &rxa_params, conf_cb, conf_arg)= ; > > > + return 0; > > > } > > > > > > int > > > -rte_event_eth_rx_adapter_create_with_params(uint8_t id, uint8_t > > dev_id, > > > - struct rte_event_port_conf *port_config, > > > +rte_event_eth_rx_adapter_create_ext(uint8_t id, uint8_t dev_id, > > > + rte_event_eth_rx_adapter_conf_cb conf_cb, > > > + void *conf_arg, > > > struct rte_event_eth_rx_adapter_params > > > *rxa_params) { > > > - struct rte_event_port_conf *pc; > > > - int ret; > > > struct rte_event_eth_rx_adapter_params temp_params =3D {0}; > > > + int ret; > > > > > > - if (port_config =3D=3D NULL) > > > - return -EINVAL; > > > - > > > - if (rxa_params =3D=3D NULL) { > > > - /* use default values if rxa_params is NULL */ > > > - rxa_params =3D &temp_params; > > > - rxa_params->event_buf_size =3D ETH_EVENT_BUFFER_SIZE; > > > - rxa_params->use_queue_event_buf =3D false; > > > - } else if ((!rxa_params->use_queue_event_buf && > > > - rxa_params->event_buf_size =3D=3D 0) || > > > - (rxa_params->use_queue_event_buf && > > > - rxa_params->event_buf_size !=3D 0)) { > > > - RTE_EDEV_LOG_ERR("Invalid adapter params\n"); > > > - return -EINVAL; > > > - } else if (!rxa_params->use_queue_event_buf) { > > > - /* adjust event buff size with BATCH_SIZE used for fe= tching > > > - * packets from NIC rx queues to get full buffer util= ization > > > - * and prevent unnecessary rollovers. > > > - */ > > > - > > > - rxa_params->event_buf_size =3D > > > - RTE_ALIGN(rxa_params->event_buf_size, BATCH_S= IZE); > > > - rxa_params->event_buf_size +=3D (BATCH_SIZE + BATCH_S= IZE); > > > - } > > > - > > > - pc =3D rte_malloc(NULL, sizeof(*pc), 0); > > > - if (pc =3D=3D NULL) > > > - return -ENOMEM; > > > - > > > - *pc =3D *port_config; > > > - > > > - ret =3D rxa_create(id, dev_id, rxa_params, rxa_default_conf_c= b, pc); > > > - if (ret) > > > - rte_free(pc); > > > - > > > - rte_eventdev_trace_eth_rx_adapter_create_with_params(id, dev_= id, > > > - port_config, rxa_params, ret); > > > + ret =3D rxa_config_params_validate(rxa_params, &temp_params); > > > + if (ret !=3D 0) > > > + return ret; > > > > > > - return ret; > > > + return rxa_create(id, dev_id, &temp_params, conf_cb, > > > + conf_arg); > > > } > > > > > > int > > > rte_event_eth_rx_adapter_create(uint8_t id, uint8_t dev_id, > > > - struct rte_event_port_conf *port_config) > > > + struct rte_event_port_conf *port_config, > > > + struct rte_event_eth_rx_adapter_params > > > + *rxa_params) > > > { > > > struct rte_event_port_conf *pc; > > > int ret; > > > + struct rte_event_eth_rx_adapter_params temp_params =3D {0}; > > > > > > if (port_config =3D=3D NULL) > > > return -EINVAL; > > > > > > - RTE_EVENT_ETH_RX_ADAPTER_ID_VALID_OR_ERR_RET(id, -EINVAL); > > > + ret =3D rxa_config_params_validate(rxa_params, &temp_params); > > > + if (ret !=3D 0) > > > + return ret; > > > > > > pc =3D rte_malloc(NULL, sizeof(*pc), 0); > > > if (pc =3D=3D NULL) > > > return -ENOMEM; > > > + > > > *pc =3D *port_config; > > > > > > - ret =3D rte_event_eth_rx_adapter_create_ext(id, dev_id, > > > - rxa_default_conf_cb, > > > - pc); > > > + ret =3D rxa_create(id, dev_id, &temp_params, > > > + rxa_default_conf_cb, pc); > > > if (ret) > > > rte_free(pc); > > > return ret; > > > diff --git a/lib/eventdev/rte_event_eth_rx_adapter.h > > > b/lib/eventdev/rte_event_eth_rx_adapter.h > > > index fe2a6bdd2c..793e3cedad 100644 > > > --- a/lib/eventdev/rte_event_eth_rx_adapter.h > > > +++ b/lib/eventdev/rte_event_eth_rx_adapter.h > > > @@ -26,7 +26,6 @@ > > > * The ethernet Rx event adapter's functions are: > > > * - rte_event_eth_rx_adapter_create_ext() > > > * - rte_event_eth_rx_adapter_create() > > > - * - rte_event_eth_rx_adapter_create_with_params() > > > * - rte_event_eth_rx_adapter_free() > > > * - rte_event_eth_rx_adapter_queue_add() > > > * - rte_event_eth_rx_adapter_queue_del() > > > @@ -45,7 +44,7 @@ > > > * > > > * The application creates an ethernet to event adapter using > > > * rte_event_eth_rx_adapter_create_ext() or > > > rte_event_eth_rx_adapter_create() > > > - * or rte_event_eth_rx_adapter_create_with_params() functions. > > > + * functions. > > > * > > > * The adapter needs to know which ethernet rx queues to poll for mb= ufs > > as well > > > * as event device parameters such as the event queue identifier, > > > event @@ -394,13 +393,18 @@ typedef uint16_t > > (*rte_event_eth_rx_adapter_cb_fn)(uint16_t eth_dev_id, > > > * @param conf_arg > > > * Argument that is passed to the conf_cb function. > > > * > > > + * @param rxa_params > > > + * Pointer to struct rte_event_eth_rx_adapter_params. > > > + * In case of NULL, default values are used. > > > + * > > > * @return > > > * - 0: Success > > > * - <0: Error code on failure > > > */ > > > int rte_event_eth_rx_adapter_create_ext(uint8_t id, uint8_t dev_id, > > > - rte_event_eth_rx_adapter_conf_cb conf= _cb, > > > - void *conf_arg); > > > + rte_event_eth_rx_adapter_conf_cb conf_cb, > > > + void *conf_arg, > > > + struct rte_event_eth_rx_adapter_params > > > + *rxa_params); > > > > > > /** > > > * Create a new ethernet Rx event adapter with the specified identif= ier. > > > @@ -435,27 +439,6 @@ int rte_event_eth_rx_adapter_create_ext(uint8_t > > id, uint8_t dev_id, > > > * Argument of type *rte_event_port_conf* that is passed to the con= f_cb > > > * function. > > > * > > > - * @return > > > - * - 0: Success > > > - * - <0: Error code on failure > > > - */ > > > -int rte_event_eth_rx_adapter_create(uint8_t id, uint8_t dev_id, > > > - struct rte_event_port_conf *port_conf= ig); > > > - > > > -/** > > > - * This is a variant of rte_event_eth_rx_adapter_create() with > > > additional > > > - * adapter params specified in ``struct > > rte_event_eth_rx_adapter_params``. > > > - * > > > - * @param id > > > - * The identifier of the ethernet Rx event adapter. > > > - * > > > - * @param dev_id > > > - * The identifier of the event device to configure. > > > - * > > > - * @param port_config > > > - * Argument of type *rte_event_port_conf* that is passed to the > > > conf_cb > > > - * function. > > > - * > > > * @param rxa_params > > > * Pointer to struct rte_event_eth_rx_adapter_params. > > > * In case of NULL, default values are used. > > > @@ -464,8 +447,7 @@ int rte_event_eth_rx_adapter_create(uint8_t id, > > uint8_t dev_id, > > > * - 0: Success > > > * - <0: Error code on failure > > > */ > > > -__rte_experimental > > > -int rte_event_eth_rx_adapter_create_with_params(uint8_t id, uint8_t > > > dev_id, > > > +int rte_event_eth_rx_adapter_create(uint8_t id, uint8_t dev_id, > > > struct rte_event_port_conf *port_config, > > > struct rte_event_eth_rx_adapter_params > > > *rxa_params); > > > > > > diff --git a/lib/eventdev/version.map b/lib/eventdev/version.map inde= x > > > b03c10d99f..1cf58f0d6c 100644 > > > --- a/lib/eventdev/version.map > > > +++ b/lib/eventdev/version.map > > > @@ -101,7 +101,6 @@ EXPERIMENTAL { > > > global: > > > > > > # added in 21.11 > > > - rte_event_eth_rx_adapter_create_with_params; > > > rte_event_eth_rx_adapter_queue_conf_get; > > > rte_event_eth_rx_adapter_queue_stats_get; > > > rte_event_eth_rx_adapter_queue_stats_reset; > > > -- > > > 2.25.1 > > >