libnl 3.12.0
ip6tnl.h
1/* SPDX-License-Identifier: LGPL-2.1-only */
2/*
3 * Copyright (c) 2014 Susant Sahani <susant@redhat.com>
4 */
5
6#ifndef NETLINK_LINK_IP6TNL_H_
7#define NETLINK_LINK_IP6TNL_H_
8
9#include <netlink/netlink.h>
10#include <netlink/route/link.h>
11
12#ifdef __cplusplus
13extern "C" {
14#endif
15
16extern struct rtnl_link *rtnl_link_ip6_tnl_alloc(void);
17extern int rtnl_link_ip6_tnl_add(struct nl_sock *sk, const char *name);
18
19extern int rtnl_link_is_ip6_tnl(struct rtnl_link *link);
20
21extern int rtnl_link_ip6_tnl_set_link(struct rtnl_link *link, uint32_t index);
22extern uint32_t rtnl_link_ip6_tnl_get_link(struct rtnl_link *link);
23
24extern int rtnl_link_ip6_tnl_set_local(struct rtnl_link *link,
25 struct in6_addr *);
26extern int rtnl_link_ip6_tnl_get_local(struct rtnl_link *link,
27 struct in6_addr *addr);
28
29extern int rtnl_link_ip6_tnl_set_remote(struct rtnl_link *link,
30 struct in6_addr *);
31extern int rtnl_link_ip6_tnl_get_remote(struct rtnl_link *link,
32 struct in6_addr *);
33
34extern int rtnl_link_ip6_tnl_set_ttl(struct rtnl_link *link, uint8_t ttl);
35extern uint8_t rtnl_link_ip6_tnl_get_ttl(struct rtnl_link *link);
36
37extern int rtnl_link_ip6_tnl_set_tos(struct rtnl_link *link, uint8_t tos);
38extern uint8_t rtnl_link_ip6_tnl_get_tos(struct rtnl_link *link);
39
40extern int rtnl_link_ip6_tnl_set_encaplimit(struct rtnl_link *link,
41 uint8_t encap_limit);
42extern uint8_t rtnl_link_ip6_tnl_get_encaplimit(struct rtnl_link *link);
43
44extern int rtnl_link_ip6_tnl_set_flags(struct rtnl_link *link, uint32_t flags);
45extern uint32_t rtnl_link_ip6_tnl_get_flags(struct rtnl_link *link);
46
47extern uint32_t rtnl_link_ip6_tnl_get_flowinfo(struct rtnl_link *link);
48extern int rtnl_link_ip6_tnl_set_flowinfo(struct rtnl_link *link,
49 uint32_t flowinfo);
50
51extern int rtnl_link_ip6_tnl_set_proto(struct rtnl_link *link, uint8_t proto);
52extern uint8_t rtnl_link_ip6_tnl_get_proto(struct rtnl_link *link);
53
54extern int rtnl_link_ip6_tnl_set_fwmark(struct rtnl_link *link,
55 uint32_t fwmark);
56extern int rtnl_link_ip6_tnl_get_fwmark(struct rtnl_link *link,
57 uint32_t *fwmark);
58
60 int enable);
62 int *enable);
63
64#ifdef __cplusplus
65}
66#endif
67
68#endif
int rtnl_link_ip6_tnl_set_remote(struct rtnl_link *link, struct in6_addr *)
Set IP6_TNL tunnel remote address.
Definition ip6tnl.c:484
uint8_t rtnl_link_ip6_tnl_get_proto(struct rtnl_link *link)
Get IP6_TNL proto.
Definition ip6tnl.c:754
uint32_t rtnl_link_ip6_tnl_get_flowinfo(struct rtnl_link *link)
Get IP6_TNL flowinfo.
Definition ip6tnl.c:641
int rtnl_link_is_ip6_tnl(struct rtnl_link *link)
Check if link is a IP6_TNL link.
Definition ip6tnl.c:376
int rtnl_link_ip6_tnl_set_link(struct rtnl_link *link, uint32_t index)
Set IP6_TNL tunnel interface index.
Definition ip6tnl.c:414
int rtnl_link_ip6_tnl_add(struct nl_sock *sk, const char *name)
Create a new ip6_tnl tunnel device.
Definition ip6tnl.c:389
uint8_t rtnl_link_ip6_tnl_get_ttl(struct rtnl_link *link)
Get IP6_TNL tunnel ttl.
Definition ip6tnl.c:538
int rtnl_link_ip6_tnl_get_remote(struct rtnl_link *link, struct in6_addr *)
Get IP6_TNL tunnel remote address.
Definition ip6tnl.c:502
uint32_t rtnl_link_ip6_tnl_get_flags(struct rtnl_link *link)
Get IP6_TNL path flags.
Definition ip6tnl.c:675
int rtnl_link_ip6_tnl_get_collect_metadata(struct rtnl_link *link, int *enable)
Get IP6_TNL collect-metadata flag.
Definition ip6tnl.c:715
int rtnl_link_ip6_tnl_set_fwmark(struct rtnl_link *link, uint32_t fwmark)
Set IP6_TNL tunnel fwmark.
Definition ip6tnl.c:770
uint8_t rtnl_link_ip6_tnl_get_encaplimit(struct rtnl_link *link)
Get IP6_TNL encaplimit.
Definition ip6tnl.c:607
int rtnl_link_ip6_tnl_set_flags(struct rtnl_link *link, uint32_t flags)
Set IP6_TNL tunnel flags.
Definition ip6tnl.c:657
int rtnl_link_ip6_tnl_set_local(struct rtnl_link *link, struct in6_addr *)
Set IP6_TNL tunnel local address.
Definition ip6tnl.c:448
int rtnl_link_ip6_tnl_set_ttl(struct rtnl_link *link, uint8_t ttl)
Set IP6_TNL tunnel ttl.
Definition ip6tnl.c:520
int rtnl_link_ip6_tnl_set_flowinfo(struct rtnl_link *link, uint32_t flowinfo)
Set IP6_TNL tunnel flowinfo.
Definition ip6tnl.c:623
int rtnl_link_ip6_tnl_get_local(struct rtnl_link *link, struct in6_addr *addr)
Get IP6_TNL tunnel local address.
Definition ip6tnl.c:466
int rtnl_link_ip6_tnl_set_tos(struct rtnl_link *link, uint8_t tos)
Set IP6_TNL tunnel tos.
Definition ip6tnl.c:554
int rtnl_link_ip6_tnl_set_proto(struct rtnl_link *link, uint8_t proto)
Set IP6_TNL tunnel proto.
Definition ip6tnl.c:736
int rtnl_link_ip6_tnl_get_fwmark(struct rtnl_link *link, uint32_t *fwmark)
Get IP6_TNL tunnel fwmark.
Definition ip6tnl.c:789
int rtnl_link_ip6_tnl_set_encaplimit(struct rtnl_link *link, uint8_t encap_limit)
Set IP6_TNL tunnel encap limit.
Definition ip6tnl.c:588
uint32_t rtnl_link_ip6_tnl_get_link(struct rtnl_link *link)
Get IP6_TNL tunnel interface index.
Definition ip6tnl.c:432
uint8_t rtnl_link_ip6_tnl_get_tos(struct rtnl_link *link)
Get IP6_TNL tunnel tos.
Definition ip6tnl.c:572
int rtnl_link_ip6_tnl_set_collect_metadata(struct rtnl_link *link, int enable)
Set IP6_TNL collect-metadata flag.
Definition ip6tnl.c:693