bpf

package
v0.0.0-...-680b32d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 22, 2025 License: GPL-3.0 Imports: 30 Imported by: 0

Documentation

Index

Constants

View Source
const (
	PinPath             = "/sys/fs/bpf/kubeshark"
	PinNamePlainPackets = "packets_plain"
	PinNameTLSPackets   = "packets_tls"
)
View Source
const FlagsIsClientBit uint32 = 1 << 0
View Source
const FlagsIsReadBit uint32 = 1 << 1

Variables

This section is empty.

Functions

func LoadTracer

func LoadTracer() (*ebpf.CollectionSpec, error)

LoadTracer returns the embedded CollectionSpec for Tracer.

func LoadTracer46

func LoadTracer46() (*ebpf.CollectionSpec, error)

LoadTracer46 returns the embedded CollectionSpec for Tracer46.

func LoadTracer46Objects

func LoadTracer46Objects(obj interface{}, opts *ebpf.CollectionOptions) error

LoadTracer46Objects loads Tracer46 and converts it into a struct.

The following types are suitable as obj argument:

*Tracer46Objects
*Tracer46Programs
*Tracer46Maps

See ebpf.CollectionSpec.LoadAndAssign documentation for details.

func LoadTracerNoEbpf

func LoadTracerNoEbpf() (*ebpf.CollectionSpec, error)

LoadTracerNoEbpf returns the embedded CollectionSpec for TracerNoEbpf.

func LoadTracerNoEbpfObjects

func LoadTracerNoEbpfObjects(obj interface{}, opts *ebpf.CollectionOptions) error

LoadTracerNoEbpfObjects loads TracerNoEbpf and converts it into a struct.

The following types are suitable as obj argument:

*TracerNoEbpfObjects
*TracerNoEbpfPrograms
*TracerNoEbpfMaps

See ebpf.CollectionSpec.LoadAndAssign documentation for details.

func LoadTracerObjects

func LoadTracerObjects(obj interface{}, opts *ebpf.CollectionOptions) error

LoadTracerObjects loads Tracer and converts it into a struct.

The following types are suitable as obj argument:

*TracerObjects
*TracerPrograms
*TracerMaps

See ebpf.CollectionSpec.LoadAndAssign documentation for details.

func NewTlsReader

func NewTlsReader(tcpID *TcpID, parent *TlsStream, isClient bool) *tlsReader

Types

type AddressPair

type AddressPair struct {
	SrcIp   net.IP
	SrcPort uint16
	DstIp   net.IP
	DstPort uint16
}

type BpfObjects

type BpfObjects struct {
	BpfObjs TracerObjects
}

func NewBpfObjects

func NewBpfObjects(disableEbpfCapture *bool, preferCgroupV1 bool) (*BpfObjects, error)

type BpfObjectsImpl

type BpfObjectsImpl struct {
	// contains filtered or unexported fields
}

type GopacketWriter

type GopacketWriter func(packet gopacket.Packet) (err error)

type RawWriter

type RawWriter func(timestamp uint64, cgroupId uint64, direction uint8, firstLayerType gopacket.LayerType, l ...gopacket.SerializableLayer) (err error)

type TcpID

type TcpID struct {
	SrcIP   string
	DstIP   string
	SrcPort string
	DstPort string
}

type TcpStreamMap

type TcpStreamMap struct {
	// contains filtered or unexported fields
}

func NewTcpStreamMap

func NewTcpStreamMap() *TcpStreamMap

func (*TcpStreamMap) Close

func (streamMap *TcpStreamMap) Close()

func (*TcpStreamMap) Delete

func (streamMap *TcpStreamMap) Delete(key interface{})

func (*TcpStreamMap) NextId

func (streamMap *TcpStreamMap) NextId() int64

func (*TcpStreamMap) Range

func (streamMap *TcpStreamMap) Range(f func(key, value interface{}) bool)

func (*TcpStreamMap) Store

func (streamMap *TcpStreamMap) Store(key, value interface{})

type TlsPoller

type TlsPoller struct {
	// contains filtered or unexported fields
}

func NewTlsPoller

func NewTlsPoller(
	perfBuffer *ebpf.Map,
	rawWriter RawWriter,
	gopacketWriter GopacketWriter,
) (*TlsPoller, error)

func (*TlsPoller) GetLostChunks

func (p *TlsPoller) GetLostChunks() uint64

func (*TlsPoller) GetReceivedPackets

func (p *TlsPoller) GetReceivedPackets() uint64

func (*TlsPoller) Start

func (p *TlsPoller) Start()

func (*TlsPoller) Stop

func (p *TlsPoller) Stop() error

type TlsStream

type TlsStream struct {
	Client *tlsReader
	Server *tlsReader

	sync.Mutex
	// contains filtered or unexported fields
}

func NewTlsStream

func NewTlsStream(poller *TlsPoller, key string) *TlsStream

func (*TlsStream) GetId

func (t *TlsStream) GetId() int64

func (*TlsStream) SetId

func (t *TlsStream) SetId(id int64)

type Tracer46AcceptData

type Tracer46AcceptData struct{ Sock uint64 }

type Tracer46AcceptInfo

type Tracer46AcceptInfo struct{ Addrlen uint64 }

type Tracer46AddressInfo

type Tracer46AddressInfo struct {
	Family uint32
	Saddr  uint32
	Daddr  uint32
	Sport  uint16
	Dport  uint16
}

type Tracer46BufT

type Tracer46BufT struct{ Buf [32768]uint8 }

type Tracer46Configuration

type Tracer46Configuration struct{ Flags uint32 }

type Tracer46ConnectInfo

type Tracer46ConnectInfo struct {
	Fd      uint64
	Addrlen uint32
	// contains filtered or unexported fields
}

type Tracer46FilePath

type Tracer46FilePath struct {
	Path     [4096]int8
	DeviceId uint32
	Size     uint16
	Remove   uint8
	// contains filtered or unexported fields
}

type Tracer46FoundPid

type Tracer46FoundPid struct {
	Cgroup uint64
	Pid    uint32
	Pad1   uint32
}

type Tracer46GoidOffsets

type Tracer46GoidOffsets struct {
	G_addrOffset uint64
	GoidOffset   uint64
}

type Tracer46MapSpecs

type Tracer46MapSpecs struct {
	AcceptContext            *ebpf.MapSpec `ebpf:"accept_context"`
	AcceptSyscallContext     *ebpf.MapSpec `ebpf:"accept_syscall_context"`
	Bufs                     *ebpf.MapSpec `ebpf:"bufs"`
	CgroupIds                *ebpf.MapSpec `ebpf:"cgroup_ids"`
	ChunksBuffer             *ebpf.MapSpec `ebpf:"chunks_buffer"`
	ConnectSyscallInfo       *ebpf.MapSpec `ebpf:"connect_syscall_info"`
	ConnectionContext        *ebpf.MapSpec `ebpf:"connection_context"`
	DoMkdirContext           *ebpf.MapSpec `ebpf:"do_mkdir_context"`
	FileProbeHeap            *ebpf.MapSpec `ebpf:"file_probe_heap"`
	ForkInfo                 *ebpf.MapSpec `ebpf:"fork_info"`
	GoKernelReadContext      *ebpf.MapSpec `ebpf:"go_kernel_read_context"`
	GoKernelWriteContext     *ebpf.MapSpec `ebpf:"go_kernel_write_context"`
	GoReadContext            *ebpf.MapSpec `ebpf:"go_read_context"`
	GoUserKernelReadContext  *ebpf.MapSpec `ebpf:"go_user_kernel_read_context"`
	GoUserKernelWriteContext *ebpf.MapSpec `ebpf:"go_user_kernel_write_context"`
	GoWriteContext           *ebpf.MapSpec `ebpf:"go_write_context"`
	GoidOffsetsMap           *ebpf.MapSpec `ebpf:"goid_offsets_map"`
	Heap                     *ebpf.MapSpec `ebpf:"heap"`
	LogBuffer                *ebpf.MapSpec `ebpf:"log_buffer"`
	OpensslReadContext       *ebpf.MapSpec `ebpf:"openssl_read_context"`
	OpensslWriteContext      *ebpf.MapSpec `ebpf:"openssl_write_context"`
	PerfFoundCgroup          *ebpf.MapSpec `ebpf:"perf_found_cgroup"`
	PerfFoundOpenssl         *ebpf.MapSpec `ebpf:"perf_found_openssl"`
	PerfFoundPid             *ebpf.MapSpec `ebpf:"perf_found_pid"`
	PidsInfo                 *ebpf.MapSpec `ebpf:"pids_info"`
	Settings                 *ebpf.MapSpec `ebpf:"settings"`
	SyscallEvents            *ebpf.MapSpec `ebpf:"syscall_events"`
	TcpAcceptContext         *ebpf.MapSpec `ebpf:"tcp_accept_context"`
	TcpConnectContext        *ebpf.MapSpec `ebpf:"tcp_connect_context"`
}

