1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
[
    {
        "id": "ca5e",
        "name": "Check class delete notification for ffff:",
        "category": [
            "qdisc"
        ],
        "plugins": {
            "requires": "nsPlugin"
        },
        "setup": [
            "$IP link set dev $DUMMY up || true",
            "$IP addr add 10.10.10.10/24 dev $DUMMY || true",
            "$TC qdisc add dev $DUMMY root handle 1: drr",
            "$TC filter add dev $DUMMY parent 1: basic classid 1:1",
            "$TC class add dev $DUMMY parent 1: classid 1:1 drr",
            "$TC qdisc add dev $DUMMY parent 1:1 handle ffff: drr",
            "$TC filter add dev $DUMMY parent ffff: basic classid ffff:1",
            "$TC class add dev $DUMMY parent ffff: classid ffff:1 drr",
            "$TC qdisc add dev $DUMMY parent ffff:1 netem delay 1s",
            "ping -c1 -W0.01 -I $DUMMY 10.10.10.1 || true",
            "$TC class del dev $DUMMY classid ffff:1",
            "$TC class add dev $DUMMY parent ffff: classid ffff:1 drr"
        ],
        "cmdUnderTest": "ping -c1 -W0.01 -I $DUMMY 10.10.10.1",
        "expExitCode": "1",
        "verifyCmd": "$TC -s qdisc ls dev $DUMMY",
        "matchPattern": "drr 1: root",
        "matchCount": "1",
        "teardown": [
            "$TC qdisc del dev $DUMMY root handle 1: drr",
            "$IP addr del 10.10.10.10/24 dev $DUMMY"
        ]
    },
    {
        "id": "e4b7",
        "name": "Check class delete notification for root ffff:",
        "category": [
            "qdisc"
        ],
        "plugins": {
            "requires": "nsPlugin"
        },
        "setup": [
            "$IP link set dev $DUMMY up || true",
            "$IP addr add 10.10.10.10/24 dev $DUMMY || true",
            "$TC qdisc add dev $DUMMY root handle ffff: drr",
            "$TC filter add dev $DUMMY parent ffff: basic classid ffff:1",
            "$TC class add dev $DUMMY parent ffff: classid ffff:1 drr",
            "$TC qdisc add dev $DUMMY parent ffff:1 netem delay 1s",
            "ping -c1 -W0.01 -I $DUMMY 10.10.10.1 || true",
            "$TC class del dev $DUMMY classid ffff:1",
            "$TC class add dev $DUMMY parent ffff: classid ffff:1 drr"
        ],
        "cmdUnderTest": "ping -c1 -W0.01 -I $DUMMY 10.10.10.1",
        "expExitCode": "1",
        "verifyCmd": "$TC qdisc ls dev $DUMMY",
        "matchPattern": "drr ffff: root",
        "matchCount": "1",
        "teardown": [
            "$TC qdisc del dev $DUMMY root handle ffff: drr",
            "$IP addr del 10.10.10.10/24 dev $DUMMY"
        ]
    },
    {
        "id": "33a9",
        "name": "Check ingress is not searchable on backlog update",
        "category": [
            "qdisc"
        ],
        "plugins": {
            "requires": "nsPlugin"
        },
        "setup": [
            "$IP link set dev $DUMMY up || true",
            "$IP addr add 10.10.10.10/24 dev $DUMMY || true",
            "$TC qdisc add dev $DUMMY ingress",
            "$TC qdisc add dev $DUMMY root handle 1: drr",
            "$TC filter add dev $DUMMY parent 1: basic classid 1:1",
            "$TC class add dev $DUMMY parent 1: classid 1:1 drr",
            "$TC qdisc add dev $DUMMY parent 1:1 handle 2: drr",
            "$TC filter add dev $DUMMY parent 2: basic classid 2:1",
            "$TC class add dev $DUMMY parent 2: classid 2:1 drr",
            "$TC qdisc add dev $DUMMY parent 2:1 netem delay 1s",
            "ping -c1 -W0.01 -I $DUMMY 10.10.10.1 || true"
        ],
        "cmdUnderTest": "$TC class del dev $DUMMY classid 2:1",
        "expExitCode": "0",
        "verifyCmd": "$TC qdisc ls dev $DUMMY",
        "matchPattern": "drr 1: root",
        "matchCount": "1",
        "teardown": [
            "$TC qdisc del dev $DUMMY root handle 1: drr",
            "$TC qdisc del dev $DUMMY ingress",
            "$IP addr del 10.10.10.10/24 dev $DUMMY"
        ]
    },
    {
	"id": "a4b9",
	"name": "Test class qlen notification",
	"category": [
	    "qdisc"
	],
	"plugins": {
	    "requires": "nsPlugin"
	},
	"setup": [
            "$IP link set dev $DUMMY up || true",
            "$IP addr add 10.10.10.10/24 dev $DUMMY || true",
            "$TC qdisc add dev $DUMMY root handle 1: drr",
            "$TC filter add dev $DUMMY parent 1: basic classid 1:1",
            "$TC class add dev $DUMMY parent 1: classid 1:1 drr",
            "$TC qdisc add dev $DUMMY parent 1:1 handle 2: netem",
            "$TC qdisc add dev $DUMMY parent 2: handle 3: drr",
            "$TC filter add dev $DUMMY parent 3: basic action drop",
            "$TC class add dev $DUMMY parent 3: classid 3:1 drr",
            "$TC class del dev $DUMMY classid 1:1",
            "$TC class add dev $DUMMY parent 1: classid 1:1 drr"
        ],
        "cmdUnderTest": "ping -c1 -W0.01 -I $DUMMY 10.10.10.1",
        "expExitCode": "1",
        "verifyCmd": "$TC qdisc ls dev $DUMMY",
        "matchPattern": "drr 1: root",
        "matchCount": "1",
        "teardown": [
            "$TC qdisc del dev $DUMMY root handle 1: drr",
            "$IP addr del 10.10.10.10/24 dev $DUMMY"
        ]
   }
]
仍在說永久 想不到是藉口 從未意會要分手