// Code generated by bpf2go; DO NOT EDIT. //go:build 386 || amd64 package main import ( "bytes" _ "embed" "fmt" "io" "structs" "github.com/cilium/ebpf" ) type bpfIn6Addr struct { _ structs.HostLayout In6U struct { _ structs.HostLayout U6Addr8 [16]uint8 } } type bpfLpmKey struct { _ structs.HostLayout Prefixlen uint32 Ip uint32 } type bpfLpmKey6 struct { _ structs.HostLayout Prefixlen uint32 Ip bpfIn6Addr } type bpfScanState struct { _ structs.HostLayout Ports [32]uint16 Count uint8 _ [1]byte } // loadBpf returns the embedded CollectionSpec for bpf. func loadBpf() (*ebpf.CollectionSpec, error) { reader := bytes.NewReader(_BpfBytes) spec, err := ebpf.LoadCollectionSpecFromReader(reader) if err != nil { return nil, fmt.Errorf("can't load bpf: %w", err) } return spec, err } // loadBpfObjects loads bpf and converts it into a struct. // // The following types are suitable as obj argument: // // *bpfObjects // *bpfPrograms // *bpfMaps // // See ebpf.CollectionSpec.LoadAndAssign documentation for details. func loadBpfObjects(obj interface{}, opts *ebpf.CollectionOptions) error { spec, err := loadBpf() if err != nil { return err } return spec.LoadAndAssign(obj, opts) } // bpfSpecs contains maps and programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. type bpfSpecs struct { bpfProgramSpecs bpfMapSpecs bpfVariableSpecs } // bpfProgramSpecs contains programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. type bpfProgramSpecs struct { XdpProgFunc *ebpf.ProgramSpec `ebpf:"xdp_prog_func"` } // bpfMapSpecs contains maps before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. type bpfMapSpecs struct { BanMap *ebpf.MapSpec `ebpf:"ban_map"` BanMapV6 *ebpf.MapSpec `ebpf:"ban_map_v6"` EventRingbuf *ebpf.MapSpec `ebpf:"event_ringbuf"` EventSampleCounter *ebpf.MapSpec `ebpf:"event_sample_counter"` EventSampleRate *ebpf.MapSpec `ebpf:"event_sample_rate"` ScanCounter *ebpf.MapSpec `ebpf:"scan_counter"` WhitelistCidr *ebpf.MapSpec `ebpf:"whitelist_cidr"` WhitelistCidrV6 *ebpf.MapSpec `ebpf:"whitelist_cidr_v6"` } // bpfVariableSpecs contains global variables before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. type bpfVariableSpecs struct { } // bpfObjects contains all objects after they have been loaded into the kernel. // // It can be passed to loadBpfObjects or ebpf.CollectionSpec.LoadAndAssign. type bpfObjects struct { bpfPrograms bpfMaps bpfVariables } func (o *bpfObjects) Close() error { return _BpfClose( &o.bpfPrograms, &o.bpfMaps, ) } // bpfMaps contains all maps after they have been loaded into the kernel. // // It can be passed to loadBpfObjects or ebpf.CollectionSpec.LoadAndAssign. type bpfMaps struct { BanMap *ebpf.Map `ebpf:"ban_map"` BanMapV6 *ebpf.Map `ebpf:"ban_map_v6"` EventRingbuf *ebpf.Map `ebpf:"event_ringbuf"` EventSampleCounter *ebpf.Map `ebpf:"event_sample_counter"` EventSampleRate *ebpf.Map `ebpf:"event_sample_rate"` ScanCounter *ebpf.Map `ebpf:"scan_counter"` WhitelistCidr *ebpf.Map `ebpf:"whitelist_cidr"` WhitelistCidrV6 *ebpf.Map `ebpf:"whitelist_cidr_v6"` } func (m *bpfMaps) Close() error { return _BpfClose( m.BanMap, m.BanMapV6, m.EventRingbuf, m.EventSampleCounter, m.EventSampleRate, m.ScanCounter, m.WhitelistCidr, m.WhitelistCidrV6, ) } // bpfVariables contains all global variables after they have been loaded into the kernel. // // It can be passed to loadBpfObjects or ebpf.CollectionSpec.LoadAndAssign. type bpfVariables struct { } // bpfPrograms contains all programs after they have been loaded into the kernel. // // It can be passed to loadBpfObjects or ebpf.CollectionSpec.LoadAndAssign. type bpfPrograms struct { XdpProgFunc *ebpf.Program `ebpf:"xdp_prog_func"` } func (p *bpfPrograms) Close() error { return _BpfClose( p.XdpProgFunc, ) } func _BpfClose(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 bpf_x86_bpfel.o var _BpfBytes []byte