]> git.entuzijast.net Git - imunes.git/commitdiff
If environment variable IMUNES_EVENTLOG is set, log all changes
authormarko <marko>
Thu, 17 Jul 2008 13:09:01 +0000 (13:09 +0000)
committermarko <marko>
Thu, 17 Jul 2008 13:09:01 +0000 (13:09 +0000)
trigerred by the internal event scheduler to the file specified in
$IMUNES_EVENTLOG.  The log format is as follows:

timestamp link_id node0_id:ifname node1_id:ifname \
    delay BER duplicate bandwidth

Example:

1216299873 l1 n1:eth1 n2:eth0 95041 0 0 248000
1216299875 l1 n1:eth1 n2:eth0 200000 0 0 248000

Bug found by:
Submitted by:
Reviewed by:
Approved by:
Obtained from:

eventsched.tcl

index 5d413506f853b93f8907c091072c3e86c5cceb18..4f122d68e58dd9e707edb048b67b0b4f3c73a802 100644 (file)
 # SUCH DAMAGE.
 #
 
-# $Id: eventsched.tcl,v 1.6 2008/06/24 06:44:48 marko Exp $
+# $Id: eventsched.tcl,v 1.7 2008/07/17 13:09:01 marko Exp $
 
 
 proc evsched {} {
+    global evlogfile
     # XXX eid should be arg to evsched()
     upvar 0 ::cf::[set ::curcfg]::eid eid
     upvar 0 ::cf::[set ::curcfg]::oper_mode oper_mode
@@ -144,6 +145,36 @@ proc evsched {} {
                }
            }
            set changed 1
+
+           if { $evlogfile != 0 } {
+               set peers [linkPeers $object]
+               set n0 [lindex $peers 0]
+               set n1 [lindex $peers 1]
+               set ifc0 [ifcByPeer $n0 $n1]
+               set ifc1 [ifcByPeer $n1 $n0]
+
+               set delay [getLinkDelay $object]
+               if { $delay == "" } {
+                   set delay 0
+               }
+               set ber [getLinkBER $object]
+               if { $ber == "" } {
+                   set ber 0
+               }
+               set dup [getLinkDup $object]
+               if { $dup == "" } {
+                   set dup 0
+               }
+               set bw [getLinkBandwidth $object]
+               if { $bw == "" } {
+                   set bw 0
+               }
+
+               set cfg "$delay $ber $dup $bw"
+               puts $evlogfile \
+                   "[clock seconds] $object $n0:$ifc0 $n1:$ifc1 $cfg"
+               flush $evlogfile
+           }
        }
     }
 
@@ -160,6 +191,7 @@ proc evsched {} {
 
 
 proc sched_init {} {
+    global evlogfile env
     upvar 0 ::cf::[set ::curcfg]::node_list node_list
     upvar 0 ::cf::[set ::curcfg]::link_list link_list
     upvar 0 ::cf::[set ::curcfg]::event_t0 event_t0
@@ -186,6 +218,12 @@ proc sched_init {} {
 
     set eventqueue [lsort -index 0 -integer $eventqueue]
 
+    if {[info exists env(IMUNES_EVENTLOG)]} {
+       set evlogfile [open $env(IMUNES_EVENTLOG) a]
+    } else {
+       set evlogfile 0
+    }
+
     set sched_init_done 1
     set event_t0 [clock seconds]
 }