diff options
author | David Lebrun <david.lebrun@uclouvain.be> | 2016-11-08 14:57:40 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-11-09 20:40:06 -0500 |
commit | 915d7e5e5930b4f01d0971d93b9b25ed17d221aa (patch) | |
tree | 4472f02afaab50ddcded4df81c43bc5991abd751 /include/uapi/linux/seg6_genl.h | |
parent | 1ababeba4a21f3dba3da3523c670b207fb2feb62 (diff) | |
download | linux-915d7e5e5930b4f01d0971d93b9b25ed17d221aa.tar.gz linux-915d7e5e5930b4f01d0971d93b9b25ed17d221aa.tar.bz2 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.h | 32 |
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 |