Skip to contentSkip to conversation

ethdev: add enum type for loop on Rx/Tx offloads

PATCH In review Wei Dai 4 participants 6 messages Mar 20, 2018 – Mar 22, 2018

lore
Share & tools
lore

Wei Dai

author
#0 lore raw

PATCH 1/1 ethdev: add enum type for loop on Rx/Tx offloads

This patch adds enum rte_eth_rx_offload_type and enum rte_eth_tx_offload_type. For a loop on all Rx offloads, it is convenient to begin with the first enum member ETH_RX_OFFLOAD_FIRST_FEATURE and to end at ETH_RX_OFFLOAD_TOTAL_NUM. A loop on all Tx offloads can begin with ETH_TX_OFFLOAD_FIRST_FEATURE and end at ETH_TX_OFFLOAD_TOTAL_NUM.

---
 lib/librte_ether/rte_ethdev.h | 44 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)
lib/librte_ether/rte_ethdev.h +44 -0
index 0361533..0089ea3 100644
@@ -946,6 +946,27 @@ struct rte_eth_conf {
 			     DEV_RX_OFFLOAD_VLAN_FILTER | \
 			     DEV_RX_OFFLOAD_VLAN_EXTEND)
 
+enum rte_eth_rx_offload_type {
+	ETH_RX_OFFLOAD_FIRST_FEATURE = 0,
+	ETH_RX_OFFLOAD_VLAN_STRIP = ETH_RX_OFFLOAD_FIRST_FEATURE,
+	ETH_RX_OFFLOAD_IPV4_CKSUM,
+	ETH_RX_OFFLOAD_UDP_CKSUM,
+	ETH_RX_OFFLOAD_TCP_CKSUM,
+	ETH_RX_OFFLOAD_TCP_LRO,
+	ETH_RX_OFFLOAD_QINQ_STRIP,
+	ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM,
+	ETH_RX_OFFLOAD_MACSEC_STRIP,
+	ETH_RX_OFFLOAD_HEADER_SPLIT,
+	ETH_RX_OFFLOAD_VLAN_FILTER,
+	ETH_RX_OFFLOAD_VLAN_EXTEND,
+	ETH_RX_OFFLOAD_JUMBO_FRAME,
+	ETH_RX_OFFLOAD_CRC_STRIP,
+	ETH_RX_OFFLOAD_SCATTER,
+	ETH_RX_OFFLOAD_TIMESTAMP,
+	ETH_RX_OFFLOAD_SECURITY,
+	ETH_RX_OFFLOAD_TOTAL_NUM
+};
+
 /*
  * If new Rx offload capabilities are defined, they also must be
  * mentioned in rte_rx_offload_names in rte_ethdev.c file.
@@ -981,6 +1002,29 @@ struct rte_eth_conf {
  */
 #define DEV_TX_OFFLOAD_SECURITY         0x00020000
 
