Vendor latest k8s.io/cri-api and netlink
* Bump k8s.io/cri-api to latest version - v0.23.0-alpha.4 * Vendor github.com/vishvananda/netlink for network stats Signed-off-by: David Porter <porterdavid@google.com>
This commit is contained in:
		
							
								
								
									
										90
									
								
								vendor/github.com/vishvananda/netlink/ioctl_linux.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								vendor/github.com/vishvananda/netlink/ioctl_linux.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,90 @@ | ||||
| package netlink | ||||
|  | ||||
| import ( | ||||
| 	"syscall" | ||||
| 	"unsafe" | ||||
|  | ||||
| 	"golang.org/x/sys/unix" | ||||
| ) | ||||
|  | ||||
| // ioctl for statistics. | ||||
| const ( | ||||
| 	// ETHTOOL_GSSET_INFO gets string set info | ||||
| 	ETHTOOL_GSSET_INFO = 0x00000037 | ||||
| 	// SIOCETHTOOL is Ethtool interface | ||||
| 	SIOCETHTOOL = 0x8946 | ||||
| 	// ETHTOOL_GSTRINGS gets specified string set | ||||
| 	ETHTOOL_GSTRINGS = 0x0000001b | ||||
| 	// ETHTOOL_GSTATS gets NIC-specific statistics | ||||
| 	ETHTOOL_GSTATS = 0x0000001d | ||||
| ) | ||||
|  | ||||
| // string set id. | ||||
| const ( | ||||
| 	// ETH_SS_TEST is self-test result names, for use with %ETHTOOL_TEST | ||||
| 	ETH_SS_TEST = iota | ||||
| 	// ETH_SS_STATS statistic names, for use with %ETHTOOL_GSTATS | ||||
| 	ETH_SS_STATS | ||||
| 	// ETH_SS_PRIV_FLAGS are driver private flag names | ||||
| 	ETH_SS_PRIV_FLAGS | ||||
| 	// _ETH_SS_NTUPLE_FILTERS is deprecated | ||||
| 	_ETH_SS_NTUPLE_FILTERS | ||||
| 	// ETH_SS_FEATURES are device feature names | ||||
| 	ETH_SS_FEATURES | ||||
| 	// ETH_SS_RSS_HASH_FUNCS is RSS hush function names | ||||
| 	ETH_SS_RSS_HASH_FUNCS | ||||
| ) | ||||
|  | ||||
| // IfreqSlave is a struct for ioctl bond manipulation syscalls. | ||||
| // It is used to assign slave to bond interface with Name. | ||||
| type IfreqSlave struct { | ||||
| 	Name  [unix.IFNAMSIZ]byte | ||||
| 	Slave [unix.IFNAMSIZ]byte | ||||
| } | ||||
|  | ||||
| // Ifreq is a struct for ioctl ethernet manipulation syscalls. | ||||
| type Ifreq struct { | ||||
| 	Name [unix.IFNAMSIZ]byte | ||||
| 	Data uintptr | ||||
| } | ||||
|  | ||||
| // ethtoolSset is a string set information | ||||
| type ethtoolSset struct { | ||||
| 	cmd      uint32 | ||||
| 	reserved uint32 | ||||
| 	mask     uint64 | ||||
| 	data     [1]uint32 | ||||
| } | ||||
|  | ||||
| type ethtoolStats struct { | ||||
| 	cmd    uint32 | ||||
| 	nStats uint32 | ||||
| 	// Followed by nStats * []uint64. | ||||
| } | ||||
|  | ||||
| // newIocltSlaveReq returns filled IfreqSlave with proper interface names | ||||
| // It is used by ioctl to assign slave to bond master | ||||
| func newIocltSlaveReq(slave, master string) *IfreqSlave { | ||||
| 	ifreq := &IfreqSlave{} | ||||
| 	copy(ifreq.Name[:unix.IFNAMSIZ-1], master) | ||||
| 	copy(ifreq.Slave[:unix.IFNAMSIZ-1], slave) | ||||
| 	return ifreq | ||||
| } | ||||
|  | ||||
| // newIocltStringSetReq creates request to get interface string set | ||||
| func newIocltStringSetReq(linkName string) (*Ifreq, *ethtoolSset) { | ||||
| 	e := ðtoolSset{ | ||||
| 		cmd:  ETHTOOL_GSSET_INFO, | ||||
| 		mask: 1 << ETH_SS_STATS, | ||||
| 	} | ||||
|  | ||||
| 	ifreq := &Ifreq{Data: uintptr(unsafe.Pointer(e))} | ||||
| 	copy(ifreq.Name[:unix.IFNAMSIZ-1], linkName) | ||||
| 	return ifreq, e | ||||
| } | ||||
|  | ||||
| // getSocketUDP returns file descriptor to new UDP socket | ||||
| // It is used for communication with ioctl interface. | ||||
| func getSocketUDP() (int, error) { | ||||
| 	return syscall.Socket(unix.AF_INET, unix.SOCK_DGRAM, 0) | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 David Porter
					David Porter