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.
Showing the changes to include/uapi/linux (1 of 7 files). Show all
Unified · Split
| @@ -0,0 +1,32 @@ | |||
| 1 | #ifndef _UAPI_LINUX_SEG6_GENL_H | ||
| 2 | #define _UAPI_LINUX_SEG6_GENL_H | ||
| 3 | |||
| 4 | #define SEG6_GENL_NAME "SEG6" | ||
| 5 | #define SEG6_GENL_VERSION 0x1 | ||
| 6 | |||
| 7 | enum { | ||
| 8 | SEG6_ATTR_UNSPEC, | ||
| 9 | SEG6_ATTR_DST, | ||
| 10 | SEG6_ATTR_DSTLEN, | ||
| 11 | SEG6_ATTR_HMACKEYID, | ||
| 12 | SEG6_ATTR_SECRET, | ||
| 13 | SEG6_ATTR_SECRETLEN, | ||
| 14 | SEG6_ATTR_ALGID, | ||
| 15 | SEG6_ATTR_HMACINFO, | ||
| 16 | __SEG6_ATTR_MAX, | ||
| 17 | }; | ||
| 18 | |||
| 19 | #define SEG6_ATTR_MAX (__SEG6_ATTR_MAX - 1) | ||
| 20 | |||
| 21 | enum { | ||
| 22 | SEG6_CMD_UNSPEC, | ||
| 23 | SEG6_CMD_SETHMAC, | ||
| 24 | SEG6_CMD_DUMPHMAC, | ||
| 25 | SEG6_CMD_SET_TUNSRC, | ||
| 26 | SEG6_CMD_GET_TUNSRC, | ||
| 27 | __SEG6_CMD_MAX, | ||
| 28 | }; | ||
| 29 | |||
| 30 | #define SEG6_CMD_MAX (__SEG6_CMD_MAX - 1) | ||
| 31 | |||
| 32 | #endif | ||