From b20dcd0b319cef9ee6e9e4a5cd42a9f545f417e4 Mon Sep 17 00:00:00 2001 From: Eli Britstein Date: Wed, 20 Nov 2019 14:42:43 +0200 Subject: [PATCH] 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 --- tc/f_flower.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) 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) -- 2.47.2