summaryrefslogtreecommitdiffstats
path: root/tests/py/ip6/frag.t.payload.ip6
blob: d7a2e9f80fe6ff99b622b6a36d496d2cc32b131b (plain)
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
# frag nexthdr tcp
ip6 test-ip6 output
  [ exthdr load 1b @ 44 + 0 => reg 1 ]
  [ cmp eq reg 1 0x00000006 ]

# frag nexthdr != icmp
ip6 test-ip6 output
  [ exthdr load 1b @ 44 + 0 => reg 1 ]
  [ cmp neq reg 1 0x00000001 ]

# frag nexthdr {esp, ah, comp, udp, udplite, tcp, dccp, sctp}
set%d test-ip6 3
set%d test-ip6 0
	element 00000032  : 0 [end]	element 00000033  : 0 [end]	element 0000006c  : 0 [end]	element 00000011  : 0 [end]	element 00000088  : 0 [end]	element 00000006  : 0 [end]	element 00000021  : 0 [end]	element 00000084  : 0 [end]
ip6 test-ip6 output
  [ exthdr load 1b @ 44 + 0 => reg 1 ]
  [ lookup reg 1 set set%d ]

# frag nexthdr esp
ip6 test-ip6 output
  [ exthdr load 1b @ 44 + 0 => reg 1 ]
  [ cmp eq reg 1 0x00000032 ]

# frag nexthdr ah
ip6 test-ip6 output
  [ exthdr load 1b @ 44 + 0 => reg 1 ]
  [ cmp eq reg 1 0x00000033 ]

# frag reserved 22
ip6 test-ip6 output
  [ exthdr load 1b @ 44 + 1 => reg 1 ]
  [ cmp eq reg 1 0x00000016 ]

# frag reserved != 233
ip6 test-ip6 output
  [ exthdr load 1b @ 44 + 1 => reg 1 ]
  [ cmp neq reg 1 0x000000e9 ]

# frag reserved 33-45
ip6 test-ip6 output
  [ exthdr load 1b @ 44 + 1 => reg 1 ]
  [ cmp gte reg 1 0x00000021 ]
  [ cmp lte reg 1 0x0000002d ]

# frag reserved != 33-45
ip6 test-ip6 output
  [ exthdr load 1b @ 44 + 1 => reg 1 ]
  [ cmp lt reg 1 0x00000021 ]
  [ cmp gt reg 1 0x0000002d ]

# frag reserved { 33, 55, 67, 88}
set%d test-ip6 3
set%d test-ip6 0
	element 00000021  : 0 [end]	element 00000037  : 0 [end]	element 00000043  : 0 [end]	element 00000058  : 0 [end]
ip6 test-ip6 output
  [ exthdr load 1b @ 44 + 1 => reg 1 ]
  [ lookup reg 1 set set%d ]

# frag reserved { 33-55}
set%d test-ip6 7
set%d test-ip6 0
	element 00000000  : 1 [end]	element 00000021  : 0 [end]	element 00000038  : 1 [end]
ip6 test-ip6 output
  [ exthdr load 1b @ 44 + 1 => reg 1 ]
  [ lookup reg 1 set set%d ]

# frag frag-off 22
ip6 test-ip6 output
  [ exthdr load 2b @ 44 + 2 => reg 1 ]
  [ bitwise reg 1 = (reg=1 & 0x0000f8ff ) ^ 0x00000000 ]
  [ cmp eq reg 1 0x0000b000 ]

# frag frag-off != 233
ip6 test-ip6 output
  [ exthdr load 2b @ 44 + 2 => reg 1 ]
  [ bitwise reg 1 = (reg=1 & 0x0000f8ff ) ^ 0x00000000 ]
  [ cmp neq reg 1 0x00004807 ]

# frag frag-off 33-45
ip6 test-ip6 output
  [ exthdr load 2b @ 44 + 2 => reg 1 ]
  [ bitwise reg 1 = (reg=1 & 0x0000f8ff ) ^ 0x00000000 ]
  [ cmp gte reg 1 0x00000801 ]
  [ cmp lte reg 1 0x00006801 ]

# frag frag-off != 33-45
ip6 test-ip6 output
  [ exthdr load 2b @ 44 + 2 => reg 1 ]
  [ bitwise reg 1 = (reg=1 & 0x0000f8ff ) ^ 0x00000000 ]
  [ cmp lt reg 1 0x00000801 ]
  [ cmp gt reg 1 0x00006801 ]

# frag frag-off { 33, 55, 67, 88}
set%d test-ip6 3
set%d test-ip6 0
	element 00000801  : 0 [end]	element 0000b801  : 0 [end]	element 00001802  : 0 [end]	element 0000c002  : 0 [end]
ip6 test-ip6 output
  [ exthdr load 2b @ 44 + 2 => reg 1 ]
  [ bitwise reg 1 = (reg=1 & 0x0000f8ff ) ^ 0x00000000 ]
  [ lookup reg 1 set set%d ]

# frag frag-off { 33-55}
set%d test-ip6 7
set%d test-ip6 0
	element 00000000  : 1 [end]	element 00000801  : 0 [end]	element 0000b901  : 1 [end]
ip6 test-ip6 output 
  [ exthdr load 2b @ 44 + 2 => reg 1 ]
  [ bitwise reg 1 = (reg=1 & 0x0000f8ff ) ^ 0x00000000 ]
  [ lookup reg 1 set set%d ]

# frag more-fragments 1
ip6 test-ip6 output
  [ exthdr load 1b @ 44 + 3 => reg 1 ]
  [ bitwise reg 1 = (reg=1 & 0x00000001 ) ^ 0x00000000 ]
  [ cmp eq reg 1 0x00000001 ]

# frag id 1
ip6 test-ip6 output
  [ exthdr load 4b @ 44 + 4 => reg 1 ]
  [ cmp eq reg 1 0x01000000 ]

# frag id 22
ip6 test-ip6 output
  [ exthdr load 4b @ 44 + 4 => reg 1 ]
  [ cmp eq reg 1 0x16000000 ]

# frag id != 33
ip6 test-ip6 output
  [ exthdr load 4b @ 44 + 4 => reg 1 ]
  [ cmp neq reg 1 0x21000000 ]

# frag id 33-45
ip6 test-ip6 output
  [ exthdr load 4b @ 44 + 4 => reg 1 ]
  [ cmp gte reg 1 0x21000000 ]
  [ cmp lte reg 1 0x2d000000 ]

# frag id != 33-45
ip6 test-ip6 output
  [ exthdr load 4b @ 44 + 4 => reg 1 ]
  [ cmp lt reg 1 0x21000000 ]
  [ cmp gt reg 1 0x2d000000 ]

# frag id { 33, 55, 67, 88}
set%d test-ip6 3
set%d test-ip6 0
	element 21000000  : 0 [end]	element 37000000  : 0 [end]	element 43000000  : 0 [end]	element 58000000  : 0 [end]
ip6 test-ip6 output
  [ exthdr load 4b @ 44 + 4 => reg 1 ]
  [ lookup reg 1 set set%d ]

# frag id { 33-55}
set%d test-ip6 7
set%d test-ip6 0
	element 00000000  : 1 [end]	element 21000000  : 0 [end]	element 38000000  : 1 [end]
ip6 test-ip6 output
  [ exthdr load 4b @ 44 + 4 => reg 1 ]
  [ lookup reg 1 set set%d ]