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
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
|
# mh nexthdr 1
ip6 test-ip6 input
[ exthdr load ipv6 1b @ 135 + 0 => reg 1 ]
[ cmp eq reg 1 0x01 ]
# mh nexthdr != 1
ip6 test-ip6 input
[ exthdr load ipv6 1b @ 135 + 0 => reg 1 ]
[ cmp neq reg 1 0x01 ]
# mh nexthdr { udplite, ipcomp, udp, ah, sctp, esp, dccp, tcp, ipv6-icmp }
__set%d test-ip6 3
__set%d test-ip6 0
element 88 element 6c element 11 element 33 element 84 element 32 element 21 element 06 element 3a
ip6 test-ip6 input
[ exthdr load ipv6 1b @ 135 + 0 => reg 1 ]
[ lookup reg 1 set __set%d ]
# mh nexthdr != { udplite, ipcomp, udp, ah, sctp, esp, dccp, tcp, ipv6-icmp }
__set%d test-ip6 3
__set%d test-ip6 0
element 88 element 6c element 11 element 33 element 84 element 32 element 21 element 06 element 3a
ip6 test-ip6 input
[ exthdr load ipv6 1b @ 135 + 0 => reg 1 ]
[ lookup reg 1 set __set%d 0x1 ]
# mh nexthdr icmp
ip6 test-ip6 input
[ exthdr load ipv6 1b @ 135 + 0 => reg 1 ]
[ cmp eq reg 1 0x01 ]
# mh nexthdr != icmp
ip6 test-ip6 input
[ exthdr load ipv6 1b @ 135 + 0 => reg 1 ]
[ cmp neq reg 1 0x01 ]
# mh nexthdr 22
ip6 test-ip6 input
[ exthdr load ipv6 1b @ 135 + 0 => reg 1 ]
[ cmp eq reg 1 0x16 ]
# mh nexthdr != 233
ip6 test-ip6 input
[ exthdr load ipv6 1b @ 135 + 0 => reg 1 ]
[ cmp neq reg 1 0xe9 ]
# mh nexthdr 33-45
ip6 test-ip6 input
[ exthdr load ipv6 1b @ 135 + 0 => reg 1 ]
[ range eq reg 1 0x21 0x2d ]
# mh nexthdr != 33-45
ip6 test-ip6 input
[ exthdr load ipv6 1b @ 135 + 0 => reg 1 ]
[ range neq reg 1 0x21 0x2d ]
# mh nexthdr { 33, 55, 67, 88 }
__set%d test-ip6 3
__set%d test-ip6 0
element 21 element 37 element 43 element 58
ip6 test-ip6 input
[ exthdr load ipv6 1b @ 135 + 0 => reg 1 ]
[ lookup reg 1 set __set%d ]
# mh nexthdr != { 33, 55, 67, 88 }
__set%d test-ip6 3
__set%d test-ip6 0
element 21 element 37 element 43 element 58
ip6 test-ip6 input
[ exthdr load ipv6 1b @ 135 + 0 => reg 1 ]
[ lookup reg 1 set __set%d 0x1 ]
# mh hdrlength 22
ip6 test-ip6 input
[ exthdr load ipv6 1b @ 135 + 1 => reg 1 ]
[ cmp eq reg 1 0x16 ]
# mh hdrlength != 233
ip6 test-ip6 input
[ exthdr load ipv6 1b @ 135 + 1 => reg 1 ]
[ cmp neq reg 1 0xe9 ]
# mh hdrlength 33-45
ip6 test-ip6 input
[ exthdr load ipv6 1b @ 135 + 1 => reg 1 ]
[ range eq reg 1 0x21 0x2d ]
# mh hdrlength != 33-45
ip6 test-ip6 input
[ exthdr load ipv6 1b @ 135 + 1 => reg 1 ]
[ range neq reg 1 0x21 0x2d ]
# mh hdrlength { 33, 55, 67, 88 }
__set%d test-ip6 3
__set%d test-ip6 0
element 21 element 37 element 43 element 58
ip6 test-ip6 input
[ exthdr load ipv6 1b @ 135 + 1 => reg 1 ]
[ lookup reg 1 set __set%d ]
# mh hdrlength != { 33, 55, 67, 88 }
__set%d test-ip6 3
__set%d test-ip6 0
element 21 element 37 element 43 element 58
ip6 test-ip6 input
[ exthdr load ipv6 1b @ 135 + 1 => reg 1 ]
[ lookup reg 1 set __set%d 0x1 ]
# mh type {binding-refresh-request, home-test-init, careof-test-init, home-test, careof-test, binding-update, binding-acknowledgement, binding-error, fast-binding-update, fast-binding-acknowledgement, fast-binding-advertisement, experimental-mobility-header, home-agent-switch-message}
__set%d test-ip6 3
__set%d test-ip6 0
element 00 element 01 element 02 element 03 element 04 element 05 element 06 element 07 element 08 element 09 element 0a element 0b element 0c
ip6 test-ip6 input
[ exthdr load ipv6 1b @ 135 + 2 => reg 1 ]
[ lookup reg 1 set __set%d ]
# mh type home-agent-switch-message
ip6 test-ip6 input
[ exthdr load ipv6 1b @ 135 + 2 => reg 1 ]
[ cmp eq reg 1 0x0c ]
# mh type != home-agent-switch-message
ip6 test-ip6 input
[ exthdr load ipv6 1b @ 135 + 2 => reg 1 ]
[ cmp neq reg 1 0x0c ]
# mh reserved 22
ip6 test-ip6 input
[ exthdr load ipv6 1b @ 135 + 3 => reg 1 ]
[ cmp eq reg 1 0x16 ]
# mh reserved != 233
ip6 test-ip6 input
[ exthdr load ipv6 1b @ 135 + 3 => reg 1 ]
[ cmp neq reg 1 0xe9 ]
# mh reserved 33-45
ip6 test-ip6 input
[ exthdr load ipv6 1b @ 135 + 3 => reg 1 ]
[ range eq reg 1 0x21 0x2d ]
# mh reserved != 33-45
ip6 test-ip6 input
[ exthdr load ipv6 1b @ 135 + 3 => reg 1 ]
[ range neq reg 1 0x21 0x2d ]
# mh reserved { 33, 55, 67, 88}
__set%d test-ip6 3
__set%d test-ip6 0
element 21 element 37 element 43 element 58
ip6 test-ip6 input
[ exthdr load ipv6 1b @ 135 + 3 => reg 1 ]
[ lookup reg 1 set __set%d ]
# mh reserved != { 33, 55, 67, 88}
__set%d test-ip6 3
__set%d test-ip6 0
element 21 element 37 element 43 element 58
ip6 test-ip6 input
[ exthdr load ipv6 1b @ 135 + 3 => reg 1 ]
[ lookup reg 1 set __set%d 0x1 ]
# mh checksum 22
ip6 test-ip6 input
[ exthdr load ipv6 2b @ 135 + 4 => reg 1 ]
[ cmp eq reg 1 0x0016 ]
# mh checksum != 233
ip6 test-ip6 input
[ exthdr load ipv6 2b @ 135 + 4 => reg 1 ]
[ cmp neq reg 1 0x00e9 ]
# mh checksum 33-45
ip6 test-ip6 input
[ exthdr load ipv6 2b @ 135 + 4 => reg 1 ]
[ range eq reg 1 0x0021 0x002d ]
# mh checksum != 33-45
ip6 test-ip6 input
[ exthdr load ipv6 2b @ 135 + 4 => reg 1 ]
[ range neq reg 1 0x0021 0x002d ]
# mh checksum { 33, 55, 67, 88}
__set%d test-ip6 3
__set%d test-ip6 0
element 0021 element 0037 element 0043 element 0058
ip6 test-ip6 input
[ exthdr load ipv6 2b @ 135 + 4 => reg 1 ]
[ lookup reg 1 set __set%d ]
# mh checksum != { 33, 55, 67, 88}
__set%d test-ip6 3
__set%d test-ip6 0
element 0021 element 0037 element 0043 element 0058
ip6 test-ip6 input
[ exthdr load ipv6 2b @ 135 + 4 => reg 1 ]
[ lookup reg 1 set __set%d 0x1 ]
|