[dpdk-dev,v2] eventdev: make ethernet port identifiers 16 bit

Message ID 1525899160-169278-1-git-send-email-nikhil.rao@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Jerin Jacob
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Rao, Nikhil May 9, 2018, 8:52 p.m. UTC
  Ethernet port ID data size has been extended to 16 bits size 17.11
Update the Rx event adapter interface and implementation accordingly.

Fixes: 9c38b704d280 ("eventdev: add eth Rx adapter implementation")
Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
Cc: stable@dpdk.org
--

Supersedes the following posts:
http://dpdk.org/ml/archives/dev/2018-May/100917.html
http://dpdk.org/ml/archives/dev/2018-May/100426.html
---
 lib/librte_eventdev/rte_event_eth_rx_adapter.h |  4 ++--
 lib/librte_eventdev/rte_event_eth_rx_adapter.c | 23 ++++++++++++-----------
 2 files changed, 14 insertions(+), 13 deletions(-)
  

Comments

Jerin Jacob May 10, 2018, 4:31 a.m. UTC | #1
-----Original Message-----
> Date: Thu, 10 May 2018 02:22:40 +0530
> From: Nikhil Rao <nikhil.rao@intel.com>
> To: jerin.jacob@caviumnetworks.com
> CC: ferruh.yigit@intel.com, lei.a.yao@intel.com, dev@dpdk.org, Nikhil Rao
>  <nikhil.rao@intel.com>, stable@dpdk.org
> Subject: [PATCH v2] eventdev: make ethernet port identifiers 16 bit
> X-Mailer: git-send-email 1.8.3.1
> 
> Ethernet port ID data size has been extended to 16 bits size 17.11
> Update the Rx event adapter interface and implementation accordingly.
> 
> Fixes: 9c38b704d280 ("eventdev: add eth Rx adapter implementation")
> Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
> Cc: stable@dpdk.org

Since it is an ABI change, please bump the library version.
eth_rx_adapter still under experimental tag, IMO, no deprecation notice is
required.

Reference commit for library version update:

commit dfb7f82a5ae3eea5b9229828cc26ff2c291ffc9f
Author: Harry van Haaren <harry.van.haaren@intel.com>
Date:   Wed Sep 20 14:36:03 2017 +0100

    eventdev: bump library version


