From a711ab22a58504e52c33f5fd939643002d7e6a81 Mon Sep 17 00:00:00 2001 From: Patrick McHardy Date: Mon, 15 Apr 2013 16:16:04 +0200 Subject: types: add ethernet address type Add a new type for ethernet addresses. This is needed since for concatenations we need fixed sized data types, the generic link layer address doesn't have a fixed length. Signed-off-by: Patrick McHardy --- src/payload.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/payload.c') diff --git a/src/payload.c b/src/payload.c index 611697ec..bcbc0d43 100644 --- a/src/payload.c +++ b/src/payload.c @@ -911,6 +911,15 @@ const struct payload_desc payload_vlan = { * Ethernet */ +const struct datatype etheraddr_type = { + .type = TYPE_ETHERADDR, + .name = "etheraddr", + .desc = "Ethernet address", + .byteorder = BYTEORDER_HOST_ENDIAN, + .size = ETH_ALEN * BITS_PER_BYTE, + .basetype = &lladdr_type, +}; + static const struct symbol_table ethertype_tbl = { .symbols = { SYMBOL("ip", ETH_P_IP), @@ -936,7 +945,7 @@ const struct datatype ethertype_type = { #define ETHHDR_TYPE(__name, __member) \ ETHHDR_TEMPLATE(__name, ðertype_type, __member) #define ETHHDR_ADDR(__name, __member) \ - ETHHDR_TEMPLATE(__name, &lladdr_type, __member) + ETHHDR_TEMPLATE(__name, ðeraddr_type, __member) const struct payload_desc payload_eth = { .name = "eth", -- cgit v1.2.3