+enum rte_eth_tx_offload_type {
+	ETH_TX_OFFLOAD_FIRST_FEATURE = 0,
+	ETH_TX_OFFLOAD_VLAN_INSERT = ETH_TX_OFFLOAD_FIRST_FEATURE,
+	ETH_TX_OFFLOAD_IPV4_CKSUM,
+	ETH_TX_OFFLOAD_UDP_CKSUM,
+	ETH_TX_OFFLOAD_TCP_CKSUM,
+	ETH_TX_OFFLOAD_SCTP_CKSUM,
+	ETH_TX_OFFLOAD_TCP_TSO,
+	ETH_TX_OFFLOAD_UDP_TSO,
+	ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM,
+	ETH_TX_OFFLOAD_QINQ_INSERT,
+	ETH_TX_OFFLOAD_VXLAN_TNL_TSO,
+	ETH_TX_OFFLOAD_GRE_TNL_TSO,
+	ETH_TX_OFFLOAD_IPIP_TNL_TSO,
+	ETH_TX_OFFLOAD_GENEVE_TNL_TSO,
+	ETH_TX_OFFLOAD_MACSEC_INSERT,
+	ETH_TX_OFFLOAD_MT_LOCKFREE,
+	ETH_TX_OFFLOAD_MULTI_SEGS,
+	ETH_TX_OFFLOAD_MBUF_FAST_FREE,
+	ETH_TX_OFFLOAD_SECURITY,
+	ETH_TX_OFFLOAD_TOTAL_NUM
+};
+
 /*
  * If new Tx offload capabilities are defined, they also must be
  * mentioned in rte_tx_offload_names in rte_ethdev.c file.
Signature · 1 line
2.7.5
#1 lore raw
Quoted 8 lines · Wei Dai

This patch adds enum rte_eth_rx_offload_type and enum rte_eth_tx_offload_type. For a loop on all Rx offloads, it is convenient to begin with the first enum member ETH_RX_OFFLOAD_FIRST_FEATURE and to end at ETH_RX_OFFLOAD_TOTAL_NUM. A loop on all Tx offloads can begin with ETH_TX_OFFLOAD_FIRST_FEATURE and end at ETH_TX_OFFLOAD_TOTAL_NUM.

Hi Wei,

It may be confusing to have both ETH_RX_OFFLOAD_VLAN_STRIP and DEV_RX_OFFLOAD_VLAN_STRIP.

Will it work only to have a definition of the OFFLOAD_TOTAL_NUM?

Can you please put some sample usage of the enums?

Quoted 69 lines
---
 lib/librte_ether/rte_ethdev.h | 44 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)
lib/librte_ether/rte_ethdev.h +44 -0
index 0361533..0089ea3 100644
@@ -946,6 +946,27 @@ struct rte_eth_conf {
 			     DEV_RX_OFFLOAD_VLAN_FILTER | \
 			     DEV_RX_OFFLOAD_VLAN_EXTEND)
 
+enum rte_eth_rx_offload_type {
+	ETH_RX_OFFLOAD_FIRST_FEATURE = 0,
+	ETH_RX_OFFLOAD_VLAN_STRIP = ETH_RX_OFFLOAD_FIRST_FEATURE,
+	ETH_RX_OFFLOAD_IPV4_CKSUM,
+	ETH_RX_OFFLOAD_UDP_CKSUM,
+	ETH_RX_OFFLOAD_TCP_CKSUM,
+	ETH_RX_OFFLOAD_TCP_LRO,
+	ETH_RX_OFFLOAD_QINQ_STRIP,
+	ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM,
+	ETH_RX_OFFLOAD_MACSEC_STRIP,
+	ETH_RX_OFFLOAD_HEADER_SPLIT,
+	ETH_RX_OFFLOAD_VLAN_FILTER,
+	ETH_RX_OFFLOAD_VLAN_EXTEND,
+	ETH_RX_OFFLOAD_JUMBO_FRAME,
+	ETH_RX_OFFLOAD_CRC_STRIP,
+	ETH_RX_OFFLOAD_SCATTER,
+	ETH_RX_OFFLOAD_TIMESTAMP,
+	ETH_RX_OFFLOAD_SECURITY,
+	ETH_RX_OFFLOAD_TOTAL_NUM
+};
+
 /*
  * If new Rx offload capabilities are defined, they also must be
  * mentioned in rte_rx_offload_names in rte_ethdev.c file.
@@ -981,6 +1002,29 @@ struct rte_eth_conf {
  */
 #define DEV_TX_OFFLOAD_SECURITY         0x00020000
 
