libnl
3.2.7
Main Page
Related Pages
Modules
Data Structures
link.h
1
/*
2
* netlink/route/link.h Links (Interfaces)
3
*
4
* This library is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU Lesser General Public
6
* License as published by the Free Software Foundation version 2.1
7
* of the License.
8
*
9
* Copyright (c) 2003-2011 Thomas Graf <tgraf@suug.ch>
10
*/
11
12
#ifndef NETLINK_LINK_H_
13
#define NETLINK_LINK_H_
14
15
#include <netlink/netlink.h>
16
#include <netlink/cache.h>
17
#include <netlink/addr.h>
18
#include <linux/if.h>
19
20
#ifdef __cplusplus
21
extern
"C"
{
22
#endif
23
24
/**
25
* @struct rtnl_link link.h "netlink/route/link.h"
26
* @brief Link object
27
* @implements nl_object
28
* @ingroup link
29
*
30
* @copydoc private_struct
31
*/
32
struct
rtnl_link
;
33
34
/**
35
* @ingroup link
36
*/
37
typedef
enum
{
38
RTNL_LINK_RX_PACKETS
,
/*!< Packets received */
39
RTNL_LINK_TX_PACKETS
,
/*!< Packets sent */
40
RTNL_LINK_RX_BYTES
,
/*!< Bytes received */
41
RTNL_LINK_TX_BYTES
,
/*!< Bytes sent */
42
RTNL_LINK_RX_ERRORS
,
/*!< Receive errors */
43
RTNL_LINK_TX_ERRORS
,
/*!< Send errors */
44
RTNL_LINK_RX_DROPPED
,
/*!< Received packets dropped */
45
RTNL_LINK_TX_DROPPED
,
/*!< Packets dropped during transmit */
46
RTNL_LINK_RX_COMPRESSED
,
/*!< Compressed packets received */
47
RTNL_LINK_TX_COMPRESSED
,
/*!< Compressed packets sent */
48
RTNL_LINK_RX_FIFO_ERR
,
/*!< Receive FIFO errors */
49
RTNL_LINK_TX_FIFO_ERR
,
/*!< Send FIFO errors */
50
RTNL_LINK_RX_LEN_ERR
,
/*!< Length errors */
51
RTNL_LINK_RX_OVER_ERR
,
/*!< Over errors */
52
RTNL_LINK_RX_CRC_ERR
,
/*!< CRC errors */
53
RTNL_LINK_RX_FRAME_ERR
,
/*!< Frame errors */
54
RTNL_LINK_RX_MISSED_ERR
,
/*!< Missed errors */
55
RTNL_LINK_TX_ABORT_ERR
,
/*!< Aborted errors */
56
RTNL_LINK_TX_CARRIER_ERR
,
/*!< Carrier errors */
57
RTNL_LINK_TX_HBEAT_ERR
,
/*!< Heartbeat errors */
58
RTNL_LINK_TX_WIN_ERR
,
/*!< Window errors */
59
RTNL_LINK_COLLISIONS
,
/*!< Send collisions */
60
RTNL_LINK_MULTICAST
,
/*!< Multicast */
61
RTNL_LINK_IP6_INPKTS
,
/*!< IPv6 SNMP InReceives */
62
RTNL_LINK_IP6_INHDRERRORS
,
/*!< IPv6 SNMP InHdrErrors */
63
RTNL_LINK_IP6_INTOOBIGERRORS
,
/*!< IPv6 SNMP InTooBigErrors */
64
RTNL_LINK_IP6_INNOROUTES
,
/*!< IPv6 SNMP InNoRoutes */
65
RTNL_LINK_IP6_INADDRERRORS
,
/*!< IPv6 SNMP InAddrErrors */
66
RTNL_LINK_IP6_INUNKNOWNPROTOS
,
/*!< IPv6 SNMP InUnknownProtos */
67
RTNL_LINK_IP6_INTRUNCATEDPKTS
,
/*!< IPv6 SNMP InTruncatedPkts */
68
RTNL_LINK_IP6_INDISCARDS
,
/*!< IPv6 SNMP InDiscards */
69
RTNL_LINK_IP6_INDELIVERS
,
/*!< IPv6 SNMP InDelivers */
70
RTNL_LINK_IP6_OUTFORWDATAGRAMS
,
/*!< IPv6 SNMP OutForwDatagrams */
71
RTNL_LINK_IP6_OUTPKTS
,
/*!< IPv6 SNMP OutRequests */
72
RTNL_LINK_IP6_OUTDISCARDS
,
/*!< IPv6 SNMP OutDiscards */
73
RTNL_LINK_IP6_OUTNOROUTES
,
/*!< IPv6 SNMP OutNoRoutes */
74
RTNL_LINK_IP6_REASMTIMEOUT
,
/*!< IPv6 SNMP ReasmTimeout */
75
RTNL_LINK_IP6_REASMREQDS
,
/*!< IPv6 SNMP ReasmReqds */
76
RTNL_LINK_IP6_REASMOKS
,
/*!< IPv6 SNMP ReasmOKs */
77
RTNL_LINK_IP6_REASMFAILS
,
/*!< IPv6 SNMP ReasmFails */
78
RTNL_LINK_IP6_FRAGOKS
,
/*!< IPv6 SNMP FragOKs */
79
RTNL_LINK_IP6_FRAGFAILS
,
/*!< IPv6 SNMP FragFails */
80
RTNL_LINK_IP6_FRAGCREATES
,
/*!< IPv6 SNMP FragCreates */
81
RTNL_LINK_IP6_INMCASTPKTS
,
/*!< IPv6 SNMP InMcastPkts */
82
RTNL_LINK_IP6_OUTMCASTPKTS
,
/*!< IPv6 SNMP OutMcastPkts */
83
RTNL_LINK_IP6_INBCASTPKTS
,
/*!< IPv6 SNMP InBcastPkts */
84
RTNL_LINK_IP6_OUTBCASTPKTS
,
/*!< IPv6 SNMP OutBcastPkts */
85
RTNL_LINK_IP6_INOCTETS
,
/*!< IPv6 SNMP InOctets */
86
RTNL_LINK_IP6_OUTOCTETS
,
/*!< IPv6 SNMP OutOctets */
87
RTNL_LINK_IP6_INMCASTOCTETS
,
/*!< IPv6 SNMP InMcastOctets */
88
RTNL_LINK_IP6_OUTMCASTOCTETS
,
/*!< IPv6 SNMP OutMcastOctets */
89
RTNL_LINK_IP6_INBCASTOCTETS
,
/*!< IPv6 SNMP InBcastOctets */
90
RTNL_LINK_IP6_OUTBCASTOCTETS
,
/*!< IPv6 SNMP OutBcastOctets */
91
RTNL_LINK_ICMP6_INMSGS
,
/*!< ICMPv6 SNMP InMsgs */
92
RTNL_LINK_ICMP6_INERRORS
,
/*!< ICMPv6 SNMP InErrors */
93
RTNL_LINK_ICMP6_OUTMSGS
,
/*!< ICMPv6 SNMP OutMsgs */
94
RTNL_LINK_ICMP6_OUTERRORS
,
/*!< ICMPv6 SNMP OutErrors */
95
__RTNL_LINK_STATS_MAX,
96
}
rtnl_link_stat_id_t
;
97
98
#define RTNL_LINK_STATS_MAX (__RTNL_LINK_STATS_MAX - 1)
99
100
extern
struct
rtnl_link
*
rtnl_link_alloc
(
void
);
101
extern
void
rtnl_link_put
(
struct
rtnl_link
*);
102
extern
void
rtnl_link_free(
struct
rtnl_link
*);
103
104
extern
int
rtnl_link_alloc_cache
(
struct
nl_sock *,
int
,
struct
nl_cache **);
105
extern
struct
rtnl_link
*
rtnl_link_get
(
struct
nl_cache *,
int
);
106
extern
struct
rtnl_link
*
rtnl_link_get_by_name
(
struct
nl_cache *,
const
char
*);
107
108
109
extern
int
rtnl_link_build_add_request
(
struct
rtnl_link
*,
int
,
110
struct
nl_msg **);
111
extern
int
rtnl_link_add
(
struct
nl_sock *,
struct
rtnl_link
*,
int
);
112
extern
int
rtnl_link_build_change_request
(
struct
rtnl_link
*,
113
struct
rtnl_link
*,
int
,
114
struct
nl_msg **);
115
extern
int
rtnl_link_change
(
struct
nl_sock *,
struct
rtnl_link
*,
116
struct
rtnl_link
*,
int
);
117
118
extern
int
rtnl_link_build_delete_request
(
const
struct
rtnl_link
*,
119
struct
nl_msg **);
120
extern
int
rtnl_link_delete
(
struct
nl_sock *,
const
struct
rtnl_link
*);
121
extern
int
rtnl_link_build_get_request
(
int
,
const
char
*,
122
struct
nl_msg **);
123
extern
int
rtnl_link_get_kernel
(
struct
nl_sock *,
int
,
const
char
*,
124
struct
rtnl_link
**);
125
126
/* Name <-> Index Translations */
127
extern
char
*
rtnl_link_i2name
(
struct
nl_cache *,
int
,
char
*,
size_t
);
128
extern
int
rtnl_link_name2i
(
struct
nl_cache *,
const
char
*);
129
130
/* Name <-> Statistic Translations */
131
extern
char
* rtnl_link_stat2str(
int
,
char
*,
size_t
);
132
extern
int
rtnl_link_str2stat(
const
char
*);
133
134
/* Link Flags Translations */
135
extern
char
* rtnl_link_flags2str(
int
,
char
*,
size_t
);
136
extern
int
rtnl_link_str2flags(
const
char
*);
137
138
extern
char
* rtnl_link_operstate2str(uint8_t,
char
*,
size_t
);
139
extern
int
rtnl_link_str2operstate(
const
char
*);
140
141
extern
char
* rtnl_link_mode2str(uint8_t,
char
*,
size_t
);
142
extern
int
rtnl_link_str2mode(
const
char
*);
143
144
/* Access Functions */
145
extern
void
rtnl_link_set_qdisc
(
struct
rtnl_link
*,
const
char
*);
146
extern
char
*
rtnl_link_get_qdisc
(
struct
rtnl_link
*);
147
148
extern
void
rtnl_link_set_name
(
struct
rtnl_link
*,
const
char
*);
149
extern
char
*
rtnl_link_get_name
(
struct
rtnl_link
*);
150
151
extern
void
rtnl_link_set_flags
(
struct
rtnl_link
*,
unsigned
int
);
152
extern
void
rtnl_link_unset_flags
(
struct
rtnl_link
*,
unsigned
int
);
153
extern
unsigned
int
rtnl_link_get_flags
(
struct
rtnl_link
*);
154
155
extern
void
rtnl_link_set_mtu
(
struct
rtnl_link
*,
unsigned
int
);
156
extern
unsigned
int
rtnl_link_get_mtu
(
struct
rtnl_link
*);
157
158
extern
void
rtnl_link_set_txqlen
(
struct
rtnl_link
*,
unsigned
int
);
159
extern
unsigned
int
rtnl_link_get_txqlen
(
struct
rtnl_link
*);
160
161
extern
void
rtnl_link_set_ifindex
(
struct
rtnl_link
*,
int
);
162
extern
int
rtnl_link_get_ifindex
(
struct
rtnl_link
*);
163
164
extern
void
rtnl_link_set_family
(
struct
rtnl_link
*,
int
);
165
extern
int
rtnl_link_get_family
(
struct
rtnl_link
*);
166
167
extern
void
rtnl_link_set_arptype
(
struct
rtnl_link
*,
unsigned
int
);
168
extern
unsigned
int
rtnl_link_get_arptype
(
struct
rtnl_link
*);
169
170
extern
void
rtnl_link_set_addr
(
struct
rtnl_link
*,
struct
nl_addr *);
171
extern
struct
nl_addr *
rtnl_link_get_addr
(
struct
rtnl_link
*);
172
173
extern
void
rtnl_link_set_broadcast
(
struct
rtnl_link
*,
struct
nl_addr *);
174
extern
struct
nl_addr *
rtnl_link_get_broadcast
(
struct
rtnl_link
*);
175
176
extern
void
rtnl_link_set_link(
struct
rtnl_link
*,
int
);
177
extern
int
rtnl_link_get_link(
struct
rtnl_link
*);
178
179
extern
void
rtnl_link_set_master
(
struct
rtnl_link
*,
int
);
180
extern
int
rtnl_link_get_master
(
struct
rtnl_link
*);
181
182
extern
void
rtnl_link_set_operstate
(
struct
rtnl_link
*, uint8_t);
183
extern
uint8_t
rtnl_link_get_operstate
(
struct
rtnl_link
*);
184
185
extern
void
rtnl_link_set_linkmode
(
struct
rtnl_link
*, uint8_t);
186
extern
uint8_t
rtnl_link_get_linkmode
(
struct
rtnl_link
*);
187
188
extern
const
char
*
rtnl_link_get_ifalias
(
struct
rtnl_link
*);
189
extern
void
rtnl_link_set_ifalias
(
struct
rtnl_link
*,
const
char
*);
190
191
extern
int
rtnl_link_get_num_vf
(
struct
rtnl_link
*, uint32_t *);
192
193
extern
uint64_t
rtnl_link_get_stat
(
struct
rtnl_link
*,
rtnl_link_stat_id_t
);
194
extern
int
rtnl_link_set_stat
(
struct
rtnl_link
*,
rtnl_link_stat_id_t
,
195
const
uint64_t);
196
197
extern
int
rtnl_link_set_type
(
struct
rtnl_link
*,
const
char
*);
198
extern
char
*
rtnl_link_get_type
(
struct
rtnl_link
*);
199
200
extern
int
rtnl_link_enslave_ifindex
(
struct
nl_sock *,
int
,
int
);
201
extern
int
rtnl_link_enslave
(
struct
nl_sock *,
struct
rtnl_link
*,
202
struct
rtnl_link
*);
203
extern
int
rtnl_link_release_ifindex
(
struct
nl_sock *,
int
);
204
extern
int
rtnl_link_release
(
struct
nl_sock *,
struct
rtnl_link
*);
205
206
/* deprecated */
207
extern
int
rtnl_link_set_info_type
(
struct
rtnl_link
*,
const
char
*) __attribute__((deprecated));
208
extern
char
*
rtnl_link_get_info_type
(struct
rtnl_link
*) __attribute__((deprecated));
209
extern
void
rtnl_link_set_weight
(struct
rtnl_link
*,
unsigned
int
) __attribute__((deprecated));
210
extern
unsigned
int
rtnl_link_get_weight
(struct rtnl_link *) __attribute__((deprecated));
211
212
213
#ifdef __cplusplus
214
}
215
#endif
216
217
#endif
include
netlink
route
link.h
Generated on Mon Mar 24 2014 16:28:37 for libnl by
1.8.1.2