From f90febf4687a0d6060beb83f2df958117c262351 Mon Sep 17 00:00:00 2001 From: talon Date: Sun, 29 Sep 2024 17:03:00 +0800 Subject: [PATCH] Enhanced kernel: Build 2 series of eBPF objects(kernel ver. <5.13 & >=5.13) and load eBPF dynamically when Kmesh starts up Signed-off-by: talon --- pkg/bpf/bpf_kmesh.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/pkg/bpf/bpf_kmesh.go b/pkg/bpf/bpf_kmesh.go index ac682a893..39a384c16 100644 --- a/pkg/bpf/bpf_kmesh.go +++ b/pkg/bpf/bpf_kmesh.go @@ -33,6 +33,7 @@ import ( "kmesh.net/kmesh/bpf/kmesh/bpf2go" "kmesh.net/kmesh/daemon/options" + "kmesh.net/kmesh/pkg/utils" ) type BpfTracePoint struct { @@ -103,7 +104,11 @@ func (sc *BpfTracePoint) loadKmeshTracePointObjects() (*ebpf.CollectionSpec, err opts ebpf.CollectionOptions ) - spec, err = bpf2go.LoadKmeshTracePoint() + if utils.KernelVersionLowerThan5_13() { + spec, err = bpf2go.LoadKmeshTracePointCompat() + } else { + spec, err = bpf2go.LoadKmeshTracePoint() + } if err != nil || spec == nil { return nil, err } @@ -137,7 +142,11 @@ func (sc *BpfSockOps) loadKmeshSockopsObjects() (*ebpf.CollectionSpec, error) { opts.Maps.PinPath = sc.Info.MapPath - spec, err = bpf2go.LoadKmeshSockops() + if utils.KernelVersionLowerThan5_13() { + spec, err = bpf2go.LoadKmeshSockopsCompat() + } else { + spec, err = bpf2go.LoadKmeshSockops() + } if err != nil || spec == nil { return nil, err