Tracer46MapSpecs contains maps before they are loaded into the kernel.

It can be passed ebpf.CollectionSpec.Assign.

type Tracer46Maps

type Tracer46Maps struct {
	AcceptContext            *ebpf.Map `ebpf:"accept_context"`
	AcceptSyscallContext     *ebpf.Map `ebpf:"accept_syscall_context"`
	Bufs                     *ebpf.Map `ebpf:"bufs"`
	CgroupIds                *ebpf.Map `ebpf:"cgroup_ids"`
	ChunksBuffer             *ebpf.Map `ebpf:"chunks_buffer"`
	ConnectSyscallInfo       *ebpf.Map `ebpf:"connect_syscall_info"`
	ConnectionContext        *ebpf.Map `ebpf:"connection_context"`
	DoMkdirContext           *ebpf.Map `ebpf:"do_mkdir_context"`
	FileProbeHeap            *ebpf.Map `ebpf:"file_probe_heap"`
	ForkInfo                 *ebpf.Map `ebpf:"fork_info"`
	GoKernelReadContext      *ebpf.Map `ebpf:"go_kernel_read_context"`
	GoKernelWriteContext     *ebpf.Map `ebpf:"go_kernel_write_context"`
	GoReadContext            *ebpf.Map `ebpf:"go_read_context"`
	GoUserKernelReadContext  *ebpf.Map `ebpf:"go_user_kernel_read_context"`
	GoUserKernelWriteContext *ebpf.Map `ebpf:"go_user_kernel_write_context"`
	GoWriteContext           *ebpf.Map `ebpf:"go_write_context"`
	GoidOffsetsMap           *ebpf.Map `ebpf:"goid_offsets_map"`
	Heap                     *ebpf.Map `ebpf:"heap"`
	LogBuffer                *ebpf.Map `ebpf:"log_buffer"`
	OpensslReadContext       *ebpf.Map `ebpf:"openssl_read_context"`
	OpensslWriteContext      *ebpf.Map `ebpf:"openssl_write_context"`
	PerfFoundCgroup          *ebpf.Map `ebpf:"perf_found_cgroup"`
	PerfFoundOpenssl         *ebpf.Map `ebpf:"perf_found_openssl"`
	PerfFoundPid             *ebpf.Map `ebpf:"perf_found_pid"`
	PidsInfo                 *ebpf.Map `ebpf:"pids_info"`
	Settings                 *ebpf.Map `ebpf:"settings"`
	SyscallEvents            *ebpf.Map `ebpf:"syscall_events"`
	TcpAcceptContext         *ebpf.Map `ebpf:"tcp_accept_context"`
	TcpConnectContext        *ebpf.Map `ebpf:"tcp_connect_context"`
}

Tracer46Maps contains all maps after they have been loaded into the kernel.

It can be passed to LoadTracer46Objects or ebpf.CollectionSpec.LoadAndAssign.

func (*Tracer46Maps) Close

func (m *Tracer46Maps) Close() error

type Tracer46Objects

type Tracer46Objects struct {
	Tracer46Programs
	Tracer46Maps
}

Tracer46Objects contains all objects after they have been loaded into the kernel.

It can be passed to LoadTracer46Objects or ebpf.CollectionSpec.LoadAndAssign.

func (*Tracer46Objects) Close

func (o *Tracer46Objects) Close() error

type Tracer46PidInfo

type Tracer46PidInfo struct {
	SysFdOffset int64
	IsInterface uint64
}

type Tracer46PidOffset

type Tracer46PidOffset struct {
	Pid          uint64
	SymbolOffset uint64
}

type Tracer46ProgramSpecs

type Tracer46ProgramSpecs struct {
	DoAccept                      *ebpf.ProgramSpec `ebpf:"do_accept"`
	DoMkdirat                     *ebpf.ProgramSpec `ebpf:"do_mkdirat"`
	DoMkdiratRet                  *ebpf.ProgramSpec `ebpf:"do_mkdirat_ret"`
	GoCryptoTlsAbi0Read           *ebpf.ProgramSpec `ebpf:"go_crypto_tls_abi0_read"`
	GoCryptoTlsAbi0ReadEx         *ebpf.ProgramSpec `ebpf:"go_crypto_tls_abi0_read_ex"`
	GoCryptoTlsAbi0Write          *ebpf.ProgramSpec `ebpf:"go_crypto_tls_abi0_write"`
	GoCryptoTlsAbi0WriteEx        *ebpf.ProgramSpec `ebpf:"go_crypto_tls_abi0_write_ex"`
	GoCryptoTlsAbiInternalRead    *ebpf.ProgramSpec `ebpf:"go_crypto_tls_abi_internal_read"`
	GoCryptoTlsAbiInternalReadEx  *ebpf.ProgramSpec `ebpf:"go_crypto_tls_abi_internal_read_ex"`
	GoCryptoTlsAbiInternalWrite   *ebpf.ProgramSpec `ebpf:"go_crypto_tls_abi_internal_write"`
	GoCryptoTlsAbiInternalWriteEx *ebpf.ProgramSpec `ebpf:"go_crypto_tls_abi_internal_write_ex"`
	SchedProcessFork              *ebpf.ProgramSpec `ebpf:"sched_process_fork"`
	SecurityFileOpen              *ebpf.ProgramSpec `ebpf:"security_file_open"`
	SecurityInodeRename           *ebpf.ProgramSpec `ebpf:"security_inode_rename"`
	SecurityInodeUnlink           *ebpf.ProgramSpec `ebpf:"security_inode_unlink"`
	SecurityPathMkdir             *ebpf.ProgramSpec `ebpf:"security_path_mkdir"`
	SslPending                    *ebpf.ProgramSpec `ebpf:"ssl_pending"`
	SslRead                       *ebpf.ProgramSpec `ebpf:"ssl_read"`
	SslReadEx                     *ebpf.ProgramSpec `ebpf:"ssl_read_ex"`
	SslRetRead                    *ebpf.ProgramSpec `ebpf:"ssl_ret_read"`
	SslRetReadEx                  *ebpf.ProgramSpec `ebpf:"ssl_ret_read_ex"`
	SslRetWrite                   *ebpf.ProgramSpec `ebpf:"ssl_ret_write"`
	SslRetWriteEx                 *ebpf.ProgramSpec `ebpf:"ssl_ret_write_ex"`
	SslWrite                      *ebpf.ProgramSpec `ebpf:"ssl_write"`
	SslWriteEx                    *ebpf.ProgramSpec `ebpf:"ssl_write_ex"`
	SysEnterAccept4               *ebpf.ProgramSpec `ebpf:"sys_enter_accept4"`
	SysEnterConnect               *ebpf.ProgramSpec `ebpf:"sys_enter_connect"`
	SysEnterRead                  *ebpf.ProgramSpec `ebpf:"sys_enter_read"`
	SysEnterRecvfrom              *ebpf.ProgramSpec `ebpf:"sys_enter_recvfrom"`
	SysEnterSendto                *ebpf.ProgramSpec `ebpf:"sys_enter_sendto"`
	SysEnterWrite                 *ebpf.ProgramSpec `ebpf:"sys_enter_write"`
	SysExecveExit                 *ebpf.ProgramSpec `ebpf:"sys_execve_exit"`
	SysExitAccept4                *ebpf.ProgramSpec `ebpf:"sys_exit_accept4"`
	SysExitConnect                *ebpf.ProgramSpec `ebpf:"sys_exit_connect"`
	SysExitRead                   *ebpf.ProgramSpec `ebpf:"sys_exit_read"`
	SysExitWrite                  *ebpf.ProgramSpec `ebpf:"sys_exit_write"`
	SyscallAccept4Ret             *ebpf.ProgramSpec `ebpf:"syscall__accept4_ret"`
	TcpClose                      *ebpf.ProgramSpec `ebpf:"tcp_close"`
	TcpConnect                    *ebpf.ProgramSpec `ebpf:"tcp_connect"`
	TcpRecvmsg                    *ebpf.ProgramSpec `ebpf:"tcp_recvmsg"`
	TcpSendmsg                    *ebpf.ProgramSpec `ebpf:"tcp_sendmsg"`
	TraceCgroupConnect4           *ebpf.ProgramSpec `ebpf:"trace_cgroup_connect4"`
	VfsCreate                     *ebpf.ProgramSpec `ebpf:"vfs_create"`
	VfsRmdir                      *ebpf.ProgramSpec `ebpf:"vfs_rmdir"`
}

