# feature FreeBSD-a only (expandanje @ u symlinkovima kao node id)
# puts " nexec vimage $node_id sysctl vfs.morphing_symlinks=1 "
+# ngnodemap moramo buildati u instantiate jer ga bridging code koristi
+ upvar 0 ::cf::[set ::curcfg]::ngnodemap ngnodemap
+ foreach ifc [ifcList $node] {
+ switch -exact [string range $ifc 0 2] {
+ eth {
+ set ifid "e${node_id}_${ifc}"
+ set ngnodemap($ifc@$node_id) $ifid
+ }
+ ser {
+# TODO: serial interfaceove zasad ne podrzavamo
+# set ifnum [string range $ifc 3 end]
+# set ngnodemap(hdlc$ifnum@$node_id) hdlc$ifnum\@$node
+ }
+ }
+ }
+
# TODO: OpenVZ CPU tuning
# set cpuconf [getNodeCPUConf $node]
# set cpumin [lindex [lsearch -inline $cpuconf {min *}] 1]
switch -exact [string range $ifc 0 2] {
eth {
# FreeBSD-specific:
-# set ifid [createIfc $eid eiface ether]
# puts " nexec vimage $eid vimage -i $node $ifid $ifc "
-
-# na Linuxu ne moramo pokrenuti createIfc, samo postaviti ovaj standardni format
-# koji ide u vzctl --netif_add
- set ifid "e${node_id}_${ifc}"
+# na Linux/OpenVZ ne moramo pokrenuti createIfc/vimage, samo izvaditi
+# ime interfacea iz ngnodemapa za vzctl --netif_add
+ set ifid ngnodemap($ifc@$node_id)
set peer [peerByIfc $node $ifc]
}
# puts " nexec vimage $node_id ifconfig $ifc link $ether "
nexec vzctl {set} $node_id --netif_add $ifc,$ether,$ifid,$host_ether
- set ngnodemap($ifc@$node_id) $ifid
}
ser {
# TODO: serial interfaceove zasad ne podrzavamo
# nexec vimage $eid ngctl msg $ifid: broadcast
# nexec vimage $eid ngctl name $ifid:inet hdlc$ifnum\@$node
# nexec vimage $eid vimage -i $node $ifid $ifc
-# set ngnodemap(hdlc$ifnum@$node_id) hdlc$ifnum\@$node
}
}
}
proc $MODULE.instantiate { eid node } {
upvar 0 ::cf::[set ::curcfg]::ngnodemap ngnodemap
+# TODO mozda mapformat treba biti standardni node_id?
+# upvar 0 ::cf::[set ::curcfg]::[set node]::node_id node_id
+# set mapformat $node_id
+ set mapformat "$eid\.$node"
+ set ngnodemap($mapformat) $node
+
# puts "\nhub.INSTANTIATE"
# puts " Ne radi nista. Sve se rjesava prilikom dodavanja pojedinih linkova.
# * node_id - id of the node (type of the node is hub)
#****
proc $MODULE.start { eid node } {
- set ngnodemap($eid\.$node) $node
}
#****f* hub.tcl/hub.shutdown
proc $MODULE.instantiate { eid node } {
upvar 0 ::cf::[set ::curcfg]::ngnodemap ngnodemap
+ set ifname [getNodeName $node]
+ set ngnodemap($ifname) $ifname
+
+# FreeBSD-specific:
+ # nexec vimage -i $eid $ifname $ifname
+# TODO je li promisc potreban? ako da, pod OpenVZ mora biti u .start
+ # nexec vimage $eid ifconfig $ifname up promisc
}
# * node_id - id of the node (type of the node is rj45)
#****
proc $MODULE.start { eid node } {
- set ifname [getNodeName $node]
- set ngnodemap($ifname) $ifname
- # nexec vimage -i $eid $ifname $ifname
- # nexec vimage $eid ifconfig $ifname up promisc
}