diff options
author | Florian Westphal <fw@strlen.de> | 2012-11-13 12:21:08 +0100 |
---|---|---|
committer | Florian Westphal <fw@strlen.de> | 2013-05-06 20:57:52 +0200 |
commit | 013a5284c901a6ce80320f499685b89d15eeed9e (patch) | |
tree | 003a0a7606823ecd6f2a97d782aca5263a2005a1 /include/libnetfilter_conntrack | |
parent | 706064d8b9423df0d22e9ebba092ec2fb14b38aa (diff) |
api: add nfct_bitmask object
In order to use generic getter/setter API with upcoming
conntrack label extension, add helper functions to set/test/unset
bits in a vector of arbitrary size.
Conntrack labels will then be encoded via nfct_bitmask object.
Original idea from Pablo Neira Ayuso.
Signed-off-by: Florian Westphal <fw@strlen.de>
Diffstat (limited to 'include/libnetfilter_conntrack')
-rw-r--r-- | include/libnetfilter_conntrack/libnetfilter_conntrack.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/include/libnetfilter_conntrack/libnetfilter_conntrack.h b/include/libnetfilter_conntrack/libnetfilter_conntrack.h index 12f61d1..90290b8 100644 --- a/include/libnetfilter_conntrack/libnetfilter_conntrack.h +++ b/include/libnetfilter_conntrack/libnetfilter_conntrack.h @@ -273,6 +273,18 @@ enum { NFCT_CB_STOLEN = 2, /* like continue, but ct is not freed */ }; +/* bitmask setter/getter */ +struct nfct_bitmask; + +struct nfct_bitmask *nfct_bitmask_new(unsigned int maxbit); +struct nfct_bitmask *nfct_bitmask_clone(const struct nfct_bitmask *); +unsigned int nfct_bitmask_maxbit(const struct nfct_bitmask *); + +void nfct_bitmask_set_bit(struct nfct_bitmask *, unsigned int bit); +int nfct_bitmask_test_bit(const struct nfct_bitmask *, unsigned int bit); +void nfct_bitmask_unset_bit(struct nfct_bitmask *, unsigned int bit); +void nfct_bitmask_destroy(struct nfct_bitmask *); + /* setter */ extern void nfct_set_attr(struct nf_conntrack *ct, const enum nf_conntrack_attr type, |