Tracer46Specs contains programs before they are loaded into the kernel.

It can be passed ebpf.CollectionSpec.Assign.

type Tracer46Programs

type Tracer46Programs struct {
	DoAccept                      *ebpf.Program `ebpf:"do_accept"`
	DoMkdirat                     *ebpf.Program `ebpf:"do_mkdirat"`
	DoMkdiratRet                  *ebpf.Program `ebpf:"do_mkdirat_ret"`
	GoCryptoTlsAbi0Read           *ebpf.Program `ebpf:"go_crypto_tls_abi0_read"`
	GoCryptoTlsAbi0ReadEx         *ebpf.Program `ebpf:"go_crypto_tls_abi0_read_ex"`
	GoCryptoTlsAbi0Write          *ebpf.Program `ebpf:"go_crypto_tls_abi0_write"`
	GoCryptoTlsAbi0WriteEx        *ebpf.Program `ebpf:"go_crypto_tls_abi0_write_ex"`
	GoCryptoTlsAbiInternalRead    *ebpf.Program `ebpf:"go_crypto_tls_abi_internal_read"`
	GoCryptoTlsAbiInternalReadEx  *ebpf.Program `ebpf:"go_crypto_tls_abi_internal_read_ex"`
	GoCryptoTlsAbiInternalWrite   *ebpf.Program `ebpf:"go_crypto_tls_abi_internal_write"`
	GoCryptoTlsAbiInternalWriteEx *ebpf.Program `ebpf:"go_crypto_tls_abi_internal_write_ex"`
	SchedProcessFork              *ebpf.Program `ebpf:"sched_process_fork"`
	SecurityFileOpen              *ebpf.Program `ebpf:"security_file_open"`
	SecurityInodeRename           *ebpf.Program `ebpf:"security_inode_rename"`
	SecurityInodeUnlink           *ebpf.Program `ebpf:"security_inode_unlink"`
	SecurityPathMkdir             *ebpf.Program `ebpf:"security_path_mkdir"`
	SslPending                    *ebpf.Program `ebpf:"ssl_pending"`
	SslRead                       *ebpf.Program `ebpf:"ssl_read"`
	SslReadEx                     *ebpf.Program `ebpf:"ssl_read_ex"`
	SslRetRead                    *ebpf.Program `ebpf:"ssl_ret_read"`
	SslRetReadEx                  *ebpf.Program `ebpf:"ssl_ret_read_ex"`
	SslRetWrite                   *ebpf.Program `ebpf:"ssl_ret_write"`
	SslRetWriteEx                 *ebpf.Program `ebpf:"ssl_ret_write_ex"`
	SslWrite                      *ebpf.Program `ebpf:"ssl_write"`
	SslWriteEx                    *ebpf.Program `ebpf:"ssl_write_ex"`
	SysEnterAccept4               *ebpf.Program `ebpf:"sys_enter_accept4"`
	SysEnterConnect               *ebpf.Program `ebpf:"sys_enter_connect"`
	SysEnterRead                  *ebpf.Program `ebpf:"sys_enter_read"`
	SysEnterRecvfrom              *ebpf.Program `ebpf:"sys_enter_recvfrom"`
	SysEnterSendto                *ebpf.Program `ebpf:"sys_enter_sendto"`
	SysEnterWrite                 *ebpf.Program `ebpf:"sys_enter_write"`
	SysExecveExit                 *ebpf.Program `ebpf:"sys_execve_exit"`
	SysExitAccept4                *ebpf.Program `ebpf:"sys_exit_accept4"`
	SysExitConnect                *ebpf.Program `ebpf:"sys_exit_connect"`
	SysExitRead                   *ebpf.Program `ebpf:"sys_exit_read"`
	SysExitWrite                  *ebpf.Program `ebpf:"sys_exit_write"`
	SyscallAccept4Ret             *ebpf.Program `ebpf:"syscall__accept4_ret"`
	TcpClose                      *ebpf.Program `ebpf:"tcp_close"`
	TcpConnect                    *ebpf.Program `ebpf:"tcp_connect"`
	TcpRecvmsg                    *ebpf.Program `ebpf:"tcp_recvmsg"`
	TcpSendmsg                    *ebpf.Program `ebpf:"tcp_sendmsg"`
	TraceCgroupConnect4           *ebpf.Program `ebpf:"trace_cgroup_connect4"`
	VfsCreate                     *ebpf.Program `ebpf:"vfs_create"`
	VfsRmdir                      *ebpf.Program `ebpf:"vfs_rmdir"`
}

Tracer46Programs contains all programs after they have been loaded into the kernel.

It can be passed to LoadTracer46Objects or ebpf.CollectionSpec.LoadAndAssign.

func (*Tracer46Programs) Close

func (p *Tracer46Programs) Close() error

type Tracer46Specs

type Tracer46Specs struct {
	Tracer46ProgramSpecs
	Tracer46MapSpecs
}

Tracer46Specs contains maps and programs before they are loaded into the kernel.

It can be passed ebpf.CollectionSpec.Assign.

type Tracer46SslInfo

type Tracer46SslInfo struct {
	Buffer        uint64
	BufferLen     uint32
	Fd            uint32
	CreatedAtNano uint64
	AddressInfo   Tracer46AddressInfo
	CountPtr      uint64
}

type Tracer46TlsChunk

type Tracer46TlsChunk struct {
	Timestamp   uint64
	CgroupId    uint32
	Pid         uint32
	Tgid        uint32
	Len         uint32
	Start       uint32
	Recorded    uint32
	Fd          uint32
	Flags       uint32
	AddressInfo Tracer46AddressInfo
	Direction   uint8
	Data        [4096]uint8
	// contains filtered or unexported fields
}

type TracerAcceptData

type TracerAcceptData struct{ Sock uint64 }

type TracerAcceptInfo

type TracerAcceptInfo struct{ Addrlen uint64 }

type TracerAddressInfo

type TracerAddressInfo struct {
	Family uint32
	Saddr  uint32
	Daddr  uint32
	Sport  uint16
	Dport  uint16
}

type TracerBufT

type TracerBufT struct{ Buf [32768]uint8 }

type TracerConfiguration

type TracerConfiguration struct{ Flags uint32 }

type TracerConnectInfo

type TracerConnectInfo struct {
	Fd      uint64
	Addrlen uint32
	// contains filtered or unexported fields
}

type TracerEntry

type TracerEntry struct{ Args [6]uint64 }

type TracerFilePath

type TracerFilePath struct {
	Path     [4096]int8
	DeviceId uint32
	Size     uint16
	Remove   uint8
	// contains filtered or unexported fields
}

type TracerFoundPid

