global activetool
global editor_only remote_exec execSock
+ puts "setOperMode $mode"
+
if { $mode == "exec" } { ;# let's try something, sockets should be opened
nexec id -u
if { $editor_only } { ;# if set in nexec or open_exec_sockets
# * name -- the name of the new interface
#****
proc createIfc { eid type hook } {
+ puts "usli u createIfc $eid $type $hook"
+ return false
catch { exec printf "mkpeer $type $hook $hook \n show .$hook" | vimage $eid ngctl -f - } nglist
return [lindex $nglist 1]
- return false
}
upvar 0 ::cf::[set ::curcfg]::ngnodemap ngnodemap
global mac_byte4 mac_byte5
+ puts "l3node.instantiate $eid $node"
+
set node_id "$eid\.$node"
- nexec vimage -c $node_id
- nexec vimage $node_id hostname [getNodeName $node]
- nexec vimage $node_id sysctl vfs.morphing_symlinks=1
+ puts " nexec vimage -c $node_id "
+ puts " nexec vimage $node_id hostname [getNodeName $node] "
+ puts " nexec vimage $node_id sysctl vfs.morphing_symlinks=1 "
foreach ifc [ifcList $node] {
switch -exact [string range $ifc 0 2] {
eth {
set ifid [createIfc $eid eiface ether]
- nexec vimage $eid vimage -i $node $ifid $ifc
+ puts " nexec vimage $eid vimage -i $node $ifid $ifc "
set peer [peerByIfc $node $ifc]
if { [nodeType $peer] == "rj45" } {
incr mac_byte4
}
}
- nexec vimage $node_id ifconfig $ifc link $ether
+ puts " nexec vimage $node_id ifconfig $ifc link $ether "
set ngnodemap($ifc@$node_id) $ifid
}
ser {
set cpumax [lindex [lsearch -inline $cpuconf {max *}] 1]
set cpuweight [lindex [lsearch -inline $cpuconf {weight *}] 1]
if { $cpumin != "" } {
- nexec vimage -m $node_id cpumin $cpumin
+ puts { nexec vimage -m $node_id cpumin $cpumin }
}
if { $cpumax != "" } {
- nexec vimage -m $node_id cpumax $cpumax
+ puts { nexec vimage -m $node_id cpumax $cpumax }
}
if { $cpuweight != "" } {
- nexec vimage -m $node_id cpuweight $cpuweight
+ puts { nexec vimage -m $node_id cpuweight $cpuweight }
}
+ puts "
nexec vimage $node_id sysctl net.inet.icmp.bmcastecho=1
nexec vimage $node_id sysctl net.inet.icmp.icmplim=0
nexec vimage $node_id ifconfig lo0 inet localhost
nexec vimage $node_id route add 224.0.0.0/4 localhost
+ "
}
global remote_exec execSock
global viewcustomid
+ puts "l3node.start $eid $node"
+
set node_id "$eid\.$node"
set node_dir "/tmp/$eid/$node"
+ puts " recreating $node_dir"
nexec rm -fr $node_dir
nexec mkdir $node_dir
nexec chmod 1777 $node_dir
foreach ifc [ifcList $node] {
set mtu [getIfcMTU $node $ifc]
- nexec vimage $node_id ifconfig $ifc mtu $mtu
+ puts " nexec vimage $node_id ifconfig $ifc mtu $mtu "
}
set check [info exists viewcustomid]
close $setkeyFileId
set errorstr ""
- set error [catch "nexec vimage $node_id setkey -f \
- $node_dir/setkey.conf" errorstr]
- if { $error == "1" } {
- setkeyError $node_id $errorstr
- }
+ puts " doing the set error setkeyError"
+# set error [catch "nexec vimage $node_id setkey -f \
+# $node_dir/setkey.conf" errorstr]
+# if { $error == "1" } {
+# setkeyError $node_id $errorstr
+# }
}
if { $bootcmd == "" || $bootcfg =="" } {
set bootcfg [[typemodel $node].cfggen $node]
set bootcmd [[typemodel $node].bootcmd $node]
}
+ puts " imamo typemodel=[typemodel $node] bootcfg=$bootcfg i bootcmd=$bootcmd"
if { ! $remote_exec } {
set fileId [open $node_dir/boot.conf w]
foreach line $bootcfg {
nexec close_conf_file
}
- catch "nexec vimage $node_id $bootcmd $node_dir/boot.conf >& $node_dir/out.log &"
+ puts " catch nexec vimage $node_id $bootcmd $node_dir/boot.conf >& $node_dir/out.log &"
}
#****f* exec.tcl/l3node.shutdown
global remote_exec
global eid_base
+ puts "deployCfg"
+
set mac_byte4 0
set mac_byte5 0
[lindex [[typemodel $lnode1].nghook $eid $lnode1 $ifname1] 1]
set nghook2 \
[lindex [[typemodel $lnode2].nghook $eid $lnode2 $ifname2] 1]
- nexec vimage $eid ngctl mkpeer $ngpeer1: pipe $nghook1 upper
- nexec vimage $eid ngctl name $ngpeer1:$nghook1 $lname
- nexec vimage $eid ngctl connect $lname: $ngpeer2: lower $nghook2
+
+ puts " nexec vimage $eid ngctl mkpeer $ngpeer1: pipe $nghook1 upper "
+ puts " nexec vimage $eid ngctl name $ngpeer1:$nghook1 $lname "
+ puts " nexec vimage $eid ngctl connect $lname: $ngpeer2: lower $nghook2 "
# Ethernet frame has a 14-byte header - this is a temp. hack!!!
- nexec vimage $eid ngctl msg $lname: setcfg "{ header_offset=14 }"
+ puts " nexec vimage $eid ngctl msg $lname: setcfg { header_offset=14 } "
# Link parameters
- nexec vimage $eid ngctl msg $lname: setcfg \
- "{ bandwidth=$bandwidth delay=$delay \
- upstream={ BER=$ber duplicate=$dup } \
- downstream={ BER=$ber duplicate=$dup } }"
+ puts " nexec vimage $eid ngctl msg $lname: setcfg
+ { bandwidth=$bandwidth delay=$delay
+ upstream={ BER=$ber duplicate=$dup }
+ downstream={ BER=$ber duplicate=$dup } } "
# Queues
foreach node [list $lnode1 $lnode2] {
global .c
global execMode
+ puts "vimageCleanup $eid"
+
set t_start [clock seconds]
if { [catch {nexec vimage $eid vimage -lr | fgrep -v " " | cut -d: -f 1} res] != 0 } {
return
# qdisc -- queuing discipline
#****
proc execSetIfcQDisc { eid node ifc qdisc } {
+
+ puts "execSetIfcQDisc $eid $node $ifc $qdisc"
+ return
+
set target [linkByIfc $node $ifc]
set peers [linkPeers [lindex $target 0]]
set dir [lindex $target 1]
# qdrop -- queue dropping policy
#****
proc execSetIfcQDrop { eid node ifc qdrop } {
+
+ puts "execSetIfcQDrop $eid $node $ifc $qdrop"
+ return
+
set target [linkByIfc $node $ifc]
set peers [linkPeers [lindex $target 0]]
set dir [lindex $target 1]
# qlen -- new queue's length
#****
proc execSetIfcQLen { eid node ifc qlen } {
+
+ puts "execSetIfcQLen $eid $node $ifc $qlen"
+ return
+
set target [linkByIfc $node $ifc]
set peers [linkPeers [lindex $target 0]]
set dir [lindex $target 1]
# link -- link id
#****
proc execSetLinkParams { eid link } {
+
+ puts "execSetLinkParams $eid $link"
+ return
+
set lnode1 [lindex [linkPeers $link] 0]
set lnode2 [lindex [linkPeers $link] 1]
set lname $lnode1-$lnode2