summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorThomas Winter <Thomas.Winter@alliedtelesis.co.nz>2018-06-25 22:10:00 (GMT)
committerThomas Haller <thaller@redhat.com>2022-03-11 23:01:45 (GMT)
commitd9dc6c20a36077757f1fa29047c0722382098cd4 (patch)
tree9153e471a6648a71359db7f4b3c1be45173a0eca /doc
parentbe86170c11fbf3f849835d3753831695f059fed1 (diff)
downloadlibnl-d9dc6c20a36077757f1fa29047c0722382098cd4.zip
libnl-d9dc6c20a36077757f1fa29047c0722382098cd4.tar.gz
libnl-d9dc6c20a36077757f1fa29047c0722382098cd4.tar.bz2
ip6vti: Add IPv6 VTI support
This patch adds support for IPv6 VTI tunneling that uses the vti6 kernel module. Signed-off-by: Thomas Winter <Thomas.Winter@alliedtelesis.co.nz>
Diffstat (limited to 'doc')
-rw-r--r--doc/route.txt48
1 files changed, 48 insertions, 0 deletions
diff --git a/doc/route.txt b/doc/route.txt
index 963d562..01e0a7b 100644
--- a/doc/route.txt
+++ b/doc/route.txt
@@ -1323,6 +1323,54 @@ rtnl_link_put(link);
-----
+[[link_ip6vti]]
+==== IP6VTI
+
+[source,c]
+----
+int rtnl_link_is_ip6vti(struct rtnl_link *link);
+
+extern struct rtnl_link *rtnl_link_ip6vti_alloc(void);
+extern int rtnl_link_ip6vti_add(struct nl_sock *sk, const char *name);
+
+extern int rtnl_link_ip6vti_set_link(struct rtnl_link *link, uint32_t index);
+extern int rtnl_link_ip6vti_get_link(struct rtnl_link *link, uint32_t *index);
+
+extern int rtnl_link_ip6vti_set_ikey(struct rtnl_link *link, uint32_t ikey);
+extern int rtnl_link_ip6vti_get_ikey(struct rtnl_link *link, uint32_t *ikey);
+
+extern int rtnl_link_ip6vti_set_okey(struct rtnl_link *link, uint32_t okey);
+extern int rtnl_link_ip6vti_get_okey(struct rtnl_link *link, uint32_t *okey);
+
+extern int rtnl_link_ip6vti_set_local(struct rtnl_link *link, struct in6_addr *local);
+extern int rtnl_link_ip6vti_get_local(struct rtnl_link *link, struct in6_addr *remote);
+
+extern int rtnl_link_ip6vti_set_remote(struct rtnl_link *link, struct in6_addr *remote);
+extern int rtnl_link_ip6vti_get_remote(struct rtnl_link *link, struct in6_addr *remote);
+
++----
++
+.Example: Add a ip6vti tunnel device
+[source,c]
+----
+struct rtnl_link *link
+struct in6_addr addr
+
+link = rtnl_link_ip6vti_alloc();
+
+rtnl_link_set_name(link, "ip6vti-tun");
+rtnl_link_ip6vti_set_link(link, if_index);
+
+inet_pton(AF_INET6, "2607:f0d0:1002:51::4", &addr);
+rtnl_link_ip6vti_set_local(link, &addr);
+
+inet_pton(AF_INET6, "2607:f0d0:1002:52::5", &addr);
+rtnl_link_ip6vti_set_remote(link, &addr);
+
+rtnl_link_add(sk, link, NLM_F_CREATE);
+rtnl_link_put(link);
+
+-----
[[link_xfrmi]]
==== XFRMI