On Tue, Jan 22, 2019 at 4:38 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. > > $ tc filter add dev netdev_rep parent ffff: protocol ip prio 1 \ > flower skip_sw ip_proto icmp dst_ip 3.3.3.3 \ > action pedit ex munge ip dst set 192.168.1.100 pipe \ > action pedit ex munge eth src set 00:00:00:00:00:01 pipe \ > action pedit ex munge eth dst set 00:00:00:00:00:02 pipe \ > action csum ip pipe \ > action tunnel_key set src_ip 1.1.1.100 dst_ip 1.1.1.200 dst_port 4789 > id 100 \ > action mirred egress redirect dev vxlan0 > > To fix it, we add max_mod_hdr_actions to mlx5e_tc_flow_parse_attr struction, > max_mod_hdr_actions will store the max pedit action number we support and > num_mod_hdr_actions indicates how many pedit action we used, and store all > pedit action to mod_hdr_actions.
There's a comment just above offload_pedit_fields saying: /* On input attr->num_mod_hdr_actions tells how many HW actions can be parsed at * max from the SW pedit action. On success, it says how many HW actions were * actually parsed. */ I guess it will have to change now, right?