type TracerFoundPid struct {
	Cgroup uint64
	Pid    uint32
	Pad1   uint32
}

type TracerGoidOffsets

type TracerGoidOffsets struct {
	G_addrOffset uint64
	GoidOffset   uint64
}

type TracerIndexerT

type TracerIndexerT struct {
	Ts     uint64
	IpCsum uint16

	Src struct{ In6U struct{ U6Addr8 [16]uint8 } }
	Dst struct{ In6U struct{ U6Addr8 [16]uint8 } }
	// contains filtered or unexported fields
}

type TracerMapSpecs

type TracerMapSpecs struct {
	AcceptContext            *ebpf.MapSpec `ebpf:"accept_context"`
	AcceptSyscallContext     *ebpf.MapSpec `ebpf:"accept_syscall_context"`
	Bufs                     *ebpf.MapSpec `ebpf:"bufs"`
	CgroupIds                *ebpf.MapSpec `ebpf:"cgroup_ids"`
	CgrpctxmapEg             *ebpf.MapSpec `ebpf:"cgrpctxmap_eg"`
	CgrpctxmapIn             *ebpf.MapSpec `ebpf:"cgrpctxmap_in"`
	ChunksBuffer             *ebpf.MapSpec `ebpf:"chunks_buffer"`
	ConnectSyscallInfo       *ebpf.MapSpec `ebpf:"connect_syscall_info"`
	ConnectionContext        *ebpf.MapSpec `ebpf:"connection_context"`
	DoMkdirContext           *ebpf.MapSpec `ebpf:"do_mkdir_context"`
	Entrymap                 *ebpf.MapSpec `ebpf:"entrymap"`
	FileProbeHeap            *ebpf.MapSpec `ebpf:"file_probe_heap"`
	ForkInfo                 *ebpf.MapSpec `ebpf:"fork_info"`
	GoKernelReadContext      *ebpf.MapSpec `ebpf:"go_kernel_read_context"`
	GoKernelWriteContext     *ebpf.MapSpec `ebpf:"go_kernel_write_context"`
	GoReadContext            *ebpf.MapSpec `ebpf:"go_read_context"`
	GoUserKernelReadContext  *ebpf.MapSpec `ebpf:"go_user_kernel_read_context"`
	GoUserKernelWriteContext *ebpf.MapSpec `ebpf:"go_user_kernel_write_context"`
	GoWriteContext           *ebpf.MapSpec `ebpf:"go_write_context"`
	GoidOffsetsMap           *ebpf.MapSpec `ebpf:"goid_offsets_map"`
	Heap                     *ebpf.MapSpec `ebpf:"heap"`
	Inodemap                 *ebpf.MapSpec `ebpf:"inodemap"`
	LogBuffer                *ebpf.MapSpec `ebpf:"log_buffer"`
	OpensslReadContext       *ebpf.MapSpec `ebpf:"openssl_read_context"`
	OpensslWriteContext      *ebpf.MapSpec `ebpf:"openssl_write_context"`
	PerfFoundCgroup          *ebpf.MapSpec `ebpf:"perf_found_cgroup"`
	PerfFoundOpenssl         *ebpf.MapSpec `ebpf:"perf_found_openssl"`
	PerfFoundPid             *ebpf.MapSpec `ebpf:"perf_found_pid"`
	PidsInfo                 *ebpf.MapSpec `ebpf:"pids_info"`
	PktHeap                  *ebpf.MapSpec `ebpf:"pkt_heap"`
	PktId                    *ebpf.MapSpec `ebpf:"pkt_id"`
	PktsBuffer               *ebpf.MapSpec `ebpf:"pkts_buffer"`
	Settings                 *ebpf.MapSpec `ebpf:"settings"`
	Sockmap                  *ebpf.MapSpec `ebpf:"sockmap"`
	SyscallEvents            *ebpf.MapSpec `ebpf:"syscall_events"`
	TcpAcceptContext         *ebpf.MapSpec `ebpf:"tcp_accept_context"`
	TcpConnectContext        *ebpf.MapSpec `ebpf:"tcp_connect_context"`
}

TracerMapSpecs contains maps before they are loaded into the kernel.

It can be passed ebpf.CollectionSpec.Assign.

type TracerMaps

type TracerMaps struct {
	AcceptContext            *ebpf.Map `ebpf:"accept_context"`
	AcceptSyscallContext     *ebpf.Map `ebpf:"accept_syscall_context"`
	Bufs                     *ebpf.Map `ebpf:"bufs"`
	CgroupIds                *ebpf.Map `ebpf:"cgroup_ids"`
	CgrpctxmapEg             *ebpf.Map `ebpf:"cgrpctxmap_eg"`
	CgrpctxmapIn             *ebpf.Map `ebpf:"cgrpctxmap_in"`
	ChunksBuffer             *ebpf.Map `ebpf:"chunks_buffer"`
	ConnectSyscallInfo       *ebpf.Map `ebpf:"connect_syscall_info"`
	ConnectionContext        *ebpf.Map `ebpf:"connection_context"`
	DoMkdirContext           *ebpf.Map `ebpf:"do_mkdir_context"`
	Entrymap                 *ebpf.Map `ebpf:"entrymap"`
	FileProbeHeap            *ebpf.Map `ebpf:"file_probe_heap"`
	ForkInfo                 *ebpf.Map `ebpf:"fork_info"`
	GoKernelReadContext      *ebpf.Map `ebpf:"go_kernel_read_context"`
	GoKernelWriteContext     *ebpf.Map `ebpf:"go_kernel_write_context"`
	GoReadContext            *ebpf.Map `ebpf:"go_read_context"`
	GoUserKernelReadContext  *ebpf.Map `ebpf:"go_user_kernel_read_context"`
	GoUserKernelWriteContext *ebpf.Map `ebpf:"go_user_kernel_write_context"`
	GoWriteContext           *ebpf.Map `ebpf:"go_write_context"`
	GoidOffsetsMap           *ebpf.Map `ebpf:"goid_offsets_map"`
	Heap                     *ebpf.Map `ebpf:"heap"`
	Inodemap                 *ebpf.Map `ebpf:"inodemap"`
	LogBuffer                *ebpf.Map `ebpf:"log_buffer"`
	OpensslReadContext       *ebpf.Map `ebpf:"openssl_read_context"`
	OpensslWriteContext      *ebpf.Map `ebpf:"openssl_write_context"`
	PerfFoundCgroup          *ebpf.Map `ebpf:"perf_found_cgroup"`
	PerfFoundOpenssl         *ebpf.Map `ebpf:"perf_found_openssl"`
	PerfFoundPid             *ebpf.Map `ebpf:"perf_found_pid"`
	PidsInfo                 *ebpf.Map `ebpf:"pids_info"`
	PktHeap                  *ebpf.Map `ebpf:"pkt_heap"`
	PktId                    *ebpf.Map `ebpf:"pkt_id"`
	PktsBuffer               *ebpf.Map `ebpf:"pkts_buffer"`
	Settings                 *ebpf.Map `ebpf:"settings"`
	Sockmap                  *ebpf.Map `ebpf:"sockmap"`
	SyscallEvents            *ebpf.Map `ebpf:"syscall_events"`
	TcpAcceptContext         *ebpf.Map `ebpf:"tcp_accept_context"`
	TcpConnectContext        *ebpf.Map `ebpf:"tcp_connect_context"`
}

TracerMaps contains all maps after they have been loaded into the kernel.

It can be passed to LoadTracerObjects or ebpf.CollectionSpec.LoadAndAssign.

func (*TracerMaps) Close

func (m *TracerMaps) Close() error

type TracerNoEbpfAcceptData

type TracerNoEbpfAcceptData struct{ Sock uint64 }

type TracerNoEbpfAcceptInfo

type TracerNoEbpfAcceptInfo struct{ Addrlen uint64 }

type TracerNoEbpfAddressInfo

type TracerNoEbpfAddressInfo struct {
	Family uint32
	Saddr  uint32
	Daddr  uint32
	Sport  uint16
	Dport  uint16
}

