net/octeontx2: add build check on fast path fields

Message ID 20190718130931.99036-1-ndabilpuram@marvell.com (mailing list archive)
State Superseded, archived
Headers
Series net/octeontx2: add build check on fast path fields |

Checks

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

Commit Message

Nithin Dabilpuram July 18, 2019, 1:09 p.m. UTC
  Add build bug on on fast path used fields that are
dependent on their positions and values.

Fixes: 920717e4d8ba ("net/octeontx2: add device start operation")
Cc: ndabilpuram@marvell.com

Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
---
 drivers/net/octeontx2/otx2_ethdev.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)
  

Comments

Jerin Jacob Kollanukkaran July 18, 2019, 1:31 p.m. UTC | #1
> -----Original Message-----
> From: Nithin Dabilpuram <ndabilpuram@marvell.com>
> Sent: Thursday, July 18, 2019 6:40 PM
> To: Jerin Jacob Kollanukkaran <jerinj@marvell.com>; Nithin Kumar
> Dabilpuram <ndabilpuram@marvell.com>; Kiran Kumar Kokkilagadda
> <kirankumark@marvell.com>
> Cc: dev@dpdk.org
> Subject: [PATCH] net/octeontx2: add build check on fast path fields
> 
> Add build bug on on fast path used fields that are dependent on their
> positions and values.
> 
> Fixes: 920717e4d8ba ("net/octeontx2: add device start operation")

Please point Fixes changes where we can add the fast path code.

> Cc: ndabilpuram@marvell.com

This Cc can be removed as you are the author.

> 
> Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
> ---
>  drivers/net/octeontx2/otx2_ethdev.c | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
> 
> diff --git a/drivers/net/octeontx2/otx2_ethdev.c
> b/drivers/net/octeontx2/otx2_ethdev.c
> index fcb1869..77bf9aa 100644
> --- a/drivers/net/octeontx2/otx2_ethdev.c
> +++ b/drivers/net/octeontx2/otx2_ethdev.c
> @@ -586,6 +586,24 @@ nix_tx_offload_flags(struct rte_eth_dev *eth_dev)
>  	RTE_BUILD_BUG_ON(PKT_TX_TCP_CKSUM != (1ULL << 52));
>  	RTE_BUILD_BUG_ON(PKT_TX_SCTP_CKSUM != (2ULL << 52));
>  	RTE_BUILD_BUG_ON(PKT_TX_UDP_CKSUM != (3ULL << 52));
> +	RTE_BUILD_BUG_ON(PKT_TX_IP_CKSUM != (1ULL << 54));
> +	RTE_BUILD_BUG_ON(PKT_TX_IPV4 != (1ULL << 55));
> +	RTE_BUILD_BUG_ON(PKT_TX_OUTER_IP_CKSUM != (1ULL << 58));
> +	RTE_BUILD_BUG_ON(PKT_TX_OUTER_IPV4 != (1ULL << 59));
> +	RTE_BUILD_BUG_ON(PKT_TX_OUTER_IPV6 != (1ULL << 60));
> +	RTE_BUILD_BUG_ON(PKT_TX_OUTER_UDP_CKSUM != (1ULL <<
> 41));
> +	RTE_BUILD_BUG_ON(RTE_MBUF_L2_LEN_BITS != 7);
> +	RTE_BUILD_BUG_ON(RTE_MBUF_L3_LEN_BITS != 9);
> +	RTE_BUILD_BUG_ON(RTE_MBUF_OUTL2_LEN_BITS != 7);
> +	RTE_BUILD_BUG_ON(RTE_MBUF_OUTL3_LEN_BITS != 9);
> +	RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, data_off) !=
> +			 offsetof(struct rte_mbuf, buf_iova) + 8);
> +	RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, ol_flags) !=
> +			 offsetof(struct rte_mbuf, buf_iova) + 16);
> +	RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, pkt_len) !=
> +			 offsetof(struct rte_mbuf, ol_flags) + 12);
> +	RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, tx_offload) !=
> +			 offsetof(struct rte_mbuf, pool) + 2 * sizeof(void *));
> 
>  	if (conf & DEV_TX_OFFLOAD_VLAN_INSERT ||
>  	    conf & DEV_TX_OFFLOAD_QINQ_INSERT)
> --
> 2.8.4
  

Patch

diff --git a/drivers/net/octeontx2/otx2_ethdev.c b/drivers/net/octeontx2/otx2_ethdev.c
index fcb1869..77bf9aa 100644
--- a/drivers/net/octeontx2/otx2_ethdev.c
+++ b/drivers/net/octeontx2/otx2_ethdev.c
@@ -586,6 +586,24 @@  nix_tx_offload_flags(struct rte_eth_dev *eth_dev)
 	RTE_BUILD_BUG_ON(PKT_TX_TCP_CKSUM != (1ULL << 52));
 	RTE_BUILD_BUG_ON(PKT_TX_SCTP_CKSUM != (2ULL << 52));
 	RTE_BUILD_BUG_ON(PKT_TX_UDP_CKSUM != (3ULL << 52));
+	RTE_BUILD_BUG_ON(PKT_TX_IP_CKSUM != (1ULL << 54));
+	RTE_BUILD_BUG_ON(PKT_TX_IPV4 != (1ULL << 55));
+	RTE_BUILD_BUG_ON(PKT_TX_OUTER_IP_CKSUM != (1ULL << 58));
+	RTE_BUILD_BUG_ON(PKT_TX_OUTER_IPV4 != (1ULL << 59));
+	RTE_BUILD_BUG_ON(PKT_TX_OUTER_IPV6 != (1ULL << 60));
+	RTE_BUILD_BUG_ON(PKT_TX_OUTER_UDP_CKSUM != (1ULL << 41));
+	RTE_BUILD_BUG_ON(RTE_MBUF_L2_LEN_BITS != 7);
+	RTE_BUILD_BUG_ON(RTE_MBUF_L3_LEN_BITS != 9);
+	RTE_BUILD_BUG_ON(RTE_MBUF_OUTL2_LEN_BITS != 7);
+	RTE_BUILD_BUG_ON(RTE_MBUF_OUTL3_LEN_BITS != 9);
+	RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, data_off) !=
+			 offsetof(struct rte_mbuf, buf_iova) + 8);
+	RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, ol_flags) !=
+			 offsetof(struct rte_mbuf, buf_iova) + 16);
+	RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, pkt_len) !=
+			 offsetof(struct rte_mbuf, ol_flags) + 12);
+	RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, tx_offload) !=
+			 offsetof(struct rte_mbuf, pool) + 2 * sizeof(void *));
 
 	if (conf & DEV_TX_OFFLOAD_VLAN_INSERT ||
 	    conf & DEV_TX_OFFLOAD_QINQ_INSERT)