* [PATCH libnftnl 1/2] udata: add NFTNL_UDATA_SET_*TYPEOF* definitions
@ 2019-12-16 12:46 Pablo Neira Ayuso
2019-12-16 12:46 ` [PATCH libnftnl 2/2] udata: support for TLV attribute nesting Pablo Neira Ayuso
0 siblings, 1 reply; 2+ messages in thread
From: Pablo Neira Ayuso @ 2019-12-16 12:46 UTC (permalink / raw)
To: netfilter-devel
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
---
include/libnftnl/udata.h | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/include/libnftnl/udata.h b/include/libnftnl/udata.h
index dd2f3dfd9bfe..591fa77aa5e7 100644
--- a/include/libnftnl/udata.h
+++ b/include/libnftnl/udata.h
@@ -22,10 +22,19 @@ enum nftnl_udata_set_types {
NFTNL_UDATA_SET_KEYBYTEORDER,
NFTNL_UDATA_SET_DATABYTEORDER,
NFTNL_UDATA_SET_MERGE_ELEMENTS,
+ NFTNL_UDATA_SET_KEY_TYPEOF,
+ NFTNL_UDATA_SET_DATA_TYPEOF,
__NFTNL_UDATA_SET_MAX
};
#define NFTNL_UDATA_SET_MAX (__NFTNL_UDATA_SET_MAX - 1)
+enum {
+ NFTNL_UDATA_SET_TYPEOF_EXPR,
+ NFTNL_UDATA_SET_TYPEOF_DATA,
+ __NFTNL_UDATA_SET_TYPEOF_MAX,
+};
+#define NFTNL_UDATA_SET_TYPEOF_MAX (__NFTNL_UDATA_SET_TYPEOF_MAX - 1)
+
enum nftnl_udata_set_elem_types {
NFTNL_UDATA_SET_ELEM_COMMENT,
NFTNL_UDATA_SET_ELEM_FLAGS,
--
2.11.0
^ permalink raw reply related [flat|nested] 2+ messages in thread* [PATCH libnftnl 2/2] udata: support for TLV attribute nesting
2019-12-16 12:46 [PATCH libnftnl 1/2] udata: add NFTNL_UDATA_SET_*TYPEOF* definitions Pablo Neira Ayuso
@ 2019-12-16 12:46 ` Pablo Neira Ayuso
0 siblings, 0 replies; 2+ messages in thread
From: Pablo Neira Ayuso @ 2019-12-16 12:46 UTC (permalink / raw)
To: netfilter-devel
This patch adds nftnl_udata_nest_start() and nftnl_udata_nest_end()
to build attribute nests.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
---
include/libnftnl/udata.h | 5 +++++
src/libnftnl.map | 5 +++++
src/udata.c | 17 +++++++++++++++++
3 files changed, 27 insertions(+)
diff --git a/include/libnftnl/udata.h b/include/libnftnl/udata.h
index 591fa77aa5e7..8044041189b1 100644
--- a/include/libnftnl/udata.h
+++ b/include/libnftnl/udata.h
@@ -75,6 +75,11 @@ bool nftnl_udata_put_u32(struct nftnl_udata_buf *buf, uint8_t type,
bool nftnl_udata_put_strz(struct nftnl_udata_buf *buf, uint8_t type,
const char *strz);
+/* nest */
+struct nftnl_udata *nftnl_udata_nest_start(struct nftnl_udata_buf *buf,
+ uint8_t type);
+void nftnl_udata_nest_end(struct nftnl_udata_buf *buf, struct nftnl_udata *ud);
+
/* nftnl_udata_attr */
uint8_t nftnl_udata_type(const struct nftnl_udata *attr);
uint8_t nftnl_udata_len(const struct nftnl_udata *attr);
diff --git a/src/libnftnl.map b/src/libnftnl.map
index 8230d1519e8e..5ba8d995440e 100644
--- a/src/libnftnl.map
+++ b/src/libnftnl.map
@@ -359,3 +359,8 @@ LIBNFTNL_13 {
nftnl_obj_set_data;
nftnl_flowtable_set_data;
} LIBNFTNL_12;
+
+LIBNFTNL_14 {
+ nftnl_udata_nest_start;
+ nftnl_udata_nest_end;
+} LIBNFTNL_13;
diff --git a/src/udata.c b/src/udata.c
index 9f17395833b8..a47f9239abf8 100644
--- a/src/udata.c
+++ b/src/udata.c
@@ -150,3 +150,20 @@ int nftnl_udata_parse(const void *data, uint32_t data_len, nftnl_udata_cb_t cb,
return ret;
}
+
+EXPORT_SYMBOL(nftnl_udata_nest_start);
+struct nftnl_udata *nftnl_udata_nest_start(struct nftnl_udata_buf *buf,
+ uint8_t type)
+{
+ struct nftnl_udata *ud = nftnl_udata_end(buf);
+
+ nftnl_udata_put(buf, type, 0, NULL);
+
+ return ud;
+}
+
+EXPORT_SYMBOL(nftnl_udata_nest_end);
+void nftnl_udata_nest_end(struct nftnl_udata_buf *buf, struct nftnl_udata *ud)
+{
+ ud->len = buf->end - (char *)ud;
+}
--
2.11.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2019-12-16 12:47 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-12-16 12:46 [PATCH libnftnl 1/2] udata: add NFTNL_UDATA_SET_*TYPEOF* definitions Pablo Neira Ayuso
2019-12-16 12:46 ` [PATCH libnftnl 2/2] udata: support for TLV attribute nesting Pablo Neira Ayuso
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox