# 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]
eth {
# FreeBSD-specific:
# puts " nexec vimage $eid vimage -i $node $ifid $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)
+# na Linux/OpenVZ ne moramo napraviti nista slicno createIfc/vimage
+# nego sami postavljamo ifid
+ set ifid "e${node_id}_${ifc}"
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
}
}
}
[lindex [[typemodel $lnode2].nghook $eid $lnode2 $ifname2] 0]
set ngpeer1 $ngnodemap($peer1)
set ngpeer2 $ngnodemap($peer2)
- set nghook1 \
- [lindex [[typemodel $lnode1].nghook $eid $lnode1 $ifname1] 1]
- set nghook2 \
- [lindex [[typemodel $lnode2].nghook $eid $lnode2 $ifname2] 1]
# FreeBSD-specific:
+# set nghook1 \
+# [lindex [[typemodel $lnode1].nghook $eid $lnode1 $ifname1] 1]
+# set nghook2 \
+# [lindex [[typemodel $lnode2].nghook $eid $lnode2 $ifname2] 1]
# 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 "
proc $MODULE.instantiate { eid node } {
upvar 0 ::cf::[set ::curcfg]::ngnodemap ngnodemap
-# TODO mozda mapformat treba biti standardni node_id?
+# TODO mozda mapformat treba biti standardni nghook format?
# upvar 0 ::cf::[set ::curcfg]::[set node]::node_id node_id
-# set mapformat $node_id
+# set mapformat $ifc@$node_id
set mapformat "$eid\.$node"
set ngnodemap($mapformat) $node
upvar 0 ::cf::[set ::curcfg]::ngnodemap ngnodemap
set ifname [getNodeName $node]
+# TODO mozda mapformat treba biti standardni nghook format?
+# upvar 0 ::cf::[set ::curcfg]::[set node]::node_id node_id
+# set $ifname [getNodeName $node]@$node_id
set ngnodemap($ifname) $ifname
# FreeBSD-specific:
# * node_id - id of the node (type of the node is rj45)
#****
proc $MODULE.destroy { eid node } {
- set ifname [getNodeName $node]
+ #set ifname [getNodeName $node]
# nexec ifconfig $ifname up -promisc
}