From 42e2ec0198dd1408da4a32e1beefe9cbc0fdae89 Mon Sep 17 00:00:00 2001 From: Florian Westphal Date: Fri, 9 Sep 2016 13:44:50 +0200 Subject: datatype: ll: use big endian byte ordering ether daddr set 00:03:2d:2b:74:ec is listed as: ether daddr set ec:74:2b:2d:03:00 (it was fine without 'set' keyword). Reason is that ether address was listed as being HOST endian. The payload expression (unlike statement) path contains a few conversion call sites for this, i.e.: if (tmp->byteorder == BYTEORDER_HOST_ENDIAN) mpz_switch_byteorder(tmp->value, tmp->len / BITS_PER_BYTE); ... it might make sense to remove those in a followup patch. Reported-by: Laura Garcia Liebana Signed-off-by: Florian Westphal Acked-by: Pablo Neira Ayuso --- src/proto.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/proto.c') diff --git a/src/proto.c b/src/proto.c index 94995f10..df5439cc 100644 --- a/src/proto.c +++ b/src/proto.c @@ -854,7 +854,7 @@ const struct datatype etheraddr_type = { .type = TYPE_ETHERADDR, .name = "ether_addr", .desc = "Ethernet address", - .byteorder = BYTEORDER_HOST_ENDIAN, + .byteorder = BYTEORDER_BIG_ENDIAN, .size = ETH_ALEN * BITS_PER_BYTE, .basetype = &lladdr_type, }; @@ -892,7 +892,7 @@ const struct datatype ethertype_type = { ETHHDR_TEMPLATE(__name, ðertype_type, __member) #define ETHHDR_ADDR(__name, __member) \ PROTO_HDR_TEMPLATE(__name, ðeraddr_type, \ - BYTEORDER_HOST_ENDIAN, \ + BYTEORDER_BIG_ENDIAN, \ offsetof(struct ether_header, __member) * 8, \ field_sizeof(struct ether_header, __member) * 8) -- cgit v1.2.3