// Code generated by bpf2go; DO NOT EDIT. //go:build 386 || amd64 package loader import ( "bytes" _ "embed" "fmt" "io" "github.com/cilium/ebpf" ) type Ja4SslAcceptEvent struct { PidTgid uint64 Fd uint32 SrcIp uint32 SrcPort uint16 TimestampNs uint64 } type Ja4SslAcceptKey struct { PidTgid uint64 Fd uint32 } type Ja4SslSslConnInfo struct { Fd uint32 SrcIp uint32 SrcPort uint16 } type Ja4SslSslReadArgs struct { SslPtr uint64 BufPtr uint64 Num uint32 } // LoadJa4Ssl returns the embedded CollectionSpec for Ja4Ssl. func LoadJa4Ssl() (*ebpf.CollectionSpec, error) { reader := bytes.NewReader(_Ja4SslBytes) spec, err := ebpf.LoadCollectionSpecFromReader(reader) if err != nil { return nil, fmt.Errorf("can't load Ja4Ssl: %w", err) } return spec, err } // LoadJa4SslObjects loads Ja4Ssl and converts it into a struct. // // The following types are suitable as obj argument: // // *Ja4SslObjects // *Ja4SslPrograms // *Ja4SslMaps // // See ebpf.CollectionSpec.LoadAndAssign documentation for details. func LoadJa4SslObjects(obj interface{}, opts *ebpf.CollectionOptions) error { spec, err := LoadJa4Ssl() if err != nil { return err } return spec.LoadAndAssign(obj, opts) } // Ja4SslSpecs contains maps and programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. type Ja4SslSpecs struct { Ja4SslProgramSpecs Ja4SslMapSpecs } // Ja4SslSpecs contains programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. type Ja4SslProgramSpecs struct { KprobeAccept4Entry *ebpf.ProgramSpec `ebpf:"kprobe_accept4_entry"` KretprobeAccept4Exit *ebpf.ProgramSpec `ebpf:"kretprobe_accept4_exit"` UprobeSslReadEntry *ebpf.ProgramSpec `ebpf:"uprobe_ssl_read_entry"` UprobeSslSetFd *ebpf.ProgramSpec `ebpf:"uprobe_ssl_set_fd"` UretprobeSslReadExit *ebpf.ProgramSpec `ebpf:"uretprobe_ssl_read_exit"` } // Ja4SslMapSpecs contains maps before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. type Ja4SslMapSpecs struct { AcceptArgsMap *ebpf.MapSpec `ebpf:"accept_args_map"` AcceptMap *ebpf.MapSpec `ebpf:"accept_map"` FdConnMap *ebpf.MapSpec `ebpf:"fd_conn_map"` RbAccept *ebpf.MapSpec `ebpf:"rb_accept"` RbHttpPlain *ebpf.MapSpec `ebpf:"rb_http_plain"` RbSslData *ebpf.MapSpec `ebpf:"rb_ssl_data"` RbTcpSyn *ebpf.MapSpec `ebpf:"rb_tcp_syn"` RbTlsHello *ebpf.MapSpec `ebpf:"rb_tls_hello"` SslArgsMap *ebpf.MapSpec `ebpf:"ssl_args_map"` SslConnMap *ebpf.MapSpec `ebpf:"ssl_conn_map"` } // Ja4SslObjects contains all objects after they have been loaded into the kernel. // // It can be passed to LoadJa4SslObjects or ebpf.CollectionSpec.LoadAndAssign. type Ja4SslObjects struct { Ja4SslPrograms Ja4SslMaps } func (o *Ja4SslObjects) Close() error { return _Ja4SslClose( &o.Ja4SslPrograms, &o.Ja4SslMaps, ) } // Ja4SslMaps contains all maps after they have been loaded into the kernel. // // It can be passed to LoadJa4SslObjects or ebpf.CollectionSpec.LoadAndAssign. type Ja4SslMaps struct { AcceptArgsMap *ebpf.Map `ebpf:"accept_args_map"` AcceptMap *ebpf.Map `ebpf:"accept_map"` FdConnMap *ebpf.Map `ebpf:"fd_conn_map"` RbAccept *ebpf.Map `ebpf:"rb_accept"` RbHttpPlain *ebpf.Map `ebpf:"rb_http_plain"` RbSslData *ebpf.Map `ebpf:"rb_ssl_data"` RbTcpSyn *ebpf.Map `ebpf:"rb_tcp_syn"` RbTlsHello *ebpf.Map `ebpf:"rb_tls_hello"` SslArgsMap *ebpf.Map `ebpf:"ssl_args_map"` SslConnMap *ebpf.Map `ebpf:"ssl_conn_map"` } func (m *Ja4SslMaps) Close() error { return _Ja4SslClose( m.AcceptArgsMap, m.AcceptMap, m.FdConnMap, m.RbAccept, m.RbHttpPlain, m.RbSslData, m.RbTcpSyn, m.RbTlsHello, m.SslArgsMap, m.SslConnMap, ) } // Ja4SslPrograms contains all programs after they have been loaded into the kernel. // // It can be passed to LoadJa4SslObjects or ebpf.CollectionSpec.LoadAndAssign. type Ja4SslPrograms struct { KprobeAccept4Entry *ebpf.Program `ebpf:"kprobe_accept4_entry"` KretprobeAccept4Exit *ebpf.Program `ebpf:"kretprobe_accept4_exit"` UprobeSslReadEntry *ebpf.Program `ebpf:"uprobe_ssl_read_entry"` UprobeSslSetFd *ebpf.Program `ebpf:"uprobe_ssl_set_fd"` UretprobeSslReadExit *ebpf.Program `ebpf:"uretprobe_ssl_read_exit"` } func (p *Ja4SslPrograms) Close() error { return _Ja4SslClose( p.KprobeAccept4Entry, p.KretprobeAccept4Exit, p.UprobeSslReadEntry, p.UprobeSslSetFd, p.UretprobeSslReadExit, ) } func _Ja4SslClose(closers ...io.Closer) error { for _, closer := range closers { if err := closer.Close(); err != nil { return err } } return nil } // Do not access this directly. // //go:embed ja4ssl_x86_bpfel.o var _Ja4SslBytes []byte