diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/datatype.h | 6 | ||||
-rw-r--r-- | include/linux/netfilter/nf_tables.h | 6 | ||||
-rw-r--r-- | include/meta.h | 3 | ||||
-rw-r--r-- | include/nftables.h | 5 | ||||
-rw-r--r-- | include/nftables/libnftables.h | 1 |
5 files changed, 21 insertions, 0 deletions
diff --git a/include/datatype.h b/include/datatype.h index c1d08cc2..49b8f608 100644 --- a/include/datatype.h +++ b/include/datatype.h @@ -45,6 +45,9 @@ * @TYPE_DSCP: Differentiated Services Code Point (integer subtype) * @TYPE_IFNAME: interface name (string subtype) * @TYPE_IGMP: IGMP type (integer subtype) + * @TYPE_TIME_DATA Date type (integer subtype) + * @TYPE_TIME_HOUR Hour type (integer subtype) + * @TYPE_TIME_DAY Day type (integer subtype) */ enum datatypes { TYPE_INVALID, @@ -90,6 +93,9 @@ enum datatypes { TYPE_CT_EVENTBIT, TYPE_IFNAME, TYPE_IGMP_TYPE, + TYPE_TIME_DATE, + TYPE_TIME_HOUR, + TYPE_TIME_DAY, __TYPE_MAX }; #define TYPE_MAX (__TYPE_MAX - 1) diff --git a/include/linux/netfilter/nf_tables.h b/include/linux/netfilter/nf_tables.h index ec153399..0ff932da 100644 --- a/include/linux/netfilter/nf_tables.h +++ b/include/linux/netfilter/nf_tables.h @@ -800,6 +800,9 @@ enum nft_exthdr_attributes { * @NFT_META_OIFKIND: packet output interface kind name (dev->rtnl_link_ops->kind) * @NFT_META_BRI_IIFPVID: packet input bridge port pvid * @NFT_META_BRI_IIFVPROTO: packet input bridge vlan proto + * @NFT_META_TIME_NS: time since epoch (in nanoseconds) + * @NFT_META_TIME_DAY: day of week (from 0 = Sunday to 6 = Saturday) + * @NFT_META_TIME_HOUR: hour of day (in seconds) */ enum nft_meta_keys { NFT_META_LEN, @@ -832,6 +835,9 @@ enum nft_meta_keys { NFT_META_OIFKIND, NFT_META_BRI_IIFPVID, NFT_META_BRI_IIFVPROTO, + NFT_META_TIME_NS, + NFT_META_TIME_DAY, + NFT_META_TIME_HOUR, }; /** diff --git a/include/meta.h b/include/meta.h index 0fe95fd6..1478902e 100644 --- a/include/meta.h +++ b/include/meta.h @@ -41,5 +41,8 @@ extern const struct datatype uid_type; extern const struct datatype devgroup_type; extern const struct datatype pkttype_type; extern const struct datatype ifname_type; +extern const struct datatype date_type; +extern const struct datatype hour_type; +extern const struct datatype day_type; #endif /* NFTABLES_META_H */ diff --git a/include/nftables.h b/include/nftables.h index ef737c83..1ecf5ef5 100644 --- a/include/nftables.h +++ b/include/nftables.h @@ -70,6 +70,11 @@ static inline bool nft_output_guid(const struct output_ctx *octx) return octx->flags & NFT_CTX_OUTPUT_GUID; } +static inline bool nft_output_seconds(const struct output_ctx *octx) +{ + return octx->flags & NFT_CTX_OUTPUT_NUMERIC_TIME; +} + static inline bool nft_output_numeric_proto(const struct output_ctx *octx) { return octx->flags & NFT_CTX_OUTPUT_NUMERIC_PROTO; diff --git a/include/nftables/libnftables.h b/include/nftables/libnftables.h index e39c5887..7a7a46f3 100644 --- a/include/nftables/libnftables.h +++ b/include/nftables/libnftables.h @@ -52,6 +52,7 @@ enum { NFT_CTX_OUTPUT_NUMERIC_PROTO = (1 << 7), NFT_CTX_OUTPUT_NUMERIC_PRIO = (1 << 8), NFT_CTX_OUTPUT_NUMERIC_SYMBOL = (1 << 9), + NFT_CTX_OUTPUT_NUMERIC_TIME = (1 << 10), NFT_CTX_OUTPUT_NUMERIC_ALL = (NFT_CTX_OUTPUT_NUMERIC_PROTO | NFT_CTX_OUTPUT_NUMERIC_PRIO | NFT_CTX_OUTPUT_NUMERIC_SYMBOL), |