From: marko Date: Thu, 17 Jul 2008 13:09:01 +0000 (+0000) Subject: If environment variable IMUNES_EVENTLOG is set, log all changes X-Git-Url: https://git.entuzijast.net/?a=commitdiff_plain;h=30e01d1b5cfeda2d4a32e604280f4ad5785bb191;p=imunes.git If environment variable IMUNES_EVENTLOG is set, log all changes 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: --- diff --git a/eventsched.tcl b/eventsched.tcl index 5d41350..4f122d6 100644 --- a/eventsched.tcl +++ b/eventsched.tcl @@ -23,10 +23,11 @@ # 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] }