Here are the most relevant parts of the REAL input files for the network scenarios described in Chapter 9. I have removed some mandatory lines that control the underlying NEST simulator on which REAL is based. In each file given, the keywords SRC, DST and ROUTER must be replaced with appropriate function names. The triplets required are given below:
All scenarios use the following global parameters:
real_params { scale_factor = 1.0; # Scale time to seconds ack_size = 40; # ACK size in octets random_seed = 23; # Seed to random() buffer_size = 15000; # Output iface buf size (bytes) ftp_pkt_size = 1500; # Data packet size ftp_window = 600; # Max window size in pkts selack_size= 1; # Size of selective ack bitmap decongestion_mechanism = 1; # Drop Tail sch_policy = 1; # First Come, First Served util_time= 2.0; # Measure link util every 2sec }
Also note that the `thresh 5 0.75' parameter to the router is ignored by the existing REAL router code, and is only used by the RBCC router code.
nodes{ default{ function = SRC; # Source start_time = 0,1000; # Start at 1 millisecond plot = true; # Plot this node num_pkts = 1000; # Num packets to send } node 1 { function = ROUTER; params= 'thresh 5 0.75'; } node 2 { function = ROUTER; params= 'thresh 5 0.75'; } node 3 { function = ROUTER; params= 'thresh 5 0.75'; } node 4 { function = DST; } node 5 { dest = 4; } } # Bandwidth in bps, latency in microseconds edges{ default { bandwidth = 10000000; latency = 1; } { 1 -> 2; } { 2 -> 3; bandwidth = 1000000; latency = 30; } { 4 -> 3; } { 5 -> 1; } }
nodes{ default{ function = SRC; # Source start_time = 0,100; # Start at 0 + 100 microseconds plot = true; # Plot this node num_pkts = 1000; # Num packets to send } node 1 { function = ROUTER; params= 'thresh 5 0.75'; } node 2 { function = ROUTER; params= 'thresh 5 0.75'; } node 3 { function = ROUTER; params= 'thresh 5 0.75'; } node 4 { function = ROUTER; params= 'thresh 5 0.75'; } node 9 { function = DST; } node 10 { function = DST; } node 11 { function = DST; } node 12 { function = DST; } node 5 { dest = 10; } node 6 { start_time = 140,0; dest = 11; num_pkts= 100; } node 7 { start_time = 12,0; dest = 12;} node 8 { start_time = 18,0; dest = 9;} } # Bandwidth in bps, latency in microseconds edges{ default{ bandwidth = 10000000; latency = 1; } { 1 -> 2; } { 2 -> 3; bandwidth = 64000; latency = 1000000;} { 3 -> 4; } { 5 -> 1; } { 6 -> 1; } { 7 -> 1; } { 8 -> 3; } { 9 -> 2; } { 10 -> 3; } { 11 -> 4; } { 12 -> 4; } }
Scenario 2a is the same as Scenario 2, but sources 6 and 7 have finite desired bandwidths of 18kbps and 32kbps, respectively; these are set in the corresponding node lines with the options peak = 18000.0; and peak = 32000.0;.
nodes{ default{ function = SRC; start_time = 0,100; # Start at 0 + 100 microseconds plot = true; # Plot this node num_pkts = 1000; # Num packets to send } node 1 { function = ROUTER; params= 'thresh 5 0.75'; } node 2 { function = ROUTER; params= 'thresh 5 0.75'; } node 3 { function = ROUTER; params= 'thresh 5 0.75'; } node 4 { function = ROUTER; params= 'thresh 5 0.75'; } node 5 { function = ROUTER; params= 'thresh 5 0.75'; } node 10 { function = DST; } node 11 { function = DST; } node 12 { function = DST; } node 13 { function = DST; } node 6 { dest = 11; } node 9 { start_time = 5,0; dest = 10; } node 7 { start_time = 10,0; dest = 12; num_pkts= 100; } node 8 { start_time = 15,0; dest = 13; num_pkts= 100; } } # Bandwidth in bps, latency in microseconds edges{ default{ bandwidth = 10000000; latency = 1; } { 1 -> 2; } { 2 -> 3; bandwidth = 512000; latency = 1000000;} { 3 -> 4; bandwidth = 128000; latency = 1000000;} { 4 -> 5; bandwidth = 64000; latency = 1000000;} { 6 -> 1; } { 7 -> 3; } { 8 -> 4; } { 9 -> 4; } { 10 -> 2; } { 11 -> 5; } { 12 -> 5; } { 13 -> 5; } }
nodes{ default{ function = SRC; plot = false; # Don't plot this node num_pkts = 1000; # Num packets to send } node 1 { start_time= 1,0; dest = 9; plot=true; } node 2 { start_time= 2,0; dest = 10; plot=true; } node 3 { start_time= 3,0; dest = 11; plot=true; } node 4 { start_time= 4,0; dest = 12; plot=true; } node 5 { start_time= 5,0; dest = 13; plot=true; } node 6 { start_time= 6,0; dest = 14; plot=true; } node 7 { start_time= 7,0; dest = 15; plot=true; } node 8 { start_time= 8,0; dest = 16; plot=true; } node 9 { function = DST; plot=true; } node 10 { function = DST; plot=true; } node 11 { function = DST; plot=true; } node 12 { function = DST; plot=true; } node 13 { function = DST; plot=true; } node 14 { function = DST; plot=true; } node 15 { function = DST; plot=true; } node 16 { function = DST; plot=true; } node 17 { function = ROUTER; params= 'thresh 5 0.75'; } node 18 { function = ROUTER; params= 'thresh 5 0.75'; } node 19 { function = ROUTER; params= 'thresh 5 0.75'; } node 20 { function = ROUTER; params= 'thresh 5 0.75'; } node 21 { function = ROUTER; plot=true; params= 'thresh 5 0.75'; } node 22 { function = ROUTER; plot=true; params= 'thresh 5 0.75'; } node 23 { function = ROUTER; plot=true; params= 'thresh 5 0.75'; } node 24 { function = ROUTER; plot=true; params= 'thresh 5 0.75'; } node 25 { function = ROUTER; params= 'thresh 5 0.75'; } node 26 { function = ROUTER; params= 'thresh 5 0.75'; } node 27 { function = ROUTER; params= 'thresh 5 0.75'; } node 28 { function = ROUTER; params= 'thresh 5 0.75'; } node 29 { function = ROUTER; params= 'thresh 5 0.75'; } node 30 { function = ROUTER; params= 'thresh 5 0.75'; } } # Bandwidth in bps, latency in microseconds edges{ default{ bandwidth = 10000000; latency = 1; } { 1 -> 17; } { 2 -> 17; } { 3 -> 18; } { 4 -> 18; } { 5 -> 19; } { 6 -> 19; } { 7 -> 20; } { 8 -> 20; } { 17 -> 21; } { 18 -> 21; } { 19 -> 22; } { 20 -> 22; } { 21 -> 23; } { 22 -> 23; } { 23 -> 24; bandwidth= 64000; latency= 1000000; } { 24 -> 25; } { 24 -> 26; } { 25 -> 27; } { 25 -> 28; } { 26 -> 29; } { 26 -> 30; } { 9 -> 27; } { 10 -> 27; } { 13 -> 28; } { 14 -> 28; } { 11 -> 29; } { 12 -> 29; } { 15 -> 30; } { 16 -> 30; } }
nodes{ default{ function = SRC; plot = true; num_pkts = 1000; # Num packets to send } node 6 { start_time= 0,0; dest = 18; } node 7 { start_time= 20,0; dest = 24; } node 8 { start_time= 50,0; dest = 21; num_pkts = 100; } node 9 { start_time= 60,0; dest = 25; } node 10 { start_time= 61,0; dest = 23; } node 11 { start_time= 1,0; dest = 16; } node 12 { start_time= 21,0; dest = 19; num_pkts = 100; } node 13 { start_time= 40,0; dest = 20; } node 14 { start_time= 41,0; dest = 22; num_pkts = 100; } node 15 { start_time= 49,0; dest = 17; } node 16 { function = DST; } node 17 { function = DST; } node 18 { function = DST; } node 19 { function = DST; } node 20 { function = DST; } node 21 { function = DST; } node 22 { function = DST; } node 23 { function = DST; } node 24 { function = DST; } node 25 { function = DST; } node 1 { function = ROUTER; plot=false; params= 'thresh 5 0.75'; } node 2 { function = ROUTER; params= 'thresh 5 0.75'; } node 3 { function = ROUTER; params= 'thresh 5 0.75'; } node 4 { function = ROUTER; params= 'thresh 5 0.75'; } node 5 { function = ROUTER; plot=false; params= 'thresh 5 0.75'; } } # Bandwidth in bps, latency in microseconds edges{ default { bandwidth = 10000000; latency = 10; } { 6 -> 1; } { 7 -> 1; } { 16 -> 1; } { 17 -> 1; } { 8 -> 2; } { 9 -> 2; } { 18 -> 2; } { 19 -> 2; } { 10 -> 3; } { 11 -> 3; } { 20 -> 3; } { 21 -> 3; } { 12 -> 4; } { 13 -> 4; } { 22 -> 4; } { 23 -> 4; } { 14 -> 5; } { 15 -> 5; } { 24 -> 5; } { 25 -> 5; } { 1 -> 2; bandwidth= 1000000; latency= 5000; } { 2 -> 3; bandwidth= 100000; latency= 8000; } { 3 -> 4; bandwidth= 64000; latency= 800000; } { 4 -> 5; bandwidth= 1000000; latency= 10000; } }
nodes{ default{ function = SRC; start_time = 0,100; # Start at 0 + 100 microseconds plot = true; # Plot this node num_pkts = 200; # Num packets to send } node 1 { function = ROUTER; plot=false; params= 'thresh 5 0.75'; } node 2 { function = ROUTER; params= 'thresh 5 0.75'; } node 3 { function = ROUTER; params= 'thresh 5 0.75'; } node 4 { function = ROUTER; params= 'thresh 5 0.75'; } node 5 { function = ROUTER; plot=false; params= 'thresh 5 0.75'; } node 8 { function = DST; } node 10 { function = DST; } node 12 { function = DST; } node 14 { function = DST; } node 15 { function = DST; } node 6 { dest = 15; num_pkts = 1000; } node 7 { start_time = 1,0; dest = 8; } node 9 { start_time = 75,0; dest = 10; } node 11 { start_time = 110,0; dest = 12; } node 13 { start_time = 145,0; dest = 14; } } # Bandwidth in bps, latency in microseconds edges{ default{ bandwidth = 10000000; latency = 1; } { 1 -> 2; bandwidth = 64000; latency = 1000000;} { 2 -> 3; bandwidth = 64000; latency = 1000000;} { 3 -> 4; bandwidth = 64000; latency = 1000000;} { 4 -> 5; bandwidth = 64000; latency = 1000000;} { 6 -> 1; } { 7 -> 1; } { 8 -> 2; } { 9 -> 2; } { 10 -> 3; } { 11 -> 3; } { 12 -> 4; } { 13 -> 4; } { 14 -> 5; } { 15 -> 5; } }
nodes{ default{ function = SRC; # Source start_time = 0,100; # Start at 0 + 100 microseconds plot = true; # Plot this node num_pkts = 1000; # Num packets to send } node 1 { function = ROUTER; params= 'thresh 5 0.75'; } node 2 { function = ROUTER; params= 'thresh 5 0.75'; } node 3 { function = ROUTER; params= 'thresh 5 0.75'; } node 4 { function = ROUTER; params= 'thresh 5 0.75'; } node 9 { function = DST; } node 10 { function = DST; } node 11 { function = DST; } node 12 { function = DST; } node 5 { dest = 10; params= 'pktsize 70 1500'; } node 6 { start_time = 140,0; dest = 11; num_pkts= 100; params= 'pktsize 400 900'; } node 7 { start_time = 12,0; dest = 12; params= 'pktsize 700 1500'; } node 8 { start_time = 18,0; dest = 9; params= 'pktsize 900 1500';} } # Bandwidth in bps, latency in microseconds edges{ default{ bandwidth = 10000000; latency = 1; } { 1 -> 2; } { 2 -> 3; bandwidth = 64000; latency = 1000000;} { 3 -> 4; } { 5 -> 1; } { 6 -> 1; } { 7 -> 1; } { 8 -> 3; } { 9 -> 2; } { 10 -> 3; } { 11 -> 4; } { 12 -> 4; } }
nodes{ default{ function = SRC; # Source start_time = 0,100; # Start at 0 + 100 microseconds plot = true; # Plot this node num_pkts = 1000; # Num packets to send } node 1 { function = ROUTER; params='thresh 5 0.75 route 10 via 13 at 100.0'; } node 2 { function = ROUTER; params='thresh 5 0.75'; } node 3 { function = ROUTER; params='thresh 5 0.75 route 5 via 13 at 100.0'; } node 4 { function = ROUTER; plot=false; params='thresh 5 0.75'; } node 13 { function = ROUTER; params='thresh 5 0.75'; } node 9 { function = DST; } node 10 { function = DST; } node 11 { function = DST; } node 12 { function = DST; } node 5 { dest = 10; } node 6 { start_time = 140,0; dest = 11; num_pkts= 100; } node 7 { start_time = 12,0; dest = 12;} node 8 { start_time = 18,0; dest = 9;} } # Bandwidth in bps, latency in microseconds edges{ default{ bandwidth = 10000000; latency = 1; } { 1 -> 2; } { 2 -> 3; bandwidth = 64000; latency = 1000000;} { 3 -> 4; } { 5 -> 1; } { 6 -> 1; } { 7 -> 1; } { 8 -> 3; } { 9 -> 2; } { 10 -> 3; } { 11 -> 4; } { 12 -> 4; } { 1 -> 13; bandwidth = 512000; latency = 10000;} { 3 -> 13; bandwidth = 512000; latency = 10000;} }