...
1 package link
2
3 import (
4 "testing"
5
6 "github.com/cilium/ebpf"
7 "github.com/cilium/ebpf/internal/testutils"
8 )
9
10 func TestProgramAlter(t *testing.T) {
11 testutils.SkipOnOldKernel(t, "4.13", "SkSKB type")
12
13 prog := mustLoadProgram(t, ebpf.SkSKB, 0, "")
14
15 var sockMap *ebpf.Map
16 sockMap, err := ebpf.NewMap(&ebpf.MapSpec{
17 Type: ebpf.MapType(15),
18 KeySize: 4,
19 ValueSize: 4,
20 MaxEntries: 2,
21 })
22 if err != nil {
23 t.Fatal(err)
24 }
25 defer sockMap.Close()
26
27 err = RawAttachProgram(RawAttachProgramOptions{
28 Target: sockMap.FD(),
29 Program: prog,
30 Attach: ebpf.AttachSkSKBStreamParser,
31 })
32 if err != nil {
33 t.Fatal(err)
34 }
35
36 err = RawDetachProgram(RawDetachProgramOptions{
37 Target: sockMap.FD(),
38 Program: prog,
39 Attach: ebpf.AttachSkSKBStreamParser,
40 })
41 if err != nil {
42 t.Fatal(err)
43 }
44 }
45
View as plain text