+enum rte_eth_tx_offload_type {
+	ETH_TX_OFFLOAD_FIRST_FEATURE = 0,
+	ETH_TX_OFFLOAD_VLAN_INSERT = ETH_TX_OFFLOAD_FIRST_FEATURE,
+	ETH_TX_OFFLOAD_IPV4_CKSUM,
+	ETH_TX_OFFLOAD_UDP_CKSUM,
+	ETH_TX_OFFLOAD_TCP_CKSUM,
+	ETH_TX_OFFLOAD_SCTP_CKSUM,
+	ETH_TX_OFFLOAD_TCP_TSO,
+	ETH_TX_OFFLOAD_UDP_TSO,
+	ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM,
+	ETH_TX_OFFLOAD_QINQ_INSERT,
+	ETH_TX_OFFLOAD_VXLAN_TNL_TSO,
+	ETH_TX_OFFLOAD_GRE_TNL_TSO,
+	ETH_TX_OFFLOAD_IPIP_TNL_TSO,
+	ETH_TX_OFFLOAD_GENEVE_TNL_TSO,
+	ETH_TX_OFFLOAD_MACSEC_INSERT,
+	ETH_TX_OFFLOAD_MT_LOCKFREE,
+	ETH_TX_OFFLOAD_MULTI_SEGS,
+	ETH_TX_OFFLOAD_MBUF_FAST_FREE,
+	ETH_TX_OFFLOAD_SECURITY,
+	ETH_TX_OFFLOAD_TOTAL_NUM
+};
+
 /*
  * If new Tx offload capabilities are defined, they also must be
  * mentioned in rte_tx_offload_names in rte_ethdev.c file.
#2 lore raw
In reply to Wei Dai

Hi Wei,

Quoted 63 lines

This patch adds enum rte_eth_rx_offload_type and enum rte_eth_tx_offload_type. For a loop on all Rx offloads, it is convenient to begin with the first enum member ETH_RX_OFFLOAD_FIRST_FEATURE and to end at ETH_RX_OFFLOAD_TOTAL_NUM. A loop on all Tx offloads can begin with ETH_TX_OFFLOAD_FIRST_FEATURE and end at ETH_TX_OFFLOAD_TOTAL_NUM.

---
 lib/librte_ether/rte_ethdev.h | 44 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)
lib/librte_ether/rte_ethdev.h +33 -0
index 0361533..0089ea3 100644
@@ -946,6 +946,27 @@ struct rte_eth_conf {
 			     DEV_RX_OFFLOAD_VLAN_FILTER | \
 			     DEV_RX_OFFLOAD_VLAN_EXTEND)
 
+enum rte_eth_rx_offload_type {
+	ETH_RX_OFFLOAD_FIRST_FEATURE = 0,
+	ETH_RX_OFFLOAD_VLAN_STRIP = ETH_RX_OFFLOAD_FIRST_FEATURE,
+	ETH_RX_OFFLOAD_IPV4_CKSUM,
+	ETH_RX_OFFLOAD_UDP_CKSUM,
+	ETH_RX_OFFLOAD_TCP_CKSUM,
+	ETH_RX_OFFLOAD_TCP_LRO,
+	ETH_RX_OFFLOAD_QINQ_STRIP,
+	ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM,
+	ETH_RX_OFFLOAD_MACSEC_STRIP,
+	ETH_RX_OFFLOAD_HEADER_SPLIT,
+	ETH_RX_OFFLOAD_VLAN_FILTER,
+	ETH_RX_OFFLOAD_VLAN_EXTEND,
+	ETH_RX_OFFLOAD_JUMBO_FRAME,
+	ETH_RX_OFFLOAD_CRC_STRIP,
+	ETH_RX_OFFLOAD_SCATTER,
+	ETH_RX_OFFLOAD_TIMESTAMP,
+	ETH_RX_OFFLOAD_SECURITY,
+	ETH_RX_OFFLOAD_TOTAL_NUM
+};
+
 /*
  * If new Rx offload capabilities are defined, they also must be
  * mentioned in rte_rx_offload_names in rte_ethdev.c file.
@@ -981,6 +1002,29 @@ struct rte_eth_conf {
  */
 #define DEV_TX_OFFLOAD_SECURITY         0x00020000
 
