summaryrefslogtreecommitdiffstats
path: root/include/uapi/linux/seg6_genl.h
diff options
context:
space:
mode:
authorDavid Lebrun2016-11-08 14:57:40 +0100
committerDavid S. Miller2016-11-10 02:40:06 +0100
commit915d7e5e5930b4f01d0971d93b9b25ed17d221aa (patch)
tree4472f02afaab50ddcded4df81c43bc5991abd751 /include/uapi/linux/seg6_genl.h
parentipv6: implement dataplane support for rthdr type 4 (Segment Routing Header) (diff)
downloadkernel-qcow2-linux-915d7e5e5930b4f01d0971d93b9b25ed17d221aa.tar.gz
kernel-qcow2-linux-915d7e5e5930b4f01d0971d93b9b25ed17d221aa.tar.xz
kernel-qcow2-linux-915d7e5e5930b4f01d0971d93b9b25ed17d221aa.zip
ipv6: sr: add code base for control plane support of SR-IPv6
This patch adds the necessary hooks and structures to provide support for SR-IPv6 control plane, essentially the Generic Netlink commands that will be used for userspace control over the Segment Routing kernel structures. The genetlink commands provide control over two different structures: tunnel source and HMAC data. The tunnel source is the source address that will be used by default when encapsulating packets into an outer IPv6 header + SRH. If the tunnel source is set to :: then an address of the outgoing interface will be selected as the source. The HMAC commands currently just return ENOTSUPP and will be implemented in a future patch. Signed-off-by: David Lebrun <david.lebrun@uclouvain.be> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/uapi/linux/seg6_genl.h')
-rw-r--r--include/uapi/linux/seg6_genl.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/include/uapi/linux/seg6_genl.h b/include/uapi/linux/seg6_genl.h
new file mode 100644
index 000000000000..fcf1c60d7df3
--- /dev/null
+++ b/include/uapi/linux/seg6_genl.h
@@ -0,0 +1,32 @@
+#ifndef _UAPI_LINUX_SEG6_GENL_H
+#define _UAPI_LINUX_SEG6_GENL_H
+
+#define SEG6_GENL_NAME "SEG6"
+#define SEG6_GENL_VERSION 0x1
+
+enum {
+ SEG6_ATTR_UNSPEC,
+ SEG6_ATTR_DST,
+ SEG6_ATTR_DSTLEN,
+ SEG6_ATTR_HMACKEYID,
+ SEG6_ATTR_SECRET,
+ SEG6_ATTR_SECRETLEN,
+ SEG6_ATTR_ALGID,
+ SEG6_ATTR_HMACINFO,
+ __SEG6_ATTR_MAX,
+};
+
+#define SEG6_ATTR_MAX (__SEG6_ATTR_MAX - 1)
+
+enum {
+ SEG6_CMD_UNSPEC,
+ SEG6_CMD_SETHMAC,
+ SEG6_CMD_DUMPHMAC,
+ SEG6_CMD_SET_TUNSRC,
+ SEG6_CMD_GET_TUNSRC,
+ __SEG6_CMD_MAX,
+};
+
+#define SEG6_CMD_MAX (__SEG6_CMD_MAX - 1)
+
+#endif