1[ 2 { 3 "id": "7a92", 4 "name": "Add basic filter with cmp ematch u8/link layer and default action", 5 "category": [ 6 "filter", 7 "basic" 8 ], 9 "setup": [ 10 "$TC qdisc add dev $DEV1 ingress" 11 ], 12 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'cmp(u8 at 0 layer link mask 0xff gt 10)' classid 1:1", 13 "expExitCode": "0", 14 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 15 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*cmp\\(u8 at 0 layer 0 mask 0xff gt 10\\)", 16 "matchCount": "1", 17 "teardown": [ 18 "$TC qdisc del dev $DEV1 ingress" 19 ] 20 }, 21 { 22 "id": "2e8a", 23 "name": "Add basic filter with cmp ematch u8/link layer with trans flag and default action", 24 "category": [ 25 "filter", 26 "basic" 27 ], 28 "setup": [ 29 "$TC qdisc add dev $DEV1 ingress" 30 ], 31 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'cmp(u8 at 0 layer link mask 0xff trans gt 10)' classid 1:1", 32 "expExitCode": "0", 33 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 34 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*cmp\\(u8 at 0 layer 0 mask 0xff trans gt 10\\)", 35 "matchCount": "1", 36 "teardown": [ 37 "$TC qdisc del dev $DEV1 ingress" 38 ] 39 }, 40 { 41 "id": "4d9f", 42 "name": "Add basic filter with cmp ematch u16/link layer and a single action", 43 "category": [ 44 "filter", 45 "basic" 46 ], 47 "setup": [ 48 "$TC qdisc add dev $DEV1 ingress" 49 ], 50 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'cmp(u16 at 0 layer 0 mask 0xff00 lt 3)' action pass", 51 "expExitCode": "0", 52 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 53 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1.*cmp\\(u16 at 0 layer 0 mask 0xff00 lt 3\\).*action.*gact action pass", 54 "matchCount": "1", 55 "teardown": [ 56 "$TC qdisc del dev $DEV1 ingress" 57 ] 58 }, 59 { 60 "id": "4943", 61 "name": "Add basic filter with cmp ematch u32/link layer and miltiple actions", 62 "category": [ 63 "filter", 64 "basic" 65 ], 66 "setup": [ 67 "$TC qdisc add dev $DEV1 ingress" 68 ], 69 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'cmp(u32 at 4 layer link mask 0xff00ff00 eq 3)' action skbedit mark 7 pipe action gact drop", 70 "expExitCode": "0", 71 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 72 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1.*cmp\\(u32 at 4 layer 0 mask 0xff00ff00 eq 3\\).*action.*skbedit.*mark 7 pipe.*action.*gact action drop", 73 "matchCount": "1", 74 "teardown": [ 75 "$TC qdisc del dev $DEV1 ingress" 76 ] 77 }, 78 { 79 "id": "7559", 80 "name": "Add basic filter with cmp ematch u8/network layer and default action", 81 "category": [ 82 "filter", 83 "basic" 84 ], 85 "setup": [ 86 "$TC qdisc add dev $DEV1 ingress" 87 ], 88 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 0xab protocol ip prio 11 basic match 'cmp(u8 at 0 layer 1 mask 0xff gt 10)' classid 1:1", 89 "expExitCode": "0", 90 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 0xab prio 11 protocol ip basic", 91 "matchPattern": "^filter parent ffff: protocol ip pref 11 basic.*handle 0xab flowid 1:1.*cmp\\(u8 at 0 layer 1 mask 0xff gt 10\\)", 92 "matchCount": "1", 93 "teardown": [ 94 "$TC qdisc del dev $DEV1 ingress" 95 ] 96 }, 97 { 98 "id": "aff4", 99 "name": "Add basic filter with cmp ematch u8/network layer with trans flag and default action", 100 "category": [ 101 "filter", 102 "basic" 103 ], 104 "setup": [ 105 "$TC qdisc add dev $DEV1 ingress" 106 ], 107 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 0xab protocol ip prio 11 basic match 'cmp(u8 at 0 layer 1 mask 0xff trans gt 10)' classid 1:1", 108 "expExitCode": "0", 109 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 0xab prio 11 protocol ip basic", 110 "matchPattern": "^filter parent ffff: protocol ip pref 11 basic.*handle 0xab flowid 1:1.*cmp\\(u8 at 0 layer 1 mask 0xff trans gt 10\\)", 111 "matchCount": "1", 112 "teardown": [ 113 "$TC qdisc del dev $DEV1 ingress" 114 ] 115 }, 116 { 117 "id": "c732", 118 "name": "Add basic filter with cmp ematch u16/network layer and a single action", 119 "category": [ 120 "filter", 121 "basic" 122 ], 123 "setup": [ 124 "$TC qdisc add dev $DEV1 ingress" 125 ], 126 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 0x100 protocol ip prio 100 basic match 'cmp(u16 at 0 layer network mask 0xff00 lt 3)' action pass", 127 "expExitCode": "0", 128 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 0x100 prio 100 protocol ip basic", 129 "matchPattern": "^filter parent ffff: protocol ip pref 100 basic.*handle 0x100.*cmp\\(u16 at 0 layer 1 mask 0xff00 lt 3\\).*action.*gact action pass", 130 "matchCount": "1", 131 "teardown": [ 132 "$TC qdisc del dev $DEV1 ingress" 133 ] 134 }, 135 { 136 "id": "32d8", 137 "name": "Add basic filter with cmp ematch u32/network layer and miltiple actions", 138 "category": [ 139 "filter", 140 "basic" 141 ], 142 "setup": [ 143 "$TC qdisc add dev $DEV1 ingress" 144 ], 145 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 0x112233 protocol ip prio 7 basic match 'cmp(u32 at 4 layer network mask 0xff00ff00 eq 3)' action skbedit mark 7 pipe action gact drop", 146 "expExitCode": "0", 147 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 0x112233 prio 7 protocol ip basic", 148 "matchPattern": "^filter parent ffff: protocol ip pref 7 basic.*handle 0x112233.*cmp\\(u32 at 4 layer 1 mask 0xff00ff00 eq 3\\).*action.*skbedit.*mark 7 pipe.*action.*gact action drop", 149 "matchCount": "1", 150 "teardown": [ 151 "$TC qdisc del dev $DEV1 ingress" 152 ] 153 }, 154 { 155 "id": "b99c", 156 "name": "Add basic filter with cmp ematch u8/transport layer and default action", 157 "category": [ 158 "filter", 159 "basic" 160 ], 161 "setup": [ 162 "$TC qdisc add dev $DEV1 ingress" 163 ], 164 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'cmp(u8 at 0 layer transport mask 0xff gt 10)' classid 1:1", 165 "expExitCode": "0", 166 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 167 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*cmp\\(u8 at 0 layer 2 mask 0xff gt 10\\)", 168 "matchCount": "1", 169 "teardown": [ 170 "$TC qdisc del dev $DEV1 ingress" 171 ] 172 }, 173 { 174 "id": "0752", 175 "name": "Add basic filter with cmp ematch u8/transport layer with trans flag and default action", 176 "category": [ 177 "filter", 178 "basic" 179 ], 180 "setup": [ 181 "$TC qdisc add dev $DEV1 ingress" 182 ], 183 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'cmp(u8 at 0 layer transport mask 0xff trans gt 10)' classid 1:1", 184 "expExitCode": "0", 185 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 186 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*cmp\\(u8 at 0 layer 2 mask 0xff trans gt 10\\)", 187 "matchCount": "1", 188 "teardown": [ 189 "$TC qdisc del dev $DEV1 ingress" 190 ] 191 }, 192 { 193 "id": "7e07", 194 "name": "Add basic filter with cmp ematch u16/transport layer and a single action", 195 "category": [ 196 "filter", 197 "basic" 198 ], 199 "setup": [ 200 "$TC qdisc add dev $DEV1 ingress" 201 ], 202 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'cmp(u16 at 0 layer 2 mask 0xff00 lt 3)' action pass", 203 "expExitCode": "0", 204 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 205 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1.*cmp\\(u16 at 0 layer 2 mask 0xff00 lt 3\\).*action.*gact action pass", 206 "matchCount": "1", 207 "teardown": [ 208 "$TC qdisc del dev $DEV1 ingress" 209 ] 210 }, 211 { 212 "id": "62d7", 213 "name": "Add basic filter with cmp ematch u32/transport layer and miltiple actions", 214 "category": [ 215 "filter", 216 "basic" 217 ], 218 "setup": [ 219 "$TC qdisc add dev $DEV1 ingress" 220 ], 221 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'cmp(u32 at 4 layer transport mask 0xff00ff00 eq 3)' action skbedit mark 7 pipe action gact drop", 222 "expExitCode": "0", 223 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 224 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1.*cmp\\(u32 at 4 layer 2 mask 0xff00ff00 eq 3\\).*action.*skbedit.*mark 7 pipe.*action.*gact action drop", 225 "matchCount": "1", 226 "teardown": [ 227 "$TC qdisc del dev $DEV1 ingress" 228 ] 229 }, 230 { 231 "id": "304b", 232 "name": "Add basic filter with NOT cmp ematch rule and default action", 233 "category": [ 234 "filter", 235 "basic" 236 ], 237 "setup": [ 238 "$TC qdisc add dev $DEV1 ingress" 239 ], 240 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'not cmp(u8 at 0 layer link mask 0xff eq 3)' classid 1:1", 241 "expExitCode": "0", 242 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 243 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*NOT cmp\\(u8 at 0 layer 0 mask 0xff eq 3\\)", 244 "matchCount": "1", 245 "teardown": [ 246 "$TC qdisc del dev $DEV1 ingress" 247 ] 248 }, 249 { 250 "id": "8ecb", 251 "name": "Add basic filter with two ANDed cmp ematch rules and single action", 252 "category": [ 253 "filter", 254 "basic" 255 ], 256 "setup": [ 257 "$TC qdisc add dev $DEV1 ingress" 258 ], 259 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'cmp(u8 at 0 layer link mask 0xff eq 3) and cmp(u16 at 8 layer link mask 0x00ff gt 7)' action gact drop", 260 "expExitCode": "0", 261 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 262 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1.*cmp\\(u8 at 0 layer 0 mask 0xff eq 3\\).*AND cmp\\(u16 at 8 layer 0 mask 0xff gt 7\\).*action.*gact action drop", 263 "matchCount": "1", 264 "teardown": [ 265 "$TC qdisc del dev $DEV1 ingress" 266 ] 267 }, 268 { 269 "id": "b1ad", 270 "name": "Add basic filter with two ORed cmp ematch rules and single action", 271 "category": [ 272 "filter", 273 "basic" 274 ], 275 "setup": [ 276 "$TC qdisc add dev $DEV1 ingress" 277 ], 278 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'cmp(u8 at 0 layer link mask 0xff eq 3) or cmp(u16 at 8 layer link mask 0x00ff gt 7)' action gact drop", 279 "expExitCode": "0", 280 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 281 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1.*cmp\\(u8 at 0 layer 0 mask 0xff eq 3\\).*OR cmp\\(u16 at 8 layer 0 mask 0xff gt 7\\).*action.*gact action drop", 282 "matchCount": "1", 283 "teardown": [ 284 "$TC qdisc del dev $DEV1 ingress" 285 ] 286 }, 287 { 288 "id": "4600", 289 "name": "Add basic filter with two ANDed cmp ematch rules and one ORed ematch rule and single action", 290 "category": [ 291 "filter", 292 "basic" 293 ], 294 "setup": [ 295 "$TC qdisc add dev $DEV1 ingress" 296 ], 297 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'cmp(u8 at 0 layer link mask 0xff eq 3) and cmp(u16 at 8 layer link mask 0x00ff gt 7) or cmp(u32 at 4 layer network mask 0xa0a0 lt 3)' action gact drop", 298 "expExitCode": "0", 299 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 300 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1.*cmp\\(u8 at 0 layer 0 mask 0xff eq 3\\).*AND cmp\\(u16 at 8 layer 0 mask 0xff gt 7\\).*OR cmp\\(u32 at 4 layer 1 mask 0xa0a0 lt 3\\).*action.*gact action drop", 301 "matchCount": "1", 302 "teardown": [ 303 "$TC qdisc del dev $DEV1 ingress" 304 ] 305 }, 306 { 307 "id": "bc59", 308 "name": "Add basic filter with two ANDed cmp ematch rules and one NOT ORed ematch rule and single action", 309 "category": [ 310 "filter", 311 "basic" 312 ], 313 "setup": [ 314 "$TC qdisc add dev $DEV1 ingress" 315 ], 316 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'cmp(u8 at 0 layer link mask 0xff eq 3) and cmp(u16 at 8 layer link mask 0x00ff gt 7) or not cmp(u32 at 4 layer network mask 0xa0a0 lt 3)' action gact drop", 317 "expExitCode": "0", 318 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 319 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1.*cmp\\(u8 at 0 layer 0 mask 0xff eq 3\\).*AND cmp\\(u16 at 8 layer 0 mask 0xff gt 7\\).*OR NOT cmp\\(u32 at 4 layer 1 mask 0xa0a0 lt 3\\).*action.*gact action drop", 320 "matchCount": "1", 321 "teardown": [ 322 "$TC qdisc del dev $DEV1 ingress" 323 ] 324 } 325] 326