ethdev: add enum type for loop on Rx/Tx offloads
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
@@ -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
Quoted 8 lines · Wei Dai
This patch adds enum
rte_eth_rx_offload_typeand enumrte_eth_tx_offload_type. For a loop on all Rx offloads, it is convenient to begin with the first enum memberETH_RX_OFFLOAD_FIRST_FEATUREand to end atETH_RX_OFFLOAD_TOTAL_NUM. A loop on all Tx offloads can begin withETH_TX_OFFLOAD_FIRST_FEATUREand end atETH_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
Signed-off-by Wei Dai <[email protected]>--- lib/librte_ether/rte_ethdev.h | 44 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+)lib/librte_ether/rte_ethdev.h +44
-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 , +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.
Hi Wei,
Quoted 63 lines
This patch adds enum
rte_eth_rx_offload_typeand enumrte_eth_tx_offload_type. For a loop on all Rx offloads, it is convenient to begin with the first enum memberETH_RX_OFFLOAD_FIRST_FEATUREand to end atETH_RX_OFFLOAD_TOTAL_NUM. A loop on all Tx offloads can begin withETH_TX_OFFLOAD_FIRST_FEATUREand end atETH_TX_OFFLOAD_TOTAL_NUM.Signed-off-by Wei Dai <[email protected]>--- lib/librte_ether/rte_ethdev.h | 44 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+)lib/librte_ether/rte_ethdev.h +33
-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 ,
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
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 offloadsHi Wei,
Quoted 5 lines
This patch adds enum
rte_eth_rx_offload_typeand enumrte_eth_tx_offload_type. For a loop on all Rx offloads, it is convenient to begin with the first enum memberETH_RX_OFFLOAD_FIRST_FEATUREand to end at
ETH_RX_OFFLOAD_TOTAL_NUM.Quoted 1 line
A loop on all Tx offloads can begin with
ETH_TX_OFFLOAD_FIRST_FEATUREQuoted 62 lines
and end at
ETH_TX_OFFLOAD_TOTAL_NUM.Signed-off-by Wei Dai <[email protected]>--- lib/librte_ether/rte_ethdev.h | 44 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+)(quoted diff) +0
-0
b/lib/librte_ether/rte_ethdev.hindex 0361533..0089ea3 100644lib/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
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 offloadsHi, 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 offloadsHi Wei,
Quoted 5 lines
This patch adds enum
rte_eth_rx_offload_typeand enumrte_eth_tx_offload_type. For a loop on all Rx offloads, it is convenient to begin with the first enum memberETH_RX_OFFLOAD_FIRST_FEATUREand to end at
ETH_RX_OFFLOAD_TOTAL_NUM.Quoted 1 line
A loop on all Tx offloads can begin with
ETH_TX_OFFLOAD_FIRST_FEATUREQuoted 44 lines
and end at
ETH_TX_OFFLOAD_TOTAL_NUM.Signed-off-by Wei Dai <[email protected]>--- lib/librte_ether/rte_ethdev.h | 44 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+)(quoted diff) +0
-0
b/lib/librte_ether/rte_ethdev.hindex 0361533..0089ea3 100644lib/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 0x00020000Quoted 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
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 offloadsQuoted 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 offloadsHi, 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 offloadsHi Wei,
Quoted 5 lines
This patch adds enum
rte_eth_rx_offload_typeand enumrte_eth_tx_offload_type. For a loop on all Rx offloads, it is convenient to begin with the first enum memberETH_RX_OFFLOAD_FIRST_FEATUREand to end at
ETH_RX_OFFLOAD_TOTAL_NUM.Quoted 1 line
A loop on all Tx offloads can begin with
ETH_TX_OFFLOAD_FIRST_FEATUREQuoted 16 lines
and end at
ETH_TX_OFFLOAD_TOTAL_NUM.Signed-off-by Wei Dai <[email protected]>--- lib/librte_ether/rte_ethdev.h | 44 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+)(quoted diff) +0
-0
b/lib/librte_ether/rte_ethdev.hindex 0361533..0089ea3 100644lib/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 0x00020000Quoted 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_countto reuse therte_xx_offload_namesSo 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