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 "plugins": { 10 "requires": "nsPlugin" 11 }, 12 "setup": [ 13 "$TC qdisc add dev $DEV1 ingress" 14 ], 15 "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", 16 "expExitCode": "0", 17 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 18 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*cmp\\(u8 at 0 layer 0 mask 0xff gt 10\\)", 19 "matchCount": "1", 20 "teardown": [ 21 "$TC qdisc del dev $DEV1 ingress" 22 ] 23 }, 24 { 25 "id": "2e8a", 26 "name": "Add basic filter with cmp ematch u8/link layer with trans flag and default action", 27 "category": [ 28 "filter", 29 "basic" 30 ], 31 "plugins": { 32 "requires": "nsPlugin" 33 }, 34 "setup": [ 35 "$TC qdisc add dev $DEV1 ingress" 36 ], 37 "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", 38 "expExitCode": "0", 39 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 40 "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\\)", 41 "matchCount": "1", 42 "teardown": [ 43 "$TC qdisc del dev $DEV1 ingress" 44 ] 45 }, 46 { 47 "id": "4d9f", 48 "name": "Add basic filter with cmp ematch u16/link layer and a single action", 49 "category": [ 50 "filter", 51 "basic" 52 ], 53 "plugins": { 54 "requires": "nsPlugin" 55 }, 56 "setup": [ 57 "$TC qdisc add dev $DEV1 ingress" 58 ], 59 "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", 60 "expExitCode": "0", 61 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 62 "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", 63 "matchCount": "1", 64 "teardown": [ 65 "$TC qdisc del dev $DEV1 ingress" 66 ] 67 }, 68 { 69 "id": "4943", 70 "name": "Add basic filter with cmp ematch u32/link layer and miltiple actions", 71 "category": [ 72 "filter", 73 "basic" 74 ], 75 "plugins": { 76 "requires": "nsPlugin" 77 }, 78 "setup": [ 79 "$TC qdisc add dev $DEV1 ingress" 80 ], 81 "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", 82 "expExitCode": "0", 83 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 84 "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", 85 "matchCount": "1", 86 "teardown": [ 87 "$TC qdisc del dev $DEV1 ingress" 88 ] 89 }, 90 { 91 "id": "7559", 92 "name": "Add basic filter with cmp ematch u8/network layer and default action", 93 "category": [ 94 "filter", 95 "basic" 96 ], 97 "plugins": { 98 "requires": "nsPlugin" 99 }, 100 "setup": [ 101 "$TC qdisc add dev $DEV1 ingress" 102 ], 103 "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", 104 "expExitCode": "0", 105 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 0xab prio 11 protocol ip basic", 106 "matchPattern": "^filter parent ffff: protocol ip pref 11 basic.*handle 0xab flowid 1:1.*cmp\\(u8 at 0 layer 1 mask 0xff gt 10\\)", 107 "matchCount": "1", 108 "teardown": [ 109 "$TC qdisc del dev $DEV1 ingress" 110 ] 111 }, 112 { 113 "id": "aff4", 114 "name": "Add basic filter with cmp ematch u8/network layer with trans flag and default action", 115 "category": [ 116 "filter", 117 "basic" 118 ], 119 "plugins": { 120 "requires": "nsPlugin" 121 }, 122 "setup": [ 123 "$TC qdisc add dev $DEV1 ingress" 124 ], 125 "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", 126 "expExitCode": "0", 127 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 0xab prio 11 protocol ip basic", 128 "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\\)", 129 "matchCount": "1", 130 "teardown": [ 131 "$TC qdisc del dev $DEV1 ingress" 132 ] 133 }, 134 { 135 "id": "c732", 136 "name": "Add basic filter with cmp ematch u16/network layer and a single action", 137 "category": [ 138 "filter", 139 "basic" 140 ], 141 "plugins": { 142 "requires": "nsPlugin" 143 }, 144 "setup": [ 145 "$TC qdisc add dev $DEV1 ingress" 146 ], 147 "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", 148 "expExitCode": "0", 149 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 0x100 prio 100 protocol ip basic", 150 "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", 151 "matchCount": "1", 152 "teardown": [ 153 "$TC qdisc del dev $DEV1 ingress" 154 ] 155 }, 156 { 157 "id": "32d8", 158 "name": "Add basic filter with cmp ematch u32/network layer and miltiple actions", 159 "category": [ 160 "filter", 161 "basic" 162 ], 163 "plugins": { 164 "requires": "nsPlugin" 165 }, 166 "setup": [ 167 "$TC qdisc add dev $DEV1 ingress" 168 ], 169 "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", 170 "expExitCode": "0", 171 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 0x112233 prio 7 protocol ip basic", 172 "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", 173 "matchCount": "1", 174 "teardown": [ 175 "$TC qdisc del dev $DEV1 ingress" 176 ] 177 }, 178 { 179 "id": "b99c", 180 "name": "Add basic filter with cmp ematch u8/transport layer and default action", 181 "category": [ 182 "filter", 183 "basic" 184 ], 185 "plugins": { 186 "requires": "nsPlugin" 187 }, 188 "setup": [ 189 "$TC qdisc add dev $DEV1 ingress" 190 ], 191 "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", 192 "expExitCode": "0", 193 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 194 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*cmp\\(u8 at 0 layer 2 mask 0xff gt 10\\)", 195 "matchCount": "1", 196 "teardown": [ 197 "$TC qdisc del dev $DEV1 ingress" 198 ] 199 }, 200 { 201 "id": "0752", 202 "name": "Add basic filter with cmp ematch u8/transport layer with trans flag and default action", 203 "category": [ 204 "filter", 205 "basic" 206 ], 207 "plugins": { 208 "requires": "nsPlugin" 209 }, 210 "setup": [ 211 "$TC qdisc add dev $DEV1 ingress" 212 ], 213 "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", 214 "expExitCode": "0", 215 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 216 "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\\)", 217 "matchCount": "1", 218 "teardown": [ 219 "$TC qdisc del dev $DEV1 ingress" 220 ] 221 }, 222 { 223 "id": "7e07", 224 "name": "Add basic filter with cmp ematch u16/transport layer and a single action", 225 "category": [ 226 "filter", 227 "basic" 228 ], 229 "plugins": { 230 "requires": "nsPlugin" 231 }, 232 "setup": [ 233 "$TC qdisc add dev $DEV1 ingress" 234 ], 235 "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", 236 "expExitCode": "0", 237 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 238 "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", 239 "matchCount": "1", 240 "teardown": [ 241 "$TC qdisc del dev $DEV1 ingress" 242 ] 243 }, 244 { 245 "id": "62d7", 246 "name": "Add basic filter with cmp ematch u32/transport layer and miltiple actions", 247 "category": [ 248 "filter", 249 "basic" 250 ], 251 "plugins": { 252 "requires": "nsPlugin" 253 }, 254 "setup": [ 255 "$TC qdisc add dev $DEV1 ingress" 256 ], 257 "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", 258 "expExitCode": "0", 259 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 260 "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", 261 "matchCount": "1", 262 "teardown": [ 263 "$TC qdisc del dev $DEV1 ingress" 264 ] 265 }, 266 { 267 "id": "304b", 268 "name": "Add basic filter with NOT cmp ematch rule and default action", 269 "category": [ 270 "filter", 271 "basic" 272 ], 273 "plugins": { 274 "requires": "nsPlugin" 275 }, 276 "setup": [ 277 "$TC qdisc add dev $DEV1 ingress" 278 ], 279 "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", 280 "expExitCode": "0", 281 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 282 "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\\)", 283 "matchCount": "1", 284 "teardown": [ 285 "$TC qdisc del dev $DEV1 ingress" 286 ] 287 }, 288 { 289 "id": "8ecb", 290 "name": "Add basic filter with two ANDed cmp ematch rules and single action", 291 "category": [ 292 "filter", 293 "basic" 294 ], 295 "plugins": { 296 "requires": "nsPlugin" 297 }, 298 "setup": [ 299 "$TC qdisc add dev $DEV1 ingress" 300 ], 301 "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", 302 "expExitCode": "0", 303 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 304 "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", 305 "matchCount": "1", 306 "teardown": [ 307 "$TC qdisc del dev $DEV1 ingress" 308 ] 309 }, 310 { 311 "id": "b1ad", 312 "name": "Add basic filter with two ORed cmp ematch rules and single action", 313 "category": [ 314 "filter", 315 "basic" 316 ], 317 "plugins": { 318 "requires": "nsPlugin" 319 }, 320 "setup": [ 321 "$TC qdisc add dev $DEV1 ingress" 322 ], 323 "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", 324 "expExitCode": "0", 325 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 326 "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", 327 "matchCount": "1", 328 "teardown": [ 329 "$TC qdisc del dev $DEV1 ingress" 330 ] 331 }, 332 { 333 "id": "4600", 334 "name": "Add basic filter with two ANDed cmp ematch rules and one ORed ematch rule and single action", 335 "category": [ 336 "filter", 337 "basic" 338 ], 339 "plugins": { 340 "requires": "nsPlugin" 341 }, 342 "setup": [ 343 "$TC qdisc add dev $DEV1 ingress" 344 ], 345 "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", 346 "expExitCode": "0", 347 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 348 "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", 349 "matchCount": "1", 350 "teardown": [ 351 "$TC qdisc del dev $DEV1 ingress" 352 ] 353 }, 354 { 355 "id": "bc59", 356 "name": "Add basic filter with two ANDed cmp ematch rules and one NOT ORed ematch rule and single action", 357 "category": [ 358 "filter", 359 "basic" 360 ], 361 "plugins": { 362 "requires": "nsPlugin" 363 }, 364 "setup": [ 365 "$TC qdisc add dev $DEV1 ingress" 366 ], 367 "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", 368 "expExitCode": "0", 369 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 370 "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", 371 "matchCount": "1", 372 "teardown": [ 373 "$TC qdisc del dev $DEV1 ingress" 374 ] 375 }, 376 { 377 "id": "bae4", 378 "name": "Add basic filter with u32 ematch u8/zero offset and default action", 379 "category": [ 380 "filter", 381 "basic" 382 ], 383 "plugins": { 384 "requires": "nsPlugin" 385 }, 386 "setup": [ 387 "$TC qdisc add dev $DEV1 ingress" 388 ], 389 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'u32(u8 0x11 0x0f at 0)' classid 1:1", 390 "expExitCode": "0", 391 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 392 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*u32\\(01000000/0f000000 at 0\\)", 393 "matchCount": "1", 394 "teardown": [ 395 "$TC qdisc del dev $DEV1 ingress" 396 ] 397 }, 398 { 399 "id": "e6cb", 400 "name": "Add basic filter with u32 ematch u8/zero offset and invalid value >0xFF", 401 "category": [ 402 "filter", 403 "basic" 404 ], 405 "plugins": { 406 "requires": "nsPlugin" 407 }, 408 "setup": [ 409 "$TC qdisc add dev $DEV1 ingress" 410 ], 411 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'u32(u8 0x1122 0x0f at 0)' classid 1:1", 412 "expExitCode": "1", 413 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 414 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*u32\\(11220000/0f000000 at 0\\)", 415 "matchCount": "0", 416 "teardown": [ 417 "$TC qdisc del dev $DEV1 ingress" 418 ] 419 }, 420 { 421 "id": "7727", 422 "name": "Add basic filter with u32 ematch u8/positive offset and default action", 423 "category": [ 424 "filter", 425 "basic" 426 ], 427 "plugins": { 428 "requires": "nsPlugin" 429 }, 430 "setup": [ 431 "$TC qdisc add dev $DEV1 ingress" 432 ], 433 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'u32(u8 0x77 0x1f at 12)' classid 1:1", 434 "expExitCode": "0", 435 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 436 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*u32\\(17000000/1f000000 at 12\\)", 437 "matchCount": "1", 438 "teardown": [ 439 "$TC qdisc del dev $DEV1 ingress" 440 ] 441 }, 442 { 443 "id": "a429", 444 "name": "Add basic filter with u32 ematch u8/invalid mask >0xFF", 445 "category": [ 446 "filter", 447 "basic" 448 ], 449 "plugins": { 450 "requires": "nsPlugin" 451 }, 452 "setup": [ 453 "$TC qdisc add dev $DEV1 ingress" 454 ], 455 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'u32(u8 0x77 0xff00 at 12)' classid 1:1", 456 "expExitCode": "1", 457 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 458 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*u32\\(77000000/ff000000 at 12\\)", 459 "matchCount": "0", 460 "teardown": [ 461 "$TC qdisc del dev $DEV1 ingress" 462 ] 463 }, 464 { 465 "id": "8373", 466 "name": "Add basic filter with u32 ematch u8/missing offset", 467 "category": [ 468 "filter", 469 "basic" 470 ], 471 "plugins": { 472 "requires": "nsPlugin" 473 }, 474 "setup": [ 475 "$TC qdisc add dev $DEV1 ingress" 476 ], 477 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'u32(u8 0x77 0xff at)' classid 1:1", 478 "expExitCode": "1", 479 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 480 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*u32\\(77000000 at 12\\)", 481 "matchCount": "0", 482 "teardown": [ 483 "$TC qdisc del dev $DEV1 ingress" 484 ] 485 }, 486 { 487 "id": "ab8e", 488 "name": "Add basic filter with u32 ematch u8/missing AT keyword", 489 "category": [ 490 "filter", 491 "basic" 492 ], 493 "plugins": { 494 "requires": "nsPlugin" 495 }, 496 "setup": [ 497 "$TC qdisc add dev $DEV1 ingress" 498 ], 499 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'u32(u8 0x77 0xff 0)' classid 1:1", 500 "expExitCode": "1", 501 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 502 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*u32\\(77000000 at 12\\)", 503 "matchCount": "0", 504 "teardown": [ 505 "$TC qdisc del dev $DEV1 ingress" 506 ] 507 }, 508 { 509 "id": "712d", 510 "name": "Add basic filter with u32 ematch u8/missing value", 511 "category": [ 512 "filter", 513 "basic" 514 ], 515 "plugins": { 516 "requires": "nsPlugin" 517 }, 518 "setup": [ 519 "$TC qdisc add dev $DEV1 ingress" 520 ], 521 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'u32(u8 at 12)' classid 1:1", 522 "expExitCode": "1", 523 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 524 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*u32\\(at 12\\)", 525 "matchCount": "0", 526 "teardown": [ 527 "$TC qdisc del dev $DEV1 ingress" 528 ] 529 }, 530 { 531 "id": "350f", 532 "name": "Add basic filter with u32 ematch u8/non-numeric value", 533 "category": [ 534 "filter", 535 "basic" 536 ], 537 "plugins": { 538 "requires": "nsPlugin" 539 }, 540 "setup": [ 541 "$TC qdisc add dev $DEV1 ingress" 542 ], 543 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'u32(u8 zero 0xff at 0)' classid 1:1", 544 "expExitCode": "1", 545 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 546 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*u32\\(00000000/ff000000 at 0\\)", 547 "matchCount": "0", 548 "teardown": [ 549 "$TC qdisc del dev $DEV1 ingress" 550 ] 551 }, 552 { 553 "id": "e28f", 554 "name": "Add basic filter with u32 ematch u8/non-numeric mask", 555 "category": [ 556 "filter", 557 "basic" 558 ], 559 "plugins": { 560 "requires": "nsPlugin" 561 }, 562 "setup": [ 563 "$TC qdisc add dev $DEV1 ingress" 564 ], 565 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'u32(u8 0x11 mask at 0)' classid 1:1", 566 "expExitCode": "1", 567 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 568 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*u32\\(11000000/00000000 at 0\\)", 569 "matchCount": "0", 570 "teardown": [ 571 "$TC qdisc del dev $DEV1 ingress" 572 ] 573 }, 574 { 575 "id": "6d5f", 576 "name": "Add basic filter with u32 ematch u8/negative offset and default action", 577 "category": [ 578 "filter", 579 "basic" 580 ], 581 "plugins": { 582 "requires": "nsPlugin" 583 }, 584 "setup": [ 585 "$TC qdisc add dev $DEV1 ingress" 586 ], 587 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'u32(u8 0xaa 0xf0 at -14)' classid 1:1", 588 "expExitCode": "0", 589 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 590 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*u32\\(0000a000/0000f000 at -16\\)", 591 "matchCount": "1", 592 "teardown": [ 593 "$TC qdisc del dev $DEV1 ingress" 594 ] 595 }, 596 { 597 "id": "12dc", 598 "name": "Add basic filter with u32 ematch u8/nexthdr+ offset and default action", 599 "category": [ 600 "filter", 601 "basic" 602 ], 603 "plugins": { 604 "requires": "nsPlugin" 605 }, 606 "setup": [ 607 "$TC qdisc add dev $DEV1 ingress" 608 ], 609 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'u32(u8 0xaa 0xf0 at nexthdr+0)' classid 1:1", 610 "expExitCode": "0", 611 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 612 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*u32\\(a0000000/f0000000 at nexthdr\\+0\\)", 613 "matchCount": "1", 614 "teardown": [ 615 "$TC qdisc del dev $DEV1 ingress" 616 ] 617 }, 618 { 619 "id": "1d85", 620 "name": "Add basic filter with u32 ematch u16/zero offset and default action", 621 "category": [ 622 "filter", 623 "basic" 624 ], 625 "plugins": { 626 "requires": "nsPlugin" 627 }, 628 "setup": [ 629 "$TC qdisc add dev $DEV1 ingress" 630 ], 631 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'u32(u16 0x1122 0xffff at 0)' classid 1:1", 632 "expExitCode": "0", 633 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 634 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*u32\\(11220000/ffff0000 at 0\\)", 635 "matchCount": "1", 636 "teardown": [ 637 "$TC qdisc del dev $DEV1 ingress" 638 ] 639 }, 640 { 641 "id": "3672", 642 "name": "Add basic filter with u32 ematch u16/zero offset and invalid value >0xFFFF", 643 "category": [ 644 "filter", 645 "basic" 646 ], 647 "plugins": { 648 "requires": "nsPlugin" 649 }, 650 "setup": [ 651 "$TC qdisc add dev $DEV1 ingress" 652 ], 653 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'u32(u16 0x112233 0xffff at 0)' classid 1:1", 654 "expExitCode": "1", 655 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 656 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*u32\\(11223300/ffff0000 at 0\\)", 657 "matchCount": "0", 658 "teardown": [ 659 "$TC qdisc del dev $DEV1 ingress" 660 ] 661 }, 662 { 663 "id": "7fb0", 664 "name": "Add basic filter with u32 ematch u16/positive offset and default action", 665 "category": [ 666 "filter", 667 "basic" 668 ], 669 "plugins": { 670 "requires": "nsPlugin" 671 }, 672 "setup": [ 673 "$TC qdisc add dev $DEV1 ingress" 674 ], 675 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'u32(u16 0x7788 0x1fff at 12)' classid 1:1", 676 "expExitCode": "0", 677 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 678 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*u32\\(17880000/1fff0000 at 12\\)", 679 "matchCount": "1", 680 "teardown": [ 681 "$TC qdisc del dev $DEV1 ingress" 682 ] 683 }, 684 { 685 "id": "19af", 686 "name": "Add basic filter with u32 ematch u16/invalid mask >0xFFFF", 687 "category": [ 688 "filter", 689 "basic" 690 ], 691 "plugins": { 692 "requires": "nsPlugin" 693 }, 694 "setup": [ 695 "$TC qdisc add dev $DEV1 ingress" 696 ], 697 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'u32(u16 0x7788 0xffffffff at 12)' classid 1:1", 698 "expExitCode": "1", 699 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 700 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*u32\\(77880000/ffffffff at 12\\)", 701 "matchCount": "0", 702 "teardown": [ 703 "$TC qdisc del dev $DEV1 ingress" 704 ] 705 }, 706 { 707 "id": "446d", 708 "name": "Add basic filter with u32 ematch u16/missing offset", 709 "category": [ 710 "filter", 711 "basic" 712 ], 713 "plugins": { 714 "requires": "nsPlugin" 715 }, 716 "setup": [ 717 "$TC qdisc add dev $DEV1 ingress" 718 ], 719 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'u32(u16 0x7788 0xffff at)' classid 1:1", 720 "expExitCode": "1", 721 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 722 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*u32\\(77880000 at 12\\)", 723 "matchCount": "0", 724 "teardown": [ 725 "$TC qdisc del dev $DEV1 ingress" 726 ] 727 }, 728 { 729 "id": "151b", 730 "name": "Add basic filter with u32 ematch u16/missing AT keyword", 731 "category": [ 732 "filter", 733 "basic" 734 ], 735 "plugins": { 736 "requires": "nsPlugin" 737 }, 738 "setup": [ 739 "$TC qdisc add dev $DEV1 ingress" 740 ], 741 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'u32(u16 0x7788 0xffff 0)' classid 1:1", 742 "expExitCode": "1", 743 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 744 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*u32\\(77880000/ffff0000 at 0\\)", 745 "matchCount": "0", 746 "teardown": [ 747 "$TC qdisc del dev $DEV1 ingress" 748 ] 749 }, 750 { 751 "id": "bb23", 752 "name": "Add basic filter with u32 ematch u16/missing value", 753 "category": [ 754 "filter", 755 "basic" 756 ], 757 "plugins": { 758 "requires": "nsPlugin" 759 }, 760 "setup": [ 761 "$TC qdisc add dev $DEV1 ingress" 762 ], 763 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'u32(u16 at 12)' classid 1:1", 764 "expExitCode": "1", 765 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 766 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*u32\\(at 12\\)", 767 "matchCount": "0", 768 "teardown": [ 769 "$TC qdisc del dev $DEV1 ingress" 770 ] 771 }, 772 { 773 "id": "decc", 774 "name": "Add basic filter with u32 ematch u16/non-numeric value", 775 "category": [ 776 "filter", 777 "basic" 778 ], 779 "plugins": { 780 "requires": "nsPlugin" 781 }, 782 "setup": [ 783 "$TC qdisc add dev $DEV1 ingress" 784 ], 785 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'u32(u16 zero 0xffff at 0)' classid 1:1", 786 "expExitCode": "1", 787 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 788 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*u32\\(00000000/ffff0000 at 0\\)", 789 "matchCount": "0", 790 "teardown": [ 791 "$TC qdisc del dev $DEV1 ingress" 792 ] 793 }, 794 { 795 "id": "e988", 796 "name": "Add basic filter with u32 ematch u16/non-numeric mask", 797 "category": [ 798 "filter", 799 "basic" 800 ], 801 "plugins": { 802 "requires": "nsPlugin" 803 }, 804 "setup": [ 805 "$TC qdisc add dev $DEV1 ingress" 806 ], 807 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'u32(u8 0x1122 mask at 0)' classid 1:1", 808 "expExitCode": "1", 809 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 810 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*u32\\(11220000/00000000 at 0\\)", 811 "matchCount": "0", 812 "teardown": [ 813 "$TC qdisc del dev $DEV1 ingress" 814 ] 815 }, 816 { 817 "id": "07d8", 818 "name": "Add basic filter with u32 ematch u16/negative offset and default action", 819 "category": [ 820 "filter", 821 "basic" 822 ], 823 "plugins": { 824 "requires": "nsPlugin" 825 }, 826 "setup": [ 827 "$TC qdisc add dev $DEV1 ingress" 828 ], 829 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'u32(u16 0xaabb 0xffff at -12)' classid 1:1", 830 "expExitCode": "0", 831 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 832 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*u32\\(aabb0000/ffff0000 at -12\\)", 833 "matchCount": "1", 834 "teardown": [ 835 "$TC qdisc del dev $DEV1 ingress" 836 ] 837 }, 838 { 839 "id": "f474", 840 "name": "Add basic filter with u32 ematch u16/nexthdr+ offset and default action", 841 "category": [ 842 "filter", 843 "basic" 844 ], 845 "plugins": { 846 "requires": "nsPlugin" 847 }, 848 "setup": [ 849 "$TC qdisc add dev $DEV1 ingress" 850 ], 851 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'u32(u16 0xaabb 0xf0f0 at nexthdr+0)' classid 1:1", 852 "expExitCode": "0", 853 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 854 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*u32\\(a0b00000/f0f00000 at nexthdr\\+0\\)", 855 "matchCount": "1", 856 "teardown": [ 857 "$TC qdisc del dev $DEV1 ingress" 858 ] 859 }, 860 { 861 "id": "47a0", 862 "name": "Add basic filter with u32 ematch u32/zero offset and default action", 863 "category": [ 864 "filter", 865 "basic" 866 ], 867 "plugins": { 868 "requires": "nsPlugin" 869 }, 870 "setup": [ 871 "$TC qdisc add dev $DEV1 ingress" 872 ], 873 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'u32(u32 0xaabbccdd 0xffffffff at 0)' classid 1:1", 874 "expExitCode": "0", 875 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 876 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*u32\\(aabbccdd/ffffffff at 0\\)", 877 "matchCount": "1", 878 "teardown": [ 879 "$TC qdisc del dev $DEV1 ingress" 880 ] 881 }, 882 { 883 "id": "849f", 884 "name": "Add basic filter with u32 ematch u32/positive offset and default action", 885 "category": [ 886 "filter", 887 "basic" 888 ], 889 "plugins": { 890 "requires": "nsPlugin" 891 }, 892 "setup": [ 893 "$TC qdisc add dev $DEV1 ingress" 894 ], 895 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'u32(u32 0x11227788 0x1ffff0f0 at 12)' classid 1:1", 896 "expExitCode": "0", 897 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 898 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*u32\\(11227080/1ffff0f0 at 12\\)", 899 "matchCount": "1", 900 "teardown": [ 901 "$TC qdisc del dev $DEV1 ingress" 902 ] 903 }, 904 { 905 "id": "d288", 906 "name": "Add basic filter with u32 ematch u32/missing offset", 907 "category": [ 908 "filter", 909 "basic" 910 ], 911 "plugins": { 912 "requires": "nsPlugin" 913 }, 914 "setup": [ 915 "$TC qdisc add dev $DEV1 ingress" 916 ], 917 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'u32(u32 0x11227788 0xffffffff at)' classid 1:1", 918 "expExitCode": "1", 919 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 920 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*u32\\(11227788/ffffffff at 12\\)", 921 "matchCount": "0", 922 "teardown": [ 923 "$TC qdisc del dev $DEV1 ingress" 924 ] 925 }, 926 { 927 "id": "4998", 928 "name": "Add basic filter with u32 ematch u32/missing AT keyword", 929 "category": [ 930 "filter", 931 "basic" 932 ], 933 "plugins": { 934 "requires": "nsPlugin" 935 }, 936 "setup": [ 937 "$TC qdisc add dev $DEV1 ingress" 938 ], 939 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'u32(u32 0x77889900 0xfffff0f0 0)' classid 1:1", 940 "expExitCode": "1", 941 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 942 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*u32\\(77889900/fffff0f0 at 0\\)", 943 "matchCount": "0", 944 "teardown": [ 945 "$TC qdisc del dev $DEV1 ingress" 946 ] 947 }, 948 { 949 "id": "1f0a", 950 "name": "Add basic filter with u32 ematch u32/missing value", 951 "category": [ 952 "filter", 953 "basic" 954 ], 955 "plugins": { 956 "requires": "nsPlugin" 957 }, 958 "setup": [ 959 "$TC qdisc add dev $DEV1 ingress" 960 ], 961 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'u32(u32 at 12)' classid 1:1", 962 "expExitCode": "1", 963 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 964 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*u32\\(at 12\\)", 965 "matchCount": "0", 966 "teardown": [ 967 "$TC qdisc del dev $DEV1 ingress" 968 ] 969 }, 970 { 971 "id": "848e", 972 "name": "Add basic filter with u32 ematch u32/non-numeric value", 973 "category": [ 974 "filter", 975 "basic" 976 ], 977 "plugins": { 978 "requires": "nsPlugin" 979 }, 980 "setup": [ 981 "$TC qdisc add dev $DEV1 ingress" 982 ], 983 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'u32(u32 zero 0xffff at 0)' classid 1:1", 984 "expExitCode": "1", 985 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 986 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*u32\\(00000000/ffff0000 at 0\\)", 987 "matchCount": "0", 988 "teardown": [ 989 "$TC qdisc del dev $DEV1 ingress" 990 ] 991 }, 992 { 993 "id": "f748", 994 "name": "Add basic filter with u32 ematch u32/non-numeric mask", 995 "category": [ 996 "filter", 997 "basic" 998 ], 999 "plugins": { 1000 "requires": "nsPlugin" 1001 }, 1002 "setup": [ 1003 "$TC qdisc add dev $DEV1 ingress" 1004 ], 1005 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'u32(u32 0x11223344 mask at 0)' classid 1:1", 1006 "expExitCode": "1", 1007 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 1008 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*u32\\(11223344/00000000 at 0\\)", 1009 "matchCount": "0", 1010 "teardown": [ 1011 "$TC qdisc del dev $DEV1 ingress" 1012 ] 1013 }, 1014 { 1015 "id": "55a6", 1016 "name": "Add basic filter with u32 ematch u32/negative offset and default action", 1017 "category": [ 1018 "filter", 1019 "basic" 1020 ], 1021 "plugins": { 1022 "requires": "nsPlugin" 1023 }, 1024 "setup": [ 1025 "$TC qdisc add dev $DEV1 ingress" 1026 ], 1027 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'u32(u32 0xaabbccdd 0xff00ff00 at -12)' classid 1:1", 1028 "expExitCode": "0", 1029 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 1030 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*u32\\(aa00cc00/ff00ff00 at -12\\)", 1031 "matchCount": "1", 1032 "teardown": [ 1033 "$TC qdisc del dev $DEV1 ingress" 1034 ] 1035 }, 1036 { 1037 "id": "7282", 1038 "name": "Add basic filter with u32 ematch u32/nexthdr+ offset and default action", 1039 "category": [ 1040 "filter", 1041 "basic" 1042 ], 1043 "plugins": { 1044 "requires": "nsPlugin" 1045 }, 1046 "setup": [ 1047 "$TC qdisc add dev $DEV1 ingress" 1048 ], 1049 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'u32(u32 0xaabbccdd 0xffffffff at nexthdr+0)' classid 1:1", 1050 "expExitCode": "0", 1051 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 1052 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*u32\\(aabbccdd/ffffffff at nexthdr\\+0\\)", 1053 "matchCount": "1", 1054 "teardown": [ 1055 "$TC qdisc del dev $DEV1 ingress" 1056 ] 1057 }, 1058 { 1059 "id": "b2b6", 1060 "name": "Add basic filter with canid ematch and single SFF", 1061 "category": [ 1062 "filter", 1063 "basic" 1064 ], 1065 "plugins": { 1066 "requires": "nsPlugin" 1067 }, 1068 "setup": [ 1069 "$TC qdisc add dev $DEV1 ingress" 1070 ], 1071 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'canid(sff 1)' classid 1:1", 1072 "expExitCode": "0", 1073 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 1074 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*canid\\(sff 0x1\\)", 1075 "matchCount": "1", 1076 "teardown": [ 1077 "$TC qdisc del dev $DEV1 ingress" 1078 ] 1079 }, 1080 { 1081 "id": "f67f", 1082 "name": "Add basic filter with canid ematch and single SFF with mask", 1083 "category": [ 1084 "filter", 1085 "basic" 1086 ], 1087 "plugins": { 1088 "requires": "nsPlugin" 1089 }, 1090 "setup": [ 1091 "$TC qdisc add dev $DEV1 ingress" 1092 ], 1093 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'canid(sff 0xaabb:0x00ff)' classid 1:1", 1094 "expExitCode": "0", 1095 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 1096 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*canid\\(sff 0x2BB:0xFF\\)", 1097 "matchCount": "1", 1098 "teardown": [ 1099 "$TC qdisc del dev $DEV1 ingress" 1100 ] 1101 }, 1102 { 1103 "id": "bd5c", 1104 "name": "Add basic filter with canid ematch and multiple SFF", 1105 "category": [ 1106 "filter", 1107 "basic" 1108 ], 1109 "plugins": { 1110 "requires": "nsPlugin" 1111 }, 1112 "setup": [ 1113 "$TC qdisc add dev $DEV1 ingress" 1114 ], 1115 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'canid(sff 1 sff 2 sff 3)' classid 1:1", 1116 "expExitCode": "0", 1117 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 1118 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*canid\\(sff 0x1 sff 0x2 sff 0x3\\)", 1119 "matchCount": "1", 1120 "teardown": [ 1121 "$TC qdisc del dev $DEV1 ingress" 1122 ] 1123 }, 1124 { 1125 "id": "83c7", 1126 "name": "Add basic filter with canid ematch and multiple SFF with masks", 1127 "category": [ 1128 "filter", 1129 "basic" 1130 ], 1131 "plugins": { 1132 "requires": "nsPlugin" 1133 }, 1134 "setup": [ 1135 "$TC qdisc add dev $DEV1 ingress" 1136 ], 1137 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'canid(sff 0xaa:0x01 sff 0xbb:0x02 sff 0xcc:0x03)' classid 1:1", 1138 "expExitCode": "0", 1139 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 1140 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*canid\\(sff 0xAA:0x1 sff 0xBB:0x2 sff 0xCC:0x3\\)", 1141 "matchCount": "1", 1142 "teardown": [ 1143 "$TC qdisc del dev $DEV1 ingress" 1144 ] 1145 }, 1146 { 1147 "id": "a8f5", 1148 "name": "Add basic filter with canid ematch and single EFF", 1149 "category": [ 1150 "filter", 1151 "basic" 1152 ], 1153 "plugins": { 1154 "requires": "nsPlugin" 1155 }, 1156 "setup": [ 1157 "$TC qdisc add dev $DEV1 ingress" 1158 ], 1159 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'canid(eff 1)' classid 1:1", 1160 "expExitCode": "0", 1161 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 1162 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*canid\\(eff 0x1\\)", 1163 "matchCount": "1", 1164 "teardown": [ 1165 "$TC qdisc del dev $DEV1 ingress" 1166 ] 1167 }, 1168 { 1169 "id": "98ae", 1170 "name": "Add basic filter with canid ematch and single EFF with mask", 1171 "category": [ 1172 "filter", 1173 "basic" 1174 ], 1175 "plugins": { 1176 "requires": "nsPlugin" 1177 }, 1178 "setup": [ 1179 "$TC qdisc add dev $DEV1 ingress" 1180 ], 1181 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'canid(eff 0xaabb:0xf1f1)' classid 1:1", 1182 "expExitCode": "0", 1183 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 1184 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*canid\\(eff 0xAABB:0xF1F1\\)", 1185 "matchCount": "1", 1186 "teardown": [ 1187 "$TC qdisc del dev $DEV1 ingress" 1188 ] 1189 }, 1190 { 1191 "id": "6056", 1192 "name": "Add basic filter with canid ematch and multiple EFF", 1193 "category": [ 1194 "filter", 1195 "basic" 1196 ], 1197 "plugins": { 1198 "requires": "nsPlugin" 1199 }, 1200 "setup": [ 1201 "$TC qdisc add dev $DEV1 ingress" 1202 ], 1203 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'canid(eff 1 eff 2 eff 3)' classid 1:1", 1204 "expExitCode": "0", 1205 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 1206 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*canid\\(eff 0x1 eff 0x2 eff 0x3\\)", 1207 "matchCount": "1", 1208 "teardown": [ 1209 "$TC qdisc del dev $DEV1 ingress" 1210 ] 1211 }, 1212 { 1213 "id": "d188", 1214 "name": "Add basic filter with canid ematch and multiple EFF with masks", 1215 "category": [ 1216 "filter", 1217 "basic" 1218 ], 1219 "plugins": { 1220 "requires": "nsPlugin" 1221 }, 1222 "setup": [ 1223 "$TC qdisc add dev $DEV1 ingress" 1224 ], 1225 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'canid(eff 0xaa:0x01 eff 0xbb:0x02 eff 0xcc:0x03)' classid 1:1", 1226 "expExitCode": "0", 1227 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 1228 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*canid\\(eff 0xAA:0x1 eff 0xBB:0x2 eff 0xCC:0x3\\)", 1229 "matchCount": "1", 1230 "teardown": [ 1231 "$TC qdisc del dev $DEV1 ingress" 1232 ] 1233 }, 1234 { 1235 "id": "25d1", 1236 "name": "Add basic filter with canid ematch and a combination of SFF/EFF", 1237 "category": [ 1238 "filter", 1239 "basic" 1240 ], 1241 "plugins": { 1242 "requires": "nsPlugin" 1243 }, 1244 "setup": [ 1245 "$TC qdisc add dev $DEV1 ingress" 1246 ], 1247 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'canid(sff 0x01 eff 0x02)' classid 1:1", 1248 "expExitCode": "0", 1249 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 1250 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*canid\\(eff 0x2 sff 0x1\\)", 1251 "matchCount": "1", 1252 "teardown": [ 1253 "$TC qdisc del dev $DEV1 ingress" 1254 ] 1255 }, 1256 { 1257 "id": "b438", 1258 "name": "Add basic filter with canid ematch and a combination of SFF/EFF with masks", 1259 "category": [ 1260 "filter", 1261 "basic" 1262 ], 1263 "plugins": { 1264 "requires": "nsPlugin" 1265 }, 1266 "setup": [ 1267 "$TC qdisc add dev $DEV1 ingress" 1268 ], 1269 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'canid(sff 0x01:0xf eff 0x02:0xf)' classid 1:1", 1270 "expExitCode": "0", 1271 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol ip basic", 1272 "matchPattern": "^filter parent ffff: protocol ip pref 1 basic.*handle 0x1 flowid 1:1.*canid\\(eff 0x2:0xF sff 0x1:0xF\\)", 1273 "matchCount": "1", 1274 "teardown": [ 1275 "$TC qdisc del dev $DEV1 ingress" 1276 ] 1277 }, 1278 { 1279 "id": "0811", 1280 "name": "Add multiple basic filter with cmp ematch u8/link layer and default action and dump them", 1281 "category": [ 1282 "filter", 1283 "basic" 1284 ], 1285 "plugins": { 1286 "requires": "nsPlugin" 1287 }, 1288 "setup": [ 1289 "$TC qdisc add dev $DEV1 ingress", 1290 "$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" 1291 ], 1292 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 2 protocol ip prio 1 basic match 'cmp(u8 at 0 layer link mask 0xff gt 10)' classid 1:1", 1293 "expExitCode": "0", 1294 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 1295 "matchPattern": "^filter protocol ip pref 1 basic", 1296 "matchCount": "3", 1297 "teardown": [ 1298 "$TC qdisc del dev $DEV1 ingress" 1299 ] 1300 }, 1301 { 1302 "id": "5129", 1303 "name": "List basic filters", 1304 "category": [ 1305 "filter", 1306 "basic" 1307 ], 1308 "plugins": { 1309 "requires": "nsPlugin" 1310 }, 1311 "setup": [ 1312 "$TC qdisc add dev $DEV1 ingress", 1313 "$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", 1314 "$TC filter add dev $DEV1 parent ffff: handle 2 protocol ip prio 1 basic match 'cmp(u8 at 0 layer link mask 0xff gt 10)' classid 1:1" 1315 ], 1316 "cmdUnderTest": "$TC filter show dev $DEV1 parent ffff:", 1317 "expExitCode": "0", 1318 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 1319 "matchPattern": "cmp\\(u8 at 0 layer 0 mask 0xff gt 10\\)", 1320 "matchCount": "2", 1321 "teardown": [ 1322 "$TC qdisc del dev $DEV1 ingress" 1323 ] 1324 } 1325] 1326