1use neli_proc_macros::neli_enum;
2
3use crate as neli;
4
5#[neli_enum(serialized_type = "libc::c_uchar")]
7pub enum Af {
8 Inet = libc::AF_INET as libc::c_uchar,
9 Inet6 = libc::AF_INET6 as libc::c_uchar,
10}
11
12#[neli_enum(serialized_type = "u8")]
14pub enum RtAddrFamily {
15 Unspecified = libc::AF_UNSPEC as u8,
16 UnixOrLocal = libc::AF_UNIX as u8,
17 Inet = libc::AF_INET as u8,
18 Inet6 = libc::AF_INET6 as u8,
19 Ipx = libc::AF_IPX as u8,
20 Netlink = libc::AF_NETLINK as u8,
21 X25 = libc::AF_X25 as u8,
22 Ax25 = libc::AF_AX25 as u8,
23 Atmpvc = libc::AF_ATMPVC as u8,
24 Appletalk = libc::AF_APPLETALK as u8,
25 Packet = libc::AF_PACKET as u8,
26 Alg = libc::AF_ALG as u8,
27}
28
29#[neli_enum(serialized_type = "libc::c_uchar")]
32pub enum Rtn {
33 Unspec = libc::RTN_UNSPEC,
34 Unicast = libc::RTN_UNICAST,
35 Local = libc::RTN_LOCAL,
36 Broadcast = libc::RTN_BROADCAST,
37 Anycast = libc::RTN_ANYCAST,
38 Multicast = libc::RTN_MULTICAST,
39 Blackhole = libc::RTN_BLACKHOLE,
40 Unreachable = libc::RTN_UNREACHABLE,
41 Prohibit = libc::RTN_PROHIBIT,
42 Throw = libc::RTN_THROW,
43 Nat = libc::RTN_NAT,
44 Xresolve = libc::RTN_XRESOLVE,
45}
46
47#[neli_enum(serialized_type = "libc::c_uchar")]
50pub enum Rtprot {
51 Unspec = libc::RTPROT_UNSPEC,
52 Redirect = libc::RTPROT_REDIRECT,
53 Kernel = libc::RTPROT_KERNEL,
54 Boot = libc::RTPROT_BOOT,
55 Static = libc::RTPROT_STATIC,
56}
57
58#[neli_enum(serialized_type = "libc::c_uchar")]
61pub enum RtScope {
62 Universe = libc::RT_SCOPE_UNIVERSE,
63 Site = libc::RT_SCOPE_SITE,
64 Link = libc::RT_SCOPE_LINK,
65 Host = libc::RT_SCOPE_HOST,
66 Nowhere = libc::RT_SCOPE_NOWHERE,
67}
68
69#[neli_enum(serialized_type = "libc::c_uchar")]
72pub enum RtTable {
73 Unspec = libc::RT_TABLE_UNSPEC,
74 Compat = libc::RT_TABLE_COMPAT,
75 Default = libc::RT_TABLE_DEFAULT,
76 Main = libc::RT_TABLE_MAIN,
77 Local = libc::RT_TABLE_LOCAL,
78}
79
80impl_trait!(
81 pub RtaType,
84 libc::c_ushort,
85 pub RtaTypeWrapper,
88 Ifla,
89 Ifa,
90 Rta,
91 Tca,
92 Nda,
93 IflaInfo
94);
95
96#[neli_enum(serialized_type = "libc::c_ushort")]
101pub enum Ifla {
102 Unspec = libc::IFLA_UNSPEC,
103 Address = libc::IFLA_ADDRESS,
104 Broadcast = libc::IFLA_BROADCAST,
105 Ifname = libc::IFLA_IFNAME,
106 Mtu = libc::IFLA_MTU,
107 Link = libc::IFLA_LINK,
108 Qdisc = libc::IFLA_QDISC,
109 Stats = libc::IFLA_STATS,
110 Cost = libc::IFLA_COST,
111 Priority = libc::IFLA_PRIORITY,
112 Master = libc::IFLA_MASTER,
113 Wireless = libc::IFLA_WIRELESS,
114 Protinfo = libc::IFLA_PROTINFO,
115 Txqlen = libc::IFLA_TXQLEN,
116 Map = libc::IFLA_MAP,
117 Weight = libc::IFLA_WEIGHT,
118 Operstate = libc::IFLA_OPERSTATE,
119 Linkmode = libc::IFLA_LINKMODE,
120 Linkinfo = libc::IFLA_LINKINFO,
121 NetNsPid = libc::IFLA_NET_NS_PID,
122 Ifalias = libc::IFLA_IFALIAS,
123 NumVf = libc::IFLA_NUM_VF,
124 VfinfoList = libc::IFLA_VFINFO_LIST,
125 Stats64 = libc::IFLA_STATS64,
126 VfPorts = libc::IFLA_VF_PORTS,
127 PortSelf = libc::IFLA_PORT_SELF,
128 AfSpec = libc::IFLA_AF_SPEC,
129 Group = libc::IFLA_GROUP,
130 NetNsFd = libc::IFLA_NET_NS_FD,
131 ExtMask = libc::IFLA_EXT_MASK,
132 Promiscuity = libc::IFLA_PROMISCUITY,
133 NumTxQueues = libc::IFLA_NUM_TX_QUEUES,
134 NumRxQueues = libc::IFLA_NUM_RX_QUEUES,
135 Carrier = libc::IFLA_CARRIER,
136 PhysPortId = libc::IFLA_PHYS_PORT_ID,
137 CarrierChanges = libc::IFLA_CARRIER_CHANGES,
138 PhysSwitchId = libc::IFLA_PHYS_SWITCH_ID,
139 LinkNetnsid = libc::IFLA_LINK_NETNSID,
140 PhysPortName = libc::IFLA_PHYS_PORT_NAME,
141 ProtoDown = libc::IFLA_PROTO_DOWN,
142 GsoMaxSegs = libc::IFLA_GSO_MAX_SEGS,
143 GsoMaxSize = libc::IFLA_GSO_MAX_SIZE,
144 Pad = libc::IFLA_PAD,
145 Xdp = libc::IFLA_XDP,
146 Event = libc::IFLA_EVENT,
147 NewNetnsid = libc::IFLA_NEW_NETNSID,
148 IfNetnsid = libc::IFLA_IF_NETNSID,
149 CarrierUpCount = libc::IFLA_CARRIER_UP_COUNT,
150 CarrierDownCount = libc::IFLA_CARRIER_DOWN_COUNT,
151 NewIfindex = libc::IFLA_NEW_IFINDEX,
152 MinMtu = libc::IFLA_MIN_MTU,
153 MaxMtu = libc::IFLA_MAX_MTU,
154 PropList = libc::IFLA_PROP_LIST,
155 AltIfname = libc::IFLA_ALT_IFNAME,
156 PermAddress = libc::IFLA_PERM_ADDRESS,
157 ProtoDownReason = libc::IFLA_PROTO_DOWN_REASON,
158}
159
160#[neli_enum(serialized_type = "libc::c_ushort")]
164pub enum IflaInfo {
165 Unspec = libc::IFLA_INFO_UNSPEC,
166 Kind = libc::IFLA_INFO_KIND,
167 Data = libc::IFLA_INFO_DATA,
168 Xstats = libc::IFLA_INFO_XSTATS,
169 SlaveKind = libc::IFLA_INFO_SLAVE_KIND,
170 SlaveData = libc::IFLA_INFO_SLAVE_DATA,
171}
172
173#[neli_enum(serialized_type = "u16")]
176#[allow(missing_docs)]
177pub enum Rtm {
178 Newlink = libc::RTM_NEWLINK,
179 Dellink = libc::RTM_DELLINK,
180 Getlink = libc::RTM_GETLINK,
181 Setlink = libc::RTM_SETLINK,
182 Newaddr = libc::RTM_NEWADDR,
183 Deladdr = libc::RTM_DELADDR,
184 Getaddr = libc::RTM_GETADDR,
185 Newroute = libc::RTM_NEWROUTE,
186 Delroute = libc::RTM_DELROUTE,
187 Getroute = libc::RTM_GETROUTE,
188 Newneigh = libc::RTM_NEWNEIGH,
189 Delneigh = libc::RTM_DELNEIGH,
190 Getneigh = libc::RTM_GETNEIGH,
191 Newrule = libc::RTM_NEWRULE,
192 Delrule = libc::RTM_DELRULE,
193 Getrule = libc::RTM_GETRULE,
194 Newqdisc = libc::RTM_NEWQDISC,
195 Delqdisc = libc::RTM_DELQDISC,
196 Getqdisc = libc::RTM_GETQDISC,
197 Newtclass = libc::RTM_NEWTCLASS,
198 Deltclass = libc::RTM_DELTCLASS,
199 Gettclass = libc::RTM_GETTCLASS,
200 Newtfilter = libc::RTM_NEWTFILTER,
201 Deltfilter = libc::RTM_DELTFILTER,
202 Gettfilter = libc::RTM_GETTFILTER,
203 Newaction = libc::RTM_NEWACTION,
204 Delaction = libc::RTM_DELACTION,
205 Getaction = libc::RTM_GETACTION,
206 Newprefix = libc::RTM_NEWPREFIX,
207 Getmulticast = libc::RTM_GETMULTICAST,
208 Getanycast = libc::RTM_GETANYCAST,
209 Newneightbl = libc::RTM_NEWNEIGHTBL,
210 Getneightbl = libc::RTM_GETNEIGHTBL,
211 Setneightbl = libc::RTM_SETNEIGHTBL,
212 Newnduseropt = libc::RTM_NEWNDUSEROPT,
213 Newaddrlabel = libc::RTM_NEWADDRLABEL,
214 Deladdrlabel = libc::RTM_DELADDRLABEL,
215 Getaddrlabel = libc::RTM_GETADDRLABEL,
216 Getdcb = libc::RTM_GETDCB,
217 Setdcb = libc::RTM_SETDCB,
218 Newnetconf = libc::RTM_NEWNETCONF,
219 Getnetconf = libc::RTM_GETNETCONF,
220 Newmdb = libc::RTM_NEWMDB,
221 Delmdb = libc::RTM_DELMDB,
222 Getmdb = libc::RTM_GETMDB,
223 Newnsid = libc::RTM_NEWNSID,
224 Delnsid = libc::RTM_DELNSID,
225 Getnsid = libc::RTM_GETNSID,
226}
227
228#[neli_enum(serialized_type = "libc::c_ushort")]
233pub enum Rta {
234 Unspec = libc::RTA_UNSPEC,
235 Dst = libc::RTA_DST,
236 Src = libc::RTA_SRC,
237 Iif = libc::RTA_IIF,
238 Oif = libc::RTA_OIF,
239 Gateway = libc::RTA_GATEWAY,
240 Priority = libc::RTA_PRIORITY,
241 Prefsrc = libc::RTA_PREFSRC,
242 Metrics = libc::RTA_METRICS,
243 Multipath = libc::RTA_MULTIPATH,
244 Protoinfo = libc::RTA_PROTOINFO, Flow = libc::RTA_FLOW,
246 Cacheinfo = libc::RTA_CACHEINFO,
247 Session = libc::RTA_SESSION, MpAlgo = libc::RTA_MP_ALGO, Table = libc::RTA_TABLE,
250 Mark = libc::RTA_MARK,
251 MfcStats = libc::RTA_MFC_STATS,
252 #[cfg(target_env = "gnu")]
253 Via = libc::RTA_VIA,
254 #[cfg(target_env = "gnu")]
255 Newdst = libc::RTA_NEWDST,
256 #[cfg(target_env = "gnu")]
257 Pref = libc::RTA_PREF,
258 #[cfg(target_env = "gnu")]
259 EncapType = libc::RTA_ENCAP_TYPE,
260 #[cfg(target_env = "gnu")]
261 Encap = libc::RTA_ENCAP,
262 #[cfg(target_env = "gnu")]
263 Expires = libc::RTA_EXPIRES,
264 #[cfg(target_env = "gnu")]
265 Pad = libc::RTA_PAD,
266 #[cfg(target_env = "gnu")]
267 Uid = libc::RTA_UID,
268 #[cfg(target_env = "gnu")]
269 TtlPropagate = libc::RTA_TTL_PROPAGATE,
270}
271
272#[neli_enum(serialized_type = "libc::c_ushort")]
277pub enum Tca {
278 Unspec = libc::TCA_UNSPEC,
279 Kind = libc::TCA_KIND,
280 Options = libc::TCA_OPTIONS,
281 Stats = libc::TCA_STATS,
282 Xstats = libc::TCA_XSTATS,
283 Rate = libc::TCA_RATE,
284 Fcnt = libc::TCA_FCNT,
285 Stats2 = libc::TCA_STATS2,
286 Stab = libc::TCA_STAB,
287}
288
289#[neli_enum(serialized_type = "libc::c_ushort")]
293pub enum Nda {
294 Unspec = libc::NDA_UNSPEC,
295 Dst = libc::NDA_DST,
296 Lladdr = libc::NDA_LLADDR,
297 Cacheinfo = libc::NDA_CACHEINFO,
298 Probes = libc::NDA_PROBES,
299 Vlan = libc::NDA_VLAN,
300 Port = libc::NDA_PORT,
301 Vni = libc::NDA_VNI,
302 Ifindex = libc::NDA_IFINDEX,
303 #[cfg(target_env = "gnu")]
304 Master = libc::NDA_MASTER,
305 #[cfg(target_env = "gnu")]
306 LinkNetnsid = libc::NDA_LINK_NETNSID,
307 #[cfg(target_env = "gnu")]
308 SrcVni = libc::NDA_SRC_VNI,
309}
310
311#[neli_enum(serialized_type = "libc::c_ushort")]
313pub enum Arphrd {
314 Netrom = libc::ARPHRD_NETROM,
315 Ether = libc::ARPHRD_ETHER,
316 Eether = libc::ARPHRD_EETHER,
317 AX25 = libc::ARPHRD_AX25,
318 Pronet = libc::ARPHRD_PRONET,
319 Chaos = libc::ARPHRD_CHAOS,
320 Ieee802 = libc::ARPHRD_IEEE802,
321 Arcnet = libc::ARPHRD_ARCNET,
322 Appletlk = libc::ARPHRD_APPLETLK,
323 Dlci = libc::ARPHRD_DLCI,
324 Atm = libc::ARPHRD_APPLETLK,
325 Metricom = libc::ARPHRD_METRICOM,
326 Ieee1394 = libc::ARPHRD_IEEE1394,
327 Eui64 = libc::ARPHRD_EUI64,
328 Infiniband = libc::ARPHRD_INFINIBAND,
329
330 Loopback = libc::ARPHRD_LOOPBACK,
331
332 Void = libc::ARPHRD_VOID,
334 None = libc::ARPHRD_NONE,
335}
336
337#[allow(missing_docs)]
342#[neli_enum(serialized_type = "u16")]
343pub enum Ifa {
344 Unspec = libc::IFA_UNSPEC,
345 Address = libc::IFA_ADDRESS,
346 Local = libc::IFA_LOCAL,
347 Label = libc::IFA_LABEL,
348 Broadcast = libc::IFA_BROADCAST,
349 Anycast = libc::IFA_ANYCAST,
350 Cacheinfo = libc::IFA_CACHEINFO,
351 Multicast = libc::IFA_MULTICAST,
352 #[cfg(target_env = "gnu")]
353 Flags = libc::IFA_FLAGS,
354}
355
356impl_flags!(
357 pub Iff: libc::c_uint {
360 UP = libc::IFF_UP as libc::c_uint,
361 BROADCAST = libc::IFF_BROADCAST as libc::c_uint,
362 DEBUG = libc::IFF_DEBUG as libc::c_uint,
363 LOOPBACK = libc::IFF_LOOPBACK as libc::c_uint,
364 POINTOPOINT = libc::IFF_POINTOPOINT as libc::c_uint,
365 RUNNING = libc::IFF_RUNNING as libc::c_uint,
366 NOARP = libc::IFF_NOARP as libc::c_uint,
367 PROMISC = libc::IFF_PROMISC as libc::c_uint,
368 NOTRAILERS = libc::IFF_NOTRAILERS as libc::c_uint,
369 ALLMULTI = libc::IFF_ALLMULTI as libc::c_uint,
370 MASTER = libc::IFF_MASTER as libc::c_uint,
371 SLAVE = libc::IFF_SLAVE as libc::c_uint,
372 MULTICAST = libc::IFF_MULTICAST as libc::c_uint,
373 PORTSEL = libc::IFF_PORTSEL as libc::c_uint,
374 AUTOMEDIA = libc::IFF_AUTOMEDIA as libc::c_uint,
375 DYNAMIC = libc::IFF_DYNAMIC as libc::c_uint,
376 LOWERUP = libc::IFF_LOWER_UP as libc::c_uint,
377 DORMANT = libc::IFF_DORMANT as libc::c_uint,
378 ECHO = libc::IFF_ECHO as libc::c_uint,
379 }
381);
382
383impl_flags!(
384 pub IfaF: u8 {
386 SECONDARY = libc::IFA_F_SECONDARY as u8,
387 TEMPORARY = libc::IFA_F_TEMPORARY as u8,
388 NODAD = libc::IFA_F_NODAD as u8,
389 OPTIMISTIC = libc::IFA_F_OPTIMISTIC as u8,
390 DADFAILED = libc::IFA_F_DADFAILED as u8,
391 HOMEADDRESS = libc::IFA_F_HOMEADDRESS as u8,
392 DEPRECATED = libc::IFA_F_DEPRECATED as u8,
393 TENTATIVE = libc::IFA_F_TENTATIVE as u8,
394 PERMANENT = libc::IFA_F_PERMANENT as u8,
395 }
396);
397
398impl_flags!(
399 pub RtmF: libc::c_uint {
402 NOTIFY = libc::RTM_F_NOTIFY,
403 CLONED = libc::RTM_F_CLONED,
404 EQUALIZE = libc::RTM_F_EQUALIZE,
405 PREFIX = libc::RTM_F_PREFIX,
406
407 #[cfg(target_env = "gnu")]
408 LOOKUPTABLE = libc::RTM_F_LOOKUP_TABLE,
409 #[cfg(target_env = "gnu")]
410 FIBMATCH = libc::RTM_F_FIB_MATCH,
411 }
412);
413
414impl_flags!(
415 #[allow(missing_docs)]
417 pub Nud: u16 {
418 NONE = libc::NUD_NONE,
419 INCOMPLETE = libc::NUD_INCOMPLETE,
420 REACHABLE = libc::NUD_REACHABLE,
421 STALE = libc::NUD_STALE,
422 DELAY = libc::NUD_DELAY,
423 PROBE = libc::NUD_PROBE,
424 FAILED = libc::NUD_FAILED,
425 NOARP = libc::NUD_NOARP,
426 PERMANENT = libc::NUD_PERMANENT,
427 }
428);
429
430impl_flags!(
431 #[allow(missing_docs)]
433 pub Ntf: u8 {
434 USE = libc::NTF_USE,
435 SELF = libc::NTF_SELF,
436 MASTER = libc::NTF_MASTER,
437 PROXY = libc::NTF_PROXY,
438 #[cfg(target_env = "gnu")]
439 EXT_LEARNED = libc::NTF_EXT_LEARNED,
440 #[cfg(target_env = "gnu")]
441 OFFLOADED = libc::NTF_OFFLOADED,
442 ROUTER = libc::NTF_ROUTER,
443 }
444);