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