> --
> 
> Supersedes the following posts:
> http://dpdk.org/ml/archives/dev/2018-May/100917.html
> http://dpdk.org/ml/archives/dev/2018-May/100426.html
> ---
>  lib/librte_eventdev/rte_event_eth_rx_adapter.h |  4 ++--
>  lib/librte_eventdev/rte_event_eth_rx_adapter.c | 23 ++++++++++++-----------
>  2 files changed, 14 insertions(+), 13 deletions(-)
> 
> diff --git a/lib/librte_eventdev/rte_event_eth_rx_adapter.h b/lib/librte_eventdev/rte_event_eth_rx_adapter.h
> index e6a6435..834eb53 100644
> --- a/lib/librte_eventdev/rte_event_eth_rx_adapter.h
> +++ b/lib/librte_eventdev/rte_event_eth_rx_adapter.h
> @@ -307,7 +307,7 @@ int rte_event_eth_rx_adapter_create(uint8_t id, uint8_t dev_id,
>   *  combination of the two error codes.
>   */
>  int rte_event_eth_rx_adapter_queue_add(uint8_t id,
> -			uint8_t eth_dev_id,
> +			uint16_t eth_dev_id,
>  			int32_t rx_queue_id,
>  			const struct rte_event_eth_rx_adapter_queue_conf *conf);
>  
> @@ -335,7 +335,7 @@ int rte_event_eth_rx_adapter_queue_add(uint8_t id,
>   *  - 0: Success, Receive queue deleted correctly.
>   *  - <0: Error code on failure.
>   */
> -int rte_event_eth_rx_adapter_queue_del(uint8_t id, uint8_t eth_dev_id,
> +int rte_event_eth_rx_adapter_queue_del(uint8_t id, uint16_t eth_dev_id,
>  				       int32_t rx_queue_id);
>  
>  /**
> diff --git a/lib/librte_eventdev/rte_event_eth_rx_adapter.c b/lib/librte_eventdev/rte_event_eth_rx_adapter.c
> index 4c0c025..6f70509 100644
> --- a/lib/librte_eventdev/rte_event_eth_rx_adapter.c
> +++ b/lib/librte_eventdev/rte_event_eth_rx_adapter.c
> @@ -31,7 +31,7 @@
>   */
>  struct eth_rx_poll_entry {
>  	/* Eth port to poll */
> -	uint8_t eth_dev_id;
> +	uint16_t eth_dev_id;
>  	/* Eth rx queue to poll */
>  	uint16_t eth_rx_qid;
>  };
> @@ -168,7 +168,7 @@ static uint16_t gcd_u16(uint16_t a, uint16_t b)
>  
>  	while (1) {
>  		uint16_t q;
> -		uint8_t d;
> +		uint16_t d;
>  
>  		i = (i + 1) % n;
>  		if (i == 0) {
> @@ -190,7 +190,7 @@ static uint16_t gcd_u16(uint16_t a, uint16_t b)
>  static int
>  eth_poll_wrr_calc(struct rte_event_eth_rx_adapter *rx_adapter)
>  {
> -	uint8_t d;
> +	uint16_t d;
>  	uint16_t q;
>  	unsigned int i;
>  
> @@ -510,7 +510,7 @@ static uint16_t gcd_u16(uint16_t a, uint16_t b)
>  	for (num_queue = 0; num_queue < rx_adapter->wrr_len; num_queue++) {
>  		unsigned int poll_idx = rx_adapter->wrr_sched[wrr_pos];
>  		uint16_t qid = rx_adapter->eth_rx_poll[poll_idx].eth_rx_qid;
> -		uint8_t d = rx_adapter->eth_rx_poll[poll_idx].eth_dev_id;
> +		uint16_t d = rx_adapter->eth_rx_poll[poll_idx].eth_dev_id;
>  
>  		/* Don't do a batch dequeue from the rx queue if there isn't
>  		 * enough space in the enqueue buffer.
> @@ -755,7 +755,7 @@ static uint16_t gcd_u16(uint16_t a, uint16_t b)
>  }
>  
>  static int add_rx_queue(struct rte_event_eth_rx_adapter *rx_adapter,
> -		uint8_t eth_dev_id,
> +		uint16_t eth_dev_id,
>  		int rx_queue_id,
>  		const struct rte_event_eth_rx_adapter_queue_conf *queue_conf)
>  {
> @@ -859,7 +859,7 @@ static int add_rx_queue(struct rte_event_eth_rx_adapter *rx_adapter,
>  	struct rte_event_eth_rx_adapter *rx_adapter;
>  	int ret;
>  	int socket_id;
> -	uint8_t i;
> +	uint16_t i;
>  	char mem_name[ETH_RX_ADAPTER_SERVICE_NAME_LEN];
>  	const uint8_t default_rss_key[] = {
>  		0x6d, 0x5a, 0x56, 0xda, 0x25, 0x5b, 0x0e, 0xc2,
> @@ -978,7 +978,7 @@ static int add_rx_queue(struct rte_event_eth_rx_adapter *rx_adapter,
>  
>  int
>  rte_event_eth_rx_adapter_queue_add(uint8_t id,
> -		uint8_t eth_dev_id,
> +		uint16_t eth_dev_id,
>  		int32_t rx_queue_id,
>  		const struct rte_event_eth_rx_adapter_queue_conf *queue_conf)
>  {
> @@ -1002,7 +1002,7 @@ static int add_rx_queue(struct rte_event_eth_rx_adapter *rx_adapter,
>  						&cap);
>  	if (ret) {
>  		RTE_EDEV_LOG_ERR("Failed to get adapter caps edev %" PRIu8
> -			"eth port %" PRIu8, id, eth_dev_id);
> +			"eth port %" PRIu16, id, eth_dev_id);
>  		return ret;
>  	}
>  
> @@ -1010,7 +1010,7 @@ static int add_rx_queue(struct rte_event_eth_rx_adapter *rx_adapter,
>  		&& (queue_conf->rx_queue_flags &
>  			RTE_EVENT_ETH_RX_ADAPTER_QUEUE_FLOW_ID_VALID)) {
>  		RTE_EDEV_LOG_ERR("Flow ID override is not supported,"
> -				" eth port: %" PRIu8 " adapter id: %" PRIu8,
> +				" eth port: %" PRIu16 " adapter id: %" PRIu8,
>  				eth_dev_id, id);
>  		return -EINVAL;
>  	}
> @@ -1018,7 +1018,8 @@ static int add_rx_queue(struct rte_event_eth_rx_adapter *rx_adapter,
>  	if ((cap & RTE_EVENT_ETH_RX_ADAPTER_CAP_MULTI_EVENTQ) == 0 &&
>  		(rx_queue_id != -1)) {
>  		RTE_EDEV_LOG_ERR("Rx queues can only be connected to single "
> -			"event queue id %u eth port %u", id, eth_dev_id);
> +			"event queue, eth port: %" PRIu16 " adapter id: %"
> +			PRIu8, eth_dev_id, id);
>  		return -EINVAL;
>  	}
>  
> @@ -1075,7 +1076,7 @@ static int add_rx_queue(struct rte_event_eth_rx_adapter *rx_adapter,
>  }
>  
>  int
> -rte_event_eth_rx_adapter_queue_del(uint8_t id, uint8_t eth_dev_id,
> +rte_event_eth_rx_adapter_queue_del(uint8_t id, uint16_t eth_dev_id,
>  				int32_t rx_queue_id)
>  {
>  	int ret = 0;
> -- 
> 1.8.3.1
>
  
Jerin Jacob May 10, 2018, 5:35 a.m. UTC | #2
-----Original Message-----
> Date: Thu, 10 May 2018 02:22:40 +0530
> From: Nikhil Rao <nikhil.rao@intel.com>
> To: jerin.jacob@caviumnetworks.com
> CC: ferruh.yigit@intel.com, lei.a.yao@intel.com, dev@dpdk.org, Nikhil Rao
>  <nikhil.rao@intel.com>, stable@dpdk.org
> Subject: [PATCH v2] eventdev: make ethernet port identifiers 16 bit
> X-Mailer: git-send-email 1.8.3.1
> 
> Ethernet port ID data size has been extended to 16 bits size 17.11
> Update the Rx event adapter interface and implementation accordingly.
> 
> Fixes: 9c38b704d280 ("eventdev: add eth Rx adapter implementation")
> Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
> Cc: stable@dpdk.org
> --

Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>

I will squash following patch on apply
https://dpdk.org/ml/archives/dev/2018-May/100988.html

> 
> Supersedes the following posts:
> http://dpdk.org/ml/archives/dev/2018-May/100917.html
> http://dpdk.org/ml/archives/dev/2018-May/100426.html
> ---
>  lib/librte_eventdev/rte_event_eth_rx_adapter.h |  4 ++--
>  lib/librte_eventdev/rte_event_eth_rx_adapter.c | 23 ++++++++++++-----------
>  2 files changed, 14 insertions(+), 13 deletions(-)
> 
> diff --git a/lib/librte_eventdev/rte_event_eth_rx_adapter.h b/lib/librte_eventdev/rte_event_eth_rx_adapter.h
> index e6a6435..834eb53 100644
> --- a/lib/librte_eventdev/rte_event_eth_rx_adapter.h
> +++ b/lib/librte_eventdev/rte_event_eth_rx_adapter.h
> @@ -307,7 +307,7 @@ int rte_event_eth_rx_adapter_create(uint8_t id, uint8_t dev_id,
>   *  combination of the two error codes.
>   */
>  int rte_event_eth_rx_adapter_queue_add(uint8_t id,
> -			uint8_t eth_dev_id,
> +			uint16_t eth_dev_id,
>  			int32_t rx_queue_id,
>  			const struct rte_event_eth_rx_adapter_queue_conf *conf);
>  
> @@ -335,7 +335,7 @@ int rte_event_eth_rx_adapter_queue_add(uint8_t id,
>   *  - 0: Success, Receive queue deleted correctly.
>   *  - <0: Error code on failure.
>   */
> -int rte_event_eth_rx_adapter_queue_del(uint8_t id, uint8_t eth_dev_id,
> +int rte_event_eth_rx_adapter_queue_del(uint8_t id, uint16_t eth_dev_id,
>  				       int32_t rx_queue_id);
>  
>  /**
> diff --git a/lib/librte_eventdev/rte_event_eth_rx_adapter.c b/lib/librte_eventdev/rte_event_eth_rx_adapter.c
> index 4c0c025..6f70509 100644
> --- a/lib/librte_eventdev/rte_event_eth_rx_adapter.c
> +++ b/lib/librte_eventdev/rte_event_eth_rx_adapter.c
> @@ -31,7 +31,7 @@
>   */
>  struct eth_rx_poll_entry {
>  	/* Eth port to poll */
> -	uint8_t eth_dev_id;
> +	uint16_t eth_dev_id;
>  	/* Eth rx queue to poll */
>  	uint16_t eth_rx_qid;
>  };
> @@ -168,7 +168,7 @@ static uint16_t gcd_u16(uint16_t a, uint16_t b)
>  
>  	while (1) {
>  		uint16_t q;
> -		uint8_t d;
> +		uint16_t d;
>  
>  		i = (i + 1) % n;
>  		if (i == 0) {
> @@ -190,7 +190,7 @@ static uint16_t gcd_u16(uint16_t a, uint16_t b)
>  static int
>  eth_poll_wrr_calc(struct rte_event_eth_rx_adapter *rx_adapter)
>  {
> -	uint8_t d;
> +	uint16_t d;
>  	uint16_t q;
>  	unsigned int i;
>  
> @@ -510,7 +510,7 @@ static uint16_t gcd_u16(uint16_t a, uint16_t b)
>  	for (num_queue = 0; num_queue < rx_adapter->wrr_len; num_queue++) {
>  		unsigned int poll_idx = rx_adapter->wrr_sched[wrr_pos];
>  		uint16_t qid = rx_adapter->eth_rx_poll[poll_idx].eth_rx_qid;
> -		uint8_t d = rx_adapter->eth_rx_poll[poll_idx].eth_dev_id;
> +		uint16_t d = rx_adapter->eth_rx_poll[poll_idx].eth_dev_id;
>  
>  		/* Don't do a batch dequeue from the rx queue if there isn't
>  		 * enough space in the enqueue buffer.
> @@ -755,7 +755,7 @@ static uint16_t gcd_u16(uint16_t a, uint16_t b)
>  }
>  
>  static int add_rx_queue(struct rte_event_eth_rx_adapter *rx_adapter,
> -		uint8_t eth_dev_id,
> +		uint16_t eth_dev_id,
>  		int rx_queue_id,
>  		const struct rte_event_eth_rx_adapter_queue_conf *queue_conf)
>  {
> @@ -859,7 +859,7 @@ static int add_rx_queue(struct rte_event_eth_rx_adapter *rx_adapter,
>  	struct rte_event_eth_rx_adapter *rx_adapter;
>  	int ret;
>  	int socket_id;
> -	uint8_t i;
> +	uint16_t i;
>  	char mem_name[ETH_RX_ADAPTER_SERVICE_NAME_LEN];
>  	const uint8_t default_rss_key[] = {
>  		0x6d, 0x5a, 0x56, 0xda, 0x25, 0x5b, 0x0e, 0xc2,
> @@ -978,7 +978,7 @@ static int add_rx_queue(struct rte_event_eth_rx_adapter *rx_adapter,
>  
>  int
>  rte_event_eth_rx_adapter_queue_add(uint8_t id,
> -		uint8_t eth_dev_id,
> +		uint16_t eth_dev_id,
>  		int32_t rx_queue_id,
>  		const struct rte_event_eth_rx_adapter_queue_conf *queue_conf)
>  {
> @@ -1002,7 +1002,7 @@ static int add_rx_queue(struct rte_event_eth_rx_adapter *rx_adapter,
>  						&cap);
>  	if (ret) {
>  		RTE_EDEV_LOG_ERR("Failed to get adapter caps edev %" PRIu8
> -			"eth port %" PRIu8, id, eth_dev_id);
> +			"eth port %" PRIu16, id, eth_dev_id);
>  		return ret;
>  	}
>  
> @@ -1010,7 +1010,7 @@ static int add_rx_queue(struct rte_event_eth_rx_adapter *rx_adapter,
>  		&& (queue_conf->rx_queue_flags &
>  			RTE_EVENT_ETH_RX_ADAPTER_QUEUE_FLOW_ID_VALID)) {
>  		RTE_EDEV_LOG_ERR("Flow ID override is not supported,"
> -				" eth port: %" PRIu8 " adapter id: %" PRIu8,
> +				" eth port: %" PRIu16 " adapter id: %" PRIu8,
>  				eth_dev_id, id);
>  		return -EINVAL;
>  	}
> @@ -1018,7 +1018,8 @@ static int add_rx_queue(struct rte_event_eth_rx_adapter *rx_adapter,
>  	if ((cap & RTE_EVENT_ETH_RX_ADAPTER_CAP_MULTI_EVENTQ) == 0 &&
>  		(rx_queue_id != -1)) {
>  		RTE_EDEV_LOG_ERR("Rx queues can only be connected to single "
> -			"event queue id %u eth port %u", id, eth_dev_id);
> +			"event queue, eth port: %" PRIu16 " adapter id: %"
> +			PRIu8, eth_dev_id, id);
>  		return -EINVAL;
>  	}
>  
> @@ -1075,7 +1076,7 @@ static int add_rx_queue(struct rte_event_eth_rx_adapter *rx_adapter,
>  }
>  
>  int
> -rte_event_eth_rx_adapter_queue_del(uint8_t id, uint8_t eth_dev_id,
> +rte_event_eth_rx_adapter_queue_del(uint8_t id, uint16_t eth_dev_id,
>  				int32_t rx_queue_id)
>  {
>  	int ret = 0;
> -- 
> 1.8.3.1
>
  
Jerin Jacob May 10, 2018, 5:49 a.m. UTC | #3
-----Original Message-----
> Date: Thu, 10 May 2018 11:05:40 +0530
> From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> To: Nikhil Rao <nikhil.rao@intel.com>
> CC: ferruh.yigit@intel.com, lei.a.yao@intel.com, dev@dpdk.org,
>  stable@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH v2] eventdev: make ethernet port identifiers
>  16 bit
> User-Agent: Mutt/1.9.5 (2018-04-13)
> 
> -----Original Message-----
> > Date: Thu, 10 May 2018 02:22:40 +0530
> > From: Nikhil Rao <nikhil.rao@intel.com>
> > To: jerin.jacob@caviumnetworks.com
> > CC: ferruh.yigit@intel.com, lei.a.yao@intel.com, dev@dpdk.org, Nikhil Rao
> >  <nikhil.rao@intel.com>, stable@dpdk.org
> > Subject: [PATCH v2] eventdev: make ethernet port identifiers 16 bit
> > X-Mailer: git-send-email 1.8.3.1
> > 
> > Ethernet port ID data size has been extended to 16 bits size 17.11
> > Update the Rx event adapter interface and implementation accordingly.
> > 
> > Fixes: 9c38b704d280 ("eventdev: add eth Rx adapter implementation")
> > Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
> > Cc: stable@dpdk.org
> > --
> 
> Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> 
> I will squash following patch on apply
> https://dpdk.org/ml/archives/dev/2018-May/100988.html


Applied to dpdk-next-eventdev/master. Thanks.

> 
> > 
> > Supersedes the following posts:
> > http://dpdk.org/ml/archives/dev/2018-May/100917.html
> > http://dpdk.org/ml/archives/dev/2018-May/100426.html
> > ---
> >  lib/librte_eventdev/rte_event_eth_rx_adapter.h |  4 ++--
> >  lib/librte_eventdev/rte_event_eth_rx_adapter.c | 23 ++++++++++++-----------
> >  2 files changed, 14 insertions(+), 13 deletions(-)
> > 
> > diff --git a/lib/librte_eventdev/rte_event_eth_rx_adapter.h b/lib/librte_eventdev/rte_event_eth_rx_adapter.h
> > index e6a6435..834eb53 100644
> > --- a/lib/librte_eventdev/rte_event_eth_rx_adapter.h
> > +++ b/lib/librte_eventdev/rte_event_eth_rx_adapter.h
> > @@ -307,7 +307,7 @@ int rte_event_eth_rx_adapter_create(uint8_t id, uint8_t dev_id,
> >   *  combination of the two error codes.
> >   */
> >  int rte_event_eth_rx_adapter_queue_add(uint8_t id,
> > -			uint8_t eth_dev_id,
> > +			uint16_t eth_dev_id,
> >  			int32_t rx_queue_id,
> >  			const struct rte_event_eth_rx_adapter_queue_conf *conf);
> >  
> > @@ -335,7 +335,7 @@ int rte_event_eth_rx_adapter_queue_add(uint8_t id,
> >   *  - 0: Success, Receive queue deleted correctly.
> >   *  - <0: Error code on failure.
> >   */
> > -int rte_event_eth_rx_adapter_queue_del(uint8_t id, uint8_t eth_dev_id,
> > +int rte_event_eth_rx_adapter_queue_del(uint8_t id, uint16_t eth_dev_id,
> >  				       int32_t rx_queue_id);
> >  
> >  /**
> > diff --git a/lib/librte_eventdev/rte_event_eth_rx_adapter.c b/lib/librte_eventdev/rte_event_eth_rx_adapter.c
> > index 4c0c025..6f70509 100644
> > --- a/lib/librte_eventdev/rte_event_eth_rx_adapter.c
> > +++ b/lib/librte_eventdev/rte_event_eth_rx_adapter.c
> > @@ -31,7 +31,7 @@
> >   */
> >  struct eth_rx_poll_entry {
> >  	/* Eth port to poll */
> > -	uint8_t eth_dev_id;
> > +	uint16_t eth_dev_id;
> >  	/* Eth rx queue to poll */
> >  	uint16_t eth_rx_qid;
> >  };
> > @@ -168,7 +168,7 @@ static uint16_t gcd_u16(uint16_t a, uint16_t b)
> >  
> >  	while (1) {
> >  		uint16_t q;
> > -		uint8_t d;
> > +		uint16_t d;
> >  
> >  		i = (i + 1) % n;
> >  		if (i == 0) {
> > @@ -190,7 +190,7 @@ static uint16_t gcd_u16(uint16_t a, uint16_t b)
> >  static int
> >  eth_poll_wrr_calc(struct rte_event_eth_rx_adapter *rx_adapter)
> >  {
> > -	uint8_t d;
> > +	uint16_t d;
> >  	uint16_t q;
> >  	unsigned int i;
> >  
> > @@ -510,7 +510,7 @@ static uint16_t gcd_u16(uint16_t a, uint16_t b)
> >  	for (num_queue = 0; num_queue < rx_adapter->wrr_len; num_queue++) {
> >  		unsigned int poll_idx = rx_adapter->wrr_sched[wrr_pos];
> >  		uint16_t qid = rx_adapter->eth_rx_poll[poll_idx].eth_rx_qid;
> > -		uint8_t d = rx_adapter->eth_rx_poll[poll_idx].eth_dev_id;
> > +		uint16_t d = rx_adapter->eth_rx_poll[poll_idx].eth_dev_id;
> >  
> >  		/* Don't do a batch dequeue from the rx queue if there isn't
> >  		 * enough space in the enqueue buffer.
> > @@ -755,7 +755,7 @@ static uint16_t gcd_u16(uint16_t a, uint16_t b)
> >  }
> >  
> >  static int add_rx_queue(struct rte_event_eth_rx_adapter *rx_adapter,
> > -		uint8_t eth_dev_id,
> > +		uint16_t eth_dev_id,
> >  		int rx_queue_id,
> >  		const struct rte_event_eth_rx_adapter_queue_conf *queue_conf)
> >  {
> > @@ -859,7 +859,7 @@ static int add_rx_queue(struct rte_event_eth_rx_adapter *rx_adapter,
> >  	struct rte_event_eth_rx_adapter *rx_adapter;
> >  	int ret;
> >  	int socket_id;
> > -	uint8_t i;
> > +	uint16_t i;
> >  	char mem_name[ETH_RX_ADAPTER_SERVICE_NAME_LEN];
> >  	const uint8_t default_rss_key[] = {
> >  		0x6d, 0x5a, 0x56, 0xda, 0x25, 0x5b, 0x0e, 0xc2,
> > @@ -978,7 +978,7 @@ static int add_rx_queue(struct rte_event_eth_rx_adapter *rx_adapter,
> >  
> >  int
> >  rte_event_eth_rx_adapter_queue_add(uint8_t id,
> > -		uint8_t eth_dev_id,
> > +		uint16_t eth_dev_id,
> >  		int32_t rx_queue_id,
> >  		const struct rte_event_eth_rx_adapter_queue_conf *queue_conf)
> >  {
> > @@ -1002,7 +1002,7 @@ static int add_rx_queue(struct rte_event_eth_rx_adapter *rx_adapter,
> >  						&cap);
> >  	if (ret) {
> >  		RTE_EDEV_LOG_ERR("Failed to get adapter caps edev %" PRIu8
> > -			"eth port %" PRIu8, id, eth_dev_id);
> > +			"eth port %" PRIu16, id, eth_dev_id);
> >  		return ret;
> >  	}
> >  
> > @@ -1010,7 +1010,7 @@ static int add_rx_queue(struct rte_event_eth_rx_adapter *rx_adapter,
> >  		&& (queue_conf->rx_queue_flags &
> >  			RTE_EVENT_ETH_RX_ADAPTER_QUEUE_FLOW_ID_VALID)) {
> >  		RTE_EDEV_LOG_ERR("Flow ID override is not supported,"
> > -				" eth port: %" PRIu8 " adapter id: %" PRIu8,
> > +				" eth port: %" PRIu16 " adapter id: %" PRIu8,
> >  				eth_dev_id, id);
> >  		return -EINVAL;
> >  	}
> > @@ -1018,7 +1018,8 @@ static int add_rx_queue(struct rte_event_eth_rx_adapter *rx_adapter,
> >  	if ((cap & RTE_EVENT_ETH_RX_ADAPTER_CAP_MULTI_EVENTQ) == 0 &&
> >  		(rx_queue_id != -1)) {
> >  		RTE_EDEV_LOG_ERR("Rx queues can only be connected to single "
> > -			"event queue id %u eth port %u", id, eth_dev_id);
> > +			"event queue, eth port: %" PRIu16 " adapter id: %"
> > +			PRIu8, eth_dev_id, id);
> >  		return -EINVAL;
> >  	}
> >  
> > @@ -1075,7 +1076,7 @@ static int add_rx_queue(struct rte_event_eth_rx_adapter *rx_adapter,
> >  }
> >  
> >  int
> > -rte_event_eth_rx_adapter_queue_del(uint8_t id, uint8_t eth_dev_id,
> > +rte_event_eth_rx_adapter_queue_del(uint8_t id, uint16_t eth_dev_id,
> >  				int32_t rx_queue_id)
> >  {
> >  	int ret = 0;
> > -- 
> > 1.8.3.1
> >
  
Thomas Monjalon May 10, 2018, 1:48 p.m. UTC | #4
10/05/2018 06:31, Jerin Jacob:
> > Date: Thu, 10 May 2018 02:22:40 +0530
> > From: Nikhil Rao <nikhil.rao@intel.com>
> > 
> > Ethernet port ID data size has been extended to 16 bits size 17.11
> > Update the Rx event adapter interface and implementation accordingly.
> > 
> > Fixes: 9c38b704d280 ("eventdev: add eth Rx adapter implementation")
> > Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
> > Cc: stable@dpdk.org
> 
> Since it is an ABI change, please bump the library version.
> eth_rx_adapter still under experimental tag, IMO, no deprecation notice is
> required.

The ABI changes must be described in the release notes too.

There is no deprecation notice for this ABI change.
According the the policy, you must send a notice in 18.05,
and do the change in 18.08.

This commit will be dropped when pulling the eventdev tree, sorry.
  
Jerin Jacob May 10, 2018, 2:30 p.m. UTC | #5
-----Original Message-----
> Date: Thu, 10 May 2018 15:48:54 +0200
> From: Thomas Monjalon <thomas@monjalon.net>
> To: Nikhil Rao <nikhil.rao@intel.com>
> Cc: Jerin Jacob <jerin.jacob@caviumnetworks.com>, ferruh.yigit@intel.com,
>  lei.a.yao@intel.com, dev@dpdk.org
> Subject: Re: [dpdk-stable] [PATCH v2] eventdev: make ethernet port
>  identifiers 16 bit
> 
> 10/05/2018 06:31, Jerin Jacob:
> > > Date: Thu, 10 May 2018 02:22:40 +0530
> > > From: Nikhil Rao <nikhil.rao@intel.com>
> > > 
> > > Ethernet port ID data size has been extended to 16 bits size 17.11
> > > Update the Rx event adapter interface and implementation accordingly.
> > > 
> > > Fixes: 9c38b704d280 ("eventdev: add eth Rx adapter implementation")
> > > Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
> > > Cc: stable@dpdk.org
> > 
> > Since it is an ABI change, please bump the library version.
> > eth_rx_adapter still under experimental tag, IMO, no deprecation notice is
> > required.
> 
> The ABI changes must be described in the release notes too.
> 
> There is no deprecation notice for this ABI change.
> According the the policy, you must send a notice in 18.05,
> and do the change in 18.08.

Even for the APIs with experimental tag? If so, I don't see any
difference between experimental vs non experimental API? 

> 
> This commit will be dropped when pulling the eventdev tree, sorry.
> 
> 
>
  
Thomas Monjalon May 10, 2018, 2:54 p.m. UTC | #6
10/05/2018 16:30, Jerin Jacob:
> From: Thomas Monjalon <thomas@monjalon.net>
> > 10/05/2018 06:31, Jerin Jacob:
> > > > Date: Thu, 10 May 2018 02:22:40 +0530
> > > > From: Nikhil Rao <nikhil.rao@intel.com>
> > > > 
> > > > Ethernet port ID data size has been extended to 16 bits size 17.11
> > > > Update the Rx event adapter interface and implementation accordingly.
> > > > 
> > > > Fixes: 9c38b704d280 ("eventdev: add eth Rx adapter implementation")
> > > > Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
> > > > Cc: stable@dpdk.org
> > > 
> > > Since it is an ABI change, please bump the library version.
> > > eth_rx_adapter still under experimental tag, IMO, no deprecation notice is
> > > required.
> > 
> > The ABI changes must be described in the release notes too.
> > 
> > There is no deprecation notice for this ABI change.
> > According the the policy, you must send a notice in 18.05,
> > and do the change in 18.08.
> 
> Even for the APIs with experimental tag?

No, experimental can change without prior notice.

> If so, I don't see any
> difference between experimental vs non experimental API? 

Rx adapter is not experimental as far as I know.
  
Jerin Jacob May 10, 2018, 3:16 p.m. UTC | #7
-----Original Message-----
> Date: Thu, 10 May 2018 16:54:45 +0200
> From: Thomas Monjalon <thomas@monjalon.net>
> To: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> Cc: Nikhil Rao <nikhil.rao@intel.com>, ferruh.yigit@intel.com,
>  lei.a.yao@intel.com, dev@dpdk.org
> Subject: Re: [dpdk-stable] [PATCH v2] eventdev: make ethernet port
>  identifiers 16 bit
> 
> 10/05/2018 16:30, Jerin Jacob:
> > From: Thomas Monjalon <thomas@monjalon.net>
> > > 10/05/2018 06:31, Jerin Jacob:
> > > > > Date: Thu, 10 May 2018 02:22:40 +0530
> > > > > From: Nikhil Rao <nikhil.rao@intel.com>
> > > > > 
> > > > > Ethernet port ID data size has been extended to 16 bits size 17.11
> > > > > Update the Rx event adapter interface and implementation accordingly.
> > > > > 
> > > > > Fixes: 9c38b704d280 ("eventdev: add eth Rx adapter implementation")
> > > > > Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
> > > > > Cc: stable@dpdk.org
> > > > 
> > > > Since it is an ABI change, please bump the library version.
> > > > eth_rx_adapter still under experimental tag, IMO, no deprecation notice is
> > > > required.
> > > 
> > > The ABI changes must be described in the release notes too.
> > > 
> > > There is no deprecation notice for this ABI change.
> > > According the the policy, you must send a notice in 18.05,
> > > and do the change in 18.08.
> > 
> > Even for the APIs with experimental tag?
> 
> No, experimental can change without prior notice.
> 
> > If so, I don't see any
> > difference between experimental vs non experimental API? 
> 
> Rx adapter is not experimental as far as I know.

It is experimental. Please see the links.

http://dpdk.org/browse/dpdk/tree/MAINTAINERS#n351
http://dpdk.org/browse/dpdk/tree/lib/librte_eventdev/rte_event_eth_rx_adapter.h#n276

If you agree then take dropped patch.

> 
>
  
Thomas Monjalon May 10, 2018, 3:45 p.m. UTC | #8
10/05/2018 17:16, Jerin Jacob:
> From: Thomas Monjalon <thomas@monjalon.net>
> > 10/05/2018 16:30, Jerin Jacob:
> > > From: Thomas Monjalon <thomas@monjalon.net>
> > > > 10/05/2018 06:31, Jerin Jacob:
> > > > > > Date: Thu, 10 May 2018 02:22:40 +0530
> > > > > > From: Nikhil Rao <nikhil.rao@intel.com>
> > > > > > 
> > > > > > Ethernet port ID data size has been extended to 16 bits size 17.11
> > > > > > Update the Rx event adapter interface and implementation accordingly.
> > > > > > 
> > > > > > Fixes: 9c38b704d280 ("eventdev: add eth Rx adapter implementation")
> > > > > > Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
> > > > > > Cc: stable@dpdk.org
> > > > > 
> > > > > Since it is an ABI change, please bump the library version.
> > > > > eth_rx_adapter still under experimental tag, IMO, no deprecation notice is
> > > > > required.
> > > > 
> > > > The ABI changes must be described in the release notes too.
> > > > 
> > > > There is no deprecation notice for this ABI change.
> > > > According the the policy, you must send a notice in 18.05,
> > > > and do the change in 18.08.
> > > 
> > > Even for the APIs with experimental tag?
> > 
> > No, experimental can change without prior notice.
> > 
> > > If so, I don't see any
> > > difference between experimental vs non experimental API? 
> > 
> > Rx adapter is not experimental as far as I know.
> 
> It is experimental. Please see the links.
> 
> http://dpdk.org/browse/dpdk/tree/MAINTAINERS#n351
> http://dpdk.org/browse/dpdk/tree/lib/librte_eventdev/rte_event_eth_rx_adapter.h#n276

Yes, you're right.
I've looked at the map file, where the symbols are not in EXPERIMENTAL block.

> If you agree then take dropped patch.

I'll take it.
  
Thomas Monjalon May 10, 2018, 4:11 p.m. UTC | #9
10/05/2018 17:45, Thomas Monjalon:
> 10/05/2018 17:16, Jerin Jacob:
> > From: Thomas Monjalon <thomas@monjalon.net>
> > > 10/05/2018 16:30, Jerin Jacob:
> > > > From: Thomas Monjalon <thomas@monjalon.net>
> > > > > 10/05/2018 06:31, Jerin Jacob:
> > > > > > > Date: Thu, 10 May 2018 02:22:40 +0530
> > > > > > > From: Nikhil Rao <nikhil.rao@intel.com>
> > > > > > > 
> > > > > > > Ethernet port ID data size has been extended to 16 bits size 17.11
> > > > > > > Update the Rx event adapter interface and implementation accordingly.
> > > > > > > 
> > > > > > > Fixes: 9c38b704d280 ("eventdev: add eth Rx adapter implementation")
> > > > > > > Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
> > > > > > > Cc: stable@dpdk.org
> > > > > > 
> > > > > > Since it is an ABI change, please bump the library version.
> > > > > > eth_rx_adapter still under experimental tag, IMO, no deprecation notice is
> > > > > > required.
> > > > > 
> > > > > The ABI changes must be described in the release notes too.
> > > > > 
> > > > > There is no deprecation notice for this ABI change.
> > > > > According the the policy, you must send a notice in 18.05,
> > > > > and do the change in 18.08.
> > > > 
> > > > Even for the APIs with experimental tag?
> > > 
> > > No, experimental can change without prior notice.
> > > 
> > > > If so, I don't see any
> > > > difference between experimental vs non experimental API? 
> > > 
> > > Rx adapter is not experimental as far as I know.
> > 
> > It is experimental. Please see the links.
> > 
> > http://dpdk.org/browse/dpdk/tree/MAINTAINERS#n351
> > http://dpdk.org/browse/dpdk/tree/lib/librte_eventdev/rte_event_eth_rx_adapter.h#n276
> 
> Yes, you're right.
> I've looked at the map file, where the symbols are not in EXPERIMENTAL block.
> 
> > If you agree then take dropped patch.
> 
> I'll take it.

Applied with a fix in meson file (ABI version to increase).
  

Patch

diff --git a/lib/librte_eventdev/rte_event_eth_rx_adapter.h b/lib/librte_eventdev/rte_event_eth_rx_adapter.h
index e6a6435..834eb53 100644
--- a/lib/librte_eventdev/rte_event_eth_rx_adapter.h
+++ b/lib/librte_eventdev/rte_event_eth_rx_adapter.h
@@ -307,7 +307,7 @@  int rte_event_eth_rx_adapter_create(uint8_t id, uint8_t dev_id,
  *  combination of the two error codes.
  */
 int rte_event_eth_rx_adapter_queue_add(uint8_t id,
-			uint8_t eth_dev_id,
+			uint16_t eth_dev_id,
 			int32_t rx_queue_id,
 			const struct rte_event_eth_rx_adapter_queue_conf *conf);
 
@@ -335,7 +335,7 @@  int rte_event_eth_rx_adapter_queue_add(uint8_t id,
  *  - 0: Success, Receive queue deleted correctly.
  *  - <0: Error code on failure.
  */
-int rte_event_eth_rx_adapter_queue_del(uint8_t id, uint8_t eth_dev_id,
+int rte_event_eth_rx_adapter_queue_del(uint8_t id, uint16_t eth_dev_id,
 				       int32_t rx_queue_id);
 
 /**
diff --git a/lib/librte_eventdev/rte_event_eth_rx_adapter.c b/lib/librte_eventdev/rte_event_eth_rx_adapter.c
index 4c0c025..6f70509 100644
--- a/lib/librte_eventdev/rte_event_eth_rx_adapter.c
+++ b/lib/librte_eventdev/rte_event_eth_rx_adapter.c
@@ -31,7 +31,7 @@ 
  */
 struct eth_rx_poll_entry {
 	/* Eth port to poll */
-	uint8_t eth_dev_id;
+	uint16_t eth_dev_id;
 	/* Eth rx queue to poll */
 	uint16_t eth_rx_qid;
 };
@@ -168,7 +168,7 @@  static uint16_t gcd_u16(uint16_t a, uint16_t b)
 
 	while (1) {
 		uint16_t q;
-		uint8_t d;
+		uint16_t d;
 
 		i = (i + 1) % n;
 		if (i == 0) {
@@ -190,7 +190,7 @@  static uint16_t gcd_u16(uint16_t a, uint16_t b)
 static int
 eth_poll_wrr_calc(struct rte_event_eth_rx_adapter *rx_adapter)
 {
-	uint8_t d;
+	uint16_t d;
 	uint16_t q;
 	unsigned int i;
 
@@ -510,7 +510,7 @@  static uint16_t gcd_u16(uint16_t a, uint16_t b)
 	for (num_queue = 0; num_queue < rx_adapter->wrr_len; num_queue++) {
 		unsigned int poll_idx = rx_adapter->wrr_sched[wrr_pos];
 		uint16_t qid = rx_adapter->eth_rx_poll[poll_idx].eth_rx_qid;
-		uint8_t d = rx_adapter->eth_rx_poll[poll_idx].eth_dev_id;
+		uint16_t d = rx_adapter->eth_rx_poll[poll_idx].eth_dev_id;
 
 		/* Don't do a batch dequeue from the rx queue if there isn't
 		 * enough space in the enqueue buffer.
@@ -755,7 +755,7 @@  static uint16_t gcd_u16(uint16_t a, uint16_t b)
 }
 
 static int add_rx_queue(struct rte_event_eth_rx_adapter *rx_adapter,
-		uint8_t eth_dev_id,
+		uint16_t eth_dev_id,
 		int rx_queue_id,
 		const struct rte_event_eth_rx_adapter_queue_conf *queue_conf)
 {
@@ -859,7 +859,7 @@  static int add_rx_queue(struct rte_event_eth_rx_adapter *rx_adapter,
 	struct rte_event_eth_rx_adapter *rx_adapter;
 	int ret;
 	int socket_id;
-	uint8_t i;
+	uint16_t i;
 	char mem_name[ETH_RX_ADAPTER_SERVICE_NAME_LEN];
 	const uint8_t default_rss_key[] = {
 		0x6d, 0x5a, 0x56, 0xda, 0x25, 0x5b, 0x0e, 0xc2,
@@ -978,7 +978,7 @@  static int add_rx_queue(struct rte_event_eth_rx_adapter *rx_adapter,
 
 int
 rte_event_eth_rx_adapter_queue_add(uint8_t id,
-		uint8_t eth_dev_id,
+		uint16_t eth_dev_id,
 		int32_t rx_queue_id,
 		const struct rte_event_eth_rx_adapter_queue_conf *queue_conf)
 {
@@ -1002,7 +1002,7 @@  static int add_rx_queue(struct rte_event_eth_rx_adapter *rx_adapter,
 						&cap);
 	if (ret) {
 		RTE_EDEV_LOG_ERR("Failed to get adapter caps edev %" PRIu8
-			"eth port %" PRIu8, id, eth_dev_id);
+			"eth port %" PRIu16, id, eth_dev_id);
 		return ret;
 	}
 
@@ -1010,7 +1010,7 @@  static int add_rx_queue(struct rte_event_eth_rx_adapter *rx_adapter,
 		&& (queue_conf->rx_queue_flags &
 			RTE_EVENT_ETH_RX_ADAPTER_QUEUE_FLOW_ID_VALID)) {
 		RTE_EDEV_LOG_ERR("Flow ID override is not supported,"
-				" eth port: %" PRIu8 " adapter id: %" PRIu8,
+				" eth port: %" PRIu16 " adapter id: %" PRIu8,
 				eth_dev_id, id);
 		return -EINVAL;
 	}
@@ -1018,7 +1018,8 @@  static int add_rx_queue(struct rte_event_eth_rx_adapter *rx_adapter,
 	if ((cap & RTE_EVENT_ETH_RX_ADAPTER_CAP_MULTI_EVENTQ) == 0 &&
 		(rx_queue_id != -1)) {
 		RTE_EDEV_LOG_ERR("Rx queues can only be connected to single "
-			"event queue id %u eth port %u", id, eth_dev_id);
+			"event queue, eth port: %" PRIu16 " adapter id: %"
+			PRIu8, eth_dev_id, id);
 		return -EINVAL;
 	}
 
@@ -1075,7 +1076,7 @@  static int add_rx_queue(struct rte_event_eth_rx_adapter *rx_adapter,
 }
 
 int
-rte_event_eth_rx_adapter_queue_del(uint8_t id, uint8_t eth_dev_id,
+rte_event_eth_rx_adapter_queue_del(uint8_t id, uint16_t eth_dev_id,
 				int32_t rx_queue_id)
 {
 	int ret = 0;