type TracerNoEbpfBufT

type TracerNoEbpfBufT struct{ Buf [32768]uint8 }

type TracerNoEbpfConfiguration

type TracerNoEbpfConfiguration struct{ Flags uint32 }

type TracerNoEbpfConnectInfo

type TracerNoEbpfConnectInfo struct {
	Fd      uint64
	Addrlen uint32
	// contains filtered or unexported fields
}

type TracerNoEbpfFilePath

type TracerNoEbpfFilePath struct {
	Path     [4096]int8
	DeviceId uint32
	Size     uint16
	Remove   uint8
	// contains filtered or unexported fields
}

type TracerNoEbpfFoundPid

type TracerNoEbpfFoundPid struct {
	Cgroup uint64
	Pid    uint32
	Pad1   uint32
}

type TracerNoEbpfGoidOffsets

type TracerNoEbpfGoidOffsets struct {
	G_addrOffset uint64
	GoidOffset   uint64
}

type TracerNoEbpfMapSpecs

type TracerNoEbpfMapSpecs struct {
	AcceptContext            *ebpf.MapSpec `ebpf:"accept_context"`
	AcceptSyscallContext     *ebpf.MapSpec `ebpf:"accept_syscall_context"`
	Bufs                     *ebpf.MapSpec `ebpf:"bufs"`
	CgroupIds                *ebpf.MapSpec `ebpf:"cgroup_ids"`
	ChunksBuffer             *ebpf.MapSpec `ebpf:"chunks_buffer"`
	ConnectSyscallInfo       *ebpf.MapSpec `ebpf:"connect_syscall_info"`
	ConnectionContext        *ebpf.MapSpec `ebpf:"connection_context"`
	DoMkdirContext           *ebpf.MapSpec `ebpf:"do_mkdir_context"`
	FileProbeHeap            *ebpf.MapSpec `ebpf:"file_probe_heap"`
	ForkInfo                 *ebpf.MapSpec `ebpf:"fork_info"`
	GoKernelReadContext      *ebpf.MapSpec `ebpf:"go_kernel_read_context"`
	GoKernelWriteContext     *ebpf.MapSpec `ebpf:"go_kernel_write_context"`
	GoReadContext            *ebpf.MapSpec `ebpf:"go_read_context"`
	GoUserKernelReadContext  *ebpf.MapSpec `ebpf:"go_user_kernel_read_context"`
	GoUserKernelWriteContext *ebpf.MapSpec `ebpf:"go_user_kernel_write_context"`
	GoWriteContext           *ebpf.MapSpec `ebpf:"go_write_context"`
	GoidOffsetsMap           *ebpf.MapSpec `ebpf:"goid_offsets_map"`
	Heap                     *ebpf.MapSpec `ebpf:"heap"`
	LogBuffer                *ebpf.MapSpec `ebpf:"log_buffer"`
	OpensslReadContext       *ebpf.MapSpec `ebpf:"openssl_read_context"`
	OpensslWriteContext      *ebpf.MapSpec `ebpf:"openssl_write_context"`
	PerfFoundCgroup          *ebpf.MapSpec `ebpf:"perf_found_cgroup"`
	PerfFoundOpenssl         *ebpf.MapSpec `ebpf:"perf_found_openssl"`
	PerfFoundPid             *ebpf.MapSpec `ebpf:"perf_found_pid"`
	PidsInfo                 *ebpf.MapSpec `ebpf:"pids_info"`
	Settings                 *ebpf.MapSpec `ebpf:"settings"`
	SyscallEvents            *ebpf.MapSpec `ebpf:"syscall_events"`
	TcpAcceptContext         *ebpf.MapSpec `ebpf:"tcp_accept_context"`
	TcpConnectContext        *ebpf.MapSpec `ebpf:"tcp_connect_context"`
}

TracerNoEbpfMapSpecs contains maps before they are loaded into the kernel.

It can be passed ebpf.CollectionSpec.Assign.

type TracerNoEbpfMaps

type TracerNoEbpfMaps struct {
	AcceptContext            *ebpf.Map `ebpf:"accept_context"`
	AcceptSyscallContext     *ebpf.Map `ebpf:"accept_syscall_context"`
	Bufs                     *ebpf.Map `ebpf:"bufs"`
	CgroupIds                *ebpf.Map `ebpf:"cgroup_ids"`
	ChunksBuffer             *ebpf.Map `ebpf:"chunks_buffer"`
	ConnectSyscallInfo       *ebpf.Map `ebpf:"connect_syscall_info"`
	ConnectionContext        *ebpf.Map `ebpf:"connection_context"`
	DoMkdirContext           *ebpf.Map `ebpf:"do_mkdir_context"`
	FileProbeHeap            *ebpf.Map `ebpf:"file_probe_heap"`
	ForkInfo                 *ebpf.Map `ebpf:"fork_info"`
	GoKernelReadContext      *ebpf.Map `ebpf:"go_kernel_read_context"`
	GoKernelWriteContext     *ebpf.Map `ebpf:"go_kernel_write_context"`
	GoReadContext            *ebpf.Map `ebpf:"go_read_context"`
	GoUserKernelReadContext  *ebpf.Map `ebpf:"go_user_kernel_read_context"`
	GoUserKernelWriteContext *ebpf.Map `ebpf:"go_user_kernel_write_context"`
	GoWriteContext           *ebpf.Map `ebpf:"go_write_context"`
	GoidOffsetsMap           *ebpf.Map `ebpf:"goid_offsets_map"`
	Heap                     *ebpf.Map `ebpf:"heap"`
	LogBuffer                *ebpf.Map `ebpf:"log_buffer"`
	OpensslReadContext       *ebpf.Map `ebpf:"openssl_read_context"`
	OpensslWriteContext      *ebpf.Map `ebpf:"openssl_write_context"`
	PerfFoundCgroup          *ebpf.Map `ebpf:"perf_found_cgroup"`
	PerfFoundOpenssl         *ebpf.Map `ebpf:"perf_found_openssl"`
	PerfFoundPid             *ebpf.Map `ebpf:"perf_found_pid"`
	PidsInfo                 *ebpf.Map `ebpf:"pids_info"`
	Settings                 *ebpf.Map `ebpf:"settings"`
	SyscallEvents            *ebpf.Map `ebpf:"syscall_events"`
	TcpAcceptContext         *ebpf.Map `ebpf:"tcp_accept_context"`
	TcpConnectContext        *ebpf.Map `ebpf:"tcp_connect_context"`
}

TracerNoEbpfMaps contains all maps after they have been loaded into the kernel.

It can be passed to LoadTracerNoEbpfObjects or ebpf.CollectionSpec.LoadAndAssign.

func (*TracerNoEbpfMaps) Close

func (m *TracerNoEbpfMaps) Close() error

type TracerNoEbpfObjects

type TracerNoEbpfObjects struct {
	TracerNoEbpfPrograms
	TracerNoEbpfMaps
}

TracerNoEbpfObjects contains all objects after they have been loaded into the kernel.

It can be passed to LoadTracerNoEbpfObjects or ebpf.CollectionSpec.LoadAndAssign.

func (*TracerNoEbpfObjects) Close

func (o *TracerNoEbpfObjects) Close() error

type TracerNoEbpfPidInfo

type TracerNoEbpfPidInfo struct {
	SysFdOffset int64
	IsInterface uint64
}

type TracerNoEbpfPidOffset

type TracerNoEbpfPidOffset struct {
	Pid          uint64
	SymbolOffset uint64
}

type TracerNoEbpfProgramSpecs

