}
}
-## TODO: podesavanje L2 parametara linka ne podrzavamo
-
-# for { set pending_links $link_list } { $pending_links != "" } {} {
-# set link [lindex $pending_links 0]
-# set i [lsearch -exact $pending_links $link]
-# set pending_links [lreplace $pending_links $i $i]
-
-# set lnode1 [lindex [linkPeers $link] 0]
-# set lnode2 [lindex [linkPeers $link] 1]
-# set ifname1 [ifcByPeer $lnode1 $lnode2]
-# set ifname2 [ifcByPeer $lnode2 $lnode1]
-
-# if { [getLinkMirror $link] != "" } {
-# set mirror_link [getLinkMirror $link]
-# set i [lsearch -exact $pending_links $mirror_link]
-# set pending_links [lreplace $pending_links $i $i]
-
-# statline "Creating link $link/$mirror_link"
-
-# set p_lnode2 $lnode2
-# set lnode2 [lindex [linkPeers $mirror_link] 0]
-# set ifname2 [ifcByPeer $lnode2 [getNodeMirror $p_lnode2]]
-# } else {
-# statline "Creating link $link"
-# }
+## TODO: kreiranje linkova i podesavanje l2 parametara
+
+ for { set pending_links $link_list } { $pending_links != "" } {} {
+ set link [lindex $pending_links 0]
+ set i [lsearch -exact $pending_links $link]
+ set pending_links [lreplace $pending_links $i $i]
+
+ set lnode1 [lindex [linkPeers $link] 0]
+ set lnode2 [lindex [linkPeers $link] 1]
+ set ifname1 [ifcByPeer $lnode1 $lnode2]
+ set ifname2 [ifcByPeer $lnode2 $lnode1]
+
+ if { [getLinkMirror $link] != "" } {
+ set mirror_link [getLinkMirror $link]
+ set i [lsearch -exact $pending_links $mirror_link]
+ set pending_links [lreplace $pending_links $i $i]
-# set lname $lnode1-$lnode2
-# set bandwidth [expr [getLinkBandwidth $link] + 0]
-# set delay [expr [getLinkDelay $link] + 0]
-# set ber [expr [getLinkBER $link] + 0]
-# set dup [expr [getLinkDup $link] + 0]
-
-# set peer1 \
-# [lindex [[typemodel $lnode1].nghook $eid $lnode1 $ifname1] 0]
-# set peer2 \
-# [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]
+ statline "Creating link $link/$mirror_link"
+
+ set p_lnode2 $lnode2
+ set lnode2 [lindex [linkPeers $mirror_link] 0]
+ set ifname2 [ifcByPeer $lnode2 [getNodeMirror $p_lnode2]]
+ } else {
+ statline "Creating link $link"
+ }
+ set lname $lnode1-$lnode2
+ set bandwidth [expr [getLinkBandwidth $link] + 0]
+ set delay [expr [getLinkDelay $link] + 0]
+ set ber [expr [getLinkBER $link] + 0]
+ set dup [expr [getLinkDup $link] + 0]
+
+ set peer1 \
+ [lindex [[typemodel $lnode1].nghook $eid $lnode1 $ifname1] 0]
+ set peer2 \
+ [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]
+
+# puts ">>>>>>>>>>kreiranje linkova"
# 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 "
+# puts ">>>>>>>>>>kreiranje linkova"
+
+ set host_if_a $ngpeer1
+ set host_if_b $ngpeer2
+ set bridge $lname
+
+ puts "\nCreating bridge $bridge"
+ nexec brctl addbr $bridge
+ nexec brctl addif $bridge $host_if_a
+ nexec brctl addif $bridge $host_if_b
+ nexec ifconfig $bridge up
+ puts " Bridge $bridge is up, connected interfaces $host_if_a and $host_if_b"
+
# FreeBSD-specific
# # Ethernet frame has a 14-byte header - this is a temp. hack!!!
nexec vzctl destroy $node
}
- puts " TODO: missing bridge cleanup in main host"
-
+ #TODO: prebaciti u tcl kod, error handling i modificirati da ne
+ # brise bridgeove bez diskriminacije nego one koje je imunes
+ # napravio
+
+ puts "\nBridge cleanup in main host"
+ catch { nexec ./bridge_cleanup.sh }
+
+
# FreeBSD metoda:
# foreach vimage $vimages {
# set stattxt "Shutting down vimage $vimage"