1use crate as neli;
2
3use neli_proc_macros::neli_enum;
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 = "u8")]
31pub enum IfaF {
32 Secondary = libc::IFA_F_SECONDARY as u8,
33 Temporary = libc::IFA_F_TEMPORARY as u8,
34 Nodad = libc::IFA_F_NODAD as u8,
35 Optimistic = libc::IFA_F_OPTIMISTIC as u8,
36 Dadfailed = libc::IFA_F_DADFAILED as u8,
37 Homeaddress = libc::IFA_F_HOMEADDRESS as u8,
38 Deprecated = libc::IFA_F_DEPRECATED as u8,
39 Tentative = libc::IFA_F_TENTATIVE as u8,
40 Permanent = libc::IFA_F_PERMANENT as u8,
41}
42
43#[neli_enum(serialized_type = "libc::c_uchar")]
46pub enum Rtn {
47 Unspec = libc::RTN_UNSPEC,
48 Unicast = libc::RTN_UNICAST,
49 Local = libc::RTN_LOCAL,
50 Broadcast = libc::RTN_BROADCAST,
51 Anycast = libc::RTN_ANYCAST,
52 Multicast = libc::RTN_MULTICAST,
53 Blackhole = libc::RTN_BLACKHOLE,
54 Unreachable = libc::RTN_UNREACHABLE,
55 Prohibit = libc::RTN_PROHIBIT,
56 Throw = libc::RTN_THROW,
57 Nat = libc::RTN_NAT,
58 Xresolve = libc::RTN_XRESOLVE,
59}
60
61#[neli_enum(serialized_type = "libc::c_uchar")]
64pub enum Rtprot {
65 Unspec = libc::RTPROT_UNSPEC,
66 Redirect = libc::RTPROT_REDIRECT,
67 Kernel = libc::RTPROT_KERNEL,
68 Boot = libc::RTPROT_BOOT,
69 Static = libc::RTPROT_STATIC,
70}
71
72#[neli_enum(serialized_type = "libc::c_uchar")]
75pub enum RtScope {
76 Universe = libc::RT_SCOPE_UNIVERSE,
77 Site = libc::RT_SCOPE_SITE,
78 Link = libc::RT_SCOPE_LINK,
79 Host = libc::RT_SCOPE_HOST,
80 Nowhere = libc::RT_SCOPE_NOWHERE,
81}
82
83#[neli_enum(serialized_type = "libc::c_uchar")]
86pub enum RtTable {
87 Unspec = libc::RT_TABLE_UNSPEC,
88 Compat = libc::RT_TABLE_COMPAT,
89 Default = libc::RT_TABLE_DEFAULT,
90 Main = libc::RT_TABLE_MAIN,
91 Local = libc::RT_TABLE_LOCAL,
92}
93
94#[neli_enum(serialized_type = "libc::c_uint")]
97pub enum RtmF {
98 Notify = libc::RTM_F_NOTIFY,
99 Cloned = libc::RTM_F_CLONED,
100 Equalize = libc::RTM_F_EQUALIZE,
101 Prefix = libc::RTM_F_PREFIX,
102
103 #[cfg(target_env = "gnu")]
104 LookupTable = libc::RTM_F_LOOKUP_TABLE,
105 #[cfg(target_env = "gnu")]
106 FibMatch = libc::RTM_F_FIB_MATCH,
107}
108
109#[neli_enum(serialized_type = "u16")]
111pub enum Nud {
112 None = libc::NUD_NONE,
113 Incomplete = libc::NUD_INCOMPLETE,
114 Reachable = libc::NUD_REACHABLE,
115 Stale = libc::NUD_STALE,
116 Delay = libc::NUD_DELAY,
117 Probe = libc::NUD_PROBE,
118 Failed = libc::NUD_FAILED,
119 Noarp = libc::NUD_NOARP,
120 Permanent = libc::NUD_PERMANENT,
121}
122
123#[neli_enum(serialized_type = "u8")]
125pub enum Ntf {
126 Use = libc::NTF_USE,
127 Self_ = libc::NTF_SELF,
128 Master = libc::NTF_MASTER,
129 Proxy = libc::NTF_PROXY,
130 #[cfg(target_env = "gnu")]
131 ExtLearned = libc::NTF_EXT_LEARNED,
132 #[cfg(target_env = "gnu")]
133 Offloaded = libc::NTF_OFFLOADED,
134 Router = libc::NTF_ROUTER,
135}
136
137impl_trait!(
138 pub RtaType,
141 libc::c_ushort,
142 pub RtaTypeWrapper,
145 Ifla,
146 Ifa,
147 Rta,
148 Tca,
149 Nda,
150 IflaInfo
151);
152
153#[neli_enum(serialized_type = "libc::c_ushort")]
158pub enum Ifla {
159 Unspec = libc::IFLA_UNSPEC,
160 Address = libc::IFLA_ADDRESS,
161 Broadcast = libc::IFLA_BROADCAST,
162 Ifname = libc::IFLA_IFNAME,
163 Mtu = libc::IFLA_MTU,
164 Link = libc::IFLA_LINK,
165 Qdisc = libc::IFLA_QDISC,
166 Stats = libc::IFLA_STATS,
167 Cost = libc::IFLA_COST,
168 Priority = libc::IFLA_PRIORITY,
169 Master = libc::IFLA_MASTER,
170 Wireless = libc::IFLA_WIRELESS,
171 Protinfo = libc::IFLA_PROTINFO,
172 Txqlen = libc::IFLA_TXQLEN,
173 Map = libc::IFLA_MAP,
174 Weight = libc::IFLA_WEIGHT,
175 Operstate = libc::IFLA_OPERSTATE,
176 Linkmode = libc::IFLA_LINKMODE,
177 Linkinfo = libc::IFLA_LINKINFO,
178 NetNsPid = libc::IFLA_NET_NS_PID,
179 Ifalias = libc::IFLA_IFALIAS,
180 NumVf = libc::IFLA_NUM_VF,
181 VfinfoList = libc::IFLA_VFINFO_LIST,
182 Stats64 = libc::IFLA_STATS64,
183 VfPorts = libc::IFLA_VF_PORTS,
184 PortSelf = libc::IFLA_PORT_SELF,
185 AfSpec = libc::IFLA_AF_SPEC,
186 Group = libc::IFLA_GROUP,
187 NetNsFd = libc::IFLA_NET_NS_FD,
188 ExtMask = libc::IFLA_EXT_MASK,
189 Promiscuity = libc::IFLA_PROMISCUITY,
190 NumTxQueues = libc::IFLA_NUM_TX_QUEUES,
191 NumRxQueues = libc::IFLA_NUM_RX_QUEUES,
192 Carrier = libc::IFLA_CARRIER,
193 PhysPortId = libc::IFLA_PHYS_PORT_ID,
194 CarrierChanges = libc::IFLA_CARRIER_CHANGES,
195 PhysSwitchId = libc::IFLA_PHYS_SWITCH_ID,
196 LinkNetnsid = libc::IFLA_LINK_NETNSID,
197 PhysPortName = libc::IFLA_PHYS_PORT_NAME,
198 ProtoDown = libc::IFLA_PROTO_DOWN,
199 GsoMaxSegs = libc::IFLA_GSO_MAX_SEGS,
200 GsoMaxSize = libc::IFLA_GSO_MAX_SIZE,
201 Pad = libc::IFLA_PAD,
202 Xdp = libc::IFLA_XDP,
203 Event = libc::IFLA_EVENT,
204 NewNetnsid = libc::IFLA_NEW_NETNSID,
205 IfNetnsid = libc::IFLA_IF_NETNSID,
206 CarrierUpCount = libc::IFLA_CARRIER_UP_COUNT,
207 CarrierDownCount = libc::IFLA_CARRIER_DOWN_COUNT,
208 NewIfindex = libc::IFLA_NEW_IFINDEX,
209 MinMtu = libc::IFLA_MIN_MTU,
210 MaxMtu = libc::IFLA_MAX_MTU,
211 PropList = libc::IFLA_PROP_LIST,
212 AltIfname = libc::IFLA_ALT_IFNAME,
213 PermAddress = libc::IFLA_PERM_ADDRESS,
214 ProtoDownReason = libc::IFLA_PROTO_DOWN_REASON,
215}
216
217#[neli_enum(serialized_type = "libc::c_ushort")]
221pub enum IflaInfo {
222 Unspec = libc::IFLA_INFO_UNSPEC,
223 Kind = libc::IFLA_INFO_KIND,
224 Data = libc::IFLA_INFO_DATA,
225 Xstats = libc::IFLA_INFO_XSTATS,
226 SlaveKind = libc::IFLA_INFO_SLAVE_KIND,
227 SlaveData = libc::IFLA_INFO_SLAVE_DATA,
228}
229
230#[neli_enum(serialized_type = "libc::c_ushort")]
235pub enum Ifa {
236 Unspec = libc::IFA_UNSPEC,
237 Address = libc::IFA_ADDRESS,
238 Local = libc::IFA_LOCAL,
239 Label = libc::IFA_LABEL,
240 Broadcast = libc::IFA_BROADCAST,
241 Anycast = libc::IFA_ANYCAST,
242 Cacheinfo = libc::IFA_CACHEINFO,
243 Multicast = libc::IFA_MULTICAST,
244 #[cfg(target_env = "gnu")]
245 Flags = libc::IFA_FLAGS,
246}
247
248#[neli_enum(serialized_type = "libc::c_ushort")]
253pub enum Rta {
254 Unspec = libc::RTA_UNSPEC,
255 Dst = libc::RTA_DST,
256 Src = libc::RTA_SRC,
257 Iif = libc::RTA_IIF,
258 Oif = libc::RTA_OIF,
259 Gateway = libc::RTA_GATEWAY,
260 Priority = libc::RTA_PRIORITY,
261 Prefsrc = libc::RTA_PREFSRC,
262 Metrics = libc::RTA_METRICS,
263 Multipath = libc::RTA_MULTIPATH,
264 Protoinfo = libc::RTA_PROTOINFO, Flow = libc::RTA_FLOW,
266 Cacheinfo = libc::RTA_CACHEINFO,
267 Session = libc::RTA_SESSION, MpAlgo = libc::RTA_MP_ALGO, Table = libc::RTA_TABLE,
270 Mark = libc::RTA_MARK,
271 MfcStats = libc::RTA_MFC_STATS,
272 #[cfg(target_env = "gnu")]
273 Via = libc::RTA_VIA,
274 #[cfg(target_env = "gnu")]
275 Newdst = libc::RTA_NEWDST,
276 #[cfg(target_env = "gnu")]
277 Pref = libc::RTA_PREF,
278 #[cfg(target_env = "gnu")]
279 EncapType = libc::RTA_ENCAP_TYPE,
280 #[cfg(target_env = "gnu")]
281 Encap = libc::RTA_ENCAP,
282 #[cfg(target_env = "gnu")]
283 Expires = libc::RTA_EXPIRES,
284 #[cfg(target_env = "gnu")]
285 Pad = libc::RTA_PAD,
286 #[cfg(target_env = "gnu")]
287 Uid = libc::RTA_UID,
288 #[cfg(target_env = "gnu")]
289 TtlPropagate = libc::RTA_TTL_PROPAGATE,
290}
291
292#[neli_enum(serialized_type = "libc::c_ushort")]
297pub enum Tca {
298 Unspec = libc::TCA_UNSPEC,
299 Kind = libc::TCA_KIND,
300 Options = libc::TCA_OPTIONS,
301 Stats = libc::TCA_STATS,
302 Xstats = libc::TCA_XSTATS,
303 Rate = libc::TCA_RATE,
304 Fcnt = libc::TCA_FCNT,
305 Stats2 = libc::TCA_STATS2,
306 Stab = libc::TCA_STAB,
307}
308
309#[neli_enum(serialized_type = "libc::c_ushort")]
313pub enum Nda {
314 Unspec = libc::NDA_UNSPEC,
315 Dst = libc::NDA_DST,
316 Lladdr = libc::NDA_LLADDR,
317 Cacheinfo = libc::NDA_CACHEINFO,
318 Probes = libc::NDA_PROBES,
319 Vlan = libc::NDA_VLAN,
320 Port = libc::NDA_PORT,
321 Vni = libc::NDA_VNI,
322 Ifindex = libc::NDA_IFINDEX,
323 #[cfg(target_env = "gnu")]
324 Master = libc::NDA_MASTER,
325 #[cfg(target_env = "gnu")]
326 LinkNetnsid = libc::NDA_LINK_NETNSID,
327 #[cfg(target_env = "gnu")]
328 SrcVni = libc::NDA_SRC_VNI,
329}
330
331#[neli_enum(serialized_type = "libc::c_ushort")]
333pub enum Arphrd {
334 Netrom = libc::ARPHRD_NETROM,
335 Ether = libc::ARPHRD_ETHER,
336 Eether = libc::ARPHRD_EETHER,
337 AX25 = libc::ARPHRD_AX25,
338 Pronet = libc::ARPHRD_PRONET,
339 Chaos = libc::ARPHRD_CHAOS,
340 Ieee802 = libc::ARPHRD_IEEE802,
341 Arcnet = libc::ARPHRD_ARCNET,
342 Appletlk = libc::ARPHRD_APPLETLK,
343 Dlci = libc::ARPHRD_DLCI,
344 Atm = libc::ARPHRD_APPLETLK,
345 Metricom = libc::ARPHRD_METRICOM,
346 Ieee1394 = libc::ARPHRD_IEEE1394,
347 Eui64 = libc::ARPHRD_EUI64,
348 Infiniband = libc::ARPHRD_INFINIBAND,
349
350 Loopback = libc::ARPHRD_LOOPBACK,
351
352 Void = libc::ARPHRD_VOID,
354 None = libc::ARPHRD_NONE,
355}
356
357#[neli_enum(serialized_type = "libc::c_uint")]
360pub enum Iff {
361 Up = libc::IFF_UP as libc::c_uint,
362 Broadcast = libc::IFF_BROADCAST as libc::c_uint,
363 Debug = libc::IFF_DEBUG as libc::c_uint,
364 Loopback = libc::IFF_LOOPBACK as libc::c_uint,
365 Pointopoint = libc::IFF_POINTOPOINT as libc::c_uint,
366 Running = libc::IFF_RUNNING as libc::c_uint,
367 Noarp = libc::IFF_NOARP as libc::c_uint,
368 Promisc = libc::IFF_PROMISC as libc::c_uint,
369 Notrailers = libc::IFF_NOTRAILERS as libc::c_uint,
370 Allmulti = libc::IFF_ALLMULTI as libc::c_uint,
371 Master = libc::IFF_MASTER as libc::c_uint,
372 Slave = libc::IFF_SLAVE as libc::c_uint,
373 Multicast = libc::IFF_MULTICAST as libc::c_uint,
374 Portsel = libc::IFF_PORTSEL as libc::c_uint,
375 Automedia = libc::IFF_AUTOMEDIA as libc::c_uint,
376 Dynamic = libc::IFF_DYNAMIC as libc::c_uint,
377 LowerUp = libc::IFF_LOWER_UP as libc::c_uint,
378 Dormant = libc::IFF_DORMANT as libc::c_uint,
379 Echo = libc::IFF_ECHO as libc::c_uint,
380 }
382
383impl_flags!(
384 #[allow(missing_docs)]
385 pub IffFlags, Iff, libc::c_uint
386);
387
388impl_flags!(
389 #[allow(missing_docs)]
390 pub IfaFFlags, IfaF, libc::c_uchar
391);
392
393impl_flags!(
394 #[allow(missing_docs)]
395 pub RtmFFlags, RtmF, libc::c_uint
396);
397impl_flags!(
398 #[allow(missing_docs)]
399 pub NudFlags, Nud, u16
400);
401impl_flags!(
402 #[allow(missing_docs)]
403 pub NtfFlags, Ntf, u8
404);
405
406#[neli_enum(serialized_type = "u16")]
409pub enum Rtm {
410 Newlink = libc::RTM_NEWLINK,
411 Dellink = libc::RTM_DELLINK,
412 Getlink = libc::RTM_GETLINK,
413 Setlink = libc::RTM_SETLINK,
414 Newaddr = libc::RTM_NEWADDR,
415 Deladdr = libc::RTM_DELADDR,
416 Getaddr = libc::RTM_GETADDR,
417 Newroute = libc::RTM_NEWROUTE,
418 Delroute = libc::RTM_DELROUTE,
419 Getroute = libc::RTM_GETROUTE,
420 Newneigh = libc::RTM_NEWNEIGH,
421 Delneigh = libc::RTM_DELNEIGH,
422 Getneigh = libc::RTM_GETNEIGH,
423 Newrule = libc::RTM_NEWRULE,
424 Delrule = libc::RTM_DELRULE,
425 Getrule = libc::RTM_GETRULE,
426 Newqdisc = libc::RTM_NEWQDISC,
427 Delqdisc = libc::RTM_DELQDISC,
428 Getqdisc = libc::RTM_GETQDISC,
429 Newtclass = libc::RTM_NEWTCLASS,
430 Deltclass = libc::RTM_DELTCLASS,
431 Gettclass = libc::RTM_GETTCLASS,
432 Newtfilter = libc::RTM_NEWTFILTER,
433 Deltfilter = libc::RTM_DELTFILTER,
434 Gettfilter = libc::RTM_GETTFILTER,
435 Newaction = libc::RTM_NEWACTION,
436 Delaction = libc::RTM_DELACTION,
437 Getaction = libc::RTM_GETACTION,
438 Newprefix = libc::RTM_NEWPREFIX,
439 Getmulticast = libc::RTM_GETMULTICAST,
440 Getanycast = libc::RTM_GETANYCAST,
441 Newneightbl = libc::RTM_NEWNEIGHTBL,
442 Getneightbl = libc::RTM_GETNEIGHTBL,
443 Setneightbl = libc::RTM_SETNEIGHTBL,
444 Newnduseropt = libc::RTM_NEWNDUSEROPT,
445 Newaddrlabel = libc::RTM_NEWADDRLABEL,
446 Deladdrlabel = libc::RTM_DELADDRLABEL,
447 Getaddrlabel = libc::RTM_GETADDRLABEL,
448 Getdcb = libc::RTM_GETDCB,
449 Setdcb = libc::RTM_SETDCB,
450 Newnetconf = libc::RTM_NEWNETCONF,
451 Getnetconf = libc::RTM_GETNETCONF,
452 Newmdb = libc::RTM_NEWMDB,
453 Delmdb = libc::RTM_DELMDB,
454 Getmdb = libc::RTM_GETMDB,
455 Newnsid = libc::RTM_NEWNSID,
456 Delnsid = libc::RTM_DELNSID,
457 Getnsid = libc::RTM_GETNSID,
458}