1[ 2 { 3 "id": "6273", 4 "name": "Add cgroup filter with cmp ematch u8/link layer and drop action", 5 "category": [ 6 "filter", 7 "cgroup" 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 cgroup match 'cmp(u8 at 0 layer link mask 0xff gt 10)' action drop", 16 "expExitCode": "0", 17 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 18 "matchPattern": "^filter protocol ip pref [0-9]+ cgroup chain [0-9]+.*handle 0x1.*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": "4721", 26 "name": "Add cgroup filter with cmp ematch u8/link layer with trans flag and pass action", 27 "category": [ 28 "filter", 29 "cgroup" 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 cgroup match 'cmp(u8 at 0 layer link mask 0xff trans gt 10)' action pass", 38 "expExitCode": "0", 39 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 40 "matchPattern": "^filter protocol ip pref [0-9]+ cgroup chain [0-9]+.*handle 0x1.*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": "d392", 48 "name": "Add cgroup filter with cmp ematch u16/link layer and pipe action", 49 "category": [ 50 "filter", 51 "cgroup" 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 cgroup match 'cmp(u16 at 0 layer 0 mask 0xff00 lt 3)' action pipe", 60 "expExitCode": "0", 61 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 62 "matchPattern": "^filter protocol ip pref [0-9]+ cgroup chain [0-9]+.*handle 0x1.*cmp\\(u16 at 0 layer 0 mask 0xff00 lt 3\\).*action pipe", 63 "matchCount": "1", 64 "teardown": [ 65 "$TC qdisc del dev $DEV1 ingress" 66 ] 67 }, 68 { 69 "id": "0234", 70 "name": "Add cgroup filter with cmp ematch u32/link layer and miltiple actions", 71 "category": [ 72 "filter", 73 "cgroup" 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 cgroup 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 show dev $DEV1 parent ffff:", 84 "matchPattern": "^filter protocol ip pref [0-9]+ cgroup chain [0-9]+.*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": "8499", 92 "name": "Add cgroup filter with cmp ematch u8/network layer and pass action", 93 "category": [ 94 "filter", 95 "cgroup" 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 cgroup match 'cmp(u8 at 0 layer 1 mask 0xff gt 10)' action pass", 104 "expExitCode": "0", 105 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 106 "matchPattern": "^filter protocol ip pref 11 cgroup.*handle 0xab.*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": "b273", 114 "name": "Add cgroup filter with cmp ematch u8/network layer with trans flag and drop action", 115 "category": [ 116 "filter", 117 "cgroup" 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 cgroup match 'cmp(u8 at 0 layer 1 mask 0xff trans gt 10)' action drop", 126 "expExitCode": "0", 127 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 128 "matchPattern": "^filter protocol ip pref 11 cgroup.*handle 0xab.*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": "1934", 136 "name": "Add cgroup filter with cmp ematch u16/network layer and pipe action", 137 "category": [ 138 "filter", 139 "cgroup" 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 cgroup match 'cmp(u16 at 0 layer network mask 0xff00 lt 3)' action pipe", 148 "expExitCode": "0", 149 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 150 "matchPattern": "filter protocol ip pref 100 cgroup.*handle 0x100..*cmp\\(u16 at 0 layer 1 mask 0xff00 lt 3\\)", 151 "matchCount": "1", 152 "teardown": [ 153 "$TC qdisc del dev $DEV1 ingress" 154 ] 155 }, 156 { 157 "id": "2733", 158 "name": "Add cgroup filter with cmp ematch u32/network layer and miltiple actions", 159 "category": [ 160 "filter", 161 "cgroup" 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 cgroup 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 show dev $DEV1 parent ffff:", 172 "matchPattern": "^filter protocol ip pref 7 cgroup.*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": "3271", 180 "name": "Add cgroup filter with NOT cmp ematch rule and pass action", 181 "category": [ 182 "filter", 183 "cgroup" 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 cgroup match 'not cmp(u8 at 0 layer link mask 0xff eq 3)' action pass", 192 "expExitCode": "0", 193 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 194 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*NOT cmp\\(u8 at 0 layer 0 mask 0xff eq 3\\)", 195 "matchCount": "1", 196 "teardown": [ 197 "$TC qdisc del dev $DEV1 ingress" 198 ] 199 }, 200 { 201 "id": "2362", 202 "name": "Add cgroup filter with two ANDed cmp ematch rules and single action", 203 "category": [ 204 "filter", 205 "cgroup" 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 cgroup 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", 214 "expExitCode": "0", 215 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 216 "matchPattern": "^filter protocol ip pref 1 cgroup.*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", 217 "matchCount": "1", 218 "teardown": [ 219 "$TC qdisc del dev $DEV1 ingress" 220 ] 221 }, 222 { 223 "id": "9993", 224 "name": "Add cgroup filter with two ORed cmp ematch rules and single action", 225 "category": [ 226 "filter", 227 "cgroup" 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 cgroup 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", 236 "expExitCode": "0", 237 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 238 "matchPattern": "^filter protocol ip pref 1 cgroup.*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", 239 "matchCount": "1", 240 "teardown": [ 241 "$TC qdisc del dev $DEV1 ingress" 242 ] 243 }, 244 { 245 "id": "2331", 246 "name": "Add cgroup filter with two ANDed cmp ematch rules and one ORed ematch rule and single action", 247 "category": [ 248 "filter", 249 "cgroup" 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 cgroup 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", 258 "expExitCode": "0", 259 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 260 "matchPattern": "^filter protocol ip pref 1 cgroup.*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", 261 "matchCount": "1", 262 "teardown": [ 263 "$TC qdisc del dev $DEV1 ingress" 264 ] 265 }, 266 { 267 "id": "3645", 268 "name": "Add cgroup filter with two ANDed cmp ematch rules and one NOT ORed ematch rule and single action", 269 "category": [ 270 "filter", 271 "cgroup" 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 cgroup 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", 280 "expExitCode": "0", 281 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 282 "matchPattern": "^filter protocol ip pref 1 cgroup.*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", 283 "matchCount": "1", 284 "teardown": [ 285 "$TC qdisc del dev $DEV1 ingress" 286 ] 287 }, 288 { 289 "id": "b124", 290 "name": "Add cgroup filter with u32 ematch u8/zero offset and drop action", 291 "category": [ 292 "filter", 293 "cgroup" 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 cgroup match 'u32(u8 0x11 0x0f at 0)' action drop", 302 "expExitCode": "0", 303 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 304 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(01000000/0f000000 at 0\\)", 305 "matchCount": "1", 306 "teardown": [ 307 "$TC qdisc del dev $DEV1 ingress" 308 ] 309 }, 310 { 311 "id": "7381", 312 "name": "Add cgroup filter with u32 ematch u8/zero offset and invalid value >0xFF", 313 "category": [ 314 "filter", 315 "cgroup" 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 'u32(u8 0x1122 0x0f at 0)' action pass", 324 "expExitCode": "1", 325 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 326 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(11220000/0f000000 at 0\\)", 327 "matchCount": "0", 328 "teardown": [ 329 "$TC qdisc del dev $DEV1 ingress" 330 ] 331 }, 332 { 333 "id": "2231", 334 "name": "Add cgroup filter with u32 ematch u8/positive offset and drop action", 335 "category": [ 336 "filter", 337 "cgroup" 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 cgroup match 'u32(u8 0x77 0x1f at 12)' action drop", 346 "expExitCode": "0", 347 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 348 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(17000000/1f000000 at 12\\)", 349 "matchCount": "1", 350 "teardown": [ 351 "$TC qdisc del dev $DEV1 ingress" 352 ] 353 }, 354 { 355 "id": "1882", 356 "name": "Add cgroup filter with u32 ematch u8/invalid mask >0xFF", 357 "category": [ 358 "filter", 359 "cgroup" 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 cgroup match 'u32(u8 0x77 0xff00 at 12)' action drop", 368 "expExitCode": "1", 369 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 370 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(77000000/ff000000 at 12\\)", 371 "matchCount": "0", 372 "teardown": [ 373 "$TC qdisc del dev $DEV1 ingress" 374 ] 375 }, 376 { 377 "id": "1237", 378 "name": "Add cgroup filter with u32 ematch u8/missing offset", 379 "category": [ 380 "filter", 381 "cgroup" 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 cgroup match 'u32(u8 0x77 0xff at)' action pipe", 390 "expExitCode": "1", 391 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 392 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(77000000 at 12\\)", 393 "matchCount": "0", 394 "teardown": [ 395 "$TC qdisc del dev $DEV1 ingress" 396 ] 397 }, 398 { 399 "id": "3812", 400 "name": "Add cgroup filter with u32 ematch u8/missing AT keyword", 401 "category": [ 402 "filter", 403 "cgroup" 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 cgroup match 'u32(u8 0x77 0xff 0)' action pass", 412 "expExitCode": "1", 413 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 414 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(77000000 at 12\\)", 415 "matchCount": "0", 416 "teardown": [ 417 "$TC qdisc del dev $DEV1 ingress" 418 ] 419 }, 420 { 421 "id": "1112", 422 "name": "Add cgroup filter with u32 ematch u8/missing value", 423 "category": [ 424 "filter", 425 "cgroup" 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 cgroup match 'u32(u8 at 12)' action drop", 434 "expExitCode": "1", 435 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 436 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(at 12\\)", 437 "matchCount": "0", 438 "teardown": [ 439 "$TC qdisc del dev $DEV1 ingress" 440 ] 441 }, 442 { 443 "id": "3241", 444 "name": "Add cgroup filter with u32 ematch u8/non-numeric value", 445 "category": [ 446 "filter", 447 "cgroup" 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 cgroup match 'u32(u8 zero 0xff at 0)' action pipe", 456 "expExitCode": "1", 457 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 458 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1 flowid 1:1.*u32\\(00000000/ff000000 at 0\\)", 459 "matchCount": "0", 460 "teardown": [ 461 "$TC qdisc del dev $DEV1 ingress" 462 ] 463 }, 464 { 465 "id": "e231", 466 "name": "Add cgroup filter with u32 ematch u8/non-numeric mask", 467 "category": [ 468 "filter", 469 "cgroup" 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 cgroup match 'u32(u8 0x11 mask at 0)' action pass", 478 "expExitCode": "1", 479 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 480 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(11000000/00000000 at 0\\)", 481 "matchCount": "0", 482 "teardown": [ 483 "$TC qdisc del dev $DEV1 ingress" 484 ] 485 }, 486 { 487 "id": "4652", 488 "name": "Add cgroup filter with u32 ematch u8/negative offset and pass action", 489 "category": [ 490 "filter", 491 "cgroup" 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 cgroup match 'u32(u8 0xaa 0xf0 at -14)' action pass", 500 "expExitCode": "0", 501 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 502 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(0000a000/0000f000 at -16\\)", 503 "matchCount": "1", 504 "teardown": [ 505 "$TC qdisc del dev $DEV1 ingress" 506 ] 507 }, 508 { 509 "id": "7566", 510 "name": "Add cgroup filter with u32 ematch u8/nexthdr+ offset and drop action", 511 "category": [ 512 "filter", 513 "drop" 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 cgroup match 'u32(u8 0xaa 0xf0 at nexthdr+0)' action drop", 522 "expExitCode": "0", 523 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 524 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(a0000000/f0000000 at nexthdr\\+0\\)", 525 "matchCount": "1", 526 "teardown": [ 527 "$TC qdisc del dev $DEV1 ingress" 528 ] 529 }, 530 { 531 "id": "1331", 532 "name": "Add cgroup filter with u32 ematch u16/zero offset and pipe action", 533 "category": [ 534 "filter", 535 "cgroup" 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 cgroup match 'u32(u16 0x1122 0xffff at 0)' action pipe", 544 "expExitCode": "0", 545 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 546 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(11220000/ffff0000 at 0\\)", 547 "matchCount": "1", 548 "teardown": [ 549 "$TC qdisc del dev $DEV1 ingress" 550 ] 551 }, 552 { 553 "id": "e354", 554 "name": "Add cgroup filter with u32 ematch u16/zero offset and invalid value >0xFFFF", 555 "category": [ 556 "filter", 557 "cgroup" 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 cgroup match 'u32(u16 0x112233 0xffff at 0)'", 566 "expExitCode": "1", 567 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 568 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(11223300/ffff0000 at 0\\)", 569 "matchCount": "0", 570 "teardown": [ 571 "$TC qdisc del dev $DEV1 ingress" 572 ] 573 }, 574 { 575 "id": "3538", 576 "name": "Add cgroup filter with u32 ematch u16/positive offset and drop action", 577 "category": [ 578 "filter", 579 "cgroup" 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 cgroup match 'u32(u16 0x7788 0x1fff at 12)' action drop", 588 "expExitCode": "0", 589 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 590 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(17880000/1fff0000 at 12\\)", 591 "matchCount": "1", 592 "teardown": [ 593 "$TC qdisc del dev $DEV1 ingress" 594 ] 595 }, 596 { 597 "id": "4576", 598 "name": "Add cgroup filter with u32 ematch u16/invalid mask >0xFFFF", 599 "category": [ 600 "filter", 601 "cgroup" 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 cgroup match 'u32(u16 0x7788 0xffffffff at 12)' action pass", 610 "expExitCode": "1", 611 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 612 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(77880000/ffffffff at 12\\)", 613 "matchCount": "0", 614 "teardown": [ 615 "$TC qdisc del dev $DEV1 ingress" 616 ] 617 }, 618 { 619 "id": "b842", 620 "name": "Add cgroup filter with u32 ematch u16/missing offset", 621 "category": [ 622 "filter", 623 "cgroup" 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 cgroup match 'u32(u16 0x7788 0xffff at)' action pass", 632 "expExitCode": "1", 633 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 634 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(77880000 at 12\\)", 635 "matchCount": "0", 636 "teardown": [ 637 "$TC qdisc del dev $DEV1 ingress" 638 ] 639 }, 640 { 641 "id": "c924", 642 "name": "Add cgroup filter with u32 ematch u16/missing AT keyword", 643 "category": [ 644 "filter", 645 "cgroup" 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 cgroup match 'u32(u16 0x7788 0xffff 0)' action pass", 654 "expExitCode": "1", 655 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 656 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(77880000/ffff0000 at 0\\)", 657 "matchCount": "0", 658 "teardown": [ 659 "$TC qdisc del dev $DEV1 ingress" 660 ] 661 }, 662 { 663 "id": "cc93", 664 "name": "Add cgroup filter with u32 ematch u16/missing value", 665 "category": [ 666 "filter", 667 "cgroup" 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 cgroup match 'u32(u16 at 12)' action pass", 676 "expExitCode": "1", 677 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 678 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(at 12\\)", 679 "matchCount": "0", 680 "teardown": [ 681 "$TC qdisc del dev $DEV1 ingress" 682 ] 683 }, 684 { 685 "id": "123c", 686 "name": "Add cgroup filter with u32 ematch u16/non-numeric value", 687 "category": [ 688 "filter", 689 "cgroup" 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 cgroup match 'u32(u16 zero 0xffff at 0)' action pass", 698 "expExitCode": "1", 699 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 700 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(00000000/ffff0000 at 0\\)", 701 "matchCount": "0", 702 "teardown": [ 703 "$TC qdisc del dev $DEV1 ingress" 704 ] 705 }, 706 { 707 "id": "3675", 708 "name": "Add cgroup filter with u32 ematch u16/non-numeric mask", 709 "category": [ 710 "filter", 711 "cgroup" 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 cgroup match 'u32(u8 0x1122 mask at 0)' action pass", 720 "expExitCode": "1", 721 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 722 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(11220000/00000000 at 0\\)", 723 "matchCount": "0", 724 "teardown": [ 725 "$TC qdisc del dev $DEV1 ingress" 726 ] 727 }, 728 { 729 "id": "1123", 730 "name": "Add cgroup filter with u32 ematch u16/negative offset and drop action", 731 "category": [ 732 "filter", 733 "cgroup" 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 cgroup match 'u32(u16 0xaabb 0xffff at -12)' action drop", 742 "expExitCode": "0", 743 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 744 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(aabb0000/ffff0000 at -12\\)", 745 "matchCount": "1", 746 "teardown": [ 747 "$TC qdisc del dev $DEV1 ingress" 748 ] 749 }, 750 { 751 "id": "4234", 752 "name": "Add cgroup filter with u32 ematch u16/nexthdr+ offset and pass action", 753 "category": [ 754 "filter", 755 "cgroup" 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 cgroup match 'u32(u16 0xaabb 0xf0f0 at nexthdr+0)' action pass", 764 "expExitCode": "0", 765 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 766 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(a0b00000/f0f00000 at nexthdr\\+0\\)", 767 "matchCount": "1", 768 "teardown": [ 769 "$TC qdisc del dev $DEV1 ingress" 770 ] 771 }, 772 { 773 "id": "e912", 774 "name": "Add cgroup filter with u32 ematch u32/zero offset and pipe action", 775 "category": [ 776 "filter", 777 "cgroup" 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 cgroup match 'u32(u32 0xaabbccdd 0xffffffff at 0)' action pipe", 786 "expExitCode": "0", 787 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 788 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(aabbccdd/ffffffff at 0\\)", 789 "matchCount": "1", 790 "teardown": [ 791 "$TC qdisc del dev $DEV1 ingress" 792 ] 793 }, 794 { 795 "id": "1435", 796 "name": "Add cgroup filter with u32 ematch u32/positive offset and drop action", 797 "category": [ 798 "filter", 799 "cgroup" 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 cgroup match 'u32(u32 0x11227788 0x1ffff0f0 at 12)' action drop", 808 "expExitCode": "0", 809 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 810 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(11227080/1ffff0f0 at 12\\)", 811 "matchCount": "1", 812 "teardown": [ 813 "$TC qdisc del dev $DEV1 ingress" 814 ] 815 }, 816 { 817 "id": "1282", 818 "name": "Add cgroup filter with u32 ematch u32/missing offset", 819 "category": [ 820 "filter", 821 "cgroup" 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 cgroup match 'u32(u32 0x11227788 0xffffffff at)' action pass", 830 "expExitCode": "1", 831 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 832 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(11227788/ffffffff at 12\\)", 833 "matchCount": "0", 834 "teardown": [ 835 "$TC qdisc del dev $DEV1 ingress" 836 ] 837 }, 838 { 839 "id": "6456", 840 "name": "Add cgroup filter with u32 ematch u32/missing AT keyword", 841 "category": [ 842 "filter", 843 "cgroup" 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 cgroup match 'u32(u32 0x77889900 0xfffff0f0 0)' action pipe", 852 "expExitCode": "1", 853 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 854 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(77889900/fffff0f0 at 0\\)", 855 "matchCount": "0", 856 "teardown": [ 857 "$TC qdisc del dev $DEV1 ingress" 858 ] 859 }, 860 { 861 "id": "4231", 862 "name": "Add cgroup filter with u32 ematch u32/missing value", 863 "category": [ 864 "filter", 865 "cgroup" 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 cgroup match 'u32(u32 at 12)' action pipe", 874 "expExitCode": "1", 875 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 876 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(at 12\\)", 877 "matchCount": "0", 878 "teardown": [ 879 "$TC qdisc del dev $DEV1 ingress" 880 ] 881 }, 882 { 883 "id": "2131", 884 "name": "Add cgroup filter with u32 ematch u32/non-numeric value", 885 "category": [ 886 "filter", 887 "cgroup" 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 cgroup match 'u32(u32 zero 0xffff at 0)' action pipe", 896 "expExitCode": "1", 897 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 898 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(00000000/ffff0000 at 0\\)", 899 "matchCount": "0", 900 "teardown": [ 901 "$TC qdisc del dev $DEV1 ingress" 902 ] 903 }, 904 { 905 "id": "f125", 906 "name": "Add cgroup filter with u32 ematch u32/non-numeric mask", 907 "category": [ 908 "filter", 909 "cgroup" 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 cgroup match 'u32(u32 0x11223344 mask at 0)' action pass", 918 "expExitCode": "1", 919 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 920 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(11223344/00000000 at 0\\)", 921 "matchCount": "0", 922 "teardown": [ 923 "$TC qdisc del dev $DEV1 ingress" 924 ] 925 }, 926 { 927 "id": "4316", 928 "name": "Add cgroup filter with u32 ematch u32/negative offset and drop action", 929 "category": [ 930 "filter", 931 "cgroup" 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 cgroup match 'u32(u32 0xaabbccdd 0xff00ff00 at -12)' action drop", 940 "expExitCode": "0", 941 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 942 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(aa00cc00/ff00ff00 at -12\\)", 943 "matchCount": "1", 944 "teardown": [ 945 "$TC qdisc del dev $DEV1 ingress" 946 ] 947 }, 948 { 949 "id": "23ae", 950 "name": "Add cgroup filter with u32 ematch u32/nexthdr+ offset and pipe action", 951 "category": [ 952 "filter", 953 "cgroup" 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 cgroup match 'u32(u32 0xaabbccdd 0xffffffff at nexthdr+0)' action pipe", 962 "expExitCode": "0", 963 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 964 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(aabbccdd/ffffffff at nexthdr\\+0\\)", 965 "matchCount": "1", 966 "teardown": [ 967 "$TC qdisc del dev $DEV1 ingress" 968 ] 969 }, 970 { 971 "id": "23a1", 972 "name": "Add cgroup filter with canid ematch and single SFF", 973 "category": [ 974 "filter", 975 "cgroup" 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 cgroup match 'canid(sff 1)' action pass", 984 "expExitCode": "0", 985 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 986 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*canid\\(sff 0x1\\)", 987 "matchCount": "1", 988 "teardown": [ 989 "$TC qdisc del dev $DEV1 ingress" 990 ] 991 }, 992 { 993 "id": "324f", 994 "name": "Add cgroup filter with canid ematch and single SFF with mask", 995 "category": [ 996 "filter", 997 "cgroup" 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 cgroup match 'canid(sff 0xaabb:0x00ff)' action pass", 1006 "expExitCode": "0", 1007 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 1008 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*canid\\(sff 0x2BB:0xFF\\)", 1009 "matchCount": "1", 1010 "teardown": [ 1011 "$TC qdisc del dev $DEV1 ingress" 1012 ] 1013 }, 1014 { 1015 "id": "2576", 1016 "name": "Add cgroup filter with canid ematch and multiple SFF", 1017 "category": [ 1018 "filter", 1019 "cgroup" 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 cgroup match 'canid(sff 1 sff 2 sff 3)' action pass", 1028 "expExitCode": "0", 1029 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 1030 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*canid\\(sff 0x1 sff 0x2 sff 0x3\\)", 1031 "matchCount": "1", 1032 "teardown": [ 1033 "$TC qdisc del dev $DEV1 ingress" 1034 ] 1035 }, 1036 { 1037 "id": "4839", 1038 "name": "Add cgroup filter with canid ematch and multiple SFF with masks", 1039 "category": [ 1040 "filter", 1041 "cgroup" 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 cgroup match 'canid(sff 0xaa:0x01 sff 0xbb:0x02 sff 0xcc:0x03)' action drop", 1050 "expExitCode": "0", 1051 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 1052 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*canid\\(sff 0xAA:0x1 sff 0xBB:0x2 sff 0xCC:0x3\\)", 1053 "matchCount": "1", 1054 "teardown": [ 1055 "$TC qdisc del dev $DEV1 ingress" 1056 ] 1057 }, 1058 { 1059 "id": "6713", 1060 "name": "Add cgroup filter with canid ematch and single EFF", 1061 "category": [ 1062 "filter", 1063 "cgroup" 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 cgroup match 'canid(eff 1)' action pipe", 1072 "expExitCode": "0", 1073 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 1074 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*canid\\(eff 0x1\\)", 1075 "matchCount": "1", 1076 "teardown": [ 1077 "$TC qdisc del dev $DEV1 ingress" 1078 ] 1079 }, 1080 { 1081 "id": "4572", 1082 "name": "Add cgroup filter with canid ematch and single EFF with mask", 1083 "category": [ 1084 "filter", 1085 "cgroup" 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 cgroup match 'canid(eff 0xaabb:0xf1f1)' action pass", 1094 "expExitCode": "0", 1095 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 1096 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*canid\\(eff 0xAABB:0xF1F1\\)", 1097 "matchCount": "1", 1098 "teardown": [ 1099 "$TC qdisc del dev $DEV1 ingress" 1100 ] 1101 }, 1102 { 1103 "id": "8031", 1104 "name": "Add cgroup filter with canid ematch and multiple EFF", 1105 "category": [ 1106 "filter", 1107 "cgroup" 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 cgroup match 'canid(eff 1 eff 2 eff 3)' action pass", 1116 "expExitCode": "0", 1117 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 1118 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*canid\\(eff 0x1 eff 0x2 eff 0x3\\)", 1119 "matchCount": "1", 1120 "teardown": [ 1121 "$TC qdisc del dev $DEV1 ingress" 1122 ] 1123 }, 1124 { 1125 "id": "ab9d", 1126 "name": "Add cgroup filter with canid ematch and multiple EFF with masks", 1127 "category": [ 1128 "filter", 1129 "cgroup" 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 cgroup match 'canid(eff 0xaa:0x01 eff 0xbb:0x02 eff 0xcc:0x03)' action pass", 1138 "expExitCode": "0", 1139 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 1140 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*canid\\(eff 0xAA:0x1 eff 0xBB:0x2 eff 0xCC:0x3\\)", 1141 "matchCount": "1", 1142 "teardown": [ 1143 "$TC qdisc del dev $DEV1 ingress" 1144 ] 1145 }, 1146 { 1147 "id": "5349", 1148 "name": "Add cgroup filter with canid ematch and a combination of SFF/EFF", 1149 "category": [ 1150 "filter", 1151 "cgroup" 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 cgroup match 'canid(sff 0x01 eff 0x02)' action pass", 1160 "expExitCode": "0", 1161 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 1162 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*canid\\(eff 0x2 sff 0x1\\)", 1163 "matchCount": "1", 1164 "teardown": [ 1165 "$TC qdisc del dev $DEV1 ingress" 1166 ] 1167 }, 1168 { 1169 "id": "c934", 1170 "name": "Add cgroup filter with canid ematch and a combination of SFF/EFF with masks", 1171 "category": [ 1172 "filter", 1173 "cgroup" 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 cgroup match 'canid(sff 0x01:0xf eff 0x02:0xf)' action drop", 1182 "expExitCode": "0", 1183 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 1184 "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*canid\\(eff 0x2:0xF sff 0x1:0xF\\)", 1185 "matchCount": "1", 1186 "teardown": [ 1187 "$TC qdisc del dev $DEV1 ingress" 1188 ] 1189 }, 1190 { 1191 "id": "4319", 1192 "name": "Replace cgroup filter with diffferent match", 1193 "category": [ 1194 "filter", 1195 "cgroup" 1196 ], 1197 "plugins": { 1198 "requires": "nsPlugin" 1199 }, 1200 "setup": [ 1201 "$TC qdisc add dev $DEV1 ingress", 1202 "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'cmp(u8 at 0 layer link mask 0xff gt 10)' action pass" 1203 ], 1204 "cmdUnderTest": "$TC filter replace dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'cmp(u8 at 0 layer link mask 0xff gt 8)' action pass", 1205 "expExitCode": "0", 1206 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 1207 "matchPattern": "cmp\\(u8 at 0 layer 0 mask 0xff gt 8\\)", 1208 "matchCount": "1", 1209 "teardown": [ 1210 "$TC qdisc del dev $DEV1 ingress" 1211 ] 1212 }, 1213 { 1214 "id": "4636", 1215 "name": "Delete cgroup filter", 1216 "category": [ 1217 "filter", 1218 "cgroup" 1219 ], 1220 "plugins": { 1221 "requires": "nsPlugin" 1222 }, 1223 "setup": [ 1224 "$TC qdisc add dev $DEV1 ingress", 1225 "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'cmp(u8 at 0 layer link mask 0xff gt 10)' action pass" 1226 ], 1227 "cmdUnderTest": "$TC filter delete dev $DEV1 parent ffff: protocol ip prio 1 cgroup match 'cmp(u8 at 0 layer link mask 0xff gt 10)' action pass", 1228 "expExitCode": "0", 1229 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:", 1230 "matchPattern": "cmp\\(u8 at 0 layer 0 mask 0xff gt 8\\)", 1231 "matchCount": "0", 1232 "teardown": [ 1233 "$TC qdisc del dev $DEV1 ingress" 1234 ] 1235 } 1236] 1237