diff mbox series

[iproute2-next,1/1] tc flower: fix parsing vlan_id and vlan_prio

Message ID 20201124122810.46790-1-roid@nvidia.com (mailing list archive)
State Accepted
Commit ed40b7e2ae4da68e62f30fb1f167d774bce46d50
Delegated to: David Ahern
Headers show
Series [iproute2-next,1/1] tc flower: fix parsing vlan_id and vlan_prio | expand

Checks

Context Check Description
netdev/tree_selection success Not a local patch

Commit Message

Roi Dayan Nov. 24, 2020, 12:28 p.m. UTC
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 <roid@nvidia.com>
---
 tc/f_flower.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Zahari Doychev Nov. 24, 2020, 12:42 p.m. UTC | #1
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 <roid@nvidia.com>
> ---
>  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
David Ahern Nov. 25, 2020, 4:46 a.m. UTC | #2
On 11/24/20 5:28 AM, 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 <roid@nvidia.com>
> ---
>  tc/f_flower.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 

applied. Thanks for the fix.
patchwork-bot+netdevbpf@kernel.org Nov. 25, 2020, 4:50 a.m. UTC | #3
Hello:

This patch was applied to iproute2/iproute2-next.git (refs/heads/main):

On Tue, 24 Nov 2020 14:28:10 +0200 you 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 <roid@nvidia.com>
> 
> [...]

Here is the summary with links:
  - [iproute2-next,1/1] tc flower: fix parsing vlan_id and vlan_prio
    https://git.kernel.org/pub/scm/network/iproute2/iproute2-next.git/commit/?id=ed40b7e2ae4d

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
diff mbox series

Patch

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;
 			}