Documentation ¶
Index ¶
- func BPFMapTypeIsSupported(mapType MapType) (bool, error)
- func BPFProgramTypeIsSupported(progType BPFProgType) (bool, error)
- func LibbpfVersionString() string
- func MajorVersion() int
- func MinorVersion() int
- func SetStrictMode(mode LibbpfStrictMode)
- type BPFAttachType
- type BPFLink
- type BPFLinkLegacy
- type BPFMap
- func (b *BPFMap) DeleteKey(key unsafe.Pointer) error
- func (b *BPFMap) DeleteKeyBatch(keys unsafe.Pointer, count uint32) error
- func (b *BPFMap) FileDescriptor() int
- func (b *BPFMap) GetFd() intdeprecated
- func (b *BPFMap) GetMaxEntries() uint32
- func (b *BPFMap) GetModule() *Module
- func (b *BPFMap) GetName() stringdeprecated
- func (b *BPFMap) GetPinPath() stringdeprecated
- func (b *BPFMap) GetValue(key unsafe.Pointer) ([]byte, error)
- func (b *BPFMap) GetValueAndDeleteBatch(keys, startKey, nextKey unsafe.Pointer, count uint32) ([][]byte, error)
- func (b *BPFMap) GetValueBatch(keys unsafe.Pointer, startKey, nextKey unsafe.Pointer, count uint32) ([][]byte, error)
- func (b *BPFMap) GetValueFlags(key unsafe.Pointer, flags MapFlag) ([]byte, error)
- func (b *BPFMap) GetValueReadInto(key unsafe.Pointer, value *[]byte) error
- func (b *BPFMap) IsPinned() bool
- func (b *BPFMap) Iterator() *BPFMapIterator
- func (b *BPFMap) KeySize() int
- func (b *BPFMap) Name() string
- func (b *BPFMap) Pin(pinPath string) error
- func (b *BPFMap) PinPath() string
- func (b *BPFMap) Resize(maxEntries uint32) error
- func (b *BPFMap) SetPinPath(pinPath string) error
- func (b *BPFMap) SetType(mapType MapType) error
- func (b *BPFMap) SetValueSize(size uint32) error
- func (b *BPFMap) Type() MapType
- func (b *BPFMap) Unpin(pinPath string) error
- func (b *BPFMap) Update(key, value unsafe.Pointer) error
- func (b *BPFMap) UpdateBatch(keys, values unsafe.Pointer, count uint32) error
- func (b *BPFMap) UpdateValueFlags(key, value unsafe.Pointer, flags MapFlag) error
- func (b *BPFMap) ValueSize() int
- type BPFMapBatchOpts
- type BPFMapCreateOpts
- type BPFMapIterator
- type BPFObjectIterator
- type BPFProg
- func (p *BPFProg) AttachCgroup(cgroupV2DirPath string) (*BPFLink, error)
- func (p *BPFProg) AttachCgroupLegacy(cgroupV2DirPath string, attachType BPFAttachType) (*BPFLink, error)
- func (p *BPFProg) AttachGeneric() (*BPFLink, error)
- func (p *BPFProg) AttachKprobe(kp string) (*BPFLink, error)
- func (p *BPFProg) AttachKretprobe(kp string) (*BPFLink, error)
- func (p *BPFProg) AttachLSM() (*BPFLink, error)
- func (p *BPFProg) AttachNetns(networkNamespacePath string) (*BPFLink, error)
- func (p *BPFProg) AttachPerfEvent(fd int) (*BPFLink, error)
- func (p *BPFProg) AttachRawTracepoint(tpEvent string) (*BPFLink, error)
- func (p *BPFProg) AttachTracepoint(category, name string) (*BPFLink, error)
- func (p *BPFProg) AttachURetprobe(pid int, path string, offset uint32) (*BPFLink, error)
- func (p *BPFProg) AttachUprobe(pid int, path string, offset uint32) (*BPFLink, error)
- func (p *BPFProg) AttachXDP(deviceName string) (*BPFLink, error)
- func (p *BPFProg) DetachCgroupLegacy(cgroupV2DirPath string, attachType BPFAttachType) error
- func (p *BPFProg) FileDescriptor() int
- func (p *BPFProg) GetFd() intdeprecated
- func (p *BPFProg) GetModule() *Module
- func (p *BPFProg) GetName() stringdeprecated
- func (p *BPFProg) GetPinPath() stringdeprecated
- func (p *BPFProg) GetSectionName() stringdeprecated
- func (p *BPFProg) GetType() BPFProgType
- func (p *BPFProg) Name() string
- func (p *BPFProg) Pin(path string) error
- func (p *BPFProg) PinPath() string
- func (p *BPFProg) SectionName() string
- func (p *BPFProg) SetAttachTarget(attachProgFD int, attachFuncName string) error
- func (p *BPFProg) SetAttachType(attachType BPFAttachType)
- func (p *BPFProg) SetAutoload(autoload bool) error
- func (p *BPFProg) SetProgramType(progType BPFProgType)
- func (p *BPFProg) Unpin(path string) error
- type BPFProgType
- type LibbpfStrictMode
- type LinkType
- type MapFlag
- type MapType
- type Module
- func (m *Module) BPFLoadObject() error
- func (m *Module) Close()
- func (m *Module) GetMap(mapName string) (*BPFMap, error)
- func (m *Module) GetProgram(progName string) (*BPFProg, error)
- func (m *Module) InitPerfBuf(mapName string, eventsChan chan []byte, lostChan chan uint64, pageCnt int) (*PerfBuffer, error)
- func (m *Module) InitRingBuf(mapName string, eventsChan chan []byte) (*RingBuffer, error)
- func (m *Module) Iterator() *BPFObjectIterator
- func (m *Module) TcHookInit() *TcHook
- type NewModuleArgs
- type PerfBuffer
- type RingBuffer
- type TcAttachPoint
- type TcFlags
- type TcHook
- func (hook *TcHook) Attach(tcOpts *TcOpts) error
- func (hook *TcHook) Create() error
- func (hook *TcHook) Destroy() error
- func (hook *TcHook) Detach(tcOpts *TcOpts) error
- func (hook *TcHook) GetInterfaceIndex() int
- func (hook *TcHook) Query(tcOpts *TcOpts) error
- func (hook *TcHook) SetAttachPoint(attachPoint TcAttachPoint)
- func (hook *TcHook) SetInterfaceByIndex(ifaceIdx int)
- func (hook *TcHook) SetInterfaceByName(ifaceName string) error
- func (hook *TcHook) SetParent(a int, b int)
- type TcOpts
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BPFMapTypeIsSupported ¶
func BPFProgramTypeIsSupported ¶
func BPFProgramTypeIsSupported(progType BPFProgType) (bool, error)
func LibbpfVersionString ¶
func LibbpfVersionString() string
LibbpfVersionString returns the string representation of the libbpf version which libbpfgo is linked against
func MajorVersion ¶
func MajorVersion() int
MajorVersion returns the major semver version of libbpf.
func MinorVersion ¶
func MinorVersion() int
MinorVersion returns the minor semver version of libbpf.
func SetStrictMode ¶
func SetStrictMode(mode LibbpfStrictMode)
Types ¶
type BPFAttachType ¶
type BPFAttachType uint32
const ( BPFAttachTypeCgroupInetIngress BPFAttachType = iota BPFAttachTypeCgroupInetEgress BPFAttachTypeCgroupInetSockCreate BPFAttachTypeCgroupSockOps BPFAttachTypeSKSKBStreamParser BPFAttachTypeSKSKBStreamVerdict BPFAttachTypeCgroupDevice BPFAttachTypeSKMSGVerdict BPFAttachTypeCgroupInet4Bind BPFAttachTypeCgroupInet6Bind BPFAttachTypeCgroupInet4Connect BPFAttachTypeCgroupInet6Connect BPFAttachTypeCgroupInet4PostBind BPFAttachTypeCgroupInet6PostBind BPFAttachTypeCgroupUDP4SendMsg BPFAttachTypeCgroupUDP6SendMsg BPFAttachTypeLircMode2 BPFAttachTypeFlowDissector BPFAttachTypeCgroupSysctl BPFAttachTypeCgroupUDP4RecvMsg BPFAttachTypeCgroupUDP6RecvMsg BPFAttachTypeCgroupGetSockOpt BPFAttachTypeCgroupSetSockOpt BPFAttachTypeTraceRawTP BPFAttachTypeTraceFentry BPFAttachTypeTraceFexit BPFAttachTypeModifyReturn BPFAttachTypeLSMMac BPFAttachTypeTraceIter BPFAttachTypeCgroupInet4GetPeerName BPFAttachTypeCgroupInet6GetPeerName BPFAttachTypeCgroupInet4GetSockName BPFAttachTypeCgroupInet6GetSockName BPFAttachTypeXDPDevMap BPFAttachTypeCgroupInetSockRelease BPFAttachTypeXDPCPUMap BPFAttachTypeSKLookup BPFAttachTypeXDP BPFAttachTypeSKSKBVerdict BPFAttachTypeSKReusePortSelect BPFAttachTypeSKReusePortSelectorMigrate BPFAttachTypePerfEvent BPFAttachTypeTraceKprobeMulti )
type BPFLink ¶
type BPFLink struct {
// contains filtered or unexported fields
}
func (*BPFLink) DestroyLegacy ¶
func (*BPFLink) FileDescriptor ¶
type BPFLinkLegacy ¶
type BPFLinkLegacy struct {
// contains filtered or unexported fields
}
type BPFMap ¶
type BPFMap struct {
// contains filtered or unexported fields
}
func CreateMap ¶
func CreateMap(mapType MapType, mapName string, keySize, valueSize, maxEntries int, opts *BPFMapCreateOpts) (*BPFMap, error)
CreateMap creates a BPF map from userspace. This can be used for populating BPF array of maps or hash of maps. However, this function uses a low-level libbpf API; maps created in this way do not conform to libbpf map formats, and therefore do not have access to libbpf high level bpf_map__* APIS which causes different behavior from maps created in the kernel side code
See usage of `bpf_map_create()` in kernel selftests for more info
func (*BPFMap) DeleteKey ¶
DeleteKey takes a pointer to the key which is stored in the map. It removes the key and associated value from the BPFMap. All basic types, and structs are supported as keys.
NOTE: Slices and arrays are also supported but special care should be taken as to take a reference to the first element in the slice or array instead of the slice/array itself, as to avoid undefined behavior.
func (*BPFMap) DeleteKeyBatch ¶
DeleteKeyBatch allows for batch deletion of multiple elements in the map.
`count` number of keys will be deleted from the map. Passing an argument that greater than the number of keys in the map will cause the function to delete fewer keys than requested. See the inline comment in `GetValueAndDeleteBatch` for more context.
func (*BPFMap) FileDescriptor ¶
func (*BPFMap) GetMaxEntries ¶
GetMaxEntries returns the map's capacity. Note: for ring buffer and perf buffer, maxEntries is the capacity in bytes.
func (*BPFMap) GetPinPath
deprecated
func (*BPFMap) GetValue ¶
GetValue takes a pointer to the key which is stored in the map. It returns the associated value as a slice of bytes. All basic types, and structs are supported as keys.
NOTE: Slices and arrays are also supported but special care should be taken as to take a reference to the first element in the slice or array instead of the slice/array itself, as to avoid undefined behavior.
func (*BPFMap) GetValueAndDeleteBatch ¶
func (b *BPFMap) GetValueAndDeleteBatch(keys, startKey, nextKey unsafe.Pointer, count uint32) ([][]byte, error)
GetValueAndDeleteBatch allows for batch lookup and deletion of elements where each element is deleted after being retrieved from the map.
The first argument, keys, is a pointer to an array or slice of keys which will be populated with the keys returned from this operation. It returns the associated values as a slice of slices of bytes.
This API allows for batch lookups and deletion of multiple keys, potentially in steps over multiple iterations. For example, you provide the last key seen (or nil) for the startKey, and the first key to start the next iteration with in nextKey. Once the first iteration is complete you can provide the last key seen in the previous iteration as the startKey for the next iteration and repeat until nextKey is nil.
The last argument, count, is the number of keys to lookup and delete. The kernel will update it with the count of the elements that were retrieved and deleted.
The API can return partial results even though an -1 is returned. In this case, errno will be set to `ENOENT` and the values slice and count will be filled in with the elements that were read. See the comment below for more context.
func (*BPFMap) GetValueBatch ¶
func (b *BPFMap) GetValueBatch(keys unsafe.Pointer, startKey, nextKey unsafe.Pointer, count uint32) ([][]byte, error)
GetValueBatch allows for batch lookups of multiple keys from the map.
The first argument, keys, is a pointer to an array or slice of keys which will be populated with the keys returned from this operation. It returns the associated values as a slice of slices of bytes.
This API allows for batch lookups of multiple keys, potentially in steps over multiple iterations. For example, you provide the last key seen (or nil) for the startKey, and the first key to start the next iteration with in nextKey. Once the first iteration is complete you can provide the last key seen in the previous iteration as the startKey for the next iteration and repeat until nextKey is nil.
The last argument, count, is the number of keys to lookup. The kernel will update it with the count of the elements that were retrieved.
The API can return partial results even though an -1 is returned. In this case, errno will be set to `ENOENT` and the values slice and count will be filled in with the elements that were read. See the inline comment in `GetValueAndDeleteBatch` for more context.
func (*BPFMap) GetValueFlags ¶
func (*BPFMap) GetValueReadInto ¶
GetValueReadInto is like GetValue, except it allows the caller to pass in a pointer to the slice of bytes that the value would be read into from the map. This is useful for reading from maps with variable sizes, especially per-cpu arrays and hash maps where the size of each value depends on the number of CPUs
func (*BPFMap) Iterator ¶
func (b *BPFMap) Iterator() *BPFMapIterator
func (*BPFMap) Resize ¶
Resize changes the map's capacity to maxEntries. It should be called after the module was initialized but prior to it being loaded with BPFLoadObject. Note: for ring buffer and perf buffer, maxEntries is the capacity in bytes.
func (*BPFMap) SetPinPath ¶
func (*BPFMap) SetType ¶
SetType is used to set the type of a bpf map that isn't associated with a file descriptor already. If the map is already associated with a file descriptor the libbpf API will return error code EBUSY
func (*BPFMap) SetValueSize ¶
func (*BPFMap) Update ¶
Update takes a pointer to a key and a value to associate it with in the BPFMap. The unsafe.Pointer should be taken on a reference to the underlying datatype. All basic types, and structs are supported
NOTE: Slices and arrays are supported but references should be passed to the first element in the slice or array.
For example:
key := 1 value := []byte{'a', 'b', 'c'} keyPtr := unsafe.Pointer(&key) valuePtr := unsafe.Pointer(&value[0]) bpfmap.Update(keyPtr, valuePtr)
func (*BPFMap) UpdateBatch ¶
UpdateBatch updates multiple elements in the map by specified keys and their corresponding values.
The first argument, keys, is a pointer to an array or slice of keys which will be updated using the second argument, values. It returns the associated error if any occurred.
The last argument, count, is the number of keys to update. Passing an argument that greater than the number of keys in the map will cause the function to return a syscall.EPERM as an error.
func (*BPFMap) UpdateValueFlags ¶
type BPFMapBatchOpts ¶
BPFMapBatchOpts mirrors the C structure bpf_map_batch_opts.
type BPFMapCreateOpts ¶
type BPFMapCreateOpts struct { Size uint64 BtfFD uint32 BtfKeyTypeID uint32 BtfValueTypeID uint32 BtfVmlinuxValueTypeID uint32 InnerMapFD uint32 MapFlags uint32 MapExtra uint64 NumaNode uint32 MapIfIndex uint32 }
BPFMapCreateOpts mirrors the C structure bpf_map_create_opts
type BPFMapIterator ¶
type BPFMapIterator struct {
// contains filtered or unexported fields
}
BPFMapIterator iterates over keys in a BPF map
func (*BPFMapIterator) Err ¶
func (it *BPFMapIterator) Err() error
Err returns the last error that ocurred while table.Iter or iter.Next
func (*BPFMapIterator) Key ¶
func (it *BPFMapIterator) Key() []byte
Key returns the current key value of the iterator, if the most recent call to Next returned true. The slice is valid only until the next call to Next.
func (*BPFMapIterator) Next ¶
func (it *BPFMapIterator) Next() bool
type BPFObjectIterator ¶
type BPFObjectIterator struct {
// contains filtered or unexported fields
}
BPFObjectProgramIterator iterates over maps in a BPF object
func (*BPFObjectIterator) NextMap ¶
func (it *BPFObjectIterator) NextMap() *BPFMap
func (*BPFObjectIterator) NextProgram ¶
func (it *BPFObjectIterator) NextProgram() *BPFProg
type BPFProg ¶
type BPFProg struct {
// contains filtered or unexported fields
}
func (*BPFProg) AttachCgroup ¶
AttachCgroup attaches the BPFProg to a cgroup described by given fd.
func (*BPFProg) AttachCgroupLegacy ¶
func (p *BPFProg) AttachCgroupLegacy(cgroupV2DirPath string, attachType BPFAttachType) (*BPFLink, error)
AttachCgroupLegacy attaches the BPFProg to a cgroup described by the given fd. It first tries to use the most recent attachment method and, if that does not work, instead of failing, it tries the legacy way: to attach the cgroup eBPF program without previously creating a link. This allows attaching cgroup eBPF ingress/egress in older kernels. Note: the first attempt error message is filtered out inside libbpf_print_fn() as it is actually a feature probe attempt as well.
Related kernel commit: https://github.com/torvalds/linux/commit/af6eea57437a
func (*BPFProg) AttachGeneric ¶
AttachGeneric is used to attach the BPF program using autodetection for the attach target. You can specify the destination in BPF code via the SEC() such as `SEC("fentry/some_kernel_func")`
func (*BPFProg) AttachKprobe ¶
this API should be used for kernels > 4.17
func (*BPFProg) AttachKretprobe ¶
this API should be used for kernels > 4.17
func (*BPFProg) AttachNetns ¶
func (*BPFProg) AttachRawTracepoint ¶
func (*BPFProg) AttachTracepoint ¶
func (*BPFProg) AttachURetprobe ¶
AttachURetprobe attaches the BPFProgram to exit of the symbol in the library or binary at 'path' which can be relative or absolute. A pid can be provided to attach to, or -1 can be specified to attach to all processes
func (*BPFProg) AttachUprobe ¶
AttachUprobe attaches the BPFProgram to entry of the symbol in the library or binary at 'path' which can be relative or absolute. A pid can be provided to attach to, or -1 can be specified to attach to all processes
func (*BPFProg) DetachCgroupLegacy ¶
func (p *BPFProg) DetachCgroupLegacy(cgroupV2DirPath string, attachType BPFAttachType) error
DetachCgroupLegacy detaches the BPFProg from a cgroup described by the given fd. This is needed because in legacy attachment there is no BPFLink, just a fake one (kernel did not support it, nor libbpf). This function should be called by the (*BPFLink)->Destroy() function, since BPFLink is emulated (so users don´t need to distinguish between regular and legacy cgroup detachments).
func (*BPFProg) FileDescriptor ¶
func (*BPFProg) GetPinPath
deprecated
func (*BPFProg) GetSectionName
deprecated
func (*BPFProg) GetType ¶
func (p *BPFProg) GetType() BPFProgType
func (*BPFProg) SectionName ¶
func (*BPFProg) SetAttachTarget ¶
SetAttachTarget can be used to specify the program and/or function to attach the BPF program to. To attach to a kernel function specify attachProgFD as 0
func (*BPFProg) SetAttachType ¶
func (p *BPFProg) SetAttachType(attachType BPFAttachType)
func (*BPFProg) SetAutoload ¶
func (*BPFProg) SetProgramType ¶
func (p *BPFProg) SetProgramType(progType BPFProgType)
type BPFProgType ¶
type BPFProgType uint32
BPFProgType is an enum as defined in https://elixir.bootlin.com/linux/latest/source/include/uapi/linux/bpf.h
const ( BPFProgTypeUnspec BPFProgType = iota BPFProgTypeSocketFilter BPFProgTypeKprobe BPFProgTypeSchedCls BPFProgTypeSchedAct BPFProgTypeTracepoint BPFProgTypeXdp BPFProgTypePerfEvent BPFProgTypeCgroupSkb BPFProgTypeCgroupSock BPFProgTypeLwtIn BPFProgTypeLwtOut BPFProgTypeLwtXmit BPFProgTypeSockOps BPFProgTypeSkSkb BPFProgTypeCgroupDevice BPFProgTypeSkMsg BPFProgTypeRawTracepoint BPFProgTypeCgroupSockAddr BPFProgTypeLwtSeg6Local BPFProgTypeLircMode2 BPFProgTypeSkReuseport BPFProgTypeFlowDissector BPFProgTypeCgroupSysctl BPFProgTypeRawTracepointWritable BPFProgTypeCgroupSockopt BPFProgTypeTracing BPFProgTypeStructOps BPFProgTypeExt BPFProgTypeLsm BPFProgTypeSkLookup BPFProgTypeSyscall )
func (BPFProgType) String ¶
func (b BPFProgType) String() (str string)
func (BPFProgType) Value ¶
func (b BPFProgType) Value() uint64
type LibbpfStrictMode ¶
type LibbpfStrictMode uint32
LibbpfStrictMode is an enum as defined in https://github.com/libbpf/libbpf/blob/2cd2d03f63242c048a896179398c68d2dbefe3d6/src/libbpf_legacy.h#L23
const ( LibbpfStrictModeAll LibbpfStrictMode = C.LIBBPF_STRICT_ALL LibbpfStrictModeNone LibbpfStrictMode = C.LIBBPF_STRICT_NONE LibbpfStrictModeCleanPtrs LibbpfStrictMode = C.LIBBPF_STRICT_CLEAN_PTRS LibbpfStrictModeDirectErrs LibbpfStrictMode = C.LIBBPF_STRICT_DIRECT_ERRS LibbpfStrictModeSecName LibbpfStrictMode = C.LIBBPF_STRICT_SEC_NAME LibbpfStrictModeNoObjectList LibbpfStrictMode = C.LIBBPF_STRICT_NO_OBJECT_LIST LibbpfStrictModeAutoRlimitMemlock LibbpfStrictMode = C.LIBBPF_STRICT_AUTO_RLIMIT_MEMLOCK LibbpfStrictModeMapDefinitions LibbpfStrictMode = C.LIBBPF_STRICT_MAP_DEFINITIONS )
func (LibbpfStrictMode) String ¶
func (b LibbpfStrictMode) String() (str string)
type MapType ¶
type MapType uint32
const ( MapTypeUnspec MapType = iota MapTypeHash MapTypeArray MapTypeProgArray MapTypePerfEventArray MapTypePerCPUHash MapTypePerCPUArray MapTypeStackTrace MapTypeCgroupArray MapTypeLRUHash MapTypeLRUPerCPUHash MapTypeLPMTrie MapTypeArrayOfMaps MapTypeHashOfMaps MapTypeDevMap MapTypeSockMap MapTypeCPUMap MapTypeXSKMap MapTypeSockHash MapTypeCgroupStorage MapTypeReusePortSockArray MapTypePerCPUCgroupStorage MapTypeQueue MapTypeStack MapTypeSKStorage MapTypeDevmapHash MapTypeStructOps MapTypeRingbuf MapTypeInodeStorage MapTypeTaskStorage MapTypeBloomFilter )
type Module ¶
type Module struct {
// contains filtered or unexported fields
}
func NewModuleFromBuffer ¶
func NewModuleFromBufferArgs ¶
func NewModuleFromBufferArgs(args NewModuleArgs) (*Module, error)
func NewModuleFromFile ¶
func NewModuleFromFileArgs ¶
func NewModuleFromFileArgs(args NewModuleArgs) (*Module, error)
func (*Module) BPFLoadObject ¶
func (*Module) InitPerfBuf ¶
func (*Module) InitRingBuf ¶
func (m *Module) InitRingBuf(mapName string, eventsChan chan []byte) (*RingBuffer, error)
func (*Module) Iterator ¶
func (m *Module) Iterator() *BPFObjectIterator
func (*Module) TcHookInit ¶
type NewModuleArgs ¶
type PerfBuffer ¶
type PerfBuffer struct {
// contains filtered or unexported fields
}
func (*PerfBuffer) Close ¶
func (pb *PerfBuffer) Close()
func (*PerfBuffer) Start ¶
func (pb *PerfBuffer) Start()
func (*PerfBuffer) Stop ¶
func (pb *PerfBuffer) Stop()
type RingBuffer ¶
type RingBuffer struct {
// contains filtered or unexported fields
}
func (*RingBuffer) Close ¶
func (rb *RingBuffer) Close()
func (*RingBuffer) Start ¶
func (rb *RingBuffer) Start()
func (*RingBuffer) Stop ¶
func (rb *RingBuffer) Stop()
type TcAttachPoint ¶
type TcAttachPoint uint32
const ( BPFTcIngress TcAttachPoint = C.BPF_TC_INGRESS BPFTcEgress TcAttachPoint = C.BPF_TC_EGRESS BPFTcIngressEgress TcAttachPoint = C.BPF_TC_INGRESS | C.BPF_TC_EGRESS BPFTcCustom TcAttachPoint = C.BPF_TC_CUSTOM )
type TcHook ¶
type TcHook struct {
// contains filtered or unexported fields
}
func (*TcHook) GetInterfaceIndex ¶
func (*TcHook) SetAttachPoint ¶
func (hook *TcHook) SetAttachPoint(attachPoint TcAttachPoint)
func (*TcHook) SetInterfaceByIndex ¶
func (*TcHook) SetInterfaceByName ¶
Directories ¶
Path | Synopsis |
---|---|
samples
|
|
selftest
|
|
attachgenericfd
Module
|
|
global-variable
Module
|
|
iter
Module
|
|
iterators
Module
|
|
log-callbacks
Module
|
|
map-pin-info
Module
|
|
map-update
Module
|
|
module-attach-detach
Module
|
|
perfbuffers
Module
|
|
tracing
Module
|
|
tracing-by-offset
Module
|
|
uprobe
Module
|