libnl 3.7.0
ip6gre.h
1/* SPDX-License-Identifier: LGPL-2.1-only */
2
3#ifndef NETLINK_LINK_IP6GRE_H_
4#define NETLINK_LINK_IP6GRE_H_
5
6#include <netlink/netlink.h>
7#include <netlink/route/link.h>
8
9#ifdef __cplusplus
10extern "C" {
11#endif
12
13 extern int rtnl_link_is_ip6gre(struct rtnl_link *link);
14
15 extern struct rtnl_link *rtnl_link_ip6gre_alloc(void);
16 extern int rtnl_link_ip6gre_add(struct nl_sock *sk, const char *name);
17
18 extern int rtnl_link_ip6gre_set_link(struct rtnl_link *link, uint32_t index);
19 extern int rtnl_link_ip6gre_get_link(struct rtnl_link *link, uint32_t *index);
20
21 extern int rtnl_link_ip6gre_set_iflags(struct rtnl_link *link, uint16_t iflags);
22 extern int rtnl_link_ip6gre_get_iflags(struct rtnl_link *link, uint16_t *iflags);
23
24 extern int rtnl_link_ip6gre_set_oflags(struct rtnl_link *link, uint16_t oflags);
25 extern int rtnl_link_ip6gre_get_oflags(struct rtnl_link *link, uint16_t *oflags);
26
27 extern int rtnl_link_ip6gre_set_ikey(struct rtnl_link *link, uint32_t ikey);
28 extern int rtnl_link_ip6gre_get_ikey(struct rtnl_link *link, uint32_t *ikey);
29
30 extern int rtnl_link_ip6gre_set_okey(struct rtnl_link *link, uint32_t okey);
31 extern int rtnl_link_ip6gre_get_okey(struct rtnl_link *link, uint32_t *okey);
32
33 extern int rtnl_link_ip6gre_set_local(struct rtnl_link *link, struct in6_addr *local);
34 extern int rtnl_link_ip6gre_get_local(struct rtnl_link *link, struct in6_addr *local);
35
36 extern int rtnl_link_ip6gre_set_remote(struct rtnl_link *link, struct in6_addr *remote);
37 extern int rtnl_link_ip6gre_get_remote(struct rtnl_link *link, struct in6_addr *remote);
38
39 extern int rtnl_link_ip6gre_set_ttl(struct rtnl_link *link, uint8_t ttl);
40 extern int rtnl_link_ip6gre_get_ttl(struct rtnl_link *link, uint8_t *ttl);
41
42 extern int rtnl_link_ip6gre_set_encaplimit(struct rtnl_link *link, uint8_t encaplimit);
43 extern int rtnl_link_ip6gre_get_encaplimit(struct rtnl_link *link, uint8_t *encaplimit);
44
45 extern int rtnl_link_ip6gre_set_flowinfo(struct rtnl_link *link, uint32_t flowinfo);
46 extern int rtnl_link_ip6gre_get_flowinfo(struct rtnl_link *link, uint32_t *flowinfo);
47
48 extern int rtnl_link_ip6gre_set_flags(struct rtnl_link *link, uint32_t flags);
49 extern int rtnl_link_ip6gre_get_flags(struct rtnl_link *link, uint32_t *flags);
50
51 extern int rtnl_link_ip6gre_set_fwmark(struct rtnl_link *link, uint32_t fwmark);
52 extern int rtnl_link_ip6gre_get_fwmark(struct rtnl_link *link, uint32_t *fwmark);
53
54#ifdef __cplusplus
55}
56#endif
57
58#endif
int rtnl_link_ip6gre_set_fwmark(struct rtnl_link *link, uint32_t fwmark)
Set IP6GRE tunnel fwmark.
Definition: ip6gre.c:846
int rtnl_link_ip6gre_set_flags(struct rtnl_link *link, uint32_t flags)
Set IP6GRE tunnel flags.
Definition: ip6gre.c:807
int rtnl_link_ip6gre_set_remote(struct rtnl_link *link, struct in6_addr *remote)
Set IP6GRE tunnel remote address.
Definition: ip6gre.c:651
int rtnl_link_ip6gre_set_ttl(struct rtnl_link *link, uint8_t ttl)
Set IP6GRE tunnel ttl.
Definition: ip6gre.c:690
int rtnl_link_ip6gre_get_oflags(struct rtnl_link *link, uint16_t *oflags)
Get IP6GRE tunnel oflags.
Definition: ip6gre.c:514
int rtnl_link_ip6gre_set_okey(struct rtnl_link *link, uint32_t okey)
Set IP6GRE tunnel set okey.
Definition: ip6gre.c:573
int rtnl_link_ip6gre_get_ttl(struct rtnl_link *link, uint8_t *ttl)
Set IP6GRE tunnel ttl.
Definition: ip6gre.c:709
int rtnl_link_ip6gre_set_iflags(struct rtnl_link *link, uint16_t iflags)
Set IP6GRE tunnel set iflags.
Definition: ip6gre.c:456
int rtnl_link_ip6gre_get_fwmark(struct rtnl_link *link, uint32_t *fwmark)
Get IP6GRE tunnel fwmark.
Definition: ip6gre.c:865
int rtnl_link_ip6gre_set_link(struct rtnl_link *link, uint32_t index)
Set IP6GRE tunnel interface index.
Definition: ip6gre.c:417
int rtnl_link_ip6gre_get_ikey(struct rtnl_link *link, uint32_t *ikey)
Get IP6GRE tunnel ikey.
Definition: ip6gre.c:553
int rtnl_link_ip6gre_get_iflags(struct rtnl_link *link, uint16_t *iflags)
Get IP6GRE tunnel iflags.
Definition: ip6gre.c:475
int rtnl_link_ip6gre_get_flowinfo(struct rtnl_link *link, uint32_t *flowinfo)
Get IP6GRE flowinfo.
Definition: ip6gre.c:787
int rtnl_link_ip6gre_set_flowinfo(struct rtnl_link *link, uint32_t flowinfo)
Set IP6GRE tunnel flowinfo.
Definition: ip6gre.c:768
int rtnl_link_ip6gre_set_encaplimit(struct rtnl_link *link, uint8_t encaplimit)
Set IP6GRE tunnel encap limit.
Definition: ip6gre.c:729
int rtnl_link_ip6gre_get_flags(struct rtnl_link *link, uint32_t *flags)
Get IP6GRE flags.
Definition: ip6gre.c:826
int rtnl_link_ip6gre_set_ikey(struct rtnl_link *link, uint32_t ikey)
Set IP6GRE tunnel set ikey.
Definition: ip6gre.c:534
int rtnl_link_ip6gre_set_local(struct rtnl_link *link, struct in6_addr *local)
Set IP6GRE tunnel local address.
Definition: ip6gre.c:612
int rtnl_link_ip6gre_get_link(struct rtnl_link *link, uint32_t *index)
Get IP6GRE tunnel interface index.
Definition: ip6gre.c:436
int rtnl_link_ip6gre_add(struct nl_sock *sk, const char *name)
Create a new IP6GRE tunnel device.
Definition: ip6gre.c:392
int rtnl_link_ip6gre_get_local(struct rtnl_link *link, struct in6_addr *local)
Get IP6GRE tunnel local address.
Definition: ip6gre.c:631
int rtnl_link_ip6gre_get_okey(struct rtnl_link *link, uint32_t *okey)
Get IP6GRE tunnel okey.
Definition: ip6gre.c:592
int rtnl_link_ip6gre_set_oflags(struct rtnl_link *link, uint16_t oflags)
Set IP6GRE tunnel set oflags.
Definition: ip6gre.c:495
int rtnl_link_ip6gre_get_encaplimit(struct rtnl_link *link, uint8_t *encaplimit)
Get IP6GRE tunnel encap limit.
Definition: ip6gre.c:748
int rtnl_link_is_ip6gre(struct rtnl_link *link)
Check if link is a IP6GRE link.
Definition: ip6gre.c:379
int rtnl_link_ip6gre_get_remote(struct rtnl_link *link, struct in6_addr *remote)
Get IP6GRE tunnel remote address.
Definition: ip6gre.c:670