16/11/2020 08:55, Xiaoyu Min: > From: Xiaoyu Min <jack...@nvidia.com> > > The rte_flow_item_eth and rte_flow_item_vlan items are refined. > The structs do not exactly represent the packet bits captured on the > wire anymore. > Should use real header instead of the whole struct. > > Replace the rte_flow_item_* with the existing corresponding rte_*_hdr. > > Fixes: 09315fc83861 ("ethdev: add VLAN attributes to ethernet and VLAN items") > > Signed-off-by: Xiaoyu Min <jack...@nvidia.com> > --- > drivers/net/mlx5/mlx5_flow.c | 12 ++++++------ > drivers/net/mlx5/mlx5_flow.h | 4 ++-- > 2 files changed, 8 insertions(+), 8 deletions(-) > > diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c > index 324349ed19..34b7a2f137 100644 > --- a/drivers/net/mlx5/mlx5_flow.c > +++ b/drivers/net/mlx5/mlx5_flow.c > @@ -3655,8 +3655,8 @@ flow_check_hairpin_split(struct rte_eth_dev *dev, > case RTE_FLOW_ACTION_TYPE_RAW_ENCAP: > raw_encap = actions->conf; > if (raw_encap->size > > - (sizeof(struct rte_flow_item_eth) + > - sizeof(struct rte_flow_item_ipv4))) > + (sizeof(struct rte_ether_hdr) + > + sizeof(struct rte_ipv4_hdr))) > split++; > action_n++; > break; > @@ -4092,8 +4092,8 @@ flow_hairpin_split(struct rte_eth_dev *dev, > case RTE_FLOW_ACTION_TYPE_RAW_ENCAP: > raw_encap = actions->conf; > if (raw_encap->size > > - (sizeof(struct rte_flow_item_eth) + > - sizeof(struct rte_flow_item_ipv4))) { > + (sizeof(struct rte_ether_hdr) + > + sizeof(struct rte_ipv4_hdr))) { > memcpy(actions_tx, actions, > sizeof(struct rte_flow_action)); > actions_tx++; > @@ -4107,8 +4107,8 @@ flow_hairpin_split(struct rte_eth_dev *dev, > case RTE_FLOW_ACTION_TYPE_RAW_DECAP: > raw_decap = actions->conf; > if (raw_decap->size < > - (sizeof(struct rte_flow_item_eth) + > - sizeof(struct rte_flow_item_ipv4))) { > + (sizeof(struct rte_ether_hdr) + > + sizeof(struct rte_ipv4_hdr))) { > memcpy(actions_tx, actions, > sizeof(struct rte_flow_action)); > actions_tx++; > diff --git a/drivers/net/mlx5/mlx5_flow.h b/drivers/net/mlx5/mlx5_flow.h > index 5fac8672fc..3b28c48a1d 100644 > --- a/drivers/net/mlx5/mlx5_flow.h > +++ b/drivers/net/mlx5/mlx5_flow.h > @@ -345,8 +345,8 @@ enum mlx5_feature_name { > #define MLX5_GENEVE_OPT_LEN_0 14 > #define MLX5_GENEVE_OPT_LEN_1 63 > > -#define MLX5_ENCAPSULATION_DECISION_SIZE (sizeof(struct rte_flow_item_eth) + > \ > - sizeof(struct rte_flow_item_ipv4)) > +#define MLX5_ENCAPSULATION_DECISION_SIZE (sizeof(struct rte_ether_hdr) + \ > + sizeof(struct rte_ipv4_hdr))
This constant should be used above in hairpin functions. Will change while merging.