mirror of
https://github.com/kubenetworks/kubevpn.git
synced 2025-10-13 02:53:52 +08:00
fix: fix dns on linux (#336)
* fix: fix dns on linux * feat: detect run in Github action or not to setup DNS
This commit is contained in:
77
vendor/github.com/tailscale/netlink/bpf_linux.go
generated
vendored
Normal file
77
vendor/github.com/tailscale/netlink/bpf_linux.go
generated
vendored
Normal file
@@ -0,0 +1,77 @@
|
||||
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
|
||||
BPF_PROG_TYPE_PERF_EVENT
|
||||
BPF_PROG_TYPE_CGROUP_SKB
|
||||
BPF_PROG_TYPE_CGROUP_SOCK
|
||||
BPF_PROG_TYPE_LWT_IN
|
||||
BPF_PROG_TYPE_LWT_OUT
|
||||
BPF_PROG_TYPE_LWT_XMIT
|
||||
BPF_PROG_TYPE_SOCK_OPS
|
||||
BPF_PROG_TYPE_SK_SKB
|
||||
BPF_PROG_TYPE_CGROUP_DEVICE
|
||||
BPF_PROG_TYPE_SK_MSG
|
||||
BPF_PROG_TYPE_RAW_TRACEPOINT
|
||||
BPF_PROG_TYPE_CGROUP_SOCK_ADDR
|
||||
BPF_PROG_TYPE_LWT_SEG6LOCAL
|
||||
BPF_PROG_TYPE_LIRC_MODE2
|
||||
BPF_PROG_TYPE_SK_REUSEPORT
|
||||
BPF_PROG_TYPE_FLOW_DISSECTOR
|
||||
BPF_PROG_TYPE_CGROUP_SYSCTL
|
||||
BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE
|
||||
BPF_PROG_TYPE_CGROUP_SOCKOPT
|
||||
BPF_PROG_TYPE_TRACING
|
||||
BPF_PROG_TYPE_STRUCT_OPS
|
||||
BPF_PROG_TYPE_EXT
|
||||
BPF_PROG_TYPE_LSM
|
||||
BPF_PROG_TYPE_SK_LOOKUP
|
||||
)
|
||||
|
||||
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
|
||||
}
|
Reference in New Issue
Block a user