On Sun, Jan 27, 2019 at 1:06 PM <xiangxia.m....@gmail.com> wrote: > From: Tonghao Zhang <xiangxia.m....@gmail.com> > > In some case, we may use multiple pedit actions to modify packets. > The command shown as below: the last pedit action is effective.
> @@ -2073,7 +2076,8 @@ static int alloc_mod_hdr_actions(struct mlx5e_priv > *priv, > if (!parse_attr->mod_hdr_actions) > return -ENOMEM; > > - parse_attr->num_mod_hdr_actions = max_actions; > + parse_attr->max_mod_hdr_actions = max_actions; > + parse_attr->num_mod_hdr_actions = 0; why would we want to do this zeroing? what purpose does it serve? On a probably related note, I suspect that the patch broke the caching we do for modify header contexts, see mlx5e_attach_mod_hdr where we look if a given set of modify header operations already has hw modify header context and we use it. To test that, put two tc rules with different matching but same set of modify header (pedit) actions and see that only one modify header context is used.