+enum rte_eth_tx_offload_type {
+	ETH_TX_OFFLOAD_FIRST_FEATURE = 0,
+	ETH_TX_OFFLOAD_VLAN_INSERT = ETH_TX_OFFLOAD_FIRST_FEATURE,
+	ETH_TX_OFFLOAD_IPV4_CKSUM,
+	ETH_TX_OFFLOAD_UDP_CKSUM,
+	ETH_TX_OFFLOAD_TCP_CKSUM,
+	ETH_TX_OFFLOAD_SCTP_CKSUM,
+	ETH_TX_OFFLOAD_TCP_TSO,
+	ETH_TX_OFFLOAD_UDP_TSO,
+	ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM,
+	ETH_TX_OFFLOAD_QINQ_INSERT,
+	ETH_TX_OFFLOAD_VXLAN_TNL_TSO,

lib/librte_ether/rte_ethdev.h struct rte_eth_conf { · line 1026

Quoted 10 lines
lib/librte_ether/rte_ethdev.h +10 -0
+	ETH_TX_OFFLOAD_GRE_TNL_TSO,
+	ETH_TX_OFFLOAD_IPIP_TNL_TSO,
+	ETH_TX_OFFLOAD_GENEVE_TNL_TSO,
+	ETH_TX_OFFLOAD_MACSEC_INSERT,
+	ETH_TX_OFFLOAD_MT_LOCKFREE,
+	ETH_TX_OFFLOAD_MULTI_SEGS,
+	ETH_TX_OFFLOAD_MBUF_FAST_FREE,
+	ETH_TX_OFFLOAD_SECURITY,
+	ETH_TX_OFFLOAD_TOTAL_NUM
+};

What is the purpose to introduce these enums?
It looks like they are not used anywhere?
Konstantin

Quoted 6 lines
lib/librte_ether/rte_ethdev.h +1 -1
+
 /*
  * If new Tx offload capabilities are defined, they also must be
  * mentioned in rte_tx_offload_names in rte_ethdev.c file.
--

2.7.5

author
#3 lore raw

Hi, Konstantin
Thanks for your feedback.

Quoted 81 lines

-----Original Message-----
From: Ananyev, Konstantin
Sent: Tuesday, March 20, 2018 8:00 PM
To: Dai, Wei <[email protected]>; [email protected]
Cc: [email protected]; Dai, Wei <[email protected]>
Subject: RE: [dpdk-dev] [PATCH] ethdev: add enum type for loop on Rx/Tx offloads

Hi Wei,

Quoted 5 lines

This patch adds enum rte_eth_rx_offload_type and enum rte_eth_tx_offload_type. For a loop on all Rx offloads, it is convenient to begin with the first enum member ETH_RX_OFFLOAD_FIRST_FEATURE and to end at

ETH_RX_OFFLOAD_TOTAL_NUM.

Quoted 1 line

A loop on all Tx offloads can begin with

ETH_TX_OFFLOAD_FIRST_FEATURE

Quoted 62 lines

and end at ETH_TX_OFFLOAD_TOTAL_NUM.

---
 lib/librte_ether/rte_ethdev.h | 44
+++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)
(quoted diff) +0 -0

b/lib/librte_ether/rte_ethdev.h index 0361533..0089ea3 100644

lib/librte_ether/rte_ethdev.h +39 -0
@@ -946,6 +946,27 @@ struct rte_eth_conf {
 			     DEV_RX_OFFLOAD_VLAN_FILTER | \
 			     DEV_RX_OFFLOAD_VLAN_EXTEND)
 
+enum rte_eth_rx_offload_type {
+	ETH_RX_OFFLOAD_FIRST_FEATURE = 0,
+	ETH_RX_OFFLOAD_VLAN_STRIP = ETH_RX_OFFLOAD_FIRST_FEATURE,
+	ETH_RX_OFFLOAD_IPV4_CKSUM,
+	ETH_RX_OFFLOAD_UDP_CKSUM,
+	ETH_RX_OFFLOAD_TCP_CKSUM,
+	ETH_RX_OFFLOAD_TCP_LRO,
+	ETH_RX_OFFLOAD_QINQ_STRIP,
+	ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM,
+	ETH_RX_OFFLOAD_MACSEC_STRIP,
+	ETH_RX_OFFLOAD_HEADER_SPLIT,
+	ETH_RX_OFFLOAD_VLAN_FILTER,
+	ETH_RX_OFFLOAD_VLAN_EXTEND,
+	ETH_RX_OFFLOAD_JUMBO_FRAME,
+	ETH_RX_OFFLOAD_CRC_STRIP,
+	ETH_RX_OFFLOAD_SCATTER,
+	ETH_RX_OFFLOAD_TIMESTAMP,
+	ETH_RX_OFFLOAD_SECURITY,
+	ETH_RX_OFFLOAD_TOTAL_NUM
+};
+
 /*
  * If new Rx offload capabilities are defined, they also must be
  * mentioned in rte_rx_offload_names in rte_ethdev.c file.
@@ -981,6 +1002,29 @@ struct rte_eth_conf {
  */
 #define DEV_TX_OFFLOAD_SECURITY         0x00020000
 
+enum rte_eth_tx_offload_type {
+	ETH_TX_OFFLOAD_FIRST_FEATURE = 0,
+	ETH_TX_OFFLOAD_VLAN_INSERT = ETH_TX_OFFLOAD_FIRST_FEATURE,
+	ETH_TX_OFFLOAD_IPV4_CKSUM,
+	ETH_TX_OFFLOAD_UDP_CKSUM,
+	ETH_TX_OFFLOAD_TCP_CKSUM,
+	ETH_TX_OFFLOAD_SCTP_CKSUM,
+	ETH_TX_OFFLOAD_TCP_TSO,
+	ETH_TX_OFFLOAD_UDP_TSO,
+	ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM,
+	ETH_TX_OFFLOAD_QINQ_INSERT,
+	ETH_TX_OFFLOAD_VXLAN_TNL_TSO,
+	ETH_TX_OFFLOAD_GRE_TNL_TSO,
+	ETH_TX_OFFLOAD_IPIP_TNL_TSO,
+	ETH_TX_OFFLOAD_GENEVE_TNL_TSO,
+	ETH_TX_OFFLOAD_MACSEC_INSERT,
+	ETH_TX_OFFLOAD_MT_LOCKFREE,
+	ETH_TX_OFFLOAD_MULTI_SEGS,
Quoted 8 lines

lib/librte_ether/rte_ethdev.h struct rte_eth_conf { · line 1026

Quoted 4 lines
lib/librte_ether/rte_ethdev.h +4 -0
+	ETH_TX_OFFLOAD_MBUF_FAST_FREE,
+	ETH_TX_OFFLOAD_SECURITY,
+	ETH_TX_OFFLOAD_TOTAL_NUM
+};

What is the purpose to introduce these enums? It looks like they are not used anywhere? Konstantin

When I make the patch for new offloading test with testpmd,
I find I need loop on all possible offloads, without this enum type,
I have to loop from bit 0 to bit 63, I think it is better to stop at the last one and No need to bit 63.
I guess it will be helpful for some future application which need loop on all offloadings.

Quoted 7 lines
Quoted 7 lines
lib/librte_ether/rte_ethdev.h +1 -1
+
 /*
  * If new Tx offload capabilities are defined, they also must be
  * mentioned in rte_tx_offload_names in rte_ethdev.c file.
--

2.7.5

#4 lore raw
Quoted 105 lines

-----Original Message-----
From: dev [mailto:[email protected]] On Behalf Of Dai, Wei
Sent: Wednesday, March 21, 2018 10:09 PM
To: Ananyev, Konstantin <[email protected]>; [email protected]
Cc: [email protected]
Subject: Re: [dpdk-dev] [PATCH] ethdev: add enum type for loop on Rx/Tx offloads

Hi, Konstantin
Thanks for your feedback.

Quoted 63 lines

-----Original Message-----
From: Ananyev, Konstantin
Sent: Tuesday, March 20, 2018 8:00 PM
To: Dai, Wei <[email protected]>; [email protected]
Cc: [email protected]; Dai, Wei <[email protected]>
Subject: RE: [dpdk-dev] [PATCH] ethdev: add enum type for loop on Rx/Tx offloads

Hi Wei,

Quoted 5 lines

This patch adds enum rte_eth_rx_offload_type and enum rte_eth_tx_offload_type. For a loop on all Rx offloads, it is convenient to begin with the first enum member ETH_RX_OFFLOAD_FIRST_FEATURE and to end at

ETH_RX_OFFLOAD_TOTAL_NUM.

Quoted 1 line

A loop on all Tx offloads can begin with

ETH_TX_OFFLOAD_FIRST_FEATURE

Quoted 44 lines

and end at ETH_TX_OFFLOAD_TOTAL_NUM.

---
 lib/librte_ether/rte_ethdev.h | 44
+++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)
(quoted diff) +0 -0

b/lib/librte_ether/rte_ethdev.h index 0361533..0089ea3 100644

lib/librte_ether/rte_ethdev.h +21 -0
@@ -946,6 +946,27 @@ struct rte_eth_conf {
 			     DEV_RX_OFFLOAD_VLAN_FILTER | \
 			     DEV_RX_OFFLOAD_VLAN_EXTEND)
 
+enum rte_eth_rx_offload_type {
+	ETH_RX_OFFLOAD_FIRST_FEATURE = 0,
+	ETH_RX_OFFLOAD_VLAN_STRIP = ETH_RX_OFFLOAD_FIRST_FEATURE,
+	ETH_RX_OFFLOAD_IPV4_CKSUM,
+	ETH_RX_OFFLOAD_UDP_CKSUM,
+	ETH_RX_OFFLOAD_TCP_CKSUM,
+	ETH_RX_OFFLOAD_TCP_LRO,
+	ETH_RX_OFFLOAD_QINQ_STRIP,
+	ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM,
+	ETH_RX_OFFLOAD_MACSEC_STRIP,
+	ETH_RX_OFFLOAD_HEADER_SPLIT,
+	ETH_RX_OFFLOAD_VLAN_FILTER,
+	ETH_RX_OFFLOAD_VLAN_EXTEND,
+	ETH_RX_OFFLOAD_JUMBO_FRAME,
+	ETH_RX_OFFLOAD_CRC_STRIP,
+	ETH_RX_OFFLOAD_SCATTER,
+	ETH_RX_OFFLOAD_TIMESTAMP,
+	ETH_RX_OFFLOAD_SECURITY,
+	ETH_RX_OFFLOAD_TOTAL_NUM
+};
+
 /*
  * If new Rx offload capabilities are defined, they also must be
  * mentioned in rte_rx_offload_names in rte_ethdev.c file.
@@ -981,6 +1002,29 @@ struct rte_eth_conf {
  */
 #define DEV_TX_OFFLOAD_SECURITY         0x00020000
 
Quoted 3 lines

lib/librte_ether/rte_ethdev.h struct rte_eth_conf {

Quoted 3 lines
lib/librte_ether/rte_ethdev.h +3 -0
+enum rte_eth_tx_offload_type {
+	ETH_TX_OFFLOAD_FIRST_FEATURE = 0,
+	ETH_TX_OFFLOAD_VLAN_INSERT =

ETH_TX_OFFLOAD_FIRST_FEATURE,

Quoted 15 lines
Quoted 15 lines
lib/librte_ether/rte_ethdev.h +15 -0
+	ETH_TX_OFFLOAD_IPV4_CKSUM,
+	ETH_TX_OFFLOAD_UDP_CKSUM,
+	ETH_TX_OFFLOAD_TCP_CKSUM,
+	ETH_TX_OFFLOAD_SCTP_CKSUM,
+	ETH_TX_OFFLOAD_TCP_TSO,
+	ETH_TX_OFFLOAD_UDP_TSO,
+	ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM,
+	ETH_TX_OFFLOAD_QINQ_INSERT,
+	ETH_TX_OFFLOAD_VXLAN_TNL_TSO,
+	ETH_TX_OFFLOAD_GRE_TNL_TSO,
+	ETH_TX_OFFLOAD_IPIP_TNL_TSO,
+	ETH_TX_OFFLOAD_GENEVE_TNL_TSO,
+	ETH_TX_OFFLOAD_MACSEC_INSERT,
+	ETH_TX_OFFLOAD_MT_LOCKFREE,
+	ETH_TX_OFFLOAD_MULTI_SEGS,
Quoted 8 lines

lib/librte_ether/rte_ethdev.h struct rte_eth_conf { · line 1026

Quoted 4 lines
lib/librte_ether/rte_ethdev.h +4 -0
+	ETH_TX_OFFLOAD_MBUF_FAST_FREE,
+	ETH_TX_OFFLOAD_SECURITY,
+	ETH_TX_OFFLOAD_TOTAL_NUM
+};

What is the purpose to introduce these enums? It looks like they are not used anywhere? Konstantin

Quoted 5 lines

When I make the patch for new offloading test with testpmd, I find I need loop on all possible offloads, without this enum type, I have to loop from bit 0 to bit 63, I think it is better to stop at the last one and No need to bit 63. I guess it will be helpful for some future application which need loop on all offloadings.

If you want to know the total offload count, You can just create an api like rte_eth_get_xx_offload_count to reuse the rte_xx_offload_names So we don't need maintain same information in two place,
But still, in your testpmd, I saw the loop will break at first UNKNOWN, so loop from 0 to 63 is still no waste, am I right? maybe you need to give a better example for why we need this

Regards
Qi

Quoted 8 lines
Quoted 8 lines
Quoted 8 lines
lib/librte_ether/rte_ethdev.h +1 -1
+
 /*
  * If new Tx offload capabilities are defined, they also must be
  * mentioned in rte_tx_offload_names in rte_ethdev.c file.
--

2.7.5

author
#5 lore raw

Thanks Zhang Qi

Quoted 129 lines

-----Original Message-----
From: Zhang, Qi Z
Sent: Wednesday, March 21, 2018 10:24 PM
To: Dai, Wei <[email protected]>; Ananyev, Konstantin <[email protected]>; [email protected]
Cc: [email protected]
Subject: RE: [dpdk-dev] [PATCH] ethdev: add enum type for loop on Rx/Tx offloads

Quoted 47 lines

-----Original Message-----
From: dev [mailto:[email protected]] On Behalf Of Dai, Wei
Sent: Wednesday, March 21, 2018 10:09 PM
To: Ananyev, Konstantin <[email protected]>; [email protected]
Cc: [email protected]
Subject: Re: [dpdk-dev] [PATCH] ethdev: add enum type for loop on Rx/Tx offloads

Hi, Konstantin
Thanks for your feedback.

Quoted 35 lines

-----Original Message-----
From: Ananyev, Konstantin
Sent: Tuesday, March 20, 2018 8:00 PM
To: Dai, Wei <[email protected]>; [email protected]
Cc: [email protected]; Dai, Wei <[email protected]>
Subject: RE: [dpdk-dev] [PATCH] ethdev: add enum type for loop on Rx/Tx offloads

Hi Wei,

Quoted 5 lines

This patch adds enum rte_eth_rx_offload_type and enum rte_eth_tx_offload_type. For a loop on all Rx offloads, it is convenient to begin with the first enum member ETH_RX_OFFLOAD_FIRST_FEATURE and to end at

ETH_RX_OFFLOAD_TOTAL_NUM.

Quoted 1 line

A loop on all Tx offloads can begin with

ETH_TX_OFFLOAD_FIRST_FEATURE

Quoted 16 lines

and end at ETH_TX_OFFLOAD_TOTAL_NUM.

---
 lib/librte_ether/rte_ethdev.h | 44
+++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)
(quoted diff) +0 -0

b/lib/librte_ether/rte_ethdev.h index 0361533..0089ea3 100644

lib/librte_ether/rte_ethdev.h +0 -0
@@ -946,6 +946,27 @@ struct rte_eth_conf {
 			     DEV_RX_OFFLOAD_VLAN_FILTER | \
 			     DEV_RX_OFFLOAD_VLAN_EXTEND)
 
Quoted 3 lines
Quoted 3 lines

lib/librte_ether/rte_ethdev.h struct rte_eth_conf {

Quoted 3 lines
lib/librte_ether/rte_ethdev.h +3 -0
+enum rte_eth_rx_offload_type {
+	ETH_RX_OFFLOAD_FIRST_FEATURE = 0,
+	ETH_RX_OFFLOAD_VLAN_STRIP =

ETH_RX_OFFLOAD_FIRST_FEATURE,

Quoted 53 lines
Quoted 25 lines
Quoted 25 lines
lib/librte_ether/rte_ethdev.h +18 -0
+	ETH_RX_OFFLOAD_IPV4_CKSUM,
+	ETH_RX_OFFLOAD_UDP_CKSUM,
+	ETH_RX_OFFLOAD_TCP_CKSUM,
+	ETH_RX_OFFLOAD_TCP_LRO,
+	ETH_RX_OFFLOAD_QINQ_STRIP,
+	ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM,
+	ETH_RX_OFFLOAD_MACSEC_STRIP,
+	ETH_RX_OFFLOAD_HEADER_SPLIT,
+	ETH_RX_OFFLOAD_VLAN_FILTER,
+	ETH_RX_OFFLOAD_VLAN_EXTEND,
+	ETH_RX_OFFLOAD_JUMBO_FRAME,
+	ETH_RX_OFFLOAD_CRC_STRIP,
+	ETH_RX_OFFLOAD_SCATTER,
+	ETH_RX_OFFLOAD_TIMESTAMP,
+	ETH_RX_OFFLOAD_SECURITY,
+	ETH_RX_OFFLOAD_TOTAL_NUM
+};
+
 /*
  * If new Rx offload capabilities are defined, they also must be
  * mentioned in rte_rx_offload_names in rte_ethdev.c file.
@@ -981,6 +1002,29 @@ struct rte_eth_conf {
  */
 #define DEV_TX_OFFLOAD_SECURITY         0x00020000
 
Quoted 3 lines

lib/librte_ether/rte_ethdev.h struct rte_eth_conf {

Quoted 3 lines
lib/librte_ether/rte_ethdev.h +3 -0
+enum rte_eth_tx_offload_type {
+	ETH_TX_OFFLOAD_FIRST_FEATURE = 0,
+	ETH_TX_OFFLOAD_VLAN_INSERT =

ETH_TX_OFFLOAD_FIRST_FEATURE,

Quoted 15 lines
Quoted 15 lines
lib/librte_ether/rte_ethdev.h +15 -0
+	ETH_TX_OFFLOAD_IPV4_CKSUM,
+	ETH_TX_OFFLOAD_UDP_CKSUM,
+	ETH_TX_OFFLOAD_TCP_CKSUM,
+	ETH_TX_OFFLOAD_SCTP_CKSUM,
+	ETH_TX_OFFLOAD_TCP_TSO,
+	ETH_TX_OFFLOAD_UDP_TSO,
+	ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM,
+	ETH_TX_OFFLOAD_QINQ_INSERT,
+	ETH_TX_OFFLOAD_VXLAN_TNL_TSO,
+	ETH_TX_OFFLOAD_GRE_TNL_TSO,
+	ETH_TX_OFFLOAD_IPIP_TNL_TSO,
+	ETH_TX_OFFLOAD_GENEVE_TNL_TSO,
+	ETH_TX_OFFLOAD_MACSEC_INSERT,
+	ETH_TX_OFFLOAD_MT_LOCKFREE,
+	ETH_TX_OFFLOAD_MULTI_SEGS,
Quoted 8 lines

lib/librte_ether/rte_ethdev.h struct rte_eth_conf { · line 1026

Quoted 4 lines
lib/librte_ether/rte_ethdev.h +4 -0
+	ETH_TX_OFFLOAD_MBUF_FAST_FREE,
+	ETH_TX_OFFLOAD_SECURITY,
+	ETH_TX_OFFLOAD_TOTAL_NUM
+};

What is the purpose to introduce these enums? It looks like they are not used anywhere? Konstantin

Quoted 3 lines

When I make the patch for new offloading test with testpmd, I find I need loop on all possible offloads, without this enum type, I have to loop from bit 0 to bit 63, I think it is better to stop at the last one and No

need to bit 63.

Quoted 2 lines

I guess it will be helpful for some future application which need loop on all offloadings.

If you want to know the total offload count, You can just create an api like rte_eth_get_xx_offload_count to reuse the rte_xx_offload_names So we don't need maintain same information in two place, But still, in your testpmd, I saw the loop will break at first UNKNOWN, so loop from 0 to 63 is still no waste, am I right?
maybe you need to give a better example for why we need this

Quoted 3 lines

Regards
Qi

Yes, you are right.
I will withdraw this patch.

Quoted 8 lines
Quoted 8 lines
Quoted 8 lines
Quoted 8 lines
lib/librte_ether/rte_ethdev.h +1 -1
+
 /*
  * If new Tx offload capabilities are defined, they also must be
  * mentioned in rte_tx_offload_names in rte_ethdev.c file.
--

2.7.5