{ devices:[ { id:"Alice", ports:1, x:0.5, y:0.2, player:true, image:"imac" }, { id:"Bob", ports:1, x:0.25, y:0.75, image:"imac", player:true }, { id:"Carol", ports:1, x:0.75, y:0.75, image:"imac", player:true }, { id:"Router 1", ports:3, x:0.5, y:0.4, image:"server", script: deviceScripts.manualRouter, rules:[ {dstip:"Alice", portNum:0}, {dstip:"Bob", portNum:1}, {dstip:"Carol", portNum:2} ] }, { id:"Router 2", type:"ManualRouter", ports:3, x:0.35, y:0.6, image:"server", script: deviceScripts.manualRouter, rules:[ {dstip:"Bob", portNum:0}, {dstip:"Alice", portNum:1}, {dstip:"Carol", portNum:2} ] }, { id:"Router 3", type:"ManualRouter", ports:3, x:0.65, y:0.6, image:"server", script: deviceScripts.manualRouter, rules:[ {dstip:"Carol", portNum:0}, {dstip:"Alice", portNum:1}, {dstip:"Bob", portNum:2} ] } ], links:[ { src:"Alice", srcport:0, dst:"Router 1", dstport:0 }, { src:"Bob", srcport:0, dst:"Router 2", dstport:0 }, { src:"Carol", srcport:0, dst:"Router 3", dstport:0 }, { src:"Router 1", srcport:1, dst:"Router 2", dstport:1 }, { src:"Router 1", srcport:2, dst:"Router 3", dstport:1 }, { src:"Router 2", srcport:2, dst:"Router 3", dstport:2 } ], timeline:[ { type:"packet", at:50, from:"Alice", payload:{ network:{dstip:"Bob"} } }, { type:"packet", at:150, from:"Bob", payload:{ network:{dstip:"Alice"} } }, { type:"packet", at:210, from:"Alice", payload:{ network:{dstip:"Carol"} } }, { type:"packet", at:270, from:"Carol", payload:{ network:{dstip:"Bob"} } } ], triggers:[ { type:"packet", device:"Carol", payload:{ network:{srcip:"Bob", dstip:"Carol"} } } ], nextLevel:"01 Basics/level05.json" }