From 810f8568f44f5863c2350a39f4f5c8d60f762958 Mon Sep 17 00:00:00 2001 From: Phil Sutter Date: Sun, 17 Dec 2023 15:10:15 +0100 Subject: libxtables: xtoptions: Implement XTTYPE_ETHERMACMASK Accept an Ethernet MAC address with optional mask in the format xtables_parse_mac_and_mask() expects it. Does not support XTOPT_PUT (for now) due to the lack of defined data structure. --- include/xtables.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/xtables.h b/include/xtables.h index db7c492a..ab856ebc 100644 --- a/include/xtables.h +++ b/include/xtables.h @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -68,6 +69,7 @@ struct in_addr; * %XTTYPE_PLEN: prefix length * %XTTYPE_PLENMASK: prefix length (ptr: union nf_inet_addr) * %XTTYPE_ETHERMAC: Ethernet MAC address in hex form + * %XTTYPE_ETHERMACMASK: Ethernet MAC address in hex form with optional mask */ enum xt_option_type { XTTYPE_NONE, @@ -92,6 +94,7 @@ enum xt_option_type { XTTYPE_PLEN, XTTYPE_PLENMASK, XTTYPE_ETHERMAC, + XTTYPE_ETHERMACMASK, }; /** @@ -167,7 +170,9 @@ struct xt_option_call { struct { uint32_t mark, mask; }; - uint8_t ethermac[6]; + struct { + uint8_t ethermac[ETH_ALEN], ethermacmask[ETH_ALEN]; + }; } val; /* Wished for a world where the ones below were gone: */ union { -- cgit v1.2.3