* 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>
		
			
				
	
	
		
			54 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package netlink
 | 
						|
 | 
						|
import (
 | 
						|
	"unsafe"
 | 
						|
 | 
						|
	"golang.org/x/sys/unix"
 | 
						|
)
 | 
						|
 | 
						|
type BpfProgType uint32
 | 
						|
 | 
						|
const (
 | 
						|
	BPF_PROG_TYPE_UNSPEC BpfProgType = iota
 | 
						|
	BPF_PROG_TYPE_SOCKET_FILTER
 | 
						|
	BPF_PROG_TYPE_KPROBE
 | 
						|
	BPF_PROG_TYPE_SCHED_CLS
 | 
						|
	BPF_PROG_TYPE_SCHED_ACT
 | 
						|
	BPF_PROG_TYPE_TRACEPOINT
 | 
						|
	BPF_PROG_TYPE_XDP
 | 
						|
)
 | 
						|
 | 
						|
type BPFAttr struct {
 | 
						|
	ProgType    uint32
 | 
						|
	InsnCnt     uint32
 | 
						|
	Insns       uintptr
 | 
						|
	License     uintptr
 | 
						|
	LogLevel    uint32
 | 
						|
	LogSize     uint32
 | 
						|
	LogBuf      uintptr
 | 
						|
	KernVersion uint32
 | 
						|
}
 | 
						|
 | 
						|
// loadSimpleBpf loads a trivial bpf program for testing purposes.
 | 
						|
func loadSimpleBpf(progType BpfProgType, ret uint32) (int, error) {
 | 
						|
	insns := []uint64{
 | 
						|
		0x00000000000000b7 | (uint64(ret) << 32),
 | 
						|
		0x0000000000000095,
 | 
						|
	}
 | 
						|
	license := []byte{'A', 'S', 'L', '2', '\x00'}
 | 
						|
	attr := BPFAttr{
 | 
						|
		ProgType: uint32(progType),
 | 
						|
		InsnCnt:  uint32(len(insns)),
 | 
						|
		Insns:    uintptr(unsafe.Pointer(&insns[0])),
 | 
						|
		License:  uintptr(unsafe.Pointer(&license[0])),
 | 
						|
	}
 | 
						|
	fd, _, errno := unix.Syscall(unix.SYS_BPF,
 | 
						|
		5, /* bpf cmd */
 | 
						|
		uintptr(unsafe.Pointer(&attr)),
 | 
						|
		unsafe.Sizeof(attr))
 | 
						|
	if errno != 0 {
 | 
						|
		return 0, errno
 | 
						|
	}
 | 
						|
	return int(fd), nil
 | 
						|
}
 |