diff options
| author | Thomas Winter <Thomas.Winter@alliedtelesis.co.nz> | 2018-06-25 22:10:00 (GMT) |
|---|---|---|
| committer | Thomas Haller <thaller@redhat.com> | 2022-03-11 23:01:45 (GMT) |
| commit | d9dc6c20a36077757f1fa29047c0722382098cd4 (patch) | |
| tree | 9153e471a6648a71359db7f4b3c1be45173a0eca /doc | |
| parent | be86170c11fbf3f849835d3753831695f059fed1 (diff) | |
| download | libnl-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.txt | 48 |
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 |
