diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/conntrack/api.c | 13 | ||||
-rw-r--r-- | src/conntrack/build_mnl.c | 3 | ||||
-rw-r--r-- | src/conntrack/filter_dump.c | 8 |
3 files changed, 24 insertions, 0 deletions
diff --git a/src/conntrack/api.c b/src/conntrack/api.c index cd8bea8..60c87b3 100644 --- a/src/conntrack/api.c +++ b/src/conntrack/api.c @@ -1552,6 +1552,19 @@ void nfct_filter_dump_set_attr_u8(struct nfct_filter_dump *filter_dump, } /** + * nfct_filter_dump_attr_set_u16 - set u16 dump filter attribute + * \param filter dump filter object that we want to modify + * \param type filter attribute type + * \param value value of the filter attribute using unsigned int (32 bits). + */ +void nfct_filter_dump_set_attr_u16(struct nfct_filter_dump *filter_dump, + const enum nfct_filter_dump_attr type, + uint16_t value) +{ + nfct_filter_dump_set_attr(filter_dump, type, &value); +} + +/** * @} */ diff --git a/src/conntrack/build_mnl.c b/src/conntrack/build_mnl.c index eb9fcbf..eed0679 100644 --- a/src/conntrack/build_mnl.c +++ b/src/conntrack/build_mnl.c @@ -658,6 +658,9 @@ int nfct_nlmsg_build_filter(struct nlmsghdr *nlh, mnl_attr_put_u32(nlh, CTA_STATUS_MASK, htonl(filter_dump->status.mask)); } + if (filter_dump->set & (1 << NFCT_FILTER_DUMP_ZONE)) { + mnl_attr_put_u16(nlh, CTA_ZONE, htons(filter_dump->zone)); + } if (filter_dump->set & (1 << NFCT_FILTER_DUMP_TUPLE)) { const struct nf_conntrack *ct = &filter_dump->ct; struct nlattr *nest; diff --git a/src/conntrack/filter_dump.c b/src/conntrack/filter_dump.c index 5723a44..0a19985 100644 --- a/src/conntrack/filter_dump.c +++ b/src/conntrack/filter_dump.c @@ -38,6 +38,13 @@ set_filter_dump_attr_family(struct nfct_filter_dump *filter_dump, } static void +set_filter_dump_attr_zone(struct nfct_filter_dump *filter_dump, + const void *value) +{ + filter_dump->zone = *((uint16_t *)value); +} + +static void set_filter_dump_attr_tuple(struct nfct_filter_dump *filter_dump, const void *value) { @@ -48,6 +55,7 @@ const set_filter_dump_attr set_filter_dump_attr_array[NFCT_FILTER_DUMP_MAX] = { [NFCT_FILTER_DUMP_MARK] = set_filter_dump_attr_mark, [NFCT_FILTER_DUMP_L3NUM] = set_filter_dump_attr_family, [NFCT_FILTER_DUMP_STATUS] = set_filter_dump_attr_status, + [NFCT_FILTER_DUMP_ZONE] = set_filter_dump_attr_zone, [NFCT_FILTER_DUMP_TUPLE] = set_filter_dump_attr_tuple, }; |