1package nl
2
3import (
4	"unsafe"
5)
6
7const (
8	DEFAULT_CHANGE = 0xFFFFFFFF
9)
10
11const (
12	IFLA_INFO_UNSPEC = iota
13	IFLA_INFO_KIND
14	IFLA_INFO_DATA
15	IFLA_INFO_XSTATS
16	IFLA_INFO_MAX = IFLA_INFO_XSTATS
17)
18
19const (
20	IFLA_VLAN_UNSPEC = iota
21	IFLA_VLAN_ID
22	IFLA_VLAN_FLAGS
23	IFLA_VLAN_EGRESS_QOS
24	IFLA_VLAN_INGRESS_QOS
25	IFLA_VLAN_PROTOCOL
26	IFLA_VLAN_MAX = IFLA_VLAN_PROTOCOL
27)
28
29const (
30	VETH_INFO_UNSPEC = iota
31	VETH_INFO_PEER
32	VETH_INFO_MAX = VETH_INFO_PEER
33)
34
35const (
36	IFLA_VXLAN_UNSPEC = iota
37	IFLA_VXLAN_ID
38	IFLA_VXLAN_GROUP
39	IFLA_VXLAN_LINK
40	IFLA_VXLAN_LOCAL
41	IFLA_VXLAN_TTL
42	IFLA_VXLAN_TOS
43	IFLA_VXLAN_LEARNING
44	IFLA_VXLAN_AGEING
45	IFLA_VXLAN_LIMIT
46	IFLA_VXLAN_PORT_RANGE
47	IFLA_VXLAN_PROXY
48	IFLA_VXLAN_RSC
49	IFLA_VXLAN_L2MISS
50	IFLA_VXLAN_L3MISS
51	IFLA_VXLAN_PORT
52	IFLA_VXLAN_GROUP6
53	IFLA_VXLAN_LOCAL6
54	IFLA_VXLAN_UDP_CSUM
55	IFLA_VXLAN_UDP_ZERO_CSUM6_TX
56	IFLA_VXLAN_UDP_ZERO_CSUM6_RX
57	IFLA_VXLAN_REMCSUM_TX
58	IFLA_VXLAN_REMCSUM_RX
59	IFLA_VXLAN_GBP
60	IFLA_VXLAN_REMCSUM_NOPARTIAL
61	IFLA_VXLAN_FLOWBASED
62	IFLA_VXLAN_MAX = IFLA_VXLAN_FLOWBASED
63)
64
65const (
66	BRIDGE_MODE_UNSPEC = iota
67	BRIDGE_MODE_HAIRPIN
68)
69
70const (
71	IFLA_BRPORT_UNSPEC = iota
72	IFLA_BRPORT_STATE
73	IFLA_BRPORT_PRIORITY
74	IFLA_BRPORT_COST
75	IFLA_BRPORT_MODE
76	IFLA_BRPORT_GUARD
77	IFLA_BRPORT_PROTECT
78	IFLA_BRPORT_FAST_LEAVE
79	IFLA_BRPORT_LEARNING
80	IFLA_BRPORT_UNICAST_FLOOD
81	IFLA_BRPORT_PROXYARP
82	IFLA_BRPORT_LEARNING_SYNC
83	IFLA_BRPORT_PROXYARP_WIFI
84	IFLA_BRPORT_MAX = IFLA_BRPORT_PROXYARP_WIFI
85)
86
87const (
88	IFLA_IPVLAN_UNSPEC = iota
89	IFLA_IPVLAN_MODE
90	IFLA_IPVLAN_MAX = IFLA_IPVLAN_MODE
91)
92
93const (
94	IFLA_MACVLAN_UNSPEC = iota
95	IFLA_MACVLAN_MODE
96	IFLA_MACVLAN_FLAGS
97	IFLA_MACVLAN_MACADDR_MODE
98	IFLA_MACVLAN_MACADDR
99	IFLA_MACVLAN_MACADDR_DATA
100	IFLA_MACVLAN_MACADDR_COUNT
101	IFLA_MACVLAN_MAX = IFLA_MACVLAN_FLAGS
102)
103
104const (
105	MACVLAN_MODE_PRIVATE  = 1
106	MACVLAN_MODE_VEPA     = 2
107	MACVLAN_MODE_BRIDGE   = 4
108	MACVLAN_MODE_PASSTHRU = 8
109	MACVLAN_MODE_SOURCE   = 16
110)
111
112const (
113	MACVLAN_MACADDR_ADD = iota
114	MACVLAN_MACADDR_DEL
115	MACVLAN_MACADDR_FLUSH
116	MACVLAN_MACADDR_SET
117)
118
119const (
120	IFLA_BOND_UNSPEC = iota
121	IFLA_BOND_MODE
122	IFLA_BOND_ACTIVE_SLAVE
123	IFLA_BOND_MIIMON
124	IFLA_BOND_UPDELAY
125	IFLA_BOND_DOWNDELAY
126	IFLA_BOND_USE_CARRIER
127	IFLA_BOND_ARP_INTERVAL
128	IFLA_BOND_ARP_IP_TARGET
129	IFLA_BOND_ARP_VALIDATE
130	IFLA_BOND_ARP_ALL_TARGETS
131	IFLA_BOND_PRIMARY
132	IFLA_BOND_PRIMARY_RESELECT
133	IFLA_BOND_FAIL_OVER_MAC
134	IFLA_BOND_XMIT_HASH_POLICY
135	IFLA_BOND_RESEND_IGMP
136	IFLA_BOND_NUM_PEER_NOTIF
137	IFLA_BOND_ALL_SLAVES_ACTIVE
138	IFLA_BOND_MIN_LINKS
139	IFLA_BOND_LP_INTERVAL
140	IFLA_BOND_PACKETS_PER_SLAVE
141	IFLA_BOND_AD_LACP_RATE
142	IFLA_BOND_AD_SELECT
143	IFLA_BOND_AD_INFO
144	IFLA_BOND_AD_ACTOR_SYS_PRIO
145	IFLA_BOND_AD_USER_PORT_KEY
146	IFLA_BOND_AD_ACTOR_SYSTEM
147	IFLA_BOND_TLB_DYNAMIC_LB
148)
149
150const (
151	IFLA_BOND_AD_INFO_UNSPEC = iota
152	IFLA_BOND_AD_INFO_AGGREGATOR
153	IFLA_BOND_AD_INFO_NUM_PORTS
154	IFLA_BOND_AD_INFO_ACTOR_KEY
155	IFLA_BOND_AD_INFO_PARTNER_KEY
156	IFLA_BOND_AD_INFO_PARTNER_MAC
157)
158
159const (
160	IFLA_BOND_SLAVE_UNSPEC = iota
161	IFLA_BOND_SLAVE_STATE
162	IFLA_BOND_SLAVE_MII_STATUS
163	IFLA_BOND_SLAVE_LINK_FAILURE_COUNT
164	IFLA_BOND_SLAVE_PERM_HWADDR
165	IFLA_BOND_SLAVE_QUEUE_ID
166	IFLA_BOND_SLAVE_AD_AGGREGATOR_ID
167)
168
169const (
170	IFLA_GRE_UNSPEC = iota
171	IFLA_GRE_LINK
172	IFLA_GRE_IFLAGS
173	IFLA_GRE_OFLAGS
174	IFLA_GRE_IKEY
175	IFLA_GRE_OKEY
176	IFLA_GRE_LOCAL
177	IFLA_GRE_REMOTE
178	IFLA_GRE_TTL
179	IFLA_GRE_TOS
180	IFLA_GRE_PMTUDISC
181	IFLA_GRE_ENCAP_LIMIT
182	IFLA_GRE_FLOWINFO
183	IFLA_GRE_FLAGS
184	IFLA_GRE_ENCAP_TYPE
185	IFLA_GRE_ENCAP_FLAGS
186	IFLA_GRE_ENCAP_SPORT
187	IFLA_GRE_ENCAP_DPORT
188	IFLA_GRE_COLLECT_METADATA
189	IFLA_GRE_MAX = IFLA_GRE_COLLECT_METADATA
190)
191
192const (
193	GRE_CSUM    = 0x8000
194	GRE_ROUTING = 0x4000
195	GRE_KEY     = 0x2000
196	GRE_SEQ     = 0x1000
197	GRE_STRICT  = 0x0800
198	GRE_REC     = 0x0700
199	GRE_FLAGS   = 0x00F8
200	GRE_VERSION = 0x0007
201)
202
203const (
204	IFLA_VF_INFO_UNSPEC = iota
205	IFLA_VF_INFO
206	IFLA_VF_INFO_MAX = IFLA_VF_INFO
207)
208
209const (
210	IFLA_VF_UNSPEC = iota
211	IFLA_VF_MAC    /* Hardware queue specific attributes */
212	IFLA_VF_VLAN
213	IFLA_VF_TX_RATE      /* Max TX Bandwidth Allocation */
214	IFLA_VF_SPOOFCHK     /* Spoof Checking on/off switch */
215	IFLA_VF_LINK_STATE   /* link state enable/disable/auto switch */
216	IFLA_VF_RATE         /* Min and Max TX Bandwidth Allocation */
217	IFLA_VF_RSS_QUERY_EN /* RSS Redirection Table and Hash Key query
218	 * on/off switch
219	 */
220	IFLA_VF_STATS /* network device statistics */
221	IFLA_VF_TRUST /* Trust state of VF */
222	IFLA_VF_MAX   = IFLA_VF_TRUST
223)
224
225const (
226	IFLA_VF_LINK_STATE_AUTO    = iota /* link state of the uplink */
227	IFLA_VF_LINK_STATE_ENABLE         /* link always up */
228	IFLA_VF_LINK_STATE_DISABLE        /* link always down */
229	IFLA_VF_LINK_STATE_MAX     = IFLA_VF_LINK_STATE_DISABLE
230)
231
232const (
233	IFLA_VF_STATS_RX_PACKETS = iota
234	IFLA_VF_STATS_TX_PACKETS
235	IFLA_VF_STATS_RX_BYTES
236	IFLA_VF_STATS_TX_BYTES
237	IFLA_VF_STATS_BROADCAST
238	IFLA_VF_STATS_MULTICAST
239	IFLA_VF_STATS_MAX = IFLA_VF_STATS_MULTICAST
240)
241
242const (
243	SizeofVfMac        = 0x24
244	SizeofVfVlan       = 0x0c
245	SizeofVfTxRate     = 0x08
246	SizeofVfRate       = 0x0c
247	SizeofVfSpoofchk   = 0x08
248	SizeofVfLinkState  = 0x08
249	SizeofVfRssQueryEn = 0x08
250	SizeofVfTrust      = 0x08
251)
252
253// struct ifla_vf_mac {
254//   __u32 vf;
255//   __u8 mac[32]; /* MAX_ADDR_LEN */
256// };
257
258type VfMac struct {
259	Vf  uint32
260	Mac [32]byte
261}
262
263func (msg *VfMac) Len() int {
264	return SizeofVfMac
265}
266
267func DeserializeVfMac(b []byte) *VfMac {
268	return (*VfMac)(unsafe.Pointer(&b[0:SizeofVfMac][0]))
269}
270
271func (msg *VfMac) Serialize() []byte {
272	return (*(*[SizeofVfMac]byte)(unsafe.Pointer(msg)))[:]
273}
274
275// struct ifla_vf_vlan {
276//   __u32 vf;
277//   __u32 vlan; /* 0 - 4095, 0 disables VLAN filter */
278//   __u32 qos;
279// };
280
281type VfVlan struct {
282	Vf   uint32
283	Vlan uint32
284	Qos  uint32
285}
286
287func (msg *VfVlan) Len() int {
288	return SizeofVfVlan
289}
290
291func DeserializeVfVlan(b []byte) *VfVlan {
292	return (*VfVlan)(unsafe.Pointer(&b[0:SizeofVfVlan][0]))
293}
294
295func (msg *VfVlan) Serialize() []byte {
296	return (*(*[SizeofVfVlan]byte)(unsafe.Pointer(msg)))[:]
297}
298
299// struct ifla_vf_tx_rate {
300//   __u32 vf;
301//   __u32 rate; /* Max TX bandwidth in Mbps, 0 disables throttling */
302// };
303
304type VfTxRate struct {
305	Vf   uint32
306	Rate uint32
307}
308
309func (msg *VfTxRate) Len() int {
310	return SizeofVfTxRate
311}
312
313func DeserializeVfTxRate(b []byte) *VfTxRate {
314	return (*VfTxRate)(unsafe.Pointer(&b[0:SizeofVfTxRate][0]))
315}
316
317func (msg *VfTxRate) Serialize() []byte {
318	return (*(*[SizeofVfTxRate]byte)(unsafe.Pointer(msg)))[:]
319}
320
321// struct ifla_vf_rate {
322//   __u32 vf;
323//   __u32 min_tx_rate; /* Min Bandwidth in Mbps */
324//   __u32 max_tx_rate; /* Max Bandwidth in Mbps */
325// };
326
327type VfRate struct {
328	Vf        uint32
329	MinTxRate uint32
330	MaxTxRate uint32
331}
332
333func (msg *VfRate) Len() int {
334	return SizeofVfRate
335}
336
337func DeserializeVfRate(b []byte) *VfRate {
338	return (*VfRate)(unsafe.Pointer(&b[0:SizeofVfRate][0]))
339}
340
341func (msg *VfRate) Serialize() []byte {
342	return (*(*[SizeofVfRate]byte)(unsafe.Pointer(msg)))[:]
343}
344
345// struct ifla_vf_spoofchk {
346//   __u32 vf;
347//   __u32 setting;
348// };
349
350type VfSpoofchk struct {
351	Vf      uint32
352	Setting uint32
353}
354
355func (msg *VfSpoofchk) Len() int {
356	return SizeofVfSpoofchk
357}
358
359func DeserializeVfSpoofchk(b []byte) *VfSpoofchk {
360	return (*VfSpoofchk)(unsafe.Pointer(&b[0:SizeofVfSpoofchk][0]))
361}
362
363func (msg *VfSpoofchk) Serialize() []byte {
364	return (*(*[SizeofVfSpoofchk]byte)(unsafe.Pointer(msg)))[:]
365}
366
367// struct ifla_vf_link_state {
368//   __u32 vf;
369//   __u32 link_state;
370// };
371
372type VfLinkState struct {
373	Vf        uint32
374	LinkState uint32
375}
376
377func (msg *VfLinkState) Len() int {
378	return SizeofVfLinkState
379}
380
381func DeserializeVfLinkState(b []byte) *VfLinkState {
382	return (*VfLinkState)(unsafe.Pointer(&b[0:SizeofVfLinkState][0]))
383}
384
385func (msg *VfLinkState) Serialize() []byte {
386	return (*(*[SizeofVfLinkState]byte)(unsafe.Pointer(msg)))[:]
387}
388
389// struct ifla_vf_rss_query_en {
390//   __u32 vf;
391//   __u32 setting;
392// };
393
394type VfRssQueryEn struct {
395	Vf      uint32
396	Setting uint32
397}
398
399func (msg *VfRssQueryEn) Len() int {
400	return SizeofVfRssQueryEn
401}
402
403func DeserializeVfRssQueryEn(b []byte) *VfRssQueryEn {
404	return (*VfRssQueryEn)(unsafe.Pointer(&b[0:SizeofVfRssQueryEn][0]))
405}
406
407func (msg *VfRssQueryEn) Serialize() []byte {
408	return (*(*[SizeofVfRssQueryEn]byte)(unsafe.Pointer(msg)))[:]
409}
410
411// struct ifla_vf_trust {
412//   __u32 vf;
413//   __u32 setting;
414// };
415
416type VfTrust struct {
417	Vf      uint32
418	Setting uint32
419}
420
421func (msg *VfTrust) Len() int {
422	return SizeofVfTrust
423}
424
425func DeserializeVfTrust(b []byte) *VfTrust {
426	return (*VfTrust)(unsafe.Pointer(&b[0:SizeofVfTrust][0]))
427}
428
429func (msg *VfTrust) Serialize() []byte {
430	return (*(*[SizeofVfTrust]byte)(unsafe.Pointer(msg)))[:]
431}
432
433const (
434	XDP_FLAGS_UPDATE_IF_NOEXIST = 1 << iota
435	XDP_FLAGS_SKB_MODE
436	XDP_FLAGS_DRV_MODE
437	XDP_FLAGS_MASK = XDP_FLAGS_UPDATE_IF_NOEXIST | XDP_FLAGS_SKB_MODE | XDP_FLAGS_DRV_MODE
438)
439
440const (
441	IFLA_XDP_UNSPEC   = iota
442	IFLA_XDP_FD       /* fd of xdp program to attach, or -1 to remove */
443	IFLA_XDP_ATTACHED /* read-only bool indicating if prog is attached */
444	IFLA_XDP_FLAGS    /* xdp prog related flags */
445	IFLA_XDP_PROG_ID  /* xdp prog id */
446	IFLA_XDP_MAX      = IFLA_XDP_PROG_ID
447)
448
449const (
450	IFLA_IPTUN_UNSPEC = iota
451	IFLA_IPTUN_LINK
452	IFLA_IPTUN_LOCAL
453	IFLA_IPTUN_REMOTE
454	IFLA_IPTUN_TTL
455	IFLA_IPTUN_TOS
456	IFLA_IPTUN_ENCAP_LIMIT
457	IFLA_IPTUN_FLOWINFO
458	IFLA_IPTUN_FLAGS
459	IFLA_IPTUN_PROTO
460	IFLA_IPTUN_PMTUDISC
461	IFLA_IPTUN_6RD_PREFIX
462	IFLA_IPTUN_6RD_RELAY_PREFIX
463	IFLA_IPTUN_6RD_PREFIXLEN
464	IFLA_IPTUN_6RD_RELAY_PREFIXLEN
465	IFLA_IPTUN_ENCAP_TYPE
466	IFLA_IPTUN_ENCAP_FLAGS
467	IFLA_IPTUN_ENCAP_SPORT
468	IFLA_IPTUN_ENCAP_DPORT
469	IFLA_IPTUN_COLLECT_METADATA
470	IFLA_IPTUN_MAX = IFLA_IPTUN_COLLECT_METADATA
471)
472
473const (
474	IFLA_VTI_UNSPEC = iota
475	IFLA_VTI_LINK
476	IFLA_VTI_IKEY
477	IFLA_VTI_OKEY
478	IFLA_VTI_LOCAL
479	IFLA_VTI_REMOTE
480	IFLA_VTI_MAX = IFLA_VTI_REMOTE
481)
482
483const (
484	IFLA_VRF_UNSPEC = iota
485	IFLA_VRF_TABLE
486)
487
488const (
489	IFLA_BR_UNSPEC = iota
490	IFLA_BR_FORWARD_DELAY
491	IFLA_BR_HELLO_TIME
492	IFLA_BR_MAX_AGE
493	IFLA_BR_AGEING_TIME
494	IFLA_BR_STP_STATE
495	IFLA_BR_PRIORITY
496	IFLA_BR_VLAN_FILTERING
497	IFLA_BR_VLAN_PROTOCOL
498	IFLA_BR_GROUP_FWD_MASK
499	IFLA_BR_ROOT_ID
500	IFLA_BR_BRIDGE_ID
501	IFLA_BR_ROOT_PORT
502	IFLA_BR_ROOT_PATH_COST
503	IFLA_BR_TOPOLOGY_CHANGE
504	IFLA_BR_TOPOLOGY_CHANGE_DETECTED
505	IFLA_BR_HELLO_TIMER
506	IFLA_BR_TCN_TIMER
507	IFLA_BR_TOPOLOGY_CHANGE_TIMER
508	IFLA_BR_GC_TIMER
509	IFLA_BR_GROUP_ADDR
510	IFLA_BR_FDB_FLUSH
511	IFLA_BR_MCAST_ROUTER
512	IFLA_BR_MCAST_SNOOPING
513	IFLA_BR_MCAST_QUERY_USE_IFADDR
514	IFLA_BR_MCAST_QUERIER
515	IFLA_BR_MCAST_HASH_ELASTICITY
516	IFLA_BR_MCAST_HASH_MAX
517	IFLA_BR_MCAST_LAST_MEMBER_CNT
518	IFLA_BR_MCAST_STARTUP_QUERY_CNT
519	IFLA_BR_MCAST_LAST_MEMBER_INTVL
520	IFLA_BR_MCAST_MEMBERSHIP_INTVL
521	IFLA_BR_MCAST_QUERIER_INTVL
522	IFLA_BR_MCAST_QUERY_INTVL
523	IFLA_BR_MCAST_QUERY_RESPONSE_INTVL
524	IFLA_BR_MCAST_STARTUP_QUERY_INTVL
525	IFLA_BR_NF_CALL_IPTABLES
526	IFLA_BR_NF_CALL_IP6TABLES
527	IFLA_BR_NF_CALL_ARPTABLES
528	IFLA_BR_VLAN_DEFAULT_PVID
529	IFLA_BR_PAD
530	IFLA_BR_VLAN_STATS_ENABLED
531	IFLA_BR_MCAST_STATS_ENABLED
532	IFLA_BR_MCAST_IGMP_VERSION
533	IFLA_BR_MCAST_MLD_VERSION
534	IFLA_BR_MAX = IFLA_BR_MCAST_MLD_VERSION
535)
536
537const (
538	IFLA_GTP_UNSPEC = iota
539	IFLA_GTP_FD0
540	IFLA_GTP_FD1
541	IFLA_GTP_PDP_HASHSIZE
542	IFLA_GTP_ROLE
543)
544
545const (
546	GTP_ROLE_GGSN = iota
547	GTP_ROLE_SGSN
548)
549