type TracerNoEbpfProgramSpecs struct {
	DoAccept                      *ebpf.ProgramSpec `ebpf:"do_accept"`
	DoMkdirat                     *ebpf.ProgramSpec `ebpf:"do_mkdirat"`
	DoMkdiratRet                  *ebpf.ProgramSpec `ebpf:"do_mkdirat_ret"`
	GoCryptoTlsAbi0Read           *ebpf.ProgramSpec `ebpf:"go_crypto_tls_abi0_read"`
	GoCryptoTlsAbi0ReadEx         *ebpf.ProgramSpec `ebpf:"go_crypto_tls_abi0_read_ex"`
	GoCryptoTlsAbi0Write          *ebpf.ProgramSpec `ebpf:"go_crypto_tls_abi0_write"`
	GoCryptoTlsAbi0WriteEx        *ebpf.ProgramSpec `ebpf:"go_crypto_tls_abi0_write_ex"`
	GoCryptoTlsAbiInternalRead    *ebpf.ProgramSpec `ebpf:"go_crypto_tls_abi_internal_read"`
	GoCryptoTlsAbiInternalReadEx  *ebpf.ProgramSpec `ebpf:"go_crypto_tls_abi_internal_read_ex"`
	GoCryptoTlsAbiInternalWrite   *ebpf.ProgramSpec `ebpf:"go_crypto_tls_abi_internal_write"`
	GoCryptoTlsAbiInternalWriteEx *ebpf.ProgramSpec `ebpf:"go_crypto_tls_abi_internal_write_ex"`
	SchedProcessFork              *ebpf.ProgramSpec `ebpf:"sched_process_fork"`
	SecurityFileOpen              *ebpf.ProgramSpec `ebpf:"security_file_open"`
	SecurityInodeRename           *ebpf.ProgramSpec `ebpf:"security_inode_rename"`
	SecurityInodeUnlink           *ebpf.ProgramSpec `ebpf:"security_inode_unlink"`
	SecurityPathMkdir             *ebpf.ProgramSpec `ebpf:"security_path_mkdir"`
	SslPending                    *ebpf.ProgramSpec `ebpf:"ssl_pending"`
	SslRead                       *ebpf.ProgramSpec `ebpf:"ssl_read"`
	SslReadEx                     *ebpf.ProgramSpec `ebpf:"ssl_read_ex"`
	SslRetRead                    *ebpf.ProgramSpec `ebpf:"ssl_ret_read"`
	SslRetReadEx                  *ebpf.ProgramSpec `ebpf:"ssl_ret_read_ex"`
	SslRetWrite                   *ebpf.ProgramSpec `ebpf:"ssl_ret_write"`
	SslRetWriteEx                 *ebpf.ProgramSpec `ebpf:"ssl_ret_write_ex"`
	SslWrite                      *ebpf.ProgramSpec `ebpf:"ssl_write"`
	SslWriteEx                    *ebpf.ProgramSpec `ebpf:"ssl_write_ex"`
	SysEnterAccept4               *ebpf.ProgramSpec `ebpf:"sys_enter_accept4"`
	SysEnterConnect               *ebpf.ProgramSpec `ebpf:"sys_enter_connect"`
	SysEnterRead                  *ebpf.ProgramSpec `ebpf:"sys_enter_read"`
	SysEnterRecvfrom              *ebpf.ProgramSpec `ebpf:"sys_enter_recvfrom"`
	SysEnterSendto                *ebpf.ProgramSpec `ebpf:"sys_enter_sendto"`
	SysEnterWrite                 *ebpf.ProgramSpec `ebpf:"sys_enter_write"`
	SysExecveExit                 *ebpf.ProgramSpec `ebpf:"sys_execve_exit"`
	SysExitAccept4                *ebpf.ProgramSpec `ebpf:"sys_exit_accept4"`
	SysExitConnect                *ebpf.ProgramSpec `ebpf:"sys_exit_connect"`
	SysExitRead                   *ebpf.ProgramSpec `ebpf:"sys_exit_read"`
	SysExitWrite                  *ebpf.ProgramSpec `ebpf:"sys_exit_write"`
	SyscallAccept4Ret             *ebpf.ProgramSpec `ebpf:"syscall__accept4_ret"`
	TcpClose                      *ebpf.ProgramSpec `ebpf:"tcp_close"`
	TcpConnect                    *ebpf.ProgramSpec `ebpf:"tcp_connect"`
	TcpRecvmsg                    *ebpf.ProgramSpec `ebpf:"tcp_recvmsg"`
	TcpSendmsg                    *ebpf.ProgramSpec `ebpf:"tcp_sendmsg"`
	TraceCgroupConnect4           *ebpf.ProgramSpec `ebpf:"trace_cgroup_connect4"`
	VfsCreate                     *ebpf.ProgramSpec `ebpf:"vfs_create"`
	VfsRmdir                      *ebpf.ProgramSpec `ebpf:"vfs_rmdir"`
}

TracerNoEbpfSpecs contains programs before they are loaded into the kernel.

It can be passed ebpf.CollectionSpec.Assign.

type TracerNoEbpfPrograms

type TracerNoEbpfPrograms struct {
	DoAccept                      *ebpf.Program `ebpf:"do_accept"`
	DoMkdirat                     *ebpf.Program `ebpf:"do_mkdirat"`
	DoMkdiratRet                  *ebpf.Program `ebpf:"do_mkdirat_ret"`
	GoCryptoTlsAbi0Read           *ebpf.Program `ebpf:"go_crypto_tls_abi0_read"`
	GoCryptoTlsAbi0ReadEx         *ebpf.Program `ebpf:"go_crypto_tls_abi0_read_ex"`
	GoCryptoTlsAbi0Write          *ebpf.Program `ebpf:"go_crypto_tls_abi0_write"`
	GoCryptoTlsAbi0WriteEx        *ebpf.Program `ebpf:"go_crypto_tls_abi0_write_ex"`
	GoCryptoTlsAbiInternalRead    *ebpf.Program `ebpf:"go_crypto_tls_abi_internal_read"`
	GoCryptoTlsAbiInternalReadEx  *ebpf.Program `ebpf:"go_crypto_tls_abi_internal_read_ex"`
	GoCryptoTlsAbiInternalWrite   *ebpf.Program `ebpf:"go_crypto_tls_abi_internal_write"`
	GoCryptoTlsAbiInternalWriteEx *ebpf.Program `ebpf:"go_crypto_tls_abi_internal_write_ex"`
	SchedProcessFork              *ebpf.Program `ebpf:"sched_process_fork"`
	SecurityFileOpen              *ebpf.Program `ebpf:"security_file_open"`
	SecurityInodeRename           *ebpf.Program `ebpf:"security_inode_rename"`
	SecurityInodeUnlink           *ebpf.Program `ebpf:"security_inode_unlink"`
	SecurityPathMkdir             *ebpf.Program `ebpf:"security_path_mkdir"`
	SslPending                    *ebpf.Program `ebpf:"ssl_pending"`
	SslRead                       *ebpf.Program `ebpf:"ssl_read"`
	SslReadEx                     *ebpf.Program `ebpf:"ssl_read_ex"`
	SslRetRead                    *ebpf.Program `ebpf:"ssl_ret_read"`
	SslRetReadEx                  *ebpf.Program `ebpf:"ssl_ret_read_ex"`
	SslRetWrite                   *ebpf.Program `ebpf:"ssl_ret_write"`
	SslRetWriteEx                 *ebpf.Program `ebpf:"ssl_ret_write_ex"`
	SslWrite                      *ebpf.Program `ebpf:"ssl_write"`
	SslWriteEx                    *ebpf.Program `ebpf:"ssl_write_ex"`
	SysEnterAccept4               *ebpf.Program `ebpf:"sys_enter_accept4"`
	SysEnterConnect               *ebpf.Program `ebpf:"sys_enter_connect"`
	SysEnterRead                  *ebpf.Program `ebpf:"sys_enter_read"`
	SysEnterRecvfrom              *ebpf.Program `ebpf:"sys_enter_recvfrom"`
	SysEnterSendto                *ebpf.Program `ebpf:"sys_enter_sendto"`
	SysEnterWrite                 *ebpf.Program `ebpf:"sys_enter_write"`
	SysExecveExit                 *ebpf.Program `ebpf:"sys_execve_exit"`
	SysExitAccept4                *ebpf.Program `ebpf:"sys_exit_accept4"`
	SysExitConnect                *ebpf.Program `ebpf:"sys_exit_connect"`
	SysExitRead                   *ebpf.Program `ebpf:"sys_exit_read"`
	SysExitWrite                  *ebpf.Program `ebpf:"sys_exit_write"`
	SyscallAccept4Ret             *ebpf.Program `ebpf:"syscall__accept4_ret"`
	TcpClose                      *ebpf.Program `ebpf:"tcp_close"`
	TcpConnect                    *ebpf.Program `ebpf:"tcp_connect"`
	TcpRecvmsg                    *ebpf.Program `ebpf:"tcp_recvmsg"`
	TcpSendmsg                    *ebpf.Program `ebpf:"tcp_sendmsg"`
	TraceCgroupConnect4           *ebpf.Program `ebpf:"trace_cgroup_connect4"`
	VfsCreate                     *ebpf.Program `ebpf:"vfs_create"`
	VfsRmdir                      *ebpf.Program `ebpf:"vfs_rmdir"`
}

