level04.json 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. {
  2. devices:[
  3. {
  4. id:"Alice",
  5. ports:1,
  6. x:0.5,
  7. y:0.1,
  8. player:true,
  9. image:"imac"
  10. },
  11. {
  12. id:"Bob",
  13. ports:1,
  14. x:0.25,
  15. y:0.75,
  16. image:"imac",
  17. player:true
  18. },
  19. {
  20. id:"Carol",
  21. ports:1,
  22. x:0.75,
  23. y:0.75,
  24. image:"imac",
  25. player:true
  26. },
  27. {
  28. id:"Router 1",
  29. ports:3,
  30. x:0.5,
  31. y:0.3,
  32. image:"server",
  33. script: deviceScripts.manualRouter,
  34. rules:[
  35. {dstip:"Alice", portNum:0},
  36. {dstip:"Bob", portNum:1},
  37. {dstip:"Carol", portNum:2}
  38. ]
  39. },
  40. {
  41. id:"Router 2",
  42. type:"ManualRouter",
  43. ports:3,
  44. x:0.35,
  45. y:0.5,
  46. image:"server",
  47. script: deviceScripts.manualRouter,
  48. rules:[
  49. {dstip:"Bob", portNum:0},
  50. {dstip:"Alice", portNum:1},
  51. {dstip:"Carol", portNum:2}
  52. ]
  53. },
  54. {
  55. id:"Router 3",
  56. type:"ManualRouter",
  57. ports:3,
  58. x:0.65,
  59. y:0.5,
  60. image:"server",
  61. script: deviceScripts.manualRouter,
  62. rules:[
  63. {dstip:"Carol", portNum:0},
  64. {dstip:"Alice", portNum:1},
  65. {dstip:"Bob", portNum:2}
  66. ]
  67. }
  68. ],
  69. links:[
  70. {
  71. src:"Alice", srcport:0,
  72. dst:"Router 1", dstport:0
  73. },
  74. {
  75. src:"Bob", srcport:0,
  76. dst:"Router 2", dstport:0
  77. },
  78. {
  79. src:"Carol", srcport:0,
  80. dst:"Router 3", dstport:0
  81. },
  82. {
  83. src:"Router 1", srcport:1,
  84. dst:"Router 2", dstport:1
  85. },
  86. {
  87. src:"Router 1", srcport:2,
  88. dst:"Router 3", dstport:1
  89. },
  90. {
  91. src:"Router 2", srcport:2,
  92. dst:"Router 3", dstport:2
  93. }
  94. ],
  95. timeline:[
  96. {
  97. type:"packet",
  98. at:50,
  99. from:"Alice",
  100. payload:{
  101. network:{dstip:"Bob"}
  102. }
  103. },
  104. {
  105. type:"packet",
  106. at:150,
  107. from:"Bob",
  108. payload:{
  109. network:{dstip:"Alice"}
  110. }
  111. },
  112. {
  113. type:"packet",
  114. at:210,
  115. from:"Alice",
  116. payload:{
  117. network:{dstip:"Carol"}
  118. }
  119. },
  120. {
  121. type:"packet",
  122. at:270,
  123. from:"Carol",
  124. payload:{
  125. network:{dstip:"Bob"}
  126. }
  127. }
  128. ],
  129. triggers:[
  130. {
  131. type:"packet",
  132. device:"Carol",
  133. payload:{
  134. network:{srcip:"Bob", dstip:"Carol"}
  135. }
  136. }
  137. ],
  138. nextLevel:"01 Basics/level05.json"
  139. }