summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/datatype.c1
-rw-r--r--src/payload.c11
2 files changed, 11 insertions, 1 deletions
diff --git a/src/datatype.c b/src/datatype.c
index c687edd4..e87de418 100644
--- a/src/datatype.c
+++ b/src/datatype.c
@@ -30,6 +30,7 @@ static const struct datatype *datatypes[TYPE_MAX + 1] = {
[TYPE_LLADDR] = &lladdr_type,
[TYPE_IPADDR] = &ipaddr_type,
[TYPE_IP6ADDR] = &ip6addr_type,
+ [TYPE_ETHERADDR] = &etheraddr_type,
[TYPE_ETHERTYPE] = &ethertype_type,
[TYPE_INET_PROTOCOL] = &inet_protocol_type,
[TYPE_INET_SERVICE] = &inet_service_type,
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, &ethertype_type, __member)
#define ETHHDR_ADDR(__name, __member) \
- ETHHDR_TEMPLATE(__name, &lladdr_type, __member)
+ ETHHDR_TEMPLATE(__name, &etheraddr_type, __member)
const struct payload_desc payload_eth = {
.name = "eth",