inspektor-gadget

Форк
0
/
tcpconnect_bpfel_arm64.go 
186 строк · 4.7 Кб
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 tcpconnectEvent struct {
16
	SaddrV6   [16]uint8
17
	DaddrV6   [16]uint8
18
	Task      [16]uint8
19
	Timestamp uint64
20
	Pid       uint32
21
	Uid       uint32
22
	Gid       uint32
23
	Af        uint16
24
	Dport     uint16
25
	Sport     uint16
26
	_         [6]byte
27
	MntnsId   uint64
28
	Latency   uint64
29
}
30

31
type tcpconnectIpv4FlowKey struct {
32
	Saddr uint32
33
	Daddr uint32
34
	Dport uint16
35
	_     [2]byte
36
}
37

38
type tcpconnectIpv6FlowKey struct {
39
	Saddr [16]uint8
40
	Daddr [16]uint8
41
	Dport uint16
42
}
43

44
type tcpconnectPiddata struct {
45
	Comm    [16]int8
46
	Ts      uint64
47
	Pid     uint32
48
	Tid     uint32
49
	MntnsId uint64
50
}
51

52
// loadTcpconnect returns the embedded CollectionSpec for tcpconnect.
53
func loadTcpconnect() (*ebpf.CollectionSpec, error) {
54
	reader := bytes.NewReader(_TcpconnectBytes)
55
	spec, err := ebpf.LoadCollectionSpecFromReader(reader)
56
	if err != nil {
57
		return nil, fmt.Errorf("can't load tcpconnect: %w", err)
58
	}
59

60
	return spec, err
61
}
62

63
// loadTcpconnectObjects loads tcpconnect and converts it into a struct.
64
//
65
// The following types are suitable as obj argument:
66
//
67
//	*tcpconnectObjects
68
//	*tcpconnectPrograms
69
//	*tcpconnectMaps
70
//
71
// See ebpf.CollectionSpec.LoadAndAssign documentation for details.
72
func loadTcpconnectObjects(obj interface{}, opts *ebpf.CollectionOptions) error {
73
	spec, err := loadTcpconnect()
74
	if err != nil {
75
		return err
76
	}
77

78
	return spec.LoadAndAssign(obj, opts)
79
}
80

81
// tcpconnectSpecs contains maps and programs before they are loaded into the kernel.
82
//
83
// It can be passed ebpf.CollectionSpec.Assign.
84
type tcpconnectSpecs struct {
85
	tcpconnectProgramSpecs
86
	tcpconnectMapSpecs
87
}
88

89
// tcpconnectSpecs contains programs before they are loaded into the kernel.
90
//
91
// It can be passed ebpf.CollectionSpec.Assign.
92
type tcpconnectProgramSpecs struct {
93
	IgTcpDestroy *ebpf.ProgramSpec `ebpf:"ig_tcp_destroy"`
94
	IgTcpRsp     *ebpf.ProgramSpec `ebpf:"ig_tcp_rsp"`
95
	IgTcpcV4CoE  *ebpf.ProgramSpec `ebpf:"ig_tcpc_v4_co_e"`
96
	IgTcpcV4CoX  *ebpf.ProgramSpec `ebpf:"ig_tcpc_v4_co_x"`
97
	IgTcpcV6CoE  *ebpf.ProgramSpec `ebpf:"ig_tcpc_v6_co_e"`
98
	IgTcpcV6CoX  *ebpf.ProgramSpec `ebpf:"ig_tcpc_v6_co_x"`
99
}
100

101
// tcpconnectMapSpecs contains maps before they are loaded into the kernel.
102
//
103
// It can be passed ebpf.CollectionSpec.Assign.
104
type tcpconnectMapSpecs struct {
105
	Events               *ebpf.MapSpec `ebpf:"events"`
106
	GadgetMntnsFilterMap *ebpf.MapSpec `ebpf:"gadget_mntns_filter_map"`
107
	Ipv4Count            *ebpf.MapSpec `ebpf:"ipv4_count"`
108
	Ipv6Count            *ebpf.MapSpec `ebpf:"ipv6_count"`
109
	SocketsLatency       *ebpf.MapSpec `ebpf:"sockets_latency"`
110
	SocketsPerProcess    *ebpf.MapSpec `ebpf:"sockets_per_process"`
111
}
112

113
// tcpconnectObjects contains all objects after they have been loaded into the kernel.
114
//
115
// It can be passed to loadTcpconnectObjects or ebpf.CollectionSpec.LoadAndAssign.
116
type tcpconnectObjects struct {
117
	tcpconnectPrograms
118
	tcpconnectMaps
119
}
120

121
func (o *tcpconnectObjects) Close() error {
122
	return _TcpconnectClose(
123
		&o.tcpconnectPrograms,
124
		&o.tcpconnectMaps,
125
	)
126
}
127

128
// tcpconnectMaps contains all maps after they have been loaded into the kernel.
129
//
130
// It can be passed to loadTcpconnectObjects or ebpf.CollectionSpec.LoadAndAssign.
131
type tcpconnectMaps struct {
132
	Events               *ebpf.Map `ebpf:"events"`
133
	GadgetMntnsFilterMap *ebpf.Map `ebpf:"gadget_mntns_filter_map"`
134
	Ipv4Count            *ebpf.Map `ebpf:"ipv4_count"`
135
	Ipv6Count            *ebpf.Map `ebpf:"ipv6_count"`
136
	SocketsLatency       *ebpf.Map `ebpf:"sockets_latency"`
137
	SocketsPerProcess    *ebpf.Map `ebpf:"sockets_per_process"`
138
}
139

140
func (m *tcpconnectMaps) Close() error {
141
	return _TcpconnectClose(
142
		m.Events,
143
		m.GadgetMntnsFilterMap,
144
		m.Ipv4Count,
145
		m.Ipv6Count,
146
		m.SocketsLatency,
147
		m.SocketsPerProcess,
148
	)
149
}
150

151
// tcpconnectPrograms contains all programs after they have been loaded into the kernel.
152
//
153
// It can be passed to loadTcpconnectObjects or ebpf.CollectionSpec.LoadAndAssign.
154
type tcpconnectPrograms struct {
155
	IgTcpDestroy *ebpf.Program `ebpf:"ig_tcp_destroy"`
156
	IgTcpRsp     *ebpf.Program `ebpf:"ig_tcp_rsp"`
157
	IgTcpcV4CoE  *ebpf.Program `ebpf:"ig_tcpc_v4_co_e"`
158
	IgTcpcV4CoX  *ebpf.Program `ebpf:"ig_tcpc_v4_co_x"`
159
	IgTcpcV6CoE  *ebpf.Program `ebpf:"ig_tcpc_v6_co_e"`
160
	IgTcpcV6CoX  *ebpf.Program `ebpf:"ig_tcpc_v6_co_x"`
161
}
162

163
func (p *tcpconnectPrograms) Close() error {
164
	return _TcpconnectClose(
165
		p.IgTcpDestroy,
166
		p.IgTcpRsp,
167
		p.IgTcpcV4CoE,
168
		p.IgTcpcV4CoX,
169
		p.IgTcpcV6CoE,
170
		p.IgTcpcV6CoX,
171
	)
172
}
173

174
func _TcpconnectClose(closers ...io.Closer) error {
175
	for _, closer := range closers {
176
		if err := closer.Close(); err != nil {
177
			return err
178
		}
179
	}
180
	return nil
181
}
182

183
// Do not access this directly.
184
//
185
//go:embed tcpconnect_bpfel_arm64.o
186
var _TcpconnectBytes []byte
187

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

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

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

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