netem.json 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421
  1. [
  2. {
  3. "id": "cb28",
  4. "name": "Create NETEM with default setting",
  5. "category": [
  6. "qdisc",
  7. "netem"
  8. ],
  9. "plugins": {
  10. "requires": "nsPlugin"
  11. },
  12. "setup": [
  13. ],
  14. "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem",
  15. "expExitCode": "0",
  16. "verifyCmd": "$TC qdisc show dev $DUMMY",
  17. "matchPattern": "qdisc netem 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": "a089",
  25. "name": "Create NETEM with limit flag",
  26. "category": [
  27. "qdisc",
  28. "netem"
  29. ],
  30. "plugins": {
  31. "requires": "nsPlugin"
  32. },
  33. "setup": [
  34. ],
  35. "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem limit 200",
  36. "expExitCode": "0",
  37. "verifyCmd": "$TC qdisc show dev $DUMMY",
  38. "matchPattern": "qdisc netem 1: root refcnt [0-9]+ limit 200",
  39. "matchCount": "1",
  40. "teardown": [
  41. "$TC qdisc del dev $DUMMY handle 1: root"
  42. ]
  43. },
  44. {
  45. "id": "3449",
  46. "name": "Create NETEM with delay time",
  47. "category": [
  48. "qdisc",
  49. "netem"
  50. ],
  51. "plugins": {
  52. "requires": "nsPlugin"
  53. },
  54. "setup": [
  55. ],
  56. "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms",
  57. "expExitCode": "0",
  58. "verifyCmd": "$TC qdisc show dev $DUMMY",
  59. "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 100ms",
  60. "matchCount": "1",
  61. "teardown": [
  62. "$TC qdisc del dev $DUMMY handle 1: root"
  63. ]
  64. },
  65. {
  66. "id": "3782",
  67. "name": "Create NETEM with distribution and corrupt flag",
  68. "category": [
  69. "qdisc",
  70. "netem"
  71. ],
  72. "plugins": {
  73. "requires": "nsPlugin"
  74. },
  75. "setup": [
  76. ],
  77. "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution normal corrupt 1%",
  78. "expExitCode": "0",
  79. "verifyCmd": "$TC qdisc show dev $DUMMY",
  80. "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 100ms 10ms corrupt 1%",
  81. "matchCount": "1",
  82. "teardown": [
  83. "$TC qdisc del dev $DUMMY handle 1: root"
  84. ]
  85. },
  86. {
  87. "id": "2b82",
  88. "name": "Create NETEM with distribution and duplicate flag",
  89. "category": [
  90. "qdisc",
  91. "netem"
  92. ],
  93. "plugins": {
  94. "requires": "nsPlugin"
  95. },
  96. "setup": [
  97. ],
  98. "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution normal duplicate 1%",
  99. "expExitCode": "0",
  100. "verifyCmd": "$TC qdisc show dev $DUMMY",
  101. "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 100ms 10ms duplicate 1%",
  102. "matchCount": "1",
  103. "teardown": [
  104. "$TC qdisc del dev $DUMMY handle 1: root"
  105. ]
  106. },
  107. {
  108. "id": "a932",
  109. "name": "Create NETEM with distribution and loss flag",
  110. "category": [
  111. "qdisc",
  112. "netem"
  113. ],
  114. "plugins": {
  115. "requires": "nsPlugin"
  116. },
  117. "setup": [
  118. ],
  119. "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution pareto loss 1%",
  120. "expExitCode": "0",
  121. "verifyCmd": "$TC qdisc show dev $DUMMY",
  122. "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 100ms 10ms loss 1%",
  123. "matchCount": "1",
  124. "teardown": [
  125. "$TC qdisc del dev $DUMMY handle 1: root"
  126. ]
  127. },
  128. {
  129. "id": "e01a",
  130. "name": "Create NETEM with distribution and loss state flag",
  131. "category": [
  132. "qdisc",
  133. "netem"
  134. ],
  135. "plugins": {
  136. "requires": "nsPlugin"
  137. },
  138. "setup": [
  139. ],
  140. "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution paretonormal loss state 1",
  141. "expExitCode": "0",
  142. "verifyCmd": "$TC qdisc show dev $DUMMY",
  143. "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 100ms 10ms loss state p13 1% p31 99% p32 0% p23 100% p14 0%",
  144. "matchCount": "1",
  145. "teardown": [
  146. "$TC qdisc del dev $DUMMY handle 1: root"
  147. ]
  148. },
  149. {
  150. "id": "ba29",
  151. "name": "Create NETEM with loss gemodel flag",
  152. "category": [
  153. "qdisc",
  154. "netem"
  155. ],
  156. "plugins": {
  157. "requires": "nsPlugin"
  158. },
  159. "setup": [
  160. ],
  161. "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem loss gemodel 1%",
  162. "expExitCode": "0",
  163. "verifyCmd": "$TC qdisc show dev $DUMMY",
  164. "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*loss gemodel p 1%",
  165. "matchCount": "1",
  166. "teardown": [
  167. "$TC qdisc del dev $DUMMY handle 1: root"
  168. ]
  169. },
  170. {
  171. "id": "0492",
  172. "name": "Create NETEM with reorder flag",
  173. "category": [
  174. "qdisc",
  175. "netem"
  176. ],
  177. "plugins": {
  178. "requires": "nsPlugin"
  179. },
  180. "setup": [
  181. ],
  182. "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms reorder 2% gap 100",
  183. "expExitCode": "0",
  184. "verifyCmd": "$TC qdisc show dev $DUMMY",
  185. "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*reorder 2%",
  186. "matchCount": "1",
  187. "teardown": [
  188. "$TC qdisc del dev $DUMMY handle 1: root"
  189. ]
  190. },
  191. {
  192. "id": "7862",
  193. "name": "Create NETEM with rate limit",
  194. "category": [
  195. "qdisc",
  196. "netem"
  197. ],
  198. "plugins": {
  199. "requires": "nsPlugin"
  200. },
  201. "setup": [
  202. ],
  203. "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem rate 20000",
  204. "expExitCode": "0",
  205. "verifyCmd": "$TC qdisc show dev $DUMMY",
  206. "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*rate 20Kbit",
  207. "matchCount": "1",
  208. "teardown": [
  209. "$TC qdisc del dev $DUMMY handle 1: root"
  210. ]
  211. },
  212. {
  213. "id": "7235",
  214. "name": "Create NETEM with multiple slot rate",
  215. "category": [
  216. "qdisc",
  217. "netem"
  218. ],
  219. "plugins": {
  220. "requires": "nsPlugin"
  221. },
  222. "setup": [
  223. ],
  224. "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem slot 10 200 packets 2000 bytes 9000",
  225. "expExitCode": "0",
  226. "verifyCmd": "$TC qdisc show dev $DUMMY",
  227. "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*slot 10ns 200ns packets 2000 bytes 9000",
  228. "matchCount": "1",
  229. "teardown": [
  230. "$TC qdisc del dev $DUMMY handle 1: root"
  231. ]
  232. },
  233. {
  234. "id": "5439",
  235. "name": "Create NETEM with multiple slot setting",
  236. "category": [
  237. "qdisc",
  238. "netem"
  239. ],
  240. "plugins": {
  241. "requires": "nsPlugin"
  242. },
  243. "setup": [
  244. ],
  245. "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem slot distribution pareto 1ms 0.1ms",
  246. "expExitCode": "0",
  247. "verifyCmd": "$TC qdisc show dev $DUMMY",
  248. "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*slot distribution 1ms 100us",
  249. "matchCount": "1",
  250. "teardown": [
  251. "$TC qdisc del dev $DUMMY handle 1: root"
  252. ]
  253. },
  254. {
  255. "id": "5029",
  256. "name": "Change NETEM with loss state",
  257. "category": [
  258. "qdisc",
  259. "netem"
  260. ],
  261. "plugins": {
  262. "requires": "nsPlugin"
  263. },
  264. "setup": [
  265. "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution normal loss 1%"
  266. ],
  267. "cmdUnderTest": "$TC qdisc change dev $DUMMY handle 1: root netem delay 100ms 10ms distribution normal loss 2%",
  268. "expExitCode": "0",
  269. "verifyCmd": "$TC qdisc show dev $DUMMY",
  270. "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*loss 2%",
  271. "matchCount": "1",
  272. "teardown": [
  273. "$TC qdisc del dev $DUMMY handle 1: root"
  274. ]
  275. },
  276. {
  277. "id": "3785",
  278. "name": "Replace NETEM with delay time",
  279. "category": [
  280. "qdisc",
  281. "netem"
  282. ],
  283. "plugins": {
  284. "requires": "nsPlugin"
  285. },
  286. "setup": [
  287. "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution normal loss 1%"
  288. ],
  289. "cmdUnderTest": "$TC qdisc replace dev $DUMMY handle 1: root netem delay 200ms 10ms",
  290. "expExitCode": "0",
  291. "verifyCmd": "$TC qdisc show dev $DUMMY",
  292. "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 200ms 10ms",
  293. "matchCount": "1",
  294. "teardown": [
  295. "$TC qdisc del dev $DUMMY handle 1: root"
  296. ]
  297. },
  298. {
  299. "id": "4502",
  300. "name": "Delete NETEM with handle",
  301. "category": [
  302. "qdisc",
  303. "netem"
  304. ],
  305. "plugins": {
  306. "requires": "nsPlugin"
  307. },
  308. "setup": [
  309. "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution normal"
  310. ],
  311. "cmdUnderTest": "$TC qdisc del dev $DUMMY handle 1: root",
  312. "expExitCode": "0",
  313. "verifyCmd": "$TC qdisc show dev $DUMMY",
  314. "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 100ms 10ms",
  315. "matchCount": "0",
  316. "teardown": [
  317. ]
  318. },
  319. {
  320. "id": "0785",
  321. "name": "Show NETEM class",
  322. "category": [
  323. "qdisc",
  324. "netem"
  325. ],
  326. "plugins": {
  327. "requires": "nsPlugin"
  328. },
  329. "setup": [
  330. ],
  331. "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem",
  332. "expExitCode": "0",
  333. "verifyCmd": "$TC class show dev $DUMMY",
  334. "matchPattern": "class netem 1:",
  335. "matchCount": "0",
  336. "teardown": [
  337. "$TC qdisc del dev $DUMMY handle 1: root"
  338. ]
  339. },
  340. {
  341. "id": "d34d",
  342. "name": "NETEM test qdisc duplication restriction in qdisc tree in netem_change root",
  343. "category": ["qdisc", "netem"],
  344. "plugins": {
  345. "requires": "nsPlugin"
  346. },
  347. "setup": [
  348. "$TC qdisc add dev $DUMMY root handle 1: netem limit 1",
  349. "$TC qdisc add dev $DUMMY parent 1: handle 2: netem limit 1"
  350. ],
  351. "cmdUnderTest": "$TC qdisc change dev $DUMMY handle 1: netem duplicate 50%",
  352. "expExitCode": "2",
  353. "verifyCmd": "$TC -s qdisc show dev $DUMMY",
  354. "matchPattern": "qdisc netem",
  355. "matchCount": "2",
  356. "teardown": [
  357. "$TC qdisc del dev $DUMMY handle 1:0 root"
  358. ]
  359. },
  360. {
  361. "id": "b33f",
  362. "name": "NETEM test qdisc duplication restriction in qdisc tree in netem_change non-root",
  363. "category": ["qdisc", "netem"],
  364. "plugins": {
  365. "requires": "nsPlugin"
  366. },
  367. "setup": [
  368. "$TC qdisc add dev $DUMMY root handle 1: netem limit 1",
  369. "$TC qdisc add dev $DUMMY parent 1: handle 2: netem limit 1"
  370. ],
  371. "cmdUnderTest": "$TC qdisc change dev $DUMMY handle 2: netem duplicate 50%",
  372. "expExitCode": "2",
  373. "verifyCmd": "$TC -s qdisc show dev $DUMMY",
  374. "matchPattern": "qdisc netem",
  375. "matchCount": "2",
  376. "teardown": [
  377. "$TC qdisc del dev $DUMMY handle 1:0 root"
  378. ]
  379. },
  380. {
  381. "id": "cafe",
  382. "name": "NETEM test qdisc duplication restriction in qdisc tree",
  383. "category": ["qdisc", "netem"],
  384. "plugins": {
  385. "requires": "nsPlugin"
  386. },
  387. "setup": [
  388. "$TC qdisc add dev $DUMMY root handle 1: netem limit 1 duplicate 100%"
  389. ],
  390. "cmdUnderTest": "$TC qdisc add dev $DUMMY parent 1: handle 2: netem duplicate 100%",
  391. "expExitCode": "2",
  392. "verifyCmd": "$TC -s qdisc show dev $DUMMY",
  393. "matchPattern": "qdisc netem",
  394. "matchCount": "1",
  395. "teardown": [
  396. "$TC qdisc del dev $DUMMY handle 1:0 root"
  397. ]
  398. },
  399. {
  400. "id": "1337",
  401. "name": "NETEM test qdisc duplication restriction in qdisc tree across branches",
  402. "category": ["qdisc", "netem"],
  403. "plugins": {
  404. "requires": "nsPlugin"
  405. },
  406. "setup": [
  407. "$TC qdisc add dev $DUMMY parent root handle 1:0 hfsc",
  408. "$TC class add dev $DUMMY parent 1:0 classid 1:1 hfsc rt m2 10Mbit",
  409. "$TC qdisc add dev $DUMMY parent 1:1 handle 2:0 netem",
  410. "$TC class add dev $DUMMY parent 1:0 classid 1:2 hfsc rt m2 10Mbit"
  411. ],
  412. "cmdUnderTest": "$TC qdisc add dev $DUMMY parent 1:2 handle 3:0 netem duplicate 100%",
  413. "expExitCode": "2",
  414. "verifyCmd": "$TC -s qdisc show dev $DUMMY",
  415. "matchPattern": "qdisc netem",
  416. "matchCount": "1",
  417. "teardown": [
  418. "$TC qdisc del dev $DUMMY handle 1:0 root"
  419. ]
  420. }
  421. ]