1 [ 2 { 3 "id": "0582", 4 "name": "Create QFQ with default setting", 5 "category": [ 6 "qdisc", 7 "qfq" 8 ], 9 "plugins": { 10 "requires": "nsPlugin" 11 }, 12 "setup": [ 13 ], 14 "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root qfq", 15 "expExitCode": "0", 16 "verifyCmd": "$TC qdisc show dev $DUMMY", 17 "matchPattern": "qdisc qfq 1: root refcnt [0-9]+", 18 "matchCount": "1", 19 "teardown": [ 20 "$TC qdisc del dev $DUMMY handle 1: root" 21 ] 22 }, 23 { 24 "id": "c9a3", 25 "name": "Create QFQ with class weight setting", 26 "category": [ 27 "qdisc", 28 "qfq" 29 ], 30 "plugins": { 31 "requires": "nsPlugin" 32 }, 33 "setup": [ 34 "$TC qdisc add dev $DUMMY handle 1: root qfq" 35 ], 36 "cmdUnderTest": "$TC class add dev $DUMMY parent 1: classid 1:1 qfq weight 100", 37 "expExitCode": "0", 38 "verifyCmd": "$TC class show dev $DUMMY", 39 "matchPattern": "class qfq 1:1 root weight 100 maxpkt", 40 "matchCount": "1", 41 "teardown": [ 42 "$TC qdisc del dev $DUMMY handle 1: root" 43 ] 44 }, 45 { 46 "id": "d364", 47 "name": "Test QFQ with max class weight setting", 48 "category": [ 49 "qdisc", 50 "qfq" 51 ], 52 "plugins": { 53 "requires": "nsPlugin" 54 }, 55 "setup": [ 56 "$TC qdisc add dev $DUMMY handle 1: root qfq" 57 ], 58 "cmdUnderTest": "$TC class add dev $DUMMY parent 1: classid 1:1 qfq weight 9999", 59 "expExitCode": "2", 60 "verifyCmd": "$TC class show dev $DUMMY", 61 "matchPattern": "class qfq 1:1 root weight 9999 maxpkt", 62 "matchCount": "0", 63 "teardown": [ 64 "$TC qdisc del dev $DUMMY handle 1: root" 65 ] 66 }, 67 { 68 "id": "8452", 69 "name": "Create QFQ with class maxpkt setting", 70 "category": [ 71 "qdisc", 72 "qfq" 73 ], 74 "plugins": { 75 "requires": "nsPlugin" 76 }, 77 "setup": [ 78 "$TC qdisc add dev $DUMMY handle 1: root qfq" 79 ], 80 "cmdUnderTest": "$TC class add dev $DUMMY parent 1: classid 1:1 qfq maxpkt 2000", 81 "expExitCode": "0", 82 "verifyCmd": "$TC class show dev $DUMMY", 83 "matchPattern": "class qfq 1:1 root weight 1 maxpkt 2000", 84 "matchCount": "1", 85 "teardown": [ 86 "$TC qdisc del dev $DUMMY handle 1: root" 87 ] 88 }, 89 { 90 "id": "22df", 91 "name": "Test QFQ class maxpkt setting lower bound", 92 "category": [ 93 "qdisc", 94 "qfq" 95 ], 96 "plugins": { 97 "requires": "nsPlugin" 98 }, 99 "setup": [ 100 "$TC qdisc add dev $DUMMY handle 1: root qfq" 101 ], 102 "cmdUnderTest": "$TC class add dev $DUMMY parent 1: classid 1:1 qfq maxpkt 128", 103 "expExitCode": "2", 104 "verifyCmd": "$TC class show dev $DUMMY", 105 "matchPattern": "class qfq 1:1 root weight 1 maxpkt 128", 106 "matchCount": "0", 107 "teardown": [ 108 "$TC qdisc del dev $DUMMY handle 1: root" 109 ] 110 }, 111 { 112 "id": "92ee", 113 "name": "Test QFQ class maxpkt setting upper bound", 114 "category": [ 115 "qdisc", 116 "qfq" 117 ], 118 "plugins": { 119 "requires": "nsPlugin" 120 }, 121 "setup": [ 122 "$TC qdisc add dev $DUMMY handle 1: root qfq" 123 ], 124 "cmdUnderTest": "$TC class add dev $DUMMY parent 1: classid 1:1 qfq maxpkt 99999", 125 "expExitCode": "2", 126 "verifyCmd": "$TC class show dev $DUMMY", 127 "matchPattern": "class qfq 1:1 root weight 1 maxpkt 99999", 128 "matchCount": "0", 129 "teardown": [ 130 "$TC qdisc del dev $DUMMY handle 1: root" 131 ] 132 }, 133 { 134 "id": "d920", 135 "name": "Create QFQ with multiple class setting", 136 "category": [ 137 "qdisc", 138 "qfq" 139 ], 140 "plugins": { 141 "requires": "nsPlugin" 142 }, 143 "setup": [ 144 "$TC qdisc add dev $DUMMY handle 1: root qfq", 145 "$TC class add dev $DUMMY parent 1: classid 1:1 qfq weight 100" 146 ], 147 "cmdUnderTest": "$TC class add dev $DUMMY parent 1: classid 1:2 qfq weight 200", 148 "expExitCode": "0", 149 "verifyCmd": "$TC class show dev $DUMMY", 150 "matchPattern": "class qfq 1:[0-9]+ root weight [0-9]+00 maxpkt", 151 "matchCount": "2", 152 "teardown": [ 153 "$TC qdisc del dev $DUMMY handle 1: root" 154 ] 155 }, 156 { 157 "id": "0548", 158 "name": "Delete QFQ with handle", 159 "category": [ 160 "qdisc", 161 "qfq" 162 ], 163 "plugins": { 164 "requires": "nsPlugin" 165 }, 166 "setup": [ 167 "$TC qdisc add dev $DUMMY handle 1: root qfq", 168 "$TC class add dev $DUMMY parent 1: classid 1:1 qfq weight 100" 169 ], 170 "cmdUnderTest": "$TC qdisc del dev $DUMMY handle 1: root", 171 "expExitCode": "0", 172 "verifyCmd": "$TC class show dev $DUMMY", 173 "matchPattern": "qdisc qfq 1: root refcnt [0-9]+", 174 "matchCount": "0", 175 "teardown": [ 176 ] 177 }, 178 { 179 "id": "5901", 180 "name": "Show QFQ class", 181 "category": [ 182 "qdisc", 183 "qfq" 184 ], 185 "plugins": { 186 "requires": "nsPlugin" 187 }, 188 "setup": [ 189 ], 190 "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root qfq", 191 "expExitCode": "0", 192 "verifyCmd": "$TC class show dev $DUMMY", 193 "matchPattern": "class qfq 1:", 194 "matchCount": "0", 195 "teardown": [ 196 "$TC qdisc del dev $DUMMY handle 1: root" 197 ] 198 }, 199 { 200 "id": "85ee", 201 "name": "QFQ with big MTU", 202 "category": [ 203 "qdisc", 204 "qfq" 205 ], 206 "plugins": { 207 "requires": "nsPlugin" 208 }, 209 "setup": [ 210 "$IP link set dev $DUMMY mtu 2147483647 || /bin/true", 211 "$TC qdisc add dev $DUMMY handle 1: root qfq" 212 ], 213 "cmdUnderTest": "$TC class add dev $DUMMY parent 1: classid 1:1 qfq weight 100", 214 "expExitCode": "2", 215 "verifyCmd": "$TC class show dev $DUMMY", 216 "matchPattern": "class qfq 1:", 217 "matchCount": "0", 218 "teardown": [ 219 ] 220 }, 221 { 222 "id": "ddfa", 223 "name": "QFQ with small MTU", 224 "category": [ 225 "qdisc", 226 "qfq" 227 ], 228 "plugins": { 229 "requires": "nsPlugin" 230 }, 231 "setup": [ 232 "$IP link set dev $DUMMY mtu 256 || /bin/true", 233 "$TC qdisc add dev $DUMMY handle 1: root qfq" 234 ], 235 "cmdUnderTest": "$TC class add dev $DUMMY parent 1: classid 1:1 qfq weight 100", 236 "expExitCode": "2", 237 "verifyCmd": "$TC class show dev $DUMMY", 238 "matchPattern": "class qfq 1:", 239 "matchCount": "0", 240 "teardown": [ 241 ] 242 }, 243 { 244 "id": "5993", 245 "name": "QFQ with stab overhead greater than max packet len", 246 "category": [ 247 "qdisc", 248 "qfq", 249 "scapy" 250 ], 251 "plugins": { 252 "requires": [ 253 "nsPlugin", 254 "scapyPlugin" 255 ] 256 }, 257 "setup": [ 258 "$IP link set dev $DUMMY up || /bin/true", 259 "$TC qdisc add dev $DUMMY handle 1: stab mtu 2048 tsize 512 mpu 0 overhead 999999999 linklayer ethernet root qfq", 260 "$TC class add dev $DUMMY parent 1: classid 1:1 qfq weight 100", 261 "$TC qdisc add dev $DEV1 clsact", 262 "$TC filter add dev $DEV1 ingress protocol ip flower dst_ip 1.3.3.7/32 action mirred egress mirror dev $DUMMY" 263 ], 264 "cmdUnderTest": "$TC filter add dev $DUMMY parent 1: matchall classid 1:1", 265 "scapy": [ 266 { 267 "iface": "$DEV0", 268 "count": 22, 269 "packet": "Ether(type=0x800)/IP(src='10.0.0.10',dst='1.3.3.7')/TCP(sport=5000,dport=10)" 270 } 271 ], 272 "expExitCode": "0", 273 "verifyCmd": "$TC -s qdisc ls dev $DUMMY", 274 "matchPattern": "dropped 22", 275 "matchCount": "1", 276 "teardown": [ 277 "$TC qdisc del dev $DUMMY handle 1: root qfq" 278 ] 279 } 280 ]
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.