From 312e207a086168d66eda744dc7e449ca2ace2e5a Mon Sep 17 00:00:00 2001 From: "M. Mert Yildiran" Date: Sun, 19 Jun 2022 13:21:19 +0300 Subject: [PATCH] Fix the build script --- tap/tlstapper/bpf-builder/build.sh | 12 +- tap/tlstapper/tlstapper_bpfeb.o | Bin 155864 -> 0 bytes tap/tlstapper/tlstapper_bpfel.go | 212 ------------------ tap/tlstapper/tlstapper_bpfel.o | Bin 156680 -> 0 bytes ...tapper_bpfeb.go => tlstapper_bpfel_x86.go} | 6 +- tap/tlstapper/tlstapper_bpfel_x86.o | Bin 0 -> 156432 bytes 6 files changed, 9 insertions(+), 221 deletions(-) delete mode 100644 tap/tlstapper/tlstapper_bpfeb.o delete mode 100644 tap/tlstapper/tlstapper_bpfel.go delete mode 100644 tap/tlstapper/tlstapper_bpfel.o rename tap/tlstapper/{tlstapper_bpfeb.go => tlstapper_bpfel_x86.go} (97%) create mode 100644 tap/tlstapper/tlstapper_bpfel_x86.o diff --git a/tap/tlstapper/bpf-builder/build.sh b/tap/tlstapper/bpf-builder/build.sh index 1e71bb955..713931477 100755 --- a/tap/tlstapper/bpf-builder/build.sh +++ b/tap/tlstapper/bpf-builder/build.sh @@ -6,8 +6,11 @@ MIZU_HOME=$(realpath ../../../) docker build -t mizu-ebpf-builder . || exit 1 +BPF_TARGET=amd64 BPF_CFLAGS="-O2 -g -D__TARGET_ARCH_x86" -if [[ $1 == "arm64" ]]; then +ARCH=$(uname -m) +if [[ $ARCH == "aarch64" ]]; then + BPF_TARGET=arm64 BPF_CFLAGS="-O2 -g -D__TARGET_ARCH_arm64" fi @@ -17,11 +20,8 @@ docker run --rm \ -v $(go env GOPATH):/root/go \ -it mizu-ebpf-builder \ sh -c " - BPF_CFLAGS=\"$BPF_CFLAGS\" go generate tap/tlstapper/tls_tapper.go - chown $(id -u):$(id -g) tap/tlstapper/tlstapper_bpfeb.go - chown $(id -u):$(id -g) tap/tlstapper/tlstapper_bpfeb.o - chown $(id -u):$(id -g) tap/tlstapper/tlstapper_bpfel.go - chown $(id -u):$(id -g) tap/tlstapper/tlstapper_bpfel.o + BPF_TARGET=\"$BPF_TARGET\" BPF_CFLAGS=\"$BPF_CFLAGS\" go generate tap/tlstapper/tls_tapper.go + chown $(id -u):$(id -g) tap/tlstapper/tlstapper_bpf* " || exit 1 popd diff --git a/tap/tlstapper/tlstapper_bpfeb.o b/tap/tlstapper/tlstapper_bpfeb.o deleted file mode 100644 index 5098e04ad99bfcd678dd48a6add32b3ca8f11bd1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 155864 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 BuF(Jh diff --git a/tap/tlstapper/tlstapper_bpfel.go b/tap/tlstapper/tlstapper_bpfel.go deleted file mode 100644 index a149b76f6..000000000 --- a/tap/tlstapper/tlstapper_bpfel.go +++ /dev/null @@ -1,212 +0,0 @@ -// Code generated by bpf2go; DO NOT EDIT. -//go:build 386 || amd64 || amd64p32 || arm || arm64 || mips64le || mips64p32le || mipsle || ppc64le || riscv64 -// +build 386 amd64 amd64p32 arm arm64 mips64le mips64p32le mipsle ppc64le riscv64 - -package tlstapper - -import ( - "bytes" - _ "embed" - "fmt" - "io" - - "github.com/cilium/ebpf" -) - -type tlsTapperTlsChunk struct { - Pid uint32 - Tgid uint32 - Len uint32 - Start uint32 - Recorded uint32 - Fd uint32 - Flags uint32 - Address [16]uint8 - Data [4096]uint8 -} - -// loadTlsTapper returns the embedded CollectionSpec for tlsTapper. -func loadTlsTapper() (*ebpf.CollectionSpec, error) { - reader := bytes.NewReader(_TlsTapperBytes) - spec, err := ebpf.LoadCollectionSpecFromReader(reader) - if err != nil { - return nil, fmt.Errorf("can't load tlsTapper: %w", err) - } - - return spec, err -} - -// loadTlsTapperObjects loads tlsTapper and converts it into a struct. -// -// The following types are suitable as obj argument: -// -// *tlsTapperObjects -// *tlsTapperPrograms -// *tlsTapperMaps -// -// See ebpf.CollectionSpec.LoadAndAssign documentation for details. -func loadTlsTapperObjects(obj interface{}, opts *ebpf.CollectionOptions) error { - spec, err := loadTlsTapper() - if err != nil { - return err - } - - return spec.LoadAndAssign(obj, opts) -} - -// tlsTapperSpecs contains maps and programs before they are loaded into the kernel. -// -// It can be passed ebpf.CollectionSpec.Assign. -type tlsTapperSpecs struct { - tlsTapperProgramSpecs - tlsTapperMapSpecs -} - -// tlsTapperSpecs contains programs before they are loaded into the kernel. -// -// It can be passed ebpf.CollectionSpec.Assign. -type tlsTapperProgramSpecs struct { - GoCryptoTlsRead *ebpf.ProgramSpec `ebpf:"go_crypto_tls_read"` - GoCryptoTlsReadEx *ebpf.ProgramSpec `ebpf:"go_crypto_tls_read_ex"` - GoCryptoTlsWrite *ebpf.ProgramSpec `ebpf:"go_crypto_tls_write"` - GoCryptoTlsWriteEx *ebpf.ProgramSpec `ebpf:"go_crypto_tls_write_ex"` - 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"` - SysEnterWrite *ebpf.ProgramSpec `ebpf:"sys_enter_write"` - SysExitAccept4 *ebpf.ProgramSpec `ebpf:"sys_exit_accept4"` - SysExitConnect *ebpf.ProgramSpec `ebpf:"sys_exit_connect"` -} - -// tlsTapperMapSpecs contains maps before they are loaded into the kernel. -// -// It can be passed ebpf.CollectionSpec.Assign. -type tlsTapperMapSpecs struct { - AcceptSyscallContext *ebpf.MapSpec `ebpf:"accept_syscall_context"` - ChunksBuffer *ebpf.MapSpec `ebpf:"chunks_buffer"` - ConnectSyscallInfo *ebpf.MapSpec `ebpf:"connect_syscall_info"` - FileDescriptorToIpv4 *ebpf.MapSpec `ebpf:"file_descriptor_to_ipv4"` - GoReadContext *ebpf.MapSpec `ebpf:"go_read_context"` - GoWriteContext *ebpf.MapSpec `ebpf:"go_write_context"` - 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"` - PidsMap *ebpf.MapSpec `ebpf:"pids_map"` -} - -// tlsTapperObjects contains all objects after they have been loaded into the kernel. -// -// It can be passed to loadTlsTapperObjects or ebpf.CollectionSpec.LoadAndAssign. -type tlsTapperObjects struct { - tlsTapperPrograms - tlsTapperMaps -} - -func (o *tlsTapperObjects) Close() error { - return _TlsTapperClose( - &o.tlsTapperPrograms, - &o.tlsTapperMaps, - ) -} - -// tlsTapperMaps contains all maps after they have been loaded into the kernel. -// -// It can be passed to loadTlsTapperObjects or ebpf.CollectionSpec.LoadAndAssign. -type tlsTapperMaps struct { - AcceptSyscallContext *ebpf.Map `ebpf:"accept_syscall_context"` - ChunksBuffer *ebpf.Map `ebpf:"chunks_buffer"` - ConnectSyscallInfo *ebpf.Map `ebpf:"connect_syscall_info"` - FileDescriptorToIpv4 *ebpf.Map `ebpf:"file_descriptor_to_ipv4"` - GoReadContext *ebpf.Map `ebpf:"go_read_context"` - GoWriteContext *ebpf.Map `ebpf:"go_write_context"` - 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"` - PidsMap *ebpf.Map `ebpf:"pids_map"` -} - -func (m *tlsTapperMaps) Close() error { - return _TlsTapperClose( - m.AcceptSyscallContext, - m.ChunksBuffer, - m.ConnectSyscallInfo, - m.FileDescriptorToIpv4, - m.GoReadContext, - m.GoWriteContext, - m.Heap, - m.LogBuffer, - m.OpensslReadContext, - m.OpensslWriteContext, - m.PidsMap, - ) -} - -// tlsTapperPrograms contains all programs after they have been loaded into the kernel. -// -// It can be passed to loadTlsTapperObjects or ebpf.CollectionSpec.LoadAndAssign. -type tlsTapperPrograms struct { - GoCryptoTlsRead *ebpf.Program `ebpf:"go_crypto_tls_read"` - GoCryptoTlsReadEx *ebpf.Program `ebpf:"go_crypto_tls_read_ex"` - GoCryptoTlsWrite *ebpf.Program `ebpf:"go_crypto_tls_write"` - GoCryptoTlsWriteEx *ebpf.Program `ebpf:"go_crypto_tls_write_ex"` - 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"` - SysEnterWrite *ebpf.Program `ebpf:"sys_enter_write"` - SysExitAccept4 *ebpf.Program `ebpf:"sys_exit_accept4"` - SysExitConnect *ebpf.Program `ebpf:"sys_exit_connect"` -} - -func (p *tlsTapperPrograms) Close() error { - return _TlsTapperClose( - p.GoCryptoTlsRead, - p.GoCryptoTlsReadEx, - p.GoCryptoTlsWrite, - p.GoCryptoTlsWriteEx, - p.SslRead, - p.SslReadEx, - p.SslRetRead, - p.SslRetReadEx, - p.SslRetWrite, - p.SslRetWriteEx, - p.SslWrite, - p.SslWriteEx, - p.SysEnterAccept4, - p.SysEnterConnect, - p.SysEnterRead, - p.SysEnterWrite, - p.SysExitAccept4, - p.SysExitConnect, - ) -} - -func _TlsTapperClose(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 tlstapper_bpfel.o -var _TlsTapperBytes []byte diff --git a/tap/tlstapper/tlstapper_bpfel.o b/tap/tlstapper/tlstapper_bpfel.o deleted file mode 100644 index 260994b7f15ba47d78c9fc02bff38ab6fa8563a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 156680 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

8LD}@xNqrj}-}Kd` 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 DE_^tD diff --git a/tap/tlstapper/tlstapper_bpfeb.go b/tap/tlstapper/tlstapper_bpfel_x86.go similarity index 97% rename from tap/tlstapper/tlstapper_bpfeb.go rename to tap/tlstapper/tlstapper_bpfel_x86.go index c6b046e97..e0eecfc72 100644 --- a/tap/tlstapper/tlstapper_bpfeb.go +++ b/tap/tlstapper/tlstapper_bpfel_x86.go @@ -1,6 +1,6 @@ // Code generated by bpf2go; DO NOT EDIT. -//go:build arm64be || armbe || mips || mips64 || mips64p32 || ppc64 || s390 || s390x || sparc || sparc64 -// +build arm64be armbe mips mips64 mips64p32 ppc64 s390 s390x sparc sparc64 +//go:build 386 || amd64 +// +build 386 amd64 package tlstapper @@ -208,5 +208,5 @@ func _TlsTapperClose(closers ...io.Closer) error { } // Do not access this directly. -//go:embed tlstapper_bpfeb.o +//go:embed tlstapper_bpfel_x86.o var _TlsTapperBytes []byte diff --git a/tap/tlstapper/tlstapper_bpfel_x86.o b/tap/tlstapper/tlstapper_bpfel_x86.o new file mode 100644 index 0000000000000000000000000000000000000000..c65c4516da3af0dfc55f1d264f9d0bd4f866caa6 GIT binary patch literal 156432 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�hbZI8U4s7l@0*CE_x1g}6#wBd!xi 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 V-iz_ez2;v}nEoMI^o5t#{}0PG>6QQh literal 0 HcmV?d00001