From: Eli Britstein Date: Wed, 20 Nov 2019 12:42:43 +0000 (+0200) Subject: tc: flower: add u16 big endian parse option X-Git-Tag: v5.5.0~50 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b20dcd0b319cef9ee6e9e4a5cd42a9f545f417e4;p=thirdparty%2Fiproute2.git tc: flower: add u16 big endian parse option Add u16 big endian parse option as a pre-step towards TCP/UDP/SCTP ports usage. Signed-off-by: Eli Britstein Reviewed-by: Roi Dayan Acked-by: Jiri Pirko Signed-off-by: David Ahern --- diff --git a/tc/f_flower.c b/tc/f_flower.c index 1b518ef30..69de6a807 100644 --- a/tc/f_flower.c +++ b/tc/f_flower.c @@ -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)