summaryrefslogtreecommitdiffstats
path: root/include/netlink
diff options
context:
space:
mode:
authorThomas Graf <tgr@lsx.(none)>2010-07-02 12:06:59 (GMT)
committerThomas Graf <tgr@lsx.(none)>2010-07-02 12:06:59 (GMT)
commitdb5bd57899affbcaf42ac0b93c5c7be8f51ca390 (patch)
treeca9e9cc76aad8662a7ac4005f7807ae6d476e3c7 /include/netlink
parentd378220c96c3c8b6f27dca33e7d8ba03318f9c2d (diff)
downloadlibnl-db5bd57899affbcaf42ac0b93c5c7be8f51ca390.zip
libnl-db5bd57899affbcaf42ac0b93c5c7be8f51ca390.tar.gz
libnl-db5bd57899affbcaf42ac0b93c5c7be8f51ca390.tar.bz2
Packet Location Interface
Diffstat (limited to 'include/netlink')
-rw-r--r--include/netlink/errno.h3
-rw-r--r--include/netlink/route/pktloc.h44
2 files changed, 46 insertions, 1 deletions
diff --git a/include/netlink/errno.h b/include/netlink/errno.h
index 0b43da0..c8a376e 100644
--- a/include/netlink/errno.h
+++ b/include/netlink/errno.h
@@ -45,8 +45,9 @@ extern "C" {
#define NLE_PROTO_MISMATCH 26
#define NLE_NOACCESS 27
#define NLE_PERM 28
+#define NLE_PKTLOC_FILE 29
-#define NLE_MAX NLE_PERM
+#define NLE_MAX NLE_PKTLOC_FILE
extern const char * nl_geterror(int);
extern void nl_perror(int, const char *);
diff --git a/include/netlink/route/pktloc.h b/include/netlink/route/pktloc.h
new file mode 100644
index 0000000..28e1dc2
--- /dev/null
+++ b/include/netlink/route/pktloc.h
@@ -0,0 +1,44 @@
+/*
+ * netlink/route/pktloc.h Packet Location Aliasing
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation version 2.1
+ * of the License.
+ *
+ * Copyright (c) 2010 Thomas Graf <tgraf@suug.ch>
+ */
+
+#ifndef NETLINK_PKTLOC_H_
+#define NETLINK_PKTLOC_H_
+
+#include <netlink/netlink.h>
+#include <netlink/cache.h>
+#include <netlink/route/tc.h>
+
+#include <linux/tc_ematch/tc_em_cmp.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct rtnl_pktloc
+{
+ char * name;
+ uint8_t align:4;
+ uint8_t layer:4;
+ uint8_t flags;
+ uint16_t offset;
+ uint32_t mask;
+
+ struct nl_list_head list;
+};
+
+extern int rtnl_pktloc_lookup(const char *, struct rtnl_pktloc **);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif