inspektor-gadget

Форк
0
184 строки · 4.0 Кб
1
// Code generated by bpf2go; DO NOT EDIT.
2
//go:build 386 || amd64 || amd64p32 || arm || arm64 || loong64 || mips64le || mips64p32le || mipsle || ppc64le || riscv64
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 dnsEventT struct {
16
	Netns       uint32
17
	_           [4]byte
18
	Timestamp   uint64
19
	MountNsId   uint64
20
	Pid         uint32
21
	Tid         uint32
22
	Uid         uint32
23
	Gid         uint32
24
	Task        [16]uint8
25
	SaddrV6     [16]uint8
26
	DaddrV6     [16]uint8
27
	Af          uint16
28
	Sport       uint16
29
	Dport       uint16
30
	Proto       uint8
31
	_           [1]byte
32
	Id          uint16
33
	Qtype       uint16
34
	Qr          uint8
35
	PktType     uint8
36
	Rcode       uint8
37
	_           [1]byte
38
	LatencyNs   uint64
39
	Name        [255]uint8
40
	_           [1]byte
41
	Ancount     uint16
42
	Anaddrcount uint16
43
	Anaddr      [8][16]uint8
44
	_           [4]byte
45
}
46

47
type dnsQueryKeyT struct {
48
	PidTgid uint64
49
	Id      uint16
50
}
51

52
type dnsSocketsKey struct {
53
	Netns  uint32
54
	Family uint16
55
	Proto  uint16
56
	Port   uint16
57
	_      [2]byte
58
}
59

60
type dnsSocketsValue struct {
61
	Mntns             uint64
62
	PidTgid           uint64
63
	UidGid            uint64
64
	Task              [16]int8
65
	Sock              uint64
66
	DeletionTimestamp uint64
67
	Ipv6only          int8
68
	_                 [7]byte
69
}
70

71
// loadDns returns the embedded CollectionSpec for dns.
72
func loadDns() (*ebpf.CollectionSpec, error) {
73
	reader := bytes.NewReader(_DnsBytes)
74
	spec, err := ebpf.LoadCollectionSpecFromReader(reader)
75
	if err != nil {
76
		return nil, fmt.Errorf("can't load dns: %w", err)
77
	}
78

79
	return spec, err
80
}
81

82
// loadDnsObjects loads dns and converts it into a struct.
83
//
84
// The following types are suitable as obj argument:
85
//
86
//	*dnsObjects
87
//	*dnsPrograms
88
//	*dnsMaps
89
//
90
// See ebpf.CollectionSpec.LoadAndAssign documentation for details.
91
func loadDnsObjects(obj interface{}, opts *ebpf.CollectionOptions) error {
92
	spec, err := loadDns()
93
	if err != nil {
94
		return err
95
	}
96

97
	return spec.LoadAndAssign(obj, opts)
98
}
99

100
// dnsSpecs contains maps and programs before they are loaded into the kernel.
101
//
102
// It can be passed ebpf.CollectionSpec.Assign.
103
type dnsSpecs struct {
104
	dnsProgramSpecs
105
	dnsMapSpecs
106
}
107

108
// dnsSpecs contains programs before they are loaded into the kernel.
109
//
110
// It can be passed ebpf.CollectionSpec.Assign.
111
type dnsProgramSpecs struct {
112
	IgTraceDns *ebpf.ProgramSpec `ebpf:"ig_trace_dns"`
113
}
114

115
// dnsMapSpecs contains maps before they are loaded into the kernel.
116
//
117
// It can be passed ebpf.CollectionSpec.Assign.
118
type dnsMapSpecs struct {
119
	Events        *ebpf.MapSpec `ebpf:"events"`
120
	GadgetSockets *ebpf.MapSpec `ebpf:"gadget_sockets"`
121
	QueryMap      *ebpf.MapSpec `ebpf:"query_map"`
122
	TmpEvent      *ebpf.MapSpec `ebpf:"tmp_event"`
123
}
124

125
// dnsObjects contains all objects after they have been loaded into the kernel.
126
//
127
// It can be passed to loadDnsObjects or ebpf.CollectionSpec.LoadAndAssign.
128
type dnsObjects struct {
129
	dnsPrograms
130
	dnsMaps
131
}
132

133
func (o *dnsObjects) Close() error {
134
	return _DnsClose(
135
		&o.dnsPrograms,
136
		&o.dnsMaps,
137
	)
138
}
139

140
// dnsMaps contains all maps after they have been loaded into the kernel.
141
//
142
// It can be passed to loadDnsObjects or ebpf.CollectionSpec.LoadAndAssign.
143
type dnsMaps struct {
144
	Events        *ebpf.Map `ebpf:"events"`
145
	GadgetSockets *ebpf.Map `ebpf:"gadget_sockets"`
146
	QueryMap      *ebpf.Map `ebpf:"query_map"`
147
	TmpEvent      *ebpf.Map `ebpf:"tmp_event"`
148
}
149

150
func (m *dnsMaps) Close() error {
151
	return _DnsClose(
152
		m.Events,
153
		m.GadgetSockets,
154
		m.QueryMap,
155
		m.TmpEvent,
156
	)
157
}
158

159
// dnsPrograms contains all programs after they have been loaded into the kernel.
160
//
161
// It can be passed to loadDnsObjects or ebpf.CollectionSpec.LoadAndAssign.
162
type dnsPrograms struct {
163
	IgTraceDns *ebpf.Program `ebpf:"ig_trace_dns"`
164
}
165

166
func (p *dnsPrograms) Close() error {
167
	return _DnsClose(
168
		p.IgTraceDns,
169
	)
170
}
171

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

181
// Do not access this directly.
182
//
183
//go:embed dns_bpfel.o
184
var _DnsBytes []byte
185

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

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

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

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