TracerNoEbpfPrograms contains all programs after they have been loaded into the kernel.

It can be passed to LoadTracerNoEbpfObjects or ebpf.CollectionSpec.LoadAndAssign.

func (*TracerNoEbpfPrograms) Close

func (p *TracerNoEbpfPrograms) Close() error

type TracerNoEbpfSpecs

type TracerNoEbpfSpecs struct {
	TracerNoEbpfProgramSpecs
	TracerNoEbpfMapSpecs
}

TracerNoEbpfSpecs contains maps and programs before they are loaded into the kernel.

It can be passed ebpf.CollectionSpec.Assign.

type TracerNoEbpfSslInfo

type TracerNoEbpfSslInfo struct {
	Buffer        uint64
	BufferLen     uint32
	Fd            uint32
	CreatedAtNano uint64
	AddressInfo   TracerNoEbpfAddressInfo
	CountPtr      uint64
}

type TracerNoEbpfTlsChunk

type TracerNoEbpfTlsChunk struct {
	Timestamp   uint64
	CgroupId    uint32
	Pid         uint32
	Tgid        uint32
	Len         uint32
	Start       uint32
	Recorded    uint32
	Fd          uint32
	Flags       uint32
	AddressInfo TracerNoEbpfAddressInfo
	Direction   uint8
	Data        [4096]uint8
	// contains filtered or unexported fields
}

type TracerObjects

type TracerObjects struct {
	TracerPrograms
	TracerMaps
}

TracerObjects contains all objects after they have been loaded into the kernel.

It can be passed to LoadTracerObjects or ebpf.CollectionSpec.LoadAndAssign.

func (*TracerObjects) Close

func (o *TracerObjects) Close() error

type TracerPidInfo

type TracerPidInfo struct {
	SysFdOffset int64
	IsInterface uint64
}

type TracerPidOffset

type TracerPidOffset struct {
	Pid          uint64
	SymbolOffset uint64
}

type TracerPkt

type TracerPkt struct {
	Timestamp uint64
	CgroupId  uint64
	Id        uint64
	Len       uint32
	TotLen    uint32
	Counter   uint32
	Num       uint16
	Last      uint16
	Direction uint8
	Buf       [4096]uint8
	// contains filtered or unexported fields
}

type TracerPktIdT

type TracerPktIdT struct {
	Id   uint64
	Lock struct{ Val uint32 }
	// contains filtered or unexported fields
}

type TracerProgramSpecs

type TracerProgramSpecs struct {
	CgroupBpfRunFilterSkb         *ebpf.ProgramSpec `ebpf:"cgroup_bpf_run_filter_skb"`
	DoAccept                      *ebpf.ProgramSpec `ebpf:"do_accept"`
	DoMkdirat                     *ebpf.ProgramSpec `ebpf:"do_mkdirat"`
	DoMkdiratRet                  *ebpf.ProgramSpec `ebpf:"do_mkdirat_ret"`
	FilterEgressPackets           *ebpf.ProgramSpec `ebpf:"filter_egress_packets"`
	FilterIngressPackets          *ebpf.ProgramSpec `ebpf:"filter_ingress_packets"`
	GoCryptoTlsAbi0Read           *ebpf.ProgramSpec `ebpf:"go_crypto_tls_abi0_read"`
	GoCryptoTlsAbi0ReadEx         *ebpf.ProgramSpec `ebpf:"go_crypto_tls_abi0_read_ex"`
	GoCryptoTlsAbi0Write          *ebpf.ProgramSpec `ebpf:"go_crypto_tls_abi0_write"`
	GoCryptoTlsAbi0WriteEx        *ebpf.ProgramSpec `ebpf:"go_crypto_tls_abi0_write_ex"`
	GoCryptoTlsAbiInternalRead    *ebpf.ProgramSpec `ebpf:"go_crypto_tls_abi_internal_read"`
	GoCryptoTlsAbiInternalReadEx  *ebpf.ProgramSpec `ebpf:"go_crypto_tls_abi_internal_read_ex"`
	GoCryptoTlsAbiInternalWrite   *ebpf.ProgramSpec `ebpf:"go_crypto_tls_abi_internal_write"`
	GoCryptoTlsAbiInternalWriteEx *ebpf.ProgramSpec `ebpf:"go_crypto_tls_abi_internal_write_ex"`
	SchedProcessFork              *ebpf.ProgramSpec `ebpf:"sched_process_fork"`
	SecurityFileOpen              *ebpf.ProgramSpec `ebpf:"security_file_open"`
	SecurityInodeRename           *ebpf.ProgramSpec `ebpf:"security_inode_rename"`
	SecurityInodeUnlink           *ebpf.ProgramSpec `ebpf:"security_inode_unlink"`
	SecurityPathMkdir             *ebpf.ProgramSpec `ebpf:"security_path_mkdir"`
	SecuritySkClone               *ebpf.ProgramSpec `ebpf:"security_sk_clone"`
	SecuritySocketRecvmsg         *ebpf.ProgramSpec `ebpf:"security_socket_recvmsg"`
	SecuritySocketSendmsg         *ebpf.ProgramSpec `ebpf:"security_socket_sendmsg"`
	SockAllocFile                 *ebpf.ProgramSpec `ebpf:"sock_alloc_file"`
	SockAllocFileRet              *ebpf.ProgramSpec `ebpf:"sock_alloc_file_ret"`
	SslPending                    *ebpf.ProgramSpec `ebpf:"ssl_pending"`
	SslRead                       *ebpf.ProgramSpec `ebpf:"ssl_read"`
	SslReadEx                     *ebpf.ProgramSpec `ebpf:"ssl_read_ex"`
	SslRetRead                    *ebpf.ProgramSpec `ebpf:"ssl_ret_read"`
	SslRetReadEx                  *ebpf.ProgramSpec `ebpf:"ssl_ret_read_ex"`
	SslRetWrite                   *ebpf.ProgramSpec `ebpf:"ssl_ret_write"`
	SslRetWriteEx                 *ebpf.ProgramSpec `ebpf:"ssl_ret_write_ex"`
	SslWrite                      *ebpf.ProgramSpec `ebpf:"ssl_write"`
	SslWriteEx                    *ebpf.ProgramSpec `ebpf:"ssl_write_ex"`
	SysEnterAccept4               *ebpf.ProgramSpec `ebpf:"sys_enter_accept4"`
	SysEnterConnect               *ebpf.ProgramSpec `ebpf:"sys_enter_connect"`
	SysEnterRead                  *ebpf.ProgramSpec `ebpf:"sys_enter_read"`
	SysEnterRecvfrom              *ebpf.ProgramSpec `ebpf:"sys_enter_recvfrom"`
	SysEnterSendto                *ebpf.ProgramSpec `ebpf:"sys_enter_sendto"`
	SysEnterWrite                 *ebpf.ProgramSpec `ebpf:"sys_enter_write"`
	SysExecveExit                 *ebpf.ProgramSpec `ebpf:"sys_execve_exit"`
	SysExitAccept4                *ebpf.ProgramSpec `ebpf:"sys_exit_accept4"`
	SysExitConnect                *ebpf.ProgramSpec `ebpf:"sys_exit_connect"`
	SysExitRead                   *ebpf.ProgramSpec `ebpf:"sys_exit_read"`
	SysExitWrite                  *ebpf.ProgramSpec `ebpf:"sys_exit_write"`
	SyscallAccept4Ret             *ebpf.ProgramSpec `ebpf:"syscall__accept4_ret"`
	TcpClose                      *ebpf.ProgramSpec `ebpf:"tcp_close"`
	TcpConnect                    *ebpf.ProgramSpec `ebpf:"tcp_connect"`
	TcpRecvmsg                    *ebpf.ProgramSpec `ebpf:"tcp_recvmsg"`
	TcpSendmsg                    *ebpf.ProgramSpec `ebpf:"tcp_sendmsg"`
	TraceCgroupConnect4           *ebpf.ProgramSpec `ebpf:"trace_cgroup_connect4"`
	VfsCreate                     *ebpf.ProgramSpec `ebpf:"vfs_create"`
	VfsRmdir                      *ebpf.ProgramSpec `ebpf:"vfs_rmdir"`
}

