link_linux.go 14 KB

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