diff --git a/db/xmlconvert.in b/db/xmlconvert.in index 4342eb000fb86882f3719b558c07b4ebc57a0bb7..b00a640d30204f033062bf7b0079797a78329918 100644 --- a/db/xmlconvert.in +++ b/db/xmlconvert.in @@ -151,6 +151,7 @@ my %experiment_fields = ("multiplex_factor" => 1, "modelnet_cores" => 1, "modelnet_edges" => 1, "elab_in_elab" => 1, + "elabinelab_eid" => 1, "security_level" => 1); # New parsing code state machine control. diff --git a/sql/database-fill.sql b/sql/database-fill.sql index 59e3984f254a68718cf63c0d7b6a1fe4c520c712..70c761cdd1f9de746bf97c59f0415fb87805709e 100644 --- a/sql/database-fill.sql +++ b/sql/database-fill.sql @@ -669,6 +669,7 @@ REPLACE INTO table_regex VALUES ('firewall_rules','ruleno','int','redirect','def REPLACE INTO table_regex VALUES ('firewall_rules','rule','text','regex','^\\w[-\\w \\t,/\\{\\}\\(\\)!:\\.]*$',0,1024,NULL); REPLACE INTO table_regex VALUES ('virt_nodes','inner_elab_role','text','regex','^(boss|ops|node)$',0,0,NULL); REPLACE INTO table_regex VALUES ('experiments','elab_in_elab','int','redirect','default:boolean',0,0,NULL); +REPLACE INTO table_regex VALUES ('experiments','elabinelab_eid','text','redirect','experiments:eid',0,0,NULL); REPLACE INTO table_regex VALUES ('images','imageid','text','regex','^[a-zA-Z0-9][-\\w\\.+]+$',0,45,NULL); REPLACE INTO table_regex VALUES ('images','imagename','text','regex','^[a-zA-Z0-9][-\\w\\.+]+$',2,30,NULL); diff --git a/tbsetup/ns2ir/elabinelab.ns b/tbsetup/ns2ir/elabinelab.ns index 81b61ed742643ac334cff318ccc35f5deb4c6137..d6ba29af299b128144a4fd5d2c5daaf6cb90d694 100644 --- a/tbsetup/ns2ir/elabinelab.ns +++ b/tbsetup/ns2ir/elabinelab.ns @@ -9,7 +9,7 @@ set myboss [$ns node] set myops [$ns node] tb-set-hardware $myboss pc2000 -tb-set-hardware $myops pc2000 +tb-set-hardware $myops pc850 tb-elab-in-elab 1 tb-set-node-inner-elab-role $myboss boss @@ -22,7 +22,7 @@ for {set i 1} {$i <= $maxpcs} {incr i} { append lanstr "[set $name] " tb-set-node-os [set $name] FBSD-STD tb-set-node-inner-elab-role [set $name] node - tb-set-hardware [set $name] pc600 +# tb-set-hardware [set $name] pc600 } set publiclan [$ns make-lan $lanstr 100Mb 0ms] @@ -41,11 +41,7 @@ if {$security_level >= 2} { # Set up a firewall set fw [new Firewall $ns] $fw set-type ipfw2-vlan - $fw set-style closed - - # allow tracroute as well - $fw add-rule "allow udp from 155.98.36.0/22 to any 33434-33524" - $fw add-rule "allow udp from any 33434-33524 to 155.98.36.0/22" + $fw set-style open } # No routing! diff --git a/tbsetup/ns2ir/parse.tcl.in b/tbsetup/ns2ir/parse.tcl.in index 3b7c0638e935db7ce03a7bb136d18f9213f2512e..1e367299963cd9d9906c46a2befaa394e326c99e 100644 --- a/tbsetup/ns2ir/parse.tcl.in +++ b/tbsetup/ns2ir/parse.tcl.in @@ -256,6 +256,7 @@ namespace eval GLOBALS { # Is an inner elab experiment. variable elab_in_elab 0 + variable elabinelab_eid {} # Security level. Defaults to green variable security_level 0 diff --git a/tbsetup/ns2ir/sim.tcl.in b/tbsetup/ns2ir/sim.tcl.in index 04747253894e4289d57454d0703075c5eedecb8c..d6f6c0190db7199365931615b7c8aa346232a58f 100644 --- a/tbsetup/ns2ir/sim.tcl.in +++ b/tbsetup/ns2ir/sim.tcl.in @@ -270,6 +270,7 @@ Simulator instproc run {} { var_import ::GLOBALS::modelnet_cores var_import ::GLOBALS::modelnet_edges var_import ::GLOBALS::elab_in_elab + var_import ::GLOBALS::elabinelab_eid var_import ::GLOBALS::security_level if {$ran == 1} { @@ -452,6 +453,11 @@ Simulator instproc run {} { if {$elab_in_elab} { lappend fields "elab_in_elab" lappend values 1 + + if { $elabinelab_eid != {} } { + lappend fields "elabinelab_eid" + lappend values $elabinelab_eid + } } if {$security_level} { diff --git a/tbsetup/ns2ir/tb_compat.tcl.in b/tbsetup/ns2ir/tb_compat.tcl.in index 858f174bf6326a41660dbf26447303071f241d8a..61c498ea743a83f71d13cff196b20b02b14aa195 100644 --- a/tbsetup/ns2ir/tb_compat.tcl.in +++ b/tbsetup/ns2ir/tb_compat.tcl.in @@ -1438,6 +1438,11 @@ proc tb-elab-in-elab {onoff} { set elab_in_elab 0 } } +proc tb-set-inner-elab-eid {eid} { + var_import ::GLOBALS::elabinelab_eid + + set elabinelab_eid $eid +} # # Set the inner elab role for a node.