forked from vishvananda/netlink
-
Notifications
You must be signed in to change notification settings - Fork 3
/
gtp_test.go
117 lines (111 loc) · 2.12 KB
/
gtp_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
//go:build linux
// +build linux
package netlink
import (
"net"
"testing"
)
func TestPDPv0AddDel(t *testing.T) {
tearDown := setUpNetlinkTestWithKModule(t, "gtp")
defer tearDown()
if err := LinkAdd(testGTPLink(t)); err != nil {
t.Fatal(err)
}
link, err := LinkByName("gtp0")
if err != nil {
t.Fatal(err)
}
err = GTPPDPAdd(link, &PDP{
PeerAddress: net.ParseIP("1.1.1.1"),
MSAddress: net.ParseIP("2.2.2.2"),
TID: 10,
})
if err != nil {
t.Fatal(err)
}
list, err := GTPPDPList()
if err != nil {
t.Fatal(err)
}
if len(list) != 1 {
t.Fatal("Failed to add v0 PDP")
}
pdp, err := GTPPDPByMSAddress(link, net.ParseIP("2.2.2.2"))
if err != nil {
t.Fatal(err)
}
if pdp == nil {
t.Fatal("failed to get v0 PDP by MS address")
}
pdp, err = GTPPDPByTID(link, 10)
if err != nil {
t.Fatal(err)
}
if pdp == nil {
t.Fatal("failed to get v0 PDP by TID")
}
err = GTPPDPDel(link, &PDP{TID: 10})
if err != nil {
t.Fatal(err)
}
list, err = GTPPDPList()
if err != nil {
t.Fatal(err)
}
if len(list) != 0 {
t.Fatal("Failed to delete v0 PDP")
}
}
func TestPDPv1AddDel(t *testing.T) {
tearDown := setUpNetlinkTestWithKModule(t, "gtp")
defer tearDown()
if err := LinkAdd(testGTPLink(t)); err != nil {
t.Fatal(err)
}
link, err := LinkByName("gtp0")
if err != nil {
t.Fatal(err)
}
err = GTPPDPAdd(link, &PDP{
PeerAddress: net.ParseIP("1.1.1.1"),
MSAddress: net.ParseIP("2.2.2.2"),
Version: 1,
ITEI: 10,
OTEI: 10,
})
if err != nil {
t.Fatal(err)
}
list, err := GTPPDPList()
if err != nil {
t.Fatal(err)
}
if len(list) != 1 {
t.Fatal("Failed to add v1 PDP")
}
pdp, err := GTPPDPByMSAddress(link, net.ParseIP("2.2.2.2"))
if err != nil {
t.Fatal(err)
}
if pdp == nil {
t.Fatal("failed to get v1 PDP by MS address")
}
pdp, err = GTPPDPByITEI(link, 10)
if err != nil {
t.Fatal(err)
}
if pdp == nil {
t.Fatal("failed to get v1 PDP by ITEI")
}
err = GTPPDPDel(link, &PDP{Version: 1, ITEI: 10})
if err != nil {
t.Fatal(err)
}
list, err = GTPPDPList()
if err != nil {
t.Fatal(err)
}
if len(list) != 0 {
t.Fatal("Failed to delete v1 PDP")
}
}