diff options
Diffstat (limited to 'iptables/nft-compat.h')
-rw-r--r-- | iptables/nft-compat.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/iptables/nft-compat.h b/iptables/nft-compat.h index 1147f08a..59b3c026 100644 --- a/iptables/nft-compat.h +++ b/iptables/nft-compat.h @@ -5,6 +5,8 @@ #include <linux/netfilter/x_tables.h> +int nftnl_rule_expr_count(const struct nftnl_rule *r); + enum rule_udata_ext_flags { RUE_FLAG_MATCH_TYPE = (1 << 0), RUE_FLAG_TARGET_TYPE = (1 << 1), @@ -21,6 +23,29 @@ struct rule_udata_ext { unsigned char data[]; }; +struct nft_handle; + +void rule_add_udata_ext(struct nft_handle *h, struct nftnl_rule *r, + uint16_t start_idx, uint16_t end_idx, + uint8_t flags, uint16_t size, const void *data); +static inline void +rule_add_udata_match(struct nft_handle *h, struct nftnl_rule *r, + uint16_t start_idx, uint16_t end_idx, + const struct xt_entry_match *m) +{ + rule_add_udata_ext(h, r, start_idx, end_idx, + RUE_FLAG_MATCH_TYPE, m->u.match_size, m); +} + +static inline void +rule_add_udata_target(struct nft_handle *h, struct nftnl_rule *r, + uint16_t start_idx, uint16_t end_idx, + const struct xt_entry_target *t) +{ + rule_add_udata_ext(h, r, start_idx, end_idx, + RUE_FLAG_TARGET_TYPE, t->u.target_size, t); +} + struct nft_xt_ctx; bool rule_has_udata_ext(const struct nftnl_rule *r); |