From c8695f82c3ecfac1c9263d6f6fe2ec8127d91766 Mon Sep 17 00:00:00 2001 From: Tao Chen Date: Thu, 16 Mar 2023 11:43:53 +0800 Subject: [PATCH 1/6] raptor: Fix makefile shell command 1.Fix makefile shell command 2.add libstdc++.a for gcc low version complie Signed-off-by: Tao Chen --- .../raptor/source/ebpf/src/libbpf/Makefile | 2 +- .../raptor/source/ebpf/src/others/libstdc++.a | Bin 0 -> 4756326 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 source/tools/monitor/raptor/source/ebpf/src/others/libstdc++.a diff --git a/source/tools/monitor/raptor/source/ebpf/src/libbpf/Makefile b/source/tools/monitor/raptor/source/ebpf/src/libbpf/Makefile index f03149b2..3f76be75 100644 --- a/source/tools/monitor/raptor/source/ebpf/src/libbpf/Makefile +++ b/source/tools/monitor/raptor/source/ebpf/src/libbpf/Makefile @@ -6,7 +6,7 @@ libbpf: #test -d src || git clone git@github.com:libbpf/libbpf.git src cd src && git checkout $(LIBBPF_VERSION) #fix the low gcc version complie error - $(shell sed -i 's/int i, err;/int i, err = 0;/g' src/src/btf_dump.c) + shell sed -i 's/int i, err;/int i, err = 0;/g' src/src/btf_dump.c PREFIX=$(shell pwd)/lib make -C src/src -j16 install .PHONY: clean diff --git a/source/tools/monitor/raptor/source/ebpf/src/others/libstdc++.a b/source/tools/monitor/raptor/source/ebpf/src/others/libstdc++.a new file mode 100644 index 0000000000000000000000000000000000000000..2ac6095eb3d74fecb44e3297a36799f8e049ae3a GIT binary patch literal 4756326 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�h_9W;gL`k_T(`-xw+m! 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

f@b(u9PCYSJj4fN=2U>$pPC9Sbl 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 z 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 pTT^Mud+ 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

+^}S}l@Xf9#;gQRXFE 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�oCU(}P!aZ~w8U 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 EXw{|j+vU% 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%0D0UHv0{*{C-XT*Ddnbuzb^gMK?*p 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 literal 0 HcmV?d00001 -- Gitee From 97215564c430008b772712c86e121e9b5f66ef9d Mon Sep 17 00:00:00 2001 From: Tao Chen Date: Thu, 16 Mar 2023 11:08:30 +0800 Subject: [PATCH 2/6] raptor: Add profile raw data with command --sls produceraw to send raw profile data to sls. Signed-off-by: Tao Chen --- source/tools/monitor/raptor/source/cmd/cmd.go | 4 + .../raptor/source/ebpf/src/libbpf/Makefile | 2 +- .../source/profile/agent/ebpf/ebpfspy.go | 12 +- .../raptor/source/profile/command/ebpf.go | 36 ++- .../raptor/source/profile/config/config.go | 2 +- .../source/profile/upstream/remote/remote.go | 20 +- .../tools/monitor/raptor/source/sls/config.go | 12 +- .../tools/monitor/raptor/source/sls/format.go | 304 ++++++++++++++++++ .../monitor/raptor/source/sls/producer.go | 6 + 9 files changed, 368 insertions(+), 30 deletions(-) create mode 100644 source/tools/monitor/raptor/source/sls/format.go diff --git a/source/tools/monitor/raptor/source/cmd/cmd.go b/source/tools/monitor/raptor/source/cmd/cmd.go index b623b383..bb087a0f 100644 --- a/source/tools/monitor/raptor/source/cmd/cmd.go +++ b/source/tools/monitor/raptor/source/cmd/cmd.go @@ -33,3 +33,7 @@ func (cmd *Cmd) ProfileCmd() { func (cmd *Cmd) NginxCmd() { nginx.NginxCmdInit(cmd.cfg, cmd.rootCmd) } + +func (cmd *Cmd) NetTraceCmd() { + +} diff --git a/source/tools/monitor/raptor/source/ebpf/src/libbpf/Makefile b/source/tools/monitor/raptor/source/ebpf/src/libbpf/Makefile index 3f76be75..ecc2796f 100644 --- a/source/tools/monitor/raptor/source/ebpf/src/libbpf/Makefile +++ b/source/tools/monitor/raptor/source/ebpf/src/libbpf/Makefile @@ -6,7 +6,7 @@ libbpf: #test -d src || git clone git@github.com:libbpf/libbpf.git src cd src && git checkout $(LIBBPF_VERSION) #fix the low gcc version complie error - shell sed -i 's/int i, err;/int i, err = 0;/g' src/src/btf_dump.c + sed -i 's/int i, err;/int i, err = 0;/g' src/src/btf_dump.c PREFIX=$(shell pwd)/lib make -C src/src -j16 install .PHONY: clean diff --git a/source/tools/monitor/raptor/source/profile/agent/ebpf/ebpfspy.go b/source/tools/monitor/raptor/source/profile/agent/ebpf/ebpfspy.go index 42cbce1d..a174ba04 100644 --- a/source/tools/monitor/raptor/source/profile/agent/ebpf/ebpfspy.go +++ b/source/tools/monitor/raptor/source/profile/agent/ebpf/ebpfspy.go @@ -1,18 +1,18 @@ package ebpf import ( - "sync" "fmt" + "sync" "github.com/chentao-kernel/cloud_ebpf/profile/spy" ) type EbpfSpy struct { - mutex sync.Mutex - reset bool - stop bool + mutex sync.Mutex + reset bool + stop bool stopdata bool - stopCh chan struct{} + stopCh chan struct{} // session中包含ebpf的信息 session *Session @@ -96,4 +96,4 @@ func (s *EbpfSpy) Reset() { defer s.mutex.Unlock() s.reset = true -} \ No newline at end of file +} diff --git a/source/tools/monitor/raptor/source/profile/command/ebpf.go b/source/tools/monitor/raptor/source/profile/command/ebpf.go index d28067b5..6fec99a4 100644 --- a/source/tools/monitor/raptor/source/profile/command/ebpf.go +++ b/source/tools/monitor/raptor/source/profile/command/ebpf.go @@ -187,16 +187,19 @@ func RunOFFCPU(cfg *config.CPU) error { return err } logger := NewLogger(cfg.LogLevel, false /*cfg.NoLogging*/) - var isSlsUpload bool + var slsUploadType int if cfg.SLS == sls.SLSPRODUCER { - isSlsUpload = true + slsUploadType = 2 + } else if cfg.SLS == sls.SLSPRODUCERAW { + slsUploadType = 1 } + rc := remote.RemoteConfig{ AuthToken: "", //cfg.AuthToken, UpstreamThreads: cfg.UploadThreads, UpstreamAddress: cfg.Server, UpstreamRequestTimeout: cfg.UploadTimeout, - SlsUpload: isSlsUpload, + SlsUploadType: slsUploadType, } up, err := remote.New(rc, logger) if err != nil { @@ -309,16 +312,18 @@ func RunONCPU(cfg *config.CPU) error { logger := NewLogger(cfg.LogLevel, false /*cfg.NoLogging*/) - var isSlsUpload bool + var slsUploadType int if cfg.SLS == sls.SLSPRODUCER { - isSlsUpload = true + slsUploadType = 2 + } else if cfg.SLS == sls.SLSPRODUCERAW { + slsUploadType = 1 } rc := remote.RemoteConfig{ AuthToken: "", //cfg.AuthToken, UpstreamThreads: cfg.UploadThreads, UpstreamAddress: cfg.Server, UpstreamRequestTimeout: cfg.UploadTimeout, - SlsUpload: isSlsUpload, + SlsUploadType: slsUploadType, } var up upstream.Upstream if cfg.Server == "local" { @@ -451,17 +456,19 @@ func RunPingSlow(cfg *config.NET) error { return err } logger := NewLogger(cfg.LogLevel, false /*cfg.NoLogging*/) - - var isSlsUpload bool + var slsUploadType int if cfg.SLS == sls.SLSPRODUCER { - isSlsUpload = true + slsUploadType = 2 + } else if cfg.SLS == sls.SLSPRODUCERAW { + slsUploadType = 1 } + rc := remote.RemoteConfig{ AuthToken: "", //cfg.AuthToken, UpstreamThreads: cfg.UploadThreads, UpstreamAddress: cfg.Server, UpstreamRequestTimeout: cfg.UploadTimeout, - SlsUpload: isSlsUpload, + SlsUploadType: slsUploadType, } up, err := remote.New(rc, logger) if err != nil { @@ -563,16 +570,19 @@ func RunUserSlow(cfg *config.NET) error { return err } logger := NewLogger(cfg.LogLevel, false /*cfg.NoLogging*/) - var isSlsUpload bool + + var slsUploadType int if cfg.SLS == sls.SLSPRODUCER { - isSlsUpload = true + slsUploadType = 2 + } else if cfg.SLS == sls.SLSPRODUCERAW { + slsUploadType = 1 } rc := remote.RemoteConfig{ AuthToken: "", //cfg.AuthToken, UpstreamThreads: cfg.UploadThreads, UpstreamAddress: cfg.Server, UpstreamRequestTimeout: cfg.UploadTimeout, - SlsUpload: isSlsUpload, + SlsUploadType: slsUploadType, } up, err := remote.New(rc, logger) if err != nil { diff --git a/source/tools/monitor/raptor/source/profile/config/config.go b/source/tools/monitor/raptor/source/profile/config/config.go index 82193f6e..3a61957a 100644 --- a/source/tools/monitor/raptor/source/profile/config/config.go +++ b/source/tools/monitor/raptor/source/profile/config/config.go @@ -37,7 +37,7 @@ type CPU struct { SymbolCacheSize int `def:"256" desc:"max size of symbols cache" mapstructure:"symbol-cache-size"` Usage int `def:"-1" desc:"Cpu usage trigger to start the profiling" mapstructure:"usage"` Timer int `def:"-1" desc:"Timer(min) trigger to start the profiling, minimum timer every 5 minutes" mapstructure:"timer"` - SLS string `def:"unuser" desc:"producer/consumer data to/from SLS" mapstructure:"sls"` + SLS string `def:"unuser" desc:"producer/procuderaw/consumer data to/from SLS" mapstructure:"sls"` Endpoint string `def:"endpoint" desc:"SLS Endpoint" mapstructure:"endpoint"` AKID string `def:"akid" desc:"SLS AccessKeyID" mapstructure:"akid"` AKSE string `def:"akse" desc:"SLS AccessKeySecret" mapstructure:"akse"` diff --git a/source/tools/monitor/raptor/source/profile/upstream/remote/remote.go b/source/tools/monitor/raptor/source/profile/upstream/remote/remote.go index e2170d8f..be082b05 100644 --- a/source/tools/monitor/raptor/source/profile/upstream/remote/remote.go +++ b/source/tools/monitor/raptor/source/profile/upstream/remote/remote.go @@ -33,6 +33,7 @@ type Remote struct { done chan struct{} wg sync.WaitGroup + Eder sls.Encoder } type RemoteConfig struct { @@ -40,7 +41,7 @@ type RemoteConfig struct { UpstreamThreads int UpstreamAddress string UpstreamRequestTimeout time.Duration - SlsUpload bool + SlsUploadType int // 0:origial 1:rawsls 2:sls } func New(cfg RemoteConfig, logger log.Logger) (*Remote, error) { @@ -105,6 +106,16 @@ func (r *Remote) UploadSync(job *upstream.UploadJob) error { return r.uploadProfile(job) } +func (r *Remote) uploadRawProfileSLS(j *upstream.UploadJob) error { + + r.Logger.Debugf("uploading sls rawprofile") + r.Eder.Encode(j, map[string]string{"cluster": "no", "__name__": j.Name}) + if err := sls.SlsProducer.SendRawLogWithCallBack(r.Eder.Logs); err != nil { + return fmt.Errorf("sls send failed:%v", err) + } + return nil +} + func (r *Remote) uploadProfileSLS(j *upstream.UploadJob) error { u, err := url.Parse(r.cfg.UpstreamAddress) if err != nil { @@ -209,10 +220,13 @@ func (r *Remote) safeUpload(job *upstream.UploadJob) { r.Logger.Errorf("recover stack: %v", debug.Stack()) } }() - if r.cfg.SlsUpload { + if r.cfg.SlsUploadType == 1 { + if err := r.uploadRawProfileSLS(job); err != nil { + r.Logger.Errorf("upload profile: %v", err) + } + } else if r.cfg.SlsUploadType == 2 { if err := r.uploadProfileSLS(job); err != nil { r.Logger.Errorf("upload profile: %v", err) - fmt.Printf("upload profile failed:%v", err) } } else { // update the profile data to server diff --git a/source/tools/monitor/raptor/source/sls/config.go b/source/tools/monitor/raptor/source/sls/config.go index 79653ff4..21009c30 100644 --- a/source/tools/monitor/raptor/source/sls/config.go +++ b/source/tools/monitor/raptor/source/sls/config.go @@ -5,9 +5,10 @@ import ( ) const ( - SLSPRODUCER string = "producer" - SLSCONSUMER string = "consumer" - SLSUNUSER string = "unuser" + SLSPRODUCER string = "producer" + SLSPRODUCERAW string = "produceraw" + SLSCONSUMER string = "consumer" + SLSUNUSER string = "unuser" ) func SLSInit(slsType string, endpoint string, akid string, akse string, @@ -17,9 +18,8 @@ func SLSInit(slsType string, endpoint string, akid string, akse string, fmt.Printf("===========SLS CONSUMER START=========\n") c := NewSLSConsumer(endpoint, akid, akse, project, logstore) c.Init() - return fmt.Errorf("consumer") - } else if slsType == SLSPRODUCER { - fmt.Printf("===========SLS PRODUCER START=========\n") + } else if slsType == SLSPRODUCER || slsType == SLSPRODUCERAW { + fmt.Printf("===========SLS PRODUCER START, TYPE:%s=========\n", slsType) SlsProducer = NewSLSProducer(endpoint, akid, akse, project, logstore) SlsProducer.Init() } else if slsType == SLSUNUSER { diff --git a/source/tools/monitor/raptor/source/sls/format.go b/source/tools/monitor/raptor/source/sls/format.go new file mode 100644 index 00000000..ba71c000 --- /dev/null +++ b/source/tools/monitor/raptor/source/sls/format.go @@ -0,0 +1,304 @@ +package sls + +import ( + "bytes" + "encoding/json" + "strconv" + "strings" + "time" + + Sls "github.com/aliyun/aliyun-log-go-sdk" + "github.com/cespare/xxhash" + "github.com/chentao-kernel/cloud_ebpf/profile/upstream" + "github.com/gofrs/uuid" + "github.com/pyroscope-io/pyroscope/pkg/structs/transporttrie" + "google.golang.org/protobuf/proto" +) + +type Encoder struct { + RawData []byte + Format string + Logs *Sls.Log + meta Meta +} + +func NewEncoder(data []byte, format string) *Encoder { + return &Encoder{ + RawData: data, + Format: format, + } +} + +func getProfileID(meta *Meta) string { + profileID, _ := uuid.NewV4() + return profileID.String() +} + +func (e *Encoder) extractCallBack(k []byte, v int) { + profileID := getProfileID(&e.meta) + name, stack := formatNameAndStacks(k, e.meta.SpyName) + labels, _ := json.Marshal(e.meta.Tags) + stackID := strconv.FormatUint(xxhash.Sum64(k), 16) + var content []*Sls.LogContent + content = append(content, + &Sls.LogContent{ + Key: proto.String("name"), + Value: proto.String(name), + }, + &Sls.LogContent{ + Key: proto.String("stack"), + Value: proto.String(strings.Join(stack, "\n")), + }, + &Sls.LogContent{ + Key: proto.String("stackID"), + Value: proto.String(stackID), + }, + &Sls.LogContent{ + Key: proto.String("language"), + Value: proto.String(e.meta.SpyName), + }, + &Sls.LogContent{ + Key: proto.String("type"), + Value: proto.String(strconv.Itoa((int(DetectProfileType(e.meta.Units.DetectValueType()))))), + }, + &Sls.LogContent{ + Key: proto.String("units"), + Value: proto.String(string(e.meta.Units)), + }, + &Sls.LogContent{ + Key: proto.String("valueTypes"), + Value: proto.String(e.meta.Units.DetectValueType()), + }, + &Sls.LogContent{ + Key: proto.String("aggTypes"), + Value: proto.String(string(e.meta.AggregationType)), + }, + &Sls.LogContent{ + Key: proto.String("dataType"), + Value: proto.String("CallStack"), + }, + &Sls.LogContent{ + Key: proto.String("durationNs"), + Value: proto.String(strconv.FormatInt(e.meta.EndTime.Sub(e.meta.StartTime).Nanoseconds(), 10)), + }, + &Sls.LogContent{ + Key: proto.String("profileID"), + Value: proto.String(profileID), + }, + &Sls.LogContent{ + Key: proto.String("labels"), + Value: proto.String(string(labels)), + }, + &Sls.LogContent{ + Key: proto.String("val"), + Value: proto.String(strconv.FormatFloat(float64(v), 'f', 2, 64)), + }, + ) + + e.Logs = &Sls.Log{ + Time: proto.Uint32(uint32(e.meta.StartTime.Unix())), + Contents: content, + } +} + +func (e *Encoder) Encode(job *upstream.UploadJob, tags map[string]string) error { + e.meta.StartTime = job.StartTime + e.meta.EndTime = job.EndTime + e.meta.Tags = tags + e.meta.SpyName = job.SpyName + e.meta.SampleRate = job.SampleRate + e.meta.Units = Units(job.Units) + e.meta.AggregationType = AggType(job.AggregationType) + // stack info + r := bytes.NewReader(job.Trie.Bytes()) + err := transporttrie.IterateRaw(r, make([]byte, 0, 256), e.extractCallBack) + if err != nil { + return err + } + return nil +} + +/* +func formatNameAndStacks(k []byte, spyName string) (name string, stack []string) { + slice := strings.Split(string(k), ";") + if len(slice) > 0 && slice[len(slice)-1] == "" { + slice = slice[:len(slice)-1] + } + if len(slice) == 1 { + return profile.FormatPositionAndName(slice[len(slice)-1], profile.FormatType(spyName)), []string{} + } + name = profile.FormatPositionAndName(slice[len(slice)-1], profile.FormatType(spyName)) + slice = profile.FormatPostionAndNames(slice[:len(slice)-1], profile.FormatType(spyName)) + reverseStringSlice(slice) + return name, slice +} + +func reverseStringSlice(s []string) { + for i, j := 0, len(s)-1; i < j; i, j = i+1, j-1 { + s[i], s[j] = s[j], s[i] + } +} +*/ + +func formatNameAndStacks(k []byte, spyName string) (name string, stack []string) { + slice := strings.Split(string(k), ";") + if len(slice) > 0 && slice[len(slice)-1] == "" { + slice = slice[:len(slice)-1] + } + if len(slice) == 1 { + return FormatPositionAndName(slice[len(slice)-1], FormatType(spyName)), []string{} + } + name = FormatPositionAndName(slice[len(slice)-1], FormatType(spyName)) + slice = FormatPostionAndNames(slice[:len(slice)-1], FormatType(spyName)) + reverseStringSlice(slice) + return name, slice +} + +func reverseStringSlice(s []string) { + for i, j := 0, len(s)-1; i < j; i, j = i+1, j-1 { + s[i], s[j] = s[j], s[i] + } +} + +type FormatType string + +type Meta struct { + StartTime time.Time + EndTime time.Time + Tags map[string]string + SpyName string + SampleRate uint32 + Units Units + AggregationType AggType +} + +type Kind int + +const ( + _ Kind = iota + CPUKind + MemKind + MutexKind + GoRoutinesKind + ExceptionKind + UnknownKind +) + +type AggType string + +const ( + AvgAggType AggType = "avg" + SumAggType AggType = "sum" +) + +type Units string + +var sequenceMapping = map[FormatType]SequenceType{ + PyroscopeNodeJs: FunctionFirst, + PyroscopeGolang: FunctionFirst, + PyroscopeRust: PosFirst, + PyroscopeDotnet: FunctionFirst, + PyroscopeRuby: PosFirst, + PyroscopePython: PosFirst, + PyroscopeJava: FunctionFirst, + PyroscopeEbpf: FunctionFirst, + PyroscopePhp: PosFirst, + Unknown: FunctionFirst, +} + +const ( + SamplesUnits Units = "samples" + NanosecondsUnit Units = "nanoseconds" + ObjectsUnit Units = "objects" + BytesUnit Units = "bytes" + GoroutinesUnits Units = "goroutines" + LockNanosecondsUnits Units = "lock_nanoseconds" + LockSamplesUnits Units = "local_samples" +) + +const ( + PyroscopeNodeJs = "node" + PyroscopeGolang = "go" + PyroscopeRust = "rs" + PyroscopeDotnet = "dotnet" + PyroscopeRuby = "rb" + PyroscopePython = "py" + PyroscopeJava = "java" + PyroscopeEbpf = "ebpf" + PyroscopePhp = "php" + Unknown = "unknown" +) + +type SequenceType int + +const ( + _ SequenceType = iota + PosFirst + FunctionFirst +) + +func FormatPositionAndName(str string, t FormatType) string { + str = strings.TrimSpace(str) + idx := strings.Index(str, " ") + if idx < 0 { + return str // means no position + } + joiner := func(name, pos string) string { + var b strings.Builder + b.Grow(len(name) + len(pos) + 1) + b.Write([]byte(name)) + b.Write([]byte{' '}) + b.Write([]byte(pos)) + return b.String() + } + name := str[:idx] + idx = strings.LastIndex(str, " ") + pos := str[idx+1:] + sequenceType := sequenceMapping[t] + switch sequenceType { + case PosFirst: + return joiner(pos, name) + case FunctionFirst: + return joiner(name, pos) + default: + return str + } +} + +func FormatPostionAndNames(strs []string, t FormatType) []string { + for i := range strs { + strs[i] = FormatPositionAndName(strs[i], t) + } + return strs +} + +func (u Units) DetectValueType() string { + switch u { + case NanosecondsUnit, SamplesUnits: + return "cpu" + case ObjectsUnit, BytesUnit: + return "mem" + case GoroutinesUnits: + return "goroutines" + case LockSamplesUnits, LockNanosecondsUnits: + return "mutex" + } + return "unknown" +} + +func DetectProfileType(valType string) Kind { + switch valType { + case "inuse_space", "inuse_objects", "alloc_space", "alloc_objects", "alloc-size", "alloc-samples", "alloc_in_new_tlab_objects", "alloc_in_new_tlab_bytes", "alloc_outside_tlab_objects", "alloc_outside_tlab_bytes": + return MemKind + case "samples", "cpu", "itimer", "lock_count", "lock_duration", "wall": + return CPUKind + case "mutex_count", "mutex_duration", "block_duration", "block_count", "contentions", "delay", "lock-time", "lock-count": + return MemKind + case "goroutines", "goroutine": + return GoRoutinesKind + case "exception": + return ExceptionKind + default: + return UnknownKind + } +} diff --git a/source/tools/monitor/raptor/source/sls/producer.go b/source/tools/monitor/raptor/source/sls/producer.go index 8a3af719..2a1894c1 100644 --- a/source/tools/monitor/raptor/source/sls/producer.go +++ b/source/tools/monitor/raptor/source/sls/producer.go @@ -4,6 +4,7 @@ import ( "fmt" "time" + sls "github.com/aliyun/aliyun-log-go-sdk" "github.com/aliyun/aliyun-log-go-sdk/producer" ) @@ -63,6 +64,11 @@ func (p *SLSProducer) Send(text map[string]string) error { return err } +func (p *SLSProducer) SendRawLogWithCallBack(log *sls.Log) error { + err := p.Instance.SendLogWithCallBack(p.Project, p.Logstore, "topic", "127.0.0.1", log, p.CallBack) + return err +} + func (p *SLSProducer) SendWithCallBack(text map[string]string) error { //fmt.Printf("project:%s, logstore:%s, endpoint:%s, id:%s, secret:%s, text:%v\n", p.Project, p.Logstore, p.Config.Endpoint, p.Config.AccessKeyID, p.Config.AccessKeySecret, text) log := producer.GenerateLog(uint32(time.Now().Unix()), text) -- Gitee From 366dd425b9c01c5e378a3f13412cd3a7117dcc5f Mon Sep 17 00:00:00 2001 From: Tao Chen Date: Tue, 21 Mar 2023 11:02:24 +0800 Subject: [PATCH 3/6] raptor: Add README.md Signed-off-by: Tao Chen --- source/tools/monitor/raptor/README.md | 114 ++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 source/tools/monitor/raptor/README.md diff --git a/source/tools/monitor/raptor/README.md b/source/tools/monitor/raptor/README.md new file mode 100644 index 00000000..2d76d520 --- /dev/null +++ b/source/tools/monitor/raptor/README.md @@ -0,0 +1,114 @@ +# 功能说明 +continuous profiling 系统性能持续分析 + +使用说明: +``` +Usage: sysak raptor [options] [args] +Options: + oncpu + offcpu + pingslow + userslow +args: + --akid akid + SLS AccessKeyID + + --akse akse + SLS AccessKeySecret + + --app-name + application name used when uploading profiling data + + --cpu -1 + Number of cpu you want to profile. -1 to profile the whole system + + --endpoint endpoint + SLS Endpoint + + --exit-time 2880 + time of minutes unit the profiling to exit, default means 2 days + + --help false + help for oncpu + + --log-level info + log level: debug|info|warn|error + + --logstore akid + SLS Logstore + + --pid -1 + PID you want to profile. -1 to profile the whole system + + --project akid + SLS Project + + --sample-rate 100 + sample rate for the profiler in Hz. 100 means reading 100 times per second + + --server http://localhost:4040 + the server address + + --sls unuser + producer/procuderaw/consumer data to/from SLS + + --space 0 + 0 profile user space, 1 user+kernel space + + --symbol-cache-size 256 + max size of symbols cache + + --tag {} + tag in key=value form. The flag may be specified multiple times + + --timer -1 + Timer(min) trigger to start the profiling, minimum timer every 5 minutes + + --upload-rate 10s + profile upload rate + + --upload-threads 4 + number of upload threads + + --upload-timeout 10s + profile upload timeout + + --usage -1 + Cpu usage trigger to start the profiling +example: +sysak raptor oncpu --server "http://127.0.0.1:4040" --app-name 实例ip +``` +- oncpu + +主要用于排查应用偶现占用cpu过多的问题,对应ECS系统指标升高却不知道是哪个应用引起; + +- offcpu + +主要排查应用的性能问题,对应 应用自身的一些锁竞争等问题导致迟迟不能占用cpu,排查可能的问题如应用收包慢等问题; + +- pingslow + +ping主机有时延抖动,怀疑慢在主机的情况; + +- userslow + +用户进程没有及时收包造成的网络假抖动的情况; +**以oncpu功能为例,其他功能待完善** + +| 参数 | 说明 | +| --- | --- | +| --app-name | 标记profiling对象,一般取实例id | +| --pid | 指定任务做profiling,较少数据开销 | +| --sample-rate | 指定采样的频率,既1s内采样多少次 | +| --cpu | 指定cpu做profiilng,解决应用绑核,单cpu冲高问题 | +| --space | 采样上下文,0 进程上下文,1包含中断上下文 | +| --server | 服务端地址,local本地诊断结果输出 | +| --uplaod-rate | 多久上传一次数据,既数据切片的时间 | +| --exit-time | 默认部署后会运行两天退出,防止同学部署后忘记关闭,-1表示一直运行 | +| --akid | SLS AccessKeyID | +| --akse | SLS AccessKeySecret | +| --logstore | SLS Logstore | +| --project | SLS Project | +| --sls | producer/procuderaw/consumer data to/from SLS | + +云下环境后端flamegraph展示配合sysom使用。 -- Gitee From df4689dc4f58176bfb9c52ec60374ed3ca31755c Mon Sep 17 00:00:00 2001 From: Tao Chen Date: Mon, 27 Mar 2023 10:40:32 +0800 Subject: [PATCH 4/6] raptor: Remove the libbpf header file Signed-off-by: Tao Chen --- source/tools/monitor/raptor/source/Makefile | 4 +- .../monitor/raptor/source/ebpf/src/Makefile | 12 +- .../source/ebpf/src/lib/include/bcc_proc.h | 68 - .../source/ebpf/src/lib/include/bcc_syms.h | 109 - .../source/ebpf/src/lib/include/bpf/bpf.h | 537 -- .../ebpf/src/lib/include/bpf/bpf_core_read.h | 473 -- .../ebpf/src/lib/include/bpf/bpf_endian.h | 99 - .../src/lib/include/bpf/bpf_helper_defs.h | 4373 ----------------- .../ebpf/src/lib/include/bpf/bpf_helpers.h | 288 -- .../ebpf/src/lib/include/bpf/bpf_tracing.h | 531 -- .../source/ebpf/src/lib/include/bpf/btf.h | 605 --- .../source/ebpf/src/lib/include/bpf/libbpf.h | 1767 ------- .../ebpf/src/lib/include/bpf/libbpf_common.h | 83 - .../ebpf/src/lib/include/bpf/libbpf_legacy.h | 114 - .../ebpf/src/lib/include/bpf/libbpf_version.h | 9 - .../ebpf/src/lib/include/bpf/skel_internal.h | 349 -- .../ebpf/src/lib/include/bpf/usdt.bpf.h | 259 - .../source/ebpf/src/lib/include/bpf/xsk.h | 336 -- 18 files changed, 8 insertions(+), 10008 deletions(-) delete mode 100644 source/tools/monitor/raptor/source/ebpf/src/lib/include/bcc_proc.h delete mode 100644 source/tools/monitor/raptor/source/ebpf/src/lib/include/bcc_syms.h delete mode 100644 source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/bpf.h delete mode 100644 source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/bpf_core_read.h delete mode 100644 source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/bpf_endian.h delete mode 100644 source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/bpf_helper_defs.h delete mode 100644 source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/bpf_helpers.h delete mode 100644 source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/bpf_tracing.h delete mode 100644 source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/btf.h delete mode 100644 source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/libbpf.h delete mode 100644 source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/libbpf_common.h delete mode 100644 source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/libbpf_legacy.h delete mode 100644 source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/libbpf_version.h delete mode 100644 source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/skel_internal.h delete mode 100644 source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/usdt.bpf.h delete mode 100644 source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/xsk.h diff --git a/source/tools/monitor/raptor/source/Makefile b/source/tools/monitor/raptor/source/Makefile index 179957b6..44e63af9 100644 --- a/source/tools/monitor/raptor/source/Makefile +++ b/source/tools/monitor/raptor/source/Makefile @@ -9,8 +9,8 @@ RELEASE_GOVERSION := $(shell go version) RELEASE_AUTHOR := Dylane GOLDFLAGS := -EXTRA_CGO_CFLAGS := -I$(abspath ./profile/third/libbpf/lib/include) \ - -I$(abspath ./ebpf/src/lib/include) +EXTRA_CGO_CFLAGS := -I$(abspath ./ebpf/src/libbpf/lib/include) \ + -I$(abspath ./ebpf/src/bcc/lib/include/bcc_syms) EXTRA_CGO_LDFLAGS := -L$(abspath ./ebpf/src/libbpf/lib/lib64) -lbpf \ -L$(abspath ./ebpf/src/bcc/lib/lib) -lbcc-syms -lstdc++ -lelf -lz \ -L$(abspath ./ebpf/src/lib) -lnginx diff --git a/source/tools/monitor/raptor/source/ebpf/src/Makefile b/source/tools/monitor/raptor/source/ebpf/src/Makefile index c8e036c4..be9d960c 100644 --- a/source/tools/monitor/raptor/source/ebpf/src/Makefile +++ b/source/tools/monitor/raptor/source/ebpf/src/Makefile @@ -11,6 +11,7 @@ LIBBPF_VERSION ?= v0.8.1 # libbpf to avoid dependency on system-wide headers, which could be missing or # outdated INCLUDES := -I$(OUTPUT) -I../../libbpf/include/uapi -I$(dir $(VMLINUX)) +BPFAPI := -I./libbpf/lib/include CFLAGS := -g -Wall -fPIC MYCFLAGS := -ggdb -gdwarf -O2 -Wall -fpie -Wno-unused-variable -Wno-unused-function -I./lib/include ARCH := $(shell uname -m | sed 's/x86_64/x86/' | sed 's/aarch64/arm64/' | sed 's/ppc64le/powerpc/' | sed 's/mips.*/mips/') @@ -107,20 +108,19 @@ build_bpf: profile: oncpu.bpf.o offcpu.bpf.o user_slow.bpf.o ping_slow.bpf.o nginx.bpf.o build_bpf oncpu.bpf.o: oncpu.bpf.c profile.bpf.h $(VMLINUX) - $(CLANG) $(MYCFLAGS) -target bpf -D__TARGET_ARCH_x86 -I. -c oncpu.bpf.c -o $@ + $(CLANG) $(MYCFLAGS) -target bpf -D__TARGET_ARCH_x86 $(BPFAPI) -c oncpu.bpf.c -o $@ offcpu.bpf.o: offcpu.bpf.c $(VMLINUX) - $(CLANG) $(MYCFLAGS) -target bpf -D__TARGET_ARCH_x86 -I. -c offcpu.bpf.c -o $@ + $(CLANG) $(MYCFLAGS) -target bpf -D__TARGET_ARCH_x86 $(BPFAPI) -c offcpu.bpf.c -o $@ user_slow.bpf.o: user_slow.bpf.c $(VMLINUX) - $(CLANG) $(MYCFLAGS) -target bpf -D__TARGET_ARCH_x86 -I. -c user_slow.bpf.c -o $@ + $(CLANG) $(MYCFLAGS) -target bpf -D__TARGET_ARCH_x86 $(BPFAPI) -c user_slow.bpf.c -o $@ ping_slow.bpf.o: ping_slow.bpf.c $(VMLINUX) - $(CLANG) $(MYCFLAGS) -target bpf -D__TARGET_ARCH_x86 -I. -c ping_slow.bpf.c -o $@ + $(CLANG) $(MYCFLAGS) -target bpf -D__TARGET_ARCH_x86 $(BPFAPI) -c ping_slow.bpf.c -o $@ nginx.bpf.o: nginx.bpf.c $(VMLINUX) - $(CLANG) $(MYCFLAGS) -target bpf -D__TARGET_ARCH_x86 -I. -c nginx.bpf.c -o $@ - + $(CLANG) $(MYCFLAGS) -target bpf -D__TARGET_ARCH_x86 $(BPFAPI) -c nginx.bpf.c -o $@ # delete failed targets .DELETE_ON_ERROR: diff --git a/source/tools/monitor/raptor/source/ebpf/src/lib/include/bcc_proc.h b/source/tools/monitor/raptor/source/ebpf/src/lib/include/bcc_proc.h deleted file mode 100644 index 368f27d9..00000000 --- a/source/tools/monitor/raptor/source/ebpf/src/lib/include/bcc_proc.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (c) 2016 GitHub, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#ifndef LIBBCC_PROC_H -#define LIBBCC_PROC_H - -#include "bcc_syms.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include - - -typedef struct mod_info { - char *name; - uint64_t start_addr; - uint64_t end_addr; - long long unsigned int file_offset; - uint64_t dev_major; - uint64_t dev_minor; - uint64_t inode; -} mod_info; - -// Module info, whether to check mount namespace, payload -// Callback returning a negative value indicates to stop the iteration -typedef int (*bcc_procutils_modulecb)(mod_info *, int, void *); - -// Symbol name, address, payload -typedef void (*bcc_procutils_ksymcb)(const char *, const char *, uint64_t, void *); - -char *bcc_procutils_which_so(const char *libname, int pid); -char *bcc_procutils_which(const char *binpath); -int bcc_mapping_is_file_backed(const char *mapname); -// Iterate over all executable memory mapping sections of a Process. -// All anonymous and non-file-backed mapping sections, namely those -// listed in bcc_mapping_is_file_backed, will be ignored. -// Returns -1 on error, and 0 on success -int bcc_procutils_each_module(int pid, bcc_procutils_modulecb callback, - void *payload); - -int _procfs_maps_each_module(FILE *procmaps, int pid, - bcc_procutils_modulecb callback, void *payload); -// Iterate over all non-data Kernel symbols. -// Returns -1 on error, and 0 on success -int bcc_procutils_each_ksym(bcc_procutils_ksymcb callback, void *payload); -void bcc_procutils_free(const char *ptr); -const char *bcc_procutils_language(int pid); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/source/tools/monitor/raptor/source/ebpf/src/lib/include/bcc_syms.h b/source/tools/monitor/raptor/source/ebpf/src/lib/include/bcc_syms.h deleted file mode 100644 index d70b707a..00000000 --- a/source/tools/monitor/raptor/source/ebpf/src/lib/include/bcc_syms.h +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Copyright (c) 2016 GitHub, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#ifndef LIBBCC_SYMS_H -#define LIBBCC_SYMS_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include "linux/bpf.h" -#include "bcc_proc.h" - -struct bcc_symbol { - const char *name; - const char *demangle_name; - const char *module; - uint64_t offset; -}; - -typedef int (*SYM_CB)(const char *symname, uint64_t addr); -struct mod_info; - -#ifndef STT_GNU_IFUNC -#define STT_GNU_IFUNC 10 -#endif - -#if defined(__powerpc64__) && defined(_CALL_ELF) && _CALL_ELF == 2 -// Indicate if the Local Entry Point (LEP) should be used as a symbol's -// start address -#define STT_PPC64_ELFV2_SYM_LEP 31 -#endif - -static const uint32_t BCC_SYM_ALL_TYPES = 65535; -struct bcc_symbol_option { - int use_debug_file; - int check_debug_file_crc; - // Symbolize on-demand or symbolize everything ahead of time - int lazy_symbolize; - // Bitmask flags indicating what types of ELF symbols to use - uint32_t use_symbol_type; -}; - -void *bcc_symcache_new(int pid, struct bcc_symbol_option *option); -void bcc_free_symcache(void *symcache, int pid); - -// The demangle_name pointer in bcc_symbol struct is returned from the -// __cxa_demangle function call, which is supposed to be freed by caller. Call -// this function after done using returned result of bcc_symcache_resolve. -void bcc_symbol_free_demangle_name(struct bcc_symbol *sym); -int bcc_symcache_resolve(void *symcache, uint64_t addr, struct bcc_symbol *sym, bool stale_check); -int bcc_symcache_resolve_no_demangle(void *symcache, uint64_t addr, - struct bcc_symbol *sym, bool stale_check); - -int bcc_symcache_resolve_name(void *resolver, const char *module, - const char *name, uint64_t *addr); -void bcc_symcache_refresh(void *resolver); - -int _bcc_syms_find_module(struct mod_info *info, int enter_ns, void *p); -int bcc_resolve_global_addr(int pid, const char *module, const uint64_t address, - uint8_t inode_match_only, uint64_t *global); - -/*bcc APIs for build_id stackmap support*/ -void *bcc_buildsymcache_new(void); -void bcc_free_buildsymcache(void *symcache); -int bcc_buildsymcache_add_module(void *resolver, const char *module_name); -int bcc_buildsymcache_resolve(void *resolver, - struct bpf_stack_build_id *trace, - struct bcc_symbol *sym); -// Call cb on every function symbol in the specified module. Uses simpler -// SYM_CB callback mainly for easier to use in Python API. -// Will prefer use debug file and check debug file CRC when reading the module. -int bcc_foreach_function_symbol(const char *module, SYM_CB cb); - -// Find the offset of a symbol in a module binary. If addr is not zero, will -// calculate the offset using the provided addr and the module's load address. -// -// If pid is provided, will use it to help lookup the module in the Process and -// enter the Process's mount Namespace. -// -// If option is not NULL, will respect the specified options for lookup. -// Otherwise default option will apply, which is to use debug file, verify -// checksum, and try all types of symbols. -// -// Return 0 on success and -1 on failure. Output will be write to sym. After -// use, sym->module need to be freed if it's not empty. -int bcc_resolve_symname(const char *module, const char *symname, - const uint64_t addr, int pid, - struct bcc_symbol_option* option, - struct bcc_symbol *sym); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/bpf.h b/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/bpf.h deleted file mode 100644 index 2e0d3731..00000000 --- a/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/bpf.h +++ /dev/null @@ -1,537 +0,0 @@ -/* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */ - -/* - * common eBPF ELF operations. - * - * Copyright (C) 2013-2015 Alexei Starovoitov - * Copyright (C) 2015 Wang Nan - * Copyright (C) 2015 Huawei Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License (not later!) - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, see - */ -#ifndef __LIBBPF_BPF_H -#define __LIBBPF_BPF_H - -#include -#include -#include -#include - -#include "libbpf_common.h" -#include "libbpf_legacy.h" - -#ifdef __cplusplus -extern "C" { -#endif - -int libbpf_set_memlock_rlim(size_t memlock_bytes); - -struct bpf_map_create_opts { - size_t sz; /* size of this struct for forward/backward compatibility */ - - __u32 btf_fd; - __u32 btf_key_type_id; - __u32 btf_value_type_id; - __u32 btf_vmlinux_value_type_id; - - __u32 inner_map_fd; - __u32 map_flags; - __u64 map_extra; - - __u32 numa_node; - __u32 map_ifindex; -}; -#define bpf_map_create_opts__last_field map_ifindex - -LIBBPF_API int bpf_map_create(enum bpf_map_type map_type, - const char *map_name, - __u32 key_size, - __u32 value_size, - __u32 max_entries, - const struct bpf_map_create_opts *opts); - -struct bpf_create_map_attr { - const char *name; - enum bpf_map_type map_type; - __u32 map_flags; - __u32 key_size; - __u32 value_size; - __u32 max_entries; - __u32 numa_node; - __u32 btf_fd; - __u32 btf_key_type_id; - __u32 btf_value_type_id; - __u32 map_ifindex; - union { - __u32 inner_map_fd; - __u32 btf_vmlinux_value_type_id; - }; -}; - -LIBBPF_DEPRECATED_SINCE(0, 7, "use bpf_map_create() instead") -LIBBPF_API int bpf_create_map_xattr(const struct bpf_create_map_attr *create_attr); -LIBBPF_DEPRECATED_SINCE(0, 7, "use bpf_map_create() instead") -LIBBPF_API int bpf_create_map_node(enum bpf_map_type map_type, const char *name, - int key_size, int value_size, - int max_entries, __u32 map_flags, int node); -LIBBPF_DEPRECATED_SINCE(0, 7, "use bpf_map_create() instead") -LIBBPF_API int bpf_create_map_name(enum bpf_map_type map_type, const char *name, - int key_size, int value_size, - int max_entries, __u32 map_flags); -LIBBPF_DEPRECATED_SINCE(0, 7, "use bpf_map_create() instead") -LIBBPF_API int bpf_create_map(enum bpf_map_type map_type, int key_size, - int value_size, int max_entries, __u32 map_flags); -LIBBPF_DEPRECATED_SINCE(0, 7, "use bpf_map_create() instead") -LIBBPF_API int bpf_create_map_in_map_node(enum bpf_map_type map_type, - const char *name, int key_size, - int inner_map_fd, int max_entries, - __u32 map_flags, int node); -LIBBPF_DEPRECATED_SINCE(0, 7, "use bpf_map_create() instead") -LIBBPF_API int bpf_create_map_in_map(enum bpf_map_type map_type, - const char *name, int key_size, - int inner_map_fd, int max_entries, - __u32 map_flags); - -struct bpf_prog_load_opts { - size_t sz; /* size of this struct for forward/backward compatibility */ - - /* libbpf can retry BPF_PROG_LOAD command if bpf() syscall returns - * -EAGAIN. This field determines how many attempts libbpf has to - * make. If not specified, libbpf will use default value of 5. - */ - int attempts; - - enum bpf_attach_type expected_attach_type; - __u32 prog_btf_fd; - __u32 prog_flags; - __u32 prog_ifindex; - __u32 kern_version; - - __u32 attach_btf_id; - __u32 attach_prog_fd; - __u32 attach_btf_obj_fd; - - const int *fd_array; - - /* .BTF.ext func info data */ - const void *func_info; - __u32 func_info_cnt; - __u32 func_info_rec_size; - - /* .BTF.ext line info data */ - const void *line_info; - __u32 line_info_cnt; - __u32 line_info_rec_size; - - /* verifier log options */ - __u32 log_level; - __u32 log_size; - char *log_buf; -}; -#define bpf_prog_load_opts__last_field log_buf - -LIBBPF_API int bpf_prog_load(enum bpf_prog_type prog_type, - const char *prog_name, const char *license, - const struct bpf_insn *insns, size_t insn_cnt, - const struct bpf_prog_load_opts *opts); -/* this "specialization" should go away in libbpf 1.0 */ -LIBBPF_API int bpf_prog_load_v0_6_0(enum bpf_prog_type prog_type, - const char *prog_name, const char *license, - const struct bpf_insn *insns, size_t insn_cnt, - const struct bpf_prog_load_opts *opts); - -/* This is an elaborate way to not conflict with deprecated bpf_prog_load() - * API, defined in libbpf.h. Once we hit libbpf 1.0, all this will be gone. - * With this approach, if someone is calling bpf_prog_load() with - * 4 arguments, they will use the deprecated API, which keeps backwards - * compatibility (both source code and binary). If bpf_prog_load() is called - * with 6 arguments, though, it gets redirected to __bpf_prog_load. - * So looking forward to libbpf 1.0 when this hack will be gone and - * __bpf_prog_load() will be called just bpf_prog_load(). - */ -#ifndef bpf_prog_load -#define bpf_prog_load(...) ___libbpf_overload(___bpf_prog_load, __VA_ARGS__) -#define ___bpf_prog_load4(file, type, pobj, prog_fd) \ - bpf_prog_load_deprecated(file, type, pobj, prog_fd) -#define ___bpf_prog_load6(prog_type, prog_name, license, insns, insn_cnt, opts) \ - bpf_prog_load(prog_type, prog_name, license, insns, insn_cnt, opts) -#endif /* bpf_prog_load */ - -struct bpf_load_program_attr { - enum bpf_prog_type prog_type; - enum bpf_attach_type expected_attach_type; - const char *name; - const struct bpf_insn *insns; - size_t insns_cnt; - const char *license; - union { - __u32 kern_version; - __u32 attach_prog_fd; - }; - union { - __u32 prog_ifindex; - __u32 attach_btf_id; - }; - __u32 prog_btf_fd; - __u32 func_info_rec_size; - const void *func_info; - __u32 func_info_cnt; - __u32 line_info_rec_size; - const void *line_info; - __u32 line_info_cnt; - __u32 log_level; - __u32 prog_flags; -}; - -/* Flags to direct loading requirements */ -#define MAPS_RELAX_COMPAT 0x01 - -/* Recommended log buffer size */ -#define BPF_LOG_BUF_SIZE (UINT32_MAX >> 8) /* verifier maximum in kernels <= 5.1 */ - -LIBBPF_DEPRECATED_SINCE(0, 7, "use bpf_prog_load() instead") -LIBBPF_API int bpf_load_program_xattr(const struct bpf_load_program_attr *load_attr, - char *log_buf, size_t log_buf_sz); -LIBBPF_DEPRECATED_SINCE(0, 7, "use bpf_prog_load() instead") -LIBBPF_API int bpf_load_program(enum bpf_prog_type type, - const struct bpf_insn *insns, size_t insns_cnt, - const char *license, __u32 kern_version, - char *log_buf, size_t log_buf_sz); -LIBBPF_DEPRECATED_SINCE(0, 7, "use bpf_prog_load() instead") -LIBBPF_API int bpf_verify_program(enum bpf_prog_type type, - const struct bpf_insn *insns, - size_t insns_cnt, __u32 prog_flags, - const char *license, __u32 kern_version, - char *log_buf, size_t log_buf_sz, - int log_level); - -struct bpf_btf_load_opts { - size_t sz; /* size of this struct for forward/backward compatibility */ - - /* kernel log options */ - char *log_buf; - __u32 log_level; - __u32 log_size; -}; -#define bpf_btf_load_opts__last_field log_size - -LIBBPF_API int bpf_btf_load(const void *btf_data, size_t btf_size, - const struct bpf_btf_load_opts *opts); - -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_btf_load() instead") -LIBBPF_API int bpf_load_btf(const void *btf, __u32 btf_size, char *log_buf, - __u32 log_buf_size, bool do_log); - -LIBBPF_API int bpf_map_update_elem(int fd, const void *key, const void *value, - __u64 flags); - -LIBBPF_API int bpf_map_lookup_elem(int fd, const void *key, void *value); -LIBBPF_API int bpf_map_lookup_elem_flags(int fd, const void *key, void *value, - __u64 flags); -LIBBPF_API int bpf_map_lookup_and_delete_elem(int fd, const void *key, - void *value); -LIBBPF_API int bpf_map_lookup_and_delete_elem_flags(int fd, const void *key, - void *value, __u64 flags); -LIBBPF_API int bpf_map_delete_elem(int fd, const void *key); -LIBBPF_API int bpf_map_delete_elem_flags(int fd, const void *key, __u64 flags); -LIBBPF_API int bpf_map_get_next_key(int fd, const void *key, void *next_key); -LIBBPF_API int bpf_map_freeze(int fd); - -struct bpf_map_batch_opts { - size_t sz; /* size of this struct for forward/backward compatibility */ - __u64 elem_flags; - __u64 flags; -}; -#define bpf_map_batch_opts__last_field flags - - -/** - * @brief **bpf_map_delete_batch()** allows for batch deletion of multiple - * elements in a BPF map. - * - * @param fd BPF map file descriptor - * @param keys pointer to an array of *count* keys - * @param count input and output parameter; on input **count** represents the - * number of elements in the map to delete in batch; - * on output if a non-EFAULT error is returned, **count** represents the number of deleted - * elements if the output **count** value is not equal to the input **count** value - * If EFAULT is returned, **count** should not be trusted to be correct. - * @param opts options for configuring the way the batch deletion works - * @return 0, on success; negative error code, otherwise (errno is also set to - * the error code) - */ -LIBBPF_API int bpf_map_delete_batch(int fd, const void *keys, - __u32 *count, - const struct bpf_map_batch_opts *opts); - -/** - * @brief **bpf_map_lookup_batch()** allows for batch lookup of BPF map elements. - * - * The parameter *in_batch* is the address of the first element in the batch to read. - * *out_batch* is an output parameter that should be passed as *in_batch* to subsequent - * calls to **bpf_map_lookup_batch()**. NULL can be passed for *in_batch* to indicate - * that the batched lookup starts from the beginning of the map. - * - * The *keys* and *values* are output parameters which must point to memory large enough to - * hold *count* items based on the key and value size of the map *map_fd*. The *keys* - * buffer must be of *key_size* * *count*. The *values* buffer must be of - * *value_size* * *count*. - * - * @param fd BPF map file descriptor - * @param in_batch address of the first element in batch to read, can pass NULL to - * indicate that the batched lookup starts from the beginning of the map. - * @param out_batch output parameter that should be passed to next call as *in_batch* - * @param keys pointer to an array large enough for *count* keys - * @param values pointer to an array large enough for *count* values - * @param count input and output parameter; on input it's the number of elements - * in the map to read in batch; on output it's the number of elements that were - * successfully read. - * If a non-EFAULT error is returned, count will be set as the number of elements - * that were read before the error occurred. - * If EFAULT is returned, **count** should not be trusted to be correct. - * @param opts options for configuring the way the batch lookup works - * @return 0, on success; negative error code, otherwise (errno is also set to - * the error code) - */ -LIBBPF_API int bpf_map_lookup_batch(int fd, void *in_batch, void *out_batch, - void *keys, void *values, __u32 *count, - const struct bpf_map_batch_opts *opts); - -/** - * @brief **bpf_map_lookup_and_delete_batch()** allows for batch lookup and deletion - * of BPF map elements where each element is deleted after being retrieved. - * - * @param fd BPF map file descriptor - * @param in_batch address of the first element in batch to read, can pass NULL to - * get address of the first element in *out_batch* - * @param out_batch output parameter that should be passed to next call as *in_batch* - * @param keys pointer to an array of *count* keys - * @param values pointer to an array large enough for *count* values - * @param count input and output parameter; on input it's the number of elements - * in the map to read and delete in batch; on output it represents the number of - * elements that were successfully read and deleted - * If a non-**EFAULT** error code is returned and if the output **count** value - * is not equal to the input **count** value, up to **count** elements may - * have been deleted. - * if **EFAULT** is returned up to *count* elements may have been deleted without - * being returned via the *keys* and *values* output parameters. - * @param opts options for configuring the way the batch lookup and delete works - * @return 0, on success; negative error code, otherwise (errno is also set to - * the error code) - */ -LIBBPF_API int bpf_map_lookup_and_delete_batch(int fd, void *in_batch, - void *out_batch, void *keys, - void *values, __u32 *count, - const struct bpf_map_batch_opts *opts); - -/** - * @brief **bpf_map_update_batch()** updates multiple elements in a map - * by specifying keys and their corresponding values. - * - * The *keys* and *values* parameters must point to memory large enough - * to hold *count* items based on the key and value size of the map. - * - * The *opts* parameter can be used to control how *bpf_map_update_batch()* - * should handle keys that either do or do not already exist in the map. - * In particular the *flags* parameter of *bpf_map_batch_opts* can be - * one of the following: - * - * Note that *count* is an input and output parameter, where on output it - * represents how many elements were successfully updated. Also note that if - * **EFAULT** then *count* should not be trusted to be correct. - * - * **BPF_ANY** - * Create new elements or update existing. - * - * **BPF_NOEXIST** - * Create new elements only if they do not exist. - * - * **BPF_EXIST** - * Update existing elements. - * - * **BPF_F_LOCK** - * Update spin_lock-ed map elements. This must be - * specified if the map value contains a spinlock. - * - * @param fd BPF map file descriptor - * @param keys pointer to an array of *count* keys - * @param values pointer to an array of *count* values - * @param count input and output parameter; on input it's the number of elements - * in the map to update in batch; on output if a non-EFAULT error is returned, - * **count** represents the number of updated elements if the output **count** - * value is not equal to the input **count** value. - * If EFAULT is returned, **count** should not be trusted to be correct. - * @param opts options for configuring the way the batch update works - * @return 0, on success; negative error code, otherwise (errno is also set to - * the error code) - */ -LIBBPF_API int bpf_map_update_batch(int fd, const void *keys, const void *values, - __u32 *count, - const struct bpf_map_batch_opts *opts); - -LIBBPF_API int bpf_obj_pin(int fd, const char *pathname); -LIBBPF_API int bpf_obj_get(const char *pathname); - -struct bpf_prog_attach_opts { - size_t sz; /* size of this struct for forward/backward compatibility */ - unsigned int flags; - int replace_prog_fd; -}; -#define bpf_prog_attach_opts__last_field replace_prog_fd - -LIBBPF_API int bpf_prog_attach(int prog_fd, int attachable_fd, - enum bpf_attach_type type, unsigned int flags); -LIBBPF_API int bpf_prog_attach_opts(int prog_fd, int attachable_fd, - enum bpf_attach_type type, - const struct bpf_prog_attach_opts *opts); -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_prog_attach_opts() instead") -LIBBPF_API int bpf_prog_attach_xattr(int prog_fd, int attachable_fd, - enum bpf_attach_type type, - const struct bpf_prog_attach_opts *opts); -LIBBPF_API int bpf_prog_detach(int attachable_fd, enum bpf_attach_type type); -LIBBPF_API int bpf_prog_detach2(int prog_fd, int attachable_fd, - enum bpf_attach_type type); - -union bpf_iter_link_info; /* defined in up-to-date linux/bpf.h */ -struct bpf_link_create_opts { - size_t sz; /* size of this struct for forward/backward compatibility */ - __u32 flags; - union bpf_iter_link_info *iter_info; - __u32 iter_info_len; - __u32 target_btf_id; - union { - struct { - __u64 bpf_cookie; - } perf_event; - struct { - __u32 flags; - __u32 cnt; - const char **syms; - const unsigned long *addrs; - const __u64 *cookies; - } kprobe_multi; - struct { - __u64 cookie; - } tracing; - }; - size_t :0; -}; -#define bpf_link_create_opts__last_field kprobe_multi.cookies - -LIBBPF_API int bpf_link_create(int prog_fd, int target_fd, - enum bpf_attach_type attach_type, - const struct bpf_link_create_opts *opts); - -LIBBPF_API int bpf_link_detach(int link_fd); - -struct bpf_link_update_opts { - size_t sz; /* size of this struct for forward/backward compatibility */ - __u32 flags; /* extra flags */ - __u32 old_prog_fd; /* expected old program FD */ -}; -#define bpf_link_update_opts__last_field old_prog_fd - -LIBBPF_API int bpf_link_update(int link_fd, int new_prog_fd, - const struct bpf_link_update_opts *opts); - -LIBBPF_API int bpf_iter_create(int link_fd); - -struct bpf_prog_test_run_attr { - int prog_fd; - int repeat; - const void *data_in; - __u32 data_size_in; - void *data_out; /* optional */ - __u32 data_size_out; /* in: max length of data_out - * out: length of data_out */ - __u32 retval; /* out: return code of the BPF program */ - __u32 duration; /* out: average per repetition in ns */ - const void *ctx_in; /* optional */ - __u32 ctx_size_in; - void *ctx_out; /* optional */ - __u32 ctx_size_out; /* in: max length of ctx_out - * out: length of cxt_out */ -}; - -LIBBPF_DEPRECATED_SINCE(0, 7, "use bpf_prog_test_run_opts() instead") -LIBBPF_API int bpf_prog_test_run_xattr(struct bpf_prog_test_run_attr *test_attr); - -/* - * bpf_prog_test_run does not check that data_out is large enough. Consider - * using bpf_prog_test_run_opts instead. - */ -LIBBPF_DEPRECATED_SINCE(0, 7, "use bpf_prog_test_run_opts() instead") -LIBBPF_API int bpf_prog_test_run(int prog_fd, int repeat, void *data, - __u32 size, void *data_out, __u32 *size_out, - __u32 *retval, __u32 *duration); -LIBBPF_API int bpf_prog_get_next_id(__u32 start_id, __u32 *next_id); -LIBBPF_API int bpf_map_get_next_id(__u32 start_id, __u32 *next_id); -LIBBPF_API int bpf_btf_get_next_id(__u32 start_id, __u32 *next_id); -LIBBPF_API int bpf_link_get_next_id(__u32 start_id, __u32 *next_id); -LIBBPF_API int bpf_prog_get_fd_by_id(__u32 id); -LIBBPF_API int bpf_map_get_fd_by_id(__u32 id); -LIBBPF_API int bpf_btf_get_fd_by_id(__u32 id); -LIBBPF_API int bpf_link_get_fd_by_id(__u32 id); -LIBBPF_API int bpf_obj_get_info_by_fd(int bpf_fd, void *info, __u32 *info_len); -LIBBPF_API int bpf_prog_query(int target_fd, enum bpf_attach_type type, - __u32 query_flags, __u32 *attach_flags, - __u32 *prog_ids, __u32 *prog_cnt); -LIBBPF_API int bpf_raw_tracepoint_open(const char *name, int prog_fd); -LIBBPF_API int bpf_task_fd_query(int pid, int fd, __u32 flags, char *buf, - __u32 *buf_len, __u32 *prog_id, __u32 *fd_type, - __u64 *probe_offset, __u64 *probe_addr); - -enum bpf_stats_type; /* defined in up-to-date linux/bpf.h */ -LIBBPF_API int bpf_enable_stats(enum bpf_stats_type type); - -struct bpf_prog_bind_opts { - size_t sz; /* size of this struct for forward/backward compatibility */ - __u32 flags; -}; -#define bpf_prog_bind_opts__last_field flags - -LIBBPF_API int bpf_prog_bind_map(int prog_fd, int map_fd, - const struct bpf_prog_bind_opts *opts); - -struct bpf_test_run_opts { - size_t sz; /* size of this struct for forward/backward compatibility */ - const void *data_in; /* optional */ - void *data_out; /* optional */ - __u32 data_size_in; - __u32 data_size_out; /* in: max length of data_out - * out: length of data_out - */ - const void *ctx_in; /* optional */ - void *ctx_out; /* optional */ - __u32 ctx_size_in; - __u32 ctx_size_out; /* in: max length of ctx_out - * out: length of cxt_out - */ - __u32 retval; /* out: return code of the BPF program */ - int repeat; - __u32 duration; /* out: average per repetition in ns */ - __u32 flags; - __u32 cpu; - __u32 batch_size; -}; -#define bpf_test_run_opts__last_field batch_size - -LIBBPF_API int bpf_prog_test_run_opts(int prog_fd, - struct bpf_test_run_opts *opts); - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /* __LIBBPF_BPF_H */ diff --git a/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/bpf_core_read.h b/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/bpf_core_read.h deleted file mode 100644 index fd48b1ff..00000000 --- a/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/bpf_core_read.h +++ /dev/null @@ -1,473 +0,0 @@ -/* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */ -#ifndef __BPF_CORE_READ_H__ -#define __BPF_CORE_READ_H__ - -/* - * enum bpf_field_info_kind is passed as a second argument into - * __builtin_preserve_field_info() built-in to get a specific aspect of - * a field, captured as a first argument. __builtin_preserve_field_info(field, - * info_kind) returns __u32 integer and produces BTF field relocation, which - * is understood and processed by libbpf during BPF object loading. See - * selftests/bpf for examples. - */ -enum bpf_field_info_kind { - BPF_FIELD_BYTE_OFFSET = 0, /* field byte offset */ - BPF_FIELD_BYTE_SIZE = 1, - BPF_FIELD_EXISTS = 2, /* field existence in target kernel */ - BPF_FIELD_SIGNED = 3, - BPF_FIELD_LSHIFT_U64 = 4, - BPF_FIELD_RSHIFT_U64 = 5, -}; - -/* second argument to __builtin_btf_type_id() built-in */ -enum bpf_type_id_kind { - BPF_TYPE_ID_LOCAL = 0, /* BTF type ID in local program */ - BPF_TYPE_ID_TARGET = 1, /* BTF type ID in target kernel */ -}; - -/* second argument to __builtin_preserve_type_info() built-in */ -enum bpf_type_info_kind { - BPF_TYPE_EXISTS = 0, /* type existence in target kernel */ - BPF_TYPE_SIZE = 1, /* type size in target kernel */ -}; - -/* second argument to __builtin_preserve_enum_value() built-in */ -enum bpf_enum_value_kind { - BPF_ENUMVAL_EXISTS = 0, /* enum value existence in kernel */ - BPF_ENUMVAL_VALUE = 1, /* enum value value relocation */ -}; - -#define __CORE_RELO(src, field, info) \ - __builtin_preserve_field_info((src)->field, BPF_FIELD_##info) - -#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ -#define __CORE_BITFIELD_PROBE_READ(dst, src, fld) \ - bpf_probe_read_kernel( \ - (void *)dst, \ - __CORE_RELO(src, fld, BYTE_SIZE), \ - (const void *)src + __CORE_RELO(src, fld, BYTE_OFFSET)) -#else -/* semantics of LSHIFT_64 assumes loading values into low-ordered bytes, so - * for big-endian we need to adjust destination pointer accordingly, based on - * field byte size - */ -#define __CORE_BITFIELD_PROBE_READ(dst, src, fld) \ - bpf_probe_read_kernel( \ - (void *)dst + (8 - __CORE_RELO(src, fld, BYTE_SIZE)), \ - __CORE_RELO(src, fld, BYTE_SIZE), \ - (const void *)src + __CORE_RELO(src, fld, BYTE_OFFSET)) -#endif - -/* - * Extract bitfield, identified by s->field, and return its value as u64. - * All this is done in relocatable manner, so bitfield changes such as - * signedness, bit size, offset changes, this will be handled automatically. - * This version of macro is using bpf_probe_read_kernel() to read underlying - * integer storage. Macro functions as an expression and its return type is - * bpf_probe_read_kernel()'s return value: 0, on success, <0 on error. - */ -#define BPF_CORE_READ_BITFIELD_PROBED(s, field) ({ \ - unsigned long long val = 0; \ - \ - __CORE_BITFIELD_PROBE_READ(&val, s, field); \ - val <<= __CORE_RELO(s, field, LSHIFT_U64); \ - if (__CORE_RELO(s, field, SIGNED)) \ - val = ((long long)val) >> __CORE_RELO(s, field, RSHIFT_U64); \ - else \ - val = val >> __CORE_RELO(s, field, RSHIFT_U64); \ - val; \ -}) - -/* - * Extract bitfield, identified by s->field, and return its value as u64. - * This version of macro is using direct memory reads and should be used from - * BPF program types that support such functionality (e.g., typed raw - * tracepoints). - */ -#define BPF_CORE_READ_BITFIELD(s, field) ({ \ - const void *p = (const void *)s + __CORE_RELO(s, field, BYTE_OFFSET); \ - unsigned long long val; \ - \ - /* This is a so-called barrier_var() operation that makes specified \ - * variable "a black box" for optimizing compiler. \ - * It forces compiler to perform BYTE_OFFSET relocation on p and use \ - * its calculated value in the switch below, instead of applying \ - * the same relocation 4 times for each individual memory load. \ - */ \ - asm volatile("" : "=r"(p) : "0"(p)); \ - \ - switch (__CORE_RELO(s, field, BYTE_SIZE)) { \ - case 1: val = *(const unsigned char *)p; break; \ - case 2: val = *(const unsigned short *)p; break; \ - case 4: val = *(const unsigned int *)p; break; \ - case 8: val = *(const unsigned long long *)p; break; \ - } \ - val <<= __CORE_RELO(s, field, LSHIFT_U64); \ - if (__CORE_RELO(s, field, SIGNED)) \ - val = ((long long)val) >> __CORE_RELO(s, field, RSHIFT_U64); \ - else \ - val = val >> __CORE_RELO(s, field, RSHIFT_U64); \ - val; \ -}) - -#define ___bpf_field_ref1(field) (field) -#define ___bpf_field_ref2(type, field) (((typeof(type) *)0)->field) -#define ___bpf_field_ref(args...) \ - ___bpf_apply(___bpf_field_ref, ___bpf_narg(args))(args) - -/* - * Convenience macro to check that field actually exists in target kernel's. - * Returns: - * 1, if matching field is present in target kernel; - * 0, if no matching field found. - * - * Supports two forms: - * - field reference through variable access: - * bpf_core_field_exists(p->my_field); - * - field reference through type and field names: - * bpf_core_field_exists(struct my_type, my_field). - */ -#define bpf_core_field_exists(field...) \ - __builtin_preserve_field_info(___bpf_field_ref(field), BPF_FIELD_EXISTS) - -/* - * Convenience macro to get the byte size of a field. Works for integers, - * struct/unions, pointers, arrays, and enums. - * - * Supports two forms: - * - field reference through variable access: - * bpf_core_field_size(p->my_field); - * - field reference through type and field names: - * bpf_core_field_size(struct my_type, my_field). - */ -#define bpf_core_field_size(field...) \ - __builtin_preserve_field_info(___bpf_field_ref(field), BPF_FIELD_BYTE_SIZE) - -/* - * Convenience macro to get field's byte offset. - * - * Supports two forms: - * - field reference through variable access: - * bpf_core_field_offset(p->my_field); - * - field reference through type and field names: - * bpf_core_field_offset(struct my_type, my_field). - */ -#define bpf_core_field_offset(field...) \ - __builtin_preserve_field_info(___bpf_field_ref(field), BPF_FIELD_BYTE_OFFSET) - -/* - * Convenience macro to get BTF type ID of a specified type, using a local BTF - * information. Return 32-bit unsigned integer with type ID from program's own - * BTF. Always succeeds. - */ -#define bpf_core_type_id_local(type) \ - __builtin_btf_type_id(*(typeof(type) *)0, BPF_TYPE_ID_LOCAL) - -/* - * Convenience macro to get BTF type ID of a target kernel's type that matches - * specified local type. - * Returns: - * - valid 32-bit unsigned type ID in kernel BTF; - * - 0, if no matching type was found in a target kernel BTF. - */ -#define bpf_core_type_id_kernel(type) \ - __builtin_btf_type_id(*(typeof(type) *)0, BPF_TYPE_ID_TARGET) - -/* - * Convenience macro to check that provided named type - * (struct/union/enum/typedef) exists in a target kernel. - * Returns: - * 1, if such type is present in target kernel's BTF; - * 0, if no matching type is found. - */ -#define bpf_core_type_exists(type) \ - __builtin_preserve_type_info(*(typeof(type) *)0, BPF_TYPE_EXISTS) - -/* - * Convenience macro to get the byte size of a provided named type - * (struct/union/enum/typedef) in a target kernel. - * Returns: - * >= 0 size (in bytes), if type is present in target kernel's BTF; - * 0, if no matching type is found. - */ -#define bpf_core_type_size(type) \ - __builtin_preserve_type_info(*(typeof(type) *)0, BPF_TYPE_SIZE) - -/* - * Convenience macro to check that provided enumerator value is defined in - * a target kernel. - * Returns: - * 1, if specified enum type and its enumerator value are present in target - * kernel's BTF; - * 0, if no matching enum and/or enum value within that enum is found. - */ -#define bpf_core_enum_value_exists(enum_type, enum_value) \ - __builtin_preserve_enum_value(*(typeof(enum_type) *)enum_value, BPF_ENUMVAL_EXISTS) - -/* - * Convenience macro to get the integer value of an enumerator value in - * a target kernel. - * Returns: - * 64-bit value, if specified enum type and its enumerator value are - * present in target kernel's BTF; - * 0, if no matching enum and/or enum value within that enum is found. - */ -#define bpf_core_enum_value(enum_type, enum_value) \ - __builtin_preserve_enum_value(*(typeof(enum_type) *)enum_value, BPF_ENUMVAL_VALUE) - -/* - * bpf_core_read() abstracts away bpf_probe_read_kernel() call and captures - * offset relocation for source address using __builtin_preserve_access_index() - * built-in, provided by Clang. - * - * __builtin_preserve_access_index() takes as an argument an expression of - * taking an address of a field within struct/union. It makes compiler emit - * a relocation, which records BTF type ID describing root struct/union and an - * accessor string which describes exact embedded field that was used to take - * an address. See detailed description of this relocation format and - * semantics in comments to struct bpf_field_reloc in libbpf_internal.h. - * - * This relocation allows libbpf to adjust BPF instruction to use correct - * actual field offset, based on target kernel BTF type that matches original - * (local) BTF, used to record relocation. - */ -#define bpf_core_read(dst, sz, src) \ - bpf_probe_read_kernel(dst, sz, (const void *)__builtin_preserve_access_index(src)) - -/* NOTE: see comments for BPF_CORE_READ_USER() about the proper types use. */ -#define bpf_core_read_user(dst, sz, src) \ - bpf_probe_read_user(dst, sz, (const void *)__builtin_preserve_access_index(src)) -/* - * bpf_core_read_str() is a thin wrapper around bpf_probe_read_str() - * additionally emitting BPF CO-RE field relocation for specified source - * argument. - */ -#define bpf_core_read_str(dst, sz, src) \ - bpf_probe_read_kernel_str(dst, sz, (const void *)__builtin_preserve_access_index(src)) - -/* NOTE: see comments for BPF_CORE_READ_USER() about the proper types use. */ -#define bpf_core_read_user_str(dst, sz, src) \ - bpf_probe_read_user_str(dst, sz, (const void *)__builtin_preserve_access_index(src)) - -#define ___concat(a, b) a ## b -#define ___apply(fn, n) ___concat(fn, n) -#define ___nth(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, __11, N, ...) N - -/* - * return number of provided arguments; used for switch-based variadic macro - * definitions (see ___last, ___arrow, etc below) - */ -#define ___narg(...) ___nth(_, ##__VA_ARGS__, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0) -/* - * return 0 if no arguments are passed, N - otherwise; used for - * recursively-defined macros to specify termination (0) case, and generic - * (N) case (e.g., ___read_ptrs, ___core_read) - */ -#define ___empty(...) ___nth(_, ##__VA_ARGS__, N, N, N, N, N, N, N, N, N, N, 0) - -#define ___last1(x) x -#define ___last2(a, x) x -#define ___last3(a, b, x) x -#define ___last4(a, b, c, x) x -#define ___last5(a, b, c, d, x) x -#define ___last6(a, b, c, d, e, x) x -#define ___last7(a, b, c, d, e, f, x) x -#define ___last8(a, b, c, d, e, f, g, x) x -#define ___last9(a, b, c, d, e, f, g, h, x) x -#define ___last10(a, b, c, d, e, f, g, h, i, x) x -#define ___last(...) ___apply(___last, ___narg(__VA_ARGS__))(__VA_ARGS__) - -#define ___nolast2(a, _) a -#define ___nolast3(a, b, _) a, b -#define ___nolast4(a, b, c, _) a, b, c -#define ___nolast5(a, b, c, d, _) a, b, c, d -#define ___nolast6(a, b, c, d, e, _) a, b, c, d, e -#define ___nolast7(a, b, c, d, e, f, _) a, b, c, d, e, f -#define ___nolast8(a, b, c, d, e, f, g, _) a, b, c, d, e, f, g -#define ___nolast9(a, b, c, d, e, f, g, h, _) a, b, c, d, e, f, g, h -#define ___nolast10(a, b, c, d, e, f, g, h, i, _) a, b, c, d, e, f, g, h, i -#define ___nolast(...) ___apply(___nolast, ___narg(__VA_ARGS__))(__VA_ARGS__) - -#define ___arrow1(a) a -#define ___arrow2(a, b) a->b -#define ___arrow3(a, b, c) a->b->c -#define ___arrow4(a, b, c, d) a->b->c->d -#define ___arrow5(a, b, c, d, e) a->b->c->d->e -#define ___arrow6(a, b, c, d, e, f) a->b->c->d->e->f -#define ___arrow7(a, b, c, d, e, f, g) a->b->c->d->e->f->g -#define ___arrow8(a, b, c, d, e, f, g, h) a->b->c->d->e->f->g->h -#define ___arrow9(a, b, c, d, e, f, g, h, i) a->b->c->d->e->f->g->h->i -#define ___arrow10(a, b, c, d, e, f, g, h, i, j) a->b->c->d->e->f->g->h->i->j -#define ___arrow(...) ___apply(___arrow, ___narg(__VA_ARGS__))(__VA_ARGS__) - -#define ___type(...) typeof(___arrow(__VA_ARGS__)) - -#define ___read(read_fn, dst, src_type, src, accessor) \ - read_fn((void *)(dst), sizeof(*(dst)), &((src_type)(src))->accessor) - -/* "recursively" read a sequence of inner pointers using local __t var */ -#define ___rd_first(fn, src, a) ___read(fn, &__t, ___type(src), src, a); -#define ___rd_last(fn, ...) \ - ___read(fn, &__t, ___type(___nolast(__VA_ARGS__)), __t, ___last(__VA_ARGS__)); -#define ___rd_p1(fn, ...) const void *__t; ___rd_first(fn, __VA_ARGS__) -#define ___rd_p2(fn, ...) ___rd_p1(fn, ___nolast(__VA_ARGS__)) ___rd_last(fn, __VA_ARGS__) -#define ___rd_p3(fn, ...) ___rd_p2(fn, ___nolast(__VA_ARGS__)) ___rd_last(fn, __VA_ARGS__) -#define ___rd_p4(fn, ...) ___rd_p3(fn, ___nolast(__VA_ARGS__)) ___rd_last(fn, __VA_ARGS__) -#define ___rd_p5(fn, ...) ___rd_p4(fn, ___nolast(__VA_ARGS__)) ___rd_last(fn, __VA_ARGS__) -#define ___rd_p6(fn, ...) ___rd_p5(fn, ___nolast(__VA_ARGS__)) ___rd_last(fn, __VA_ARGS__) -#define ___rd_p7(fn, ...) ___rd_p6(fn, ___nolast(__VA_ARGS__)) ___rd_last(fn, __VA_ARGS__) -#define ___rd_p8(fn, ...) ___rd_p7(fn, ___nolast(__VA_ARGS__)) ___rd_last(fn, __VA_ARGS__) -#define ___rd_p9(fn, ...) ___rd_p8(fn, ___nolast(__VA_ARGS__)) ___rd_last(fn, __VA_ARGS__) -#define ___read_ptrs(fn, src, ...) \ - ___apply(___rd_p, ___narg(__VA_ARGS__))(fn, src, __VA_ARGS__) - -#define ___core_read0(fn, fn_ptr, dst, src, a) \ - ___read(fn, dst, ___type(src), src, a); -#define ___core_readN(fn, fn_ptr, dst, src, ...) \ - ___read_ptrs(fn_ptr, src, ___nolast(__VA_ARGS__)) \ - ___read(fn, dst, ___type(src, ___nolast(__VA_ARGS__)), __t, \ - ___last(__VA_ARGS__)); -#define ___core_read(fn, fn_ptr, dst, src, a, ...) \ - ___apply(___core_read, ___empty(__VA_ARGS__))(fn, fn_ptr, dst, \ - src, a, ##__VA_ARGS__) - -/* - * BPF_CORE_READ_INTO() is a more performance-conscious variant of - * BPF_CORE_READ(), in which final field is read into user-provided storage. - * See BPF_CORE_READ() below for more details on general usage. - */ -#define BPF_CORE_READ_INTO(dst, src, a, ...) ({ \ - ___core_read(bpf_core_read, bpf_core_read, \ - dst, (src), a, ##__VA_ARGS__) \ -}) - -/* - * Variant of BPF_CORE_READ_INTO() for reading from user-space memory. - * - * NOTE: see comments for BPF_CORE_READ_USER() about the proper types use. - */ -#define BPF_CORE_READ_USER_INTO(dst, src, a, ...) ({ \ - ___core_read(bpf_core_read_user, bpf_core_read_user, \ - dst, (src), a, ##__VA_ARGS__) \ -}) - -/* Non-CO-RE variant of BPF_CORE_READ_INTO() */ -#define BPF_PROBE_READ_INTO(dst, src, a, ...) ({ \ - ___core_read(bpf_probe_read, bpf_probe_read, \ - dst, (src), a, ##__VA_ARGS__) \ -}) - -/* Non-CO-RE variant of BPF_CORE_READ_USER_INTO(). - * - * As no CO-RE relocations are emitted, source types can be arbitrary and are - * not restricted to kernel types only. - */ -#define BPF_PROBE_READ_USER_INTO(dst, src, a, ...) ({ \ - ___core_read(bpf_probe_read_user, bpf_probe_read_user, \ - dst, (src), a, ##__VA_ARGS__) \ -}) - -/* - * BPF_CORE_READ_STR_INTO() does same "pointer chasing" as - * BPF_CORE_READ() for intermediate pointers, but then executes (and returns - * corresponding error code) bpf_core_read_str() for final string read. - */ -#define BPF_CORE_READ_STR_INTO(dst, src, a, ...) ({ \ - ___core_read(bpf_core_read_str, bpf_core_read, \ - dst, (src), a, ##__VA_ARGS__) \ -}) - -/* - * Variant of BPF_CORE_READ_STR_INTO() for reading from user-space memory. - * - * NOTE: see comments for BPF_CORE_READ_USER() about the proper types use. - */ -#define BPF_CORE_READ_USER_STR_INTO(dst, src, a, ...) ({ \ - ___core_read(bpf_core_read_user_str, bpf_core_read_user, \ - dst, (src), a, ##__VA_ARGS__) \ -}) - -/* Non-CO-RE variant of BPF_CORE_READ_STR_INTO() */ -#define BPF_PROBE_READ_STR_INTO(dst, src, a, ...) ({ \ - ___core_read(bpf_probe_read_str, bpf_probe_read, \ - dst, (src), a, ##__VA_ARGS__) \ -}) - -/* - * Non-CO-RE variant of BPF_CORE_READ_USER_STR_INTO(). - * - * As no CO-RE relocations are emitted, source types can be arbitrary and are - * not restricted to kernel types only. - */ -#define BPF_PROBE_READ_USER_STR_INTO(dst, src, a, ...) ({ \ - ___core_read(bpf_probe_read_user_str, bpf_probe_read_user, \ - dst, (src), a, ##__VA_ARGS__) \ -}) - -/* - * BPF_CORE_READ() is used to simplify BPF CO-RE relocatable read, especially - * when there are few pointer chasing steps. - * E.g., what in non-BPF world (or in BPF w/ BCC) would be something like: - * int x = s->a.b.c->d.e->f->g; - * can be succinctly achieved using BPF_CORE_READ as: - * int x = BPF_CORE_READ(s, a.b.c, d.e, f, g); - * - * BPF_CORE_READ will decompose above statement into 4 bpf_core_read (BPF - * CO-RE relocatable bpf_probe_read_kernel() wrapper) calls, logically - * equivalent to: - * 1. const void *__t = s->a.b.c; - * 2. __t = __t->d.e; - * 3. __t = __t->f; - * 4. return __t->g; - * - * Equivalence is logical, because there is a heavy type casting/preservation - * involved, as well as all the reads are happening through - * bpf_probe_read_kernel() calls using __builtin_preserve_access_index() to - * emit CO-RE relocations. - * - * N.B. Only up to 9 "field accessors" are supported, which should be more - * than enough for any practical purpose. - */ -#define BPF_CORE_READ(src, a, ...) ({ \ - ___type((src), a, ##__VA_ARGS__) __r; \ - BPF_CORE_READ_INTO(&__r, (src), a, ##__VA_ARGS__); \ - __r; \ -}) - -/* - * Variant of BPF_CORE_READ() for reading from user-space memory. - * - * NOTE: all the source types involved are still *kernel types* and need to - * exist in kernel (or kernel module) BTF, otherwise CO-RE relocation will - * fail. Custom user types are not relocatable with CO-RE. - * The typical situation in which BPF_CORE_READ_USER() might be used is to - * read kernel UAPI types from the user-space memory passed in as a syscall - * input argument. - */ -#define BPF_CORE_READ_USER(src, a, ...) ({ \ - ___type((src), a, ##__VA_ARGS__) __r; \ - BPF_CORE_READ_USER_INTO(&__r, (src), a, ##__VA_ARGS__); \ - __r; \ -}) - -/* Non-CO-RE variant of BPF_CORE_READ() */ -#define BPF_PROBE_READ(src, a, ...) ({ \ - ___type((src), a, ##__VA_ARGS__) __r; \ - BPF_PROBE_READ_INTO(&__r, (src), a, ##__VA_ARGS__); \ - __r; \ -}) - -/* - * Non-CO-RE variant of BPF_CORE_READ_USER(). - * - * As no CO-RE relocations are emitted, source types can be arbitrary and are - * not restricted to kernel types only. - */ -#define BPF_PROBE_READ_USER(src, a, ...) ({ \ - ___type((src), a, ##__VA_ARGS__) __r; \ - BPF_PROBE_READ_USER_INTO(&__r, (src), a, ##__VA_ARGS__); \ - __r; \ -}) - -#endif - diff --git a/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/bpf_endian.h b/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/bpf_endian.h deleted file mode 100644 index ec9db4fe..00000000 --- a/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/bpf_endian.h +++ /dev/null @@ -1,99 +0,0 @@ -/* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */ -#ifndef __BPF_ENDIAN__ -#define __BPF_ENDIAN__ - -/* - * Isolate byte #n and put it into byte #m, for __u##b type. - * E.g., moving byte #6 (nnnnnnnn) into byte #1 (mmmmmmmm) for __u64: - * 1) xxxxxxxx nnnnnnnn xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx mmmmmmmm xxxxxxxx - * 2) nnnnnnnn xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx mmmmmmmm xxxxxxxx 00000000 - * 3) 00000000 00000000 00000000 00000000 00000000 00000000 00000000 nnnnnnnn - * 4) 00000000 00000000 00000000 00000000 00000000 00000000 nnnnnnnn 00000000 - */ -#define ___bpf_mvb(x, b, n, m) ((__u##b)(x) << (b-(n+1)*8) >> (b-8) << (m*8)) - -#define ___bpf_swab16(x) ((__u16)( \ - ___bpf_mvb(x, 16, 0, 1) | \ - ___bpf_mvb(x, 16, 1, 0))) - -#define ___bpf_swab32(x) ((__u32)( \ - ___bpf_mvb(x, 32, 0, 3) | \ - ___bpf_mvb(x, 32, 1, 2) | \ - ___bpf_mvb(x, 32, 2, 1) | \ - ___bpf_mvb(x, 32, 3, 0))) - -#define ___bpf_swab64(x) ((__u64)( \ - ___bpf_mvb(x, 64, 0, 7) | \ - ___bpf_mvb(x, 64, 1, 6) | \ - ___bpf_mvb(x, 64, 2, 5) | \ - ___bpf_mvb(x, 64, 3, 4) | \ - ___bpf_mvb(x, 64, 4, 3) | \ - ___bpf_mvb(x, 64, 5, 2) | \ - ___bpf_mvb(x, 64, 6, 1) | \ - ___bpf_mvb(x, 64, 7, 0))) - -/* LLVM's BPF target selects the endianness of the CPU - * it compiles on, or the user specifies (bpfel/bpfeb), - * respectively. The used __BYTE_ORDER__ is defined by - * the compiler, we cannot rely on __BYTE_ORDER from - * libc headers, since it doesn't reflect the actual - * requested byte order. - * - * Note, LLVM's BPF target has different __builtin_bswapX() - * semantics. It does map to BPF_ALU | BPF_END | BPF_TO_BE - * in bpfel and bpfeb case, which means below, that we map - * to cpu_to_be16(). We could use it unconditionally in BPF - * case, but better not rely on it, so that this header here - * can be used from application and BPF program side, which - * use different targets. - */ -#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ -# define __bpf_ntohs(x) __builtin_bswap16(x) -# define __bpf_htons(x) __builtin_bswap16(x) -# define __bpf_constant_ntohs(x) ___bpf_swab16(x) -# define __bpf_constant_htons(x) ___bpf_swab16(x) -# define __bpf_ntohl(x) __builtin_bswap32(x) -# define __bpf_htonl(x) __builtin_bswap32(x) -# define __bpf_constant_ntohl(x) ___bpf_swab32(x) -# define __bpf_constant_htonl(x) ___bpf_swab32(x) -# define __bpf_be64_to_cpu(x) __builtin_bswap64(x) -# define __bpf_cpu_to_be64(x) __builtin_bswap64(x) -# define __bpf_constant_be64_to_cpu(x) ___bpf_swab64(x) -# define __bpf_constant_cpu_to_be64(x) ___bpf_swab64(x) -#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ -# define __bpf_ntohs(x) (x) -# define __bpf_htons(x) (x) -# define __bpf_constant_ntohs(x) (x) -# define __bpf_constant_htons(x) (x) -# define __bpf_ntohl(x) (x) -# define __bpf_htonl(x) (x) -# define __bpf_constant_ntohl(x) (x) -# define __bpf_constant_htonl(x) (x) -# define __bpf_be64_to_cpu(x) (x) -# define __bpf_cpu_to_be64(x) (x) -# define __bpf_constant_be64_to_cpu(x) (x) -# define __bpf_constant_cpu_to_be64(x) (x) -#else -# error "Fix your compiler's __BYTE_ORDER__?!" -#endif - -#define bpf_htons(x) \ - (__builtin_constant_p(x) ? \ - __bpf_constant_htons(x) : __bpf_htons(x)) -#define bpf_ntohs(x) \ - (__builtin_constant_p(x) ? \ - __bpf_constant_ntohs(x) : __bpf_ntohs(x)) -#define bpf_htonl(x) \ - (__builtin_constant_p(x) ? \ - __bpf_constant_htonl(x) : __bpf_htonl(x)) -#define bpf_ntohl(x) \ - (__builtin_constant_p(x) ? \ - __bpf_constant_ntohl(x) : __bpf_ntohl(x)) -#define bpf_cpu_to_be64(x) \ - (__builtin_constant_p(x) ? \ - __bpf_constant_cpu_to_be64(x) : __bpf_cpu_to_be64(x)) -#define bpf_be64_to_cpu(x) \ - (__builtin_constant_p(x) ? \ - __bpf_constant_be64_to_cpu(x) : __bpf_be64_to_cpu(x)) - -#endif /* __BPF_ENDIAN__ */ diff --git a/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/bpf_helper_defs.h b/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/bpf_helper_defs.h deleted file mode 100644 index abe612ea..00000000 --- a/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/bpf_helper_defs.h +++ /dev/null @@ -1,4373 +0,0 @@ -/* This is auto-generated file. See bpf_doc.py for details. */ - -/* Forward declarations of BPF structs */ -struct bpf_fib_lookup; -struct bpf_sk_lookup; -struct bpf_perf_event_data; -struct bpf_perf_event_value; -struct bpf_pidns_info; -struct bpf_redir_neigh; -struct bpf_sock; -struct bpf_sock_addr; -struct bpf_sock_ops; -struct bpf_sock_tuple; -struct bpf_spin_lock; -struct bpf_sysctl; -struct bpf_tcp_sock; -struct bpf_tunnel_key; -struct bpf_xfrm_state; -struct linux_binprm; -struct pt_regs; -struct sk_reuseport_md; -struct sockaddr; -struct tcphdr; -struct seq_file; -struct tcp6_sock; -struct tcp_sock; -struct tcp_timewait_sock; -struct tcp_request_sock; -struct udp6_sock; -struct unix_sock; -struct task_struct; -struct __sk_buff; -struct sk_msg_md; -struct xdp_md; -struct path; -struct btf_ptr; -struct inode; -struct socket; -struct file; -struct bpf_timer; - -/* - * bpf_map_lookup_elem - * - * Perform a lookup in *map* for an entry associated to *key*. - * - * Returns - * Map value associated to *key*, or **NULL** if no entry was - * found. - */ -static void *(*bpf_map_lookup_elem)(void *map, const void *key) = (void *) 1; - -/* - * bpf_map_update_elem - * - * Add or update the value of the entry associated to *key* in - * *map* with *value*. *flags* is one of: - * - * **BPF_NOEXIST** - * The entry for *key* must not exist in the map. - * **BPF_EXIST** - * The entry for *key* must already exist in the map. - * **BPF_ANY** - * No condition on the existence of the entry for *key*. - * - * Flag value **BPF_NOEXIST** cannot be used for maps of types - * **BPF_MAP_TYPE_ARRAY** or **BPF_MAP_TYPE_PERCPU_ARRAY** (all - * elements always exist), the helper would return an error. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_map_update_elem)(void *map, const void *key, const void *value, __u64 flags) = (void *) 2; - -/* - * bpf_map_delete_elem - * - * Delete entry with *key* from *map*. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_map_delete_elem)(void *map, const void *key) = (void *) 3; - -/* - * bpf_probe_read - * - * For tracing programs, safely attempt to read *size* bytes from - * kernel space address *unsafe_ptr* and store the data in *dst*. - * - * Generally, use **bpf_probe_read_user**\ () or - * **bpf_probe_read_kernel**\ () instead. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_probe_read)(void *dst, __u32 size, const void *unsafe_ptr) = (void *) 4; - -/* - * bpf_ktime_get_ns - * - * Return the time elapsed since system boot, in nanoseconds. - * Does not include time the system was suspended. - * See: **clock_gettime**\ (**CLOCK_MONOTONIC**) - * - * Returns - * Current *ktime*. - */ -static __u64 (*bpf_ktime_get_ns)(void) = (void *) 5; - -/* - * bpf_trace_printk - * - * This helper is a "printk()-like" facility for debugging. It - * prints a message defined by format *fmt* (of size *fmt_size*) - * to file *\/sys/kernel/debug/tracing/trace* from DebugFS, if - * available. It can take up to three additional **u64** - * arguments (as an eBPF helpers, the total number of arguments is - * limited to five). - * - * Each time the helper is called, it appends a line to the trace. - * Lines are discarded while *\/sys/kernel/debug/tracing/trace* is - * open, use *\/sys/kernel/debug/tracing/trace_pipe* to avoid this. - * The format of the trace is customizable, and the exact output - * one will get depends on the options set in - * *\/sys/kernel/debug/tracing/trace_options* (see also the - * *README* file under the same directory). However, it usually - * defaults to something like: - * - * :: - * - * telnet-470 [001] .N.. 419421.045894: 0x00000001: - * - * In the above: - * - * * ``telnet`` is the name of the current task. - * * ``470`` is the PID of the current task. - * * ``001`` is the CPU number on which the task is - * running. - * * In ``.N..``, each character refers to a set of - * options (whether irqs are enabled, scheduling - * options, whether hard/softirqs are running, level of - * preempt_disabled respectively). **N** means that - * **TIF_NEED_RESCHED** and **PREEMPT_NEED_RESCHED** - * are set. - * * ``419421.045894`` is a timestamp. - * * ``0x00000001`` is a fake value used by BPF for the - * instruction pointer register. - * * ```` is the message formatted with - * *fmt*. - * - * The conversion specifiers supported by *fmt* are similar, but - * more limited than for printk(). They are **%d**, **%i**, - * **%u**, **%x**, **%ld**, **%li**, **%lu**, **%lx**, **%lld**, - * **%lli**, **%llu**, **%llx**, **%p**, **%s**. No modifier (size - * of field, padding with zeroes, etc.) is available, and the - * helper will return **-EINVAL** (but print nothing) if it - * encounters an unknown specifier. - * - * Also, note that **bpf_trace_printk**\ () is slow, and should - * only be used for debugging purposes. For this reason, a notice - * block (spanning several lines) is printed to kernel logs and - * states that the helper should not be used "for production use" - * the first time this helper is used (or more precisely, when - * **trace_printk**\ () buffers are allocated). For passing values - * to user space, perf events should be preferred. - * - * Returns - * The number of bytes written to the buffer, or a negative error - * in case of failure. - */ -static long (*bpf_trace_printk)(const char *fmt, __u32 fmt_size, ...) = (void *) 6; - -/* - * bpf_get_prandom_u32 - * - * Get a pseudo-random number. - * - * From a security point of view, this helper uses its own - * pseudo-random internal state, and cannot be used to infer the - * seed of other random functions in the kernel. However, it is - * essential to note that the generator used by the helper is not - * cryptographically secure. - * - * Returns - * A random 32-bit unsigned value. - */ -static __u32 (*bpf_get_prandom_u32)(void) = (void *) 7; - -/* - * bpf_get_smp_processor_id - * - * Get the SMP (symmetric multiprocessing) processor id. Note that - * all programs run with migration disabled, which means that the - * SMP processor id is stable during all the execution of the - * program. - * - * Returns - * The SMP id of the processor running the program. - */ -static __u32 (*bpf_get_smp_processor_id)(void) = (void *) 8; - -/* - * bpf_skb_store_bytes - * - * Store *len* bytes from address *from* into the packet - * associated to *skb*, at *offset*. *flags* are a combination of - * **BPF_F_RECOMPUTE_CSUM** (automatically recompute the - * checksum for the packet after storing the bytes) and - * **BPF_F_INVALIDATE_HASH** (set *skb*\ **->hash**, *skb*\ - * **->swhash** and *skb*\ **->l4hash** to 0). - * - * A call to this helper is susceptible to change the underlying - * packet buffer. Therefore, at load time, all checks on pointers - * previously done by the verifier are invalidated and must be - * performed again, if the helper is used in combination with - * direct packet access. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_skb_store_bytes)(struct __sk_buff *skb, __u32 offset, const void *from, __u32 len, __u64 flags) = (void *) 9; - -/* - * bpf_l3_csum_replace - * - * Recompute the layer 3 (e.g. IP) checksum for the packet - * associated to *skb*. Computation is incremental, so the helper - * must know the former value of the header field that was - * modified (*from*), the new value of this field (*to*), and the - * number of bytes (2 or 4) for this field, stored in *size*. - * Alternatively, it is possible to store the difference between - * the previous and the new values of the header field in *to*, by - * setting *from* and *size* to 0. For both methods, *offset* - * indicates the location of the IP checksum within the packet. - * - * This helper works in combination with **bpf_csum_diff**\ (), - * which does not update the checksum in-place, but offers more - * flexibility and can handle sizes larger than 2 or 4 for the - * checksum to update. - * - * A call to this helper is susceptible to change the underlying - * packet buffer. Therefore, at load time, all checks on pointers - * previously done by the verifier are invalidated and must be - * performed again, if the helper is used in combination with - * direct packet access. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_l3_csum_replace)(struct __sk_buff *skb, __u32 offset, __u64 from, __u64 to, __u64 size) = (void *) 10; - -/* - * bpf_l4_csum_replace - * - * Recompute the layer 4 (e.g. TCP, UDP or ICMP) checksum for the - * packet associated to *skb*. Computation is incremental, so the - * helper must know the former value of the header field that was - * modified (*from*), the new value of this field (*to*), and the - * number of bytes (2 or 4) for this field, stored on the lowest - * four bits of *flags*. Alternatively, it is possible to store - * the difference between the previous and the new values of the - * header field in *to*, by setting *from* and the four lowest - * bits of *flags* to 0. For both methods, *offset* indicates the - * location of the IP checksum within the packet. In addition to - * the size of the field, *flags* can be added (bitwise OR) actual - * flags. With **BPF_F_MARK_MANGLED_0**, a null checksum is left - * untouched (unless **BPF_F_MARK_ENFORCE** is added as well), and - * for updates resulting in a null checksum the value is set to - * **CSUM_MANGLED_0** instead. Flag **BPF_F_PSEUDO_HDR** indicates - * the checksum is to be computed against a pseudo-header. - * - * This helper works in combination with **bpf_csum_diff**\ (), - * which does not update the checksum in-place, but offers more - * flexibility and can handle sizes larger than 2 or 4 for the - * checksum to update. - * - * A call to this helper is susceptible to change the underlying - * packet buffer. Therefore, at load time, all checks on pointers - * previously done by the verifier are invalidated and must be - * performed again, if the helper is used in combination with - * direct packet access. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_l4_csum_replace)(struct __sk_buff *skb, __u32 offset, __u64 from, __u64 to, __u64 flags) = (void *) 11; - -/* - * bpf_tail_call - * - * This special helper is used to trigger a "tail call", or in - * other words, to jump into another eBPF program. The same stack - * frame is used (but values on stack and in registers for the - * caller are not accessible to the callee). This mechanism allows - * for program chaining, either for raising the maximum number of - * available eBPF instructions, or to execute given programs in - * conditional blocks. For security reasons, there is an upper - * limit to the number of successive tail calls that can be - * performed. - * - * Upon call of this helper, the program attempts to jump into a - * program referenced at index *index* in *prog_array_map*, a - * special map of type **BPF_MAP_TYPE_PROG_ARRAY**, and passes - * *ctx*, a pointer to the context. - * - * If the call succeeds, the kernel immediately runs the first - * instruction of the new program. This is not a function call, - * and it never returns to the previous program. If the call - * fails, then the helper has no effect, and the caller continues - * to run its subsequent instructions. A call can fail if the - * destination program for the jump does not exist (i.e. *index* - * is superior to the number of entries in *prog_array_map*), or - * if the maximum number of tail calls has been reached for this - * chain of programs. This limit is defined in the kernel by the - * macro **MAX_TAIL_CALL_CNT** (not accessible to user space), - * which is currently set to 33. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_tail_call)(void *ctx, void *prog_array_map, __u32 index) = (void *) 12; - -/* - * bpf_clone_redirect - * - * Clone and redirect the packet associated to *skb* to another - * net device of index *ifindex*. Both ingress and egress - * interfaces can be used for redirection. The **BPF_F_INGRESS** - * value in *flags* is used to make the distinction (ingress path - * is selected if the flag is present, egress path otherwise). - * This is the only flag supported for now. - * - * In comparison with **bpf_redirect**\ () helper, - * **bpf_clone_redirect**\ () has the associated cost of - * duplicating the packet buffer, but this can be executed out of - * the eBPF program. Conversely, **bpf_redirect**\ () is more - * efficient, but it is handled through an action code where the - * redirection happens only after the eBPF program has returned. - * - * A call to this helper is susceptible to change the underlying - * packet buffer. Therefore, at load time, all checks on pointers - * previously done by the verifier are invalidated and must be - * performed again, if the helper is used in combination with - * direct packet access. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_clone_redirect)(struct __sk_buff *skb, __u32 ifindex, __u64 flags) = (void *) 13; - -/* - * bpf_get_current_pid_tgid - * - * Get the current pid and tgid. - * - * Returns - * A 64-bit integer containing the current tgid and pid, and - * created as such: - * *current_task*\ **->tgid << 32 \|** - * *current_task*\ **->pid**. - */ -static __u64 (*bpf_get_current_pid_tgid)(void) = (void *) 14; - -/* - * bpf_get_current_uid_gid - * - * Get the current uid and gid. - * - * Returns - * A 64-bit integer containing the current GID and UID, and - * created as such: *current_gid* **<< 32 \|** *current_uid*. - */ -static __u64 (*bpf_get_current_uid_gid)(void) = (void *) 15; - -/* - * bpf_get_current_comm - * - * Copy the **comm** attribute of the current task into *buf* of - * *size_of_buf*. The **comm** attribute contains the name of - * the executable (excluding the path) for the current task. The - * *size_of_buf* must be strictly positive. On success, the - * helper makes sure that the *buf* is NUL-terminated. On failure, - * it is filled with zeroes. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_get_current_comm)(void *buf, __u32 size_of_buf) = (void *) 16; - -/* - * bpf_get_cgroup_classid - * - * Retrieve the classid for the current task, i.e. for the net_cls - * cgroup to which *skb* belongs. - * - * This helper can be used on TC egress path, but not on ingress. - * - * The net_cls cgroup provides an interface to tag network packets - * based on a user-provided identifier for all traffic coming from - * the tasks belonging to the related cgroup. See also the related - * kernel documentation, available from the Linux sources in file - * *Documentation/admin-guide/cgroup-v1/net_cls.rst*. - * - * The Linux kernel has two versions for cgroups: there are - * cgroups v1 and cgroups v2. Both are available to users, who can - * use a mixture of them, but note that the net_cls cgroup is for - * cgroup v1 only. This makes it incompatible with BPF programs - * run on cgroups, which is a cgroup-v2-only feature (a socket can - * only hold data for one version of cgroups at a time). - * - * This helper is only available is the kernel was compiled with - * the **CONFIG_CGROUP_NET_CLASSID** configuration option set to - * "**y**" or to "**m**". - * - * Returns - * The classid, or 0 for the default unconfigured classid. - */ -static __u32 (*bpf_get_cgroup_classid)(struct __sk_buff *skb) = (void *) 17; - -/* - * bpf_skb_vlan_push - * - * Push a *vlan_tci* (VLAN tag control information) of protocol - * *vlan_proto* to the packet associated to *skb*, then update - * the checksum. Note that if *vlan_proto* is different from - * **ETH_P_8021Q** and **ETH_P_8021AD**, it is considered to - * be **ETH_P_8021Q**. - * - * A call to this helper is susceptible to change the underlying - * packet buffer. Therefore, at load time, all checks on pointers - * previously done by the verifier are invalidated and must be - * performed again, if the helper is used in combination with - * direct packet access. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_skb_vlan_push)(struct __sk_buff *skb, __be16 vlan_proto, __u16 vlan_tci) = (void *) 18; - -/* - * bpf_skb_vlan_pop - * - * Pop a VLAN header from the packet associated to *skb*. - * - * A call to this helper is susceptible to change the underlying - * packet buffer. Therefore, at load time, all checks on pointers - * previously done by the verifier are invalidated and must be - * performed again, if the helper is used in combination with - * direct packet access. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_skb_vlan_pop)(struct __sk_buff *skb) = (void *) 19; - -/* - * bpf_skb_get_tunnel_key - * - * Get tunnel metadata. This helper takes a pointer *key* to an - * empty **struct bpf_tunnel_key** of **size**, that will be - * filled with tunnel metadata for the packet associated to *skb*. - * The *flags* can be set to **BPF_F_TUNINFO_IPV6**, which - * indicates that the tunnel is based on IPv6 protocol instead of - * IPv4. - * - * The **struct bpf_tunnel_key** is an object that generalizes the - * principal parameters used by various tunneling protocols into a - * single struct. This way, it can be used to easily make a - * decision based on the contents of the encapsulation header, - * "summarized" in this struct. In particular, it holds the IP - * address of the remote end (IPv4 or IPv6, depending on the case) - * in *key*\ **->remote_ipv4** or *key*\ **->remote_ipv6**. Also, - * this struct exposes the *key*\ **->tunnel_id**, which is - * generally mapped to a VNI (Virtual Network Identifier), making - * it programmable together with the **bpf_skb_set_tunnel_key**\ - * () helper. - * - * Let's imagine that the following code is part of a program - * attached to the TC ingress interface, on one end of a GRE - * tunnel, and is supposed to filter out all messages coming from - * remote ends with IPv4 address other than 10.0.0.1: - * - * :: - * - * int ret; - * struct bpf_tunnel_key key = {}; - * - * ret = bpf_skb_get_tunnel_key(skb, &key, sizeof(key), 0); - * if (ret < 0) - * return TC_ACT_SHOT; // drop packet - * - * if (key.remote_ipv4 != 0x0a000001) - * return TC_ACT_SHOT; // drop packet - * - * return TC_ACT_OK; // accept packet - * - * This interface can also be used with all encapsulation devices - * that can operate in "collect metadata" mode: instead of having - * one network device per specific configuration, the "collect - * metadata" mode only requires a single device where the - * configuration can be extracted from this helper. - * - * This can be used together with various tunnels such as VXLan, - * Geneve, GRE or IP in IP (IPIP). - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_skb_get_tunnel_key)(struct __sk_buff *skb, struct bpf_tunnel_key *key, __u32 size, __u64 flags) = (void *) 20; - -/* - * bpf_skb_set_tunnel_key - * - * Populate tunnel metadata for packet associated to *skb.* The - * tunnel metadata is set to the contents of *key*, of *size*. The - * *flags* can be set to a combination of the following values: - * - * **BPF_F_TUNINFO_IPV6** - * Indicate that the tunnel is based on IPv6 protocol - * instead of IPv4. - * **BPF_F_ZERO_CSUM_TX** - * For IPv4 packets, add a flag to tunnel metadata - * indicating that checksum computation should be skipped - * and checksum set to zeroes. - * **BPF_F_DONT_FRAGMENT** - * Add a flag to tunnel metadata indicating that the - * packet should not be fragmented. - * **BPF_F_SEQ_NUMBER** - * Add a flag to tunnel metadata indicating that a - * sequence number should be added to tunnel header before - * sending the packet. This flag was added for GRE - * encapsulation, but might be used with other protocols - * as well in the future. - * - * Here is a typical usage on the transmit path: - * - * :: - * - * struct bpf_tunnel_key key; - * populate key ... - * bpf_skb_set_tunnel_key(skb, &key, sizeof(key), 0); - * bpf_clone_redirect(skb, vxlan_dev_ifindex, 0); - * - * See also the description of the **bpf_skb_get_tunnel_key**\ () - * helper for additional information. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_skb_set_tunnel_key)(struct __sk_buff *skb, struct bpf_tunnel_key *key, __u32 size, __u64 flags) = (void *) 21; - -/* - * bpf_perf_event_read - * - * Read the value of a perf event counter. This helper relies on a - * *map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. The nature of - * the perf event counter is selected when *map* is updated with - * perf event file descriptors. The *map* is an array whose size - * is the number of available CPUs, and each cell contains a value - * relative to one CPU. The value to retrieve is indicated by - * *flags*, that contains the index of the CPU to look up, masked - * with **BPF_F_INDEX_MASK**. Alternatively, *flags* can be set to - * **BPF_F_CURRENT_CPU** to indicate that the value for the - * current CPU should be retrieved. - * - * Note that before Linux 4.13, only hardware perf event can be - * retrieved. - * - * Also, be aware that the newer helper - * **bpf_perf_event_read_value**\ () is recommended over - * **bpf_perf_event_read**\ () in general. The latter has some ABI - * quirks where error and counter value are used as a return code - * (which is wrong to do since ranges may overlap). This issue is - * fixed with **bpf_perf_event_read_value**\ (), which at the same - * time provides more features over the **bpf_perf_event_read**\ - * () interface. Please refer to the description of - * **bpf_perf_event_read_value**\ () for details. - * - * Returns - * The value of the perf event counter read from the map, or a - * negative error code in case of failure. - */ -static __u64 (*bpf_perf_event_read)(void *map, __u64 flags) = (void *) 22; - -/* - * bpf_redirect - * - * Redirect the packet to another net device of index *ifindex*. - * This helper is somewhat similar to **bpf_clone_redirect**\ - * (), except that the packet is not cloned, which provides - * increased performance. - * - * Except for XDP, both ingress and egress interfaces can be used - * for redirection. The **BPF_F_INGRESS** value in *flags* is used - * to make the distinction (ingress path is selected if the flag - * is present, egress path otherwise). Currently, XDP only - * supports redirection to the egress interface, and accepts no - * flag at all. - * - * The same effect can also be attained with the more generic - * **bpf_redirect_map**\ (), which uses a BPF map to store the - * redirect target instead of providing it directly to the helper. - * - * Returns - * For XDP, the helper returns **XDP_REDIRECT** on success or - * **XDP_ABORTED** on error. For other program types, the values - * are **TC_ACT_REDIRECT** on success or **TC_ACT_SHOT** on - * error. - */ -static long (*bpf_redirect)(__u32 ifindex, __u64 flags) = (void *) 23; - -/* - * bpf_get_route_realm - * - * Retrieve the realm or the route, that is to say the - * **tclassid** field of the destination for the *skb*. The - * identifier retrieved is a user-provided tag, similar to the - * one used with the net_cls cgroup (see description for - * **bpf_get_cgroup_classid**\ () helper), but here this tag is - * held by a route (a destination entry), not by a task. - * - * Retrieving this identifier works with the clsact TC egress hook - * (see also **tc-bpf(8)**), or alternatively on conventional - * classful egress qdiscs, but not on TC ingress path. In case of - * clsact TC egress hook, this has the advantage that, internally, - * the destination entry has not been dropped yet in the transmit - * path. Therefore, the destination entry does not need to be - * artificially held via **netif_keep_dst**\ () for a classful - * qdisc until the *skb* is freed. - * - * This helper is available only if the kernel was compiled with - * **CONFIG_IP_ROUTE_CLASSID** configuration option. - * - * Returns - * The realm of the route for the packet associated to *skb*, or 0 - * if none was found. - */ -static __u32 (*bpf_get_route_realm)(struct __sk_buff *skb) = (void *) 24; - -/* - * bpf_perf_event_output - * - * Write raw *data* blob into a special BPF perf event held by - * *map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. This perf - * event must have the following attributes: **PERF_SAMPLE_RAW** - * as **sample_type**, **PERF_TYPE_SOFTWARE** as **type**, and - * **PERF_COUNT_SW_BPF_OUTPUT** as **config**. - * - * The *flags* are used to indicate the index in *map* for which - * the value must be put, masked with **BPF_F_INDEX_MASK**. - * Alternatively, *flags* can be set to **BPF_F_CURRENT_CPU** - * to indicate that the index of the current CPU core should be - * used. - * - * The value to write, of *size*, is passed through eBPF stack and - * pointed by *data*. - * - * The context of the program *ctx* needs also be passed to the - * helper. - * - * On user space, a program willing to read the values needs to - * call **perf_event_open**\ () on the perf event (either for - * one or for all CPUs) and to store the file descriptor into the - * *map*. This must be done before the eBPF program can send data - * into it. An example is available in file - * *samples/bpf/trace_output_user.c* in the Linux kernel source - * tree (the eBPF program counterpart is in - * *samples/bpf/trace_output_kern.c*). - * - * **bpf_perf_event_output**\ () achieves better performance - * than **bpf_trace_printk**\ () for sharing data with user - * space, and is much better suitable for streaming data from eBPF - * programs. - * - * Note that this helper is not restricted to tracing use cases - * and can be used with programs attached to TC or XDP as well, - * where it allows for passing data to user space listeners. Data - * can be: - * - * * Only custom structs, - * * Only the packet payload, or - * * A combination of both. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_perf_event_output)(void *ctx, void *map, __u64 flags, void *data, __u64 size) = (void *) 25; - -/* - * bpf_skb_load_bytes - * - * This helper was provided as an easy way to load data from a - * packet. It can be used to load *len* bytes from *offset* from - * the packet associated to *skb*, into the buffer pointed by - * *to*. - * - * Since Linux 4.7, usage of this helper has mostly been replaced - * by "direct packet access", enabling packet data to be - * manipulated with *skb*\ **->data** and *skb*\ **->data_end** - * pointing respectively to the first byte of packet data and to - * the byte after the last byte of packet data. However, it - * remains useful if one wishes to read large quantities of data - * at once from a packet into the eBPF stack. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_skb_load_bytes)(const void *skb, __u32 offset, void *to, __u32 len) = (void *) 26; - -/* - * bpf_get_stackid - * - * Walk a user or a kernel stack and return its id. To achieve - * this, the helper needs *ctx*, which is a pointer to the context - * on which the tracing program is executed, and a pointer to a - * *map* of type **BPF_MAP_TYPE_STACK_TRACE**. - * - * The last argument, *flags*, holds the number of stack frames to - * skip (from 0 to 255), masked with - * **BPF_F_SKIP_FIELD_MASK**. The next bits can be used to set - * a combination of the following flags: - * - * **BPF_F_USER_STACK** - * Collect a user space stack instead of a kernel stack. - * **BPF_F_FAST_STACK_CMP** - * Compare stacks by hash only. - * **BPF_F_REUSE_STACKID** - * If two different stacks hash into the same *stackid*, - * discard the old one. - * - * The stack id retrieved is a 32 bit long integer handle which - * can be further combined with other data (including other stack - * ids) and used as a key into maps. This can be useful for - * generating a variety of graphs (such as flame graphs or off-cpu - * graphs). - * - * For walking a stack, this helper is an improvement over - * **bpf_probe_read**\ (), which can be used with unrolled loops - * but is not efficient and consumes a lot of eBPF instructions. - * Instead, **bpf_get_stackid**\ () can collect up to - * **PERF_MAX_STACK_DEPTH** both kernel and user frames. Note that - * this limit can be controlled with the **sysctl** program, and - * that it should be manually increased in order to profile long - * user stacks (such as stacks for Java programs). To do so, use: - * - * :: - * - * # sysctl kernel.perf_event_max_stack= - * - * Returns - * The positive or null stack id on success, or a negative error - * in case of failure. - */ -static long (*bpf_get_stackid)(void *ctx, void *map, __u64 flags) = (void *) 27; - -/* - * bpf_csum_diff - * - * Compute a checksum difference, from the raw buffer pointed by - * *from*, of length *from_size* (that must be a multiple of 4), - * towards the raw buffer pointed by *to*, of size *to_size* - * (same remark). An optional *seed* can be added to the value - * (this can be cascaded, the seed may come from a previous call - * to the helper). - * - * This is flexible enough to be used in several ways: - * - * * With *from_size* == 0, *to_size* > 0 and *seed* set to - * checksum, it can be used when pushing new data. - * * With *from_size* > 0, *to_size* == 0 and *seed* set to - * checksum, it can be used when removing data from a packet. - * * With *from_size* > 0, *to_size* > 0 and *seed* set to 0, it - * can be used to compute a diff. Note that *from_size* and - * *to_size* do not need to be equal. - * - * This helper can be used in combination with - * **bpf_l3_csum_replace**\ () and **bpf_l4_csum_replace**\ (), to - * which one can feed in the difference computed with - * **bpf_csum_diff**\ (). - * - * Returns - * The checksum result, or a negative error code in case of - * failure. - */ -static __s64 (*bpf_csum_diff)(__be32 *from, __u32 from_size, __be32 *to, __u32 to_size, __wsum seed) = (void *) 28; - -/* - * bpf_skb_get_tunnel_opt - * - * Retrieve tunnel options metadata for the packet associated to - * *skb*, and store the raw tunnel option data to the buffer *opt* - * of *size*. - * - * This helper can be used with encapsulation devices that can - * operate in "collect metadata" mode (please refer to the related - * note in the description of **bpf_skb_get_tunnel_key**\ () for - * more details). A particular example where this can be used is - * in combination with the Geneve encapsulation protocol, where it - * allows for pushing (with **bpf_skb_get_tunnel_opt**\ () helper) - * and retrieving arbitrary TLVs (Type-Length-Value headers) from - * the eBPF program. This allows for full customization of these - * headers. - * - * Returns - * The size of the option data retrieved. - */ -static long (*bpf_skb_get_tunnel_opt)(struct __sk_buff *skb, void *opt, __u32 size) = (void *) 29; - -/* - * bpf_skb_set_tunnel_opt - * - * Set tunnel options metadata for the packet associated to *skb* - * to the option data contained in the raw buffer *opt* of *size*. - * - * See also the description of the **bpf_skb_get_tunnel_opt**\ () - * helper for additional information. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_skb_set_tunnel_opt)(struct __sk_buff *skb, void *opt, __u32 size) = (void *) 30; - -/* - * bpf_skb_change_proto - * - * Change the protocol of the *skb* to *proto*. Currently - * supported are transition from IPv4 to IPv6, and from IPv6 to - * IPv4. The helper takes care of the groundwork for the - * transition, including resizing the socket buffer. The eBPF - * program is expected to fill the new headers, if any, via - * **skb_store_bytes**\ () and to recompute the checksums with - * **bpf_l3_csum_replace**\ () and **bpf_l4_csum_replace**\ - * (). The main case for this helper is to perform NAT64 - * operations out of an eBPF program. - * - * Internally, the GSO type is marked as dodgy so that headers are - * checked and segments are recalculated by the GSO/GRO engine. - * The size for GSO target is adapted as well. - * - * All values for *flags* are reserved for future usage, and must - * be left at zero. - * - * A call to this helper is susceptible to change the underlying - * packet buffer. Therefore, at load time, all checks on pointers - * previously done by the verifier are invalidated and must be - * performed again, if the helper is used in combination with - * direct packet access. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_skb_change_proto)(struct __sk_buff *skb, __be16 proto, __u64 flags) = (void *) 31; - -/* - * bpf_skb_change_type - * - * Change the packet type for the packet associated to *skb*. This - * comes down to setting *skb*\ **->pkt_type** to *type*, except - * the eBPF program does not have a write access to *skb*\ - * **->pkt_type** beside this helper. Using a helper here allows - * for graceful handling of errors. - * - * The major use case is to change incoming *skb*s to - * **PACKET_HOST** in a programmatic way instead of having to - * recirculate via **redirect**\ (..., **BPF_F_INGRESS**), for - * example. - * - * Note that *type* only allows certain values. At this time, they - * are: - * - * **PACKET_HOST** - * Packet is for us. - * **PACKET_BROADCAST** - * Send packet to all. - * **PACKET_MULTICAST** - * Send packet to group. - * **PACKET_OTHERHOST** - * Send packet to someone else. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_skb_change_type)(struct __sk_buff *skb, __u32 type) = (void *) 32; - -/* - * bpf_skb_under_cgroup - * - * Check whether *skb* is a descendant of the cgroup2 held by - * *map* of type **BPF_MAP_TYPE_CGROUP_ARRAY**, at *index*. - * - * Returns - * The return value depends on the result of the test, and can be: - * - * * 0, if the *skb* failed the cgroup2 descendant test. - * * 1, if the *skb* succeeded the cgroup2 descendant test. - * * A negative error code, if an error occurred. - */ -static long (*bpf_skb_under_cgroup)(struct __sk_buff *skb, void *map, __u32 index) = (void *) 33; - -/* - * bpf_get_hash_recalc - * - * Retrieve the hash of the packet, *skb*\ **->hash**. If it is - * not set, in particular if the hash was cleared due to mangling, - * recompute this hash. Later accesses to the hash can be done - * directly with *skb*\ **->hash**. - * - * Calling **bpf_set_hash_invalid**\ (), changing a packet - * prototype with **bpf_skb_change_proto**\ (), or calling - * **bpf_skb_store_bytes**\ () with the - * **BPF_F_INVALIDATE_HASH** are actions susceptible to clear - * the hash and to trigger a new computation for the next call to - * **bpf_get_hash_recalc**\ (). - * - * Returns - * The 32-bit hash. - */ -static __u32 (*bpf_get_hash_recalc)(struct __sk_buff *skb) = (void *) 34; - -/* - * bpf_get_current_task - * - * Get the current task. - * - * Returns - * A pointer to the current task struct. - */ -static __u64 (*bpf_get_current_task)(void) = (void *) 35; - -/* - * bpf_probe_write_user - * - * Attempt in a safe way to write *len* bytes from the buffer - * *src* to *dst* in memory. It only works for threads that are in - * user context, and *dst* must be a valid user space address. - * - * This helper should not be used to implement any kind of - * security mechanism because of TOC-TOU attacks, but rather to - * debug, divert, and manipulate execution of semi-cooperative - * processes. - * - * Keep in mind that this feature is meant for experiments, and it - * has a risk of crashing the system and running programs. - * Therefore, when an eBPF program using this helper is attached, - * a warning including PID and process name is printed to kernel - * logs. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_probe_write_user)(void *dst, const void *src, __u32 len) = (void *) 36; - -/* - * bpf_current_task_under_cgroup - * - * Check whether the probe is being run is the context of a given - * subset of the cgroup2 hierarchy. The cgroup2 to test is held by - * *map* of type **BPF_MAP_TYPE_CGROUP_ARRAY**, at *index*. - * - * Returns - * The return value depends on the result of the test, and can be: - * - * * 1, if current task belongs to the cgroup2. - * * 0, if current task does not belong to the cgroup2. - * * A negative error code, if an error occurred. - */ -static long (*bpf_current_task_under_cgroup)(void *map, __u32 index) = (void *) 37; - -/* - * bpf_skb_change_tail - * - * Resize (trim or grow) the packet associated to *skb* to the - * new *len*. The *flags* are reserved for future usage, and must - * be left at zero. - * - * The basic idea is that the helper performs the needed work to - * change the size of the packet, then the eBPF program rewrites - * the rest via helpers like **bpf_skb_store_bytes**\ (), - * **bpf_l3_csum_replace**\ (), **bpf_l3_csum_replace**\ () - * and others. This helper is a slow path utility intended for - * replies with control messages. And because it is targeted for - * slow path, the helper itself can afford to be slow: it - * implicitly linearizes, unclones and drops offloads from the - * *skb*. - * - * A call to this helper is susceptible to change the underlying - * packet buffer. Therefore, at load time, all checks on pointers - * previously done by the verifier are invalidated and must be - * performed again, if the helper is used in combination with - * direct packet access. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_skb_change_tail)(struct __sk_buff *skb, __u32 len, __u64 flags) = (void *) 38; - -/* - * bpf_skb_pull_data - * - * Pull in non-linear data in case the *skb* is non-linear and not - * all of *len* are part of the linear section. Make *len* bytes - * from *skb* readable and writable. If a zero value is passed for - * *len*, then the whole length of the *skb* is pulled. - * - * This helper is only needed for reading and writing with direct - * packet access. - * - * For direct packet access, testing that offsets to access - * are within packet boundaries (test on *skb*\ **->data_end**) is - * susceptible to fail if offsets are invalid, or if the requested - * data is in non-linear parts of the *skb*. On failure the - * program can just bail out, or in the case of a non-linear - * buffer, use a helper to make the data available. The - * **bpf_skb_load_bytes**\ () helper is a first solution to access - * the data. Another one consists in using **bpf_skb_pull_data** - * to pull in once the non-linear parts, then retesting and - * eventually access the data. - * - * At the same time, this also makes sure the *skb* is uncloned, - * which is a necessary condition for direct write. As this needs - * to be an invariant for the write part only, the verifier - * detects writes and adds a prologue that is calling - * **bpf_skb_pull_data()** to effectively unclone the *skb* from - * the very beginning in case it is indeed cloned. - * - * A call to this helper is susceptible to change the underlying - * packet buffer. Therefore, at load time, all checks on pointers - * previously done by the verifier are invalidated and must be - * performed again, if the helper is used in combination with - * direct packet access. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_skb_pull_data)(struct __sk_buff *skb, __u32 len) = (void *) 39; - -/* - * bpf_csum_update - * - * Add the checksum *csum* into *skb*\ **->csum** in case the - * driver has supplied a checksum for the entire packet into that - * field. Return an error otherwise. This helper is intended to be - * used in combination with **bpf_csum_diff**\ (), in particular - * when the checksum needs to be updated after data has been - * written into the packet through direct packet access. - * - * Returns - * The checksum on success, or a negative error code in case of - * failure. - */ -static __s64 (*bpf_csum_update)(struct __sk_buff *skb, __wsum csum) = (void *) 40; - -/* - * bpf_set_hash_invalid - * - * Invalidate the current *skb*\ **->hash**. It can be used after - * mangling on headers through direct packet access, in order to - * indicate that the hash is outdated and to trigger a - * recalculation the next time the kernel tries to access this - * hash or when the **bpf_get_hash_recalc**\ () helper is called. - * - * Returns - * void. - */ -static void (*bpf_set_hash_invalid)(struct __sk_buff *skb) = (void *) 41; - -/* - * bpf_get_numa_node_id - * - * Return the id of the current NUMA node. The primary use case - * for this helper is the selection of sockets for the local NUMA - * node, when the program is attached to sockets using the - * **SO_ATTACH_REUSEPORT_EBPF** option (see also **socket(7)**), - * but the helper is also available to other eBPF program types, - * similarly to **bpf_get_smp_processor_id**\ (). - * - * Returns - * The id of current NUMA node. - */ -static long (*bpf_get_numa_node_id)(void) = (void *) 42; - -/* - * bpf_skb_change_head - * - * Grows headroom of packet associated to *skb* and adjusts the - * offset of the MAC header accordingly, adding *len* bytes of - * space. It automatically extends and reallocates memory as - * required. - * - * This helper can be used on a layer 3 *skb* to push a MAC header - * for redirection into a layer 2 device. - * - * All values for *flags* are reserved for future usage, and must - * be left at zero. - * - * A call to this helper is susceptible to change the underlying - * packet buffer. Therefore, at load time, all checks on pointers - * previously done by the verifier are invalidated and must be - * performed again, if the helper is used in combination with - * direct packet access. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_skb_change_head)(struct __sk_buff *skb, __u32 len, __u64 flags) = (void *) 43; - -/* - * bpf_xdp_adjust_head - * - * Adjust (move) *xdp_md*\ **->data** by *delta* bytes. Note that - * it is possible to use a negative value for *delta*. This helper - * can be used to prepare the packet for pushing or popping - * headers. - * - * A call to this helper is susceptible to change the underlying - * packet buffer. Therefore, at load time, all checks on pointers - * previously done by the verifier are invalidated and must be - * performed again, if the helper is used in combination with - * direct packet access. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_xdp_adjust_head)(struct xdp_md *xdp_md, int delta) = (void *) 44; - -/* - * bpf_probe_read_str - * - * Copy a NUL terminated string from an unsafe kernel address - * *unsafe_ptr* to *dst*. See **bpf_probe_read_kernel_str**\ () for - * more details. - * - * Generally, use **bpf_probe_read_user_str**\ () or - * **bpf_probe_read_kernel_str**\ () instead. - * - * Returns - * On success, the strictly positive length of the string, - * including the trailing NUL character. On error, a negative - * value. - */ -static long (*bpf_probe_read_str)(void *dst, __u32 size, const void *unsafe_ptr) = (void *) 45; - -/* - * bpf_get_socket_cookie - * - * If the **struct sk_buff** pointed by *skb* has a known socket, - * retrieve the cookie (generated by the kernel) of this socket. - * If no cookie has been set yet, generate a new cookie. Once - * generated, the socket cookie remains stable for the life of the - * socket. This helper can be useful for monitoring per socket - * networking traffic statistics as it provides a global socket - * identifier that can be assumed unique. - * - * Returns - * A 8-byte long unique number on success, or 0 if the socket - * field is missing inside *skb*. - */ -static __u64 (*bpf_get_socket_cookie)(void *ctx) = (void *) 46; - -/* - * bpf_get_socket_uid - * - * Get the owner UID of the socked associated to *skb*. - * - * Returns - * The owner UID of the socket associated to *skb*. If the socket - * is **NULL**, or if it is not a full socket (i.e. if it is a - * time-wait or a request socket instead), **overflowuid** value - * is returned (note that **overflowuid** might also be the actual - * UID value for the socket). - */ -static __u32 (*bpf_get_socket_uid)(struct __sk_buff *skb) = (void *) 47; - -/* - * bpf_set_hash - * - * Set the full hash for *skb* (set the field *skb*\ **->hash**) - * to value *hash*. - * - * Returns - * 0 - */ -static long (*bpf_set_hash)(struct __sk_buff *skb, __u32 hash) = (void *) 48; - -/* - * bpf_setsockopt - * - * Emulate a call to **setsockopt()** on the socket associated to - * *bpf_socket*, which must be a full socket. The *level* at - * which the option resides and the name *optname* of the option - * must be specified, see **setsockopt(2)** for more information. - * The option value of length *optlen* is pointed by *optval*. - * - * *bpf_socket* should be one of the following: - * - * * **struct bpf_sock_ops** for **BPF_PROG_TYPE_SOCK_OPS**. - * * **struct bpf_sock_addr** for **BPF_CGROUP_INET4_CONNECT** - * and **BPF_CGROUP_INET6_CONNECT**. - * - * This helper actually implements a subset of **setsockopt()**. - * It supports the following *level*\ s: - * - * * **SOL_SOCKET**, which supports the following *optname*\ s: - * **SO_RCVBUF**, **SO_SNDBUF**, **SO_MAX_PACING_RATE**, - * **SO_PRIORITY**, **SO_RCVLOWAT**, **SO_MARK**, - * **SO_BINDTODEVICE**, **SO_KEEPALIVE**. - * * **IPPROTO_TCP**, which supports the following *optname*\ s: - * **TCP_CONGESTION**, **TCP_BPF_IW**, - * **TCP_BPF_SNDCWND_CLAMP**, **TCP_SAVE_SYN**, - * **TCP_KEEPIDLE**, **TCP_KEEPINTVL**, **TCP_KEEPCNT**, - * **TCP_SYNCNT**, **TCP_USER_TIMEOUT**, **TCP_NOTSENT_LOWAT**. - * * **IPPROTO_IP**, which supports *optname* **IP_TOS**. - * * **IPPROTO_IPV6**, which supports *optname* **IPV6_TCLASS**. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_setsockopt)(void *bpf_socket, int level, int optname, void *optval, int optlen) = (void *) 49; - -/* - * bpf_skb_adjust_room - * - * Grow or shrink the room for data in the packet associated to - * *skb* by *len_diff*, and according to the selected *mode*. - * - * By default, the helper will reset any offloaded checksum - * indicator of the skb to CHECKSUM_NONE. This can be avoided - * by the following flag: - * - * * **BPF_F_ADJ_ROOM_NO_CSUM_RESET**: Do not reset offloaded - * checksum data of the skb to CHECKSUM_NONE. - * - * There are two supported modes at this time: - * - * * **BPF_ADJ_ROOM_MAC**: Adjust room at the mac layer - * (room space is added or removed below the layer 2 header). - * - * * **BPF_ADJ_ROOM_NET**: Adjust room at the network layer - * (room space is added or removed below the layer 3 header). - * - * The following flags are supported at this time: - * - * * **BPF_F_ADJ_ROOM_FIXED_GSO**: Do not adjust gso_size. - * Adjusting mss in this way is not allowed for datagrams. - * - * * **BPF_F_ADJ_ROOM_ENCAP_L3_IPV4**, - * **BPF_F_ADJ_ROOM_ENCAP_L3_IPV6**: - * Any new space is reserved to hold a tunnel header. - * Configure skb offsets and other fields accordingly. - * - * * **BPF_F_ADJ_ROOM_ENCAP_L4_GRE**, - * **BPF_F_ADJ_ROOM_ENCAP_L4_UDP**: - * Use with ENCAP_L3 flags to further specify the tunnel type. - * - * * **BPF_F_ADJ_ROOM_ENCAP_L2**\ (*len*): - * Use with ENCAP_L3/L4 flags to further specify the tunnel - * type; *len* is the length of the inner MAC header. - * - * * **BPF_F_ADJ_ROOM_ENCAP_L2_ETH**: - * Use with BPF_F_ADJ_ROOM_ENCAP_L2 flag to further specify the - * L2 type as Ethernet. - * - * A call to this helper is susceptible to change the underlying - * packet buffer. Therefore, at load time, all checks on pointers - * previously done by the verifier are invalidated and must be - * performed again, if the helper is used in combination with - * direct packet access. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_skb_adjust_room)(struct __sk_buff *skb, __s32 len_diff, __u32 mode, __u64 flags) = (void *) 50; - -/* - * bpf_redirect_map - * - * Redirect the packet to the endpoint referenced by *map* at - * index *key*. Depending on its type, this *map* can contain - * references to net devices (for forwarding packets through other - * ports), or to CPUs (for redirecting XDP frames to another CPU; - * but this is only implemented for native XDP (with driver - * support) as of this writing). - * - * The lower two bits of *flags* are used as the return code if - * the map lookup fails. This is so that the return value can be - * one of the XDP program return codes up to **XDP_TX**, as chosen - * by the caller. The higher bits of *flags* can be set to - * BPF_F_BROADCAST or BPF_F_EXCLUDE_INGRESS as defined below. - * - * With BPF_F_BROADCAST the packet will be broadcasted to all the - * interfaces in the map, with BPF_F_EXCLUDE_INGRESS the ingress - * interface will be excluded when do broadcasting. - * - * See also **bpf_redirect**\ (), which only supports redirecting - * to an ifindex, but doesn't require a map to do so. - * - * Returns - * **XDP_REDIRECT** on success, or the value of the two lower bits - * of the *flags* argument on error. - */ -static long (*bpf_redirect_map)(void *map, __u32 key, __u64 flags) = (void *) 51; - -/* - * bpf_sk_redirect_map - * - * Redirect the packet to the socket referenced by *map* (of type - * **BPF_MAP_TYPE_SOCKMAP**) at index *key*. Both ingress and - * egress interfaces can be used for redirection. The - * **BPF_F_INGRESS** value in *flags* is used to make the - * distinction (ingress path is selected if the flag is present, - * egress path otherwise). This is the only flag supported for now. - * - * Returns - * **SK_PASS** on success, or **SK_DROP** on error. - */ -static long (*bpf_sk_redirect_map)(struct __sk_buff *skb, void *map, __u32 key, __u64 flags) = (void *) 52; - -/* - * bpf_sock_map_update - * - * Add an entry to, or update a *map* referencing sockets. The - * *skops* is used as a new value for the entry associated to - * *key*. *flags* is one of: - * - * **BPF_NOEXIST** - * The entry for *key* must not exist in the map. - * **BPF_EXIST** - * The entry for *key* must already exist in the map. - * **BPF_ANY** - * No condition on the existence of the entry for *key*. - * - * If the *map* has eBPF programs (parser and verdict), those will - * be inherited by the socket being added. If the socket is - * already attached to eBPF programs, this results in an error. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_sock_map_update)(struct bpf_sock_ops *skops, void *map, void *key, __u64 flags) = (void *) 53; - -/* - * bpf_xdp_adjust_meta - * - * Adjust the address pointed by *xdp_md*\ **->data_meta** by - * *delta* (which can be positive or negative). Note that this - * operation modifies the address stored in *xdp_md*\ **->data**, - * so the latter must be loaded only after the helper has been - * called. - * - * The use of *xdp_md*\ **->data_meta** is optional and programs - * are not required to use it. The rationale is that when the - * packet is processed with XDP (e.g. as DoS filter), it is - * possible to push further meta data along with it before passing - * to the stack, and to give the guarantee that an ingress eBPF - * program attached as a TC classifier on the same device can pick - * this up for further post-processing. Since TC works with socket - * buffers, it remains possible to set from XDP the **mark** or - * **priority** pointers, or other pointers for the socket buffer. - * Having this scratch space generic and programmable allows for - * more flexibility as the user is free to store whatever meta - * data they need. - * - * A call to this helper is susceptible to change the underlying - * packet buffer. Therefore, at load time, all checks on pointers - * previously done by the verifier are invalidated and must be - * performed again, if the helper is used in combination with - * direct packet access. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_xdp_adjust_meta)(struct xdp_md *xdp_md, int delta) = (void *) 54; - -/* - * bpf_perf_event_read_value - * - * Read the value of a perf event counter, and store it into *buf* - * of size *buf_size*. This helper relies on a *map* of type - * **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. The nature of the perf event - * counter is selected when *map* is updated with perf event file - * descriptors. The *map* is an array whose size is the number of - * available CPUs, and each cell contains a value relative to one - * CPU. The value to retrieve is indicated by *flags*, that - * contains the index of the CPU to look up, masked with - * **BPF_F_INDEX_MASK**. Alternatively, *flags* can be set to - * **BPF_F_CURRENT_CPU** to indicate that the value for the - * current CPU should be retrieved. - * - * This helper behaves in a way close to - * **bpf_perf_event_read**\ () helper, save that instead of - * just returning the value observed, it fills the *buf* - * structure. This allows for additional data to be retrieved: in - * particular, the enabled and running times (in *buf*\ - * **->enabled** and *buf*\ **->running**, respectively) are - * copied. In general, **bpf_perf_event_read_value**\ () is - * recommended over **bpf_perf_event_read**\ (), which has some - * ABI issues and provides fewer functionalities. - * - * These values are interesting, because hardware PMU (Performance - * Monitoring Unit) counters are limited resources. When there are - * more PMU based perf events opened than available counters, - * kernel will multiplex these events so each event gets certain - * percentage (but not all) of the PMU time. In case that - * multiplexing happens, the number of samples or counter value - * will not reflect the case compared to when no multiplexing - * occurs. This makes comparison between different runs difficult. - * Typically, the counter value should be normalized before - * comparing to other experiments. The usual normalization is done - * as follows. - * - * :: - * - * normalized_counter = counter * t_enabled / t_running - * - * Where t_enabled is the time enabled for event and t_running is - * the time running for event since last normalization. The - * enabled and running times are accumulated since the perf event - * open. To achieve scaling factor between two invocations of an - * eBPF program, users can use CPU id as the key (which is - * typical for perf array usage model) to remember the previous - * value and do the calculation inside the eBPF program. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_perf_event_read_value)(void *map, __u64 flags, struct bpf_perf_event_value *buf, __u32 buf_size) = (void *) 55; - -/* - * bpf_perf_prog_read_value - * - * For en eBPF program attached to a perf event, retrieve the - * value of the event counter associated to *ctx* and store it in - * the structure pointed by *buf* and of size *buf_size*. Enabled - * and running times are also stored in the structure (see - * description of helper **bpf_perf_event_read_value**\ () for - * more details). - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_perf_prog_read_value)(struct bpf_perf_event_data *ctx, struct bpf_perf_event_value *buf, __u32 buf_size) = (void *) 56; - -/* - * bpf_getsockopt - * - * Emulate a call to **getsockopt()** on the socket associated to - * *bpf_socket*, which must be a full socket. The *level* at - * which the option resides and the name *optname* of the option - * must be specified, see **getsockopt(2)** for more information. - * The retrieved value is stored in the structure pointed by - * *opval* and of length *optlen*. - * - * *bpf_socket* should be one of the following: - * - * * **struct bpf_sock_ops** for **BPF_PROG_TYPE_SOCK_OPS**. - * * **struct bpf_sock_addr** for **BPF_CGROUP_INET4_CONNECT** - * and **BPF_CGROUP_INET6_CONNECT**. - * - * This helper actually implements a subset of **getsockopt()**. - * It supports the following *level*\ s: - * - * * **IPPROTO_TCP**, which supports *optname* - * **TCP_CONGESTION**. - * * **IPPROTO_IP**, which supports *optname* **IP_TOS**. - * * **IPPROTO_IPV6**, which supports *optname* **IPV6_TCLASS**. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_getsockopt)(void *bpf_socket, int level, int optname, void *optval, int optlen) = (void *) 57; - -/* - * bpf_override_return - * - * Used for error injection, this helper uses kprobes to override - * the return value of the probed function, and to set it to *rc*. - * The first argument is the context *regs* on which the kprobe - * works. - * - * This helper works by setting the PC (program counter) - * to an override function which is run in place of the original - * probed function. This means the probed function is not run at - * all. The replacement function just returns with the required - * value. - * - * This helper has security implications, and thus is subject to - * restrictions. It is only available if the kernel was compiled - * with the **CONFIG_BPF_KPROBE_OVERRIDE** configuration - * option, and in this case it only works on functions tagged with - * **ALLOW_ERROR_INJECTION** in the kernel code. - * - * Also, the helper is only available for the architectures having - * the CONFIG_FUNCTION_ERROR_INJECTION option. As of this writing, - * x86 architecture is the only one to support this feature. - * - * Returns - * 0 - */ -static long (*bpf_override_return)(struct pt_regs *regs, __u64 rc) = (void *) 58; - -/* - * bpf_sock_ops_cb_flags_set - * - * Attempt to set the value of the **bpf_sock_ops_cb_flags** field - * for the full TCP socket associated to *bpf_sock_ops* to - * *argval*. - * - * The primary use of this field is to determine if there should - * be calls to eBPF programs of type - * **BPF_PROG_TYPE_SOCK_OPS** at various points in the TCP - * code. A program of the same type can change its value, per - * connection and as necessary, when the connection is - * established. This field is directly accessible for reading, but - * this helper must be used for updates in order to return an - * error if an eBPF program tries to set a callback that is not - * supported in the current kernel. - * - * *argval* is a flag array which can combine these flags: - * - * * **BPF_SOCK_OPS_RTO_CB_FLAG** (retransmission time out) - * * **BPF_SOCK_OPS_RETRANS_CB_FLAG** (retransmission) - * * **BPF_SOCK_OPS_STATE_CB_FLAG** (TCP state change) - * * **BPF_SOCK_OPS_RTT_CB_FLAG** (every RTT) - * - * Therefore, this function can be used to clear a callback flag by - * setting the appropriate bit to zero. e.g. to disable the RTO - * callback: - * - * **bpf_sock_ops_cb_flags_set(bpf_sock,** - * **bpf_sock->bpf_sock_ops_cb_flags & ~BPF_SOCK_OPS_RTO_CB_FLAG)** - * - * Here are some examples of where one could call such eBPF - * program: - * - * * When RTO fires. - * * When a packet is retransmitted. - * * When the connection terminates. - * * When a packet is sent. - * * When a packet is received. - * - * Returns - * Code **-EINVAL** if the socket is not a full TCP socket; - * otherwise, a positive number containing the bits that could not - * be set is returned (which comes down to 0 if all bits were set - * as required). - */ -static long (*bpf_sock_ops_cb_flags_set)(struct bpf_sock_ops *bpf_sock, int argval) = (void *) 59; - -/* - * bpf_msg_redirect_map - * - * This helper is used in programs implementing policies at the - * socket level. If the message *msg* is allowed to pass (i.e. if - * the verdict eBPF program returns **SK_PASS**), redirect it to - * the socket referenced by *map* (of type - * **BPF_MAP_TYPE_SOCKMAP**) at index *key*. Both ingress and - * egress interfaces can be used for redirection. The - * **BPF_F_INGRESS** value in *flags* is used to make the - * distinction (ingress path is selected if the flag is present, - * egress path otherwise). This is the only flag supported for now. - * - * Returns - * **SK_PASS** on success, or **SK_DROP** on error. - */ -static long (*bpf_msg_redirect_map)(struct sk_msg_md *msg, void *map, __u32 key, __u64 flags) = (void *) 60; - -/* - * bpf_msg_apply_bytes - * - * For socket policies, apply the verdict of the eBPF program to - * the next *bytes* (number of bytes) of message *msg*. - * - * For example, this helper can be used in the following cases: - * - * * A single **sendmsg**\ () or **sendfile**\ () system call - * contains multiple logical messages that the eBPF program is - * supposed to read and for which it should apply a verdict. - * * An eBPF program only cares to read the first *bytes* of a - * *msg*. If the message has a large payload, then setting up - * and calling the eBPF program repeatedly for all bytes, even - * though the verdict is already known, would create unnecessary - * overhead. - * - * When called from within an eBPF program, the helper sets a - * counter internal to the BPF infrastructure, that is used to - * apply the last verdict to the next *bytes*. If *bytes* is - * smaller than the current data being processed from a - * **sendmsg**\ () or **sendfile**\ () system call, the first - * *bytes* will be sent and the eBPF program will be re-run with - * the pointer for start of data pointing to byte number *bytes* - * **+ 1**. If *bytes* is larger than the current data being - * processed, then the eBPF verdict will be applied to multiple - * **sendmsg**\ () or **sendfile**\ () calls until *bytes* are - * consumed. - * - * Note that if a socket closes with the internal counter holding - * a non-zero value, this is not a problem because data is not - * being buffered for *bytes* and is sent as it is received. - * - * Returns - * 0 - */ -static long (*bpf_msg_apply_bytes)(struct sk_msg_md *msg, __u32 bytes) = (void *) 61; - -/* - * bpf_msg_cork_bytes - * - * For socket policies, prevent the execution of the verdict eBPF - * program for message *msg* until *bytes* (byte number) have been - * accumulated. - * - * This can be used when one needs a specific number of bytes - * before a verdict can be assigned, even if the data spans - * multiple **sendmsg**\ () or **sendfile**\ () calls. The extreme - * case would be a user calling **sendmsg**\ () repeatedly with - * 1-byte long message segments. Obviously, this is bad for - * performance, but it is still valid. If the eBPF program needs - * *bytes* bytes to validate a header, this helper can be used to - * prevent the eBPF program to be called again until *bytes* have - * been accumulated. - * - * Returns - * 0 - */ -static long (*bpf_msg_cork_bytes)(struct sk_msg_md *msg, __u32 bytes) = (void *) 62; - -/* - * bpf_msg_pull_data - * - * For socket policies, pull in non-linear data from user space - * for *msg* and set pointers *msg*\ **->data** and *msg*\ - * **->data_end** to *start* and *end* bytes offsets into *msg*, - * respectively. - * - * If a program of type **BPF_PROG_TYPE_SK_MSG** is run on a - * *msg* it can only parse data that the (**data**, **data_end**) - * pointers have already consumed. For **sendmsg**\ () hooks this - * is likely the first scatterlist element. But for calls relying - * on the **sendpage** handler (e.g. **sendfile**\ ()) this will - * be the range (**0**, **0**) because the data is shared with - * user space and by default the objective is to avoid allowing - * user space to modify data while (or after) eBPF verdict is - * being decided. This helper can be used to pull in data and to - * set the start and end pointer to given values. Data will be - * copied if necessary (i.e. if data was not linear and if start - * and end pointers do not point to the same chunk). - * - * A call to this helper is susceptible to change the underlying - * packet buffer. Therefore, at load time, all checks on pointers - * previously done by the verifier are invalidated and must be - * performed again, if the helper is used in combination with - * direct packet access. - * - * All values for *flags* are reserved for future usage, and must - * be left at zero. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_msg_pull_data)(struct sk_msg_md *msg, __u32 start, __u32 end, __u64 flags) = (void *) 63; - -/* - * bpf_bind - * - * Bind the socket associated to *ctx* to the address pointed by - * *addr*, of length *addr_len*. This allows for making outgoing - * connection from the desired IP address, which can be useful for - * example when all processes inside a cgroup should use one - * single IP address on a host that has multiple IP configured. - * - * This helper works for IPv4 and IPv6, TCP and UDP sockets. The - * domain (*addr*\ **->sa_family**) must be **AF_INET** (or - * **AF_INET6**). It's advised to pass zero port (**sin_port** - * or **sin6_port**) which triggers IP_BIND_ADDRESS_NO_PORT-like - * behavior and lets the kernel efficiently pick up an unused - * port as long as 4-tuple is unique. Passing non-zero port might - * lead to degraded performance. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_bind)(struct bpf_sock_addr *ctx, struct sockaddr *addr, int addr_len) = (void *) 64; - -/* - * bpf_xdp_adjust_tail - * - * Adjust (move) *xdp_md*\ **->data_end** by *delta* bytes. It is - * possible to both shrink and grow the packet tail. - * Shrink done via *delta* being a negative integer. - * - * A call to this helper is susceptible to change the underlying - * packet buffer. Therefore, at load time, all checks on pointers - * previously done by the verifier are invalidated and must be - * performed again, if the helper is used in combination with - * direct packet access. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_xdp_adjust_tail)(struct xdp_md *xdp_md, int delta) = (void *) 65; - -/* - * bpf_skb_get_xfrm_state - * - * Retrieve the XFRM state (IP transform framework, see also - * **ip-xfrm(8)**) at *index* in XFRM "security path" for *skb*. - * - * The retrieved value is stored in the **struct bpf_xfrm_state** - * pointed by *xfrm_state* and of length *size*. - * - * All values for *flags* are reserved for future usage, and must - * be left at zero. - * - * This helper is available only if the kernel was compiled with - * **CONFIG_XFRM** configuration option. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_skb_get_xfrm_state)(struct __sk_buff *skb, __u32 index, struct bpf_xfrm_state *xfrm_state, __u32 size, __u64 flags) = (void *) 66; - -/* - * bpf_get_stack - * - * Return a user or a kernel stack in bpf program provided buffer. - * To achieve this, the helper needs *ctx*, which is a pointer - * to the context on which the tracing program is executed. - * To store the stacktrace, the bpf program provides *buf* with - * a nonnegative *size*. - * - * The last argument, *flags*, holds the number of stack frames to - * skip (from 0 to 255), masked with - * **BPF_F_SKIP_FIELD_MASK**. The next bits can be used to set - * the following flags: - * - * **BPF_F_USER_STACK** - * Collect a user space stack instead of a kernel stack. - * **BPF_F_USER_BUILD_ID** - * Collect buildid+offset instead of ips for user stack, - * only valid if **BPF_F_USER_STACK** is also specified. - * - * **bpf_get_stack**\ () can collect up to - * **PERF_MAX_STACK_DEPTH** both kernel and user frames, subject - * to sufficient large buffer size. Note that - * this limit can be controlled with the **sysctl** program, and - * that it should be manually increased in order to profile long - * user stacks (such as stacks for Java programs). To do so, use: - * - * :: - * - * # sysctl kernel.perf_event_max_stack= - * - * Returns - * The non-negative copied *buf* length equal to or less than - * *size* on success, or a negative error in case of failure. - */ -static long (*bpf_get_stack)(void *ctx, void *buf, __u32 size, __u64 flags) = (void *) 67; - -/* - * bpf_skb_load_bytes_relative - * - * This helper is similar to **bpf_skb_load_bytes**\ () in that - * it provides an easy way to load *len* bytes from *offset* - * from the packet associated to *skb*, into the buffer pointed - * by *to*. The difference to **bpf_skb_load_bytes**\ () is that - * a fifth argument *start_header* exists in order to select a - * base offset to start from. *start_header* can be one of: - * - * **BPF_HDR_START_MAC** - * Base offset to load data from is *skb*'s mac header. - * **BPF_HDR_START_NET** - * Base offset to load data from is *skb*'s network header. - * - * In general, "direct packet access" is the preferred method to - * access packet data, however, this helper is in particular useful - * in socket filters where *skb*\ **->data** does not always point - * to the start of the mac header and where "direct packet access" - * is not available. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_skb_load_bytes_relative)(const void *skb, __u32 offset, void *to, __u32 len, __u32 start_header) = (void *) 68; - -/* - * bpf_fib_lookup - * - * Do FIB lookup in kernel tables using parameters in *params*. - * If lookup is successful and result shows packet is to be - * forwarded, the neighbor tables are searched for the nexthop. - * If successful (ie., FIB lookup shows forwarding and nexthop - * is resolved), the nexthop address is returned in ipv4_dst - * or ipv6_dst based on family, smac is set to mac address of - * egress device, dmac is set to nexthop mac address, rt_metric - * is set to metric from route (IPv4/IPv6 only), and ifindex - * is set to the device index of the nexthop from the FIB lookup. - * - * *plen* argument is the size of the passed in struct. - * *flags* argument can be a combination of one or more of the - * following values: - * - * **BPF_FIB_LOOKUP_DIRECT** - * Do a direct table lookup vs full lookup using FIB - * rules. - * **BPF_FIB_LOOKUP_OUTPUT** - * Perform lookup from an egress perspective (default is - * ingress). - * - * *ctx* is either **struct xdp_md** for XDP programs or - * **struct sk_buff** tc cls_act programs. - * - * Returns - * * < 0 if any input argument is invalid - * * 0 on success (packet is forwarded, nexthop neighbor exists) - * * > 0 one of **BPF_FIB_LKUP_RET_** codes explaining why the - * packet is not forwarded or needs assist from full stack - * - * If lookup fails with BPF_FIB_LKUP_RET_FRAG_NEEDED, then the MTU - * was exceeded and output params->mtu_result contains the MTU. - */ -static long (*bpf_fib_lookup)(void *ctx, struct bpf_fib_lookup *params, int plen, __u32 flags) = (void *) 69; - -/* - * bpf_sock_hash_update - * - * Add an entry to, or update a sockhash *map* referencing sockets. - * The *skops* is used as a new value for the entry associated to - * *key*. *flags* is one of: - * - * **BPF_NOEXIST** - * The entry for *key* must not exist in the map. - * **BPF_EXIST** - * The entry for *key* must already exist in the map. - * **BPF_ANY** - * No condition on the existence of the entry for *key*. - * - * If the *map* has eBPF programs (parser and verdict), those will - * be inherited by the socket being added. If the socket is - * already attached to eBPF programs, this results in an error. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_sock_hash_update)(struct bpf_sock_ops *skops, void *map, void *key, __u64 flags) = (void *) 70; - -/* - * bpf_msg_redirect_hash - * - * This helper is used in programs implementing policies at the - * socket level. If the message *msg* is allowed to pass (i.e. if - * the verdict eBPF program returns **SK_PASS**), redirect it to - * the socket referenced by *map* (of type - * **BPF_MAP_TYPE_SOCKHASH**) using hash *key*. Both ingress and - * egress interfaces can be used for redirection. The - * **BPF_F_INGRESS** value in *flags* is used to make the - * distinction (ingress path is selected if the flag is present, - * egress path otherwise). This is the only flag supported for now. - * - * Returns - * **SK_PASS** on success, or **SK_DROP** on error. - */ -static long (*bpf_msg_redirect_hash)(struct sk_msg_md *msg, void *map, void *key, __u64 flags) = (void *) 71; - -/* - * bpf_sk_redirect_hash - * - * This helper is used in programs implementing policies at the - * skb socket level. If the sk_buff *skb* is allowed to pass (i.e. - * if the verdict eBPF program returns **SK_PASS**), redirect it - * to the socket referenced by *map* (of type - * **BPF_MAP_TYPE_SOCKHASH**) using hash *key*. Both ingress and - * egress interfaces can be used for redirection. The - * **BPF_F_INGRESS** value in *flags* is used to make the - * distinction (ingress path is selected if the flag is present, - * egress otherwise). This is the only flag supported for now. - * - * Returns - * **SK_PASS** on success, or **SK_DROP** on error. - */ -static long (*bpf_sk_redirect_hash)(struct __sk_buff *skb, void *map, void *key, __u64 flags) = (void *) 72; - -/* - * bpf_lwt_push_encap - * - * Encapsulate the packet associated to *skb* within a Layer 3 - * protocol header. This header is provided in the buffer at - * address *hdr*, with *len* its size in bytes. *type* indicates - * the protocol of the header and can be one of: - * - * **BPF_LWT_ENCAP_SEG6** - * IPv6 encapsulation with Segment Routing Header - * (**struct ipv6_sr_hdr**). *hdr* only contains the SRH, - * the IPv6 header is computed by the kernel. - * **BPF_LWT_ENCAP_SEG6_INLINE** - * Only works if *skb* contains an IPv6 packet. Insert a - * Segment Routing Header (**struct ipv6_sr_hdr**) inside - * the IPv6 header. - * **BPF_LWT_ENCAP_IP** - * IP encapsulation (GRE/GUE/IPIP/etc). The outer header - * must be IPv4 or IPv6, followed by zero or more - * additional headers, up to **LWT_BPF_MAX_HEADROOM** - * total bytes in all prepended headers. Please note that - * if **skb_is_gso**\ (*skb*) is true, no more than two - * headers can be prepended, and the inner header, if - * present, should be either GRE or UDP/GUE. - * - * **BPF_LWT_ENCAP_SEG6**\ \* types can be called by BPF programs - * of type **BPF_PROG_TYPE_LWT_IN**; **BPF_LWT_ENCAP_IP** type can - * be called by bpf programs of types **BPF_PROG_TYPE_LWT_IN** and - * **BPF_PROG_TYPE_LWT_XMIT**. - * - * A call to this helper is susceptible to change the underlying - * packet buffer. Therefore, at load time, all checks on pointers - * previously done by the verifier are invalidated and must be - * performed again, if the helper is used in combination with - * direct packet access. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_lwt_push_encap)(struct __sk_buff *skb, __u32 type, void *hdr, __u32 len) = (void *) 73; - -/* - * bpf_lwt_seg6_store_bytes - * - * Store *len* bytes from address *from* into the packet - * associated to *skb*, at *offset*. Only the flags, tag and TLVs - * inside the outermost IPv6 Segment Routing Header can be - * modified through this helper. - * - * A call to this helper is susceptible to change the underlying - * packet buffer. Therefore, at load time, all checks on pointers - * previously done by the verifier are invalidated and must be - * performed again, if the helper is used in combination with - * direct packet access. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_lwt_seg6_store_bytes)(struct __sk_buff *skb, __u32 offset, const void *from, __u32 len) = (void *) 74; - -/* - * bpf_lwt_seg6_adjust_srh - * - * Adjust the size allocated to TLVs in the outermost IPv6 - * Segment Routing Header contained in the packet associated to - * *skb*, at position *offset* by *delta* bytes. Only offsets - * after the segments are accepted. *delta* can be as well - * positive (growing) as negative (shrinking). - * - * A call to this helper is susceptible to change the underlying - * packet buffer. Therefore, at load time, all checks on pointers - * previously done by the verifier are invalidated and must be - * performed again, if the helper is used in combination with - * direct packet access. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_lwt_seg6_adjust_srh)(struct __sk_buff *skb, __u32 offset, __s32 delta) = (void *) 75; - -/* - * bpf_lwt_seg6_action - * - * Apply an IPv6 Segment Routing action of type *action* to the - * packet associated to *skb*. Each action takes a parameter - * contained at address *param*, and of length *param_len* bytes. - * *action* can be one of: - * - * **SEG6_LOCAL_ACTION_END_X** - * End.X action: Endpoint with Layer-3 cross-connect. - * Type of *param*: **struct in6_addr**. - * **SEG6_LOCAL_ACTION_END_T** - * End.T action: Endpoint with specific IPv6 table lookup. - * Type of *param*: **int**. - * **SEG6_LOCAL_ACTION_END_B6** - * End.B6 action: Endpoint bound to an SRv6 policy. - * Type of *param*: **struct ipv6_sr_hdr**. - * **SEG6_LOCAL_ACTION_END_B6_ENCAP** - * End.B6.Encap action: Endpoint bound to an SRv6 - * encapsulation policy. - * Type of *param*: **struct ipv6_sr_hdr**. - * - * A call to this helper is susceptible to change the underlying - * packet buffer. Therefore, at load time, all checks on pointers - * previously done by the verifier are invalidated and must be - * performed again, if the helper is used in combination with - * direct packet access. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_lwt_seg6_action)(struct __sk_buff *skb, __u32 action, void *param, __u32 param_len) = (void *) 76; - -/* - * bpf_rc_repeat - * - * This helper is used in programs implementing IR decoding, to - * report a successfully decoded repeat key message. This delays - * the generation of a key up event for previously generated - * key down event. - * - * Some IR protocols like NEC have a special IR message for - * repeating last button, for when a button is held down. - * - * The *ctx* should point to the lirc sample as passed into - * the program. - * - * This helper is only available is the kernel was compiled with - * the **CONFIG_BPF_LIRC_MODE2** configuration option set to - * "**y**". - * - * Returns - * 0 - */ -static long (*bpf_rc_repeat)(void *ctx) = (void *) 77; - -/* - * bpf_rc_keydown - * - * This helper is used in programs implementing IR decoding, to - * report a successfully decoded key press with *scancode*, - * *toggle* value in the given *protocol*. The scancode will be - * translated to a keycode using the rc keymap, and reported as - * an input key down event. After a period a key up event is - * generated. This period can be extended by calling either - * **bpf_rc_keydown**\ () again with the same values, or calling - * **bpf_rc_repeat**\ (). - * - * Some protocols include a toggle bit, in case the button was - * released and pressed again between consecutive scancodes. - * - * The *ctx* should point to the lirc sample as passed into - * the program. - * - * The *protocol* is the decoded protocol number (see - * **enum rc_proto** for some predefined values). - * - * This helper is only available is the kernel was compiled with - * the **CONFIG_BPF_LIRC_MODE2** configuration option set to - * "**y**". - * - * Returns - * 0 - */ -static long (*bpf_rc_keydown)(void *ctx, __u32 protocol, __u64 scancode, __u32 toggle) = (void *) 78; - -/* - * bpf_skb_cgroup_id - * - * Return the cgroup v2 id of the socket associated with the *skb*. - * This is roughly similar to the **bpf_get_cgroup_classid**\ () - * helper for cgroup v1 by providing a tag resp. identifier that - * can be matched on or used for map lookups e.g. to implement - * policy. The cgroup v2 id of a given path in the hierarchy is - * exposed in user space through the f_handle API in order to get - * to the same 64-bit id. - * - * This helper can be used on TC egress path, but not on ingress, - * and is available only if the kernel was compiled with the - * **CONFIG_SOCK_CGROUP_DATA** configuration option. - * - * Returns - * The id is returned or 0 in case the id could not be retrieved. - */ -static __u64 (*bpf_skb_cgroup_id)(struct __sk_buff *skb) = (void *) 79; - -/* - * bpf_get_current_cgroup_id - * - * Get the current cgroup id based on the cgroup within which - * the current task is running. - * - * Returns - * A 64-bit integer containing the current cgroup id based - * on the cgroup within which the current task is running. - */ -static __u64 (*bpf_get_current_cgroup_id)(void) = (void *) 80; - -/* - * bpf_get_local_storage - * - * Get the pointer to the local storage area. - * The type and the size of the local storage is defined - * by the *map* argument. - * The *flags* meaning is specific for each map type, - * and has to be 0 for cgroup local storage. - * - * Depending on the BPF program type, a local storage area - * can be shared between multiple instances of the BPF program, - * running simultaneously. - * - * A user should care about the synchronization by himself. - * For example, by using the **BPF_ATOMIC** instructions to alter - * the shared data. - * - * Returns - * A pointer to the local storage area. - */ -static void *(*bpf_get_local_storage)(void *map, __u64 flags) = (void *) 81; - -/* - * bpf_sk_select_reuseport - * - * Select a **SO_REUSEPORT** socket from a - * **BPF_MAP_TYPE_REUSEPORT_SOCKARRAY** *map*. - * It checks the selected socket is matching the incoming - * request in the socket buffer. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_sk_select_reuseport)(struct sk_reuseport_md *reuse, void *map, void *key, __u64 flags) = (void *) 82; - -/* - * bpf_skb_ancestor_cgroup_id - * - * Return id of cgroup v2 that is ancestor of cgroup associated - * with the *skb* at the *ancestor_level*. The root cgroup is at - * *ancestor_level* zero and each step down the hierarchy - * increments the level. If *ancestor_level* == level of cgroup - * associated with *skb*, then return value will be same as that - * of **bpf_skb_cgroup_id**\ (). - * - * The helper is useful to implement policies based on cgroups - * that are upper in hierarchy than immediate cgroup associated - * with *skb*. - * - * The format of returned id and helper limitations are same as in - * **bpf_skb_cgroup_id**\ (). - * - * Returns - * The id is returned or 0 in case the id could not be retrieved. - */ -static __u64 (*bpf_skb_ancestor_cgroup_id)(struct __sk_buff *skb, int ancestor_level) = (void *) 83; - -/* - * bpf_sk_lookup_tcp - * - * Look for TCP socket matching *tuple*, optionally in a child - * network namespace *netns*. The return value must be checked, - * and if non-**NULL**, released via **bpf_sk_release**\ (). - * - * The *ctx* should point to the context of the program, such as - * the skb or socket (depending on the hook in use). This is used - * to determine the base network namespace for the lookup. - * - * *tuple_size* must be one of: - * - * **sizeof**\ (*tuple*\ **->ipv4**) - * Look for an IPv4 socket. - * **sizeof**\ (*tuple*\ **->ipv6**) - * Look for an IPv6 socket. - * - * If the *netns* is a negative signed 32-bit integer, then the - * socket lookup table in the netns associated with the *ctx* - * will be used. For the TC hooks, this is the netns of the device - * in the skb. For socket hooks, this is the netns of the socket. - * If *netns* is any other signed 32-bit value greater than or - * equal to zero then it specifies the ID of the netns relative to - * the netns associated with the *ctx*. *netns* values beyond the - * range of 32-bit integers are reserved for future use. - * - * All values for *flags* are reserved for future usage, and must - * be left at zero. - * - * This helper is available only if the kernel was compiled with - * **CONFIG_NET** configuration option. - * - * Returns - * Pointer to **struct bpf_sock**, or **NULL** in case of failure. - * For sockets with reuseport option, the **struct bpf_sock** - * result is from *reuse*\ **->socks**\ [] using the hash of the - * tuple. - */ -static struct bpf_sock *(*bpf_sk_lookup_tcp)(void *ctx, struct bpf_sock_tuple *tuple, __u32 tuple_size, __u64 netns, __u64 flags) = (void *) 84; - -/* - * bpf_sk_lookup_udp - * - * Look for UDP socket matching *tuple*, optionally in a child - * network namespace *netns*. The return value must be checked, - * and if non-**NULL**, released via **bpf_sk_release**\ (). - * - * The *ctx* should point to the context of the program, such as - * the skb or socket (depending on the hook in use). This is used - * to determine the base network namespace for the lookup. - * - * *tuple_size* must be one of: - * - * **sizeof**\ (*tuple*\ **->ipv4**) - * Look for an IPv4 socket. - * **sizeof**\ (*tuple*\ **->ipv6**) - * Look for an IPv6 socket. - * - * If the *netns* is a negative signed 32-bit integer, then the - * socket lookup table in the netns associated with the *ctx* - * will be used. For the TC hooks, this is the netns of the device - * in the skb. For socket hooks, this is the netns of the socket. - * If *netns* is any other signed 32-bit value greater than or - * equal to zero then it specifies the ID of the netns relative to - * the netns associated with the *ctx*. *netns* values beyond the - * range of 32-bit integers are reserved for future use. - * - * All values for *flags* are reserved for future usage, and must - * be left at zero. - * - * This helper is available only if the kernel was compiled with - * **CONFIG_NET** configuration option. - * - * Returns - * Pointer to **struct bpf_sock**, or **NULL** in case of failure. - * For sockets with reuseport option, the **struct bpf_sock** - * result is from *reuse*\ **->socks**\ [] using the hash of the - * tuple. - */ -static struct bpf_sock *(*bpf_sk_lookup_udp)(void *ctx, struct bpf_sock_tuple *tuple, __u32 tuple_size, __u64 netns, __u64 flags) = (void *) 85; - -/* - * bpf_sk_release - * - * Release the reference held by *sock*. *sock* must be a - * non-**NULL** pointer that was returned from - * **bpf_sk_lookup_xxx**\ (). - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_sk_release)(void *sock) = (void *) 86; - -/* - * bpf_map_push_elem - * - * Push an element *value* in *map*. *flags* is one of: - * - * **BPF_EXIST** - * If the queue/stack is full, the oldest element is - * removed to make room for this. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_map_push_elem)(void *map, const void *value, __u64 flags) = (void *) 87; - -/* - * bpf_map_pop_elem - * - * Pop an element from *map*. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_map_pop_elem)(void *map, void *value) = (void *) 88; - -/* - * bpf_map_peek_elem - * - * Get an element from *map* without removing it. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_map_peek_elem)(void *map, void *value) = (void *) 89; - -/* - * bpf_msg_push_data - * - * For socket policies, insert *len* bytes into *msg* at offset - * *start*. - * - * If a program of type **BPF_PROG_TYPE_SK_MSG** is run on a - * *msg* it may want to insert metadata or options into the *msg*. - * This can later be read and used by any of the lower layer BPF - * hooks. - * - * This helper may fail if under memory pressure (a malloc - * fails) in these cases BPF programs will get an appropriate - * error and BPF programs will need to handle them. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_msg_push_data)(struct sk_msg_md *msg, __u32 start, __u32 len, __u64 flags) = (void *) 90; - -/* - * bpf_msg_pop_data - * - * Will remove *len* bytes from a *msg* starting at byte *start*. - * This may result in **ENOMEM** errors under certain situations if - * an allocation and copy are required due to a full ring buffer. - * However, the helper will try to avoid doing the allocation - * if possible. Other errors can occur if input parameters are - * invalid either due to *start* byte not being valid part of *msg* - * payload and/or *pop* value being to large. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_msg_pop_data)(struct sk_msg_md *msg, __u32 start, __u32 len, __u64 flags) = (void *) 91; - -/* - * bpf_rc_pointer_rel - * - * This helper is used in programs implementing IR decoding, to - * report a successfully decoded pointer movement. - * - * The *ctx* should point to the lirc sample as passed into - * the program. - * - * This helper is only available is the kernel was compiled with - * the **CONFIG_BPF_LIRC_MODE2** configuration option set to - * "**y**". - * - * Returns - * 0 - */ -static long (*bpf_rc_pointer_rel)(void *ctx, __s32 rel_x, __s32 rel_y) = (void *) 92; - -/* - * bpf_spin_lock - * - * Acquire a spinlock represented by the pointer *lock*, which is - * stored as part of a value of a map. Taking the lock allows to - * safely update the rest of the fields in that value. The - * spinlock can (and must) later be released with a call to - * **bpf_spin_unlock**\ (\ *lock*\ ). - * - * Spinlocks in BPF programs come with a number of restrictions - * and constraints: - * - * * **bpf_spin_lock** objects are only allowed inside maps of - * types **BPF_MAP_TYPE_HASH** and **BPF_MAP_TYPE_ARRAY** (this - * list could be extended in the future). - * * BTF description of the map is mandatory. - * * The BPF program can take ONE lock at a time, since taking two - * or more could cause dead locks. - * * Only one **struct bpf_spin_lock** is allowed per map element. - * * When the lock is taken, calls (either BPF to BPF or helpers) - * are not allowed. - * * The **BPF_LD_ABS** and **BPF_LD_IND** instructions are not - * allowed inside a spinlock-ed region. - * * The BPF program MUST call **bpf_spin_unlock**\ () to release - * the lock, on all execution paths, before it returns. - * * The BPF program can access **struct bpf_spin_lock** only via - * the **bpf_spin_lock**\ () and **bpf_spin_unlock**\ () - * helpers. Loading or storing data into the **struct - * bpf_spin_lock** *lock*\ **;** field of a map is not allowed. - * * To use the **bpf_spin_lock**\ () helper, the BTF description - * of the map value must be a struct and have **struct - * bpf_spin_lock** *anyname*\ **;** field at the top level. - * Nested lock inside another struct is not allowed. - * * The **struct bpf_spin_lock** *lock* field in a map value must - * be aligned on a multiple of 4 bytes in that value. - * * Syscall with command **BPF_MAP_LOOKUP_ELEM** does not copy - * the **bpf_spin_lock** field to user space. - * * Syscall with command **BPF_MAP_UPDATE_ELEM**, or update from - * a BPF program, do not update the **bpf_spin_lock** field. - * * **bpf_spin_lock** cannot be on the stack or inside a - * networking packet (it can only be inside of a map values). - * * **bpf_spin_lock** is available to root only. - * * Tracing programs and socket filter programs cannot use - * **bpf_spin_lock**\ () due to insufficient preemption checks - * (but this may change in the future). - * * **bpf_spin_lock** is not allowed in inner maps of map-in-map. - * - * Returns - * 0 - */ -static long (*bpf_spin_lock)(struct bpf_spin_lock *lock) = (void *) 93; - -/* - * bpf_spin_unlock - * - * Release the *lock* previously locked by a call to - * **bpf_spin_lock**\ (\ *lock*\ ). - * - * Returns - * 0 - */ -static long (*bpf_spin_unlock)(struct bpf_spin_lock *lock) = (void *) 94; - -/* - * bpf_sk_fullsock - * - * This helper gets a **struct bpf_sock** pointer such - * that all the fields in this **bpf_sock** can be accessed. - * - * Returns - * A **struct bpf_sock** pointer on success, or **NULL** in - * case of failure. - */ -static struct bpf_sock *(*bpf_sk_fullsock)(struct bpf_sock *sk) = (void *) 95; - -/* - * bpf_tcp_sock - * - * This helper gets a **struct bpf_tcp_sock** pointer from a - * **struct bpf_sock** pointer. - * - * Returns - * A **struct bpf_tcp_sock** pointer on success, or **NULL** in - * case of failure. - */ -static struct bpf_tcp_sock *(*bpf_tcp_sock)(struct bpf_sock *sk) = (void *) 96; - -/* - * bpf_skb_ecn_set_ce - * - * Set ECN (Explicit Congestion Notification) field of IP header - * to **CE** (Congestion Encountered) if current value is **ECT** - * (ECN Capable Transport). Otherwise, do nothing. Works with IPv6 - * and IPv4. - * - * Returns - * 1 if the **CE** flag is set (either by the current helper call - * or because it was already present), 0 if it is not set. - */ -static long (*bpf_skb_ecn_set_ce)(struct __sk_buff *skb) = (void *) 97; - -/* - * bpf_get_listener_sock - * - * Return a **struct bpf_sock** pointer in **TCP_LISTEN** state. - * **bpf_sk_release**\ () is unnecessary and not allowed. - * - * Returns - * A **struct bpf_sock** pointer on success, or **NULL** in - * case of failure. - */ -static struct bpf_sock *(*bpf_get_listener_sock)(struct bpf_sock *sk) = (void *) 98; - -/* - * bpf_skc_lookup_tcp - * - * Look for TCP socket matching *tuple*, optionally in a child - * network namespace *netns*. The return value must be checked, - * and if non-**NULL**, released via **bpf_sk_release**\ (). - * - * This function is identical to **bpf_sk_lookup_tcp**\ (), except - * that it also returns timewait or request sockets. Use - * **bpf_sk_fullsock**\ () or **bpf_tcp_sock**\ () to access the - * full structure. - * - * This helper is available only if the kernel was compiled with - * **CONFIG_NET** configuration option. - * - * Returns - * Pointer to **struct bpf_sock**, or **NULL** in case of failure. - * For sockets with reuseport option, the **struct bpf_sock** - * result is from *reuse*\ **->socks**\ [] using the hash of the - * tuple. - */ -static struct bpf_sock *(*bpf_skc_lookup_tcp)(void *ctx, struct bpf_sock_tuple *tuple, __u32 tuple_size, __u64 netns, __u64 flags) = (void *) 99; - -/* - * bpf_tcp_check_syncookie - * - * Check whether *iph* and *th* contain a valid SYN cookie ACK for - * the listening socket in *sk*. - * - * *iph* points to the start of the IPv4 or IPv6 header, while - * *iph_len* contains **sizeof**\ (**struct iphdr**) or - * **sizeof**\ (**struct ip6hdr**). - * - * *th* points to the start of the TCP header, while *th_len* - * contains **sizeof**\ (**struct tcphdr**). - * - * Returns - * 0 if *iph* and *th* are a valid SYN cookie ACK, or a negative - * error otherwise. - */ -static long (*bpf_tcp_check_syncookie)(void *sk, void *iph, __u32 iph_len, struct tcphdr *th, __u32 th_len) = (void *) 100; - -/* - * bpf_sysctl_get_name - * - * Get name of sysctl in /proc/sys/ and copy it into provided by - * program buffer *buf* of size *buf_len*. - * - * The buffer is always NUL terminated, unless it's zero-sized. - * - * If *flags* is zero, full name (e.g. "net/ipv4/tcp_mem") is - * copied. Use **BPF_F_SYSCTL_BASE_NAME** flag to copy base name - * only (e.g. "tcp_mem"). - * - * Returns - * Number of character copied (not including the trailing NUL). - * - * **-E2BIG** if the buffer wasn't big enough (*buf* will contain - * truncated name in this case). - */ -static long (*bpf_sysctl_get_name)(struct bpf_sysctl *ctx, char *buf, unsigned long buf_len, __u64 flags) = (void *) 101; - -/* - * bpf_sysctl_get_current_value - * - * Get current value of sysctl as it is presented in /proc/sys - * (incl. newline, etc), and copy it as a string into provided - * by program buffer *buf* of size *buf_len*. - * - * The whole value is copied, no matter what file position user - * space issued e.g. sys_read at. - * - * The buffer is always NUL terminated, unless it's zero-sized. - * - * Returns - * Number of character copied (not including the trailing NUL). - * - * **-E2BIG** if the buffer wasn't big enough (*buf* will contain - * truncated name in this case). - * - * **-EINVAL** if current value was unavailable, e.g. because - * sysctl is uninitialized and read returns -EIO for it. - */ -static long (*bpf_sysctl_get_current_value)(struct bpf_sysctl *ctx, char *buf, unsigned long buf_len) = (void *) 102; - -/* - * bpf_sysctl_get_new_value - * - * Get new value being written by user space to sysctl (before - * the actual write happens) and copy it as a string into - * provided by program buffer *buf* of size *buf_len*. - * - * User space may write new value at file position > 0. - * - * The buffer is always NUL terminated, unless it's zero-sized. - * - * Returns - * Number of character copied (not including the trailing NUL). - * - * **-E2BIG** if the buffer wasn't big enough (*buf* will contain - * truncated name in this case). - * - * **-EINVAL** if sysctl is being read. - */ -static long (*bpf_sysctl_get_new_value)(struct bpf_sysctl *ctx, char *buf, unsigned long buf_len) = (void *) 103; - -/* - * bpf_sysctl_set_new_value - * - * Override new value being written by user space to sysctl with - * value provided by program in buffer *buf* of size *buf_len*. - * - * *buf* should contain a string in same form as provided by user - * space on sysctl write. - * - * User space may write new value at file position > 0. To override - * the whole sysctl value file position should be set to zero. - * - * Returns - * 0 on success. - * - * **-E2BIG** if the *buf_len* is too big. - * - * **-EINVAL** if sysctl is being read. - */ -static long (*bpf_sysctl_set_new_value)(struct bpf_sysctl *ctx, const char *buf, unsigned long buf_len) = (void *) 104; - -/* - * bpf_strtol - * - * Convert the initial part of the string from buffer *buf* of - * size *buf_len* to a long integer according to the given base - * and save the result in *res*. - * - * The string may begin with an arbitrary amount of white space - * (as determined by **isspace**\ (3)) followed by a single - * optional '**-**' sign. - * - * Five least significant bits of *flags* encode base, other bits - * are currently unused. - * - * Base must be either 8, 10, 16 or 0 to detect it automatically - * similar to user space **strtol**\ (3). - * - * Returns - * Number of characters consumed on success. Must be positive but - * no more than *buf_len*. - * - * **-EINVAL** if no valid digits were found or unsupported base - * was provided. - * - * **-ERANGE** if resulting value was out of range. - */ -static long (*bpf_strtol)(const char *buf, unsigned long buf_len, __u64 flags, long *res) = (void *) 105; - -/* - * bpf_strtoul - * - * Convert the initial part of the string from buffer *buf* of - * size *buf_len* to an unsigned long integer according to the - * given base and save the result in *res*. - * - * The string may begin with an arbitrary amount of white space - * (as determined by **isspace**\ (3)). - * - * Five least significant bits of *flags* encode base, other bits - * are currently unused. - * - * Base must be either 8, 10, 16 or 0 to detect it automatically - * similar to user space **strtoul**\ (3). - * - * Returns - * Number of characters consumed on success. Must be positive but - * no more than *buf_len*. - * - * **-EINVAL** if no valid digits were found or unsupported base - * was provided. - * - * **-ERANGE** if resulting value was out of range. - */ -static long (*bpf_strtoul)(const char *buf, unsigned long buf_len, __u64 flags, unsigned long *res) = (void *) 106; - -/* - * bpf_sk_storage_get - * - * Get a bpf-local-storage from a *sk*. - * - * Logically, it could be thought of getting the value from - * a *map* with *sk* as the **key**. From this - * perspective, the usage is not much different from - * **bpf_map_lookup_elem**\ (*map*, **&**\ *sk*) except this - * helper enforces the key must be a full socket and the map must - * be a **BPF_MAP_TYPE_SK_STORAGE** also. - * - * Underneath, the value is stored locally at *sk* instead of - * the *map*. The *map* is used as the bpf-local-storage - * "type". The bpf-local-storage "type" (i.e. the *map*) is - * searched against all bpf-local-storages residing at *sk*. - * - * *sk* is a kernel **struct sock** pointer for LSM program. - * *sk* is a **struct bpf_sock** pointer for other program types. - * - * An optional *flags* (**BPF_SK_STORAGE_GET_F_CREATE**) can be - * used such that a new bpf-local-storage will be - * created if one does not exist. *value* can be used - * together with **BPF_SK_STORAGE_GET_F_CREATE** to specify - * the initial value of a bpf-local-storage. If *value* is - * **NULL**, the new bpf-local-storage will be zero initialized. - * - * Returns - * A bpf-local-storage pointer is returned on success. - * - * **NULL** if not found or there was an error in adding - * a new bpf-local-storage. - */ -static void *(*bpf_sk_storage_get)(void *map, void *sk, void *value, __u64 flags) = (void *) 107; - -/* - * bpf_sk_storage_delete - * - * Delete a bpf-local-storage from a *sk*. - * - * Returns - * 0 on success. - * - * **-ENOENT** if the bpf-local-storage cannot be found. - * **-EINVAL** if sk is not a fullsock (e.g. a request_sock). - */ -static long (*bpf_sk_storage_delete)(void *map, void *sk) = (void *) 108; - -/* - * bpf_send_signal - * - * Send signal *sig* to the process of the current task. - * The signal may be delivered to any of this process's threads. - * - * Returns - * 0 on success or successfully queued. - * - * **-EBUSY** if work queue under nmi is full. - * - * **-EINVAL** if *sig* is invalid. - * - * **-EPERM** if no permission to send the *sig*. - * - * **-EAGAIN** if bpf program can try again. - */ -static long (*bpf_send_signal)(__u32 sig) = (void *) 109; - -/* - * bpf_tcp_gen_syncookie - * - * Try to issue a SYN cookie for the packet with corresponding - * IP/TCP headers, *iph* and *th*, on the listening socket in *sk*. - * - * *iph* points to the start of the IPv4 or IPv6 header, while - * *iph_len* contains **sizeof**\ (**struct iphdr**) or - * **sizeof**\ (**struct ip6hdr**). - * - * *th* points to the start of the TCP header, while *th_len* - * contains the length of the TCP header. - * - * Returns - * On success, lower 32 bits hold the generated SYN cookie in - * followed by 16 bits which hold the MSS value for that cookie, - * and the top 16 bits are unused. - * - * On failure, the returned value is one of the following: - * - * **-EINVAL** SYN cookie cannot be issued due to error - * - * **-ENOENT** SYN cookie should not be issued (no SYN flood) - * - * **-EOPNOTSUPP** kernel configuration does not enable SYN cookies - * - * **-EPROTONOSUPPORT** IP packet version is not 4 or 6 - */ -static __s64 (*bpf_tcp_gen_syncookie)(void *sk, void *iph, __u32 iph_len, struct tcphdr *th, __u32 th_len) = (void *) 110; - -/* - * bpf_skb_output - * - * Write raw *data* blob into a special BPF perf event held by - * *map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. This perf - * event must have the following attributes: **PERF_SAMPLE_RAW** - * as **sample_type**, **PERF_TYPE_SOFTWARE** as **type**, and - * **PERF_COUNT_SW_BPF_OUTPUT** as **config**. - * - * The *flags* are used to indicate the index in *map* for which - * the value must be put, masked with **BPF_F_INDEX_MASK**. - * Alternatively, *flags* can be set to **BPF_F_CURRENT_CPU** - * to indicate that the index of the current CPU core should be - * used. - * - * The value to write, of *size*, is passed through eBPF stack and - * pointed by *data*. - * - * *ctx* is a pointer to in-kernel struct sk_buff. - * - * This helper is similar to **bpf_perf_event_output**\ () but - * restricted to raw_tracepoint bpf programs. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_skb_output)(void *ctx, void *map, __u64 flags, void *data, __u64 size) = (void *) 111; - -/* - * bpf_probe_read_user - * - * Safely attempt to read *size* bytes from user space address - * *unsafe_ptr* and store the data in *dst*. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_probe_read_user)(void *dst, __u32 size, const void *unsafe_ptr) = (void *) 112; - -/* - * bpf_probe_read_kernel - * - * Safely attempt to read *size* bytes from kernel space address - * *unsafe_ptr* and store the data in *dst*. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_probe_read_kernel)(void *dst, __u32 size, const void *unsafe_ptr) = (void *) 113; - -/* - * bpf_probe_read_user_str - * - * Copy a NUL terminated string from an unsafe user address - * *unsafe_ptr* to *dst*. The *size* should include the - * terminating NUL byte. In case the string length is smaller than - * *size*, the target is not padded with further NUL bytes. If the - * string length is larger than *size*, just *size*-1 bytes are - * copied and the last byte is set to NUL. - * - * On success, returns the number of bytes that were written, - * including the terminal NUL. This makes this helper useful in - * tracing programs for reading strings, and more importantly to - * get its length at runtime. See the following snippet: - * - * :: - * - * SEC("kprobe/sys_open") - * void bpf_sys_open(struct pt_regs *ctx) - * { - * char buf[PATHLEN]; // PATHLEN is defined to 256 - * int res = bpf_probe_read_user_str(buf, sizeof(buf), - * ctx->di); - * - * // Consume buf, for example push it to - * // userspace via bpf_perf_event_output(); we - * // can use res (the string length) as event - * // size, after checking its boundaries. - * } - * - * In comparison, using **bpf_probe_read_user**\ () helper here - * instead to read the string would require to estimate the length - * at compile time, and would often result in copying more memory - * than necessary. - * - * Another useful use case is when parsing individual process - * arguments or individual environment variables navigating - * *current*\ **->mm->arg_start** and *current*\ - * **->mm->env_start**: using this helper and the return value, - * one can quickly iterate at the right offset of the memory area. - * - * Returns - * On success, the strictly positive length of the output string, - * including the trailing NUL character. On error, a negative - * value. - */ -static long (*bpf_probe_read_user_str)(void *dst, __u32 size, const void *unsafe_ptr) = (void *) 114; - -/* - * bpf_probe_read_kernel_str - * - * Copy a NUL terminated string from an unsafe kernel address *unsafe_ptr* - * to *dst*. Same semantics as with **bpf_probe_read_user_str**\ () apply. - * - * Returns - * On success, the strictly positive length of the string, including - * the trailing NUL character. On error, a negative value. - */ -static long (*bpf_probe_read_kernel_str)(void *dst, __u32 size, const void *unsafe_ptr) = (void *) 115; - -/* - * bpf_tcp_send_ack - * - * Send out a tcp-ack. *tp* is the in-kernel struct **tcp_sock**. - * *rcv_nxt* is the ack_seq to be sent out. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_tcp_send_ack)(void *tp, __u32 rcv_nxt) = (void *) 116; - -/* - * bpf_send_signal_thread - * - * Send signal *sig* to the thread corresponding to the current task. - * - * Returns - * 0 on success or successfully queued. - * - * **-EBUSY** if work queue under nmi is full. - * - * **-EINVAL** if *sig* is invalid. - * - * **-EPERM** if no permission to send the *sig*. - * - * **-EAGAIN** if bpf program can try again. - */ -static long (*bpf_send_signal_thread)(__u32 sig) = (void *) 117; - -/* - * bpf_jiffies64 - * - * Obtain the 64bit jiffies - * - * Returns - * The 64 bit jiffies - */ -static __u64 (*bpf_jiffies64)(void) = (void *) 118; - -/* - * bpf_read_branch_records - * - * For an eBPF program attached to a perf event, retrieve the - * branch records (**struct perf_branch_entry**) associated to *ctx* - * and store it in the buffer pointed by *buf* up to size - * *size* bytes. - * - * Returns - * On success, number of bytes written to *buf*. On error, a - * negative value. - * - * The *flags* can be set to **BPF_F_GET_BRANCH_RECORDS_SIZE** to - * instead return the number of bytes required to store all the - * branch entries. If this flag is set, *buf* may be NULL. - * - * **-EINVAL** if arguments invalid or **size** not a multiple - * of **sizeof**\ (**struct perf_branch_entry**\ ). - * - * **-ENOENT** if architecture does not support branch records. - */ -static long (*bpf_read_branch_records)(struct bpf_perf_event_data *ctx, void *buf, __u32 size, __u64 flags) = (void *) 119; - -/* - * bpf_get_ns_current_pid_tgid - * - * Returns 0 on success, values for *pid* and *tgid* as seen from the current - * *namespace* will be returned in *nsdata*. - * - * Returns - * 0 on success, or one of the following in case of failure: - * - * **-EINVAL** if dev and inum supplied don't match dev_t and inode number - * with nsfs of current task, or if dev conversion to dev_t lost high bits. - * - * **-ENOENT** if pidns does not exists for the current task. - */ -static long (*bpf_get_ns_current_pid_tgid)(__u64 dev, __u64 ino, struct bpf_pidns_info *nsdata, __u32 size) = (void *) 120; - -/* - * bpf_xdp_output - * - * Write raw *data* blob into a special BPF perf event held by - * *map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. This perf - * event must have the following attributes: **PERF_SAMPLE_RAW** - * as **sample_type**, **PERF_TYPE_SOFTWARE** as **type**, and - * **PERF_COUNT_SW_BPF_OUTPUT** as **config**. - * - * The *flags* are used to indicate the index in *map* for which - * the value must be put, masked with **BPF_F_INDEX_MASK**. - * Alternatively, *flags* can be set to **BPF_F_CURRENT_CPU** - * to indicate that the index of the current CPU core should be - * used. - * - * The value to write, of *size*, is passed through eBPF stack and - * pointed by *data*. - * - * *ctx* is a pointer to in-kernel struct xdp_buff. - * - * This helper is similar to **bpf_perf_eventoutput**\ () but - * restricted to raw_tracepoint bpf programs. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_xdp_output)(void *ctx, void *map, __u64 flags, void *data, __u64 size) = (void *) 121; - -/* - * bpf_get_netns_cookie - * - * Retrieve the cookie (generated by the kernel) of the network - * namespace the input *ctx* is associated with. The network - * namespace cookie remains stable for its lifetime and provides - * a global identifier that can be assumed unique. If *ctx* is - * NULL, then the helper returns the cookie for the initial - * network namespace. The cookie itself is very similar to that - * of **bpf_get_socket_cookie**\ () helper, but for network - * namespaces instead of sockets. - * - * Returns - * A 8-byte long opaque number. - */ -static __u64 (*bpf_get_netns_cookie)(void *ctx) = (void *) 122; - -/* - * bpf_get_current_ancestor_cgroup_id - * - * Return id of cgroup v2 that is ancestor of the cgroup associated - * with the current task at the *ancestor_level*. The root cgroup - * is at *ancestor_level* zero and each step down the hierarchy - * increments the level. If *ancestor_level* == level of cgroup - * associated with the current task, then return value will be the - * same as that of **bpf_get_current_cgroup_id**\ (). - * - * The helper is useful to implement policies based on cgroups - * that are upper in hierarchy than immediate cgroup associated - * with the current task. - * - * The format of returned id and helper limitations are same as in - * **bpf_get_current_cgroup_id**\ (). - * - * Returns - * The id is returned or 0 in case the id could not be retrieved. - */ -static __u64 (*bpf_get_current_ancestor_cgroup_id)(int ancestor_level) = (void *) 123; - -/* - * bpf_sk_assign - * - * Helper is overloaded depending on BPF program type. This - * description applies to **BPF_PROG_TYPE_SCHED_CLS** and - * **BPF_PROG_TYPE_SCHED_ACT** programs. - * - * Assign the *sk* to the *skb*. When combined with appropriate - * routing configuration to receive the packet towards the socket, - * will cause *skb* to be delivered to the specified socket. - * Subsequent redirection of *skb* via **bpf_redirect**\ (), - * **bpf_clone_redirect**\ () or other methods outside of BPF may - * interfere with successful delivery to the socket. - * - * This operation is only valid from TC ingress path. - * - * The *flags* argument must be zero. - * - * Returns - * 0 on success, or a negative error in case of failure: - * - * **-EINVAL** if specified *flags* are not supported. - * - * **-ENOENT** if the socket is unavailable for assignment. - * - * **-ENETUNREACH** if the socket is unreachable (wrong netns). - * - * **-EOPNOTSUPP** if the operation is not supported, for example - * a call from outside of TC ingress. - * - * **-ESOCKTNOSUPPORT** if the socket type is not supported - * (reuseport). - */ -static long (*bpf_sk_assign)(void *ctx, void *sk, __u64 flags) = (void *) 124; - -/* - * bpf_ktime_get_boot_ns - * - * Return the time elapsed since system boot, in nanoseconds. - * Does include the time the system was suspended. - * See: **clock_gettime**\ (**CLOCK_BOOTTIME**) - * - * Returns - * Current *ktime*. - */ -static __u64 (*bpf_ktime_get_boot_ns)(void) = (void *) 125; - -/* - * bpf_seq_printf - * - * **bpf_seq_printf**\ () uses seq_file **seq_printf**\ () to print - * out the format string. - * The *m* represents the seq_file. The *fmt* and *fmt_size* are for - * the format string itself. The *data* and *data_len* are format string - * arguments. The *data* are a **u64** array and corresponding format string - * values are stored in the array. For strings and pointers where pointees - * are accessed, only the pointer values are stored in the *data* array. - * The *data_len* is the size of *data* in bytes - must be a multiple of 8. - * - * Formats **%s**, **%p{i,I}{4,6}** requires to read kernel memory. - * Reading kernel memory may fail due to either invalid address or - * valid address but requiring a major memory fault. If reading kernel memory - * fails, the string for **%s** will be an empty string, and the ip - * address for **%p{i,I}{4,6}** will be 0. Not returning error to - * bpf program is consistent with what **bpf_trace_printk**\ () does for now. - * - * Returns - * 0 on success, or a negative error in case of failure: - * - * **-EBUSY** if per-CPU memory copy buffer is busy, can try again - * by returning 1 from bpf program. - * - * **-EINVAL** if arguments are invalid, or if *fmt* is invalid/unsupported. - * - * **-E2BIG** if *fmt* contains too many format specifiers. - * - * **-EOVERFLOW** if an overflow happened: The same object will be tried again. - */ -static long (*bpf_seq_printf)(struct seq_file *m, const char *fmt, __u32 fmt_size, const void *data, __u32 data_len) = (void *) 126; - -/* - * bpf_seq_write - * - * **bpf_seq_write**\ () uses seq_file **seq_write**\ () to write the data. - * The *m* represents the seq_file. The *data* and *len* represent the - * data to write in bytes. - * - * Returns - * 0 on success, or a negative error in case of failure: - * - * **-EOVERFLOW** if an overflow happened: The same object will be tried again. - */ -static long (*bpf_seq_write)(struct seq_file *m, const void *data, __u32 len) = (void *) 127; - -/* - * bpf_sk_cgroup_id - * - * Return the cgroup v2 id of the socket *sk*. - * - * *sk* must be a non-**NULL** pointer to a socket, e.g. one - * returned from **bpf_sk_lookup_xxx**\ (), - * **bpf_sk_fullsock**\ (), etc. The format of returned id is - * same as in **bpf_skb_cgroup_id**\ (). - * - * This helper is available only if the kernel was compiled with - * the **CONFIG_SOCK_CGROUP_DATA** configuration option. - * - * Returns - * The id is returned or 0 in case the id could not be retrieved. - */ -static __u64 (*bpf_sk_cgroup_id)(void *sk) = (void *) 128; - -/* - * bpf_sk_ancestor_cgroup_id - * - * Return id of cgroup v2 that is ancestor of cgroup associated - * with the *sk* at the *ancestor_level*. The root cgroup is at - * *ancestor_level* zero and each step down the hierarchy - * increments the level. If *ancestor_level* == level of cgroup - * associated with *sk*, then return value will be same as that - * of **bpf_sk_cgroup_id**\ (). - * - * The helper is useful to implement policies based on cgroups - * that are upper in hierarchy than immediate cgroup associated - * with *sk*. - * - * The format of returned id and helper limitations are same as in - * **bpf_sk_cgroup_id**\ (). - * - * Returns - * The id is returned or 0 in case the id could not be retrieved. - */ -static __u64 (*bpf_sk_ancestor_cgroup_id)(void *sk, int ancestor_level) = (void *) 129; - -/* - * bpf_ringbuf_output - * - * Copy *size* bytes from *data* into a ring buffer *ringbuf*. - * If **BPF_RB_NO_WAKEUP** is specified in *flags*, no notification - * of new data availability is sent. - * If **BPF_RB_FORCE_WAKEUP** is specified in *flags*, notification - * of new data availability is sent unconditionally. - * If **0** is specified in *flags*, an adaptive notification - * of new data availability is sent. - * - * An adaptive notification is a notification sent whenever the user-space - * process has caught up and consumed all available payloads. In case the user-space - * process is still processing a previous payload, then no notification is needed - * as it will process the newly added payload automatically. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_ringbuf_output)(void *ringbuf, void *data, __u64 size, __u64 flags) = (void *) 130; - -/* - * bpf_ringbuf_reserve - * - * Reserve *size* bytes of payload in a ring buffer *ringbuf*. - * *flags* must be 0. - * - * Returns - * Valid pointer with *size* bytes of memory available; NULL, - * otherwise. - */ -static void *(*bpf_ringbuf_reserve)(void *ringbuf, __u64 size, __u64 flags) = (void *) 131; - -/* - * bpf_ringbuf_submit - * - * Submit reserved ring buffer sample, pointed to by *data*. - * If **BPF_RB_NO_WAKEUP** is specified in *flags*, no notification - * of new data availability is sent. - * If **BPF_RB_FORCE_WAKEUP** is specified in *flags*, notification - * of new data availability is sent unconditionally. - * If **0** is specified in *flags*, an adaptive notification - * of new data availability is sent. - * - * See 'bpf_ringbuf_output()' for the definition of adaptive notification. - * - * Returns - * Nothing. Always succeeds. - */ -static void (*bpf_ringbuf_submit)(void *data, __u64 flags) = (void *) 132; - -/* - * bpf_ringbuf_discard - * - * Discard reserved ring buffer sample, pointed to by *data*. - * If **BPF_RB_NO_WAKEUP** is specified in *flags*, no notification - * of new data availability is sent. - * If **BPF_RB_FORCE_WAKEUP** is specified in *flags*, notification - * of new data availability is sent unconditionally. - * If **0** is specified in *flags*, an adaptive notification - * of new data availability is sent. - * - * See 'bpf_ringbuf_output()' for the definition of adaptive notification. - * - * Returns - * Nothing. Always succeeds. - */ -static void (*bpf_ringbuf_discard)(void *data, __u64 flags) = (void *) 133; - -/* - * bpf_ringbuf_query - * - * Query various characteristics of provided ring buffer. What - * exactly is queries is determined by *flags*: - * - * * **BPF_RB_AVAIL_DATA**: Amount of data not yet consumed. - * * **BPF_RB_RING_SIZE**: The size of ring buffer. - * * **BPF_RB_CONS_POS**: Consumer position (can wrap around). - * * **BPF_RB_PROD_POS**: Producer(s) position (can wrap around). - * - * Data returned is just a momentary snapshot of actual values - * and could be inaccurate, so this facility should be used to - * power heuristics and for reporting, not to make 100% correct - * calculation. - * - * Returns - * Requested value, or 0, if *flags* are not recognized. - */ -static __u64 (*bpf_ringbuf_query)(void *ringbuf, __u64 flags) = (void *) 134; - -/* - * bpf_csum_level - * - * Change the skbs checksum level by one layer up or down, or - * reset it entirely to none in order to have the stack perform - * checksum validation. The level is applicable to the following - * protocols: TCP, UDP, GRE, SCTP, FCOE. For example, a decap of - * | ETH | IP | UDP | GUE | IP | TCP | into | ETH | IP | TCP | - * through **bpf_skb_adjust_room**\ () helper with passing in - * **BPF_F_ADJ_ROOM_NO_CSUM_RESET** flag would require one call - * to **bpf_csum_level**\ () with **BPF_CSUM_LEVEL_DEC** since - * the UDP header is removed. Similarly, an encap of the latter - * into the former could be accompanied by a helper call to - * **bpf_csum_level**\ () with **BPF_CSUM_LEVEL_INC** if the - * skb is still intended to be processed in higher layers of the - * stack instead of just egressing at tc. - * - * There are three supported level settings at this time: - * - * * **BPF_CSUM_LEVEL_INC**: Increases skb->csum_level for skbs - * with CHECKSUM_UNNECESSARY. - * * **BPF_CSUM_LEVEL_DEC**: Decreases skb->csum_level for skbs - * with CHECKSUM_UNNECESSARY. - * * **BPF_CSUM_LEVEL_RESET**: Resets skb->csum_level to 0 and - * sets CHECKSUM_NONE to force checksum validation by the stack. - * * **BPF_CSUM_LEVEL_QUERY**: No-op, returns the current - * skb->csum_level. - * - * Returns - * 0 on success, or a negative error in case of failure. In the - * case of **BPF_CSUM_LEVEL_QUERY**, the current skb->csum_level - * is returned or the error code -EACCES in case the skb is not - * subject to CHECKSUM_UNNECESSARY. - */ -static long (*bpf_csum_level)(struct __sk_buff *skb, __u64 level) = (void *) 135; - -/* - * bpf_skc_to_tcp6_sock - * - * Dynamically cast a *sk* pointer to a *tcp6_sock* pointer. - * - * Returns - * *sk* if casting is valid, or **NULL** otherwise. - */ -static struct tcp6_sock *(*bpf_skc_to_tcp6_sock)(void *sk) = (void *) 136; - -/* - * bpf_skc_to_tcp_sock - * - * Dynamically cast a *sk* pointer to a *tcp_sock* pointer. - * - * Returns - * *sk* if casting is valid, or **NULL** otherwise. - */ -static struct tcp_sock *(*bpf_skc_to_tcp_sock)(void *sk) = (void *) 137; - -/* - * bpf_skc_to_tcp_timewait_sock - * - * Dynamically cast a *sk* pointer to a *tcp_timewait_sock* pointer. - * - * Returns - * *sk* if casting is valid, or **NULL** otherwise. - */ -static struct tcp_timewait_sock *(*bpf_skc_to_tcp_timewait_sock)(void *sk) = (void *) 138; - -/* - * bpf_skc_to_tcp_request_sock - * - * Dynamically cast a *sk* pointer to a *tcp_request_sock* pointer. - * - * Returns - * *sk* if casting is valid, or **NULL** otherwise. - */ -static struct tcp_request_sock *(*bpf_skc_to_tcp_request_sock)(void *sk) = (void *) 139; - -/* - * bpf_skc_to_udp6_sock - * - * Dynamically cast a *sk* pointer to a *udp6_sock* pointer. - * - * Returns - * *sk* if casting is valid, or **NULL** otherwise. - */ -static struct udp6_sock *(*bpf_skc_to_udp6_sock)(void *sk) = (void *) 140; - -/* - * bpf_get_task_stack - * - * Return a user or a kernel stack in bpf program provided buffer. - * To achieve this, the helper needs *task*, which is a valid - * pointer to **struct task_struct**. To store the stacktrace, the - * bpf program provides *buf* with a nonnegative *size*. - * - * The last argument, *flags*, holds the number of stack frames to - * skip (from 0 to 255), masked with - * **BPF_F_SKIP_FIELD_MASK**. The next bits can be used to set - * the following flags: - * - * **BPF_F_USER_STACK** - * Collect a user space stack instead of a kernel stack. - * **BPF_F_USER_BUILD_ID** - * Collect buildid+offset instead of ips for user stack, - * only valid if **BPF_F_USER_STACK** is also specified. - * - * **bpf_get_task_stack**\ () can collect up to - * **PERF_MAX_STACK_DEPTH** both kernel and user frames, subject - * to sufficient large buffer size. Note that - * this limit can be controlled with the **sysctl** program, and - * that it should be manually increased in order to profile long - * user stacks (such as stacks for Java programs). To do so, use: - * - * :: - * - * # sysctl kernel.perf_event_max_stack= - * - * Returns - * The non-negative copied *buf* length equal to or less than - * *size* on success, or a negative error in case of failure. - */ -static long (*bpf_get_task_stack)(struct task_struct *task, void *buf, __u32 size, __u64 flags) = (void *) 141; - -/* - * bpf_load_hdr_opt - * - * Load header option. Support reading a particular TCP header - * option for bpf program (**BPF_PROG_TYPE_SOCK_OPS**). - * - * If *flags* is 0, it will search the option from the - * *skops*\ **->skb_data**. The comment in **struct bpf_sock_ops** - * has details on what skb_data contains under different - * *skops*\ **->op**. - * - * The first byte of the *searchby_res* specifies the - * kind that it wants to search. - * - * If the searching kind is an experimental kind - * (i.e. 253 or 254 according to RFC6994). It also - * needs to specify the "magic" which is either - * 2 bytes or 4 bytes. It then also needs to - * specify the size of the magic by using - * the 2nd byte which is "kind-length" of a TCP - * header option and the "kind-length" also - * includes the first 2 bytes "kind" and "kind-length" - * itself as a normal TCP header option also does. - * - * For example, to search experimental kind 254 with - * 2 byte magic 0xeB9F, the searchby_res should be - * [ 254, 4, 0xeB, 0x9F, 0, 0, .... 0 ]. - * - * To search for the standard window scale option (3), - * the *searchby_res* should be [ 3, 0, 0, .... 0 ]. - * Note, kind-length must be 0 for regular option. - * - * Searching for No-Op (0) and End-of-Option-List (1) are - * not supported. - * - * *len* must be at least 2 bytes which is the minimal size - * of a header option. - * - * Supported flags: - * - * * **BPF_LOAD_HDR_OPT_TCP_SYN** to search from the - * saved_syn packet or the just-received syn packet. - * - * - * Returns - * > 0 when found, the header option is copied to *searchby_res*. - * The return value is the total length copied. On failure, a - * negative error code is returned: - * - * **-EINVAL** if a parameter is invalid. - * - * **-ENOMSG** if the option is not found. - * - * **-ENOENT** if no syn packet is available when - * **BPF_LOAD_HDR_OPT_TCP_SYN** is used. - * - * **-ENOSPC** if there is not enough space. Only *len* number of - * bytes are copied. - * - * **-EFAULT** on failure to parse the header options in the - * packet. - * - * **-EPERM** if the helper cannot be used under the current - * *skops*\ **->op**. - */ -static long (*bpf_load_hdr_opt)(struct bpf_sock_ops *skops, void *searchby_res, __u32 len, __u64 flags) = (void *) 142; - -/* - * bpf_store_hdr_opt - * - * Store header option. The data will be copied - * from buffer *from* with length *len* to the TCP header. - * - * The buffer *from* should have the whole option that - * includes the kind, kind-length, and the actual - * option data. The *len* must be at least kind-length - * long. The kind-length does not have to be 4 byte - * aligned. The kernel will take care of the padding - * and setting the 4 bytes aligned value to th->doff. - * - * This helper will check for duplicated option - * by searching the same option in the outgoing skb. - * - * This helper can only be called during - * **BPF_SOCK_OPS_WRITE_HDR_OPT_CB**. - * - * - * Returns - * 0 on success, or negative error in case of failure: - * - * **-EINVAL** If param is invalid. - * - * **-ENOSPC** if there is not enough space in the header. - * Nothing has been written - * - * **-EEXIST** if the option already exists. - * - * **-EFAULT** on failrue to parse the existing header options. - * - * **-EPERM** if the helper cannot be used under the current - * *skops*\ **->op**. - */ -static long (*bpf_store_hdr_opt)(struct bpf_sock_ops *skops, const void *from, __u32 len, __u64 flags) = (void *) 143; - -/* - * bpf_reserve_hdr_opt - * - * Reserve *len* bytes for the bpf header option. The - * space will be used by **bpf_store_hdr_opt**\ () later in - * **BPF_SOCK_OPS_WRITE_HDR_OPT_CB**. - * - * If **bpf_reserve_hdr_opt**\ () is called multiple times, - * the total number of bytes will be reserved. - * - * This helper can only be called during - * **BPF_SOCK_OPS_HDR_OPT_LEN_CB**. - * - * - * Returns - * 0 on success, or negative error in case of failure: - * - * **-EINVAL** if a parameter is invalid. - * - * **-ENOSPC** if there is not enough space in the header. - * - * **-EPERM** if the helper cannot be used under the current - * *skops*\ **->op**. - */ -static long (*bpf_reserve_hdr_opt)(struct bpf_sock_ops *skops, __u32 len, __u64 flags) = (void *) 144; - -/* - * bpf_inode_storage_get - * - * Get a bpf_local_storage from an *inode*. - * - * Logically, it could be thought of as getting the value from - * a *map* with *inode* as the **key**. From this - * perspective, the usage is not much different from - * **bpf_map_lookup_elem**\ (*map*, **&**\ *inode*) except this - * helper enforces the key must be an inode and the map must also - * be a **BPF_MAP_TYPE_INODE_STORAGE**. - * - * Underneath, the value is stored locally at *inode* instead of - * the *map*. The *map* is used as the bpf-local-storage - * "type". The bpf-local-storage "type" (i.e. the *map*) is - * searched against all bpf_local_storage residing at *inode*. - * - * An optional *flags* (**BPF_LOCAL_STORAGE_GET_F_CREATE**) can be - * used such that a new bpf_local_storage will be - * created if one does not exist. *value* can be used - * together with **BPF_LOCAL_STORAGE_GET_F_CREATE** to specify - * the initial value of a bpf_local_storage. If *value* is - * **NULL**, the new bpf_local_storage will be zero initialized. - * - * Returns - * A bpf_local_storage pointer is returned on success. - * - * **NULL** if not found or there was an error in adding - * a new bpf_local_storage. - */ -static void *(*bpf_inode_storage_get)(void *map, void *inode, void *value, __u64 flags) = (void *) 145; - -/* - * bpf_inode_storage_delete - * - * Delete a bpf_local_storage from an *inode*. - * - * Returns - * 0 on success. - * - * **-ENOENT** if the bpf_local_storage cannot be found. - */ -static int (*bpf_inode_storage_delete)(void *map, void *inode) = (void *) 146; - -/* - * bpf_d_path - * - * Return full path for given **struct path** object, which - * needs to be the kernel BTF *path* object. The path is - * returned in the provided buffer *buf* of size *sz* and - * is zero terminated. - * - * - * Returns - * On success, the strictly positive length of the string, - * including the trailing NUL character. On error, a negative - * value. - */ -static long (*bpf_d_path)(struct path *path, char *buf, __u32 sz) = (void *) 147; - -/* - * bpf_copy_from_user - * - * Read *size* bytes from user space address *user_ptr* and store - * the data in *dst*. This is a wrapper of **copy_from_user**\ (). - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_copy_from_user)(void *dst, __u32 size, const void *user_ptr) = (void *) 148; - -/* - * bpf_snprintf_btf - * - * Use BTF to store a string representation of *ptr*->ptr in *str*, - * using *ptr*->type_id. This value should specify the type - * that *ptr*->ptr points to. LLVM __builtin_btf_type_id(type, 1) - * can be used to look up vmlinux BTF type ids. Traversing the - * data structure using BTF, the type information and values are - * stored in the first *str_size* - 1 bytes of *str*. Safe copy of - * the pointer data is carried out to avoid kernel crashes during - * operation. Smaller types can use string space on the stack; - * larger programs can use map data to store the string - * representation. - * - * The string can be subsequently shared with userspace via - * bpf_perf_event_output() or ring buffer interfaces. - * bpf_trace_printk() is to be avoided as it places too small - * a limit on string size to be useful. - * - * *flags* is a combination of - * - * **BTF_F_COMPACT** - * no formatting around type information - * **BTF_F_NONAME** - * no struct/union member names/types - * **BTF_F_PTR_RAW** - * show raw (unobfuscated) pointer values; - * equivalent to printk specifier %px. - * **BTF_F_ZERO** - * show zero-valued struct/union members; they - * are not displayed by default - * - * - * Returns - * The number of bytes that were written (or would have been - * written if output had to be truncated due to string size), - * or a negative error in cases of failure. - */ -static long (*bpf_snprintf_btf)(char *str, __u32 str_size, struct btf_ptr *ptr, __u32 btf_ptr_size, __u64 flags) = (void *) 149; - -/* - * bpf_seq_printf_btf - * - * Use BTF to write to seq_write a string representation of - * *ptr*->ptr, using *ptr*->type_id as per bpf_snprintf_btf(). - * *flags* are identical to those used for bpf_snprintf_btf. - * - * Returns - * 0 on success or a negative error in case of failure. - */ -static long (*bpf_seq_printf_btf)(struct seq_file *m, struct btf_ptr *ptr, __u32 ptr_size, __u64 flags) = (void *) 150; - -/* - * bpf_skb_cgroup_classid - * - * See **bpf_get_cgroup_classid**\ () for the main description. - * This helper differs from **bpf_get_cgroup_classid**\ () in that - * the cgroup v1 net_cls class is retrieved only from the *skb*'s - * associated socket instead of the current process. - * - * Returns - * The id is returned or 0 in case the id could not be retrieved. - */ -static __u64 (*bpf_skb_cgroup_classid)(struct __sk_buff *skb) = (void *) 151; - -/* - * bpf_redirect_neigh - * - * Redirect the packet to another net device of index *ifindex* - * and fill in L2 addresses from neighboring subsystem. This helper - * is somewhat similar to **bpf_redirect**\ (), except that it - * populates L2 addresses as well, meaning, internally, the helper - * relies on the neighbor lookup for the L2 address of the nexthop. - * - * The helper will perform a FIB lookup based on the skb's - * networking header to get the address of the next hop, unless - * this is supplied by the caller in the *params* argument. The - * *plen* argument indicates the len of *params* and should be set - * to 0 if *params* is NULL. - * - * The *flags* argument is reserved and must be 0. The helper is - * currently only supported for tc BPF program types, and enabled - * for IPv4 and IPv6 protocols. - * - * Returns - * The helper returns **TC_ACT_REDIRECT** on success or - * **TC_ACT_SHOT** on error. - */ -static long (*bpf_redirect_neigh)(__u32 ifindex, struct bpf_redir_neigh *params, int plen, __u64 flags) = (void *) 152; - -/* - * bpf_per_cpu_ptr - * - * Take a pointer to a percpu ksym, *percpu_ptr*, and return a - * pointer to the percpu kernel variable on *cpu*. A ksym is an - * extern variable decorated with '__ksym'. For ksym, there is a - * global var (either static or global) defined of the same name - * in the kernel. The ksym is percpu if the global var is percpu. - * The returned pointer points to the global percpu var on *cpu*. - * - * bpf_per_cpu_ptr() has the same semantic as per_cpu_ptr() in the - * kernel, except that bpf_per_cpu_ptr() may return NULL. This - * happens if *cpu* is larger than nr_cpu_ids. The caller of - * bpf_per_cpu_ptr() must check the returned value. - * - * Returns - * A pointer pointing to the kernel percpu variable on *cpu*, or - * NULL, if *cpu* is invalid. - */ -static void *(*bpf_per_cpu_ptr)(const void *percpu_ptr, __u32 cpu) = (void *) 153; - -/* - * bpf_this_cpu_ptr - * - * Take a pointer to a percpu ksym, *percpu_ptr*, and return a - * pointer to the percpu kernel variable on this cpu. See the - * description of 'ksym' in **bpf_per_cpu_ptr**\ (). - * - * bpf_this_cpu_ptr() has the same semantic as this_cpu_ptr() in - * the kernel. Different from **bpf_per_cpu_ptr**\ (), it would - * never return NULL. - * - * Returns - * A pointer pointing to the kernel percpu variable on this cpu. - */ -static void *(*bpf_this_cpu_ptr)(const void *percpu_ptr) = (void *) 154; - -/* - * bpf_redirect_peer - * - * Redirect the packet to another net device of index *ifindex*. - * This helper is somewhat similar to **bpf_redirect**\ (), except - * that the redirection happens to the *ifindex*' peer device and - * the netns switch takes place from ingress to ingress without - * going through the CPU's backlog queue. - * - * The *flags* argument is reserved and must be 0. The helper is - * currently only supported for tc BPF program types at the ingress - * hook and for veth device types. The peer device must reside in a - * different network namespace. - * - * Returns - * The helper returns **TC_ACT_REDIRECT** on success or - * **TC_ACT_SHOT** on error. - */ -static long (*bpf_redirect_peer)(__u32 ifindex, __u64 flags) = (void *) 155; - -/* - * bpf_task_storage_get - * - * Get a bpf_local_storage from the *task*. - * - * Logically, it could be thought of as getting the value from - * a *map* with *task* as the **key**. From this - * perspective, the usage is not much different from - * **bpf_map_lookup_elem**\ (*map*, **&**\ *task*) except this - * helper enforces the key must be an task_struct and the map must also - * be a **BPF_MAP_TYPE_TASK_STORAGE**. - * - * Underneath, the value is stored locally at *task* instead of - * the *map*. The *map* is used as the bpf-local-storage - * "type". The bpf-local-storage "type" (i.e. the *map*) is - * searched against all bpf_local_storage residing at *task*. - * - * An optional *flags* (**BPF_LOCAL_STORAGE_GET_F_CREATE**) can be - * used such that a new bpf_local_storage will be - * created if one does not exist. *value* can be used - * together with **BPF_LOCAL_STORAGE_GET_F_CREATE** to specify - * the initial value of a bpf_local_storage. If *value* is - * **NULL**, the new bpf_local_storage will be zero initialized. - * - * Returns - * A bpf_local_storage pointer is returned on success. - * - * **NULL** if not found or there was an error in adding - * a new bpf_local_storage. - */ -static void *(*bpf_task_storage_get)(void *map, struct task_struct *task, void *value, __u64 flags) = (void *) 156; - -/* - * bpf_task_storage_delete - * - * Delete a bpf_local_storage from a *task*. - * - * Returns - * 0 on success. - * - * **-ENOENT** if the bpf_local_storage cannot be found. - */ -static long (*bpf_task_storage_delete)(void *map, struct task_struct *task) = (void *) 157; - -/* - * bpf_get_current_task_btf - * - * Return a BTF pointer to the "current" task. - * This pointer can also be used in helpers that accept an - * *ARG_PTR_TO_BTF_ID* of type *task_struct*. - * - * Returns - * Pointer to the current task. - */ -static struct task_struct *(*bpf_get_current_task_btf)(void) = (void *) 158; - -/* - * bpf_bprm_opts_set - * - * Set or clear certain options on *bprm*: - * - * **BPF_F_BPRM_SECUREEXEC** Set the secureexec bit - * which sets the **AT_SECURE** auxv for glibc. The bit - * is cleared if the flag is not specified. - * - * Returns - * **-EINVAL** if invalid *flags* are passed, zero otherwise. - */ -static long (*bpf_bprm_opts_set)(struct linux_binprm *bprm, __u64 flags) = (void *) 159; - -/* - * bpf_ktime_get_coarse_ns - * - * Return a coarse-grained version of the time elapsed since - * system boot, in nanoseconds. Does not include time the system - * was suspended. - * - * See: **clock_gettime**\ (**CLOCK_MONOTONIC_COARSE**) - * - * Returns - * Current *ktime*. - */ -static __u64 (*bpf_ktime_get_coarse_ns)(void) = (void *) 160; - -/* - * bpf_ima_inode_hash - * - * Returns the stored IMA hash of the *inode* (if it's avaialable). - * If the hash is larger than *size*, then only *size* - * bytes will be copied to *dst* - * - * Returns - * The **hash_algo** is returned on success, - * **-EOPNOTSUP** if IMA is disabled or **-EINVAL** if - * invalid arguments are passed. - */ -static long (*bpf_ima_inode_hash)(struct inode *inode, void *dst, __u32 size) = (void *) 161; - -/* - * bpf_sock_from_file - * - * If the given file represents a socket, returns the associated - * socket. - * - * Returns - * A pointer to a struct socket on success or NULL if the file is - * not a socket. - */ -static struct socket *(*bpf_sock_from_file)(struct file *file) = (void *) 162; - -/* - * bpf_check_mtu - * - * Check packet size against exceeding MTU of net device (based - * on *ifindex*). This helper will likely be used in combination - * with helpers that adjust/change the packet size. - * - * The argument *len_diff* can be used for querying with a planned - * size change. This allows to check MTU prior to changing packet - * ctx. Providing an *len_diff* adjustment that is larger than the - * actual packet size (resulting in negative packet size) will in - * principle not exceed the MTU, why it is not considered a - * failure. Other BPF-helpers are needed for performing the - * planned size change, why the responsability for catch a negative - * packet size belong in those helpers. - * - * Specifying *ifindex* zero means the MTU check is performed - * against the current net device. This is practical if this isn't - * used prior to redirect. - * - * On input *mtu_len* must be a valid pointer, else verifier will - * reject BPF program. If the value *mtu_len* is initialized to - * zero then the ctx packet size is use. When value *mtu_len* is - * provided as input this specify the L3 length that the MTU check - * is done against. Remember XDP and TC length operate at L2, but - * this value is L3 as this correlate to MTU and IP-header tot_len - * values which are L3 (similar behavior as bpf_fib_lookup). - * - * The Linux kernel route table can configure MTUs on a more - * specific per route level, which is not provided by this helper. - * For route level MTU checks use the **bpf_fib_lookup**\ () - * helper. - * - * *ctx* is either **struct xdp_md** for XDP programs or - * **struct sk_buff** for tc cls_act programs. - * - * The *flags* argument can be a combination of one or more of the - * following values: - * - * **BPF_MTU_CHK_SEGS** - * This flag will only works for *ctx* **struct sk_buff**. - * If packet context contains extra packet segment buffers - * (often knows as GSO skb), then MTU check is harder to - * check at this point, because in transmit path it is - * possible for the skb packet to get re-segmented - * (depending on net device features). This could still be - * a MTU violation, so this flag enables performing MTU - * check against segments, with a different violation - * return code to tell it apart. Check cannot use len_diff. - * - * On return *mtu_len* pointer contains the MTU value of the net - * device. Remember the net device configured MTU is the L3 size, - * which is returned here and XDP and TC length operate at L2. - * Helper take this into account for you, but remember when using - * MTU value in your BPF-code. - * - * - * Returns - * * 0 on success, and populate MTU value in *mtu_len* pointer. - * - * * < 0 if any input argument is invalid (*mtu_len* not updated) - * - * MTU violations return positive values, but also populate MTU - * value in *mtu_len* pointer, as this can be needed for - * implementing PMTU handing: - * - * * **BPF_MTU_CHK_RET_FRAG_NEEDED** - * * **BPF_MTU_CHK_RET_SEGS_TOOBIG** - */ -static long (*bpf_check_mtu)(void *ctx, __u32 ifindex, __u32 *mtu_len, __s32 len_diff, __u64 flags) = (void *) 163; - -/* - * bpf_for_each_map_elem - * - * For each element in **map**, call **callback_fn** function with - * **map**, **callback_ctx** and other map-specific parameters. - * The **callback_fn** should be a static function and - * the **callback_ctx** should be a pointer to the stack. - * The **flags** is used to control certain aspects of the helper. - * Currently, the **flags** must be 0. - * - * The following are a list of supported map types and their - * respective expected callback signatures: - * - * BPF_MAP_TYPE_HASH, BPF_MAP_TYPE_PERCPU_HASH, - * BPF_MAP_TYPE_LRU_HASH, BPF_MAP_TYPE_LRU_PERCPU_HASH, - * BPF_MAP_TYPE_ARRAY, BPF_MAP_TYPE_PERCPU_ARRAY - * - * long (\*callback_fn)(struct bpf_map \*map, const void \*key, void \*value, void \*ctx); - * - * For per_cpu maps, the map_value is the value on the cpu where the - * bpf_prog is running. - * - * If **callback_fn** return 0, the helper will continue to the next - * element. If return value is 1, the helper will skip the rest of - * elements and return. Other return values are not used now. - * - * - * Returns - * The number of traversed map elements for success, **-EINVAL** for - * invalid **flags**. - */ -static long (*bpf_for_each_map_elem)(void *map, void *callback_fn, void *callback_ctx, __u64 flags) = (void *) 164; - -/* - * bpf_snprintf - * - * Outputs a string into the **str** buffer of size **str_size** - * based on a format string stored in a read-only map pointed by - * **fmt**. - * - * Each format specifier in **fmt** corresponds to one u64 element - * in the **data** array. For strings and pointers where pointees - * are accessed, only the pointer values are stored in the *data* - * array. The *data_len* is the size of *data* in bytes - must be - * a multiple of 8. - * - * Formats **%s** and **%p{i,I}{4,6}** require to read kernel - * memory. Reading kernel memory may fail due to either invalid - * address or valid address but requiring a major memory fault. If - * reading kernel memory fails, the string for **%s** will be an - * empty string, and the ip address for **%p{i,I}{4,6}** will be 0. - * Not returning error to bpf program is consistent with what - * **bpf_trace_printk**\ () does for now. - * - * - * Returns - * The strictly positive length of the formatted string, including - * the trailing zero character. If the return value is greater than - * **str_size**, **str** contains a truncated string, guaranteed to - * be zero-terminated except when **str_size** is 0. - * - * Or **-EBUSY** if the per-CPU memory copy buffer is busy. - */ -static long (*bpf_snprintf)(char *str, __u32 str_size, const char *fmt, __u64 *data, __u32 data_len) = (void *) 165; - -/* - * bpf_sys_bpf - * - * Execute bpf syscall with given arguments. - * - * Returns - * A syscall result. - */ -static long (*bpf_sys_bpf)(__u32 cmd, void *attr, __u32 attr_size) = (void *) 166; - -/* - * bpf_btf_find_by_name_kind - * - * Find BTF type with given name and kind in vmlinux BTF or in module's BTFs. - * - * Returns - * Returns btf_id and btf_obj_fd in lower and upper 32 bits. - */ -static long (*bpf_btf_find_by_name_kind)(char *name, int name_sz, __u32 kind, int flags) = (void *) 167; - -/* - * bpf_sys_close - * - * Execute close syscall for given FD. - * - * Returns - * A syscall result. - */ -static long (*bpf_sys_close)(__u32 fd) = (void *) 168; - -/* - * bpf_timer_init - * - * Initialize the timer. - * First 4 bits of *flags* specify clockid. - * Only CLOCK_MONOTONIC, CLOCK_REALTIME, CLOCK_BOOTTIME are allowed. - * All other bits of *flags* are reserved. - * The verifier will reject the program if *timer* is not from - * the same *map*. - * - * Returns - * 0 on success. - * **-EBUSY** if *timer* is already initialized. - * **-EINVAL** if invalid *flags* are passed. - * **-EPERM** if *timer* is in a map that doesn't have any user references. - * The user space should either hold a file descriptor to a map with timers - * or pin such map in bpffs. When map is unpinned or file descriptor is - * closed all timers in the map will be cancelled and freed. - */ -static long (*bpf_timer_init)(struct bpf_timer *timer, void *map, __u64 flags) = (void *) 169; - -/* - * bpf_timer_set_callback - * - * Configure the timer to call *callback_fn* static function. - * - * Returns - * 0 on success. - * **-EINVAL** if *timer* was not initialized with bpf_timer_init() earlier. - * **-EPERM** if *timer* is in a map that doesn't have any user references. - * The user space should either hold a file descriptor to a map with timers - * or pin such map in bpffs. When map is unpinned or file descriptor is - * closed all timers in the map will be cancelled and freed. - */ -static long (*bpf_timer_set_callback)(struct bpf_timer *timer, void *callback_fn) = (void *) 170; - -/* - * bpf_timer_start - * - * Set timer expiration N nanoseconds from the current time. The - * configured callback will be invoked in soft irq context on some cpu - * and will not repeat unless another bpf_timer_start() is made. - * In such case the next invocation can migrate to a different cpu. - * Since struct bpf_timer is a field inside map element the map - * owns the timer. The bpf_timer_set_callback() will increment refcnt - * of BPF program to make sure that callback_fn code stays valid. - * When user space reference to a map reaches zero all timers - * in a map are cancelled and corresponding program's refcnts are - * decremented. This is done to make sure that Ctrl-C of a user - * process doesn't leave any timers running. If map is pinned in - * bpffs the callback_fn can re-arm itself indefinitely. - * bpf_map_update/delete_elem() helpers and user space sys_bpf commands - * cancel and free the timer in the given map element. - * The map can contain timers that invoke callback_fn-s from different - * programs. The same callback_fn can serve different timers from - * different maps if key/value layout matches across maps. - * Every bpf_timer_set_callback() can have different callback_fn. - * - * - * Returns - * 0 on success. - * **-EINVAL** if *timer* was not initialized with bpf_timer_init() earlier - * or invalid *flags* are passed. - */ -static long (*bpf_timer_start)(struct bpf_timer *timer, __u64 nsecs, __u64 flags) = (void *) 171; - -/* - * bpf_timer_cancel - * - * Cancel the timer and wait for callback_fn to finish if it was running. - * - * Returns - * 0 if the timer was not active. - * 1 if the timer was active. - * **-EINVAL** if *timer* was not initialized with bpf_timer_init() earlier. - * **-EDEADLK** if callback_fn tried to call bpf_timer_cancel() on its - * own timer which would have led to a deadlock otherwise. - */ -static long (*bpf_timer_cancel)(struct bpf_timer *timer) = (void *) 172; - -/* - * bpf_get_func_ip - * - * Get address of the traced function (for tracing and kprobe programs). - * - * Returns - * Address of the traced function. - */ -static __u64 (*bpf_get_func_ip)(void *ctx) = (void *) 173; - -/* - * bpf_get_attach_cookie - * - * Get bpf_cookie value provided (optionally) during the program - * attachment. It might be different for each individual - * attachment, even if BPF program itself is the same. - * Expects BPF program context *ctx* as a first argument. - * - * Supported for the following program types: - * - kprobe/uprobe; - * - tracepoint; - * - perf_event. - * - * Returns - * Value specified by user at BPF link creation/attachment time - * or 0, if it was not specified. - */ -static __u64 (*bpf_get_attach_cookie)(void *ctx) = (void *) 174; - -/* - * bpf_task_pt_regs - * - * Get the struct pt_regs associated with **task**. - * - * Returns - * A pointer to struct pt_regs. - */ -static long (*bpf_task_pt_regs)(struct task_struct *task) = (void *) 175; - -/* - * bpf_get_branch_snapshot - * - * Get branch trace from hardware engines like Intel LBR. The - * hardware engine is stopped shortly after the helper is - * called. Therefore, the user need to filter branch entries - * based on the actual use case. To capture branch trace - * before the trigger point of the BPF program, the helper - * should be called at the beginning of the BPF program. - * - * The data is stored as struct perf_branch_entry into output - * buffer *entries*. *size* is the size of *entries* in bytes. - * *flags* is reserved for now and must be zero. - * - * - * Returns - * On success, number of bytes written to *buf*. On error, a - * negative value. - * - * **-EINVAL** if *flags* is not zero. - * - * **-ENOENT** if architecture does not support branch records. - */ -static long (*bpf_get_branch_snapshot)(void *entries, __u32 size, __u64 flags) = (void *) 176; - -/* - * bpf_trace_vprintk - * - * Behaves like **bpf_trace_printk**\ () helper, but takes an array of u64 - * to format and can handle more format args as a result. - * - * Arguments are to be used as in **bpf_seq_printf**\ () helper. - * - * Returns - * The number of bytes written to the buffer, or a negative error - * in case of failure. - */ -static long (*bpf_trace_vprintk)(const char *fmt, __u32 fmt_size, const void *data, __u32 data_len) = (void *) 177; - -/* - * bpf_skc_to_unix_sock - * - * Dynamically cast a *sk* pointer to a *unix_sock* pointer. - * - * Returns - * *sk* if casting is valid, or **NULL** otherwise. - */ -static struct unix_sock *(*bpf_skc_to_unix_sock)(void *sk) = (void *) 178; - -/* - * bpf_kallsyms_lookup_name - * - * Get the address of a kernel symbol, returned in *res*. *res* is - * set to 0 if the symbol is not found. - * - * Returns - * On success, zero. On error, a negative value. - * - * **-EINVAL** if *flags* is not zero. - * - * **-EINVAL** if string *name* is not the same size as *name_sz*. - * - * **-ENOENT** if symbol is not found. - * - * **-EPERM** if caller does not have permission to obtain kernel address. - */ -static long (*bpf_kallsyms_lookup_name)(const char *name, int name_sz, int flags, __u64 *res) = (void *) 179; - -/* - * bpf_find_vma - * - * Find vma of *task* that contains *addr*, call *callback_fn* - * function with *task*, *vma*, and *callback_ctx*. - * The *callback_fn* should be a static function and - * the *callback_ctx* should be a pointer to the stack. - * The *flags* is used to control certain aspects of the helper. - * Currently, the *flags* must be 0. - * - * The expected callback signature is - * - * long (\*callback_fn)(struct task_struct \*task, struct vm_area_struct \*vma, void \*callback_ctx); - * - * - * Returns - * 0 on success. - * **-ENOENT** if *task->mm* is NULL, or no vma contains *addr*. - * **-EBUSY** if failed to try lock mmap_lock. - * **-EINVAL** for invalid **flags**. - */ -static long (*bpf_find_vma)(struct task_struct *task, __u64 addr, void *callback_fn, void *callback_ctx, __u64 flags) = (void *) 180; - -/* - * bpf_loop - * - * For **nr_loops**, call **callback_fn** function - * with **callback_ctx** as the context parameter. - * The **callback_fn** should be a static function and - * the **callback_ctx** should be a pointer to the stack. - * The **flags** is used to control certain aspects of the helper. - * Currently, the **flags** must be 0. Currently, nr_loops is - * limited to 1 << 23 (~8 million) loops. - * - * long (\*callback_fn)(u32 index, void \*ctx); - * - * where **index** is the current index in the loop. The index - * is zero-indexed. - * - * If **callback_fn** returns 0, the helper will continue to the next - * loop. If return value is 1, the helper will skip the rest of - * the loops and return. Other return values are not used now, - * and will be rejected by the verifier. - * - * - * Returns - * The number of loops performed, **-EINVAL** for invalid **flags**, - * **-E2BIG** if **nr_loops** exceeds the maximum number of loops. - */ -static long (*bpf_loop)(__u32 nr_loops, void *callback_fn, void *callback_ctx, __u64 flags) = (void *) 181; - -/* - * bpf_strncmp - * - * Do strncmp() between **s1** and **s2**. **s1** doesn't need - * to be null-terminated and **s1_sz** is the maximum storage - * size of **s1**. **s2** must be a read-only string. - * - * Returns - * An integer less than, equal to, or greater than zero - * if the first **s1_sz** bytes of **s1** is found to be - * less than, to match, or be greater than **s2**. - */ -static long (*bpf_strncmp)(const char *s1, __u32 s1_sz, const char *s2) = (void *) 182; - -/* - * bpf_get_func_arg - * - * Get **n**-th argument (zero based) of the traced function (for tracing programs) - * returned in **value**. - * - * - * Returns - * 0 on success. - * **-EINVAL** if n >= arguments count of traced function. - */ -static long (*bpf_get_func_arg)(void *ctx, __u32 n, __u64 *value) = (void *) 183; - -/* - * bpf_get_func_ret - * - * Get return value of the traced function (for tracing programs) - * in **value**. - * - * - * Returns - * 0 on success. - * **-EOPNOTSUPP** for tracing programs other than BPF_TRACE_FEXIT or BPF_MODIFY_RETURN. - */ -static long (*bpf_get_func_ret)(void *ctx, __u64 *value) = (void *) 184; - -/* - * bpf_get_func_arg_cnt - * - * Get number of arguments of the traced function (for tracing programs). - * - * - * Returns - * The number of arguments of the traced function. - */ -static long (*bpf_get_func_arg_cnt)(void *ctx) = (void *) 185; - -/* - * bpf_get_retval - * - * Get the syscall's return value that will be returned to userspace. - * - * This helper is currently supported by cgroup programs only. - * - * Returns - * The syscall's return value. - */ -static int (*bpf_get_retval)(void) = (void *) 186; - -/* - * bpf_set_retval - * - * Set the syscall's return value that will be returned to userspace. - * - * This helper is currently supported by cgroup programs only. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static int (*bpf_set_retval)(int retval) = (void *) 187; - -/* - * bpf_xdp_get_buff_len - * - * Get the total size of a given xdp buff (linear and paged area) - * - * Returns - * The total size of a given xdp buffer. - */ -static __u64 (*bpf_xdp_get_buff_len)(struct xdp_md *xdp_md) = (void *) 188; - -/* - * bpf_xdp_load_bytes - * - * This helper is provided as an easy way to load data from a - * xdp buffer. It can be used to load *len* bytes from *offset* from - * the frame associated to *xdp_md*, into the buffer pointed by - * *buf*. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_xdp_load_bytes)(struct xdp_md *xdp_md, __u32 offset, void *buf, __u32 len) = (void *) 189; - -/* - * bpf_xdp_store_bytes - * - * Store *len* bytes from buffer *buf* into the frame - * associated to *xdp_md*, at *offset*. - * - * Returns - * 0 on success, or a negative error in case of failure. - */ -static long (*bpf_xdp_store_bytes)(struct xdp_md *xdp_md, __u32 offset, void *buf, __u32 len) = (void *) 190; - -/* - * bpf_copy_from_user_task - * - * Read *size* bytes from user space address *user_ptr* in *tsk*'s - * address space, and stores the data in *dst*. *flags* is not - * used yet and is provided for future extensibility. This helper - * can only be used by sleepable programs. - * - * Returns - * 0 on success, or a negative error in case of failure. On error - * *dst* buffer is zeroed out. - */ -static long (*bpf_copy_from_user_task)(void *dst, __u32 size, const void *user_ptr, struct task_struct *tsk, __u64 flags) = (void *) 191; - -/* - * bpf_skb_set_tstamp - * - * Change the __sk_buff->tstamp_type to *tstamp_type* - * and set *tstamp* to the __sk_buff->tstamp together. - * - * If there is no need to change the __sk_buff->tstamp_type, - * the tstamp value can be directly written to __sk_buff->tstamp - * instead. - * - * BPF_SKB_TSTAMP_DELIVERY_MONO is the only tstamp that - * will be kept during bpf_redirect_*(). A non zero - * *tstamp* must be used with the BPF_SKB_TSTAMP_DELIVERY_MONO - * *tstamp_type*. - * - * A BPF_SKB_TSTAMP_UNSPEC *tstamp_type* can only be used - * with a zero *tstamp*. - * - * Only IPv4 and IPv6 skb->protocol are supported. - * - * This function is most useful when it needs to set a - * mono delivery time to __sk_buff->tstamp and then - * bpf_redirect_*() to the egress of an iface. For example, - * changing the (rcv) timestamp in __sk_buff->tstamp at - * ingress to a mono delivery time and then bpf_redirect_*() - * to sch_fq@phy-dev. - * - * Returns - * 0 on success. - * **-EINVAL** for invalid input - * **-EOPNOTSUPP** for unsupported protocol - */ -static long (*bpf_skb_set_tstamp)(struct __sk_buff *skb, __u64 tstamp, __u32 tstamp_type) = (void *) 192; - -/* - * bpf_ima_file_hash - * - * Returns a calculated IMA hash of the *file*. - * If the hash is larger than *size*, then only *size* - * bytes will be copied to *dst* - * - * Returns - * The **hash_algo** is returned on success, - * **-EOPNOTSUP** if the hash calculation failed or **-EINVAL** if - * invalid arguments are passed. - */ -static long (*bpf_ima_file_hash)(struct file *file, void *dst, __u32 size) = (void *) 193; - -/* - * bpf_kptr_xchg - * - * Exchange kptr at pointer *map_value* with *ptr*, and return the - * old value. *ptr* can be NULL, otherwise it must be a referenced - * pointer which will be released when this helper is called. - * - * Returns - * The old value of kptr (which can be NULL). The returned pointer - * if not NULL, is a reference which must be released using its - * corresponding release function, or moved into a BPF map before - * program exit. - */ -static void *(*bpf_kptr_xchg)(void *map_value, void *ptr) = (void *) 194; - -/* - * bpf_map_lookup_percpu_elem - * - * Perform a lookup in *percpu map* for an entry associated to - * *key* on *cpu*. - * - * Returns - * Map value associated to *key* on *cpu*, or **NULL** if no entry - * was found or *cpu* is invalid. - */ -static void *(*bpf_map_lookup_percpu_elem)(void *map, const void *key, __u32 cpu) = (void *) 195; - - diff --git a/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/bpf_helpers.h b/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/bpf_helpers.h deleted file mode 100644 index fb04eaf3..00000000 --- a/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/bpf_helpers.h +++ /dev/null @@ -1,288 +0,0 @@ -/* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */ -#ifndef __BPF_HELPERS__ -#define __BPF_HELPERS__ - -/* - * Note that bpf programs need to include either - * vmlinux.h (auto-generated from BTF) or linux/types.h - * in advance since bpf_helper_defs.h uses such types - * as __u64. - */ -#include "bpf_helper_defs.h" - -#define __uint(name, val) int (*name)[val] -#define __type(name, val) typeof(val) *name -#define __array(name, val) typeof(val) *name[] - -/* - * Helper macro to place programs, maps, license in - * different sections in elf_bpf file. Section names - * are interpreted by libbpf depending on the context (BPF programs, BPF maps, - * extern variables, etc). - * To allow use of SEC() with externs (e.g., for extern .maps declarations), - * make sure __attribute__((unused)) doesn't trigger compilation warning. - */ -#define SEC(name) \ - _Pragma("GCC diagnostic push") \ - _Pragma("GCC diagnostic ignored \"-Wignored-attributes\"") \ - __attribute__((section(name), used)) \ - _Pragma("GCC diagnostic pop") \ - -/* Avoid 'linux/stddef.h' definition of '__always_inline'. */ -#undef __always_inline -#define __always_inline inline __attribute__((always_inline)) - -#ifndef __noinline -#define __noinline __attribute__((noinline)) -#endif -#ifndef __weak -#define __weak __attribute__((weak)) -#endif - -/* - * Use __hidden attribute to mark a non-static BPF subprogram effectively - * static for BPF verifier's verification algorithm purposes, allowing more - * extensive and permissive BPF verification process, taking into account - * subprogram's caller context. - */ -#define __hidden __attribute__((visibility("hidden"))) - -/* When utilizing vmlinux.h with BPF CO-RE, user BPF programs can't include - * any system-level headers (such as stddef.h, linux/version.h, etc), and - * commonly-used macros like NULL and KERNEL_VERSION aren't available through - * vmlinux.h. This just adds unnecessary hurdles and forces users to re-define - * them on their own. So as a convenience, provide such definitions here. - */ -#ifndef NULL -#define NULL ((void *)0) -#endif - -#ifndef KERNEL_VERSION -#define KERNEL_VERSION(a, b, c) (((a) << 16) + ((b) << 8) + ((c) > 255 ? 255 : (c))) -#endif - -/* - * Helper macros to manipulate data structures - */ -#ifndef offsetof -#define offsetof(TYPE, MEMBER) ((unsigned long)&((TYPE *)0)->MEMBER) -#endif -#ifndef container_of -#define container_of(ptr, type, member) \ - ({ \ - void *__mptr = (void *)(ptr); \ - ((type *)(__mptr - offsetof(type, member))); \ - }) -#endif - -/* - * Compiler (optimization) barrier. - */ -#ifndef barrier -#define barrier() asm volatile("" ::: "memory") -#endif - -/* Variable-specific compiler (optimization) barrier. It's a no-op which makes - * compiler believe that there is some black box modification of a given - * variable and thus prevents compiler from making extra assumption about its - * value and potential simplifications and optimizations on this variable. - * - * E.g., compiler might often delay or even omit 32-bit to 64-bit casting of - * a variable, making some code patterns unverifiable. Putting barrier_var() - * in place will ensure that cast is performed before the barrier_var() - * invocation, because compiler has to pessimistically assume that embedded - * asm section might perform some extra operations on that variable. - * - * This is a variable-specific variant of more global barrier(). - */ -#ifndef barrier_var -#define barrier_var(var) asm volatile("" : "=r"(var) : "0"(var)) -#endif - -/* - * Helper macro to throw a compilation error if __bpf_unreachable() gets - * built into the resulting code. This works given BPF back end does not - * implement __builtin_trap(). This is useful to assert that certain paths - * of the program code are never used and hence eliminated by the compiler. - * - * For example, consider a switch statement that covers known cases used by - * the program. __bpf_unreachable() can then reside in the default case. If - * the program gets extended such that a case is not covered in the switch - * statement, then it will throw a build error due to the default case not - * being compiled out. - */ -#ifndef __bpf_unreachable -# define __bpf_unreachable() __builtin_trap() -#endif - -/* - * Helper function to perform a tail call with a constant/immediate map slot. - */ -#if __clang_major__ >= 8 && defined(__bpf__) -static __always_inline void -bpf_tail_call_static(void *ctx, const void *map, const __u32 slot) -{ - if (!__builtin_constant_p(slot)) - __bpf_unreachable(); - - /* - * Provide a hard guarantee that LLVM won't optimize setting r2 (map - * pointer) and r3 (constant map index) from _different paths_ ending - * up at the _same_ call insn as otherwise we won't be able to use the - * jmpq/nopl retpoline-free patching by the x86-64 JIT in the kernel - * given they mismatch. See also d2e4c1e6c294 ("bpf: Constant map key - * tracking for prog array pokes") for details on verifier tracking. - * - * Note on clobber list: we need to stay in-line with BPF calling - * convention, so even if we don't end up using r0, r4, r5, we need - * to mark them as clobber so that LLVM doesn't end up using them - * before / after the call. - */ - asm volatile("r1 = %[ctx]\n\t" - "r2 = %[map]\n\t" - "r3 = %[slot]\n\t" - "call 12" - :: [ctx]"r"(ctx), [map]"r"(map), [slot]"i"(slot) - : "r0", "r1", "r2", "r3", "r4", "r5"); -} -#endif - -/* - * Helper structure used by eBPF C program - * to describe BPF map attributes to libbpf loader - */ -struct bpf_map_def { - unsigned int type; - unsigned int key_size; - unsigned int value_size; - unsigned int max_entries; - unsigned int map_flags; -} __attribute__((deprecated("use BTF-defined maps in .maps section"))); - -enum libbpf_pin_type { - LIBBPF_PIN_NONE, - /* PIN_BY_NAME: pin maps by name (in /sys/fs/bpf by default) */ - LIBBPF_PIN_BY_NAME, -}; - -enum libbpf_tristate { - TRI_NO = 0, - TRI_YES = 1, - TRI_MODULE = 2, -}; - -#define __kconfig __attribute__((section(".kconfig"))) -#define __ksym __attribute__((section(".ksyms"))) -#define __kptr __attribute__((btf_type_tag("kptr"))) -#define __kptr_ref __attribute__((btf_type_tag("kptr_ref"))) - -#ifndef ___bpf_concat -#define ___bpf_concat(a, b) a ## b -#endif -#ifndef ___bpf_apply -#define ___bpf_apply(fn, n) ___bpf_concat(fn, n) -#endif -#ifndef ___bpf_nth -#define ___bpf_nth(_, _1, _2, _3, _4, _5, _6, _7, _8, _9, _a, _b, _c, N, ...) N -#endif -#ifndef ___bpf_narg -#define ___bpf_narg(...) \ - ___bpf_nth(_, ##__VA_ARGS__, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0) -#endif - -#define ___bpf_fill0(arr, p, x) do {} while (0) -#define ___bpf_fill1(arr, p, x) arr[p] = x -#define ___bpf_fill2(arr, p, x, args...) arr[p] = x; ___bpf_fill1(arr, p + 1, args) -#define ___bpf_fill3(arr, p, x, args...) arr[p] = x; ___bpf_fill2(arr, p + 1, args) -#define ___bpf_fill4(arr, p, x, args...) arr[p] = x; ___bpf_fill3(arr, p + 1, args) -#define ___bpf_fill5(arr, p, x, args...) arr[p] = x; ___bpf_fill4(arr, p + 1, args) -#define ___bpf_fill6(arr, p, x, args...) arr[p] = x; ___bpf_fill5(arr, p + 1, args) -#define ___bpf_fill7(arr, p, x, args...) arr[p] = x; ___bpf_fill6(arr, p + 1, args) -#define ___bpf_fill8(arr, p, x, args...) arr[p] = x; ___bpf_fill7(arr, p + 1, args) -#define ___bpf_fill9(arr, p, x, args...) arr[p] = x; ___bpf_fill8(arr, p + 1, args) -#define ___bpf_fill10(arr, p, x, args...) arr[p] = x; ___bpf_fill9(arr, p + 1, args) -#define ___bpf_fill11(arr, p, x, args...) arr[p] = x; ___bpf_fill10(arr, p + 1, args) -#define ___bpf_fill12(arr, p, x, args...) arr[p] = x; ___bpf_fill11(arr, p + 1, args) -#define ___bpf_fill(arr, args...) \ - ___bpf_apply(___bpf_fill, ___bpf_narg(args))(arr, 0, args) - -/* - * BPF_SEQ_PRINTF to wrap bpf_seq_printf to-be-printed values - * in a structure. - */ -#define BPF_SEQ_PRINTF(seq, fmt, args...) \ -({ \ - static const char ___fmt[] = fmt; \ - unsigned long long ___param[___bpf_narg(args)]; \ - \ - _Pragma("GCC diagnostic push") \ - _Pragma("GCC diagnostic ignored \"-Wint-conversion\"") \ - ___bpf_fill(___param, args); \ - _Pragma("GCC diagnostic pop") \ - \ - bpf_seq_printf(seq, ___fmt, sizeof(___fmt), \ - ___param, sizeof(___param)); \ -}) - -/* - * BPF_SNPRINTF wraps the bpf_snprintf helper with variadic arguments instead of - * an array of u64. - */ -#define BPF_SNPRINTF(out, out_size, fmt, args...) \ -({ \ - static const char ___fmt[] = fmt; \ - unsigned long long ___param[___bpf_narg(args)]; \ - \ - _Pragma("GCC diagnostic push") \ - _Pragma("GCC diagnostic ignored \"-Wint-conversion\"") \ - ___bpf_fill(___param, args); \ - _Pragma("GCC diagnostic pop") \ - \ - bpf_snprintf(out, out_size, ___fmt, \ - ___param, sizeof(___param)); \ -}) - -#ifdef BPF_NO_GLOBAL_DATA -#define BPF_PRINTK_FMT_MOD -#else -#define BPF_PRINTK_FMT_MOD static const -#endif - -#define __bpf_printk(fmt, ...) \ -({ \ - BPF_PRINTK_FMT_MOD char ____fmt[] = fmt; \ - bpf_trace_printk(____fmt, sizeof(____fmt), \ - ##__VA_ARGS__); \ -}) - -/* - * __bpf_vprintk wraps the bpf_trace_vprintk helper with variadic arguments - * instead of an array of u64. - */ -#define __bpf_vprintk(fmt, args...) \ -({ \ - static const char ___fmt[] = fmt; \ - unsigned long long ___param[___bpf_narg(args)]; \ - \ - _Pragma("GCC diagnostic push") \ - _Pragma("GCC diagnostic ignored \"-Wint-conversion\"") \ - ___bpf_fill(___param, args); \ - _Pragma("GCC diagnostic pop") \ - \ - bpf_trace_vprintk(___fmt, sizeof(___fmt), \ - ___param, sizeof(___param)); \ -}) - -/* Use __bpf_printk when bpf_printk call has 3 or fewer fmt args - * Otherwise use __bpf_vprintk - */ -#define ___bpf_pick_printk(...) \ - ___bpf_nth(_, ##__VA_ARGS__, __bpf_vprintk, __bpf_vprintk, __bpf_vprintk, \ - __bpf_vprintk, __bpf_vprintk, __bpf_vprintk, __bpf_vprintk, \ - __bpf_vprintk, __bpf_vprintk, __bpf_printk /*3*/, __bpf_printk /*2*/,\ - __bpf_printk /*1*/, __bpf_printk /*0*/) - -/* Helper macro to print out debug messages */ -#define bpf_printk(fmt, args...) ___bpf_pick_printk(args)(fmt, ##args) - -#endif diff --git a/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/bpf_tracing.h b/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/bpf_tracing.h deleted file mode 100644 index 01ce121c..00000000 --- a/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/bpf_tracing.h +++ /dev/null @@ -1,531 +0,0 @@ -/* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */ -#ifndef __BPF_TRACING_H__ -#define __BPF_TRACING_H__ - -/* Scan the ARCH passed in from ARCH env variable (see Makefile) */ -#if defined(__TARGET_ARCH_x86) - #define bpf_target_x86 - #define bpf_target_defined -#elif defined(__TARGET_ARCH_s390) - #define bpf_target_s390 - #define bpf_target_defined -#elif defined(__TARGET_ARCH_arm) - #define bpf_target_arm - #define bpf_target_defined -#elif defined(__TARGET_ARCH_arm64) - #define bpf_target_arm64 - #define bpf_target_defined -#elif defined(__TARGET_ARCH_mips) - #define bpf_target_mips - #define bpf_target_defined -#elif defined(__TARGET_ARCH_powerpc) - #define bpf_target_powerpc - #define bpf_target_defined -#elif defined(__TARGET_ARCH_sparc) - #define bpf_target_sparc - #define bpf_target_defined -#elif defined(__TARGET_ARCH_riscv) - #define bpf_target_riscv - #define bpf_target_defined -#elif defined(__TARGET_ARCH_arc) - #define bpf_target_arc - #define bpf_target_defined -#else - -/* Fall back to what the compiler says */ -#if defined(__x86_64__) - #define bpf_target_x86 - #define bpf_target_defined -#elif defined(__s390__) - #define bpf_target_s390 - #define bpf_target_defined -#elif defined(__arm__) - #define bpf_target_arm - #define bpf_target_defined -#elif defined(__aarch64__) - #define bpf_target_arm64 - #define bpf_target_defined -#elif defined(__mips__) - #define bpf_target_mips - #define bpf_target_defined -#elif defined(__powerpc__) - #define bpf_target_powerpc - #define bpf_target_defined -#elif defined(__sparc__) - #define bpf_target_sparc - #define bpf_target_defined -#elif defined(__riscv) && __riscv_xlen == 64 - #define bpf_target_riscv - #define bpf_target_defined -#elif defined(__arc__) - #define bpf_target_arc - #define bpf_target_defined -#endif /* no compiler target */ - -#endif - -#ifndef __BPF_TARGET_MISSING -#define __BPF_TARGET_MISSING "GCC error \"Must specify a BPF target arch via __TARGET_ARCH_xxx\"" -#endif - -#if defined(bpf_target_x86) - -#if defined(__KERNEL__) || defined(__VMLINUX_H__) - -#define __PT_PARM1_REG di -#define __PT_PARM2_REG si -#define __PT_PARM3_REG dx -#define __PT_PARM4_REG cx -#define __PT_PARM5_REG r8 -#define __PT_RET_REG sp -#define __PT_FP_REG bp -#define __PT_RC_REG ax -#define __PT_SP_REG sp -#define __PT_IP_REG ip -/* syscall uses r10 for PARM4 */ -#define PT_REGS_PARM4_SYSCALL(x) ((x)->r10) -#define PT_REGS_PARM4_CORE_SYSCALL(x) BPF_CORE_READ(x, r10) - -#else - -#ifdef __i386__ - -#define __PT_PARM1_REG eax -#define __PT_PARM2_REG edx -#define __PT_PARM3_REG ecx -/* i386 kernel is built with -mregparm=3 */ -#define __PT_PARM4_REG __unsupported__ -#define __PT_PARM5_REG __unsupported__ -#define __PT_RET_REG esp -#define __PT_FP_REG ebp -#define __PT_RC_REG eax -#define __PT_SP_REG esp -#define __PT_IP_REG eip - -#else /* __i386__ */ - -#define __PT_PARM1_REG rdi -#define __PT_PARM2_REG rsi -#define __PT_PARM3_REG rdx -#define __PT_PARM4_REG rcx -#define __PT_PARM5_REG r8 -#define __PT_RET_REG rsp -#define __PT_FP_REG rbp -#define __PT_RC_REG rax -#define __PT_SP_REG rsp -#define __PT_IP_REG rip -/* syscall uses r10 for PARM4 */ -#define PT_REGS_PARM4_SYSCALL(x) ((x)->r10) -#define PT_REGS_PARM4_CORE_SYSCALL(x) BPF_CORE_READ(x, r10) - -#endif /* __i386__ */ - -#endif /* __KERNEL__ || __VMLINUX_H__ */ - -#elif defined(bpf_target_s390) - -struct pt_regs___s390 { - unsigned long orig_gpr2; -}; - -/* s390 provides user_pt_regs instead of struct pt_regs to userspace */ -#define __PT_REGS_CAST(x) ((const user_pt_regs *)(x)) -#define __PT_PARM1_REG gprs[2] -#define __PT_PARM2_REG gprs[3] -#define __PT_PARM3_REG gprs[4] -#define __PT_PARM4_REG gprs[5] -#define __PT_PARM5_REG gprs[6] -#define __PT_RET_REG grps[14] -#define __PT_FP_REG gprs[11] /* Works only with CONFIG_FRAME_POINTER */ -#define __PT_RC_REG gprs[2] -#define __PT_SP_REG gprs[15] -#define __PT_IP_REG psw.addr -#define PT_REGS_PARM1_SYSCALL(x) ({ _Pragma("GCC error \"use PT_REGS_PARM1_CORE_SYSCALL() instead\""); 0l; }) -#define PT_REGS_PARM1_CORE_SYSCALL(x) BPF_CORE_READ((const struct pt_regs___s390 *)(x), orig_gpr2) - -#elif defined(bpf_target_arm) - -#define __PT_PARM1_REG uregs[0] -#define __PT_PARM2_REG uregs[1] -#define __PT_PARM3_REG uregs[2] -#define __PT_PARM4_REG uregs[3] -#define __PT_PARM5_REG uregs[4] -#define __PT_RET_REG uregs[14] -#define __PT_FP_REG uregs[11] /* Works only with CONFIG_FRAME_POINTER */ -#define __PT_RC_REG uregs[0] -#define __PT_SP_REG uregs[13] -#define __PT_IP_REG uregs[12] - -#elif defined(bpf_target_arm64) - -struct pt_regs___arm64 { - unsigned long orig_x0; -}; - -/* arm64 provides struct user_pt_regs instead of struct pt_regs to userspace */ -#define __PT_REGS_CAST(x) ((const struct user_pt_regs *)(x)) -#define __PT_PARM1_REG regs[0] -#define __PT_PARM2_REG regs[1] -#define __PT_PARM3_REG regs[2] -#define __PT_PARM4_REG regs[3] -#define __PT_PARM5_REG regs[4] -#define __PT_RET_REG regs[30] -#define __PT_FP_REG regs[29] /* Works only with CONFIG_FRAME_POINTER */ -#define __PT_RC_REG regs[0] -#define __PT_SP_REG sp -#define __PT_IP_REG pc -#define PT_REGS_PARM1_SYSCALL(x) ({ _Pragma("GCC error \"use PT_REGS_PARM1_CORE_SYSCALL() instead\""); 0l; }) -#define PT_REGS_PARM1_CORE_SYSCALL(x) BPF_CORE_READ((const struct pt_regs___arm64 *)(x), orig_x0) - -#elif defined(bpf_target_mips) - -#define __PT_PARM1_REG regs[4] -#define __PT_PARM2_REG regs[5] -#define __PT_PARM3_REG regs[6] -#define __PT_PARM4_REG regs[7] -#define __PT_PARM5_REG regs[8] -#define __PT_RET_REG regs[31] -#define __PT_FP_REG regs[30] /* Works only with CONFIG_FRAME_POINTER */ -#define __PT_RC_REG regs[2] -#define __PT_SP_REG regs[29] -#define __PT_IP_REG cp0_epc - -#elif defined(bpf_target_powerpc) - -#define __PT_PARM1_REG gpr[3] -#define __PT_PARM2_REG gpr[4] -#define __PT_PARM3_REG gpr[5] -#define __PT_PARM4_REG gpr[6] -#define __PT_PARM5_REG gpr[7] -#define __PT_RET_REG regs[31] -#define __PT_FP_REG __unsupported__ -#define __PT_RC_REG gpr[3] -#define __PT_SP_REG sp -#define __PT_IP_REG nip -/* powerpc does not select ARCH_HAS_SYSCALL_WRAPPER. */ -#define PT_REGS_SYSCALL_REGS(ctx) ctx - -#elif defined(bpf_target_sparc) - -#define __PT_PARM1_REG u_regs[UREG_I0] -#define __PT_PARM2_REG u_regs[UREG_I1] -#define __PT_PARM3_REG u_regs[UREG_I2] -#define __PT_PARM4_REG u_regs[UREG_I3] -#define __PT_PARM5_REG u_regs[UREG_I4] -#define __PT_RET_REG u_regs[UREG_I7] -#define __PT_FP_REG __unsupported__ -#define __PT_RC_REG u_regs[UREG_I0] -#define __PT_SP_REG u_regs[UREG_FP] -/* Should this also be a bpf_target check for the sparc case? */ -#if defined(__arch64__) -#define __PT_IP_REG tpc -#else -#define __PT_IP_REG pc -#endif - -#elif defined(bpf_target_riscv) - -#define __PT_REGS_CAST(x) ((const struct user_regs_struct *)(x)) -#define __PT_PARM1_REG a0 -#define __PT_PARM2_REG a1 -#define __PT_PARM3_REG a2 -#define __PT_PARM4_REG a3 -#define __PT_PARM5_REG a4 -#define __PT_RET_REG ra -#define __PT_FP_REG s0 -#define __PT_RC_REG a5 -#define __PT_SP_REG sp -#define __PT_IP_REG pc -/* riscv does not select ARCH_HAS_SYSCALL_WRAPPER. */ -#define PT_REGS_SYSCALL_REGS(ctx) ctx - -#elif defined(bpf_target_arc) - -/* arc provides struct user_pt_regs instead of struct pt_regs to userspace */ -#define __PT_REGS_CAST(x) ((const struct user_regs_struct *)(x)) -#define __PT_PARM1_REG scratch.r0 -#define __PT_PARM2_REG scratch.r1 -#define __PT_PARM3_REG scratch.r2 -#define __PT_PARM4_REG scratch.r3 -#define __PT_PARM5_REG scratch.r4 -#define __PT_RET_REG scratch.blink -#define __PT_FP_REG __unsupported__ -#define __PT_RC_REG scratch.r0 -#define __PT_SP_REG scratch.sp -#define __PT_IP_REG scratch.ret -/* arc does not select ARCH_HAS_SYSCALL_WRAPPER. */ -#define PT_REGS_SYSCALL_REGS(ctx) ctx - -#endif - -#if defined(bpf_target_defined) - -struct pt_regs; - -/* allow some architecutres to override `struct pt_regs` */ -#ifndef __PT_REGS_CAST -#define __PT_REGS_CAST(x) (x) -#endif - -#define PT_REGS_PARM1(x) (__PT_REGS_CAST(x)->__PT_PARM1_REG) -#define PT_REGS_PARM2(x) (__PT_REGS_CAST(x)->__PT_PARM2_REG) -#define PT_REGS_PARM3(x) (__PT_REGS_CAST(x)->__PT_PARM3_REG) -#define PT_REGS_PARM4(x) (__PT_REGS_CAST(x)->__PT_PARM4_REG) -#define PT_REGS_PARM5(x) (__PT_REGS_CAST(x)->__PT_PARM5_REG) -#define PT_REGS_RET(x) (__PT_REGS_CAST(x)->__PT_RET_REG) -#define PT_REGS_FP(x) (__PT_REGS_CAST(x)->__PT_FP_REG) -#define PT_REGS_RC(x) (__PT_REGS_CAST(x)->__PT_RC_REG) -#define PT_REGS_SP(x) (__PT_REGS_CAST(x)->__PT_SP_REG) -#define PT_REGS_IP(x) (__PT_REGS_CAST(x)->__PT_IP_REG) - -#define PT_REGS_PARM1_CORE(x) BPF_CORE_READ(__PT_REGS_CAST(x), __PT_PARM1_REG) -#define PT_REGS_PARM2_CORE(x) BPF_CORE_READ(__PT_REGS_CAST(x), __PT_PARM2_REG) -#define PT_REGS_PARM3_CORE(x) BPF_CORE_READ(__PT_REGS_CAST(x), __PT_PARM3_REG) -#define PT_REGS_PARM4_CORE(x) BPF_CORE_READ(__PT_REGS_CAST(x), __PT_PARM4_REG) -#define PT_REGS_PARM5_CORE(x) BPF_CORE_READ(__PT_REGS_CAST(x), __PT_PARM5_REG) -#define PT_REGS_RET_CORE(x) BPF_CORE_READ(__PT_REGS_CAST(x), __PT_RET_REG) -#define PT_REGS_FP_CORE(x) BPF_CORE_READ(__PT_REGS_CAST(x), __PT_FP_REG) -#define PT_REGS_RC_CORE(x) BPF_CORE_READ(__PT_REGS_CAST(x), __PT_RC_REG) -#define PT_REGS_SP_CORE(x) BPF_CORE_READ(__PT_REGS_CAST(x), __PT_SP_REG) -#define PT_REGS_IP_CORE(x) BPF_CORE_READ(__PT_REGS_CAST(x), __PT_IP_REG) - -#if defined(bpf_target_powerpc) - -#define BPF_KPROBE_READ_RET_IP(ip, ctx) ({ (ip) = (ctx)->link; }) -#define BPF_KRETPROBE_READ_RET_IP BPF_KPROBE_READ_RET_IP - -#elif defined(bpf_target_sparc) - -#define BPF_KPROBE_READ_RET_IP(ip, ctx) ({ (ip) = PT_REGS_RET(ctx); }) -#define BPF_KRETPROBE_READ_RET_IP BPF_KPROBE_READ_RET_IP - -#else - -#define BPF_KPROBE_READ_RET_IP(ip, ctx) \ - ({ bpf_probe_read_kernel(&(ip), sizeof(ip), (void *)PT_REGS_RET(ctx)); }) -#define BPF_KRETPROBE_READ_RET_IP(ip, ctx) \ - ({ bpf_probe_read_kernel(&(ip), sizeof(ip), (void *)(PT_REGS_FP(ctx) + sizeof(ip))); }) - -#endif - -#ifndef PT_REGS_PARM1_SYSCALL -#define PT_REGS_PARM1_SYSCALL(x) PT_REGS_PARM1(x) -#endif -#define PT_REGS_PARM2_SYSCALL(x) PT_REGS_PARM2(x) -#define PT_REGS_PARM3_SYSCALL(x) PT_REGS_PARM3(x) -#ifndef PT_REGS_PARM4_SYSCALL -#define PT_REGS_PARM4_SYSCALL(x) PT_REGS_PARM4(x) -#endif -#define PT_REGS_PARM5_SYSCALL(x) PT_REGS_PARM5(x) - -#ifndef PT_REGS_PARM1_CORE_SYSCALL -#define PT_REGS_PARM1_CORE_SYSCALL(x) PT_REGS_PARM1_CORE(x) -#endif -#define PT_REGS_PARM2_CORE_SYSCALL(x) PT_REGS_PARM2_CORE(x) -#define PT_REGS_PARM3_CORE_SYSCALL(x) PT_REGS_PARM3_CORE(x) -#ifndef PT_REGS_PARM4_CORE_SYSCALL -#define PT_REGS_PARM4_CORE_SYSCALL(x) PT_REGS_PARM4_CORE(x) -#endif -#define PT_REGS_PARM5_CORE_SYSCALL(x) PT_REGS_PARM5_CORE(x) - -#else /* defined(bpf_target_defined) */ - -#define PT_REGS_PARM1(x) ({ _Pragma(__BPF_TARGET_MISSING); 0l; }) -#define PT_REGS_PARM2(x) ({ _Pragma(__BPF_TARGET_MISSING); 0l; }) -#define PT_REGS_PARM3(x) ({ _Pragma(__BPF_TARGET_MISSING); 0l; }) -#define PT_REGS_PARM4(x) ({ _Pragma(__BPF_TARGET_MISSING); 0l; }) -#define PT_REGS_PARM5(x) ({ _Pragma(__BPF_TARGET_MISSING); 0l; }) -#define PT_REGS_RET(x) ({ _Pragma(__BPF_TARGET_MISSING); 0l; }) -#define PT_REGS_FP(x) ({ _Pragma(__BPF_TARGET_MISSING); 0l; }) -#define PT_REGS_RC(x) ({ _Pragma(__BPF_TARGET_MISSING); 0l; }) -#define PT_REGS_SP(x) ({ _Pragma(__BPF_TARGET_MISSING); 0l; }) -#define PT_REGS_IP(x) ({ _Pragma(__BPF_TARGET_MISSING); 0l; }) - -#define PT_REGS_PARM1_CORE(x) ({ _Pragma(__BPF_TARGET_MISSING); 0l; }) -#define PT_REGS_PARM2_CORE(x) ({ _Pragma(__BPF_TARGET_MISSING); 0l; }) -#define PT_REGS_PARM3_CORE(x) ({ _Pragma(__BPF_TARGET_MISSING); 0l; }) -#define PT_REGS_PARM4_CORE(x) ({ _Pragma(__BPF_TARGET_MISSING); 0l; }) -#define PT_REGS_PARM5_CORE(x) ({ _Pragma(__BPF_TARGET_MISSING); 0l; }) -#define PT_REGS_RET_CORE(x) ({ _Pragma(__BPF_TARGET_MISSING); 0l; }) -#define PT_REGS_FP_CORE(x) ({ _Pragma(__BPF_TARGET_MISSING); 0l; }) -#define PT_REGS_RC_CORE(x) ({ _Pragma(__BPF_TARGET_MISSING); 0l; }) -#define PT_REGS_SP_CORE(x) ({ _Pragma(__BPF_TARGET_MISSING); 0l; }) -#define PT_REGS_IP_CORE(x) ({ _Pragma(__BPF_TARGET_MISSING); 0l; }) - -#define BPF_KPROBE_READ_RET_IP(ip, ctx) ({ _Pragma(__BPF_TARGET_MISSING); 0l; }) -#define BPF_KRETPROBE_READ_RET_IP(ip, ctx) ({ _Pragma(__BPF_TARGET_MISSING); 0l; }) - -#define PT_REGS_PARM1_SYSCALL(x) ({ _Pragma(__BPF_TARGET_MISSING); 0l; }) -#define PT_REGS_PARM2_SYSCALL(x) ({ _Pragma(__BPF_TARGET_MISSING); 0l; }) -#define PT_REGS_PARM3_SYSCALL(x) ({ _Pragma(__BPF_TARGET_MISSING); 0l; }) -#define PT_REGS_PARM4_SYSCALL(x) ({ _Pragma(__BPF_TARGET_MISSING); 0l; }) -#define PT_REGS_PARM5_SYSCALL(x) ({ _Pragma(__BPF_TARGET_MISSING); 0l; }) - -#define PT_REGS_PARM1_CORE_SYSCALL(x) ({ _Pragma(__BPF_TARGET_MISSING); 0l; }) -#define PT_REGS_PARM2_CORE_SYSCALL(x) ({ _Pragma(__BPF_TARGET_MISSING); 0l; }) -#define PT_REGS_PARM3_CORE_SYSCALL(x) ({ _Pragma(__BPF_TARGET_MISSING); 0l; }) -#define PT_REGS_PARM4_CORE_SYSCALL(x) ({ _Pragma(__BPF_TARGET_MISSING); 0l; }) -#define PT_REGS_PARM5_CORE_SYSCALL(x) ({ _Pragma(__BPF_TARGET_MISSING); 0l; }) - -#endif /* defined(bpf_target_defined) */ - -/* - * When invoked from a syscall handler kprobe, returns a pointer to a - * struct pt_regs containing syscall arguments and suitable for passing to - * PT_REGS_PARMn_SYSCALL() and PT_REGS_PARMn_CORE_SYSCALL(). - */ -#ifndef PT_REGS_SYSCALL_REGS -/* By default, assume that the arch selects ARCH_HAS_SYSCALL_WRAPPER. */ -#define PT_REGS_SYSCALL_REGS(ctx) ((struct pt_regs *)PT_REGS_PARM1(ctx)) -#endif - -#ifndef ___bpf_concat -#define ___bpf_concat(a, b) a ## b -#endif -#ifndef ___bpf_apply -#define ___bpf_apply(fn, n) ___bpf_concat(fn, n) -#endif -#ifndef ___bpf_nth -#define ___bpf_nth(_, _1, _2, _3, _4, _5, _6, _7, _8, _9, _a, _b, _c, N, ...) N -#endif -#ifndef ___bpf_narg -#define ___bpf_narg(...) ___bpf_nth(_, ##__VA_ARGS__, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0) -#endif - -#define ___bpf_ctx_cast0() ctx -#define ___bpf_ctx_cast1(x) ___bpf_ctx_cast0(), (void *)ctx[0] -#define ___bpf_ctx_cast2(x, args...) ___bpf_ctx_cast1(args), (void *)ctx[1] -#define ___bpf_ctx_cast3(x, args...) ___bpf_ctx_cast2(args), (void *)ctx[2] -#define ___bpf_ctx_cast4(x, args...) ___bpf_ctx_cast3(args), (void *)ctx[3] -#define ___bpf_ctx_cast5(x, args...) ___bpf_ctx_cast4(args), (void *)ctx[4] -#define ___bpf_ctx_cast6(x, args...) ___bpf_ctx_cast5(args), (void *)ctx[5] -#define ___bpf_ctx_cast7(x, args...) ___bpf_ctx_cast6(args), (void *)ctx[6] -#define ___bpf_ctx_cast8(x, args...) ___bpf_ctx_cast7(args), (void *)ctx[7] -#define ___bpf_ctx_cast9(x, args...) ___bpf_ctx_cast8(args), (void *)ctx[8] -#define ___bpf_ctx_cast10(x, args...) ___bpf_ctx_cast9(args), (void *)ctx[9] -#define ___bpf_ctx_cast11(x, args...) ___bpf_ctx_cast10(args), (void *)ctx[10] -#define ___bpf_ctx_cast12(x, args...) ___bpf_ctx_cast11(args), (void *)ctx[11] -#define ___bpf_ctx_cast(args...) ___bpf_apply(___bpf_ctx_cast, ___bpf_narg(args))(args) - -/* - * BPF_PROG is a convenience wrapper for generic tp_btf/fentry/fexit and - * similar kinds of BPF programs, that accept input arguments as a single - * pointer to untyped u64 array, where each u64 can actually be a typed - * pointer or integer of different size. Instead of requring user to write - * manual casts and work with array elements by index, BPF_PROG macro - * allows user to declare a list of named and typed input arguments in the - * same syntax as for normal C function. All the casting is hidden and - * performed transparently, while user code can just assume working with - * function arguments of specified type and name. - * - * Original raw context argument is preserved as well as 'ctx' argument. - * This is useful when using BPF helpers that expect original context - * as one of the parameters (e.g., for bpf_perf_event_output()). - */ -#define BPF_PROG(name, args...) \ -name(unsigned long long *ctx); \ -static __attribute__((always_inline)) typeof(name(0)) \ -____##name(unsigned long long *ctx, ##args); \ -typeof(name(0)) name(unsigned long long *ctx) \ -{ \ - _Pragma("GCC diagnostic push") \ - _Pragma("GCC diagnostic ignored \"-Wint-conversion\"") \ - return ____##name(___bpf_ctx_cast(args)); \ - _Pragma("GCC diagnostic pop") \ -} \ -static __attribute__((always_inline)) typeof(name(0)) \ -____##name(unsigned long long *ctx, ##args) - -struct pt_regs; - -#define ___bpf_kprobe_args0() ctx -#define ___bpf_kprobe_args1(x) ___bpf_kprobe_args0(), (void *)PT_REGS_PARM1(ctx) -#define ___bpf_kprobe_args2(x, args...) ___bpf_kprobe_args1(args), (void *)PT_REGS_PARM2(ctx) -#define ___bpf_kprobe_args3(x, args...) ___bpf_kprobe_args2(args), (void *)PT_REGS_PARM3(ctx) -#define ___bpf_kprobe_args4(x, args...) ___bpf_kprobe_args3(args), (void *)PT_REGS_PARM4(ctx) -#define ___bpf_kprobe_args5(x, args...) ___bpf_kprobe_args4(args), (void *)PT_REGS_PARM5(ctx) -#define ___bpf_kprobe_args(args...) ___bpf_apply(___bpf_kprobe_args, ___bpf_narg(args))(args) - -/* - * BPF_KPROBE serves the same purpose for kprobes as BPF_PROG for - * tp_btf/fentry/fexit BPF programs. It hides the underlying platform-specific - * low-level way of getting kprobe input arguments from struct pt_regs, and - * provides a familiar typed and named function arguments syntax and - * semantics of accessing kprobe input paremeters. - * - * Original struct pt_regs* context is preserved as 'ctx' argument. This might - * be necessary when using BPF helpers like bpf_perf_event_output(). - */ -#define BPF_KPROBE(name, args...) \ -name(struct pt_regs *ctx); \ -static __attribute__((always_inline)) typeof(name(0)) \ -____##name(struct pt_regs *ctx, ##args); \ -typeof(name(0)) name(struct pt_regs *ctx) \ -{ \ - _Pragma("GCC diagnostic push") \ - _Pragma("GCC diagnostic ignored \"-Wint-conversion\"") \ - return ____##name(___bpf_kprobe_args(args)); \ - _Pragma("GCC diagnostic pop") \ -} \ -static __attribute__((always_inline)) typeof(name(0)) \ -____##name(struct pt_regs *ctx, ##args) - -#define ___bpf_kretprobe_args0() ctx -#define ___bpf_kretprobe_args1(x) ___bpf_kretprobe_args0(), (void *)PT_REGS_RC(ctx) -#define ___bpf_kretprobe_args(args...) ___bpf_apply(___bpf_kretprobe_args, ___bpf_narg(args))(args) - -/* - * BPF_KRETPROBE is similar to BPF_KPROBE, except, it only provides optional - * return value (in addition to `struct pt_regs *ctx`), but no input - * arguments, because they will be clobbered by the time probed function - * returns. - */ -#define BPF_KRETPROBE(name, args...) \ -name(struct pt_regs *ctx); \ -static __attribute__((always_inline)) typeof(name(0)) \ -____##name(struct pt_regs *ctx, ##args); \ -typeof(name(0)) name(struct pt_regs *ctx) \ -{ \ - _Pragma("GCC diagnostic push") \ - _Pragma("GCC diagnostic ignored \"-Wint-conversion\"") \ - return ____##name(___bpf_kretprobe_args(args)); \ - _Pragma("GCC diagnostic pop") \ -} \ -static __always_inline typeof(name(0)) ____##name(struct pt_regs *ctx, ##args) - -#define ___bpf_syscall_args0() ctx -#define ___bpf_syscall_args1(x) ___bpf_syscall_args0(), (void *)PT_REGS_PARM1_CORE_SYSCALL(regs) -#define ___bpf_syscall_args2(x, args...) ___bpf_syscall_args1(args), (void *)PT_REGS_PARM2_CORE_SYSCALL(regs) -#define ___bpf_syscall_args3(x, args...) ___bpf_syscall_args2(args), (void *)PT_REGS_PARM3_CORE_SYSCALL(regs) -#define ___bpf_syscall_args4(x, args...) ___bpf_syscall_args3(args), (void *)PT_REGS_PARM4_CORE_SYSCALL(regs) -#define ___bpf_syscall_args5(x, args...) ___bpf_syscall_args4(args), (void *)PT_REGS_PARM5_CORE_SYSCALL(regs) -#define ___bpf_syscall_args(args...) ___bpf_apply(___bpf_syscall_args, ___bpf_narg(args))(args) - -/* - * BPF_KPROBE_SYSCALL is a variant of BPF_KPROBE, which is intended for - * tracing syscall functions, like __x64_sys_close. It hides the underlying - * platform-specific low-level way of getting syscall input arguments from - * struct pt_regs, and provides a familiar typed and named function arguments - * syntax and semantics of accessing syscall input parameters. - * - * Original struct pt_regs* context is preserved as 'ctx' argument. This might - * be necessary when using BPF helpers like bpf_perf_event_output(). - * - * This macro relies on BPF CO-RE support. - */ -#define BPF_KPROBE_SYSCALL(name, args...) \ -name(struct pt_regs *ctx); \ -static __attribute__((always_inline)) typeof(name(0)) \ -____##name(struct pt_regs *ctx, ##args); \ -typeof(name(0)) name(struct pt_regs *ctx) \ -{ \ - struct pt_regs *regs = PT_REGS_SYSCALL_REGS(ctx); \ - _Pragma("GCC diagnostic push") \ - _Pragma("GCC diagnostic ignored \"-Wint-conversion\"") \ - return ____##name(___bpf_syscall_args(args)); \ - _Pragma("GCC diagnostic pop") \ -} \ -static __attribute__((always_inline)) typeof(name(0)) \ -____##name(struct pt_regs *ctx, ##args) - -#endif diff --git a/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/btf.h b/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/btf.h deleted file mode 100644 index 951ac747..00000000 --- a/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/btf.h +++ /dev/null @@ -1,605 +0,0 @@ -/* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */ -/* Copyright (c) 2018 Facebook */ -/*! \file */ - -#ifndef __LIBBPF_BTF_H -#define __LIBBPF_BTF_H - -#include -#include -#include -#include - -#include "libbpf_common.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define BTF_ELF_SEC ".BTF" -#define BTF_EXT_ELF_SEC ".BTF.ext" -#define MAPS_ELF_SEC ".maps" - -struct btf; -struct btf_ext; -struct btf_type; - -struct bpf_object; - -enum btf_endianness { - BTF_LITTLE_ENDIAN = 0, - BTF_BIG_ENDIAN = 1, -}; - -/** - * @brief **btf__free()** frees all data of a BTF object - * @param btf BTF object to free - */ -LIBBPF_API void btf__free(struct btf *btf); - -/** - * @brief **btf__new()** creates a new instance of a BTF object from the raw - * bytes of an ELF's BTF section - * @param data raw bytes - * @param size number of bytes passed in `data` - * @return new BTF object instance which has to be eventually freed with - * **btf__free()** - * - * On error, error-code-encoded-as-pointer is returned, not a NULL. To extract - * error code from such a pointer `libbpf_get_error()` should be used. If - * `libbpf_set_strict_mode(LIBBPF_STRICT_CLEAN_PTRS)` is enabled, NULL is - * returned on error instead. In both cases thread-local `errno` variable is - * always set to error code as well. - */ -LIBBPF_API struct btf *btf__new(const void *data, __u32 size); - -/** - * @brief **btf__new_split()** create a new instance of a BTF object from the - * provided raw data bytes. It takes another BTF instance, **base_btf**, which - * serves as a base BTF, which is extended by types in a newly created BTF - * instance - * @param data raw bytes - * @param size length of raw bytes - * @param base_btf the base BTF object - * @return new BTF object instance which has to be eventually freed with - * **btf__free()** - * - * If *base_btf* is NULL, `btf__new_split()` is equivalent to `btf__new()` and - * creates non-split BTF. - * - * On error, error-code-encoded-as-pointer is returned, not a NULL. To extract - * error code from such a pointer `libbpf_get_error()` should be used. If - * `libbpf_set_strict_mode(LIBBPF_STRICT_CLEAN_PTRS)` is enabled, NULL is - * returned on error instead. In both cases thread-local `errno` variable is - * always set to error code as well. - */ -LIBBPF_API struct btf *btf__new_split(const void *data, __u32 size, struct btf *base_btf); - -/** - * @brief **btf__new_empty()** creates an empty BTF object. Use - * `btf__add_*()` to populate such BTF object. - * @return new BTF object instance which has to be eventually freed with - * **btf__free()** - * - * On error, error-code-encoded-as-pointer is returned, not a NULL. To extract - * error code from such a pointer `libbpf_get_error()` should be used. If - * `libbpf_set_strict_mode(LIBBPF_STRICT_CLEAN_PTRS)` is enabled, NULL is - * returned on error instead. In both cases thread-local `errno` variable is - * always set to error code as well. - */ -LIBBPF_API struct btf *btf__new_empty(void); - -/** - * @brief **btf__new_empty_split()** creates an unpopulated BTF object from an - * ELF BTF section except with a base BTF on top of which split BTF should be - * based - * @return new BTF object instance which has to be eventually freed with - * **btf__free()** - * - * If *base_btf* is NULL, `btf__new_empty_split()` is equivalent to - * `btf__new_empty()` and creates non-split BTF. - * - * On error, error-code-encoded-as-pointer is returned, not a NULL. To extract - * error code from such a pointer `libbpf_get_error()` should be used. If - * `libbpf_set_strict_mode(LIBBPF_STRICT_CLEAN_PTRS)` is enabled, NULL is - * returned on error instead. In both cases thread-local `errno` variable is - * always set to error code as well. - */ -LIBBPF_API struct btf *btf__new_empty_split(struct btf *base_btf); - -LIBBPF_API struct btf *btf__parse(const char *path, struct btf_ext **btf_ext); -LIBBPF_API struct btf *btf__parse_split(const char *path, struct btf *base_btf); -LIBBPF_API struct btf *btf__parse_elf(const char *path, struct btf_ext **btf_ext); -LIBBPF_API struct btf *btf__parse_elf_split(const char *path, struct btf *base_btf); -LIBBPF_API struct btf *btf__parse_raw(const char *path); -LIBBPF_API struct btf *btf__parse_raw_split(const char *path, struct btf *base_btf); - -LIBBPF_API struct btf *btf__load_vmlinux_btf(void); -LIBBPF_API struct btf *btf__load_module_btf(const char *module_name, struct btf *vmlinux_btf); -LIBBPF_API struct btf *libbpf_find_kernel_btf(void); - -LIBBPF_API struct btf *btf__load_from_kernel_by_id(__u32 id); -LIBBPF_API struct btf *btf__load_from_kernel_by_id_split(__u32 id, struct btf *base_btf); -LIBBPF_DEPRECATED_SINCE(0, 6, "use btf__load_from_kernel_by_id instead") -LIBBPF_API int btf__get_from_id(__u32 id, struct btf **btf); - -LIBBPF_DEPRECATED_SINCE(0, 6, "intended for internal libbpf use only") -LIBBPF_API int btf__finalize_data(struct bpf_object *obj, struct btf *btf); -LIBBPF_DEPRECATED_SINCE(0, 6, "use btf__load_into_kernel instead") -LIBBPF_API int btf__load(struct btf *btf); -LIBBPF_API int btf__load_into_kernel(struct btf *btf); -LIBBPF_API __s32 btf__find_by_name(const struct btf *btf, - const char *type_name); -LIBBPF_API __s32 btf__find_by_name_kind(const struct btf *btf, - const char *type_name, __u32 kind); -LIBBPF_DEPRECATED_SINCE(0, 7, "use btf__type_cnt() instead; note that btf__get_nr_types() == btf__type_cnt() - 1") -LIBBPF_API __u32 btf__get_nr_types(const struct btf *btf); -LIBBPF_API __u32 btf__type_cnt(const struct btf *btf); -LIBBPF_API const struct btf *btf__base_btf(const struct btf *btf); -LIBBPF_API const struct btf_type *btf__type_by_id(const struct btf *btf, - __u32 id); -LIBBPF_API size_t btf__pointer_size(const struct btf *btf); -LIBBPF_API int btf__set_pointer_size(struct btf *btf, size_t ptr_sz); -LIBBPF_API enum btf_endianness btf__endianness(const struct btf *btf); -LIBBPF_API int btf__set_endianness(struct btf *btf, enum btf_endianness endian); -LIBBPF_API __s64 btf__resolve_size(const struct btf *btf, __u32 type_id); -LIBBPF_API int btf__resolve_type(const struct btf *btf, __u32 type_id); -LIBBPF_API int btf__align_of(const struct btf *btf, __u32 id); -LIBBPF_API int btf__fd(const struct btf *btf); -LIBBPF_API void btf__set_fd(struct btf *btf, int fd); -LIBBPF_API const void *btf__raw_data(const struct btf *btf, __u32 *size); -LIBBPF_API const char *btf__name_by_offset(const struct btf *btf, __u32 offset); -LIBBPF_API const char *btf__str_by_offset(const struct btf *btf, __u32 offset); -LIBBPF_DEPRECATED_SINCE(0, 7, "this API is not necessary when BTF-defined maps are used") -LIBBPF_API int btf__get_map_kv_tids(const struct btf *btf, const char *map_name, - __u32 expected_key_size, - __u32 expected_value_size, - __u32 *key_type_id, __u32 *value_type_id); - -LIBBPF_API struct btf_ext *btf_ext__new(const __u8 *data, __u32 size); -LIBBPF_API void btf_ext__free(struct btf_ext *btf_ext); -LIBBPF_API const void *btf_ext__raw_data(const struct btf_ext *btf_ext, __u32 *size); -LIBBPF_API LIBBPF_DEPRECATED("btf_ext__reloc_func_info was never meant as a public API and has wrong assumptions embedded in it; it will be removed in the future libbpf versions") -int btf_ext__reloc_func_info(const struct btf *btf, - const struct btf_ext *btf_ext, - const char *sec_name, __u32 insns_cnt, - void **func_info, __u32 *cnt); -LIBBPF_API LIBBPF_DEPRECATED("btf_ext__reloc_line_info was never meant as a public API and has wrong assumptions embedded in it; it will be removed in the future libbpf versions") -int btf_ext__reloc_line_info(const struct btf *btf, - const struct btf_ext *btf_ext, - const char *sec_name, __u32 insns_cnt, - void **line_info, __u32 *cnt); -LIBBPF_API LIBBPF_DEPRECATED("btf_ext__reloc_func_info is deprecated; write custom func_info parsing to fetch rec_size") -__u32 btf_ext__func_info_rec_size(const struct btf_ext *btf_ext); -LIBBPF_API LIBBPF_DEPRECATED("btf_ext__reloc_line_info is deprecated; write custom line_info parsing to fetch rec_size") -__u32 btf_ext__line_info_rec_size(const struct btf_ext *btf_ext); - -LIBBPF_API int btf__find_str(struct btf *btf, const char *s); -LIBBPF_API int btf__add_str(struct btf *btf, const char *s); -LIBBPF_API int btf__add_type(struct btf *btf, const struct btf *src_btf, - const struct btf_type *src_type); -/** - * @brief **btf__add_btf()** appends all the BTF types from *src_btf* into *btf* - * @param btf BTF object which all the BTF types and strings are added to - * @param src_btf BTF object which all BTF types and referenced strings are copied from - * @return BTF type ID of the first appended BTF type, or negative error code - * - * **btf__add_btf()** can be used to simply and efficiently append the entire - * contents of one BTF object to another one. All the BTF type data is copied - * over, all referenced type IDs are adjusted by adding a necessary ID offset. - * Only strings referenced from BTF types are copied over and deduplicated, so - * if there were some unused strings in *src_btf*, those won't be copied over, - * which is consistent with the general string deduplication semantics of BTF - * writing APIs. - * - * If any error is encountered during this process, the contents of *btf* is - * left intact, which means that **btf__add_btf()** follows the transactional - * semantics and the operation as a whole is all-or-nothing. - * - * *src_btf* has to be non-split BTF, as of now copying types from split BTF - * is not supported and will result in -ENOTSUP error code returned. - */ -LIBBPF_API int btf__add_btf(struct btf *btf, const struct btf *src_btf); - -LIBBPF_API int btf__add_int(struct btf *btf, const char *name, size_t byte_sz, int encoding); -LIBBPF_API int btf__add_float(struct btf *btf, const char *name, size_t byte_sz); -LIBBPF_API int btf__add_ptr(struct btf *btf, int ref_type_id); -LIBBPF_API int btf__add_array(struct btf *btf, - int index_type_id, int elem_type_id, __u32 nr_elems); -/* struct/union construction APIs */ -LIBBPF_API int btf__add_struct(struct btf *btf, const char *name, __u32 sz); -LIBBPF_API int btf__add_union(struct btf *btf, const char *name, __u32 sz); -LIBBPF_API int btf__add_field(struct btf *btf, const char *name, int field_type_id, - __u32 bit_offset, __u32 bit_size); - -/* enum construction APIs */ -LIBBPF_API int btf__add_enum(struct btf *btf, const char *name, __u32 bytes_sz); -LIBBPF_API int btf__add_enum_value(struct btf *btf, const char *name, __s64 value); - -enum btf_fwd_kind { - BTF_FWD_STRUCT = 0, - BTF_FWD_UNION = 1, - BTF_FWD_ENUM = 2, -}; - -LIBBPF_API int btf__add_fwd(struct btf *btf, const char *name, enum btf_fwd_kind fwd_kind); -LIBBPF_API int btf__add_typedef(struct btf *btf, const char *name, int ref_type_id); -LIBBPF_API int btf__add_volatile(struct btf *btf, int ref_type_id); -LIBBPF_API int btf__add_const(struct btf *btf, int ref_type_id); -LIBBPF_API int btf__add_restrict(struct btf *btf, int ref_type_id); -LIBBPF_API int btf__add_type_tag(struct btf *btf, const char *value, int ref_type_id); - -/* func and func_proto construction APIs */ -LIBBPF_API int btf__add_func(struct btf *btf, const char *name, - enum btf_func_linkage linkage, int proto_type_id); -LIBBPF_API int btf__add_func_proto(struct btf *btf, int ret_type_id); -LIBBPF_API int btf__add_func_param(struct btf *btf, const char *name, int type_id); - -/* var & datasec construction APIs */ -LIBBPF_API int btf__add_var(struct btf *btf, const char *name, int linkage, int type_id); -LIBBPF_API int btf__add_datasec(struct btf *btf, const char *name, __u32 byte_sz); -LIBBPF_API int btf__add_datasec_var_info(struct btf *btf, int var_type_id, - __u32 offset, __u32 byte_sz); - -/* tag construction API */ -LIBBPF_API int btf__add_decl_tag(struct btf *btf, const char *value, int ref_type_id, - int component_idx); - -struct btf_dedup_opts { - size_t sz; - /* optional .BTF.ext info to dedup along the main BTF info */ - struct btf_ext *btf_ext; - /* force hash collisions (used for testing) */ - bool force_collisions; - size_t :0; -}; -#define btf_dedup_opts__last_field force_collisions - -LIBBPF_API int btf__dedup(struct btf *btf, const struct btf_dedup_opts *opts); - -LIBBPF_API int btf__dedup_v0_6_0(struct btf *btf, const struct btf_dedup_opts *opts); - -LIBBPF_DEPRECATED_SINCE(0, 7, "use btf__dedup() instead") -LIBBPF_API int btf__dedup_deprecated(struct btf *btf, struct btf_ext *btf_ext, const void *opts); -#define btf__dedup(...) ___libbpf_overload(___btf_dedup, __VA_ARGS__) -#define ___btf_dedup3(btf, btf_ext, opts) btf__dedup_deprecated(btf, btf_ext, opts) -#define ___btf_dedup2(btf, opts) btf__dedup(btf, opts) - -struct btf_dump; - -struct btf_dump_opts { - union { - size_t sz; - void *ctx; /* DEPRECATED: will be gone in v1.0 */ - }; -}; - -typedef void (*btf_dump_printf_fn_t)(void *ctx, const char *fmt, va_list args); - -LIBBPF_API struct btf_dump *btf_dump__new(const struct btf *btf, - btf_dump_printf_fn_t printf_fn, - void *ctx, - const struct btf_dump_opts *opts); - -LIBBPF_API struct btf_dump *btf_dump__new_v0_6_0(const struct btf *btf, - btf_dump_printf_fn_t printf_fn, - void *ctx, - const struct btf_dump_opts *opts); - -LIBBPF_API struct btf_dump *btf_dump__new_deprecated(const struct btf *btf, - const struct btf_ext *btf_ext, - const struct btf_dump_opts *opts, - btf_dump_printf_fn_t printf_fn); - -/* Choose either btf_dump__new() or btf_dump__new_deprecated() based on the - * type of 4th argument. If it's btf_dump's print callback, use deprecated - * API; otherwise, choose the new btf_dump__new(). ___libbpf_override() - * doesn't work here because both variants have 4 input arguments. - * - * (void *) casts are necessary to avoid compilation warnings about type - * mismatches, because even though __builtin_choose_expr() only ever evaluates - * one side the other side still has to satisfy type constraints (this is - * compiler implementation limitation which might be lifted eventually, - * according to the documentation). So passing struct btf_ext in place of - * btf_dump_printf_fn_t would be generating compilation warning. Casting to - * void * avoids this issue. - * - * Also, two type compatibility checks for a function and function pointer are - * required because passing function reference into btf_dump__new() as - * btf_dump__new(..., my_callback, ...) and as btf_dump__new(..., - * &my_callback, ...) (not explicit ampersand in the latter case) actually - * differs as far as __builtin_types_compatible_p() is concerned. Thus two - * checks are combined to detect callback argument. - * - * The rest works just like in case of ___libbpf_override() usage with symbol - * versioning. - * - * C++ compilers don't support __builtin_types_compatible_p(), so at least - * don't screw up compilation for them and let C++ users pick btf_dump__new - * vs btf_dump__new_deprecated explicitly. - */ -#ifndef __cplusplus -#define btf_dump__new(a1, a2, a3, a4) __builtin_choose_expr( \ - __builtin_types_compatible_p(typeof(a4), btf_dump_printf_fn_t) || \ - __builtin_types_compatible_p(typeof(a4), void(void *, const char *, va_list)), \ - btf_dump__new_deprecated((void *)a1, (void *)a2, (void *)a3, (void *)a4), \ - btf_dump__new((void *)a1, (void *)a2, (void *)a3, (void *)a4)) -#endif - -LIBBPF_API void btf_dump__free(struct btf_dump *d); - -LIBBPF_API int btf_dump__dump_type(struct btf_dump *d, __u32 id); - -struct btf_dump_emit_type_decl_opts { - /* size of this struct, for forward/backward compatiblity */ - size_t sz; - /* optional field name for type declaration, e.g.: - * - struct my_struct - * - void (*)(int) - * - char (*)[123] - */ - const char *field_name; - /* extra indentation level (in number of tabs) to emit for multi-line - * type declarations (e.g., anonymous struct); applies for lines - * starting from the second one (first line is assumed to have - * necessary indentation already - */ - int indent_level; - /* strip all the const/volatile/restrict mods */ - bool strip_mods; - size_t :0; -}; -#define btf_dump_emit_type_decl_opts__last_field strip_mods - -LIBBPF_API int -btf_dump__emit_type_decl(struct btf_dump *d, __u32 id, - const struct btf_dump_emit_type_decl_opts *opts); - - -struct btf_dump_type_data_opts { - /* size of this struct, for forward/backward compatibility */ - size_t sz; - const char *indent_str; - int indent_level; - /* below match "show" flags for bpf_show_snprintf() */ - bool compact; /* no newlines/indentation */ - bool skip_names; /* skip member/type names */ - bool emit_zeroes; /* show 0-valued fields */ - size_t :0; -}; -#define btf_dump_type_data_opts__last_field emit_zeroes - -LIBBPF_API int -btf_dump__dump_type_data(struct btf_dump *d, __u32 id, - const void *data, size_t data_sz, - const struct btf_dump_type_data_opts *opts); - -/* - * A set of helpers for easier BTF types handling. - * - * The inline functions below rely on constants from the kernel headers which - * may not be available for applications including this header file. To avoid - * compilation errors, we define all the constants here that were added after - * the initial introduction of the BTF_KIND* constants. - */ -#ifndef BTF_KIND_FUNC -#define BTF_KIND_FUNC 12 /* Function */ -#define BTF_KIND_FUNC_PROTO 13 /* Function Proto */ -#endif -#ifndef BTF_KIND_VAR -#define BTF_KIND_VAR 14 /* Variable */ -#define BTF_KIND_DATASEC 15 /* Section */ -#endif -#ifndef BTF_KIND_FLOAT -#define BTF_KIND_FLOAT 16 /* Floating point */ -#endif -/* The kernel header switched to enums, so these two were never #defined */ -#define BTF_KIND_DECL_TAG 17 /* Decl Tag */ -#define BTF_KIND_TYPE_TAG 18 /* Type Tag */ - -static inline __u16 btf_kind(const struct btf_type *t) -{ - return BTF_INFO_KIND(t->info); -} - -static inline __u16 btf_vlen(const struct btf_type *t) -{ - return BTF_INFO_VLEN(t->info); -} - -static inline bool btf_kflag(const struct btf_type *t) -{ - return BTF_INFO_KFLAG(t->info); -} - -static inline bool btf_is_void(const struct btf_type *t) -{ - return btf_kind(t) == BTF_KIND_UNKN; -} - -static inline bool btf_is_int(const struct btf_type *t) -{ - return btf_kind(t) == BTF_KIND_INT; -} - -static inline bool btf_is_ptr(const struct btf_type *t) -{ - return btf_kind(t) == BTF_KIND_PTR; -} - -static inline bool btf_is_array(const struct btf_type *t) -{ - return btf_kind(t) == BTF_KIND_ARRAY; -} - -static inline bool btf_is_struct(const struct btf_type *t) -{ - return btf_kind(t) == BTF_KIND_STRUCT; -} - -static inline bool btf_is_union(const struct btf_type *t) -{ - return btf_kind(t) == BTF_KIND_UNION; -} - -static inline bool btf_is_composite(const struct btf_type *t) -{ - __u16 kind = btf_kind(t); - - return kind == BTF_KIND_STRUCT || kind == BTF_KIND_UNION; -} - -static inline bool btf_is_enum(const struct btf_type *t) -{ - return btf_kind(t) == BTF_KIND_ENUM; -} - -static inline bool btf_is_fwd(const struct btf_type *t) -{ - return btf_kind(t) == BTF_KIND_FWD; -} - -static inline bool btf_is_typedef(const struct btf_type *t) -{ - return btf_kind(t) == BTF_KIND_TYPEDEF; -} - -static inline bool btf_is_volatile(const struct btf_type *t) -{ - return btf_kind(t) == BTF_KIND_VOLATILE; -} - -static inline bool btf_is_const(const struct btf_type *t) -{ - return btf_kind(t) == BTF_KIND_CONST; -} - -static inline bool btf_is_restrict(const struct btf_type *t) -{ - return btf_kind(t) == BTF_KIND_RESTRICT; -} - -static inline bool btf_is_mod(const struct btf_type *t) -{ - __u16 kind = btf_kind(t); - - return kind == BTF_KIND_VOLATILE || - kind == BTF_KIND_CONST || - kind == BTF_KIND_RESTRICT || - kind == BTF_KIND_TYPE_TAG; -} - -static inline bool btf_is_func(const struct btf_type *t) -{ - return btf_kind(t) == BTF_KIND_FUNC; -} - -static inline bool btf_is_func_proto(const struct btf_type *t) -{ - return btf_kind(t) == BTF_KIND_FUNC_PROTO; -} - -static inline bool btf_is_var(const struct btf_type *t) -{ - return btf_kind(t) == BTF_KIND_VAR; -} - -static inline bool btf_is_datasec(const struct btf_type *t) -{ - return btf_kind(t) == BTF_KIND_DATASEC; -} - -static inline bool btf_is_float(const struct btf_type *t) -{ - return btf_kind(t) == BTF_KIND_FLOAT; -} - -static inline bool btf_is_decl_tag(const struct btf_type *t) -{ - return btf_kind(t) == BTF_KIND_DECL_TAG; -} - -static inline bool btf_is_type_tag(const struct btf_type *t) -{ - return btf_kind(t) == BTF_KIND_TYPE_TAG; -} - -static inline __u8 btf_int_encoding(const struct btf_type *t) -{ - return BTF_INT_ENCODING(*(__u32 *)(t + 1)); -} - -static inline __u8 btf_int_offset(const struct btf_type *t) -{ - return BTF_INT_OFFSET(*(__u32 *)(t + 1)); -} - -static inline __u8 btf_int_bits(const struct btf_type *t) -{ - return BTF_INT_BITS(*(__u32 *)(t + 1)); -} - -static inline struct btf_array *btf_array(const struct btf_type *t) -{ - return (struct btf_array *)(t + 1); -} - -static inline struct btf_enum *btf_enum(const struct btf_type *t) -{ - return (struct btf_enum *)(t + 1); -} - -static inline struct btf_member *btf_members(const struct btf_type *t) -{ - return (struct btf_member *)(t + 1); -} - -/* Get bit offset of a member with specified index. */ -static inline __u32 btf_member_bit_offset(const struct btf_type *t, - __u32 member_idx) -{ - const struct btf_member *m = btf_members(t) + member_idx; - bool kflag = btf_kflag(t); - - return kflag ? BTF_MEMBER_BIT_OFFSET(m->offset) : m->offset; -} -/* - * Get bitfield size of a member, assuming t is BTF_KIND_STRUCT or - * BTF_KIND_UNION. If member is not a bitfield, zero is returned. - */ -static inline __u32 btf_member_bitfield_size(const struct btf_type *t, - __u32 member_idx) -{ - const struct btf_member *m = btf_members(t) + member_idx; - bool kflag = btf_kflag(t); - - return kflag ? BTF_MEMBER_BITFIELD_SIZE(m->offset) : 0; -} - -static inline struct btf_param *btf_params(const struct btf_type *t) -{ - return (struct btf_param *)(t + 1); -} - -static inline struct btf_var *btf_var(const struct btf_type *t) -{ - return (struct btf_var *)(t + 1); -} - -static inline struct btf_var_secinfo * -btf_var_secinfos(const struct btf_type *t) -{ - return (struct btf_var_secinfo *)(t + 1); -} - -struct btf_decl_tag; -static inline struct btf_decl_tag *btf_decl_tag(const struct btf_type *t) -{ - return (struct btf_decl_tag *)(t + 1); -} - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /* __LIBBPF_BTF_H */ diff --git a/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/libbpf.h b/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/libbpf.h deleted file mode 100644 index 9e9a3fd3..00000000 --- a/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/libbpf.h +++ /dev/null @@ -1,1767 +0,0 @@ -/* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */ - -/* - * Common eBPF ELF object loading operations. - * - * Copyright (C) 2013-2015 Alexei Starovoitov - * Copyright (C) 2015 Wang Nan - * Copyright (C) 2015 Huawei Inc. - */ -#ifndef __LIBBPF_LIBBPF_H -#define __LIBBPF_LIBBPF_H - -#include -#include -#include -#include -#include // for size_t -#include - -#include "libbpf_common.h" -#include "libbpf_legacy.h" - -#ifdef __cplusplus -extern "C" { -#endif - -LIBBPF_API __u32 libbpf_major_version(void); -LIBBPF_API __u32 libbpf_minor_version(void); -LIBBPF_API const char *libbpf_version_string(void); - -enum libbpf_errno { - __LIBBPF_ERRNO__START = 4000, - - /* Something wrong in libelf */ - LIBBPF_ERRNO__LIBELF = __LIBBPF_ERRNO__START, - LIBBPF_ERRNO__FORMAT, /* BPF object format invalid */ - LIBBPF_ERRNO__KVERSION, /* Incorrect or no 'version' section */ - LIBBPF_ERRNO__ENDIAN, /* Endian mismatch */ - LIBBPF_ERRNO__INTERNAL, /* Internal error in libbpf */ - LIBBPF_ERRNO__RELOC, /* Relocation failed */ - LIBBPF_ERRNO__LOAD, /* Load program failure for unknown reason */ - LIBBPF_ERRNO__VERIFY, /* Kernel verifier blocks program loading */ - LIBBPF_ERRNO__PROG2BIG, /* Program too big */ - LIBBPF_ERRNO__KVER, /* Incorrect kernel version */ - LIBBPF_ERRNO__PROGTYPE, /* Kernel doesn't support this program type */ - LIBBPF_ERRNO__WRNGPID, /* Wrong pid in netlink message */ - LIBBPF_ERRNO__INVSEQ, /* Invalid netlink sequence */ - LIBBPF_ERRNO__NLPARSE, /* netlink parsing error */ - __LIBBPF_ERRNO__END, -}; - -LIBBPF_API int libbpf_strerror(int err, char *buf, size_t size); - -enum libbpf_print_level { - LIBBPF_WARN, - LIBBPF_INFO, - LIBBPF_DEBUG, -}; - -typedef int (*libbpf_print_fn_t)(enum libbpf_print_level level, - const char *, va_list ap); - -LIBBPF_API libbpf_print_fn_t libbpf_set_print(libbpf_print_fn_t fn); - -/* Hide internal to user */ -struct bpf_object; - -struct bpf_object_open_attr { - const char *file; - enum bpf_prog_type prog_type; -}; - -struct bpf_object_open_opts { - /* size of this struct, for forward/backward compatiblity */ - size_t sz; - /* object name override, if provided: - * - for object open from file, this will override setting object - * name from file path's base name; - * - for object open from memory buffer, this will specify an object - * name and will override default "-" name; - */ - const char *object_name; - /* parse map definitions non-strictly, allowing extra attributes/data */ - bool relaxed_maps; - /* DEPRECATED: handle CO-RE relocations non-strictly, allowing failures. - * Value is ignored. Relocations always are processed non-strictly. - * Non-relocatable instructions are replaced with invalid ones to - * prevent accidental errors. - * */ - LIBBPF_DEPRECATED_SINCE(0, 6, "field has no effect") - bool relaxed_core_relocs; - /* maps that set the 'pinning' attribute in their definition will have - * their pin_path attribute set to a file in this directory, and be - * auto-pinned to that path on load; defaults to "/sys/fs/bpf". - */ - const char *pin_root_path; - - LIBBPF_DEPRECATED_SINCE(0, 7, "use bpf_program__set_attach_target() on each individual bpf_program") - __u32 attach_prog_fd; - /* Additional kernel config content that augments and overrides - * system Kconfig for CONFIG_xxx externs. - */ - const char *kconfig; - /* Path to the custom BTF to be used for BPF CO-RE relocations. - * This custom BTF completely replaces the use of vmlinux BTF - * for the purpose of CO-RE relocations. - * NOTE: any other BPF feature (e.g., fentry/fexit programs, - * struct_ops, etc) will need actual kernel BTF at /sys/kernel/btf/vmlinux. - */ - const char *btf_custom_path; - /* Pointer to a buffer for storing kernel logs for applicable BPF - * commands. Valid kernel_log_size has to be specified as well and are - * passed-through to bpf() syscall. Keep in mind that kernel might - * fail operation with -ENOSPC error if provided buffer is too small - * to contain entire log output. - * See the comment below for kernel_log_level for interaction between - * log_buf and log_level settings. - * - * If specified, this log buffer will be passed for: - * - each BPF progral load (BPF_PROG_LOAD) attempt, unless overriden - * with bpf_program__set_log() on per-program level, to get - * BPF verifier log output. - * - during BPF object's BTF load into kernel (BPF_BTF_LOAD) to get - * BTF sanity checking log. - * - * Each BPF command (BPF_BTF_LOAD or BPF_PROG_LOAD) will overwrite - * previous contents, so if you need more fine-grained control, set - * per-program buffer with bpf_program__set_log_buf() to preserve each - * individual program's verification log. Keep using kernel_log_buf - * for BTF verification log, if necessary. - */ - char *kernel_log_buf; - size_t kernel_log_size; - /* - * Log level can be set independently from log buffer. Log_level=0 - * means that libbpf will attempt loading BTF or program without any - * logging requested, but will retry with either its own or custom log - * buffer, if provided, and log_level=1 on any error. - * And vice versa, setting log_level>0 will request BTF or prog - * loading with verbose log from the first attempt (and as such also - * for successfully loaded BTF or program), and the actual log buffer - * could be either libbpf's own auto-allocated log buffer, if - * kernel_log_buffer is NULL, or user-provided custom kernel_log_buf. - * If user didn't provide custom log buffer, libbpf will emit captured - * logs through its print callback. - */ - __u32 kernel_log_level; - - size_t :0; -}; -#define bpf_object_open_opts__last_field kernel_log_level - -LIBBPF_API struct bpf_object *bpf_object__open(const char *path); - -/** - * @brief **bpf_object__open_file()** creates a bpf_object by opening - * the BPF ELF object file pointed to by the passed path and loading it - * into memory. - * @param path BPF object file path - * @param opts options for how to load the bpf object, this parameter is - * optional and can be set to NULL - * @return pointer to the new bpf_object; or NULL is returned on error, - * error code is stored in errno - */ -LIBBPF_API struct bpf_object * -bpf_object__open_file(const char *path, const struct bpf_object_open_opts *opts); - -/** - * @brief **bpf_object__open_mem()** creates a bpf_object by reading - * the BPF objects raw bytes from a memory buffer containing a valid - * BPF ELF object file. - * @param obj_buf pointer to the buffer containing ELF file bytes - * @param obj_buf_sz number of bytes in the buffer - * @param opts options for how to load the bpf object - * @return pointer to the new bpf_object; or NULL is returned on error, - * error code is stored in errno - */ -LIBBPF_API struct bpf_object * -bpf_object__open_mem(const void *obj_buf, size_t obj_buf_sz, - const struct bpf_object_open_opts *opts); - -/* deprecated bpf_object__open variants */ -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_object__open_mem() instead") -LIBBPF_API struct bpf_object * -bpf_object__open_buffer(const void *obj_buf, size_t obj_buf_sz, - const char *name); -LIBBPF_DEPRECATED_SINCE(0, 7, "use bpf_object__open_file() instead") -LIBBPF_API struct bpf_object * -bpf_object__open_xattr(struct bpf_object_open_attr *attr); - -enum libbpf_pin_type { - LIBBPF_PIN_NONE, - /* PIN_BY_NAME: pin maps by name (in /sys/fs/bpf by default) */ - LIBBPF_PIN_BY_NAME, -}; - -/* pin_maps and unpin_maps can both be called with a NULL path, in which case - * they will use the pin_path attribute of each map (and ignore all maps that - * don't have a pin_path set). - */ -LIBBPF_API int bpf_object__pin_maps(struct bpf_object *obj, const char *path); -LIBBPF_API int bpf_object__unpin_maps(struct bpf_object *obj, - const char *path); -LIBBPF_API int bpf_object__pin_programs(struct bpf_object *obj, - const char *path); -LIBBPF_API int bpf_object__unpin_programs(struct bpf_object *obj, - const char *path); -LIBBPF_API int bpf_object__pin(struct bpf_object *object, const char *path); -LIBBPF_API void bpf_object__close(struct bpf_object *object); - -struct bpf_object_load_attr { - struct bpf_object *obj; - int log_level; - const char *target_btf_path; -}; - -/* Load/unload object into/from kernel */ -LIBBPF_API int bpf_object__load(struct bpf_object *obj); -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_object__load() instead") -LIBBPF_API int bpf_object__load_xattr(struct bpf_object_load_attr *attr); -LIBBPF_DEPRECATED_SINCE(0, 6, "bpf_object__unload() is deprecated, use bpf_object__close() instead") -LIBBPF_API int bpf_object__unload(struct bpf_object *obj); - -LIBBPF_API const char *bpf_object__name(const struct bpf_object *obj); -LIBBPF_API unsigned int bpf_object__kversion(const struct bpf_object *obj); -LIBBPF_API int bpf_object__set_kversion(struct bpf_object *obj, __u32 kern_version); - -struct btf; -LIBBPF_API struct btf *bpf_object__btf(const struct bpf_object *obj); -LIBBPF_API int bpf_object__btf_fd(const struct bpf_object *obj); - -LIBBPF_DEPRECATED_SINCE(0, 7, "use bpf_object__find_program_by_name() instead") -LIBBPF_API struct bpf_program * -bpf_object__find_program_by_title(const struct bpf_object *obj, - const char *title); -LIBBPF_API struct bpf_program * -bpf_object__find_program_by_name(const struct bpf_object *obj, - const char *name); - -LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 7, "track bpf_objects in application code instead") -struct bpf_object *bpf_object__next(struct bpf_object *prev); -#define bpf_object__for_each_safe(pos, tmp) \ - for ((pos) = bpf_object__next(NULL), \ - (tmp) = bpf_object__next(pos); \ - (pos) != NULL; \ - (pos) = (tmp), (tmp) = bpf_object__next(tmp)) - -typedef void (*bpf_object_clear_priv_t)(struct bpf_object *, void *); -LIBBPF_DEPRECATED_SINCE(0, 7, "storage via set_priv/priv is deprecated") -LIBBPF_API int bpf_object__set_priv(struct bpf_object *obj, void *priv, - bpf_object_clear_priv_t clear_priv); -LIBBPF_DEPRECATED_SINCE(0, 7, "storage via set_priv/priv is deprecated") -LIBBPF_API void *bpf_object__priv(const struct bpf_object *prog); - -LIBBPF_API int -libbpf_prog_type_by_name(const char *name, enum bpf_prog_type *prog_type, - enum bpf_attach_type *expected_attach_type); -LIBBPF_API int libbpf_attach_type_by_name(const char *name, - enum bpf_attach_type *attach_type); -LIBBPF_API int libbpf_find_vmlinux_btf_id(const char *name, - enum bpf_attach_type attach_type); - -/* Accessors of bpf_program */ -struct bpf_program; -LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 7, "use bpf_object__next_program() instead") -struct bpf_program *bpf_program__next(struct bpf_program *prog, - const struct bpf_object *obj); -LIBBPF_API struct bpf_program * -bpf_object__next_program(const struct bpf_object *obj, struct bpf_program *prog); - -#define bpf_object__for_each_program(pos, obj) \ - for ((pos) = bpf_object__next_program((obj), NULL); \ - (pos) != NULL; \ - (pos) = bpf_object__next_program((obj), (pos))) - -LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 7, "use bpf_object__prev_program() instead") -struct bpf_program *bpf_program__prev(struct bpf_program *prog, - const struct bpf_object *obj); -LIBBPF_API struct bpf_program * -bpf_object__prev_program(const struct bpf_object *obj, struct bpf_program *prog); - -typedef void (*bpf_program_clear_priv_t)(struct bpf_program *, void *); - -LIBBPF_DEPRECATED_SINCE(0, 7, "storage via set_priv/priv is deprecated") -LIBBPF_API int bpf_program__set_priv(struct bpf_program *prog, void *priv, - bpf_program_clear_priv_t clear_priv); -LIBBPF_DEPRECATED_SINCE(0, 7, "storage via set_priv/priv is deprecated") -LIBBPF_API void *bpf_program__priv(const struct bpf_program *prog); -LIBBPF_API void bpf_program__set_ifindex(struct bpf_program *prog, - __u32 ifindex); - -LIBBPF_API const char *bpf_program__name(const struct bpf_program *prog); -LIBBPF_API const char *bpf_program__section_name(const struct bpf_program *prog); -LIBBPF_API LIBBPF_DEPRECATED("BPF program title is confusing term; please use bpf_program__section_name() instead") -const char *bpf_program__title(const struct bpf_program *prog, bool needs_copy); -LIBBPF_API bool bpf_program__autoload(const struct bpf_program *prog); -LIBBPF_API int bpf_program__set_autoload(struct bpf_program *prog, bool autoload); - -/* returns program size in bytes */ -LIBBPF_DEPRECATED_SINCE(0, 7, "use bpf_program__insn_cnt() instead") -LIBBPF_API size_t bpf_program__size(const struct bpf_program *prog); - -struct bpf_insn; - -/** - * @brief **bpf_program__insns()** gives read-only access to BPF program's - * underlying BPF instructions. - * @param prog BPF program for which to return instructions - * @return a pointer to an array of BPF instructions that belong to the - * specified BPF program - * - * Returned pointer is always valid and not NULL. Number of `struct bpf_insn` - * pointed to can be fetched using **bpf_program__insn_cnt()** API. - * - * Keep in mind, libbpf can modify and append/delete BPF program's - * instructions as it processes BPF object file and prepares everything for - * uploading into the kernel. So depending on the point in BPF object - * lifetime, **bpf_program__insns()** can return different sets of - * instructions. As an example, during BPF object load phase BPF program - * instructions will be CO-RE-relocated, BPF subprograms instructions will be - * appended, ldimm64 instructions will have FDs embedded, etc. So instructions - * returned before **bpf_object__load()** and after it might be quite - * different. - */ -LIBBPF_API const struct bpf_insn *bpf_program__insns(const struct bpf_program *prog); - -/** - * @brief **bpf_program__set_insns()** can set BPF program's underlying - * BPF instructions. - * - * WARNING: This is a very advanced libbpf API and users need to know - * what they are doing. This should be used from prog_prepare_load_fn - * callback only. - * - * @param prog BPF program for which to return instructions - * @param new_insns a pointer to an array of BPF instructions - * @param new_insn_cnt number of `struct bpf_insn`'s that form - * specified BPF program - * @return 0, on success; negative error code, otherwise - */ -LIBBPF_API int bpf_program__set_insns(struct bpf_program *prog, - struct bpf_insn *new_insns, size_t new_insn_cnt); - -/** - * @brief **bpf_program__insn_cnt()** returns number of `struct bpf_insn`'s - * that form specified BPF program. - * @param prog BPF program for which to return number of BPF instructions - * - * See **bpf_program__insns()** documentation for notes on how libbpf can - * change instructions and their count during different phases of - * **bpf_object** lifetime. - */ -LIBBPF_API size_t bpf_program__insn_cnt(const struct bpf_program *prog); - -LIBBPF_DEPRECATED_SINCE(0, 6, "use bpf_object__load() instead") -LIBBPF_API int bpf_program__load(struct bpf_program *prog, const char *license, __u32 kern_version); -LIBBPF_API int bpf_program__fd(const struct bpf_program *prog); -LIBBPF_DEPRECATED_SINCE(0, 7, "multi-instance bpf_program support is deprecated") -LIBBPF_API int bpf_program__pin_instance(struct bpf_program *prog, - const char *path, - int instance); -LIBBPF_DEPRECATED_SINCE(0, 7, "multi-instance bpf_program support is deprecated") -LIBBPF_API int bpf_program__unpin_instance(struct bpf_program *prog, - const char *path, - int instance); - -/** - * @brief **bpf_program__pin()** pins the BPF program to a file - * in the BPF FS specified by a path. This increments the programs - * reference count, allowing it to stay loaded after the process - * which loaded it has exited. - * - * @param prog BPF program to pin, must already be loaded - * @param path file path in a BPF file system - * @return 0, on success; negative error code, otherwise - */ -LIBBPF_API int bpf_program__pin(struct bpf_program *prog, const char *path); - -/** - * @brief **bpf_program__unpin()** unpins the BPF program from a file - * in the BPFFS specified by a path. This decrements the programs - * reference count. - * - * The file pinning the BPF program can also be unlinked by a different - * process in which case this function will return an error. - * - * @param prog BPF program to unpin - * @param path file path to the pin in a BPF file system - * @return 0, on success; negative error code, otherwise - */ -LIBBPF_API int bpf_program__unpin(struct bpf_program *prog, const char *path); -LIBBPF_API void bpf_program__unload(struct bpf_program *prog); - -struct bpf_link; - -LIBBPF_API struct bpf_link *bpf_link__open(const char *path); -LIBBPF_API int bpf_link__fd(const struct bpf_link *link); -LIBBPF_API const char *bpf_link__pin_path(const struct bpf_link *link); -/** - * @brief **bpf_link__pin()** pins the BPF link to a file - * in the BPF FS specified by a path. This increments the links - * reference count, allowing it to stay loaded after the process - * which loaded it has exited. - * - * @param link BPF link to pin, must already be loaded - * @param path file path in a BPF file system - * @return 0, on success; negative error code, otherwise - */ - -LIBBPF_API int bpf_link__pin(struct bpf_link *link, const char *path); - -/** - * @brief **bpf_link__unpin()** unpins the BPF link from a file - * in the BPFFS specified by a path. This decrements the links - * reference count. - * - * The file pinning the BPF link can also be unlinked by a different - * process in which case this function will return an error. - * - * @param prog BPF program to unpin - * @param path file path to the pin in a BPF file system - * @return 0, on success; negative error code, otherwise - */ -LIBBPF_API int bpf_link__unpin(struct bpf_link *link); -LIBBPF_API int bpf_link__update_program(struct bpf_link *link, - struct bpf_program *prog); -LIBBPF_API void bpf_link__disconnect(struct bpf_link *link); -LIBBPF_API int bpf_link__detach(struct bpf_link *link); -LIBBPF_API int bpf_link__destroy(struct bpf_link *link); - -/** - * @brief **bpf_program__attach()** is a generic function for attaching - * a BPF program based on auto-detection of program type, attach type, - * and extra paremeters, where applicable. - * - * @param prog BPF program to attach - * @return Reference to the newly created BPF link; or NULL is returned on error, - * error code is stored in errno - * - * This is supported for: - * - kprobe/kretprobe (depends on SEC() definition) - * - uprobe/uretprobe (depends on SEC() definition) - * - tracepoint - * - raw tracepoint - * - tracing programs (typed raw TP/fentry/fexit/fmod_ret) - */ -LIBBPF_API struct bpf_link * -bpf_program__attach(const struct bpf_program *prog); - -struct bpf_perf_event_opts { - /* size of this struct, for forward/backward compatiblity */ - size_t sz; - /* custom user-provided value fetchable through bpf_get_attach_cookie() */ - __u64 bpf_cookie; -}; -#define bpf_perf_event_opts__last_field bpf_cookie - -LIBBPF_API struct bpf_link * -bpf_program__attach_perf_event(const struct bpf_program *prog, int pfd); - -LIBBPF_API struct bpf_link * -bpf_program__attach_perf_event_opts(const struct bpf_program *prog, int pfd, - const struct bpf_perf_event_opts *opts); - -struct bpf_kprobe_opts { - /* size of this struct, for forward/backward compatiblity */ - size_t sz; - /* custom user-provided value fetchable through bpf_get_attach_cookie() */ - __u64 bpf_cookie; - /* function's offset to install kprobe to */ - size_t offset; - /* kprobe is return probe */ - bool retprobe; - size_t :0; -}; -#define bpf_kprobe_opts__last_field retprobe - -LIBBPF_API struct bpf_link * -bpf_program__attach_kprobe(const struct bpf_program *prog, bool retprobe, - const char *func_name); -LIBBPF_API struct bpf_link * -bpf_program__attach_kprobe_opts(const struct bpf_program *prog, - const char *func_name, - const struct bpf_kprobe_opts *opts); - -struct bpf_kprobe_multi_opts { - /* size of this struct, for forward/backward compatibility */ - size_t sz; - /* array of function symbols to attach */ - const char **syms; - /* array of function addresses to attach */ - const unsigned long *addrs; - /* array of user-provided values fetchable through bpf_get_attach_cookie */ - const __u64 *cookies; - /* number of elements in syms/addrs/cookies arrays */ - size_t cnt; - /* create return kprobes */ - bool retprobe; - size_t :0; -}; - -#define bpf_kprobe_multi_opts__last_field retprobe - -LIBBPF_API struct bpf_link * -bpf_program__attach_kprobe_multi_opts(const struct bpf_program *prog, - const char *pattern, - const struct bpf_kprobe_multi_opts *opts); - -struct bpf_uprobe_opts { - /* size of this struct, for forward/backward compatiblity */ - size_t sz; - /* offset of kernel reference counted USDT semaphore, added in - * a6ca88b241d5 ("trace_uprobe: support reference counter in fd-based uprobe") - */ - size_t ref_ctr_offset; - /* custom user-provided value fetchable through bpf_get_attach_cookie() */ - __u64 bpf_cookie; - /* uprobe is return probe, invoked at function return time */ - bool retprobe; - /* Function name to attach to. Could be an unqualified ("abc") or library-qualified - * "abc@LIBXYZ" name. To specify function entry, func_name should be set while - * func_offset argument to bpf_prog__attach_uprobe_opts() should be 0. To trace an - * offset within a function, specify func_name and use func_offset argument to specify - * offset within the function. Shared library functions must specify the shared library - * binary_path. - */ - const char *func_name; - size_t :0; -}; -#define bpf_uprobe_opts__last_field func_name - -/** - * @brief **bpf_program__attach_uprobe()** attaches a BPF program - * to the userspace function which is found by binary path and - * offset. You can optionally specify a particular proccess to attach - * to. You can also optionally attach the program to the function - * exit instead of entry. - * - * @param prog BPF program to attach - * @param retprobe Attach to function exit - * @param pid Process ID to attach the uprobe to, 0 for self (own process), - * -1 for all processes - * @param binary_path Path to binary that contains the function symbol - * @param func_offset Offset within the binary of the function symbol - * @return Reference to the newly created BPF link; or NULL is returned on error, - * error code is stored in errno - */ -LIBBPF_API struct bpf_link * -bpf_program__attach_uprobe(const struct bpf_program *prog, bool retprobe, - pid_t pid, const char *binary_path, - size_t func_offset); - -/** - * @brief **bpf_program__attach_uprobe_opts()** is just like - * bpf_program__attach_uprobe() except with a options struct - * for various configurations. - * - * @param prog BPF program to attach - * @param pid Process ID to attach the uprobe to, 0 for self (own process), - * -1 for all processes - * @param binary_path Path to binary that contains the function symbol - * @param func_offset Offset within the binary of the function symbol - * @param opts Options for altering program attachment - * @return Reference to the newly created BPF link; or NULL is returned on error, - * error code is stored in errno - */ -LIBBPF_API struct bpf_link * -bpf_program__attach_uprobe_opts(const struct bpf_program *prog, pid_t pid, - const char *binary_path, size_t func_offset, - const struct bpf_uprobe_opts *opts); - -struct bpf_usdt_opts { - /* size of this struct, for forward/backward compatibility */ - size_t sz; - /* custom user-provided value accessible through usdt_cookie() */ - __u64 usdt_cookie; - size_t :0; -}; -#define bpf_usdt_opts__last_field usdt_cookie - -/** - * @brief **bpf_program__attach_usdt()** is just like - * bpf_program__attach_uprobe_opts() except it covers USDT (User-space - * Statically Defined Tracepoint) attachment, instead of attaching to - * user-space function entry or exit. - * - * @param prog BPF program to attach - * @param pid Process ID to attach the uprobe to, 0 for self (own process), - * -1 for all processes - * @param binary_path Path to binary that contains provided USDT probe - * @param usdt_provider USDT provider name - * @param usdt_name USDT probe name - * @param opts Options for altering program attachment - * @return Reference to the newly created BPF link; or NULL is returned on error, - * error code is stored in errno - */ -LIBBPF_API struct bpf_link * -bpf_program__attach_usdt(const struct bpf_program *prog, - pid_t pid, const char *binary_path, - const char *usdt_provider, const char *usdt_name, - const struct bpf_usdt_opts *opts); - -struct bpf_tracepoint_opts { - /* size of this struct, for forward/backward compatiblity */ - size_t sz; - /* custom user-provided value fetchable through bpf_get_attach_cookie() */ - __u64 bpf_cookie; -}; -#define bpf_tracepoint_opts__last_field bpf_cookie - -LIBBPF_API struct bpf_link * -bpf_program__attach_tracepoint(const struct bpf_program *prog, - const char *tp_category, - const char *tp_name); -LIBBPF_API struct bpf_link * -bpf_program__attach_tracepoint_opts(const struct bpf_program *prog, - const char *tp_category, - const char *tp_name, - const struct bpf_tracepoint_opts *opts); - -LIBBPF_API struct bpf_link * -bpf_program__attach_raw_tracepoint(const struct bpf_program *prog, - const char *tp_name); - -struct bpf_trace_opts { - /* size of this struct, for forward/backward compatibility */ - size_t sz; - /* custom user-provided value fetchable through bpf_get_attach_cookie() */ - __u64 cookie; -}; -#define bpf_trace_opts__last_field cookie - -LIBBPF_API struct bpf_link * -bpf_program__attach_trace(const struct bpf_program *prog); -LIBBPF_API struct bpf_link * -bpf_program__attach_trace_opts(const struct bpf_program *prog, const struct bpf_trace_opts *opts); - -LIBBPF_API struct bpf_link * -bpf_program__attach_lsm(const struct bpf_program *prog); -LIBBPF_API struct bpf_link * -bpf_program__attach_cgroup(const struct bpf_program *prog, int cgroup_fd); -LIBBPF_API struct bpf_link * -bpf_program__attach_netns(const struct bpf_program *prog, int netns_fd); -LIBBPF_API struct bpf_link * -bpf_program__attach_xdp(const struct bpf_program *prog, int ifindex); -LIBBPF_API struct bpf_link * -bpf_program__attach_freplace(const struct bpf_program *prog, - int target_fd, const char *attach_func_name); - -struct bpf_map; - -LIBBPF_API struct bpf_link *bpf_map__attach_struct_ops(const struct bpf_map *map); - -struct bpf_iter_attach_opts { - size_t sz; /* size of this struct for forward/backward compatibility */ - union bpf_iter_link_info *link_info; - __u32 link_info_len; -}; -#define bpf_iter_attach_opts__last_field link_info_len - -LIBBPF_API struct bpf_link * -bpf_program__attach_iter(const struct bpf_program *prog, - const struct bpf_iter_attach_opts *opts); - -/* - * Libbpf allows callers to adjust BPF programs before being loaded - * into kernel. One program in an object file can be transformed into - * multiple variants to be attached to different hooks. - * - * bpf_program_prep_t, bpf_program__set_prep and bpf_program__nth_fd - * form an API for this purpose. - * - * - bpf_program_prep_t: - * Defines a 'preprocessor', which is a caller defined function - * passed to libbpf through bpf_program__set_prep(), and will be - * called before program is loaded. The processor should adjust - * the program one time for each instance according to the instance id - * passed to it. - * - * - bpf_program__set_prep: - * Attaches a preprocessor to a BPF program. The number of instances - * that should be created is also passed through this function. - * - * - bpf_program__nth_fd: - * After the program is loaded, get resulting FD of a given instance - * of the BPF program. - * - * If bpf_program__set_prep() is not used, the program would be loaded - * without adjustment during bpf_object__load(). The program has only - * one instance. In this case bpf_program__fd(prog) is equal to - * bpf_program__nth_fd(prog, 0). - */ -struct bpf_prog_prep_result { - /* - * If not NULL, load new instruction array. - * If set to NULL, don't load this instance. - */ - struct bpf_insn *new_insn_ptr; - int new_insn_cnt; - - /* If not NULL, result FD is written to it. */ - int *pfd; -}; - -/* - * Parameters of bpf_program_prep_t: - * - prog: The bpf_program being loaded. - * - n: Index of instance being generated. - * - insns: BPF instructions array. - * - insns_cnt:Number of instructions in insns. - * - res: Output parameter, result of transformation. - * - * Return value: - * - Zero: pre-processing success. - * - Non-zero: pre-processing error, stop loading. - */ -typedef int (*bpf_program_prep_t)(struct bpf_program *prog, int n, - struct bpf_insn *insns, int insns_cnt, - struct bpf_prog_prep_result *res); - -LIBBPF_DEPRECATED_SINCE(0, 7, "use bpf_program__insns() for getting bpf_program instructions") -LIBBPF_API int bpf_program__set_prep(struct bpf_program *prog, int nr_instance, - bpf_program_prep_t prep); - -LIBBPF_DEPRECATED_SINCE(0, 7, "multi-instance bpf_program support is deprecated") -LIBBPF_API int bpf_program__nth_fd(const struct bpf_program *prog, int n); - -/* - * Adjust type of BPF program. Default is kprobe. - */ -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__set_type() instead") -LIBBPF_API int bpf_program__set_socket_filter(struct bpf_program *prog); -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__set_type() instead") -LIBBPF_API int bpf_program__set_tracepoint(struct bpf_program *prog); -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__set_type() instead") -LIBBPF_API int bpf_program__set_raw_tracepoint(struct bpf_program *prog); -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__set_type() instead") -LIBBPF_API int bpf_program__set_kprobe(struct bpf_program *prog); -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__set_type() instead") -LIBBPF_API int bpf_program__set_lsm(struct bpf_program *prog); -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__set_type() instead") -LIBBPF_API int bpf_program__set_sched_cls(struct bpf_program *prog); -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__set_type() instead") -LIBBPF_API int bpf_program__set_sched_act(struct bpf_program *prog); -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__set_type() instead") -LIBBPF_API int bpf_program__set_xdp(struct bpf_program *prog); -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__set_type() instead") -LIBBPF_API int bpf_program__set_perf_event(struct bpf_program *prog); -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__set_type() instead") -LIBBPF_API int bpf_program__set_tracing(struct bpf_program *prog); -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__set_type() instead") -LIBBPF_API int bpf_program__set_struct_ops(struct bpf_program *prog); -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__set_type() instead") -LIBBPF_API int bpf_program__set_extension(struct bpf_program *prog); -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__set_type() instead") -LIBBPF_API int bpf_program__set_sk_lookup(struct bpf_program *prog); - -LIBBPF_API enum bpf_prog_type bpf_program__type(const struct bpf_program *prog); - -/** - * @brief **bpf_program__set_type()** sets the program - * type of the passed BPF program. - * @param prog BPF program to set the program type for - * @param type program type to set the BPF map to have - * @return error code; or 0 if no error. An error occurs - * if the object is already loaded. - * - * This must be called before the BPF object is loaded, - * otherwise it has no effect and an error is returned. - */ -LIBBPF_API int bpf_program__set_type(struct bpf_program *prog, - enum bpf_prog_type type); - -LIBBPF_API enum bpf_attach_type -bpf_program__expected_attach_type(const struct bpf_program *prog); - -/** - * @brief **bpf_program__set_expected_attach_type()** sets the - * attach type of the passed BPF program. This is used for - * auto-detection of attachment when programs are loaded. - * @param prog BPF program to set the attach type for - * @param type attach type to set the BPF map to have - * @return error code; or 0 if no error. An error occurs - * if the object is already loaded. - * - * This must be called before the BPF object is loaded, - * otherwise it has no effect and an error is returned. - */ -LIBBPF_API int -bpf_program__set_expected_attach_type(struct bpf_program *prog, - enum bpf_attach_type type); - -LIBBPF_API __u32 bpf_program__flags(const struct bpf_program *prog); -LIBBPF_API int bpf_program__set_flags(struct bpf_program *prog, __u32 flags); - -/* Per-program log level and log buffer getters/setters. - * See bpf_object_open_opts comments regarding log_level and log_buf - * interactions. - */ -LIBBPF_API __u32 bpf_program__log_level(const struct bpf_program *prog); -LIBBPF_API int bpf_program__set_log_level(struct bpf_program *prog, __u32 log_level); -LIBBPF_API const char *bpf_program__log_buf(const struct bpf_program *prog, size_t *log_size); -LIBBPF_API int bpf_program__set_log_buf(struct bpf_program *prog, char *log_buf, size_t log_size); - -/** - * @brief **bpf_program__set_attach_target()** sets BTF-based attach target - * for supported BPF program types: - * - BTF-aware raw tracepoints (tp_btf); - * - fentry/fexit/fmod_ret; - * - lsm; - * - freplace. - * @param prog BPF program to set the attach type for - * @param type attach type to set the BPF map to have - * @return error code; or 0 if no error occurred. - */ -LIBBPF_API int -bpf_program__set_attach_target(struct bpf_program *prog, int attach_prog_fd, - const char *attach_func_name); - -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__type() instead") -LIBBPF_API bool bpf_program__is_socket_filter(const struct bpf_program *prog); -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__type() instead") -LIBBPF_API bool bpf_program__is_tracepoint(const struct bpf_program *prog); -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__type() instead") -LIBBPF_API bool bpf_program__is_raw_tracepoint(const struct bpf_program *prog); -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__type() instead") -LIBBPF_API bool bpf_program__is_kprobe(const struct bpf_program *prog); -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__type() instead") -LIBBPF_API bool bpf_program__is_lsm(const struct bpf_program *prog); -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__type() instead") -LIBBPF_API bool bpf_program__is_sched_cls(const struct bpf_program *prog); -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__type() instead") -LIBBPF_API bool bpf_program__is_sched_act(const struct bpf_program *prog); -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__type() instead") -LIBBPF_API bool bpf_program__is_xdp(const struct bpf_program *prog); -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__type() instead") -LIBBPF_API bool bpf_program__is_perf_event(const struct bpf_program *prog); -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__type() instead") -LIBBPF_API bool bpf_program__is_tracing(const struct bpf_program *prog); -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__type() instead") -LIBBPF_API bool bpf_program__is_struct_ops(const struct bpf_program *prog); -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__type() instead") -LIBBPF_API bool bpf_program__is_extension(const struct bpf_program *prog); -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__type() instead") -LIBBPF_API bool bpf_program__is_sk_lookup(const struct bpf_program *prog); - -/* - * No need for __attribute__((packed)), all members of 'bpf_map_def' - * are all aligned. In addition, using __attribute__((packed)) - * would trigger a -Wpacked warning message, and lead to an error - * if -Werror is set. - */ -struct bpf_map_def { - unsigned int type; - unsigned int key_size; - unsigned int value_size; - unsigned int max_entries; - unsigned int map_flags; -}; - -/** - * @brief **bpf_object__find_map_by_name()** returns BPF map of - * the given name, if it exists within the passed BPF object - * @param obj BPF object - * @param name name of the BPF map - * @return BPF map instance, if such map exists within the BPF object; - * or NULL otherwise. - */ -LIBBPF_API struct bpf_map * -bpf_object__find_map_by_name(const struct bpf_object *obj, const char *name); - -LIBBPF_API int -bpf_object__find_map_fd_by_name(const struct bpf_object *obj, const char *name); - -/* - * Get bpf_map through the offset of corresponding struct bpf_map_def - * in the BPF object file. - */ -LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_object__find_map_by_name() instead") -struct bpf_map * -bpf_object__find_map_by_offset(struct bpf_object *obj, size_t offset); - -LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 7, "use bpf_object__next_map() instead") -struct bpf_map *bpf_map__next(const struct bpf_map *map, const struct bpf_object *obj); -LIBBPF_API struct bpf_map * -bpf_object__next_map(const struct bpf_object *obj, const struct bpf_map *map); - -#define bpf_object__for_each_map(pos, obj) \ - for ((pos) = bpf_object__next_map((obj), NULL); \ - (pos) != NULL; \ - (pos) = bpf_object__next_map((obj), (pos))) -#define bpf_map__for_each bpf_object__for_each_map - -LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 7, "use bpf_object__prev_map() instead") -struct bpf_map *bpf_map__prev(const struct bpf_map *map, const struct bpf_object *obj); -LIBBPF_API struct bpf_map * -bpf_object__prev_map(const struct bpf_object *obj, const struct bpf_map *map); - -/** - * @brief **bpf_map__set_autocreate()** sets whether libbpf has to auto-create - * BPF map during BPF object load phase. - * @param map the BPF map instance - * @param autocreate whether to create BPF map during BPF object load - * @return 0 on success; -EBUSY if BPF object was already loaded - * - * **bpf_map__set_autocreate()** allows to opt-out from libbpf auto-creating - * BPF map. By default, libbpf will attempt to create every single BPF map - * defined in BPF object file using BPF_MAP_CREATE command of bpf() syscall - * and fill in map FD in BPF instructions. - * - * This API allows to opt-out of this process for specific map instance. This - * can be useful if host kernel doesn't support such BPF map type or used - * combination of flags and user application wants to avoid creating such - * a map in the first place. User is still responsible to make sure that their - * BPF-side code that expects to use such missing BPF map is recognized by BPF - * verifier as dead code, otherwise BPF verifier will reject such BPF program. - */ -LIBBPF_API int bpf_map__set_autocreate(struct bpf_map *map, bool autocreate); -LIBBPF_API bool bpf_map__autocreate(const struct bpf_map *map); - -/** - * @brief **bpf_map__fd()** gets the file descriptor of the passed - * BPF map - * @param map the BPF map instance - * @return the file descriptor; or -EINVAL in case of an error - */ -LIBBPF_API int bpf_map__fd(const struct bpf_map *map); -LIBBPF_API int bpf_map__reuse_fd(struct bpf_map *map, int fd); -/* get map definition */ -LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 8, "use appropriate getters or setters instead") -const struct bpf_map_def *bpf_map__def(const struct bpf_map *map); -/* get map name */ -LIBBPF_API const char *bpf_map__name(const struct bpf_map *map); -/* get/set map type */ -LIBBPF_API enum bpf_map_type bpf_map__type(const struct bpf_map *map); -LIBBPF_API int bpf_map__set_type(struct bpf_map *map, enum bpf_map_type type); -/* get/set map size (max_entries) */ -LIBBPF_API __u32 bpf_map__max_entries(const struct bpf_map *map); -LIBBPF_API int bpf_map__set_max_entries(struct bpf_map *map, __u32 max_entries); -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_map__set_max_entries() instead") -LIBBPF_API int bpf_map__resize(struct bpf_map *map, __u32 max_entries); -/* get/set map flags */ -LIBBPF_API __u32 bpf_map__map_flags(const struct bpf_map *map); -LIBBPF_API int bpf_map__set_map_flags(struct bpf_map *map, __u32 flags); -/* get/set map NUMA node */ -LIBBPF_API __u32 bpf_map__numa_node(const struct bpf_map *map); -LIBBPF_API int bpf_map__set_numa_node(struct bpf_map *map, __u32 numa_node); -/* get/set map key size */ -LIBBPF_API __u32 bpf_map__key_size(const struct bpf_map *map); -LIBBPF_API int bpf_map__set_key_size(struct bpf_map *map, __u32 size); -/* get/set map value size */ -LIBBPF_API __u32 bpf_map__value_size(const struct bpf_map *map); -LIBBPF_API int bpf_map__set_value_size(struct bpf_map *map, __u32 size); -/* get map key/value BTF type IDs */ -LIBBPF_API __u32 bpf_map__btf_key_type_id(const struct bpf_map *map); -LIBBPF_API __u32 bpf_map__btf_value_type_id(const struct bpf_map *map); -/* get/set map if_index */ -LIBBPF_API __u32 bpf_map__ifindex(const struct bpf_map *map); -LIBBPF_API int bpf_map__set_ifindex(struct bpf_map *map, __u32 ifindex); -/* get/set map map_extra flags */ -LIBBPF_API __u64 bpf_map__map_extra(const struct bpf_map *map); -LIBBPF_API int bpf_map__set_map_extra(struct bpf_map *map, __u64 map_extra); - -typedef void (*bpf_map_clear_priv_t)(struct bpf_map *, void *); -LIBBPF_DEPRECATED_SINCE(0, 7, "storage via set_priv/priv is deprecated") -LIBBPF_API int bpf_map__set_priv(struct bpf_map *map, void *priv, - bpf_map_clear_priv_t clear_priv); -LIBBPF_DEPRECATED_SINCE(0, 7, "storage via set_priv/priv is deprecated") -LIBBPF_API void *bpf_map__priv(const struct bpf_map *map); -LIBBPF_API int bpf_map__set_initial_value(struct bpf_map *map, - const void *data, size_t size); -LIBBPF_API const void *bpf_map__initial_value(struct bpf_map *map, size_t *psize); -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_map__type() instead") -LIBBPF_API bool bpf_map__is_offload_neutral(const struct bpf_map *map); - -/** - * @brief **bpf_map__is_internal()** tells the caller whether or not the - * passed map is a special map created by libbpf automatically for things like - * global variables, __ksym externs, Kconfig values, etc - * @param map the bpf_map - * @return true, if the map is an internal map; false, otherwise - */ -LIBBPF_API bool bpf_map__is_internal(const struct bpf_map *map); -LIBBPF_API int bpf_map__set_pin_path(struct bpf_map *map, const char *path); -LIBBPF_API const char *bpf_map__pin_path(const struct bpf_map *map); -LIBBPF_API bool bpf_map__is_pinned(const struct bpf_map *map); -LIBBPF_API int bpf_map__pin(struct bpf_map *map, const char *path); -LIBBPF_API int bpf_map__unpin(struct bpf_map *map, const char *path); - -LIBBPF_API int bpf_map__set_inner_map_fd(struct bpf_map *map, int fd); -LIBBPF_API struct bpf_map *bpf_map__inner_map(struct bpf_map *map); - -/** - * @brief **bpf_map__lookup_elem()** allows to lookup BPF map value - * corresponding to provided key. - * @param map BPF map to lookup element in - * @param key pointer to memory containing bytes of the key used for lookup - * @param key_sz size in bytes of key data, needs to match BPF map definition's **key_size** - * @param value pointer to memory in which looked up value will be stored - * @param value_sz size in byte of value data memory; it has to match BPF map - * definition's **value_size**. For per-CPU BPF maps value size has to be - * a product of BPF map value size and number of possible CPUs in the system - * (could be fetched with **libbpf_num_possible_cpus()**). Note also that for - * per-CPU values value size has to be aligned up to closest 8 bytes for - * alignment reasons, so expected size is: `round_up(value_size, 8) - * * libbpf_num_possible_cpus()`. - * @flags extra flags passed to kernel for this operation - * @return 0, on success; negative error, otherwise - * - * **bpf_map__lookup_elem()** is high-level equivalent of - * **bpf_map_lookup_elem()** API with added check for key and value size. - */ -LIBBPF_API int bpf_map__lookup_elem(const struct bpf_map *map, - const void *key, size_t key_sz, - void *value, size_t value_sz, __u64 flags); - -/** - * @brief **bpf_map__update_elem()** allows to insert or update value in BPF - * map that corresponds to provided key. - * @param map BPF map to insert to or update element in - * @param key pointer to memory containing bytes of the key - * @param key_sz size in bytes of key data, needs to match BPF map definition's **key_size** - * @param value pointer to memory containing bytes of the value - * @param value_sz size in byte of value data memory; it has to match BPF map - * definition's **value_size**. For per-CPU BPF maps value size has to be - * a product of BPF map value size and number of possible CPUs in the system - * (could be fetched with **libbpf_num_possible_cpus()**). Note also that for - * per-CPU values value size has to be aligned up to closest 8 bytes for - * alignment reasons, so expected size is: `round_up(value_size, 8) - * * libbpf_num_possible_cpus()`. - * @flags extra flags passed to kernel for this operation - * @return 0, on success; negative error, otherwise - * - * **bpf_map__update_elem()** is high-level equivalent of - * **bpf_map_update_elem()** API with added check for key and value size. - */ -LIBBPF_API int bpf_map__update_elem(const struct bpf_map *map, - const void *key, size_t key_sz, - const void *value, size_t value_sz, __u64 flags); - -/** - * @brief **bpf_map__delete_elem()** allows to delete element in BPF map that - * corresponds to provided key. - * @param map BPF map to delete element from - * @param key pointer to memory containing bytes of the key - * @param key_sz size in bytes of key data, needs to match BPF map definition's **key_size** - * @flags extra flags passed to kernel for this operation - * @return 0, on success; negative error, otherwise - * - * **bpf_map__delete_elem()** is high-level equivalent of - * **bpf_map_delete_elem()** API with added check for key size. - */ -LIBBPF_API int bpf_map__delete_elem(const struct bpf_map *map, - const void *key, size_t key_sz, __u64 flags); - -/** - * @brief **bpf_map__lookup_and_delete_elem()** allows to lookup BPF map value - * corresponding to provided key and atomically delete it afterwards. - * @param map BPF map to lookup element in - * @param key pointer to memory containing bytes of the key used for lookup - * @param key_sz size in bytes of key data, needs to match BPF map definition's **key_size** - * @param value pointer to memory in which looked up value will be stored - * @param value_sz size in byte of value data memory; it has to match BPF map - * definition's **value_size**. For per-CPU BPF maps value size has to be - * a product of BPF map value size and number of possible CPUs in the system - * (could be fetched with **libbpf_num_possible_cpus()**). Note also that for - * per-CPU values value size has to be aligned up to closest 8 bytes for - * alignment reasons, so expected size is: `round_up(value_size, 8) - * * libbpf_num_possible_cpus()`. - * @flags extra flags passed to kernel for this operation - * @return 0, on success; negative error, otherwise - * - * **bpf_map__lookup_and_delete_elem()** is high-level equivalent of - * **bpf_map_lookup_and_delete_elem()** API with added check for key and value size. - */ -LIBBPF_API int bpf_map__lookup_and_delete_elem(const struct bpf_map *map, - const void *key, size_t key_sz, - void *value, size_t value_sz, __u64 flags); - -/** - * @brief **bpf_map__get_next_key()** allows to iterate BPF map keys by - * fetching next key that follows current key. - * @param map BPF map to fetch next key from - * @param cur_key pointer to memory containing bytes of current key or NULL to - * fetch the first key - * @param next_key pointer to memory to write next key into - * @param key_sz size in bytes of key data, needs to match BPF map definition's **key_size** - * @return 0, on success; -ENOENT if **cur_key** is the last key in BPF map; - * negative error, otherwise - * - * **bpf_map__get_next_key()** is high-level equivalent of - * **bpf_map_get_next_key()** API with added check for key size. - */ -LIBBPF_API int bpf_map__get_next_key(const struct bpf_map *map, - const void *cur_key, void *next_key, size_t key_sz); - -/** - * @brief **libbpf_get_error()** extracts the error code from the passed - * pointer - * @param ptr pointer returned from libbpf API function - * @return error code; or 0 if no error occured - * - * Many libbpf API functions which return pointers have logic to encode error - * codes as pointers, and do not return NULL. Meaning **libbpf_get_error()** - * should be used on the return value from these functions immediately after - * calling the API function, with no intervening calls that could clobber the - * `errno` variable. Consult the individual functions documentation to verify - * if this logic applies should be used. - * - * For these API functions, if `libbpf_set_strict_mode(LIBBPF_STRICT_CLEAN_PTRS)` - * is enabled, NULL is returned on error instead. - * - * If ptr is NULL, then errno should be already set by the failing - * API, because libbpf never returns NULL on success and it now always - * sets errno on error. - * - * Example usage: - * - * struct perf_buffer *pb; - * - * pb = perf_buffer__new(bpf_map__fd(obj->maps.events), PERF_BUFFER_PAGES, &opts); - * err = libbpf_get_error(pb); - * if (err) { - * pb = NULL; - * fprintf(stderr, "failed to open perf buffer: %d\n", err); - * goto cleanup; - * } - */ -LIBBPF_API long libbpf_get_error(const void *ptr); - -struct bpf_prog_load_attr { - const char *file; - enum bpf_prog_type prog_type; - enum bpf_attach_type expected_attach_type; - int ifindex; - int log_level; - int prog_flags; -}; - -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_object__open() and bpf_object__load() instead") -LIBBPF_API int bpf_prog_load_xattr(const struct bpf_prog_load_attr *attr, - struct bpf_object **pobj, int *prog_fd); -LIBBPF_DEPRECATED_SINCE(0, 7, "use bpf_object__open() and bpf_object__load() instead") -LIBBPF_API int bpf_prog_load_deprecated(const char *file, enum bpf_prog_type type, - struct bpf_object **pobj, int *prog_fd); - -/* XDP related API */ -struct xdp_link_info { - __u32 prog_id; - __u32 drv_prog_id; - __u32 hw_prog_id; - __u32 skb_prog_id; - __u8 attach_mode; -}; - -struct bpf_xdp_set_link_opts { - size_t sz; - int old_fd; - size_t :0; -}; -#define bpf_xdp_set_link_opts__last_field old_fd - -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_xdp_attach() instead") -LIBBPF_API int bpf_set_link_xdp_fd(int ifindex, int fd, __u32 flags); -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_xdp_attach() instead") -LIBBPF_API int bpf_set_link_xdp_fd_opts(int ifindex, int fd, __u32 flags, - const struct bpf_xdp_set_link_opts *opts); -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_xdp_query_id() instead") -LIBBPF_API int bpf_get_link_xdp_id(int ifindex, __u32 *prog_id, __u32 flags); -LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_xdp_query() instead") -LIBBPF_API int bpf_get_link_xdp_info(int ifindex, struct xdp_link_info *info, - size_t info_size, __u32 flags); - -struct bpf_xdp_attach_opts { - size_t sz; - int old_prog_fd; - size_t :0; -}; -#define bpf_xdp_attach_opts__last_field old_prog_fd - -struct bpf_xdp_query_opts { - size_t sz; - __u32 prog_id; /* output */ - __u32 drv_prog_id; /* output */ - __u32 hw_prog_id; /* output */ - __u32 skb_prog_id; /* output */ - __u8 attach_mode; /* output */ - size_t :0; -}; -#define bpf_xdp_query_opts__last_field attach_mode - -LIBBPF_API int bpf_xdp_attach(int ifindex, int prog_fd, __u32 flags, - const struct bpf_xdp_attach_opts *opts); -LIBBPF_API int bpf_xdp_detach(int ifindex, __u32 flags, - const struct bpf_xdp_attach_opts *opts); -LIBBPF_API int bpf_xdp_query(int ifindex, int flags, struct bpf_xdp_query_opts *opts); -LIBBPF_API int bpf_xdp_query_id(int ifindex, int flags, __u32 *prog_id); - -/* TC related API */ -enum bpf_tc_attach_point { - BPF_TC_INGRESS = 1 << 0, - BPF_TC_EGRESS = 1 << 1, - BPF_TC_CUSTOM = 1 << 2, -}; - -#define BPF_TC_PARENT(a, b) \ - ((((a) << 16) & 0xFFFF0000U) | ((b) & 0x0000FFFFU)) - -enum bpf_tc_flags { - BPF_TC_F_REPLACE = 1 << 0, -}; - -struct bpf_tc_hook { - size_t sz; - int ifindex; - enum bpf_tc_attach_point attach_point; - __u32 parent; - size_t :0; -}; -#define bpf_tc_hook__last_field parent - -struct bpf_tc_opts { - size_t sz; - int prog_fd; - __u32 flags; - __u32 prog_id; - __u32 handle; - __u32 priority; - size_t :0; -}; -#define bpf_tc_opts__last_field priority - -LIBBPF_API int bpf_tc_hook_create(struct bpf_tc_hook *hook); -LIBBPF_API int bpf_tc_hook_destroy(struct bpf_tc_hook *hook); -LIBBPF_API int bpf_tc_attach(const struct bpf_tc_hook *hook, - struct bpf_tc_opts *opts); -LIBBPF_API int bpf_tc_detach(const struct bpf_tc_hook *hook, - const struct bpf_tc_opts *opts); -LIBBPF_API int bpf_tc_query(const struct bpf_tc_hook *hook, - struct bpf_tc_opts *opts); - -/* Ring buffer APIs */ -struct ring_buffer; - -typedef int (*ring_buffer_sample_fn)(void *ctx, void *data, size_t size); - -struct ring_buffer_opts { - size_t sz; /* size of this struct, for forward/backward compatiblity */ -}; - -#define ring_buffer_opts__last_field sz - -LIBBPF_API struct ring_buffer * -ring_buffer__new(int map_fd, ring_buffer_sample_fn sample_cb, void *ctx, - const struct ring_buffer_opts *opts); -LIBBPF_API void ring_buffer__free(struct ring_buffer *rb); -LIBBPF_API int ring_buffer__add(struct ring_buffer *rb, int map_fd, - ring_buffer_sample_fn sample_cb, void *ctx); -LIBBPF_API int ring_buffer__poll(struct ring_buffer *rb, int timeout_ms); -LIBBPF_API int ring_buffer__consume(struct ring_buffer *rb); -LIBBPF_API int ring_buffer__epoll_fd(const struct ring_buffer *rb); - -/* Perf buffer APIs */ -struct perf_buffer; - -typedef void (*perf_buffer_sample_fn)(void *ctx, int cpu, - void *data, __u32 size); -typedef void (*perf_buffer_lost_fn)(void *ctx, int cpu, __u64 cnt); - -/* common use perf buffer options */ -struct perf_buffer_opts { - union { - size_t sz; - struct { /* DEPRECATED: will be removed in v1.0 */ - /* if specified, sample_cb is called for each sample */ - perf_buffer_sample_fn sample_cb; - /* if specified, lost_cb is called for each batch of lost samples */ - perf_buffer_lost_fn lost_cb; - /* ctx is provided to sample_cb and lost_cb */ - void *ctx; - }; - }; -}; -#define perf_buffer_opts__last_field sz - -/** - * @brief **perf_buffer__new()** creates BPF perfbuf manager for a specified - * BPF_PERF_EVENT_ARRAY map - * @param map_fd FD of BPF_PERF_EVENT_ARRAY BPF map that will be used by BPF - * code to send data over to user-space - * @param page_cnt number of memory pages allocated for each per-CPU buffer - * @param sample_cb function called on each received data record - * @param lost_cb function called when record loss has occurred - * @param ctx user-provided extra context passed into *sample_cb* and *lost_cb* - * @return a new instance of struct perf_buffer on success, NULL on error with - * *errno* containing an error code - */ -LIBBPF_API struct perf_buffer * -perf_buffer__new(int map_fd, size_t page_cnt, - perf_buffer_sample_fn sample_cb, perf_buffer_lost_fn lost_cb, void *ctx, - const struct perf_buffer_opts *opts); - -LIBBPF_API struct perf_buffer * -perf_buffer__new_v0_6_0(int map_fd, size_t page_cnt, - perf_buffer_sample_fn sample_cb, perf_buffer_lost_fn lost_cb, void *ctx, - const struct perf_buffer_opts *opts); - -LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 7, "use new variant of perf_buffer__new() instead") -struct perf_buffer *perf_buffer__new_deprecated(int map_fd, size_t page_cnt, - const struct perf_buffer_opts *opts); - -#define perf_buffer__new(...) ___libbpf_overload(___perf_buffer_new, __VA_ARGS__) -#define ___perf_buffer_new6(map_fd, page_cnt, sample_cb, lost_cb, ctx, opts) \ - perf_buffer__new(map_fd, page_cnt, sample_cb, lost_cb, ctx, opts) -#define ___perf_buffer_new3(map_fd, page_cnt, opts) \ - perf_buffer__new_deprecated(map_fd, page_cnt, opts) - -enum bpf_perf_event_ret { - LIBBPF_PERF_EVENT_DONE = 0, - LIBBPF_PERF_EVENT_ERROR = -1, - LIBBPF_PERF_EVENT_CONT = -2, -}; - -struct perf_event_header; - -typedef enum bpf_perf_event_ret -(*perf_buffer_event_fn)(void *ctx, int cpu, struct perf_event_header *event); - -/* raw perf buffer options, giving most power and control */ -struct perf_buffer_raw_opts { - union { - struct { - size_t sz; - long :0; - long :0; - }; - struct { /* DEPRECATED: will be removed in v1.0 */ - /* perf event attrs passed directly into perf_event_open() */ - struct perf_event_attr *attr; - /* raw event callback */ - perf_buffer_event_fn event_cb; - /* ctx is provided to event_cb */ - void *ctx; - }; - }; - /* if cpu_cnt == 0, open all on all possible CPUs (up to the number of - * max_entries of given PERF_EVENT_ARRAY map) - */ - int cpu_cnt; - /* if cpu_cnt > 0, cpus is an array of CPUs to open ring buffers on */ - int *cpus; - /* if cpu_cnt > 0, map_keys specify map keys to set per-CPU FDs for */ - int *map_keys; -}; -#define perf_buffer_raw_opts__last_field map_keys - -LIBBPF_API struct perf_buffer * -perf_buffer__new_raw(int map_fd, size_t page_cnt, struct perf_event_attr *attr, - perf_buffer_event_fn event_cb, void *ctx, - const struct perf_buffer_raw_opts *opts); - -LIBBPF_API struct perf_buffer * -perf_buffer__new_raw_v0_6_0(int map_fd, size_t page_cnt, struct perf_event_attr *attr, - perf_buffer_event_fn event_cb, void *ctx, - const struct perf_buffer_raw_opts *opts); - -LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 7, "use new variant of perf_buffer__new_raw() instead") -struct perf_buffer *perf_buffer__new_raw_deprecated(int map_fd, size_t page_cnt, - const struct perf_buffer_raw_opts *opts); - -#define perf_buffer__new_raw(...) ___libbpf_overload(___perf_buffer_new_raw, __VA_ARGS__) -#define ___perf_buffer_new_raw6(map_fd, page_cnt, attr, event_cb, ctx, opts) \ - perf_buffer__new_raw(map_fd, page_cnt, attr, event_cb, ctx, opts) -#define ___perf_buffer_new_raw3(map_fd, page_cnt, opts) \ - perf_buffer__new_raw_deprecated(map_fd, page_cnt, opts) - -LIBBPF_API void perf_buffer__free(struct perf_buffer *pb); -LIBBPF_API int perf_buffer__epoll_fd(const struct perf_buffer *pb); -LIBBPF_API int perf_buffer__poll(struct perf_buffer *pb, int timeout_ms); -LIBBPF_API int perf_buffer__consume(struct perf_buffer *pb); -LIBBPF_API int perf_buffer__consume_buffer(struct perf_buffer *pb, size_t buf_idx); -LIBBPF_API size_t perf_buffer__buffer_cnt(const struct perf_buffer *pb); -LIBBPF_API int perf_buffer__buffer_fd(const struct perf_buffer *pb, size_t buf_idx); - -typedef enum bpf_perf_event_ret - (*bpf_perf_event_print_t)(struct perf_event_header *hdr, - void *private_data); -LIBBPF_DEPRECATED_SINCE(0, 8, "use perf_buffer__poll() or perf_buffer__consume() instead") -LIBBPF_API enum bpf_perf_event_ret -bpf_perf_event_read_simple(void *mmap_mem, size_t mmap_size, size_t page_size, - void **copy_mem, size_t *copy_size, - bpf_perf_event_print_t fn, void *private_data); - -struct bpf_prog_linfo; -struct bpf_prog_info; - -LIBBPF_API void bpf_prog_linfo__free(struct bpf_prog_linfo *prog_linfo); -LIBBPF_API struct bpf_prog_linfo * -bpf_prog_linfo__new(const struct bpf_prog_info *info); -LIBBPF_API const struct bpf_line_info * -bpf_prog_linfo__lfind_addr_func(const struct bpf_prog_linfo *prog_linfo, - __u64 addr, __u32 func_idx, __u32 nr_skip); -LIBBPF_API const struct bpf_line_info * -bpf_prog_linfo__lfind(const struct bpf_prog_linfo *prog_linfo, - __u32 insn_off, __u32 nr_skip); - -/* - * Probe for supported system features - * - * Note that running many of these probes in a short amount of time can cause - * the kernel to reach the maximal size of lockable memory allowed for the - * user, causing subsequent probes to fail. In this case, the caller may want - * to adjust that limit with setrlimit(). - */ -LIBBPF_DEPRECATED_SINCE(0, 8, "use libbpf_probe_bpf_prog_type() instead") -LIBBPF_API bool bpf_probe_prog_type(enum bpf_prog_type prog_type, __u32 ifindex); -LIBBPF_DEPRECATED_SINCE(0, 8, "use libbpf_probe_bpf_map_type() instead") -LIBBPF_API bool bpf_probe_map_type(enum bpf_map_type map_type, __u32 ifindex); -LIBBPF_DEPRECATED_SINCE(0, 8, "use libbpf_probe_bpf_helper() instead") -LIBBPF_API bool bpf_probe_helper(enum bpf_func_id id, enum bpf_prog_type prog_type, __u32 ifindex); -LIBBPF_DEPRECATED_SINCE(0, 8, "implement your own or use bpftool for feature detection") -LIBBPF_API bool bpf_probe_large_insn_limit(__u32 ifindex); - -/** - * @brief **libbpf_probe_bpf_prog_type()** detects if host kernel supports - * BPF programs of a given type. - * @param prog_type BPF program type to detect kernel support for - * @param opts reserved for future extensibility, should be NULL - * @return 1, if given program type is supported; 0, if given program type is - * not supported; negative error code if feature detection failed or can't be - * performed - * - * Make sure the process has required set of CAP_* permissions (or runs as - * root) when performing feature checking. - */ -LIBBPF_API int libbpf_probe_bpf_prog_type(enum bpf_prog_type prog_type, const void *opts); -/** - * @brief **libbpf_probe_bpf_map_type()** detects if host kernel supports - * BPF maps of a given type. - * @param map_type BPF map type to detect kernel support for - * @param opts reserved for future extensibility, should be NULL - * @return 1, if given map type is supported; 0, if given map type is - * not supported; negative error code if feature detection failed or can't be - * performed - * - * Make sure the process has required set of CAP_* permissions (or runs as - * root) when performing feature checking. - */ -LIBBPF_API int libbpf_probe_bpf_map_type(enum bpf_map_type map_type, const void *opts); -/** - * @brief **libbpf_probe_bpf_helper()** detects if host kernel supports the - * use of a given BPF helper from specified BPF program type. - * @param prog_type BPF program type used to check the support of BPF helper - * @param helper_id BPF helper ID (enum bpf_func_id) to check support for - * @param opts reserved for future extensibility, should be NULL - * @return 1, if given combination of program type and helper is supported; 0, - * if the combination is not supported; negative error code if feature - * detection for provided input arguments failed or can't be performed - * - * Make sure the process has required set of CAP_* permissions (or runs as - * root) when performing feature checking. - */ -LIBBPF_API int libbpf_probe_bpf_helper(enum bpf_prog_type prog_type, - enum bpf_func_id helper_id, const void *opts); - -/* - * Get bpf_prog_info in continuous memory - * - * struct bpf_prog_info has multiple arrays. The user has option to choose - * arrays to fetch from kernel. The following APIs provide an uniform way to - * fetch these data. All arrays in bpf_prog_info are stored in a single - * continuous memory region. This makes it easy to store the info in a - * file. - * - * Before writing bpf_prog_info_linear to files, it is necessary to - * translate pointers in bpf_prog_info to offsets. Helper functions - * bpf_program__bpil_addr_to_offs() and bpf_program__bpil_offs_to_addr() - * are introduced to switch between pointers and offsets. - * - * Examples: - * # To fetch map_ids and prog_tags: - * __u64 arrays = (1UL << BPF_PROG_INFO_MAP_IDS) | - * (1UL << BPF_PROG_INFO_PROG_TAGS); - * struct bpf_prog_info_linear *info_linear = - * bpf_program__get_prog_info_linear(fd, arrays); - * - * # To save data in file - * bpf_program__bpil_addr_to_offs(info_linear); - * write(f, info_linear, sizeof(*info_linear) + info_linear->data_len); - * - * # To read data from file - * read(f, info_linear, ); - * bpf_program__bpil_offs_to_addr(info_linear); - */ -enum bpf_prog_info_array { - BPF_PROG_INFO_FIRST_ARRAY = 0, - BPF_PROG_INFO_JITED_INSNS = 0, - BPF_PROG_INFO_XLATED_INSNS, - BPF_PROG_INFO_MAP_IDS, - BPF_PROG_INFO_JITED_KSYMS, - BPF_PROG_INFO_JITED_FUNC_LENS, - BPF_PROG_INFO_FUNC_INFO, - BPF_PROG_INFO_LINE_INFO, - BPF_PROG_INFO_JITED_LINE_INFO, - BPF_PROG_INFO_PROG_TAGS, - BPF_PROG_INFO_LAST_ARRAY, -}; - -struct bpf_prog_info_linear { - /* size of struct bpf_prog_info, when the tool is compiled */ - __u32 info_len; - /* total bytes allocated for data, round up to 8 bytes */ - __u32 data_len; - /* which arrays are included in data */ - __u64 arrays; - struct bpf_prog_info info; - __u8 data[]; -}; - -LIBBPF_DEPRECATED_SINCE(0, 6, "use a custom linear prog_info wrapper") -LIBBPF_API struct bpf_prog_info_linear * -bpf_program__get_prog_info_linear(int fd, __u64 arrays); - -LIBBPF_DEPRECATED_SINCE(0, 6, "use a custom linear prog_info wrapper") -LIBBPF_API void -bpf_program__bpil_addr_to_offs(struct bpf_prog_info_linear *info_linear); - -LIBBPF_DEPRECATED_SINCE(0, 6, "use a custom linear prog_info wrapper") -LIBBPF_API void -bpf_program__bpil_offs_to_addr(struct bpf_prog_info_linear *info_linear); - -/** - * @brief **libbpf_num_possible_cpus()** is a helper function to get the - * number of possible CPUs that the host kernel supports and expects. - * @return number of possible CPUs; or error code on failure - * - * Example usage: - * - * int ncpus = libbpf_num_possible_cpus(); - * if (ncpus < 0) { - * // error handling - * } - * long values[ncpus]; - * bpf_map_lookup_elem(per_cpu_map_fd, key, values); - */ -LIBBPF_API int libbpf_num_possible_cpus(void); - -struct bpf_map_skeleton { - const char *name; - struct bpf_map **map; - void **mmaped; -}; - -struct bpf_prog_skeleton { - const char *name; - struct bpf_program **prog; - struct bpf_link **link; -}; - -struct bpf_object_skeleton { - size_t sz; /* size of this struct, for forward/backward compatibility */ - - const char *name; - const void *data; - size_t data_sz; - - struct bpf_object **obj; - - int map_cnt; - int map_skel_sz; /* sizeof(struct bpf_map_skeleton) */ - struct bpf_map_skeleton *maps; - - int prog_cnt; - int prog_skel_sz; /* sizeof(struct bpf_prog_skeleton) */ - struct bpf_prog_skeleton *progs; -}; - -LIBBPF_API int -bpf_object__open_skeleton(struct bpf_object_skeleton *s, - const struct bpf_object_open_opts *opts); -LIBBPF_API int bpf_object__load_skeleton(struct bpf_object_skeleton *s); -LIBBPF_API int bpf_object__attach_skeleton(struct bpf_object_skeleton *s); -LIBBPF_API void bpf_object__detach_skeleton(struct bpf_object_skeleton *s); -LIBBPF_API void bpf_object__destroy_skeleton(struct bpf_object_skeleton *s); - -struct bpf_var_skeleton { - const char *name; - struct bpf_map **map; - void **addr; -}; - -struct bpf_object_subskeleton { - size_t sz; /* size of this struct, for forward/backward compatibility */ - - const struct bpf_object *obj; - - int map_cnt; - int map_skel_sz; /* sizeof(struct bpf_map_skeleton) */ - struct bpf_map_skeleton *maps; - - int prog_cnt; - int prog_skel_sz; /* sizeof(struct bpf_prog_skeleton) */ - struct bpf_prog_skeleton *progs; - - int var_cnt; - int var_skel_sz; /* sizeof(struct bpf_var_skeleton) */ - struct bpf_var_skeleton *vars; -}; - -LIBBPF_API int -bpf_object__open_subskeleton(struct bpf_object_subskeleton *s); -LIBBPF_API void -bpf_object__destroy_subskeleton(struct bpf_object_subskeleton *s); - -struct gen_loader_opts { - size_t sz; /* size of this struct, for forward/backward compatiblity */ - const char *data; - const char *insns; - __u32 data_sz; - __u32 insns_sz; -}; - -#define gen_loader_opts__last_field insns_sz -LIBBPF_API int bpf_object__gen_loader(struct bpf_object *obj, - struct gen_loader_opts *opts); - -enum libbpf_tristate { - TRI_NO = 0, - TRI_YES = 1, - TRI_MODULE = 2, -}; - -struct bpf_linker_opts { - /* size of this struct, for forward/backward compatiblity */ - size_t sz; -}; -#define bpf_linker_opts__last_field sz - -struct bpf_linker_file_opts { - /* size of this struct, for forward/backward compatiblity */ - size_t sz; -}; -#define bpf_linker_file_opts__last_field sz - -struct bpf_linker; - -LIBBPF_API struct bpf_linker *bpf_linker__new(const char *filename, struct bpf_linker_opts *opts); -LIBBPF_API int bpf_linker__add_file(struct bpf_linker *linker, - const char *filename, - const struct bpf_linker_file_opts *opts); -LIBBPF_API int bpf_linker__finalize(struct bpf_linker *linker); -LIBBPF_API void bpf_linker__free(struct bpf_linker *linker); - -/* - * Custom handling of BPF program's SEC() definitions - */ - -struct bpf_prog_load_opts; /* defined in bpf.h */ - -/* Called during bpf_object__open() for each recognized BPF program. Callback - * can use various bpf_program__set_*() setters to adjust whatever properties - * are necessary. - */ -typedef int (*libbpf_prog_setup_fn_t)(struct bpf_program *prog, long cookie); - -/* Called right before libbpf performs bpf_prog_load() to load BPF program - * into the kernel. Callback can adjust opts as necessary. - */ -typedef int (*libbpf_prog_prepare_load_fn_t)(struct bpf_program *prog, - struct bpf_prog_load_opts *opts, long cookie); - -/* Called during skeleton attach or through bpf_program__attach(). If - * auto-attach is not supported, callback should return 0 and set link to - * NULL (it's not considered an error during skeleton attach, but it will be - * an error for bpf_program__attach() calls). On error, error should be - * returned directly and link set to NULL. On success, return 0 and set link - * to a valid struct bpf_link. - */ -typedef int (*libbpf_prog_attach_fn_t)(const struct bpf_program *prog, long cookie, - struct bpf_link **link); - -struct libbpf_prog_handler_opts { - /* size of this struct, for forward/backward compatiblity */ - size_t sz; - /* User-provided value that is passed to prog_setup_fn, - * prog_prepare_load_fn, and prog_attach_fn callbacks. Allows user to - * register one set of callbacks for multiple SEC() definitions and - * still be able to distinguish them, if necessary. For example, - * libbpf itself is using this to pass necessary flags (e.g., - * sleepable flag) to a common internal SEC() handler. - */ - long cookie; - /* BPF program initialization callback (see libbpf_prog_setup_fn_t). - * Callback is optional, pass NULL if it's not necessary. - */ - libbpf_prog_setup_fn_t prog_setup_fn; - /* BPF program loading callback (see libbpf_prog_prepare_load_fn_t). - * Callback is optional, pass NULL if it's not necessary. - */ - libbpf_prog_prepare_load_fn_t prog_prepare_load_fn; - /* BPF program attach callback (see libbpf_prog_attach_fn_t). - * Callback is optional, pass NULL if it's not necessary. - */ - libbpf_prog_attach_fn_t prog_attach_fn; -}; -#define libbpf_prog_handler_opts__last_field prog_attach_fn - -/** - * @brief **libbpf_register_prog_handler()** registers a custom BPF program - * SEC() handler. - * @param sec section prefix for which custom handler is registered - * @param prog_type BPF program type associated with specified section - * @param exp_attach_type Expected BPF attach type associated with specified section - * @param opts optional cookie, callbacks, and other extra options - * @return Non-negative handler ID is returned on success. This handler ID has - * to be passed to *libbpf_unregister_prog_handler()* to unregister such - * custom handler. Negative error code is returned on error. - * - * *sec* defines which SEC() definitions are handled by this custom handler - * registration. *sec* can have few different forms: - * - if *sec* is just a plain string (e.g., "abc"), it will match only - * SEC("abc"). If BPF program specifies SEC("abc/whatever") it will result - * in an error; - * - if *sec* is of the form "abc/", proper SEC() form is - * SEC("abc/something"), where acceptable "something" should be checked by - * *prog_init_fn* callback, if there are additional restrictions; - * - if *sec* is of the form "abc+", it will successfully match both - * SEC("abc") and SEC("abc/whatever") forms; - * - if *sec* is NULL, custom handler is registered for any BPF program that - * doesn't match any of the registered (custom or libbpf's own) SEC() - * handlers. There could be only one such generic custom handler registered - * at any given time. - * - * All custom handlers (except the one with *sec* == NULL) are processed - * before libbpf's own SEC() handlers. It is allowed to "override" libbpf's - * SEC() handlers by registering custom ones for the same section prefix - * (i.e., it's possible to have custom SEC("perf_event/LLC-load-misses") - * handler). - * - * Note, like much of global libbpf APIs (e.g., libbpf_set_print(), - * libbpf_set_strict_mode(), etc)) these APIs are not thread-safe. User needs - * to ensure synchronization if there is a risk of running this API from - * multiple threads simultaneously. - */ -LIBBPF_API int libbpf_register_prog_handler(const char *sec, - enum bpf_prog_type prog_type, - enum bpf_attach_type exp_attach_type, - const struct libbpf_prog_handler_opts *opts); -/** - * @brief *libbpf_unregister_prog_handler()* unregisters previously registered - * custom BPF program SEC() handler. - * @param handler_id handler ID returned by *libbpf_register_prog_handler()* - * after successful registration - * @return 0 on success, negative error code if handler isn't found - * - * Note, like much of global libbpf APIs (e.g., libbpf_set_print(), - * libbpf_set_strict_mode(), etc)) these APIs are not thread-safe. User needs - * to ensure synchronization if there is a risk of running this API from - * multiple threads simultaneously. - */ -LIBBPF_API int libbpf_unregister_prog_handler(int handler_id); - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /* __LIBBPF_LIBBPF_H */ diff --git a/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/libbpf_common.h b/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/libbpf_common.h deleted file mode 100644 index 000e3779..00000000 --- a/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/libbpf_common.h +++ /dev/null @@ -1,83 +0,0 @@ -/* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */ - -/* - * Common user-facing libbpf helpers. - * - * Copyright (c) 2019 Facebook - */ - -#ifndef __LIBBPF_LIBBPF_COMMON_H -#define __LIBBPF_LIBBPF_COMMON_H - -#include -#include "libbpf_version.h" - -#ifndef LIBBPF_API -#define LIBBPF_API __attribute__((visibility("default"))) -#endif - -#define LIBBPF_DEPRECATED(msg) __attribute__((deprecated(msg))) - -/* Mark a symbol as deprecated when libbpf version is >= {major}.{minor} */ -#define LIBBPF_DEPRECATED_SINCE(major, minor, msg) \ - __LIBBPF_MARK_DEPRECATED_ ## major ## _ ## minor \ - (LIBBPF_DEPRECATED("libbpf v" # major "." # minor "+: " msg)) - -#define __LIBBPF_CURRENT_VERSION_GEQ(major, minor) \ - (LIBBPF_MAJOR_VERSION > (major) || \ - (LIBBPF_MAJOR_VERSION == (major) && LIBBPF_MINOR_VERSION >= (minor))) - -/* Add checks for other versions below when planning deprecation of API symbols - * with the LIBBPF_DEPRECATED_SINCE macro. - */ -#if __LIBBPF_CURRENT_VERSION_GEQ(0, 6) -#define __LIBBPF_MARK_DEPRECATED_0_6(X) X -#else -#define __LIBBPF_MARK_DEPRECATED_0_6(X) -#endif -#if __LIBBPF_CURRENT_VERSION_GEQ(0, 7) -#define __LIBBPF_MARK_DEPRECATED_0_7(X) X -#else -#define __LIBBPF_MARK_DEPRECATED_0_7(X) -#endif -#if __LIBBPF_CURRENT_VERSION_GEQ(0, 8) -#define __LIBBPF_MARK_DEPRECATED_0_8(X) X -#else -#define __LIBBPF_MARK_DEPRECATED_0_8(X) -#endif - -/* This set of internal macros allows to do "function overloading" based on - * number of arguments provided by used in backwards-compatible way during the - * transition to libbpf 1.0 - * It's ugly but necessary evil that will be cleaned up when we get to 1.0. - * See bpf_prog_load() overload for example. - */ -#define ___libbpf_cat(A, B) A ## B -#define ___libbpf_select(NAME, NUM) ___libbpf_cat(NAME, NUM) -#define ___libbpf_nth(_1, _2, _3, _4, _5, _6, N, ...) N -#define ___libbpf_cnt(...) ___libbpf_nth(__VA_ARGS__, 6, 5, 4, 3, 2, 1) -#define ___libbpf_overload(NAME, ...) ___libbpf_select(NAME, ___libbpf_cnt(__VA_ARGS__))(__VA_ARGS__) - -/* Helper macro to declare and initialize libbpf options struct - * - * This dance with uninitialized declaration, followed by memset to zero, - * followed by assignment using compound literal syntax is done to preserve - * ability to use a nice struct field initialization syntax and **hopefully** - * have all the padding bytes initialized to zero. It's not guaranteed though, - * when copying literal, that compiler won't copy garbage in literal's padding - * bytes, but that's the best way I've found and it seems to work in practice. - * - * Macro declares opts struct of given type and name, zero-initializes, - * including any extra padding, it with memset() and then assigns initial - * values provided by users in struct initializer-syntax as varargs. - */ -#define LIBBPF_OPTS(TYPE, NAME, ...) \ - struct TYPE NAME = ({ \ - memset(&NAME, 0, sizeof(struct TYPE)); \ - (struct TYPE) { \ - .sz = sizeof(struct TYPE), \ - __VA_ARGS__ \ - }; \ - }) - -#endif /* __LIBBPF_LIBBPF_COMMON_H */ diff --git a/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/libbpf_legacy.h b/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/libbpf_legacy.h deleted file mode 100644 index d7bcbd01..00000000 --- a/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/libbpf_legacy.h +++ /dev/null @@ -1,114 +0,0 @@ -/* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */ - -/* - * Libbpf legacy APIs (either discouraged or deprecated, as mentioned in [0]) - * - * [0] https://docs.google.com/document/d/1UyjTZuPFWiPFyKk1tV5an11_iaRuec6U-ZESZ54nNTY - * - * Copyright (C) 2021 Facebook - */ -#ifndef __LIBBPF_LEGACY_BPF_H -#define __LIBBPF_LEGACY_BPF_H - -#include -#include -#include -#include -#include "libbpf_common.h" - -#ifdef __cplusplus -extern "C" { -#endif - -enum libbpf_strict_mode { - /* Turn on all supported strict features of libbpf to simulate libbpf - * v1.0 behavior. - * This will be the default behavior in libbpf v1.0. - */ - LIBBPF_STRICT_ALL = 0xffffffff, - - /* - * Disable any libbpf 1.0 behaviors. This is the default before libbpf - * v1.0. It won't be supported anymore in v1.0, please update your - * code so that it handles LIBBPF_STRICT_ALL mode before libbpf v1.0. - */ - LIBBPF_STRICT_NONE = 0x00, - /* - * Return NULL pointers on error, not ERR_PTR(err). - * Additionally, libbpf also always sets errno to corresponding Exx - * (positive) error code. - */ - LIBBPF_STRICT_CLEAN_PTRS = 0x01, - /* - * Return actual error codes from low-level APIs directly, not just -1. - * Additionally, libbpf also always sets errno to corresponding Exx - * (positive) error code. - */ - LIBBPF_STRICT_DIRECT_ERRS = 0x02, - /* - * Enforce strict BPF program section (SEC()) names. - * E.g., while prefiously SEC("xdp_whatever") or SEC("perf_event_blah") were - * allowed, with LIBBPF_STRICT_SEC_PREFIX this will become - * unrecognized by libbpf and would have to be just SEC("xdp") and - * SEC("xdp") and SEC("perf_event"). - * - * Note, in this mode the program pin path will be based on the - * function name instead of section name. - * - * Additionally, routines in the .text section are always considered - * sub-programs. Legacy behavior allows for a single routine in .text - * to be a program. - */ - LIBBPF_STRICT_SEC_NAME = 0x04, - /* - * Disable the global 'bpf_objects_list'. Maintaining this list adds - * a race condition to bpf_object__open() and bpf_object__close(). - * Clients can maintain it on their own if it is valuable for them. - */ - LIBBPF_STRICT_NO_OBJECT_LIST = 0x08, - /* - * Automatically bump RLIMIT_MEMLOCK using setrlimit() before the - * first BPF program or map creation operation. This is done only if - * kernel is too old to support memcg-based memory accounting for BPF - * subsystem. By default, RLIMIT_MEMLOCK limit is set to RLIM_INFINITY, - * but it can be overriden with libbpf_set_memlock_rlim_max() API. - * Note that libbpf_set_memlock_rlim_max() needs to be called before - * the very first bpf_prog_load(), bpf_map_create() or bpf_object__load() - * operation. - */ - LIBBPF_STRICT_AUTO_RLIMIT_MEMLOCK = 0x10, - /* - * Error out on any SEC("maps") map definition, which are deprecated - * in favor of BTF-defined map definitions in SEC(".maps"). - */ - LIBBPF_STRICT_MAP_DEFINITIONS = 0x20, - - __LIBBPF_STRICT_LAST, -}; - -LIBBPF_API int libbpf_set_strict_mode(enum libbpf_strict_mode mode); - -#define DECLARE_LIBBPF_OPTS LIBBPF_OPTS - -/* "Discouraged" APIs which don't follow consistent libbpf naming patterns. - * They are normally a trivial aliases or wrappers for proper APIs and are - * left to minimize unnecessary disruption for users of libbpf. But they - * shouldn't be used going forward. - */ - -struct bpf_program; -struct bpf_map; -struct btf; -struct btf_ext; - -LIBBPF_API enum bpf_prog_type bpf_program__get_type(const struct bpf_program *prog); -LIBBPF_API enum bpf_attach_type bpf_program__get_expected_attach_type(const struct bpf_program *prog); -LIBBPF_API const char *bpf_map__get_pin_path(const struct bpf_map *map); -LIBBPF_API const void *btf__get_raw_data(const struct btf *btf, __u32 *size); -LIBBPF_API const void *btf_ext__get_raw_data(const struct btf_ext *btf_ext, __u32 *size); - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /* __LIBBPF_LEGACY_BPF_H */ diff --git a/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/libbpf_version.h b/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/libbpf_version.h deleted file mode 100644 index 61f20394..00000000 --- a/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/libbpf_version.h +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */ -/* Copyright (C) 2021 Facebook */ -#ifndef __LIBBPF_VERSION_H -#define __LIBBPF_VERSION_H - -#define LIBBPF_MAJOR_VERSION 0 -#define LIBBPF_MINOR_VERSION 8 - -#endif /* __LIBBPF_VERSION_H */ diff --git a/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/skel_internal.h b/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/skel_internal.h deleted file mode 100644 index bd6f4505..00000000 --- a/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/skel_internal.h +++ /dev/null @@ -1,349 +0,0 @@ -/* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */ -/* Copyright (c) 2021 Facebook */ -#ifndef __SKEL_INTERNAL_H -#define __SKEL_INTERNAL_H - -#ifdef __KERNEL__ -#include -#include -#include -#include -#include -#else -#include -#include -#include -#include -#include "bpf.h" -#endif - -#ifndef __NR_bpf -# if defined(__mips__) && defined(_ABIO32) -# define __NR_bpf 4355 -# elif defined(__mips__) && defined(_ABIN32) -# define __NR_bpf 6319 -# elif defined(__mips__) && defined(_ABI64) -# define __NR_bpf 5315 -# endif -#endif - -/* This file is a base header for auto-generated *.lskel.h files. - * Its contents will change and may become part of auto-generation in the future. - * - * The layout of bpf_[map|prog]_desc and bpf_loader_ctx is feature dependent - * and will change from one version of libbpf to another and features - * requested during loader program generation. - */ -struct bpf_map_desc { - /* output of the loader prog */ - int map_fd; - /* input for the loader prog */ - __u32 max_entries; - __aligned_u64 initial_value; -}; -struct bpf_prog_desc { - int prog_fd; -}; - -enum { - BPF_SKEL_KERNEL = (1ULL << 0), -}; - -struct bpf_loader_ctx { - __u32 sz; - __u32 flags; - __u32 log_level; - __u32 log_size; - __u64 log_buf; -}; - -struct bpf_load_and_run_opts { - struct bpf_loader_ctx *ctx; - const void *data; - const void *insns; - __u32 data_sz; - __u32 insns_sz; - const char *errstr; -}; - -long bpf_sys_bpf(__u32 cmd, void *attr, __u32 attr_size); - -static inline int skel_sys_bpf(enum bpf_cmd cmd, union bpf_attr *attr, - unsigned int size) -{ -#ifdef __KERNEL__ - return bpf_sys_bpf(cmd, attr, size); -#else - return syscall(__NR_bpf, cmd, attr, size); -#endif -} - -#ifdef __KERNEL__ -static inline int close(int fd) -{ - return close_fd(fd); -} - -static inline void *skel_alloc(size_t size) -{ - struct bpf_loader_ctx *ctx = kzalloc(size, GFP_KERNEL); - - if (!ctx) - return NULL; - ctx->flags |= BPF_SKEL_KERNEL; - return ctx; -} - -static inline void skel_free(const void *p) -{ - kfree(p); -} - -/* skel->bss/rodata maps are populated the following way: - * - * For kernel use: - * skel_prep_map_data() allocates kernel memory that kernel module can directly access. - * Generated lskel stores the pointer in skel->rodata and in skel->maps.rodata.initial_value. - * The loader program will perform probe_read_kernel() from maps.rodata.initial_value. - * skel_finalize_map_data() sets skel->rodata to point to actual value in a bpf map and - * does maps.rodata.initial_value = ~0ULL to signal skel_free_map_data() that kvfree - * is not nessary. - * - * For user space: - * skel_prep_map_data() mmaps anon memory into skel->rodata that can be accessed directly. - * Generated lskel stores the pointer in skel->rodata and in skel->maps.rodata.initial_value. - * The loader program will perform copy_from_user() from maps.rodata.initial_value. - * skel_finalize_map_data() remaps bpf array map value from the kernel memory into - * skel->rodata address. - * - * The "bpftool gen skeleton -L" command generates lskel.h that is suitable for - * both kernel and user space. The generated loader program does - * either bpf_probe_read_kernel() or bpf_copy_from_user() from initial_value - * depending on bpf_loader_ctx->flags. - */ -static inline void skel_free_map_data(void *p, __u64 addr, size_t sz) -{ - if (addr != ~0ULL) - kvfree(p); - /* When addr == ~0ULL the 'p' points to - * ((struct bpf_array *)map)->value. See skel_finalize_map_data. - */ -} - -static inline void *skel_prep_map_data(const void *val, size_t mmap_sz, size_t val_sz) -{ - void *addr; - - addr = kvmalloc(val_sz, GFP_KERNEL); - if (!addr) - return NULL; - memcpy(addr, val, val_sz); - return addr; -} - -static inline void *skel_finalize_map_data(__u64 *init_val, size_t mmap_sz, int flags, int fd) -{ - struct bpf_map *map; - void *addr = NULL; - - kvfree((void *) (long) *init_val); - *init_val = ~0ULL; - - /* At this point bpf_load_and_run() finished without error and - * 'fd' is a valid bpf map FD. All sanity checks below should succeed. - */ - map = bpf_map_get(fd); - if (IS_ERR(map)) - return NULL; - if (map->map_type != BPF_MAP_TYPE_ARRAY) - goto out; - addr = ((struct bpf_array *)map)->value; - /* the addr stays valid, since FD is not closed */ -out: - bpf_map_put(map); - return addr; -} - -#else - -static inline void *skel_alloc(size_t size) -{ - return calloc(1, size); -} - -static inline void skel_free(void *p) -{ - free(p); -} - -static inline void skel_free_map_data(void *p, __u64 addr, size_t sz) -{ - munmap(p, sz); -} - -static inline void *skel_prep_map_data(const void *val, size_t mmap_sz, size_t val_sz) -{ - void *addr; - - addr = mmap(NULL, mmap_sz, PROT_READ | PROT_WRITE, - MAP_SHARED | MAP_ANONYMOUS, -1, 0); - if (addr == (void *) -1) - return NULL; - memcpy(addr, val, val_sz); - return addr; -} - -static inline void *skel_finalize_map_data(__u64 *init_val, size_t mmap_sz, int flags, int fd) -{ - void *addr; - - addr = mmap((void *) (long) *init_val, mmap_sz, flags, MAP_SHARED | MAP_FIXED, fd, 0); - if (addr == (void *) -1) - return NULL; - return addr; -} -#endif - -static inline int skel_closenz(int fd) -{ - if (fd > 0) - return close(fd); - return -EINVAL; -} - -#ifndef offsetofend -#define offsetofend(TYPE, MEMBER) \ - (offsetof(TYPE, MEMBER) + sizeof((((TYPE *)0)->MEMBER))) -#endif - -static inline int skel_map_create(enum bpf_map_type map_type, - const char *map_name, - __u32 key_size, - __u32 value_size, - __u32 max_entries) -{ - const size_t attr_sz = offsetofend(union bpf_attr, map_extra); - union bpf_attr attr; - - memset(&attr, 0, attr_sz); - - attr.map_type = map_type; - strncpy(attr.map_name, map_name, sizeof(attr.map_name)); - attr.key_size = key_size; - attr.value_size = value_size; - attr.max_entries = max_entries; - - return skel_sys_bpf(BPF_MAP_CREATE, &attr, attr_sz); -} - -static inline int skel_map_update_elem(int fd, const void *key, - const void *value, __u64 flags) -{ - const size_t attr_sz = offsetofend(union bpf_attr, flags); - union bpf_attr attr; - - memset(&attr, 0, attr_sz); - attr.map_fd = fd; - attr.key = (long) key; - attr.value = (long) value; - attr.flags = flags; - - return skel_sys_bpf(BPF_MAP_UPDATE_ELEM, &attr, attr_sz); -} - -static inline int skel_raw_tracepoint_open(const char *name, int prog_fd) -{ - const size_t attr_sz = offsetofend(union bpf_attr, raw_tracepoint.prog_fd); - union bpf_attr attr; - - memset(&attr, 0, attr_sz); - attr.raw_tracepoint.name = (long) name; - attr.raw_tracepoint.prog_fd = prog_fd; - - return skel_sys_bpf(BPF_RAW_TRACEPOINT_OPEN, &attr, attr_sz); -} - -static inline int skel_link_create(int prog_fd, int target_fd, - enum bpf_attach_type attach_type) -{ - const size_t attr_sz = offsetofend(union bpf_attr, link_create.iter_info_len); - union bpf_attr attr; - - memset(&attr, 0, attr_sz); - attr.link_create.prog_fd = prog_fd; - attr.link_create.target_fd = target_fd; - attr.link_create.attach_type = attach_type; - - return skel_sys_bpf(BPF_LINK_CREATE, &attr, attr_sz); -} - -#ifdef __KERNEL__ -#define set_err -#else -#define set_err err = -errno -#endif - -static inline int bpf_load_and_run(struct bpf_load_and_run_opts *opts) -{ - int map_fd = -1, prog_fd = -1, key = 0, err; - union bpf_attr attr; - - err = map_fd = skel_map_create(BPF_MAP_TYPE_ARRAY, "__loader.map", 4, opts->data_sz, 1); - if (map_fd < 0) { - opts->errstr = "failed to create loader map"; - set_err; - goto out; - } - - err = skel_map_update_elem(map_fd, &key, opts->data, 0); - if (err < 0) { - opts->errstr = "failed to update loader map"; - set_err; - goto out; - } - - memset(&attr, 0, sizeof(attr)); - attr.prog_type = BPF_PROG_TYPE_SYSCALL; - attr.insns = (long) opts->insns; - attr.insn_cnt = opts->insns_sz / sizeof(struct bpf_insn); - attr.license = (long) "Dual BSD/GPL"; - memcpy(attr.prog_name, "__loader.prog", sizeof("__loader.prog")); - attr.fd_array = (long) &map_fd; - attr.log_level = opts->ctx->log_level; - attr.log_size = opts->ctx->log_size; - attr.log_buf = opts->ctx->log_buf; - attr.prog_flags = BPF_F_SLEEPABLE; - err = prog_fd = skel_sys_bpf(BPF_PROG_LOAD, &attr, sizeof(attr)); - if (prog_fd < 0) { - opts->errstr = "failed to load loader prog"; - set_err; - goto out; - } - - memset(&attr, 0, sizeof(attr)); - attr.test.prog_fd = prog_fd; - attr.test.ctx_in = (long) opts->ctx; - attr.test.ctx_size_in = opts->ctx->sz; - err = skel_sys_bpf(BPF_PROG_RUN, &attr, sizeof(attr)); - if (err < 0 || (int)attr.test.retval < 0) { - opts->errstr = "failed to execute loader prog"; - if (err < 0) { - set_err; - } else { - err = (int)attr.test.retval; -#ifndef __KERNEL__ - errno = -err; -#endif - } - goto out; - } - err = 0; -out: - if (map_fd >= 0) - close(map_fd); - if (prog_fd >= 0) - close(prog_fd); - return err; -} - -#endif diff --git a/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/usdt.bpf.h b/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/usdt.bpf.h deleted file mode 100644 index 4181fddb..00000000 --- a/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/usdt.bpf.h +++ /dev/null @@ -1,259 +0,0 @@ -/* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */ -/* Copyright (c) 2022 Meta Platforms, Inc. and affiliates. */ -#ifndef __USDT_BPF_H__ -#define __USDT_BPF_H__ - -#include -#include -#include -#include - -/* Below types and maps are internal implementation details of libbpf's USDT - * support and are subjects to change. Also, bpf_usdt_xxx() API helpers should - * be considered an unstable API as well and might be adjusted based on user - * feedback from using libbpf's USDT support in production. - */ - -/* User can override BPF_USDT_MAX_SPEC_CNT to change default size of internal - * map that keeps track of USDT argument specifications. This might be - * necessary if there are a lot of USDT attachments. - */ -#ifndef BPF_USDT_MAX_SPEC_CNT -#define BPF_USDT_MAX_SPEC_CNT 256 -#endif -/* User can override BPF_USDT_MAX_IP_CNT to change default size of internal - * map that keeps track of IP (memory address) mapping to USDT argument - * specification. - * Note, if kernel supports BPF cookies, this map is not used and could be - * resized all the way to 1 to save a bit of memory. - */ -#ifndef BPF_USDT_MAX_IP_CNT -#define BPF_USDT_MAX_IP_CNT (4 * BPF_USDT_MAX_SPEC_CNT) -#endif -/* We use BPF CO-RE to detect support for BPF cookie from BPF side. This is - * the only dependency on CO-RE, so if it's undesirable, user can override - * BPF_USDT_HAS_BPF_COOKIE to specify whether to BPF cookie is supported or not. - */ -#ifndef BPF_USDT_HAS_BPF_COOKIE -#define BPF_USDT_HAS_BPF_COOKIE \ - bpf_core_enum_value_exists(enum bpf_func_id___usdt, BPF_FUNC_get_attach_cookie___usdt) -#endif - -enum __bpf_usdt_arg_type { - BPF_USDT_ARG_CONST, - BPF_USDT_ARG_REG, - BPF_USDT_ARG_REG_DEREF, -}; - -struct __bpf_usdt_arg_spec { - /* u64 scalar interpreted depending on arg_type, see below */ - __u64 val_off; - /* arg location case, see bpf_udst_arg() for details */ - enum __bpf_usdt_arg_type arg_type; - /* offset of referenced register within struct pt_regs */ - short reg_off; - /* whether arg should be interpreted as signed value */ - bool arg_signed; - /* number of bits that need to be cleared and, optionally, - * sign-extended to cast arguments that are 1, 2, or 4 bytes - * long into final 8-byte u64/s64 value returned to user - */ - char arg_bitshift; -}; - -/* should match USDT_MAX_ARG_CNT in usdt.c exactly */ -#define BPF_USDT_MAX_ARG_CNT 12 -struct __bpf_usdt_spec { - struct __bpf_usdt_arg_spec args[BPF_USDT_MAX_ARG_CNT]; - __u64 usdt_cookie; - short arg_cnt; -}; - -struct { - __uint(type, BPF_MAP_TYPE_ARRAY); - __uint(max_entries, BPF_USDT_MAX_SPEC_CNT); - __type(key, int); - __type(value, struct __bpf_usdt_spec); -} __bpf_usdt_specs SEC(".maps") __weak; - -struct { - __uint(type, BPF_MAP_TYPE_HASH); - __uint(max_entries, BPF_USDT_MAX_IP_CNT); - __type(key, long); - __type(value, __u32); -} __bpf_usdt_ip_to_spec_id SEC(".maps") __weak; - -/* don't rely on user's BPF code to have latest definition of bpf_func_id */ -enum bpf_func_id___usdt { - BPF_FUNC_get_attach_cookie___usdt = 0xBAD, /* value doesn't matter */ -}; - -static __always_inline -int __bpf_usdt_spec_id(struct pt_regs *ctx) -{ - if (!BPF_USDT_HAS_BPF_COOKIE) { - long ip = PT_REGS_IP(ctx); - int *spec_id_ptr; - - spec_id_ptr = bpf_map_lookup_elem(&__bpf_usdt_ip_to_spec_id, &ip); - return spec_id_ptr ? *spec_id_ptr : -ESRCH; - } - - return bpf_get_attach_cookie(ctx); -} - -/* Return number of USDT arguments defined for currently traced USDT. */ -__weak __hidden -int bpf_usdt_arg_cnt(struct pt_regs *ctx) -{ - struct __bpf_usdt_spec *spec; - int spec_id; - - spec_id = __bpf_usdt_spec_id(ctx); - if (spec_id < 0) - return -ESRCH; - - spec = bpf_map_lookup_elem(&__bpf_usdt_specs, &spec_id); - if (!spec) - return -ESRCH; - - return spec->arg_cnt; -} - -/* Fetch USDT argument #*arg_num* (zero-indexed) and put its value into *res. - * Returns 0 on success; negative error, otherwise. - * On error *res is guaranteed to be set to zero. - */ -__weak __hidden -int bpf_usdt_arg(struct pt_regs *ctx, __u64 arg_num, long *res) -{ - struct __bpf_usdt_spec *spec; - struct __bpf_usdt_arg_spec *arg_spec; - unsigned long val; - int err, spec_id; - - *res = 0; - - spec_id = __bpf_usdt_spec_id(ctx); - if (spec_id < 0) - return -ESRCH; - - spec = bpf_map_lookup_elem(&__bpf_usdt_specs, &spec_id); - if (!spec) - return -ESRCH; - - if (arg_num >= BPF_USDT_MAX_ARG_CNT || arg_num >= spec->arg_cnt) - return -ENOENT; - - arg_spec = &spec->args[arg_num]; - switch (arg_spec->arg_type) { - case BPF_USDT_ARG_CONST: - /* Arg is just a constant ("-4@$-9" in USDT arg spec). - * value is recorded in arg_spec->val_off directly. - */ - val = arg_spec->val_off; - break; - case BPF_USDT_ARG_REG: - /* Arg is in a register (e.g, "8@%rax" in USDT arg spec), - * so we read the contents of that register directly from - * struct pt_regs. To keep things simple user-space parts - * record offsetof(struct pt_regs, ) in arg_spec->reg_off. - */ - err = bpf_probe_read_kernel(&val, sizeof(val), (void *)ctx + arg_spec->reg_off); - if (err) - return err; - break; - case BPF_USDT_ARG_REG_DEREF: - /* Arg is in memory addressed by register, plus some offset - * (e.g., "-4@-1204(%rbp)" in USDT arg spec). Register is - * identified like with BPF_USDT_ARG_REG case, and the offset - * is in arg_spec->val_off. We first fetch register contents - * from pt_regs, then do another user-space probe read to - * fetch argument value itself. - */ - err = bpf_probe_read_kernel(&val, sizeof(val), (void *)ctx + arg_spec->reg_off); - if (err) - return err; - err = bpf_probe_read_user(&val, sizeof(val), (void *)val + arg_spec->val_off); - if (err) - return err; -#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ - val >>= arg_spec->arg_bitshift; -#endif - break; - default: - return -EINVAL; - } - - /* cast arg from 1, 2, or 4 bytes to final 8 byte size clearing - * necessary upper arg_bitshift bits, with sign extension if argument - * is signed - */ - val <<= arg_spec->arg_bitshift; - if (arg_spec->arg_signed) - val = ((long)val) >> arg_spec->arg_bitshift; - else - val = val >> arg_spec->arg_bitshift; - *res = val; - return 0; -} - -/* Retrieve user-specified cookie value provided during attach as - * bpf_usdt_opts.usdt_cookie. This serves the same purpose as BPF cookie - * returned by bpf_get_attach_cookie(). Libbpf's support for USDT is itself - * utilizing BPF cookies internally, so user can't use BPF cookie directly - * for USDT programs and has to use bpf_usdt_cookie() API instead. - */ -__weak __hidden -long bpf_usdt_cookie(struct pt_regs *ctx) -{ - struct __bpf_usdt_spec *spec; - int spec_id; - - spec_id = __bpf_usdt_spec_id(ctx); - if (spec_id < 0) - return 0; - - spec = bpf_map_lookup_elem(&__bpf_usdt_specs, &spec_id); - if (!spec) - return 0; - - return spec->usdt_cookie; -} - -/* we rely on ___bpf_apply() and ___bpf_narg() macros already defined in bpf_tracing.h */ -#define ___bpf_usdt_args0() ctx -#define ___bpf_usdt_args1(x) ___bpf_usdt_args0(), ({ long _x; bpf_usdt_arg(ctx, 0, &_x); (void *)_x; }) -#define ___bpf_usdt_args2(x, args...) ___bpf_usdt_args1(args), ({ long _x; bpf_usdt_arg(ctx, 1, &_x); (void *)_x; }) -#define ___bpf_usdt_args3(x, args...) ___bpf_usdt_args2(args), ({ long _x; bpf_usdt_arg(ctx, 2, &_x); (void *)_x; }) -#define ___bpf_usdt_args4(x, args...) ___bpf_usdt_args3(args), ({ long _x; bpf_usdt_arg(ctx, 3, &_x); (void *)_x; }) -#define ___bpf_usdt_args5(x, args...) ___bpf_usdt_args4(args), ({ long _x; bpf_usdt_arg(ctx, 4, &_x); (void *)_x; }) -#define ___bpf_usdt_args6(x, args...) ___bpf_usdt_args5(args), ({ long _x; bpf_usdt_arg(ctx, 5, &_x); (void *)_x; }) -#define ___bpf_usdt_args7(x, args...) ___bpf_usdt_args6(args), ({ long _x; bpf_usdt_arg(ctx, 6, &_x); (void *)_x; }) -#define ___bpf_usdt_args8(x, args...) ___bpf_usdt_args7(args), ({ long _x; bpf_usdt_arg(ctx, 7, &_x); (void *)_x; }) -#define ___bpf_usdt_args9(x, args...) ___bpf_usdt_args8(args), ({ long _x; bpf_usdt_arg(ctx, 8, &_x); (void *)_x; }) -#define ___bpf_usdt_args10(x, args...) ___bpf_usdt_args9(args), ({ long _x; bpf_usdt_arg(ctx, 9, &_x); (void *)_x; }) -#define ___bpf_usdt_args11(x, args...) ___bpf_usdt_args10(args), ({ long _x; bpf_usdt_arg(ctx, 10, &_x); (void *)_x; }) -#define ___bpf_usdt_args12(x, args...) ___bpf_usdt_args11(args), ({ long _x; bpf_usdt_arg(ctx, 11, &_x); (void *)_x; }) -#define ___bpf_usdt_args(args...) ___bpf_apply(___bpf_usdt_args, ___bpf_narg(args))(args) - -/* - * BPF_USDT serves the same purpose for USDT handlers as BPF_PROG for - * tp_btf/fentry/fexit BPF programs and BPF_KPROBE for kprobes. - * Original struct pt_regs * context is preserved as 'ctx' argument. - */ -#define BPF_USDT(name, args...) \ -name(struct pt_regs *ctx); \ -static __attribute__((always_inline)) typeof(name(0)) \ -____##name(struct pt_regs *ctx, ##args); \ -typeof(name(0)) name(struct pt_regs *ctx) \ -{ \ - _Pragma("GCC diagnostic push") \ - _Pragma("GCC diagnostic ignored \"-Wint-conversion\"") \ - return ____##name(___bpf_usdt_args(args)); \ - _Pragma("GCC diagnostic pop") \ -} \ -static __attribute__((always_inline)) typeof(name(0)) \ -____##name(struct pt_regs *ctx, ##args) - -#endif /* __USDT_BPF_H__ */ diff --git a/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/xsk.h b/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/xsk.h deleted file mode 100644 index 64e9c57f..00000000 --- a/source/tools/monitor/raptor/source/ebpf/src/lib/include/bpf/xsk.h +++ /dev/null @@ -1,336 +0,0 @@ -/* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */ - -/* - * AF_XDP user-space access library. - * - * Copyright (c) 2018 - 2019 Intel Corporation. - * Copyright (c) 2019 Facebook - * - * Author(s): Magnus Karlsson - */ - -#ifndef __LIBBPF_XSK_H -#define __LIBBPF_XSK_H - -#include -#include -#include -#include - -#include "libbpf.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* This whole API has been deprecated and moved to libxdp that can be found at - * https://github.com/xdp-project/xdp-tools. The APIs are exactly the same so - * it should just be linking with libxdp instead of libbpf for this set of - * functionality. If not, please submit a bug report on the aforementioned page. - */ - -/* Load-Acquire Store-Release barriers used by the XDP socket - * library. The following macros should *NOT* be considered part of - * the xsk.h API, and is subject to change anytime. - * - * LIBRARY INTERNAL - */ - -#define __XSK_READ_ONCE(x) (*(volatile typeof(x) *)&x) -#define __XSK_WRITE_ONCE(x, v) (*(volatile typeof(x) *)&x) = (v) - -#if defined(__i386__) || defined(__x86_64__) -# define libbpf_smp_store_release(p, v) \ - do { \ - asm volatile("" : : : "memory"); \ - __XSK_WRITE_ONCE(*p, v); \ - } while (0) -# define libbpf_smp_load_acquire(p) \ - ({ \ - typeof(*p) ___p1 = __XSK_READ_ONCE(*p); \ - asm volatile("" : : : "memory"); \ - ___p1; \ - }) -#elif defined(__aarch64__) -# define libbpf_smp_store_release(p, v) \ - asm volatile ("stlr %w1, %0" : "=Q" (*p) : "r" (v) : "memory") -# define libbpf_smp_load_acquire(p) \ - ({ \ - typeof(*p) ___p1; \ - asm volatile ("ldar %w0, %1" \ - : "=r" (___p1) : "Q" (*p) : "memory"); \ - ___p1; \ - }) -#elif defined(__riscv) -# define libbpf_smp_store_release(p, v) \ - do { \ - asm volatile ("fence rw,w" : : : "memory"); \ - __XSK_WRITE_ONCE(*p, v); \ - } while (0) -# define libbpf_smp_load_acquire(p) \ - ({ \ - typeof(*p) ___p1 = __XSK_READ_ONCE(*p); \ - asm volatile ("fence r,rw" : : : "memory"); \ - ___p1; \ - }) -#endif - -#ifndef libbpf_smp_store_release -#define libbpf_smp_store_release(p, v) \ - do { \ - __sync_synchronize(); \ - __XSK_WRITE_ONCE(*p, v); \ - } while (0) -#endif - -#ifndef libbpf_smp_load_acquire -#define libbpf_smp_load_acquire(p) \ - ({ \ - typeof(*p) ___p1 = __XSK_READ_ONCE(*p); \ - __sync_synchronize(); \ - ___p1; \ - }) -#endif - -/* LIBRARY INTERNAL -- END */ - -/* Do not access these members directly. Use the functions below. */ -#define DEFINE_XSK_RING(name) \ -struct name { \ - __u32 cached_prod; \ - __u32 cached_cons; \ - __u32 mask; \ - __u32 size; \ - __u32 *producer; \ - __u32 *consumer; \ - void *ring; \ - __u32 *flags; \ -} - -DEFINE_XSK_RING(xsk_ring_prod); -DEFINE_XSK_RING(xsk_ring_cons); - -/* For a detailed explanation on the memory barriers associated with the - * ring, please take a look at net/xdp/xsk_queue.h. - */ - -struct xsk_umem; -struct xsk_socket; - -static inline __u64 *xsk_ring_prod__fill_addr(struct xsk_ring_prod *fill, - __u32 idx) -{ - __u64 *addrs = (__u64 *)fill->ring; - - return &addrs[idx & fill->mask]; -} - -static inline const __u64 * -xsk_ring_cons__comp_addr(const struct xsk_ring_cons *comp, __u32 idx) -{ - const __u64 *addrs = (const __u64 *)comp->ring; - - return &addrs[idx & comp->mask]; -} - -static inline struct xdp_desc *xsk_ring_prod__tx_desc(struct xsk_ring_prod *tx, - __u32 idx) -{ - struct xdp_desc *descs = (struct xdp_desc *)tx->ring; - - return &descs[idx & tx->mask]; -} - -static inline const struct xdp_desc * -xsk_ring_cons__rx_desc(const struct xsk_ring_cons *rx, __u32 idx) -{ - const struct xdp_desc *descs = (const struct xdp_desc *)rx->ring; - - return &descs[idx & rx->mask]; -} - -static inline int xsk_ring_prod__needs_wakeup(const struct xsk_ring_prod *r) -{ - return *r->flags & XDP_RING_NEED_WAKEUP; -} - -static inline __u32 xsk_prod_nb_free(struct xsk_ring_prod *r, __u32 nb) -{ - __u32 free_entries = r->cached_cons - r->cached_prod; - - if (free_entries >= nb) - return free_entries; - - /* Refresh the local tail pointer. - * cached_cons is r->size bigger than the real consumer pointer so - * that this addition can be avoided in the more frequently - * executed code that computs free_entries in the beginning of - * this function. Without this optimization it whould have been - * free_entries = r->cached_prod - r->cached_cons + r->size. - */ - r->cached_cons = libbpf_smp_load_acquire(r->consumer); - r->cached_cons += r->size; - - return r->cached_cons - r->cached_prod; -} - -static inline __u32 xsk_cons_nb_avail(struct xsk_ring_cons *r, __u32 nb) -{ - __u32 entries = r->cached_prod - r->cached_cons; - - if (entries == 0) { - r->cached_prod = libbpf_smp_load_acquire(r->producer); - entries = r->cached_prod - r->cached_cons; - } - - return (entries > nb) ? nb : entries; -} - -static inline __u32 xsk_ring_prod__reserve(struct xsk_ring_prod *prod, __u32 nb, __u32 *idx) -{ - if (xsk_prod_nb_free(prod, nb) < nb) - return 0; - - *idx = prod->cached_prod; - prod->cached_prod += nb; - - return nb; -} - -static inline void xsk_ring_prod__submit(struct xsk_ring_prod *prod, __u32 nb) -{ - /* Make sure everything has been written to the ring before indicating - * this to the kernel by writing the producer pointer. - */ - libbpf_smp_store_release(prod->producer, *prod->producer + nb); -} - -static inline __u32 xsk_ring_cons__peek(struct xsk_ring_cons *cons, __u32 nb, __u32 *idx) -{ - __u32 entries = xsk_cons_nb_avail(cons, nb); - - if (entries > 0) { - *idx = cons->cached_cons; - cons->cached_cons += entries; - } - - return entries; -} - -static inline void xsk_ring_cons__cancel(struct xsk_ring_cons *cons, __u32 nb) -{ - cons->cached_cons -= nb; -} - -static inline void xsk_ring_cons__release(struct xsk_ring_cons *cons, __u32 nb) -{ - /* Make sure data has been read before indicating we are done - * with the entries by updating the consumer pointer. - */ - libbpf_smp_store_release(cons->consumer, *cons->consumer + nb); - -} - -static inline void *xsk_umem__get_data(void *umem_area, __u64 addr) -{ - return &((char *)umem_area)[addr]; -} - -static inline __u64 xsk_umem__extract_addr(__u64 addr) -{ - return addr & XSK_UNALIGNED_BUF_ADDR_MASK; -} - -static inline __u64 xsk_umem__extract_offset(__u64 addr) -{ - return addr >> XSK_UNALIGNED_BUF_OFFSET_SHIFT; -} - -static inline __u64 xsk_umem__add_offset_to_addr(__u64 addr) -{ - return xsk_umem__extract_addr(addr) + xsk_umem__extract_offset(addr); -} - -LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 7, "AF_XDP support deprecated and moved to libxdp") -int xsk_umem__fd(const struct xsk_umem *umem); -LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 7, "AF_XDP support deprecated and moved to libxdp") -int xsk_socket__fd(const struct xsk_socket *xsk); - -#define XSK_RING_CONS__DEFAULT_NUM_DESCS 2048 -#define XSK_RING_PROD__DEFAULT_NUM_DESCS 2048 -#define XSK_UMEM__DEFAULT_FRAME_SHIFT 12 /* 4096 bytes */ -#define XSK_UMEM__DEFAULT_FRAME_SIZE (1 << XSK_UMEM__DEFAULT_FRAME_SHIFT) -#define XSK_UMEM__DEFAULT_FRAME_HEADROOM 0 -#define XSK_UMEM__DEFAULT_FLAGS 0 - -struct xsk_umem_config { - __u32 fill_size; - __u32 comp_size; - __u32 frame_size; - __u32 frame_headroom; - __u32 flags; -}; - -LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 7, "AF_XDP support deprecated and moved to libxdp") -int xsk_setup_xdp_prog(int ifindex, int *xsks_map_fd); -LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 7, "AF_XDP support deprecated and moved to libxdp") -int xsk_socket__update_xskmap(struct xsk_socket *xsk, int xsks_map_fd); - -/* Flags for the libbpf_flags field. */ -#define XSK_LIBBPF_FLAGS__INHIBIT_PROG_LOAD (1 << 0) - -struct xsk_socket_config { - __u32 rx_size; - __u32 tx_size; - __u32 libbpf_flags; - __u32 xdp_flags; - __u16 bind_flags; -}; - -/* Set config to NULL to get the default configuration. */ -LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 7, "AF_XDP support deprecated and moved to libxdp") -int xsk_umem__create(struct xsk_umem **umem, - void *umem_area, __u64 size, - struct xsk_ring_prod *fill, - struct xsk_ring_cons *comp, - const struct xsk_umem_config *config); -LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 7, "AF_XDP support deprecated and moved to libxdp") -int xsk_umem__create_v0_0_2(struct xsk_umem **umem, - void *umem_area, __u64 size, - struct xsk_ring_prod *fill, - struct xsk_ring_cons *comp, - const struct xsk_umem_config *config); -LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 7, "AF_XDP support deprecated and moved to libxdp") -int xsk_umem__create_v0_0_4(struct xsk_umem **umem, - void *umem_area, __u64 size, - struct xsk_ring_prod *fill, - struct xsk_ring_cons *comp, - const struct xsk_umem_config *config); -LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 7, "AF_XDP support deprecated and moved to libxdp") -int xsk_socket__create(struct xsk_socket **xsk, - const char *ifname, __u32 queue_id, - struct xsk_umem *umem, - struct xsk_ring_cons *rx, - struct xsk_ring_prod *tx, - const struct xsk_socket_config *config); -LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 7, "AF_XDP support deprecated and moved to libxdp") -int xsk_socket__create_shared(struct xsk_socket **xsk_ptr, - const char *ifname, - __u32 queue_id, struct xsk_umem *umem, - struct xsk_ring_cons *rx, - struct xsk_ring_prod *tx, - struct xsk_ring_prod *fill, - struct xsk_ring_cons *comp, - const struct xsk_socket_config *config); - -/* Returns 0 for success and -EBUSY if the umem is still in use. */ -LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 7, "AF_XDP support deprecated and moved to libxdp") -int xsk_umem__delete(struct xsk_umem *umem); -LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 7, "AF_XDP support deprecated and moved to libxdp") -void xsk_socket__delete(struct xsk_socket *xsk); - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /* __LIBBPF_XSK_H */ -- Gitee From d11ad202b20a3be1d564c0b0030f76b006b9175b Mon Sep 17 00:00:00 2001 From: zhilan Date: Thu, 23 Mar 2023 19:41:14 +0800 Subject: [PATCH 5/6] oomcheck: fix bugs --- source/tools/detect/mem/oomcheck/oomcheck.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/source/tools/detect/mem/oomcheck/oomcheck.py b/source/tools/detect/mem/oomcheck/oomcheck.py index ebb637c0..cd9a4e33 100644 --- a/source/tools/detect/mem/oomcheck/oomcheck.py +++ b/source/tools/detect/mem/oomcheck/oomcheck.py @@ -351,7 +351,7 @@ def memleak_check(total, kmem): return False def tcp_mem_check(used): - skcheck_bin = os.getenv("SYSAK_WORK_PATH"); + skcheck_bin = os.getenv("SYSAK_WORK_PATH",""); skcheck_bin += "/tools/skcheck -j /tmp/skcheck.json > /dev/null 2>&1" ret = os.popen(skcheck_bin).read() if not os.path.exists("/tmp/skcheck.json"): @@ -670,11 +670,13 @@ def oom_get_max_task(num, oom_result): state = oom['state_mem'] state['msg'] = [] state['total_rss'] = 0 + s_bra = 0 for line in oom['oom_msg']: try: if 'rss' in line and 'oom_score_adj' in line and 'name' in line: dump_task = True state['msg'].append(line) + s_bra = line.count('[') continue if not dump_task: continue @@ -682,7 +684,7 @@ def oom_get_max_task(num, oom_result): break if OOM_END_KEYWORD in line or OOM_END_KEYWORD_4_19 in line: break - if line.count('[') !=2 or line.count(']') !=2: + if line.count('[') != s_bra: break pid_idx = line.rfind('[') last_idx = line.rfind(']') -- Gitee From 392ffc933fc3b4df994e8a3b235a3f9d4fe6974b Mon Sep 17 00:00:00 2001 From: zhaohang Date: Fri, 24 Mar 2023 07:29:32 +0000 Subject: [PATCH 6/6] =?UTF-8?q?!506=20=E4=BF=AE=E6=94=B9workqlatency?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E6=8F=8F=E8=BF=B0=20*=20update=20source/tool?= =?UTF-8?q?s/detect/sched/workqlatency/README.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/tools/detect/sched/workqlatency/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/tools/detect/sched/workqlatency/README.md b/source/tools/detect/sched/workqlatency/README.md index 161f496b..7480dd08 100644 --- a/source/tools/detect/sched/workqlatency/README.md +++ b/source/tools/detect/sched/workqlatency/README.md @@ -11,7 +11,7 @@ example: sysak workqlatency -t 100 #trace work runtime and latency statistics ``` -使用示例:sysak worklatency -t 10 监控10‘s内内存直接回收规整情况 +使用示例:sysak worklatency -t 10 监控10‘s work latency和runtime情况 ``` Kwork Name Cpu Avg delay(ns) Count Max delay(ns) Max delay start(s) Max delay end(s) <0xffffffff9245ade0> blk_mq_timeout_work 1 6507 1 6507 2022-08-14 09:57:13 2022-08-14 09:57:13 -- Gitee