On Tue, Nov 24, 2020 at 02:28:10PM +0200, Roi Dayan wrote:
> When protocol is vlan then eth_type is set to the vlan eth type.
> So when parsing vlan_id and vlan_prio need to check tc_proto
> is vlan and not eth_type.
>
> Fixes: 4c551369e083 ("tc flower: use right ethertype in icmp/arp parsing")
> Signed-off-by: Roi Dayan <[email protected]>
> ---
> tc/f_flower.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/tc/f_flower.c b/tc/f_flower.c
> index 58e1140d7391..9b278f3c0e83 100644
> --- a/tc/f_flower.c
> +++ b/tc/f_flower.c
> @@ -1432,7 +1432,7 @@ static int flower_parse_opt(struct filter_util *qu,
> char *handle,
> __u16 vid;
>
> NEXT_ARG();
> - if (!eth_type_vlan(eth_type)) {
> + if (!eth_type_vlan(tc_proto)) {
> fprintf(stderr, "Can't set \"vlan_id\" if
> ethertype isn't 802.1Q or 802.1AD\n");
> return -1;
> }
> @@ -1446,7 +1446,7 @@ static int flower_parse_opt(struct filter_util *qu,
> char *handle,
> __u8 vlan_prio;
>
> NEXT_ARG();
> - if (!eth_type_vlan(eth_type)) {
> + if (!eth_type_vlan(tc_proto)) {
> fprintf(stderr, "Can't set \"vlan_prio\" if
> ethertype isn't 802.1Q or 802.1AD\n");
> return -1;
> }
> --
Thanks for fixing this. I missed to test the option odering in my tests.
Your fix works fine for me. Sorry for missing this.
> 2.25.4