inspektor-gadget

Форк
0
/
tcptop_bpfel_arm64.go 
142 строки · 3.2 Кб
1
// Code generated by bpf2go; DO NOT EDIT.
2
//go:build arm64
3

4
package tracer
5

6
import (
7
	"bytes"
8
	_ "embed"
9
	"fmt"
10
	"io"
11

12
	"github.com/cilium/ebpf"
13
)
14

15
type tcptopIpKeyT struct {
16
	Saddr   [16]uint8
17
	Daddr   [16]uint8
18
	Mntnsid uint64
19
	Pid     uint32
20
	Name    [16]uint8
21
	Lport   uint16
22
	Dport   uint16
23
	Family  uint16
24
	_       [6]byte
25
}
26

27
type tcptopTrafficT struct {
28
	Sent     uint64
29
	Received uint64
30
}
31

32
// loadTcptop returns the embedded CollectionSpec for tcptop.
33
func loadTcptop() (*ebpf.CollectionSpec, error) {
34
	reader := bytes.NewReader(_TcptopBytes)
35
	spec, err := ebpf.LoadCollectionSpecFromReader(reader)
36
	if err != nil {
37
		return nil, fmt.Errorf("can't load tcptop: %w", err)
38
	}
39

40
	return spec, err
41
}
42

43
// loadTcptopObjects loads tcptop and converts it into a struct.
44
//
45
// The following types are suitable as obj argument:
46
//
47
//	*tcptopObjects
48
//	*tcptopPrograms
49
//	*tcptopMaps
50
//
51
// See ebpf.CollectionSpec.LoadAndAssign documentation for details.
52
func loadTcptopObjects(obj interface{}, opts *ebpf.CollectionOptions) error {
53
	spec, err := loadTcptop()
54
	if err != nil {
55
		return err
56
	}
57

58
	return spec.LoadAndAssign(obj, opts)
59
}
60

61
// tcptopSpecs contains maps and programs before they are loaded into the kernel.
62
//
63
// It can be passed ebpf.CollectionSpec.Assign.
64
type tcptopSpecs struct {
65
	tcptopProgramSpecs
66
	tcptopMapSpecs
67
}
68

69
// tcptopSpecs contains programs before they are loaded into the kernel.
70
//
71
// It can be passed ebpf.CollectionSpec.Assign.
72
type tcptopProgramSpecs struct {
73
	IgToptcpClean *ebpf.ProgramSpec `ebpf:"ig_toptcp_clean"`
74
	IgToptcpSdmsg *ebpf.ProgramSpec `ebpf:"ig_toptcp_sdmsg"`
75
}
76

77
// tcptopMapSpecs contains maps before they are loaded into the kernel.
78
//
79
// It can be passed ebpf.CollectionSpec.Assign.
80
type tcptopMapSpecs struct {
81
	GadgetMntnsFilterMap *ebpf.MapSpec `ebpf:"gadget_mntns_filter_map"`
82
	IpMap                *ebpf.MapSpec `ebpf:"ip_map"`
83
}
84

85
// tcptopObjects contains all objects after they have been loaded into the kernel.
86
//
87
// It can be passed to loadTcptopObjects or ebpf.CollectionSpec.LoadAndAssign.
88
type tcptopObjects struct {
89
	tcptopPrograms
90
	tcptopMaps
91
}
92

93
func (o *tcptopObjects) Close() error {
94
	return _TcptopClose(
95
		&o.tcptopPrograms,
96
		&o.tcptopMaps,
97
	)
98
}
99

100
// tcptopMaps contains all maps after they have been loaded into the kernel.
101
//
102
// It can be passed to loadTcptopObjects or ebpf.CollectionSpec.LoadAndAssign.
103
type tcptopMaps struct {
104
	GadgetMntnsFilterMap *ebpf.Map `ebpf:"gadget_mntns_filter_map"`
105
	IpMap                *ebpf.Map `ebpf:"ip_map"`
106
}
107

108
func (m *tcptopMaps) Close() error {
109
	return _TcptopClose(
110
		m.GadgetMntnsFilterMap,
111
		m.IpMap,
112
	)
113
}
114

115
// tcptopPrograms contains all programs after they have been loaded into the kernel.
116
//
117
// It can be passed to loadTcptopObjects or ebpf.CollectionSpec.LoadAndAssign.
118
type tcptopPrograms struct {
119
	IgToptcpClean *ebpf.Program `ebpf:"ig_toptcp_clean"`
120
	IgToptcpSdmsg *ebpf.Program `ebpf:"ig_toptcp_sdmsg"`
121
}
122

123
func (p *tcptopPrograms) Close() error {
124
	return _TcptopClose(
125
		p.IgToptcpClean,
126
		p.IgToptcpSdmsg,
127
	)
128
}
129

130
func _TcptopClose(closers ...io.Closer) error {
131
	for _, closer := range closers {
132
		if err := closer.Close(); err != nil {
133
			return err
134
		}
135
	}
136
	return nil
137
}
138

139
// Do not access this directly.
140
//
141
//go:embed tcptop_bpfel_arm64.o
142
var _TcptopBytes []byte
143

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.