TracerSpecs contains programs before they are loaded into the kernel.

It can be passed ebpf.CollectionSpec.Assign.

type TracerPrograms

type TracerPrograms struct {
	CgroupBpfRunFilterSkb         *ebpf.Program `ebpf:"cgroup_bpf_run_filter_skb"`
	DoAccept                      *ebpf.Program `ebpf:"do_accept"`
	DoMkdirat                     *ebpf.Program `ebpf:"do_mkdirat"`
	DoMkdiratRet                  *ebpf.Program `ebpf:"do_mkdirat_ret"`
	FilterEgressPackets           *ebpf.Program `ebpf:"filter_egress_packets"`
	FilterIngressPackets          *ebpf.Program `ebpf:"filter_ingress_packets"`
	GoCryptoTlsAbi0Read           *ebpf.Program `ebpf:"go_crypto_tls_abi0_read"`
	GoCryptoTlsAbi0ReadEx         *ebpf.Program `ebpf:"go_crypto_tls_abi0_read_ex"`
	GoCryptoTlsAbi0Write          *ebpf.Program `ebpf:"go_crypto_tls_abi0_write"`
	GoCryptoTlsAbi0WriteEx        *ebpf.Program `ebpf:"go_crypto_tls_abi0_write_ex"`
	GoCryptoTlsAbiInternalRead    *ebpf.Program `ebpf:"go_crypto_tls_abi_internal_read"`
	GoCryptoTlsAbiInternalReadEx  *ebpf.Program `ebpf:"go_crypto_tls_abi_internal_read_ex"`
	GoCryptoTlsAbiInternalWrite   *ebpf.Program `ebpf:"go_crypto_tls_abi_internal_write"`
	GoCryptoTlsAbiInternalWriteEx *ebpf.Program `ebpf:"go_crypto_tls_abi_internal_write_ex"`
	SchedProcessFork              *ebpf.Program `ebpf:"sched_process_fork"`
	SecurityFileOpen              *ebpf.Program `ebpf:"security_file_open"`
	SecurityInodeRename           *ebpf.Program `ebpf:"security_inode_rename"`
	SecurityInodeUnlink           *ebpf.Program `ebpf:"security_inode_unlink"`
	SecurityPathMkdir             *ebpf.Program `ebpf:"security_path_mkdir"`
	SecuritySkClone               *ebpf.Program `ebpf:"security_sk_clone"`
	SecuritySocketRecvmsg         *ebpf.Program `ebpf:"security_socket_recvmsg"`
	SecuritySocketSendmsg         *ebpf.Program `ebpf:"security_socket_sendmsg"`
	SockAllocFile                 *ebpf.Program `ebpf:"sock_alloc_file"`
	SockAllocFileRet              *ebpf.Program `ebpf:"sock_alloc_file_ret"`
	SslPending                    *ebpf.Program `ebpf:"ssl_pending"`
	SslRead                       *ebpf.Program `ebpf:"ssl_read"`
	SslReadEx                     *ebpf.Program `ebpf:"ssl_read_ex"`
	SslRetRead                    *ebpf.Program `ebpf:"ssl_ret_read"`
	SslRetReadEx                  *ebpf.Program `ebpf:"ssl_ret_read_ex"`
	SslRetWrite                   *ebpf.Program `ebpf:"ssl_ret_write"`
	SslRetWriteEx                 *ebpf.Program `ebpf:"ssl_ret_write_ex"`
	SslWrite                      *ebpf.Program `ebpf:"ssl_write"`
	SslWriteEx                    *ebpf.Program `ebpf:"ssl_write_ex"`
	SysEnterAccept4               *ebpf.Program `ebpf:"sys_enter_accept4"`
	SysEnterConnect               *ebpf.Program `ebpf:"sys_enter_connect"`
	SysEnterRead                  *ebpf.Program `ebpf:"sys_enter_read"`
	SysEnterRecvfrom              *ebpf.Program `ebpf:"sys_enter_recvfrom"`
	SysEnterSendto                *ebpf.Program `ebpf:"sys_enter_sendto"`
	SysEnterWrite                 *ebpf.Program `ebpf:"sys_enter_write"`
	SysExecveExit                 *ebpf.Program `ebpf:"sys_execve_exit"`
	SysExitAccept4                *ebpf.Program `ebpf:"sys_exit_accept4"`
	SysExitConnect                *ebpf.Program `ebpf:"sys_exit_connect"`
	SysExitRead                   *ebpf.Program `ebpf:"sys_exit_read"`
	SysExitWrite                  *ebpf.Program `ebpf:"sys_exit_write"`
	SyscallAccept4Ret             *ebpf.Program `ebpf:"syscall__accept4_ret"`
	TcpClose                      *ebpf.Program `ebpf:"tcp_close"`
	TcpConnect                    *ebpf.Program `ebpf:"tcp_connect"`
	TcpRecvmsg                    *ebpf.Program `ebpf:"tcp_recvmsg"`
	TcpSendmsg                    *ebpf.Program `ebpf:"tcp_sendmsg"`
	TraceCgroupConnect4           *ebpf.Program `ebpf:"trace_cgroup_connect4"`
	VfsCreate                     *ebpf.Program `ebpf:"vfs_create"`
	VfsRmdir                      *ebpf.Program `ebpf:"vfs_rmdir"`
}

TracerPrograms contains all programs after they have been loaded into the kernel.

It can be passed to LoadTracerObjects or ebpf.CollectionSpec.LoadAndAssign.

func (*TracerPrograms) Close

func (p *TracerPrograms) Close() error

type TracerSpecs

type TracerSpecs struct {
	TracerProgramSpecs
	TracerMapSpecs
}

TracerSpecs contains maps and programs before they are loaded into the kernel.

It can be passed ebpf.CollectionSpec.Assign.

type TracerSslInfo

type TracerSslInfo struct {
	Buffer        uint64
	BufferLen     uint32
	Fd            uint32
	CreatedAtNano uint64
	AddressInfo   TracerAddressInfo
	CountPtr      uint64
}

type TracerTlsChunk

type TracerTlsChunk struct {
	Timestamp   uint64
	CgroupId    uint32
	Pid         uint32
	Tgid        uint32
	Len         uint32
	Start       uint32
	Recorded    uint32
	Fd          uint32
	Flags       uint32
	AddressInfo TracerAddressInfo
	Direction   uint8
	Data        [4096]uint8
	// contains filtered or unexported fields
}

func (*TracerTlsChunk) GetAddressPair

func (c *TracerTlsChunk) GetAddressPair() *AddressPair

func (*TracerTlsChunk) GetReader

func (c *TracerTlsChunk) GetReader(stream *TlsStream) *tlsReader

func (*TracerTlsChunk) IsClient

func (c *TracerTlsChunk) IsClient() bool

func (*TracerTlsChunk) IsRequest

func (c *TracerTlsChunk) IsRequest() bool

func (*TracerTlsChunk) IsServer

func (c *TracerTlsChunk) IsServer() bool

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL