summaryrefslogtreecommitdiffstats
path: root/tests/py/ip6/frag.t.payload.ip6
blob: f3d2dd14d23914c1ed18173f2dbc2a3665cc5ca2 (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
160
161
162
163
164
165
166
167
168
169
170
171
172
# frag nexthdr tcp
ip6 test-ip6 output
  [ exthdr load ipv6 1b @ 44 + 0 => reg 1 ]
  [ cmp eq reg 1 0x06 ]

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

# frag nexthdr {esp, ah, comp, udp, udplite, tcp, dccp, sctp}
__set%d test-ip6 3
__set%d test-ip6 0
	element 32	element 33	element 6c	element 11	element 88	element 06	element 21	element 84
ip6 test-ip6 output
  [ exthdr load ipv6 1b @ 44 + 0 => reg 1 ]
  [ lookup reg 1 set __set%d ]

# frag nexthdr != {esp, ah, comp, udp, udplite, tcp, dccp, sctp}
__set%d test-ip6 3
__set%d test-ip6 0
	element 32	element 33	element 6c	element 11	element 88	element 06	element 21	element 84
ip6 test-ip6 output
  [ exthdr load ipv6 1b @ 44 + 0 => reg 1 ]
  [ lookup reg 1 set __set%d 0x1 ]

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

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

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

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

# frag reserved 33-45
ip6 test-ip6 output
  [ exthdr load ipv6 1b @ 44 + 1 => reg 1 ]
  [ range eq reg 1 0x21 0x2d ]

# frag reserved != 33-45
ip6 test-ip6 output
  [ exthdr load ipv6 1b @ 44 + 1 => reg 1 ]
  [ range neq reg 1 0x21 0x2d ]

# frag 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 output
  [ exthdr load ipv6 1b @ 44 + 1 => reg 1 ]
  [ lookup reg 1 set __set%d ]

# frag 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 output
  [ exthdr load ipv6 1b @ 44 + 1 => reg 1 ]
  [ lookup reg 1 set __set%d 0x1 ]

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

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

# frag frag-off 33-45
ip6 test-ip6 output
  [ exthdr load ipv6 2b @ 44 + 2 => reg 1 ]
  [ bitwise reg 1 = ( reg 1 & 0xfff8 ) ^ 0x0000 ]
  [ range eq reg 1 0x0108 0x0168 ]

# frag frag-off != 33-45
ip6 test-ip6 output
  [ exthdr load ipv6 2b @ 44 + 2 => reg 1 ]
  [ bitwise reg 1 = ( reg 1 & 0xfff8 ) ^ 0x0000 ]
  [ range neq reg 1 0x0108 0x0168 ]

# frag frag-off { 33, 55, 67, 88}
__set%d test-ip6 3
__set%d test-ip6 0
	element 0108	element 01b8	element 0218	element 02c0
ip6 test-ip6 output
  [ exthdr load ipv6 2b @ 44 + 2 => reg 1 ]
  [ bitwise reg 1 = ( reg 1 & 0xfff8 ) ^ 0x0000 ]
  [ lookup reg 1 set __set%d ]

# frag frag-off != { 33, 55, 67, 88}
__set%d test-ip6 3
__set%d test-ip6 0
	element 0108	element 01b8	element 0218	element 02c0
ip6 test-ip6 output
  [ exthdr load ipv6 2b @ 44 + 2 => reg 1 ]
  [ bitwise reg 1 = ( reg 1 & 0xfff8 ) ^ 0x0000 ]
  [ lookup reg 1 set __set%d 0x1 ]

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

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

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

# frag id 33-45
ip6 test-ip6 output
  [ exthdr load ipv6 4b @ 44 + 4 => reg 1 ]
  [ range eq reg 1 0x00000021 0x0000002d ]

# frag id != 33-45
ip6 test-ip6 output
  [ exthdr load ipv6 4b @ 44 + 4 => reg 1 ]
  [ range neq reg 1 0x00000021 0x0000002d ]

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

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

# frag reserved2 1
ip6 test-ip6 output
  [ exthdr load ipv6 1b @ 44 + 3 => reg 1 ]
  [ bitwise reg 1 = ( reg 1 & 0x06 ) ^ 0x00 ]
  [ cmp eq reg 1 0x02 ]

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

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