]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
tc: flower: add u16 big endian parse option
authorEli Britstein <elibr@mellanox.com>
Wed, 20 Nov 2019 12:42:43 +0000 (14:42 +0200)
committerDavid Ahern <dsahern@gmail.com>
Mon, 25 Nov 2019 21:36:25 +0000 (21:36 +0000)
Add u16 big endian parse option as a pre-step towards TCP/UDP/SCTP
ports usage.

Signed-off-by: Eli Britstein <elibr@mellanox.com>
Reviewed-by: Roi Dayan <roid@mellanox.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David Ahern <dsahern@gmail.com>
tc/f_flower.c

index 1b518ef305837aa2e9f1a044884c97908b2ba06f..69de6a80735b0c4fbfb4f185ebfe591e9db4269b 100644 (file)
@@ -220,7 +220,7 @@ static int flower_parse_matching_flags(char *str,
 }
 
 static int flower_parse_u16(char *str, int value_type, int mask_type,
-                           struct nlmsghdr *n)
+                           struct nlmsghdr *n, bool be)
 {
        __u16 value, mask;
        char *slash;
@@ -239,6 +239,10 @@ static int flower_parse_u16(char *str, int value_type, int mask_type,
                mask = UINT16_MAX;
        }
 
+       if (be) {
+               value = htons(value);
+               mask = htons(mask);
+       }
        addattr16(n, MAX_MSG, value_type, value);
        addattr16(n, MAX_MSG, mask_type, mask);
 
@@ -284,7 +288,8 @@ static int flower_parse_ct_zone(char *str, struct nlmsghdr *n)
        return flower_parse_u16(str,
                                TCA_FLOWER_KEY_CT_ZONE,
                                TCA_FLOWER_KEY_CT_ZONE_MASK,
-                               n);
+                               n,
+                               false);
 }
 
 static int flower_parse_ct_labels(char *str, struct nlmsghdr *n)