12 #ifndef NETLINK_LINK_H_
13 #define NETLINK_LINK_H_
15 #include <netlink/netlink.h>
16 #include <netlink/cache.h>
17 #include <netlink/addr.h>
34 RTNL_LINK_RX_COMPRESSED,
35 RTNL_LINK_TX_COMPRESSED,
36 RTNL_LINK_RX_FIFO_ERR,
37 RTNL_LINK_TX_FIFO_ERR,
39 RTNL_LINK_RX_OVER_ERR,
41 RTNL_LINK_RX_FRAME_ERR,
42 RTNL_LINK_RX_MISSED_ERR,
43 RTNL_LINK_TX_ABORT_ERR,
44 RTNL_LINK_TX_CARRIER_ERR,
45 RTNL_LINK_TX_HBEAT_ERR,
47 RTNL_LINK_TX_COLLISIONS,
49 __RTNL_LINK_STATS_MAX,
52 #define RTNL_LINK_STATS_MAX (__RTNL_LINK_STATS_MAX - 1)
58 #define RTNL_LINK_NOT_FOUND -1
61 extern struct rtnl_link * rtnl_link_alloc(
void);
62 extern void rtnl_link_put(
struct rtnl_link *);
63 extern void rtnl_link_free(
struct rtnl_link *);
67 extern struct rtnl_link *
rtnl_link_get(
struct nl_cache *,
int);
78 struct rtnl_link *,
int);
87 extern char * rtnl_link_stat2str(
int,
char *,
size_t);
88 extern int rtnl_link_str2stat(
const char *);
91 extern char * rtnl_link_flags2str(
int,
char *,
size_t);
92 extern int rtnl_link_str2flags(
const char *);
94 extern char * rtnl_link_operstate2str(
int,
char *,
size_t);
95 extern int rtnl_link_str2operstate(
const char *);
97 extern char * rtnl_link_mode2str(
int,
char *,
size_t);
98 extern int rtnl_link_str2mode(
const char *);
101 extern void rtnl_link_set_qdisc(
struct rtnl_link *,
103 extern char * rtnl_link_get_qdisc(
struct rtnl_link *);
105 extern void rtnl_link_set_name(
struct rtnl_link *,
107 extern char * rtnl_link_get_name(
struct rtnl_link *);
109 extern void rtnl_link_set_flags(
struct rtnl_link *,
111 extern void rtnl_link_unset_flags(
struct rtnl_link *,
113 extern unsigned int rtnl_link_get_flags(
struct rtnl_link *);
115 extern void rtnl_link_set_mtu(
struct rtnl_link *,
117 extern unsigned int rtnl_link_get_mtu(
struct rtnl_link *);
119 extern void rtnl_link_set_txqlen(
struct rtnl_link *,
121 extern unsigned int rtnl_link_get_txqlen(
struct rtnl_link *);
123 extern void rtnl_link_set_weight(
struct rtnl_link *,
125 extern unsigned int rtnl_link_get_weight(
struct rtnl_link *);
127 extern void rtnl_link_set_ifindex(
struct rtnl_link *,
int);
128 extern int rtnl_link_get_ifindex(
struct rtnl_link *);
130 extern void rtnl_link_set_family(
struct rtnl_link *,
int);
131 extern int rtnl_link_get_family(
struct rtnl_link *);
133 extern void rtnl_link_set_arptype(
struct rtnl_link *,
135 extern unsigned int rtnl_link_get_arptype(
struct rtnl_link *);
137 extern void rtnl_link_set_addr(
struct rtnl_link *,
139 extern struct nl_addr * rtnl_link_get_addr(
struct rtnl_link *);
141 extern void rtnl_link_set_broadcast(
struct rtnl_link *,
143 extern struct nl_addr * rtnl_link_get_broadcast(
struct rtnl_link *);
145 extern void rtnl_link_set_link(
struct rtnl_link *,
int);
146 extern int rtnl_link_get_link(
struct rtnl_link *);
148 extern void rtnl_link_set_master(
struct rtnl_link *,
int);
149 extern int rtnl_link_get_master(
struct rtnl_link *);
151 extern void rtnl_link_set_operstate(
struct rtnl_link *,
153 extern uint8_t rtnl_link_get_operstate(
struct rtnl_link *);
155 extern void rtnl_link_set_linkmode(
struct rtnl_link *,
157 extern uint8_t rtnl_link_get_linkmode(
struct rtnl_link *);
159 extern uint64_t rtnl_link_get_stat(
struct rtnl_link *,
int);
int rtnl_link_change(struct nl_handle *, struct rtnl_link *, struct rtnl_link *, int)
Change link attributes.
struct rtnl_link * rtnl_link_get_by_name(struct nl_cache *, const char *)
Look up link by link name in the provided cache.
int rtnl_link_set_info_type(struct rtnl_link *, const char *)
Specify the info type of a link.
struct rtnl_link * rtnl_link_get(struct nl_cache *, int)
Look up link by interface index in the provided cache.
struct nl_msg * rtnl_link_build_change_request(struct rtnl_link *, struct rtnl_link *, int)
Builds a netlink change request message to change link attributes.
char * rtnl_link_i2name(struct nl_cache *, int, char *, size_t)
Translate an interface index to the corresponding link name.
struct nl_cache * rtnl_link_alloc_cache(struct nl_handle *)
Allocate link cache and fill in all configured links.
int rtnl_link_name2i(struct nl_cache *, const char *)
Translate a link name to the corresponding interface index.
char * rtnl_link_get_info_type(struct rtnl_link *)
Return info type of a link.