1[
2    {
3        "id": "ba39",
4        "name": "Add taprio Qdisc to multi-queue device (8 queues)",
5        "category": [
6            "qdisc",
7            "taprio"
8        ],
9        "plugins": {
10            "requires": "nsPlugin"
11        },
12        "setup": [
13            "echo \"1 1 8\" > /sys/bus/netdevsim/new_device"
14        ],
15        "cmdUnderTest": "$TC qdisc add dev $ETH root handle 1: taprio num_tc 3 map 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 queues 1@0 1@0 1@0 base-time 1000000000 sched-entry S 01 300000 flags 0x1 clockid CLOCK_TAI",
16        "expExitCode": "0",
17        "verifyCmd": "$TC qdisc show dev $ETH",
18        "matchPattern": "qdisc taprio 1: root refcnt [0-9]+ tc 3 map 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2",
19        "matchCount": "1",
20        "teardown": [
21            "echo \"1\" > /sys/bus/netdevsim/del_device"
22        ]
23    },
24    {
25        "id": "9462",
26        "name": "Add taprio Qdisc with multiple sched-entry",
27        "category": [
28            "qdisc",
29            "taprio"
30        ],
31        "plugins": {
32            "requires": "nsPlugin"
33        },
34        "setup": [
35            "echo \"1 1 8\" > /sys/bus/netdevsim/new_device"
36        ],
37        "cmdUnderTest": "$TC qdisc add dev $ETH root handle 1: taprio num_tc 3 map 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 queues 1@0 1@0 1@0 base-time 1000000000 sched-entry S 01 300000 sched-entry S 03 300000 sched-entry S 04 400000 flags 0x1 clockid CLOCK_TAI",
38        "expExitCode": "0",
39        "verifyCmd": "$TC qdisc show dev $ETH",
40        "matchPattern": "index [0-9]+ cmd S gatemask 0x[0-9]+ interval [0-9]+00000",
41        "matchCount": "3",
42        "teardown": [
43            "echo \"1\" > /sys/bus/netdevsim/del_device"
44        ]
45    },
46    {
47        "id": "8d92",
48        "name": "Add taprio Qdisc with txtime-delay",
49        "category": [
50            "qdisc",
51            "taprio"
52        ],
53        "plugins": {
54            "requires": "nsPlugin"
55        },
56        "setup": [
57            "echo \"1 1 8\" > /sys/bus/netdevsim/new_device"
58        ],
59        "cmdUnderTest": "$TC qdisc add dev $ETH root handle 1: taprio num_tc 3 map 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 queues 1@0 1@0 1@0 base-time 1000000000 sched-entry S 01 300000 flags 0x1 txtime-delay 500000 clockid CLOCK_TAI",
60        "expExitCode": "0",
61        "verifyCmd": "$TC qdisc show dev $ETH",
62        "matchPattern": "clockid TAI flags 0x1 txtime delay 500000",
63        "matchCount": "1",
64        "teardown": [
65            "echo \"1\" > /sys/bus/netdevsim/del_device"
66        ]
67    },
68    {
69        "id": "d092",
70        "name": "Delete taprio Qdisc with valid handle",
71        "category": [
72            "qdisc",
73            "taprio"
74        ],
75        "plugins": {
76            "requires": "nsPlugin"
77        },
78        "setup": [
79            "echo \"1 1 8\" > /sys/bus/netdevsim/new_device",
80            "$TC qdisc add dev $ETH root handle 1: taprio num_tc 3 map 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 queues 1@0 1@0 1@0 base-time 1000000000 sched-entry S 01 300000 flags 0x1 clockid CLOCK_TAI"
81        ],
82        "cmdUnderTest": "$TC qdisc del dev $ETH root handle 1:",
83        "expExitCode": "0",
84        "verifyCmd": "$TC qdisc show dev $ETH",
85        "matchPattern": "qdisc taprio 1: root refcnt",
86        "matchCount": "0",
87        "teardown": [
88            "echo \"1\" > /sys/bus/netdevsim/del_device"
89        ]
90    },
91    {
92        "id": "8471",
93        "name": "Show taprio class",
94        "category": [
95            "qdisc",
96            "taprio"
97        ],
98        "plugins": {
99            "requires": "nsPlugin"
100        },
101        "setup": [
102            "echo \"1 1 8\" > /sys/bus/netdevsim/new_device"
103        ],
104        "cmdUnderTest": "$TC qdisc add dev $ETH root handle 1: taprio num_tc 3 map 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 queues 1@0 1@0 1@0 base-time 1000000000 sched-entry S 01 300000 flags 0x1 clockid CLOCK_TAI",
105        "expExitCode": "0",
106        "verifyCmd": "$TC class show dev $ETH",
107        "matchPattern": "class taprio 1:[0-9]+ root",
108        "matchCount": "8",
109        "teardown": [
110            "echo \"1\" > /sys/bus/netdevsim/del_device"
111        ]
112    },
113    {
114        "id": "0a85",
115        "name": "Add taprio Qdisc to single-queue device",
116        "category": [
117            "qdisc",
118            "taprio"
119        ],
120        "plugins": {
121            "requires": "nsPlugin"
122        },
123        "setup": [
124            "echo \"1 1\" > /sys/bus/netdevsim/new_device"
125        ],
126        "cmdUnderTest": "$TC qdisc add dev $ETH root handle 1: taprio num_tc 3 map 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 queues 1@0 1@0 1@0 base-time 1000000000 sched-entry S 01 300000 flags 0x1 clockid CLOCK_TAI",
127        "expExitCode": "2",
128        "verifyCmd": "$TC qdisc show dev $ETH",
129        "matchPattern": "qdisc taprio 1: root refcnt",
130        "matchCount": "0",
131        "teardown": [
132            "echo \"1\" > /sys/bus/netdevsim/del_device"
133        ]
134    },
135    {
136        "id": "3e1e",
137        "name": "Add taprio Qdisc with an invalid cycle-time",
138        "category": [
139            "qdisc",
140            "taprio"
141        ],
142        "plugins": {
143            "requires": "nsPlugin"
144        },
145        "setup": [
146            "echo \"1 1 8\" > /sys/bus/netdevsim/new_device",
147            "$TC qdisc add dev $ETH root handle 1: taprio num_tc 3 map 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 queues 1@0 1@0 1@0 base-time 1000000000 sched-entry S 01 300000 flags 0x1 clockid CLOCK_TAI cycle-time 4294967296 || /bin/true",
148            "$IP link set dev $ETH up",
149            "$IP addr add 10.10.10.10/24 dev $ETH"
150        ],
151        "cmdUnderTest": "/bin/true",
152        "expExitCode": "0",
153        "verifyCmd": "$TC qdisc show dev $ETH",
154        "matchPattern": "qdisc taprio 1: root refcnt",
155        "matchCount": "0",
156        "teardown": [
157            "echo \"1\" > /sys/bus/netdevsim/del_device"
158        ]
159    },
160    {
161        "id": "39b4",
162        "name": "Reject grafting taprio as child qdisc of software taprio",
163        "category": [
164            "qdisc",
165            "taprio"
166        ],
167        "plugins": {
168            "requires": "nsPlugin"
169        },
170        "setup": [
171            "echo \"1 1 8\" > /sys/bus/netdevsim/new_device",
172            "$TC qdisc replace dev $ETH handle 8001: parent root stab overhead 24 taprio num_tc 8 map 0 1 2 3 4 5 6 7 queues 1@0 1@1 1@2 1@3 1@4 1@5 1@6 1@7 base-time 0 sched-entry S ff 20000000 clockid CLOCK_TAI",
173            "./taprio_wait_for_admin.sh $TC $ETH"
174        ],
175        "cmdUnderTest": "$TC qdisc replace dev $ETH parent 8001:7 taprio num_tc 8 map 0 1 2 3 4 5 6 7 queues 1@0 1@1 1@2 1@3 1@4 1@5 1@6 1@7 base-time 200 sched-entry S ff 20000000 clockid CLOCK_TAI",
176        "expExitCode": "2",
177        "verifyCmd": "bash -c \"./taprio_wait_for_admin.sh $TC $ETH && $TC -j qdisc show dev $ETH root | jq '.[].options.base_time'\"",
178        "matchPattern": "0",
179        "matchCount": "1",
180        "teardown": [
181            "$TC qdisc del dev $ETH root",
182            "echo \"1\" > /sys/bus/netdevsim/del_device"
183        ]
184    },
185    {
186        "id": "e8a1",
187        "name": "Reject grafting taprio as child qdisc of offloaded taprio",
188        "category": [
189            "qdisc",
190            "taprio"
191        ],
192        "plugins": {
193            "requires": "nsPlugin"
194        },
195        "setup": [
196            "echo \"1 1 8\" > /sys/bus/netdevsim/new_device",
197            "$TC qdisc replace dev $ETH handle 8001: parent root stab overhead 24 taprio num_tc 8 map 0 1 2 3 4 5 6 7 queues 1@0 1@1 1@2 1@3 1@4 1@5 1@6 1@7 base-time 0 sched-entry S ff 20000000 flags 0x2",
198            "./taprio_wait_for_admin.sh $TC $ETH"
199        ],
200        "cmdUnderTest": "$TC qdisc replace dev $ETH parent 8001:7 taprio num_tc 8 map 0 1 2 3 4 5 6 7 queues 1@0 1@1 1@2 1@3 1@4 1@5 1@6 1@7 base-time 200 sched-entry S ff 20000000 flags 0x2",
201        "expExitCode": "2",
202        "verifyCmd": "bash -c \"./taprio_wait_for_admin.sh $TC $ETH && $TC -j qdisc show dev $ETH root | jq '.[].options.base_time'\"",
203        "matchPattern": "0",
204        "matchCount": "1",
205        "teardown": [
206            "$TC qdisc del dev $ETH root",
207            "echo \"1\" > /sys/bus/netdevsim/del_device"
208        ]
209    },
210    {
211        "id": "a7bf",
212        "name": "Graft cbs as child of software taprio",
213        "category": [
214            "qdisc",
215            "taprio",
216            "cbs"
217        ],
218        "plugins": {
219            "requires": "nsPlugin"
220        },
221        "setup": [
222            "echo \"1 1 8\" > /sys/bus/netdevsim/new_device",
223            "$TC qdisc replace dev $ETH handle 8001: parent root stab overhead 24 taprio num_tc 8 map 0 1 2 3 4 5 6 7 queues 1@0 1@1 1@2 1@3 1@4 1@5 1@6 1@7 base-time 0 sched-entry S ff 20000000 clockid CLOCK_TAI"
224        ],
225        "cmdUnderTest": "$TC qdisc replace dev $ETH handle 8002: parent 8001:8 cbs idleslope 20000 sendslope -980000 hicredit 30 locredit -1470",
226        "expExitCode": "0",
227        "verifyCmd": "$TC -d qdisc show dev $ETH",
228        "matchPattern": "qdisc cbs 8002: parent 8001:8 hicredit 30 locredit -1470 sendslope -980000 idleslope 20000 offload 0",
229        "matchCount": "1",
230        "teardown": [
231            "$TC qdisc del dev $ETH root",
232            "echo \"1\" > /sys/bus/netdevsim/del_device"
233        ]
234    },
235    {
236        "id": "6a83",
237        "name": "Graft cbs as child of offloaded taprio",
238        "category": [
239            "qdisc",
240            "taprio",
241            "cbs"
242        ],
243        "plugins": {
244            "requires": "nsPlugin"
245        },
246        "setup": [
247            "echo \"1 1 8\" > /sys/bus/netdevsim/new_device",
248            "$TC qdisc replace dev $ETH handle 8001: parent root stab overhead 24 taprio num_tc 8 map 0 1 2 3 4 5 6 7 queues 1@0 1@1 1@2 1@3 1@4 1@5 1@6 1@7 base-time 0 sched-entry S ff 20000000 flags 0x2"
249        ],
250        "cmdUnderTest": "$TC qdisc replace dev $ETH handle 8002: parent 8001:8 cbs idleslope 20000 sendslope -980000 hicredit 30 locredit -1470",
251        "expExitCode": "0",
252        "verifyCmd": "$TC -d qdisc show dev $ETH",
253        "matchPattern": "qdisc cbs 8002: parent 8001:8 refcnt 2 hicredit 30 locredit -1470 sendslope -980000 idleslope 20000 offload 0",
254        "matchCount": "1",
255        "teardown": [
256            "$TC qdisc del dev $ETH root",
257            "echo \"1\" > /sys/bus/netdevsim/del_device"
258        ]
259    }
260]
261