File Index
Files and directories
Sign in
FILE

cgroup.json

File preview with syntax highlighting.

linux-6.19.14/tools/testing/selftests/tc-testing/tc-tests/filters/cgroup.json JSON
   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 multiple 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 multiple 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 different 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]
~/ Read-only file preview.