1[ 2 { 3 "id": "983b", 4 "name": "Create FQ with default setting", 5 "category": [ 6 "qdisc", 7 "fq" 8 ], 9 "plugins": { 10 "requires": "nsPlugin" 11 }, 12 "setup": [ 13 ], 14 "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq", 15 "expExitCode": "0", 16 "verifyCmd": "$TC qdisc show dev $DUMMY", 17 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit", 18 "matchCount": "1", 19 "teardown": [ 20 "$TC qdisc del dev $DUMMY handle 1: root" 21 ] 22 }, 23 { 24 "id": "38a1", 25 "name": "Create FQ with limit packet setting", 26 "category": [ 27 "qdisc", 28 "fq" 29 ], 30 "plugins": { 31 "requires": "nsPlugin" 32 }, 33 "setup": [ 34 ], 35 "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq limit 3000", 36 "expExitCode": "0", 37 "verifyCmd": "$TC qdisc show dev $DUMMY", 38 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 3000p", 39 "matchCount": "1", 40 "teardown": [ 41 "$TC qdisc del dev $DUMMY handle 1: root" 42 ] 43 }, 44 { 45 "id": "0a18", 46 "name": "Create FQ with flow_limit setting", 47 "category": [ 48 "qdisc", 49 "fq" 50 ], 51 "plugins": { 52 "requires": "nsPlugin" 53 }, 54 "setup": [ 55 ], 56 "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq flow_limit 300", 57 "expExitCode": "0", 58 "verifyCmd": "$TC qdisc show dev $DUMMY", 59 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 300p", 60 "matchCount": "1", 61 "teardown": [ 62 "$TC qdisc del dev $DUMMY handle 1: root" 63 ] 64 }, 65 { 66 "id": "2390", 67 "name": "Create FQ with quantum setting", 68 "category": [ 69 "qdisc", 70 "fq" 71 ], 72 "plugins": { 73 "requires": "nsPlugin" 74 }, 75 "setup": [ 76 ], 77 "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq quantum 9000", 78 "expExitCode": "0", 79 "verifyCmd": "$TC qdisc show dev $DUMMY", 80 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 100p buckets.*orphan_mask 1023 quantum 9000b", 81 "matchCount": "1", 82 "teardown": [ 83 "$TC qdisc del dev $DUMMY handle 1: root" 84 ] 85 }, 86 { 87 "id": "845b", 88 "name": "Create FQ with initial_quantum setting", 89 "category": [ 90 "qdisc", 91 "fq" 92 ], 93 "plugins": { 94 "requires": "nsPlugin" 95 }, 96 "setup": [ 97 ], 98 "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq initial_quantum 900000", 99 "expExitCode": "0", 100 "verifyCmd": "$TC qdisc show dev $DUMMY", 101 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 100p buckets.*initial_quantum 900000b", 102 "matchCount": "1", 103 "teardown": [ 104 "$TC qdisc del dev $DUMMY handle 1: root" 105 ] 106 }, 107 { 108 "id": "10f7", 109 "name": "Create FQ with invalid initial_quantum setting", 110 "category": [ 111 "qdisc", 112 "fq" 113 ], 114 "plugins": { 115 "requires": "nsPlugin" 116 }, 117 "setup": [ 118 ], 119 "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq initial_quantum 0x80000000", 120 "expExitCode": "2", 121 "verifyCmd": "$TC qdisc show dev $DUMMY", 122 "matchPattern": "qdisc fq 1: root.*initial_quantum 2048Mb", 123 "matchCount": "0", 124 "teardown": [ 125 ] 126 }, 127 { 128 "id": "9398", 129 "name": "Create FQ with maxrate setting", 130 "category": [ 131 "qdisc", 132 "fq" 133 ], 134 "plugins": { 135 "requires": "nsPlugin" 136 }, 137 "setup": [ 138 ], 139 "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq maxrate 100000", 140 "expExitCode": "0", 141 "verifyCmd": "$TC qdisc show dev $DUMMY", 142 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 100p buckets.*maxrate 100Kbit", 143 "matchCount": "1", 144 "teardown": [ 145 "$TC qdisc del dev $DUMMY handle 1: root" 146 ] 147 }, 148 { 149 "id": "342c", 150 "name": "Create FQ with nopacing setting", 151 "category": [ 152 "qdisc", 153 "fq" 154 ], 155 "plugins": { 156 "requires": "nsPlugin" 157 }, 158 "setup": [ 159 ], 160 "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq nopacing", 161 "expExitCode": "0", 162 "verifyCmd": "$TC qdisc show dev $DUMMY", 163 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 100p.*nopacing", 164 "matchCount": "1", 165 "teardown": [ 166 "$TC qdisc del dev $DUMMY handle 1: root" 167 ] 168 }, 169 { 170 "id": "6391", 171 "name": "Create FQ with refill_delay setting", 172 "category": [ 173 "qdisc", 174 "fq" 175 ], 176 "plugins": { 177 "requires": "nsPlugin" 178 }, 179 "setup": [ 180 ], 181 "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq refill_delay 100ms", 182 "expExitCode": "0", 183 "verifyCmd": "$TC qdisc show dev $DUMMY", 184 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 100p.*refill_delay 100ms", 185 "matchCount": "1", 186 "teardown": [ 187 "$TC qdisc del dev $DUMMY handle 1: root" 188 ] 189 }, 190 { 191 "id": "238b", 192 "name": "Create FQ with low_rate_threshold setting", 193 "category": [ 194 "qdisc", 195 "fq" 196 ], 197 "plugins": { 198 "requires": "nsPlugin" 199 }, 200 "setup": [ 201 ], 202 "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq low_rate_threshold 10000", 203 "expExitCode": "0", 204 "verifyCmd": "$TC qdisc show dev $DUMMY", 205 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 100p.*low_rate_threshold 10Kbit", 206 "matchCount": "1", 207 "teardown": [ 208 "$TC qdisc del dev $DUMMY handle 1: root" 209 ] 210 }, 211 { 212 "id": "7582", 213 "name": "Create FQ with orphan_mask setting", 214 "category": [ 215 "qdisc", 216 "fq" 217 ], 218 "plugins": { 219 "requires": "nsPlugin" 220 }, 221 "setup": [ 222 ], 223 "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq orphan_mask 255", 224 "expExitCode": "0", 225 "verifyCmd": "$TC qdisc show dev $DUMMY", 226 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 100p.*orphan_mask 255", 227 "matchCount": "1", 228 "teardown": [ 229 "$TC qdisc del dev $DUMMY handle 1: root" 230 ] 231 }, 232 { 233 "id": "4894", 234 "name": "Create FQ with timer_slack setting", 235 "category": [ 236 "qdisc", 237 "fq" 238 ], 239 "plugins": { 240 "requires": "nsPlugin" 241 }, 242 "setup": [ 243 ], 244 "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq timer_slack 100", 245 "expExitCode": "0", 246 "verifyCmd": "$TC qdisc show dev $DUMMY", 247 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 100p.*timer_slack 100ns", 248 "matchCount": "1", 249 "teardown": [ 250 "$TC qdisc del dev $DUMMY handle 1: root" 251 ] 252 }, 253 { 254 "id": "324c", 255 "name": "Create FQ with ce_threshold setting", 256 "category": [ 257 "qdisc", 258 "fq" 259 ], 260 "plugins": { 261 "requires": "nsPlugin" 262 }, 263 "setup": [ 264 ], 265 "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq ce_threshold 100", 266 "expExitCode": "0", 267 "verifyCmd": "$TC qdisc show dev $DUMMY", 268 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 100p", 269 "matchCount": "1", 270 "teardown": [ 271 "$TC qdisc del dev $DUMMY handle 1: root" 272 ] 273 }, 274 { 275 "id": "424a", 276 "name": "Create FQ with horizon time setting", 277 "category": [ 278 "qdisc", 279 "fq" 280 ], 281 "plugins": { 282 "requires": "nsPlugin" 283 }, 284 "setup": [ 285 ], 286 "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq horizon 100", 287 "expExitCode": "0", 288 "verifyCmd": "$TC qdisc show dev $DUMMY", 289 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 100p.*horizon 100us", 290 "matchCount": "1", 291 "teardown": [ 292 "$TC qdisc del dev $DUMMY handle 1: root" 293 ] 294 }, 295 { 296 "id": "89e1", 297 "name": "Create FQ with horizon_cap setting", 298 "category": [ 299 "qdisc", 300 "fq" 301 ], 302 "plugins": { 303 "requires": "nsPlugin" 304 }, 305 "setup": [ 306 ], 307 "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq horizon_cap", 308 "expExitCode": "0", 309 "verifyCmd": "$TC qdisc show dev $DUMMY", 310 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 100p.*horizon_cap", 311 "matchCount": "1", 312 "teardown": [ 313 "$TC qdisc del dev $DUMMY handle 1: root" 314 ] 315 }, 316 { 317 "id": "32e1", 318 "name": "Delete FQ with valid handle", 319 "category": [ 320 "qdisc", 321 "fq" 322 ], 323 "plugins": { 324 "requires": "nsPlugin" 325 }, 326 "setup": [ 327 "$TC qdisc add dev $DUMMY handle 1: root fq" 328 ], 329 "cmdUnderTest": "$TC qdisc del dev $DUMMY handle 1: root", 330 "expExitCode": "0", 331 "verifyCmd": "$TC qdisc show dev $DUMMY", 332 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p", 333 "matchCount": "0", 334 "teardown": [ 335 ] 336 }, 337 { 338 "id": "49b0", 339 "name": "Replace FQ with limit setting", 340 "category": [ 341 "qdisc", 342 "fq" 343 ], 344 "plugins": { 345 "requires": "nsPlugin" 346 }, 347 "setup": [ 348 "$TC qdisc add dev $DUMMY handle 1: root fq" 349 ], 350 "cmdUnderTest": "$TC qdisc replace dev $DUMMY handle 1: root fq limit 5000", 351 "expExitCode": "0", 352 "verifyCmd": "$TC qdisc show dev $DUMMY", 353 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 5000p", 354 "matchCount": "1", 355 "teardown": [ 356 "$TC qdisc del dev $DUMMY handle 1: root" 357 ] 358 }, 359 { 360 "id": "9478", 361 "name": "Change FQ with limit setting", 362 "category": [ 363 "qdisc", 364 "fq" 365 ], 366 "plugins": { 367 "requires": "nsPlugin" 368 }, 369 "setup": [ 370 "$TC qdisc add dev $DUMMY handle 1: root fq" 371 ], 372 "cmdUnderTest": "$TC qdisc change dev $DUMMY handle 1: root fq limit 100", 373 "expExitCode": "0", 374 "verifyCmd": "$TC qdisc show dev $DUMMY", 375 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 100p", 376 "matchCount": "1", 377 "teardown": [ 378 "$TC qdisc del dev $DUMMY handle 1: root" 379 ] 380 } 381] 382