2017-01-26  Havard Eidnes <he@nordu.net>

	* Makefile: Bump to version 1.0,
	Enough with this 0.9.9* mumbo...

	* ritz/ui.tcl: Adjust end-year of copyright.

2017-01-25  Havard Eidnes <he@nordu.net>

	* zino/test-traps.tcl:
	Enhance this so that it can work with the new code.
	Test rig for the code to decode SNMP trap messages.

	* zino/log.tcl: Protect server socket opening with catch.

	* zino/load-mibs.tcl: Add OSPFv2 MIBs.

	* mibs/mib-ospf2mib.txt, mibs/mib-ospf2trap.txt:
	Add OSPFv2 MIBs, taken from Juniper's archive.
	This is so that we can start doing decoding of OSPF traps.

	* zino/bgp.tcl: Generalize BGP handling.
	Support the two newer enterprise-specific BGP MIBs
	from Juniper and Cisco, only fall back to the old
	IPv4-only BGP MIB when probing for the newer ones fail.
	In the process we gain monitoring of BGP sessions over IPv6.

	* ritz/sort.tcl:
	Fix handling of admin-down BGP events in "down" filtering.

	* ritz/ui.tcl: Support filtering BGP events.

	* ritz/sort.tcl: Support new BGP state filtering.

	* ritz/summary.tcl: Another BGP admin-status "running" == "start".

	* ritz/sort.tcl: Regards BGP AdminState "running" the same as "start".

2017-01-24  Havard Eidnes <he@nordu.net>

	* mibs/CISCO-BGP4-MIB.my, mibs/Makefile, mibs/mib-jnx-bgpmib2.txt:
	Update the BGP4 MIBs, and install them.

2016-12-16  Havard Eidnes <he@nordu.net>

	* zino/bgp.tcl:
	Summary: Simplify check for do_bgp -- catch / return is not a
	good combination.

2016-12-02  Havard Eidnes <he@nordu.net>

	* TODO: More TODO: BGP monitoring improvements & l2vpn monitoring.

2016-11-24  Havard Eidnes <he@nordu.net>

	* traffic/cgi/plot-all.pl:
	Carefully avoid echoing back any given string until it's been
	verified to be syntactically benign.  Echoing back random arguments
	is a recipe for creating cross-site scripting (XSS) vulnerabilities.

2016-11-17  Havard Eidnes <he@nordu.net>

	* emt/emt.tcl: Fix syntax problem...

	* emt/emt.tcl: Trigger messages also when the number of alarms
	for an alarm event increases.

2016-11-10  Havard Eidnes <he@nordu.net>

	* zino/bgp.tcl: Fix the syntax problem properly...

	* common/config.tcl:
	Introduce the "do_bgp" attribute, defaulting it to "yes".
	Slight change to a comment.

	* zino/bgp.tcl:
	If the newly introduced do_bgp attribute value is different than
	"yes", skip doing the BGP table, so that we can avoid the bug in JunOS
	15.1F6 when querying a logical system instance that causes the table
	to loop back on itself, otherwise causing an infinite query loop.
	This is with the old IPv4-only BGP MIB.
	
2016-11-08  Havard Eidnes <he@nordu.net>

	* traffic/db/update-dbs.pl:
	Replace slashes (/) with hyphens (-) in what looks like logical
	port names, so as to alllow the use of the logical port names as
	file names or file name components.

2016-09-30  Havard Eidnes <he@nordu.net>

	* vwatch/pretty-ios.pl: Also recognize Arista EOS.

2016-09-06  Havard Eidnes <he@nordu.net>

	* zino/events.tcl:
	Provide some more robustness in fixupEventPortState in case
	portState($ix) isn't set.

2016-07-12  Havard Eidnes <he@nordu.net>

	* zino/log.tcl: Put log output channels in non-blocking mode to prevent
	DoS vector by clients not consuming what they're given.

2016-07-06  Havard Eidnes <he@nordu.net>

	* traffic/common/new-read-hr-log.pl:
	Protect against division by zero by skipping samples
	where time doesn't advance.

2016-07-05  Havard Eidnes <he@nordu.net>

	* Makefile: Adjust version.

	* ritz/ui.tcl: Adjust end of year range for copyright.

	* zino/events.tcl:
	Add a new fixupEventPortState, so that "ignored" events can get the
	correct OpState / portstate set, based on the actual state of the
	corresponding interface.

	* zino/pm.tcl:
	When creating "ignored" events, use the recorded interface
	state (if any) instead of blindly setting it to "up".

	* ritz/sort.tcl: Fix typo causing regexp matches to fail(!)

2016-07-01  Havard Eidnes <he@nordu.net>

	* ritz/summary.tcl:
	Add inverse-lookup of the BGP neighbor in the summary.

2016-03-02  Havard Eidnes <he@nordu.net>

	* traffic/cgi/load-map.pl:
	Remove a couple more chars to enable https abs references.

	* traffic/cgi/load-map.pl:
	Support https maprefs by removing one char...

2016-02-18  Havard Eidnes <he@nordu.net>

	* zino/server.tcl:
	Log a bit more about the handling of notify channels.

2016-02-08  Havard Eidnes <he@nordu.net>

	* mibs/Makefile: Also install Juniper's BGP mib.

	* zino/load-mibs.tcl: Also load Juniper's BGP mib.

	* mibs/mib-jnx-bgpmib2.txt: Add Juniper's BGP mib.

	* traffic/common/reverse.pl: Add an our() declaration.

2016-01-20  Havard Eidnes <he@nordu.net>

	* traffic/cgi/plot-all.pl:
	We're scaling the plots now, so no kbit/s, just (scaled) bit/s.

	* traffic/cgi/plot-all.pl:
	By naming convention, provide links between -l3 interfaces and
	physical interfaces dependent on whether the MIB variable which is the
	basis for the data is collected on the l3 interface or the physical
	interface.

	I.e. link ip6perc to the -l3 suffixed interface (if it exists) and
	anything to do with errors on an -l3-named interface back to the
	physical interface if it exists.

2016-01-14  Havard Eidnes <he@nordu.net>

	* traffic/report/tail-stats.pl:
	Split up the arguments to RRDs::create, to accomodate the
	newer versions of rrdtool which appear not to like it if an
	option argument starts with a space...

	* mibs/IANAifType.tc: Add IANAifType.tc.

2016-01-13  Havard Eidnes <he@nordu.net>

	* zinomon/zino-monitor.pl:
	Provide more details as to in which step we failed.

	* zino/load-mibs.tcl:
	Load more MIBs (MPLS, Juniper-MPLS, diff-serv), to get better
	decode of SNMP trap messages in those MIBs.

	* zino/flaps.tcl: Count the number of flaps.

	* traffic/report/mk-customer-index.pl:
	Remark that iso8859-1 input is assumed.

	* traffic/common/new-read-raw-log.pl:
	Add a newline to warning; re-indent to keep within 80col.

	* mibs/Makefile, mibs/mib-jnx-mpls.txt, mibs/mib-rfc3289.txt, mibs/mib-rfc3811.txt, mibs/mib-rfc3812.txt:
	Add diff-serv and a couple MPLS mibs, primarily so we get better
	decoding of trap messages.

2015-12-20  Havard Eidnes <he@nordu.net>

	* zino/status.tcl: Add NORDUnet PIM RP addresses to be ignored.

2015-09-28  Havard Eidnes <he@nordu.net>

	* traffic/common/read-5m-sum.pl:
	Only elminate error message in absence of -V, not the control flow.

2015-09-24  Havard Eidnes <he@nordu.net>

	* traffic/report/customer-ts.pl:
	Add some more debugging output under the -V option to track down
	the instances where min_sample ~always ends up at 1.

	* traffic/common/read-5m-sum.pl:
	In the case there is no data for a "line", skip processing, so that
	we don't end up setting min_sample to 0, and trying to inject data
	for all the 5-minute intervals of the day.

	If we're starting from sample 0, set $sample_time{-1} so that we
	can compute a delta_T for the first sample, and not skip the check
	against interface speed for the first sample.  Should fix incremental
	re-processing when interface counters misbehave, as we've seen recently.

	Add some debugging output visible under -v or -V.

2015-09-20  Havard Eidnes <he@nordu.net>

	* traffic/common/read-5m-sum.pl, traffic/report/customer-ts.pl:
	Adjust verbosity level -- put some printouts under -V, and improve
	the -v printouts in the customer-ts.pl script.

2015-09-11  Havard Eidnes <he@nordu.net>

	* traffic/report/customer-ts.pl:
	Correct error message, don't print undefined variable...

2015-09-10  Havard Eidnes <he@nordu.net>

	* traffic/report/customer-ts.pl:
	It's the save_ifspeed hash which needs saving & restore, not the
	nonexistent ifspeed hash, ref. the code in read-5m-sum.pl.

2015-07-02  Havard Eidnes <he@nordu.net>

	* zino/events.tcl: Also log admin state changes.

2015-07-01  Havard Eidnes <he@nordu.net>

	* zino/events.tcl:
	Also emit history additions to the debug log + any log clients.

2015-03-30  Havard Eidnes <he@nordu.net>

	* traffic/report/mk-top10.pl: Protect against division by zero.

2015-01-30  Havard Eidnes <he@nordu.net>

	* traffic/cgi/plot-all.pl:
	Don't omit pointer to "own" plot being shown, to further
	get the references in the same position every time.

	* traffic/cgi/plot-all.pl:
	Sort the keys for the other plots, so that the order remains the same
	between different invocations.

	* traffic/cgi/load-map.pl:
	If we have a colour, use that when drawing the
	dashed lines as well.

	* traffic/cgi/load-map.pl: Adapt code to conform to "use strict".

	Recognize and implement dashed lines, to be used for
	"planned but not yet in operation" circuits.

	Draw polylines with line segments, to avoid the previous
	hack of using polygons and retracing the path, so that
	dashed patterns don't sometimes create solid lines...

2014-10-28  Havard Eidnes <he@nordu.net>

	* traffic/cgi/load-map.pl: Recognize https:// links as well.

2014-07-08  Havard Eidnes <he@nordu.net>

	* traffic/cgi/load-map.pl: Include reverse.pl.

	* traffic/common/Makefile: Installr reverse.pl.

	* traffic/common/reverse.pl:
	Put rev_name in a file of its own for possible re-use elsewhere.

2014-06-21  Havard Eidnes <he@nordu.net>

	* traffic/report/ip6-plot-data.pl:
	Change so that this one actually reports the number of octets per
	sample.  If we miss the octet counters from the IP MIB, we wing it
	with what we've got from the IPv6 MIB.

	* traffic/report/report-day.pl:
	Fix reporting so that we report average data rate in kbit/s over the
	day instead of just the total number of IPv6 octets...

	* traffic/report/ip6-plot-perc.pl: Update comment.

	* traffic/report/ip6-plot-perc.pl:
	Renamed script from ip6-plot-data.pl.

	* traffic/report/report-day.pl: Fix syntax and declaration errors.

2014-06-20  Havard Eidnes <he@nordu.net>

	* traffic/plot/plot-raw.pl, traffic/plot/plot-hr.pl:
	Prefer stats from the IP MIB for IPv6 traffic if available.

	* tpoller/tpoller.tcl:
	Support collection of IPv6 packet and octet counts from the IP MIB.
	This should give coverage for IPv6 stats for ASR9k users, among
	others.

	* traffic/report/ip6-day-perc.pl, traffic/report/ip6-plot-data.pl:
	Prefer data from the IP MIB if available.

	* traffic/report/report-day.pl:
	Support and prioritize data from the IP MIB for the IPv6
	packet and traffic statistics.  This should give better
	IPv6 statistics coverage as the Cisco ASR9k boxes apparently
	presents these stats via the IP MIB.

	* traffic/common/new-read-raw-log.pl, traffic/common/new-read-hr-log.pl:
	Support multi-valued instances, such as those from ipIfStatsTable.

	* mibs/IF-MIB.my, mibs/INET-ADDRESS-MIB.my, mibs/IP-MIB.my, mibs/Makefile:
	Add IF-MIB and IP-MIB, update INET-ADDRESS-MIB.
	Install them.

2014-05-26  Havard Eidnes <he@nordu.net>

	* vwatch/uptimes.pl:
	Fix warning with newer perl, defined(%hash) is no longer kosher.

2014-04-28  Havard Eidnes <he@nordu.net>

	* zino/pm.tcl:
	Let the "details" command know about the interface regexp match type,
	and form the command correspondingly.  Also, use the newer "attr" proc.

	* zino/pm.tcl: Fix up the "matching" procedure again.

	* zino/pm.tcl:
	Fix up the remaining use of matching_ports to now use 3 args.

	* zino/pm.tcl: Fix syntactic typo.

	* zino/pm.tcl, zino/server.tcl:
	Add support for the "match against interface name on a given device"
	type of PM events.

2014-04-25  Havard Eidnes <he@nordu.net>

	* ritz/Makefile: Install the correct "cli" script...

	* ritz/Makefile:
	Add build instructions for the new "cli" interface to the zino server.

	* ritz/cli.tcl: Also exit if gets get negative return.
	Be verbose about closing server connection,
	and do an explicit exit to get out of scotty.

	* ritz/cli.tcl:
	Be a bit more verbose when connecting and authenticating.
	Handle continuation lines from the server.

	* ritz/cli.tcl: TCL, not perl...

	* ritz/cli.tcl: CLI-based client for the zino server.

	* zino/pm.tcl: Note that the "save" proc isn't implemented yet.
	Add some code to periodically check whether there has
	been created any new events which warrant entering interfaces
	or devices into existing PM events, such as might happen with
	dynamically created interfaces.
	Protect some parts of the periodic job from being aborted by
	an errant internal data structure (defensive programming for now).

2014-04-22  Havard Eidnes <he@nordu.net>

	* traffic/report/mk-customer-index.pl:
	Make this work with "use strict;".
	Only output references to 98% and avg plots if the
	zino-conf.pl file defines $do_98p and $do_avg respectively.

	* traffic/jobs/zino-config.pl:
	Allow this to be sourced by a "use strict" user.

	* traffic/report/mk-customer-index.pl:
	Provide translation for &aacute; and &aelig; as well.

	* check-subst.pl: Fix two silly bugs:
	1) Index a hash (found by "use strict")
	2) Use the right hash for storing the Makefile.inc.dist variables

	* zino/events.tcl:
	In closeEvent, which is called by the scavenging process, don't unset
	EventId($ix) because a new event may have been created in-between the
	UI close (which does a preCloseEvent) and the actual scavenging.

2014-04-20  Havard Eidnes <he@nordu.net>

	* traffic/common/plot.pl:
	Fix syntax for newer gnuplot -- offset needs new "offset" keyword.

2014-04-10  Havard Eidnes <he@nordu.net>

	* traffic/db/update-dbs.pl: Fix typo.

	* traffic/db/update-dbs.pl:
	Apply an adapted patch from Ville Mattila at CSC.fi.
	Trying to iterate up to the largest interface-index isn't
	exactly clever, especially with devices which have a sparse
	interface-index space (e.g. some Cisco Nexus products).

	* zino/tacping.pl: Set a 5-second timeout for the request.

2014-03-20  Havard Eidnes <he@nordu.net>

	* ChangeLog: Note changes since the previous release.

	* Makefile: Bump VERSION to 0.9.9.8.

2014-03-20  Havard Eidnes <he@uninett.no>

	* Makefile: Bump VERSION to 0.9.9.8.

2014-02-11  Havard Eidnes <he@uninett.no>

	* vwatch/vw-month-upgr.pl: Fix typo which caused ... lossage.

2013-11-22  Havard Eidnes <he@uninett.no>

	* emt/emt.tcl: Add more robustness if emt_init or emt_check_all hits
	a "connection refused" or similar, due to server process
	restarts.

2013-06-21  Havard Eidnes <he@uninett.no>

	* zino/status.tcl: Also ignore 172.16/12 IPv4 addresses.

2013-06-20  Havard Eidnes <he@uninett.no>

	* traffic/report/tail-stats.pl:
	Add lots more optional debugging output, under -D <portname>.
	This is an attempt at hunting down an off-by-one fencepost error,
	and this contains a tentative fix for this.
	This reveals itself with newer perl which balks at $array[-1].

2013-05-24  Havard Eidnes <he@uninett.no>

	* ritz/ui.tcl:
	Change the individual field values' "entry" widgets from disabled
	to readonly, so that the contents can be cut+pasted.

2013-05-22  Havard Eidnes <he@uninett.no>

	* zino/status.tcl:
	Evidently, Juniper in their SRX series is using larger parts
	of 128.0/16, e.g. 128.0.1/24, for "internal" purposes.  Shorten
	the pattern so that we ignore all addrs in 128.0/16.

2013-04-19  Havard Eidnes <he@uninett.no>

	* traffic/common/read-5m-sum.pl:
	Avoid trying to use an undefined value at index -1.

2013-04-18  Havard Eidnes <he@uninett.no>

	* traffic/jobs/find-err-dev.pl:
	Adjust format for stats lines to get alignment and to give more room
	for the Errs number, which may now be available in higher precision.

	* traffic/jobs/find-err-dev.pl:
	Support both the old and the new errors.perc format.
	Add an option to dump the yaml file at the end;
	however it shows itself not to be very useful.
	Drop some coloumns from the errors.perc report to keep it within
	80 coloumns, now that we have the new coloumns for "hrs inerrs >=
	1e-3%" and the same for >= 1e-4%.
	Fix a bug with the use of Dump -- it returns a string which itself
	needs to be printed for anything to be printed.
	Drop trailing whitespace from the report lines.
	Update the documentation.

	* traffic/common/utils.pl:
	Get rid of nice_sprint_perc_4() and nice_sprint_perc_5(), introduce
	nice_sprint_perc() instead.

	* traffic/cgi/tbl-report.pl:
	Support both the new and the old format of the errors.perc report,
	including the new "hours where input error%" is larger than 1e-3% and
	1e-4%.  Also widen the fields to show more decimals.

	* traffic/report/report-day.pl: Convert to nice_sprint_perc().
	Add two more coloumns to count hours where input errors are above
	1e-3 and 1e-4 percents, to catch transmission problems earlier.

	* traffic/report/report-week.pl:
	Convert from nice_sprint_perc_4 to nice_sprint_perc.

	* traffic/report/re-report-day.pl:
	Remove local nice_sprint_perc_4, use nic_sprint_perc instead.
	Really, this file is outdated and should be let go...

2013-04-03  Havard Eidnes <he@uninett.no>

	* zino/server.tcl: Comment out file descriptor usage logging.

	* traffic/plot/plot-hr.pl: Correct typo, it's "Giants".

	* traffic/report/report-day.pl:
	Include locIfInGiants in the calculation of the totals; it was
	erroneously omitted earlier.

2013-03-13  Havard Eidnes <he@uninett.no>

	* zino/server.tcl:
	Comment out use of Tclx; we used fcntl to set KEEPALIVE.
	This because Tclx isn't compatible with newer Tcl, i.e. >= 8.5.

2013-03-08  Havard Eidnes <he@uninett.no>

	* zino/trap.tcl: More verbose debugging to comment out.

	* zino/trap.tcl: Comment out verbose debugging.

2013-02-06  Havard Eidnes <he@uninett.no>

	* README:
	Update the list of tool versions to what we use at the moment.
	Remove a little text which is no longer applicable.

2013-02-05  Havard Eidnes <he@uninett.no>

	* tpoller/tpoller.tcl:
	Log info not only on speed change, but also other changes.

	* tpoller/tpoller.tcl: Log speed, ifDescr etc. if the speed changes.
	Log informational messages via stderr, so they end up in the log.

2013-02-01  Havard Eidnes <he@uninett.no>

	* vwatch/pretty-ios.pl:
	Get rid of an extra comma which is present in 12.1 and later.

2013-01-31  Havard Eidnes <he@uninett.no>

	* vwatch/vw-month-upgr.pl: Make this adhere to "use strict;".

	* traffic/common/plot.pl:
	Improve tick mark settings; lower threshold for doing from weekno to
	month from 100 days to 70 to improve readability.  Also use years as
	tick marks between 4y and 10y, and every other year when the period
	exceeds 10y.

2013-01-30  Havard Eidnes <he@uninett.no>

	* TODO: More to do.

2013-01-22  Havard Eidnes <he@uninett.no>

	* zino/server.tcl: Uh, this is tcl, not perl...

	* zino/server.tcl: Avoid spinning on reading from closed connections.
	NotifySink was a tad too simplistic.
	Close down any associated state if we get EOF reading the
	notify socket.

	* zino/log.tcl: Add some logging for handling of log channels.

	* zino/server.tcl:
	Add some debugging output of who connects to the various sockets.
	Add a 30s time-out for tieing the notify socket to the command socket
	to avoid leaking FDs when exposed to e.g. nmap.

	* traffic/jobs/daily.pl:
	Use find + xargs two more places to avoid overflowing command lines.

2013-01-04  Havard Eidnes <he@uninett.no>

	* traffic/report/tail-stats.pl:
	One more instance of DST shift compensation.

2013-01-03  Havard Eidnes <he@uninett.no>

	* traffic/report/tail-stats.pl:
	When re-processing data, data for an entire day would be omitted
	when going from DST to non-DST.  Fix this bug with a band-aid.

	* traffic/cgi/plot-all.pl:
	Also default plots to yesterday if datespec is omitted,
	patterned after load-map's behaviour.

2012-12-14  Havard Eidnes <he@uninett.no>

	* traffic/cgi/load-map.pl:
	Try to upcase the colour name word, for forward compatibility
	with newer versions of tgif.
	Also get rid of assumption that colour 0 is black.

2012-12-07  Havard Eidnes <he@uninett.no>

	* vwatch/uptimes.pl, vwatch/vw-day-report.pl,
	  vwatch/vw-month-rst.pl, vwatch/vw-month-upgr.pl:
	Fix split() usage.

	* vwatch/cur-vers.pl: Convert to "use strict".
	Fix split() usage.

	* traffic/common/scaling.pl: Do 0 as bit/s.

2012-12-06  Havard Eidnes <he@uninett.no>

	* vwatch/pretty-ios.pl: Add some handling of Cisco NX-OS.

2012-11-26  Havard Eidnes <he@uninett.no>

	* tpoller/tpoller.tcl:
	Be more verbose when interface information change -- log the changes.
	Don't just blindly use the ifHighSpeed value -- only use it when it's
	over 3000, so that we can discern the difference between 2.0 and
	2.2 Mbit/s (since ifHighSpeed only counts whole Mbit/s).

2012-11-22  Havard Eidnes <he@uninett.no>

	* vwatch/Makefile: Ensure that all programs are installed.

2012-11-20  Havard Eidnes <he@uninett.no>

	* traffic/report/tail-stats.pl: Several changes rolled up into one:
	 * Change from piping into rrdtool to using the perl RRDs module.
	 * Improve some diagnostic output to include more information.
	 * Try as carefully as possible to not trigger any error messages when
	   doing RRD update operations, by checking for the last update time
	   and skipping any later samples, and also checking that the sample
	   times are monotonically increasing (violations will be skipped)
	 * Fix a bug where values from a prior data file read would "shine
	   through", e.g. when the new device doesn't do 64-bit counters; in
	   that case the old values would lie lingering about, causing "data
	   rate exceeds ifspeed" errors.  (I really, really ought to re-write
	   the interface to the central "read raw data" routines...)
	 * Make it possible to process historical data files in parallel via
	   the "-j" option.  This is useful if you have sufficient I/O
	   capacity and several CPU cores.
	 * In order to avoid attempts to update data for same logical port
	   more than once, weed out duplicates (and emit a warning) before
	   doing the processing.

	* traffic/report/rr-test.pl:
	Expand this to a test comparing data rates with ifspeed,
	and automatic detection of 64-bit octet counters.

	* traffic/cgi/r-all.pl:
	&err() may be called before $q is initialized, so check for it and
	initialize before using it.

2012-11-13  Havard Eidnes <he@uninett.no>

	* traffic/common/scaling.pl: Protect against max value being 0.

	* traffic/db/db-lookup.pl:
	The scripts accessing the mappings using this function do not
	nead other access than read-only, so in order to prevent the
	scripts running from the web server to err out with "permission
	denied", open the BerkeleyDB with read-only access.

	* traffic/cgi/plot-all.pl: Add colon as an invalid argument character.

	* traffic/plot/plot-5m.pl, traffic/plot/plot-day.pl,
	  traffic/plot/plot-hr.pl, traffic/plot/plot-raw.pl,
	  traffic/plot/plot-week.pl:
	In the plots which show data rates, scale the values to the most
	appropriate decimal unit, and also pretty-print the interface speed
	using the appropriate decimal unit.

	* traffic/common/scaling.pl: Use lexical instead of dynamic scoping.
	Add two functions to scale values to appropriate decimal units.

2012-11-12  Havard Eidnes <he@uninett.no>

	* traffic/common/Makefile:
	Ensure that plot.pl is also updated/installed.

2012-11-10  Havard Eidnes <he@uninett.no>

	* ChangeLog, Makefile: Mark this as 0.9.9.7.

	* traffic/common/read-raw-log.pl:
	Thanks to Ville Mattila at CSC who found that the code was using
	an undefined $pos if the optional $td argument (indicating how
	close to the start time of the script to read the data) isn't supplied.
	Instead, always record the current position; if we're incrementally
	reading new-format files, the second test for "new format" will hit,
	and we need to re-position so that new_read_log() will se the current
	line again.

	The net effect is a speed-up of the incremental reading and processing
	of the data; not always reading from the start of the file(!)

2012-11-02  Havard Eidnes <he@uninett.no>

	* traffic/cgi/tbl-report.pl:
	Widen the fields for traffic in kbit/s, so that data rates
	over 10Gbit/s don't skew the table.

2012-10-24  Havard Eidnes <he@uninett.no>

	* traffic/common/plot.pl:
	Insert the "offset" keyword in "set xlabel", now required by at
	least gnuplot 4.6.0, and also accepted by gnuplot 4.2.6.

	* INSTALL: Coalesce the two p5-TimeDate entries.
	Add tgif.

2012-10-22  Havard Eidnes <he@uninett.no>

	* check-subst.pl: Convert to 'use Getopt::Std;'.

2012-10-21  Havard Eidnes <he@uninett.no>

	* traffic/cgi/tbl-report.pl:
	Support the computed IPv6 traffic and percentage IPv6 traffic
	report coloumns.

	* traffic/report/report-day.pl:
	Add a new pair of coloumns to the textual report:
	Computed IPv6 traffic in/out (based on percentage and total traffic),
	and percentage of IPv6 traffic.

	* traffic/cgi/plot-all.pl:
	Support plotting the percentage of IPv6 traffic.
	Additionally, also support the plotting of multicast and
	unicast packets per second.

	* traffic/plot/plot-hr.pl, traffic/plot/plot-5m.pl,
	traffic/plot/plot-raw.pl:
	Support plotting the percentage of IPv6 traffic.

	* traffic/cgi/load-map.pl:
	Support "-l3" as a suffix, in addition to "-l2vpn<whatever>",
	and apply normal "swap direction" rules to the rest of the
	logical port name.

2012-10-18  Havard Eidnes <he@uninett.no>

	* traffic/cgi/tbl-report.pl: With 100G, you need 9 spaces...

2012-09-25  Havard Eidnes <he@uninett.no>

	* traffic/report/Makefile:
	Add the two simple ip6 scripts.  These are just interim hacks...

	* traffic/report/ip6-day-perc.pl, traffic/report/ip6-plot-data.pl:
	Make this installable.

	* traffic/report/ip6-day-perc.pl, traffic/report/ip6-plot-data.pl:
	Adapt to install elsewhere, and fix up comments.

	* traffic/report/ip6-day-perc.pl, traffic/report/ip6-plot-data.pl:
	Add two simple scripts to test the percentage of ipv6 traffic,
	from interfaces which implement the IPv6 MIB.  On JunOS this means
	"layer 3 interfaces", on logical unit interfaces, as opposed to the
	physical interfaces.

	One to output raw plot data for a given day, one to compute the average
	value for a given day.

	* vwatch/unctime.pl: Convert to Time::Local.

	* traffic/report/rh-test.pl: Fix comment.

2012-09-21  Havard Eidnes <he@uninett.no>

	* tpoller/tpoller.tcl: Add counting of IPv6 packets.

	* mibs/IPV6-MIB.my, mibs/IPV6-TC.my, mibs/Makefile:
	Add the IPv6 MIB and the required IPv6 textual conventions.

	* traffic/report/tail-stats.pl, traffic/report/sel-report.pl,
	traffic/report/rr-test.pl, traffic/report/rh-test.pl,
	traffic/report/report-week.pl, traffic/report/report-month.pl,
	traffic/report/report-mon-sp.pl:
	Move from getopts.pl to Getopt::Std.

	* traffic/report/re-report-day.pl:
	Remove extraneous getopt.pl inclusion.

	* traffic/report/mk-top10.pl, traffic/report/mk-customer-index.pl,
	traffic/report/get-perc.pl, traffic/report/get-5m-perc.pl,
	traffic/report/customer-ts.pl, traffic/report/cust-load-now.pl,
	traffic/plot/plot-raw.pl, traffic/plot/plot-week.pl,
	traffic/plot/plot-hr.pl, traffic/plot/plot-day.pl,
	traffic/plot/plot-5m.pl, traffic/jobs/extract-value.pl,
	traffic/db/update-close.pl, traffic/report/report-day.pl:
	Move from getopts.pl to Getopt::Std.

	* traffic/common/date.pl: Move from timelocal.pl to Time::Local.

2012-09-18  Havard Eidnes <he@uninett.no>

	* traffic/db/update-dbs.pl: Convert away from perl4ish getopts.pl.

2012-09-13  Havard Eidnes <he@uninett.no>

	* traffic/db/Makefile:
	Also install bdb-dump.pl and bdb-load.pl, to allow for an alternative
	format of the files-to-names and names-to-file mappings.

	* traffic/report/tail-stats.pl, traffic/report/customer-ts.pl:
	Allow for a 5% overshoot over ifSpeed, to allow for quantization
	errors which might occur with lower poll intervals.

	* traffic/plot/plot-raw.pl:
	Implement plotting of unicast and multicast packets per seconds.
	Also allow for a 5% overshoot over ifSpeed, to allow for quantization
	errors which might occur with lower poll intervals.

	* traffic/plot/plot-hr.pl:
	Implement plotting of unicast and multicast packets per seconds.

	* traffic/plot/plot-5m.pl:
	Implement plotting of unicast and multicast packets per seconds.
	Also allow for a 5% overshoot over ifSpeed, to allow for quantization
	errors which might occur with lower poll intervals.

	* traffic/common/read-5m-sum.pl:
	Allow for a 5% overshoot over ifSpeed, to allow for quantization
	errors which might occur with lower poll intervals.

2012-09-07  Havard Eidnes <he@uninett.no>

	* Makefile: Bump again.

	* zino/load-mibs.tcl: Also load the Cisco IETF BFD MIB.

	* ChangeLog: Note updates since last release.
	* Makefile: Bump the version number.

	* zino/bfd.tcl: Add support for also probing the state of BFD sessions
	using the Cisco implant of the IETF BFD MIB.

	* mibs/Makefile: Install the Cisco version of the IETF BFD MIB.

	* mibs/CISCO-IETF-BFD-MIB.my:
	Check in a copy of the Cisco implant of the IETF BFD MIB.

	* zino/events.tcl:
	Also clean up any delayed checking for reachability when
	cleaning up after a now-removed router.

2012-08-23  Havard Eidnes <he@uninett.no>

	* ritz/ui.tcl: Ensure menubuttons are drawn with a raised relief.
	Apparently the defaults in the tixOptionMenu widget
	do not take effect(!?)

2012-07-20  Havard Eidnes <he@uninett.no>

	* zino/events.tcl:
	Add a new fixupEventIdToIx to get rid of extraneous entries in that
	array.

	Rewrite closeEventsOnRouter to not use EventIdToIx, due to there
	existing stale entries in EventIdToIx, we may end up with events with
	only log + history as attributes, causing ritz indigestion.

2012-05-31  Havard Eidnes <he@uninett.no>

	* zino/status.tcl: Increase the frequency of BGP neighborship polling.

2012-05-29  Havard Eidnes <he@uninett.no>

	* tpoller/tpoller.tcl:
	Fix bugs in uptime estimation and reboot detection, which were
	introduced when this code was converted to async operation(!)

2012-04-11  Havard Eidnes <he@uninett.no>

	* tpoller/tpoller.tcl:
	Ensure that cx($name,uptime) gets set at all, so that the uptime check
	can be performed on the subsequent polls.

2012-03-28  Havard Eidnes <he@uninett.no>

	* tpoller/tpoller.tcl:
	Ask routers also for the newer counters for multicast and broadcast
	packets.

2012-03-07  Havard Eidnes <he@uninett.no>

	* traffic/cgi/tbl-report.pl:
	Prevent cross-site scripting using the dsp-type attribute.

	* zino/flaps.tcl:
	If we're no longer flapping, don't set portState to "flapping", but
	instead to the actual state.  This may cure the "phantom flapping
	interfaces" displayed by ritz.

2012-03-06  Havard Eidnes <he@uninett.no>

	* traffic/common/read-5m-sum.pl, traffic/report/customer-ts.pl:
	Cap the data rate for each port to the interface speed, not just
	to the sum of the interface speeds in total, which is useless e.g.
	when summing up traffic over all customers.

	Save ifspeed readings in %save_ifspeed, caller responsible for
	save/restore if doing incremental log processing.

2012-03-05  Havard Eidnes <he@uninett.no>

	* traffic/common/new-read-hr-log.pl,
	traffic/common/read-hr-log.pl, traffic/plot/plot-5m.pl,
	traffic/plot/plot-raw.pl, traffic/report/customer-ts.pl,
	traffic/report/tail-stats.pl:
	Check Octet-derived data rates and ignore samples with values
	larger than that reported by ifSpeed, if ifSpeed is not zero.

2012-01-25  Havard Eidnes <he@uninett.no>

	* Makefile: Mark this as version 0.9.9.4.

	* common/config.tcl:
	Rename "retry" to "retries", to match what scotty documents.

	* common/polljob.tcl:
	Add support for actually using the "timeout" and "retries" config
	variables, and rename "retry" to "retries" in the process.  These were
	accepted but not used earlier.

	* ritz/net.tcl:
	Try to get the log for event 0 if there are no active events.
	This will cause the server to give an error, but it will nevertheless
	keep the connection alive.

	* zino/status.tcl:
	Handle empty address and description tables by just returning.
	Might be caused by restricted SNMP access.

2012-01-22  Havard Eidnes <he@uninett.no>

	* mibs/Makefile: Install the new Zino-related MIB files.

	* zino/Makefile: Also include the agent.tcl file.

	* Makefile: Mark this as version 0.9.9.3.

	* zino/server.tcl: No safeGets in the server, use gets instead.

	* ritz/net.tcl: Remove debugging output.

	* ritz/net.tcl:
	Add support for optional application-level keepalive, to maintain
	mapping state in a NAT/PT device along the path.  This is enabled
	by setting the global TCL variable Keepalive to the number of seconds
	to expire between each keepalive activity.  Both the normal command
	socket as well as the notify socket gets this treatment.

	* mibs/UNINETT-SMI.my:
	Use official assignment in the UNINETT OID space.

	* zino/server.tcl: Consume any data arriving on the notify sockets.

2012-01-19  Havard Eidnes <he@uninett.no>

	* mibs/UNINETT-SMI.my, mibs/UNINETT-ZINO-MIB.my, zino/agent.tcl,
	zino/zino-main.tcl:
	Implement a small SNMP agent listening on  port 8000, responding
	with how many seconds the current zino instance has been running.

2012-01-18  Havard Eidnes <he@uninett.no>

	* ritz/ui.tcl:
	Fix a bug which caused old state related to a connection and the
	events collected via it to not be cleaned up when the connection is
	closed.

2012-01-17  Havard Eidnes <he@uninett.no>

	* ritz/debian/control: bugfix

	* ritz/ui.tcl: Bump end year of copyright range.

	* ChangeLog: Add changes done since the previous release.

	* Makefile: Bump version number.

2012-01-17  Havard Eidnes <he@uninett.no>

	* Makefile: Bump version number.

2012-01-16  Havard Eidnes <he@uninett.no>

	* ritz/net.tcl, ritz/ui.tcl, zino/server.tcl:
	Implement new style notify connection setup, where only the server
	listens for connections.  Implement some minimal protection using
	a random string to be repeated back to the server to tie together
	a normal server connection and the new notify connection.  Until
	that is done, no other traffic than the nonce is set on the notify
	connection, which uses port 8002.

	Ritz falls back to the old style notify connection setup if the
	new style setup fails for some reason.

	This should make it possible to use ritz from behind a NAT device.

2011-12-12  Havard Eidnes <he@uninett.no>

	* vwatch/pretty-ios.pl: Add minimal handling of IOS-XR.

2011-11-03  Havard Eidnes <he@uninett.no>

	* zino/test-traps.tcl:
	Remove remnants of "/store", use NetBSD's /usr/pkg/bin instead.

	* zino/status.tcl:
	First try to get interface descriptions using ifAlias.
	Only if that returns an empty table, revert to trying locIfDescr,
	despite the latter possibly returning a longer string.
	The reason is that some newer IOS boxes has started returning
	an incomplete list of interface descriptions when queried for
	via locIfDescr.

2011-11-02  Havard Eidnes <he@uninett.no>

	* zino/status.tcl:
	Avoid race by having the two methods of getting the interface
	descriptions use different variables to stash their stuff.
	Problem uncovered by Cisco IOS-XR which no longer supports
	the ancient locIfDescr MIB variables, and therefore ended up
	with empty interface descriptions.

2011-10-14  Havard Eidnes <he@uninett.no>

	* traffic/db/bdb-dump.pl:
	Fix the tie syntax so that this actually works.

2011-10-07  Havard Eidnes <he@uninett.no>

	* ritz/ui.tcl: Add alarm type case types to sort on.

2011-09-16  Havard Eidnes <he@uninett.no>

	* zino/status.tcl: Typo correction.

2011-09-07  Havard Eidnes <he@uninett.no>

	* zino/status.tcl: Make some patterns which actually work.
	Remove some 10.0.0.*, 127.* and 128.* explicitly ignored addresses.

2011-08-12  Havard Eidnes <he@uninett.no>

	* traffic/report/mk-top10.pl, traffic/cgi/top10.pl:
	Change how we compute placement of the rectangles which refer to
	customer-specific plots.  Fix an off-by-one error: $# is "index of
	last entry", not "number of entries".  Also correct the left edge of
	the plot (I wonder if the larger numbers affect this...)

2011-08-08  Havard Eidnes <he@uninett.no>

	* vwatch/Makefile: Fix so that "make clean" works.

2011-06-22  Havard Eidnes <he@uninett.no>

	* vwatch/cur-vers.pl:
	Replace now-deprecated defined(%hash) by testing one of the elements
	instead.

	* traffic/cgi/r-all.pl:
	Widen the plots slightly, from 400 to 450 pixels, to fit more text
	and legend, to avoid ugly text wrapping.

	* vwatch/Makefile: Fix typo.

	* traffic/site/default.rng: Modernize to by default do higher speeds.

	* traffic/db/warn-dups.pl: Warn if ; is found in description fields.

	* traffic/common/timelocal.pl: Use :: instead of '.

	* emt/emt.tcl:
	Support _ as a replacement for ' ' in description fields.
	If emt_alarm_to isn't set, warn about it.

	* Makefile.inc.dist: Add DESCFILE setting.

2011-05-25  Havard Eidnes <he@uninett.no>

	* INSTALL: Add p5-BerkeleyDB as a requirement.

	* traffic/db/update-dbs.pl, traffic/db/update-close.pl,
	traffic/db/bdb-load.pl, traffic/db/bdb-dump.pl,
	traffic/db/db-lookup.pl:
	Implement BerkeleyDB as a preferred alternative to the original "bdm"
	hashed files (which are BerkeleyDB version 1, in all probability).  If
	database files named ntf.bdb and ftn.bdb exists, they will be
	preferred over the older "dbm" hashed files, and accessed using the
	BerkeleyDB perl module.

	This is done because at least one installation of zino has hit a bug
	or a limitation in the original "dbm" implementation, causing a
	segfault with perl 5.8 and a perl-internal panic with perl 5.12, both
	of which are avoided if using BerkeleyDB with version 4 DB library and
	databases.

	Convert to ntf.bdb and ftn.bdb by using "../bin/dbm-dump ftn > ftn"
	and subsequently "../bin/bdb-load ftn.bdb ftn", which will create the
	ftn.bdb database, and correspondingly for the ntf database.

2011-04-05  Havard Eidnes <he@uninett.no>

	* traffic/cgi/load-map.pl:
	Ignore two more directives, apparently emitted by tgif 4.2.2.

2011-04-03  Havard Eidnes <he@uninett.no>

	* vwatch/vw-daily.pl:
	Adapt to "use strict;", prepare for perl 5.12 which doesn't by default
	split into @_...

2011-04-01  Havard Eidnes <he@uninett.no>

	* traffic/cgi/top10.pl, traffic/common/new-read-hr-log.pl,
	traffic/common/new-read-raw-log.pl, traffic/jobs/check-deltas.pl,
	traffic/jobs/convert-data.pl, traffic/jobs/fixup-data.pl,
	traffic/jobs/print-old.pl, traffic/jobs/split-new-data.pl,
	traffic/report/cust-load-now.pl,
	traffic/report/mk-customer-index.pl, traffic/report/mk-top10.pl:
	Prepare for perl 5.12, by explicitly putting the result of split()
	into @_.

2011-02-15  Havard Eidnes <he@uninett.no>

	* vwatch/cur-vers.pl:
	Remove a possible trailing newline (seen from D-Link switches).

2011-01-31  Havard Eidnes <he@uninett.no>

	* vwatch/pretty-ios.pl: Also recognize Cisco CatOS.

2010-12-08  Havard Eidnes <he@uninett.no>

	* traffic/common/read-5m-sum.pl:
	Short-circuit if we didn't actually collect any new data for a given
	variable.  This appears to be triggered when logical ports are moved
	around...

2010-11-01  Havard Eidnes <he@uninett.no>

	* traffic/common/date.pl:
	Allow for up to 2h DST change when moving between days around
	a DST shift.

2010-10-25  Havard Eidnes <he@uninett.no>

	* traffic/db/warn-dups.pl:
	Make -t argument optional, default to installed topdir.
	Make the output easier to handle: print device name and interface name
	instead of just the raw key made up of device name and ifIndex.

2010-10-08  Havard Eidnes <he@uninett.no>

	* ChangeLog: Add more changes to be included in 0.9.9.1.

	* traffic/common/Makefile:
	Reinstate installation of read-5m-sum.pl, which was mistakenly
	removed.

2010-10-07  Havard Eidnes <he@uninett.no>

	* ChangeLog: Add changes for 0.9.9.1.

	* Makefile: Mark this as 0.9.9.1.

	* tpoller/Makefile: Fix syntax error in the list of source files.

2010-10-06  Havard Eidnes <he@uninett.no>

	* traffic/common/Makefile:
	Reinstate installation of read-5m-sum.pl, which was mistakenly
	removed.

2010-09-29  Havard Eidnes <he@uninett.no>

	* ChangeLog: Add changes leading up to 0.9.9.

	* Makefile: Mark this as version 0.9.9.

	* traffic/report/rh-test.pl, traffic/report/rr-test.pl:
	Add two small test scripts (not installed).

	* UPDATING:
	Write a note about how to upgrade to the new raw data format for the
	traffic statistics.

	* INSTALL: List the packages required to use this package.
	Provide other minimal installation information.

2010-09-24  Havard Eidnes <he@uninett.no>

	* tpoller/tpoller.tcl:
	Change to a new raw data format where we log time stamps as seconds
	since Jan 1 1970 00:00:00 UTC instead of as a string in the local time
	zone.  The latter has been the source of much teeth-gnashing over DST-
	related bugs, particularly when the raw data files are processed
	incrementally in "tail" mode.  Those bugs should now be history.

	* tpoller/Makefile: Add new files which are now included in zino.

	* zinomon/Makefile:
	Avoid referring to ${PROGS} so as to not interfere with the default
	.mk setup on NetBSD.

	* zino/swalk.tcl:
	Extend swalk so that it can optionally take names of functions to
	call at end-of-table and in case of an error event.

	* vwatch/Makefile:
	Avoid problems with using macros with predefined meaning in NetBSD's
	make setup.  Someday we ought to consider autoconfig'ing this stuff
	and not use NetBSD's .mk files at all...

	* traffic/report/tail-stats.pl:
	Make it possible to only process a subset of logical ports
	via the -n option, also for "today".
	Also print an error message instead of an error code if rrd fails.

	* traffic/report/report-day.pl:
	Make this run with "use strict;" which actually improves performance
	radically with a newish perl.

	* traffic/report/customer-ts.pl:
	Add some debugging code active under -V.  Make sure to print times in
	hh:mm:ss format in local time.

	* traffic/jobs/Makefile: Add the new files to be installed.

	* traffic/jobs/onlyone.sh: Add a comment.

	* traffic/jobs/fixup-data.pl:
	Add detection of the new raw data format, and add a function to deal
	with that format.

	* traffic/jobs/compress-data.pl:
	Make the daily compression job able to handle lots of files by using
	find + xargs.

	* traffic/common/date.pl:
	Correctly compute the number of days in a year, accounting for leap
	years.

	* traffic/common/Makefile: Add the new scripts to be installed.

	* traffic/common/read-raw-log.pl, traffic/common/read-hr-log.pl:
	Detect the new version format, and switch to the routine reading that
	format.

	* traffic/common/read-5m-sum.pl:
	Disable DST compensation when reading new-style raw data logs,
	since the new code's use of %lasttime is different than the old.

	* ritz/notify.tcl: Get rid of an un-needed declaration.

	* traffic/cgi/r-all.pl:
	If, for some reason, the desc file is unreadable or nonexistent, emit
	an error to that effect (usually a config error).

	* traffic/common/new-read-hr-log.pl, traffic/common/new-read-raw-log.pl:
	Add a variant of the read-raw-log script which processes new-style
	timestamped raw data files, where timestamps are in seconds since 1
	Jan 1970 00:00:00 UTC.  Gone should therefore be bugs in the DST
	handling code, which were especially troublesome for incremental file
	processing.

	* traffic/common/dst-test.pl:
	Add a small script which parses an old-style date timestamp on input
	and prints whether the given day goes from or to DST.  This should now
	be redundant, since we log with time stamps in UTC.

	* traffic/jobs/split-new-data.pl:
	Add a script which can split new-style raw data files over days.
	I'm not entirely satisfied with the way the arguments are handled,
	maybe it will improve in the next iteration.

	* traffic/jobs/check-deltas.pl:
	Add a small debugging script (not installed) which checks the
	time-delta values in the data file.  This turns out to have limited
	usefulness for historical logs, because there intermediate lines
	with the same value have been filtered out.

	* traffic/jobs/print-old.pl:
	Add a small debugging script (not installed), which prints
	the time stamps in the old style.

	* traffic/jobs/convert-data.pl:
	Add a script which will convert from old-style to new-style time
	stamps in the raw data files.

	* traffic/jobs/daily.pl:
	Make the daily job able to handle lots of files by using find +
	xargs and the recently added move-to and copy-to scripts.
	This should make the daily job able to handle lots of files,
	and avoids relying on the maximum command line length.

	* traffic/jobs/copy-to:
	Add a script for copying a set of files to a given directory, suitable
	for use with find and xargs.

	* traffic/jobs/move-to:
	Add a script to move a set of files to a given directory,
	suitable for use with find and xargs.

	* zinomon/Makefile:
	Avoid the use of PROGS, use variants so as to not conflict with
	NetBSD's mk rules.

	* vwatch/Makefile:
	Avoid problems with using macros with predefined meaning in NetBSD's
	make setup.  Someday we ought to consider autoconfig'ing this stuff
	and not use NetBSD's .mk files at all...

	* traffic/report/customer-ts.pl:
	Add some more debug output, and ensure times printed in debug output
	are in local time.

	* traffic/common/new-read-raw-log.pl:
	We need to remember the position we had progressed to for each round.

	* traffic/cgi/r-all.pl:
	Emit a warning if description file can't be opened.

2010-09-23  Havard Eidnes <he@uninett.no>

	* traffic/common/read-5m-sum.pl:
	Disable DST compensation when reading new-style raw data logs,
	since the new code's use of %lasttime is different than the old.

2010-09-22  Havard Eidnes <he@uninett.no>

	* zino/trap.tcl: Ignore BGP traps from Juniper boxes as well.

	* zino/status.tcl:
	Implement removal of old stale entries in the AddrToRouter array,
	in the manner done for descriptions.

	* zino/swalk.tcl:
	Don't put a list around $args in ProcessRow, this should prevent
	list braces accumulating.

2010-09-20  Havard Eidnes <he@uninett.no>

	* traffic/common/read-raw-log.pl:
	We need to trigger doing the new stats data format
	when we see a line starting with a digit.  This is
	needed for e.g. incremental data file processing.

2010-09-17  Havard Eidnes <he@uninett.no>

	* traffic/common/date.pl:
	Correctly compute the number of days in a year, accounting for leap
	days.

2010-09-01  Havard Eidnes <he@uninett.no>

	* traffic/jobs/convert-data.pl:
	Uh, always mark converted data as being Version 1.

	* traffic/report/tail-stats.pl:
	Print a newline, and use $! instad of $?.

2010-08-20  Havard Eidnes <he@uninett.no>

	* traffic/jobs/compress-data.pl: Only try to compress files...

2010-08-19  Havard Eidnes <he@uninett.no>

	* traffic/jobs/convert-data.pl:
	Skip empty lines instead of potentially falling into doing strptime()
	on an empty day of month...  Also skip already converted lines.

2010-08-17  Havard Eidnes <he@uninett.no>

	* traffic/cgi/load-map.pl:
	Add support for handling layer-2 VPN "circuits" in reversing the
	logical port name, by keeping -l2vpn-whatever and pivoting on any
	remaining hypen preceding this part.

2010-08-13  Havard Eidnes <he@uninett.no>

	* traffic/jobs/convert-data.pl:
	Add ability to properly handle gzip archive files.
	If original was gzip'ed, the new one will be too.

2010-08-06  Havard Eidnes <he@uninett.no>

	* ritz/notify.tcl:
	Remove some global declarations which are not needed.

2010-07-28  Havard Eidnes <he@uninett.no>

	* tpoller/Makefile, tpoller/tpoller.tcl,
	  traffic/common/Makefile, traffic/common/new-read-hr-log.pl,
	  traffic/common/new-read-raw-log.pl,
	  traffic/common/read-hr-log.pl, traffic/common/read-raw-log.pl,
	  traffic/jobs/Makefile, traffic/jobs/check-deltas.pl,
	  traffic/jobs/compress-data.pl, traffic/jobs/convert-data.pl,
	  traffic/jobs/copy-to, traffic/jobs/daily.pl,
	  traffic/jobs/fixup-data.pl, traffic/jobs/move-to,
	  traffic/jobs/onlyone.sh, traffic/jobs/print-old.pl,
	  traffic/jobs/split-new-data.pl, traffic/report/report-day.pl,
	  traffic/report/rh-test.pl, traffic/report/rr-test.pl,
	  zino/swalk.tcl:

	Change the raw data format of the traffic logs, in an attempt at
	getting rid of all the "shift to or from DST" bugs in this code,
	by using seconds UTC since 1 jan 1970 instead of textual timestamps
	in the local time zone.

	Adapt processing routines so that both the old and the new data format
	is recognized.  Add a new script to split a new-style raw data file
	if for some reason the processing around midnight isn't executed.

	Also add some test scripts useful to test the innards of the
	"read in raw data files" functions.

	In the process, read-hr-log, read-raw-log and report-day has been
	made to run with "use strict;" which actually made a big difference
	performance-wise with a newish perl.

	Extend swalk so that it can optionally take names of functions to
	call at end-of-table and in case of an error event.

	Make the daily job able to handle lots of files by using find +
	xargs instead of hoping that the command line can hold all the
	file names.  This introduces the new copy-to and move-to helper
	scripts (target dirname given as first argument).

2010-07-27  Havard Eidnes <he@uninett.no>

	* zinomon/Zino.pm, zinomon/zino-monitor.pl:
	Make the lack of active events / "case-IDs" a non-fatal error as far
	as this test is concerned.  Instead pull the version number and do
	some simplistic tests on it.

	Add a time-out of 30 seconds around the main checking loop, to protect
	against stuck connections.

2010-07-15  Havard Eidnes <he@uninett.no>

	* vwatch/cur-vers.pl: Recognize JunOS service versions as well.

2010-06-28  Havard Eidnes <he@uninett.no>

	* traffic/report/tail-stats.pl:
	Make it possible to only process a subset of logical ports
	via the -n option, also for "today".

2010-05-26  Havard Eidnes <he@uninett.no>

	* tpoller/tpoller.tcl:
	Rewrite to use only asynchronous callbacks, so that if a significant
	portion of the devices are unreachable, the poll frequency for those
	which remain should not be adversely affected.

2010-05-20  Havard Eidnes <he@uninett.no>

	* traffic/cgi/load-map.pl:
	Make it possible to provide an absolute pointer, so that the date+type
	doesn't get tacked on, by rewriting an "absolute http pointer" of the
	form "abs-http://" to just "http://".

2010-04-22  Havard Eidnes <he@uninett.no>

	* Makefile: Bump version to 0.9.8.2.

	* ChangeLog: Add changes since version 0.9.8.1.

	* mibs/mib-jnx-exp.txt:
	Add support for monitoring the state of BFD sessions, using the
	Juniper BFD MIB, which is currently implanted in the Juniper
	experimental MIB tree (but using the MIB variable names from the
	draft of the standard MIB, sigh...).

	Regrettably, Cisco has not implemented the BFD MIB on any of the
	pieces of equipment we use, even though they have participated in
	specifying the IETF standard, which is still in draft form, some
	6 years after the initial draft.  Sigh!

	* mibs/mib-jnx-bfd-exp-mod.txt:
	Add support for monitoring the state of BFD sessions, using the
	Juniper BFD MIB, which is currently implanted in the Juniper
	experimental MIB tree (but using the MIB variable names from the
	draft of the standard MIB, sigh...).

	Regrettably, Cisco has not implemented the BFD MIB on any of the
	pieces of equipment we use, even though they have participated in
	specifying the IETF standard, which is still in draft form, some
	6 years after the initial draft.  Sigh!

	(This MIB is slightly modified compared to the original; it uses the
	bfdDiag syntax for the bfdSessDiag instead of an Unsigned32.)

	* zino/bfd.tcl, zino/trap.tcl, zino/status.tcl,
	  zino/load-mibs.tcl, zino/Makefile, ritz/summary.tcl,
	  ritz/sort.tcl, mibs/Makefile, emt/emt.tcl, common/sort.tcl,
	  common/attrs.tcl:
	
	Add support for monitoring the state of BFD sessions, using the
	Juniper BFD MIB, which is currently implanted in the Juniper
	experimental MIB tree (but using the MIB variable names from the
	draft of the standard MIB, sigh...).

	Regrettably, Cisco has not implemented the BFD MIB on any of the
	pieces of equipment we use, even though they have participated in
	specifying the IETF standard, which is still in draft form, some
	6 years after the initial draft.  Sigh!

	* TODO:
	Add one more TODO item: traffic poller should do all-async requests.

2010-04-22  Havard Eidnes <he@uninett.no>

	* Makefile: Bump version to 0.9.8.2.

	* zino/bfd.tcl, zino/trap.tcl, zino/status.tcl,
	zino/load-mibs.tcl, zino/Makefile, ritz/summary.tcl,
	ritz/sort.tcl, mibs/Makefile, emt/emt.tcl, common/sort.tcl,
	common/attrs.tcl mibs/mib-jnx-exp.txt:
	Add support for monitoring the state of BFD sessions, using the
	Juniper BFD MIB, which is currently implanted in the Juniper
	experimental MIB tree (but using the MIB variable names from the
	draft of the standard MIB, sigh...).

	Regrettably, Cisco has not implemented the BFD MIB on any of the
	pieces of equipment we use, even though they have participated in
	specifying the IETF standard, which is still in draft form, some
	6 years after the initial draft.  Sigh!

	* mibs/mib-jnx-bfd-exp-mod.txt:
	Add support for monitoring the state of BFD sessions, using the
	Juniper BFD MIB.
	(This MIB is slightly modified compared to the original; it uses the
	bfdDiag syntax for the bfdSessDiag instead of an Unsigned32.)

	* TODO:
	Add one more TODO item: traffic poller should do all-async requests.

2010-04-20  Havard Eidnes <he@uninett.no>

	* ritz/ui.tcl: Add the bfd and bgp event types to the menu.

2010-01-26  Havard Eidnes <he@uninett.no>

	* traffic/common/read-hr-log.pl, traffic/common/read-raw-log.pl:
	Allow a "Reboot" line to be the first one in a data file, so that
	it will be acted on and a new baseline for the counters will be
	established.

	* traffic/common/read-5m-sum.pl:
	If the last data we looked at was from "yesterday", compensate
	the %lasttime hash before passing it on.
	The %firsttime has is in hours, so use a more appropriate value
	for comparison.

	* traffic/report/customer-ts.pl:
	Add some debugging code, only used under $opt_v or $opt_V.

	* traffic/plot/plot-5m.pl:
	Don't mess with the global $date used by the functions reading the
	raw data log. (I really want to reimplement that stuff...)

2009-12-10  Havard Eidnes <he@uninett.no>

	* zino/server.tcl: Correct a typo.

	* zino/server.tcl:
	Adapt to changes to the PM module: pass user information to various
	functions related to logging and closing of PM events.

	Implement two new functions to check authorization: Authenticated and
	PermitROaccess, and use them instead of the old open-coded variants.

	Implement the "pm help" command.

	Add authorization checks to all the PM functions/commands.

	* zino/pm.tcl:
	Various bugfixes so that this now actually works the way it was
	intended to work.

	Use the newly added ::persist::after_restore procedure to register a
	callback which registers the PM event arrays.

	Pull along user ID information via the addlog, cancel and close
	procedures.

	* common/persist.tcl:
	Add the possibility to register parameter-less callbacks to be invoked
	right after the saved state has been restored.

2009-12-08  Havard Eidnes <he@uninett.no>

	* zino/server.tcl: Correct the sense of the test for from_t.

	* zino/Makefile:
	Add the recently created module for dealing with Planned Maintenance.

	* zino/server.tcl:
	Add code to implement the server interface part related to planned
	maintenance events.

	* zino/pm.tcl:
	Rename logadd to addlog, extend it to take a user parameter.
	Shape the log entry associated with the event.

	* zino/pm.tcl:
	Add an initial "for testing/debugging" version of a module to handle
	planned maintenance events.  The intention is to be able to specify
	which events to ignore during a PM, be that portstate, reachability or
	alarm events.

	* zino/events.tcl:
	Add setEventAttrs, which can set multiple attribute values in one
	invocation.

	* zino/status.tcl:
	Ensure that we clear out the "new descriptions" array before
	fetching the values.  Also get rid of a now-redundant declaration.

2009-12-03  Havard Eidnes <he@uninett.no>

	* Makefile: Bump to version 0.9.8.1.

2009-11-30  Havard Eidnes <he@uninett.no>

	* zino/status.tcl:
	Convert getAddrList to use bulkWalk instead of "snmp walk", which
	turns out to be more synchronous than we want here.  This can now be
	done since bulkWalk has been generalized to handle a variable list
	instead of just a single variable representing a single coloumn in a
	table.

	* zino/status.tcl:
	Adapt to the generalized bulkWalk, which now passes a full var-bind
	list, not just a single var-bind to the handler.

	* zino/test-bwalk.tcl:
	Add test fetching two variables at a time using bulkWalk.

	* zino/bwalk.tcl:
	Generalize this so that it can take a list of variables, not just
	iterate over a single row.  Does not handle sparse tables, use swalk
	instead if you need that.

	* zino/status.tcl:
	Convert the recently added fetch of the interface layering table
	and the administrator-set interface description fields from using
	the "walk" operation to use the "getbulk" operation, using the
	newly added bulkWalk function.

	Testing reveals that it's quite possible that the "walk" operation
	is more synchronous than we really want, causing sluggish response
	to other events, such as commands received over the network.

	* zino/Makefile: Add the newly added bwalk.tcl file.

	* zino/test-bwalk.tcl:
	Add a simple test script for testing the newly added bulkWalk
	function.

	* zino/bwalk.tcl:
	Add a function to do a single-variable get-bulk table row fetch,
	with the given number of repetitions, with optional end-of-varlist
	and error handlers.

2009-11-29  Havard Eidnes <he@uninett.no>

	* zino/status.tcl:
	Also return from the collection of the stacking table if we hit an
	error.

	* zino/status.tcl:
	Return from the collection of description fields if we hit an error.

2009-11-25  Havard Eidnes <he@uninett.no>

	* zino/events.tcl: Also clean up isJuniper state for a router.
	Call cleanup functions for BGP and interface layering when
	cleanup up after a router.  Also simplify some code by using
	patterns with "array unset".

	* zino/status.tcl:
	Add code to fetch the interface layering table via the ifStackTable.
	Use this to not create events for interfaces which run on top of
	another interface, and don't themselves have a description field set
	by the administrator.

	Add a function to clean up the layering-related state for a router.
	Add a few more checks for noResponse errors and call the noResponse
	function in those cases.

	* zino/bgp.tcl:
	Add a function to clean up BGP-related state for a given router.

2009-11-20  Havard Eidnes <he@uninett.no>

	* zino/status.tcl:
	Ensure that the newly separately collected interface description
	fields actually get used when detecting a change in interface
	operational status.  We no longer collect ifAlias and locIfDescr
	in the normal status poll round...

	* zino/flaps.tcl:
	Eliminate some uses of the global portToLocIfDescr, use the
	description function instead.

	Ignore traps (but log them) for in-significant interfaces,
	as per earlier change.

	* traffic/common/read-hr-log.pl:
	Ensure that $h has a leading zero after having been computed on
	(bug introduced in previous fix for DST compensation), so that the
	format of $h remains the same as it was before, i.e.  with a leading
	zero for the hours 0-9.

2009-11-18  Havard Eidnes <he@uninett.no>

	* traffic/common/read-5m-sum.pl:
	Turn on the extra-verbose debug output, but only enable it under
	$opt_V.

	Improve the diagnostic by prefixing with the logical port name being
	analyzed at the moment when the anomaly was found.

	* traffic/common/read-raw-log.pl:
	There's no need to repeat the declaration of %sample_no.

	Improve the test for whether we rolled over to the next day, so that
	we handle log files which start at e.g. 00:00:00, and have no samples
	in hour 23 logged before that.

2009-11-11  Havard Eidnes <he@uninett.no>

	* vwatch/Makefile:
	Indicate that none of the programs have manual pages.
	I really ought to convert this to use autoconf/automake...

	* zino/bgp.tcl: Properly un-comment some debug logging.
	Remove some commented-out debug code with unbalanced braces, so as to
	avoid confusing tcl/scotty.

	* zino/status.tcl:
	Move the fetching of administrator-set interface description fields
	into a function of it's own, where seen-from-tcl the operation is
	synchronous (using the "snmp walk" operation, which in turn usually
	tries to do SNMP Get-Bulk), so that after the information has been
	gathered from the router we can delete items which are no longer valid
	from the global table.  Log only changes in the debug log.  As a
	result, recordIntf no longer deals with these interface description
	fields.

	Instead of open-coding the test for "isCisco", make a function which
	does this, and use it where appropriate.

	Make the debug logging for non-responsive devices only trigger on
	changes in reachability.  This should significantly reduce the amount
	of noise in the logs when we have non-responsive devices.

	Re-do how doResponse is working, to simplify code at the calling site.

2009-11-03  Havard Eidnes <he@uninett.no>

	* traffic/plot/plot-day.pl:
	Don't start painting X tick marks for a time where we don't have any
	actual data recorded for the given logical interface.

	* traffic/common/read-hr-log.pl:
	Apply minimal fixes to deal with switching to and from daylight
	savings time.

2009-10-28  Havard Eidnes <he@uninett.no>

	* zino/bgp.tcl: Drop the logging of "known state" for BGP sessions.

2009-10-26  Havard Eidnes <he@uninett.no>

	* traffic/common/read-5m-sum.pl: Save and restore %dstcomp.
	Remove code for switching to the next day -- that's now done
	in read-raw-log instead.

2009-10-25  Havard Eidnes <he@uninett.no>

	* traffic/common/read-raw-log.pl:
	Add yet another kludge to deal with DST handling:

	When going from the day with DST shift to the next one,
	%lasttime also needs to be adjusted before processing the
	stats.

	* traffic/common/read-raw-log.pl:
	Make %dstcomp global (as the comments state), so that incremental
	reads which save / restore its contents can work.

	Add code to reset %dstcomp members to 0 when we hit a date which does
	not switch to or from DST.

	* traffic/common/read-raw-log.pl:
	Fix logic for switching to DST compensation so that it actually
	only runs once.

	Get rid of the code which was used to deal with old compressed logs,
	which turned out to have errors in them...  ...Instead of skipping the
	samples for the following hour, and masking the effect of the "real"
	DST compensation code.

2009-10-23  Havard Eidnes <he@uninett.no>

	* traffic/cgi/r-all.pl:
	If we got an error during RRD-graphing, print it together with
	the RRD-graph arguments to stderr, ends up in apache's error log.

	Correct the font specification: there is no need for single quoting,
	and it actually nulls out the font selection(!)

	Also, be less specific about the legend font, and let rrdtool pick a
	suitable monospace font (it defaults to monospace).

	* traffic/cgi/r-all.pl:
	Drop a superflous newline from an error message.

	* traffic/cgi/r-all.pl:
	Get rid of a tab in the legend.  It frequently pushed the end of the
	line to wrap, causing different-sized images to be created.  This in
	turn could cause overflow in the %img_size hash, because it's tied to
	a fixed-size shared memory segment, defaulting (in my case) to 64KB.

	Also protect the statements which add an exception to the %img_size
	hash, so that if we try to exceed the shared memory segment size, the
	error is not fatal.  Instead, emit a message in the error log, and
	continue on.  The price to pay is to have the web client stretch or
	compress the images, which may not look so pretty.

	Ideally, we ought to figure out a better way of dimensioning the
	shared memory segment, so that it's less likely to overflow.  We also
	ought to devise a way to have the general image size be out-voted by
	the number of exceptions for the given type of plot...

2009-10-21  Havard Eidnes <he@uninett.no>

	* Makefile: Bump to version 0.9.8.

	* traffic/cgi/r-all.pl:
	Get rid of outdated exception entries in the img_size hash,
	so that the renderer in the browser doesn't have to stretch
	the images (which typically makes for lousy quality).

2009-10-13  Havard Eidnes <he@uninett.no>

	* traffic/report/get-perc.pl:
	Now that find_file() is where it belongs in this context (perc.pl),
	remove the local copy and the files it requires again.

	* traffic/common/perc.pl: Move find_file() here, where it belongs.

	* traffic/report/get-perc.pl:
	Actually... find_file() is still required.

	* traffic/report/get-perc.pl:
	Actually, don't need find_file() anymore either.

	* traffic/report/get-perc.pl:
	Farm out get_percentile(), use common function instead.
	Don't do "hr" stats.

	* traffic/report/get-5m-perc.pl: Slightly improve usage line.

	* traffic/report/get-5m-perc.pl:
	Declare $opt_N and $opt_M, and we don't do -v anymore.

	* traffic/common/date.pl:
	Introduce "use DateTime", implement dsp_to_dt()
	to convert the start of a datespec period to a DateTime.

2009-10-08  Havard Eidnes <he@uninett.no>

	* traffic/common/perc-5m.pl: Require the files we actually need.
	Adapt to "use strict;" rules.
	Count the actual number of days with data, so that
	we can compute percentiles for e.g. the current month.

	* traffic/common/Makefile: Add perc.pl script.

	* traffic/common/perc.pl:
	Farm out the "compute percentile values over individual sample intervals
	for a single port" to a common script, for improved code reuse.

	* traffic/db/db-lookup.pl: Comply to "use strict;" rules.

	* traffic/db/db-lookup.pl:
	Change syntax for package desination to adapt to emacs highlighting...
	Get closer to "use strict;" rules.

	* traffic/report/get-5m-perc.pl:
	Farm out the get_percentile() sub in the 5minute-variant
	for improved code reuse.

	* traffic/common/Makefile: Add perc-5m.pl.

	* traffic/common/perc-5m.pl:
	Farm out the "compute percentile values over 5-minute sample intervals
	for a number of ports" to a common script, for improved code reuse.

	* traffic/report/get-perc.pl: Adapt to "use strict;" rules.
	Farm out addup_values() subr to a common file.

	* traffic/common/Makefile: Add addup.pl.

	* traffic/common/addup.pl:
	Split out the "add up values" subroutine from get-perc.
	There's no sense in having two nearly-identical copies
	in the get-perc and get-5m-perc scripts.

2009-10-07  Havard Eidnes <he@uninett.no>

	* traffic/report/tail-stats.pl:
	Fix remaining 'no strict "vars"' problems.
	Implement tweakable retention time via -t, default as before at 3600.

2009-10-06  Havard Eidnes <he@uninett.no>

	* traffic/cgi/r-all.pl:
	Correct the test for whether to update the shared-memory image-size
	array -- it's sufficient for only one of x or y to be different.
	This way, a plot done by appending "&force=1" tacked on at the end
	will update the stored image size also if only the height differs
	(which is typically what happens).

2009-10-05  Havard Eidnes <he@uninett.no>

	* traffic/db/update-dbs.pl:
	Adapt to "use strict;" rules, declare all globals with our().
	Fix the regexp for picking out description fields, so that it's
	a little bit more permissive.
	Implement new option -D <router> for specific debugging of what's
	related to the given router (could be expanded).

2009-09-27  Havard Eidnes <he@uninett.no>

	* traffic/common/read-raw-log.pl:
	Ensure that we always define the local $instance{$v} after checking
	whether it's defined and the current instance is different from the
	stored one.  This fixes a bug with producing "load-now.txt" from the
	tail-stats script, which ended up as all-0(!) otherwise.

2009-09-25  Havard Eidnes <he@uninett.no>

	* traffic/jobs/find-err-dev.pl: More documentation synchronization.

	* traffic/jobs/find-err-dev.pl: Sync doc with code wrt. a path name.

	* traffic/jobs/find-err-dev.sh: Omit a redundant /.

	* traffic/jobs/find-err-dev.pl:
	It's sufficient to print one line per interface.
	Swap around the printf() formats, so that the coloumns end up aligned.

	* traffic/jobs/find-err-dev.sh:
	Modify e-mail text to be more explanatory and explicit.

	* traffic/jobs/Makefile: Add a comment for the strange-looking pattern.

	* traffic/jobs/find-err-dev.pl:
	Put default save file in data/ subdirectory.
	Print a warning of the YAML save functions didn't work.

	* traffic/jobs/find-err-dev.sh:
	Ensure the save-file goes to %TOPDIR%/data/

	* traffic/jobs/find-err-dev.sh: Do a proper hash-bang...

	* traffic/jobs/Makefile: Add find-err-dev.pl / find-err-dev.sh scripts.

	* traffic/jobs/find-err-dev.sh, traffic/jobs/find-err-dev.pl:
	Add a script and corresponding wrapper to report statistical
	deviations in the error statistics report.

2009-09-01  Havard Eidnes <he@uninett.no>

	* traffic/jobs/Makefile:
	Only warn of remaining substitutions if there are more than two
	normal characters in a row following the % sign, to allow the
	date +%Y%m%d construct in daily to pass.

2009-08-25  Havard Eidnes <he@uninett.no>

	* traffic/plot/plot-week.pl:
	Adapt to the changed expected week datespec format, so that week-based
	plots work again.

2009-08-21  Havard Eidnes <he@uninett.no>

	* traffic/common/read-hr-log.pl, traffic/common/read-raw-log.pl:
	Instead of assuming that counters revert to 0 on agent re-
	initialization (sysUpTime.0 goes to zero), adhere strictly to the
	SMIv2 spec which says that counters do not have initial values.  This
	means we have to throw away a sample on agent re-initialization.

2009-08-15  Havard Eidnes <he@uninett.no>

	* traffic/jobs/daily.sh:
	Set up to save any RRD data in data/cust-rrd on the first of each
	month, after making sure that all the data from the preceding day
	has been processed and stored into the RRD databases.

2009-08-03  Havard Eidnes <he@uninett.no>

	* traffic/db/Makefile: Add warn-dups.pl.

	* traffic/db/warn-dups.pl:
	Add a simple script suitable to detect duplicate logical port names.
	Can be run from cron periodically; reports on stderr if dups are found.

2009-07-28  Havard Eidnes <he@uninett.no>

	* traffic/cgi/tbl-report.pl:
	Declare the %in hash with our() (an ever so slight modernization of
	the coding style).
	Make the unambiguated and possibly incomplete input datespec
	un-ambigous after taking the datespec type into account, and pretend
	that the un-ambigous variant was specified in the first place.  Makes
	references to e.g. plots which don't take a datespec-type as argument
	work as could be expected.

2009-06-17  Havard Eidnes <he@uninett.no>

	* traffic/cgi/tbl-report.pl:
	Widen the "speed" field so that 10G links also line up with
	lower-speed links.

2009-05-15  Havard Eidnes <he@uninett.no>

	* traffic/common/date.pl:
	Actually expect the canonical "week" datespec format in
	make_datespec(), i.e. "2008--52", not "2008-52".

2009-05-12  Havard Eidnes <he@uninett.no>

	* traffic/report/Makefile, traffic/report/cust-load-now.pl:
	Add the cust-load-now script, used by the mk-top10 script.

	The cust-load-now script processes the load-now.txt optionally
	left by the tail-stats script, and produces a per-customer
	report, in the process assuming that the description file marks
	all customers with the 'cust' attribute.

	* traffic/report/tail-stats.pl:
	Right after midnight, don't set position to 0 if we're looking at a
	file which has last-modified-date of yesterday, but instead allow us
	to read the rest of the file to mop up any remaining data.  This
	should get rid of the long e-mail sent by cron, triggered by rrdtool
	trying to re-update the stats for all of yesterday.

2009-05-11  Havard Eidnes <he@uninett.no>

	* traffic/cgi/tbl-report.pl:
	Let the "previous" and "next" link computation and defaults
	work for not just days but also other datespec types.

	* vwatch/vwatch.tcl:
	Add the modification to detect sysUpTime.0 32-bit counter wraparound,
	and avoid it.  This means we go "deaf" to reloads or crashes which
	happens to fall in the last few minutes before the counter wraparound.
	Code adapted from the modification to the traffic poller.

2009-04-15  Havard Eidnes <he@uninett.no>

	* traffic/cgi/top10.pl:
	Remove traces of "peak plot", which can't be done sensibly
	for any other time period than "right now".
	Improve error handling for failure to run gnuplot.
	Use %GNUPLOT% instead of gnuplot, to pick up the executable.
	Shuffle some code around to simplify error handling (output
	document header before making the plots).

2009-04-02  Havard Eidnes <he@uninett.no>

	* tpoller/tpoller.tcl:
	Fiddle a bit with the "expectedUptime" procedure:
	 o Ignore expected uptime within "max" - uptimeSlop (3 minutes)
	 o Log a message with details when we are close to wrapping
	 o Log a message when we have an otherwise unexpected uptime
	Hopefully this can get us to the bottom of why we don't avoid
	logging messages when we have 32-bit uptime counter wraparound.

	* vwatch/uptimes.pl: Use Getopt::Std and strict; adapt to "use strict".
	Implement sorting of JunOS versions.
	Allow sorting by uptime, default is by software version.

	* vwatch/uptimes.pl: Limit the length of the router description field.

	* vwatch/Makefile: Add the uptimes script.

2009-03-31  Havard Eidnes <he@uninett.no>

	* traffic/report/tail-stats.pl:
	Ensure that we undef variables used to keep track of how
	long we had read -- we might be processing more than one
	file, as directed by the -n option.

2009-03-18  Havard Eidnes <he@uninett.no>

	* traffic/cgi/Makefile: Add the top10.pl script.

	* traffic/cgi/top10.pl:
	Uhm, use the correct field numbers in the daily report.

2009-03-14  Havard Eidnes <he@uninett.no>

	* Makefile: Add a small script to check that no new variables have
	appeared in Makefile.inc.dist, since they need to be
	manually merged.

	* check-subst.pl:
	A small script to verify that there are no variables in
	Makefile.inc.dist which have not been picked up from Makefile.inc
	and put into subst.  This might happen if a new variable
	is added to Makefile.inc.dist.

2009-03-13  Havard Eidnes <he@uninett.no>

	* traffic/html/zoom-cur-top10.fig, traffic/html/zoom-cur-top10.png:
	Update to also show the pointers to the per-customer plots.

	* traffic/report/mk-top10.pl:
	Add the possibility to customize the text for the pointer to the
	navigation help image via a "middle" section in the html template
	file.

	* traffic/html/Makefile, traffic/html/top10-last.png,
	  traffic/html/zoom-cur-top10.fig, traffic/html/zoom-cur-top10.png:
	Add a picture showing the two navigation areas in the
	"show current top10" plots.

	* traffic/cgi/top10.pl:
	Add a pointer to an image displaying the various navigation areas.

	* traffic/html/Makefile: Install zoom-top10.png.

	* traffic/html/top10-2009--03-avg.png, traffic/html/zoom-top10.fig, 
	  traffic/html/zoom-top10.png:
	Add an image to explain the various zoom areas.

	* traffic/cgi/top10.pl:
	Add a CGI script to produce a "current top 10" histogram for
	the top 10 customers for a given time period.

	This depends on a number of optional features being turned on:

	 o Needs the list of customers and their logical ports in
	   %CUSTLIST% with all customers marked with the "cust" attribute
	 o Needs to run the "make rrd plots per customer" script, so that
	   the Apache module r-all can present the plots, pointed to by this
	   script.

	* traffic/report/mk-top10.pl:
	Add script to produce a "current top 10" plot for the customers.

	This (together with the top10 cgi script) depends on a number of
	optional features being turned on:

	 o Needs tail-stats to run periodically and leave result in
	   %REPORTSDIR%/load-now.txt
	 o Needs the list of customers and their logical ports in
	   %CUSTLIST% with all customers marked with the "cust" attribute
	 o Needs to run the "make rrd plots per customer" script

2009-03-09  Havard Eidnes <he@uninett.no>

	* traffic/common/read-hr-log.pl, traffic/common/read-raw-log.pl:
	Add some code to handle the changing of an the instance of a
	variable in the middle of a log, as might happen if you move
	an IP address from one interface to another.  This code skips
	computing a delta between the two instances, and instead uses
	the value for the new instance as a new baseline.

2009-02-23  Havard Eidnes <he@uninett.no>

	* ChangeLog: Update for 0.9.7.

	* Makefile: Bump to 0.9.7.

2009-02-04  Havard Eidnes <he@uninett.no>

	* tpoller/tpoller.tcl:
	Make an attempt at handling sysUpTime.0 counter wraparound
	in a semi-sensible way.  If new estimated uptime would be
	larger than 2^31-1, don't count it as a reboot event and instead
	indicate "uptime is as expected".

2009-01-31  Havard Eidnes <he@uninett.no>

	* zino/events.tcl:
	Uhm, the "add missing closed events" function should not touch
	events which are not closed(!)

2009-01-27  Havard Eidnes <he@uninett.no>

	* traffic/report/customer-ts.pl:
	Also save and restore %lastfilebase between invocations,
	so that read-5m-sum can correctly handle a move of a
	logical port name to a different interface.

2009-01-26  Havard Eidnes <he@uninett.no>

	* zino/events.tcl:
	It appears that sometimes zino manages to set some events to "closed"
	state without the events being added to the list of closed but not
	scavenged events.  Add a job run each hour which checks all events
	and adds any missing closed events to the list.

2009-01-22  Havard Eidnes <he@uninett.no>

	* traffic/report/tail-stats.pl:
	In the case where no data arrived since the last time, don't skip
	reporting for the port, but instead do a report based on the
	previously collected values.  This fixes the problem that the stats
	for some ports would be left out if you run this script more often
	than your slowest poll interval...

	* zino/status.tcl:
	If we could not poll the interface, don't proceed and try
	to use the variable which is now not set...

	* traffic/cgi/tbl-report.pl:
	Correct the computation of "Next" and "Previous" links
	when the incoming datespec is empty, meaning that yesterday's
	report is to be shown.
	Don't output a "Next" link (to a nonexistent report) when
	displaying yesterday's report.
	Correct XHTML document compliance.

2008-12-01  Havard Eidnes <he@uninett.no>

	* traffic/report/tail-stats.pl:
	Increase verbosity when given the -v option.

2008-11-27  Havard Eidnes <he@uninett.no>

	* traffic/report/tail-stats.pl:
	Correct typo in printf list in error message (use the right variable).

	* traffic/report/tail-stats.pl:
	Add some more verbosity under the -v option:
	output a line per day and name.

	* traffic/report/tail-stats.pl:
	Be a bit less verbose when both -r and -d are specified, and just
	ignore -r option in that case.
	Permit the specificaiton of more than one logical name via the -n
	option, by supporting a comma-separated list of names.

2008-11-17  Havard Eidnes <he@uninett.no>

	* zino/log.tcl:
	Close the channels where we could no longer log information.
	This was responsible for an FD leak in zino.

2008-11-13  Havard Eidnes <he@uninett.no>

	* traffic/cgi/load-map.pl:
	Reduce expiry time to 5 minutes when looking at "today".

2008-11-11  Havard Eidnes <he@uninett.no>

	* traffic/plot/plot-raw.pl:
	In plot_eerrs, use the correct SNMP variable names to compute
	the sum of OK + errored packets.

2008-10-22  Havard Eidnes <he@uninett.no>

	* ChangeLog: Record the changes for 0.9.6.

	* Makefile: Bump to version 0.9.6.

	* traffic/cgi/ex-png.pl:
	Properly handle the non-empty %HTMLPFX% case as well...

	* traffic/jobs/Makefile:
	Check for any remaining substitution patterns in config files, to
	prevent %TAILDELAY% from sneaking in unnoticed and un-substituted.

	* ritz/TODO:
	The Help -> About button has been implemented (a long time ago).

	* ritz/ui.tcl:
	Make yellow the default colour for events with "alert" severity.

	* ritz/sort.tcl:
	Introduce a new caseSeverity, "alert", between "alarm" and "warning".
	Use this to appropriately indicate severity of yellow chassis alarms
	as seen on Juniper boxes.

2008-10-02  Havard Eidnes <he@uninett.no>

	* emt/emt.tcl:
	Put a catch around the sourcing of the config file, to catch and
	report any errors which might occur.

2008-09-26  Havard Eidnes <he@uninett.no>

	* traffic/common/read-raw-log.pl:
	Instead of looking at the previous instance of a given variable (which
	may have been filtered out as part of the log compression), just look
	at the previous line, and if the time-difference is > 3600 and < 7200,
	let daylight savings compensation kick in.

	* traffic/cgi/ex-png.pl: Allow HTMLPFX to be empty.

2008-09-15  Havard Eidnes <he@uninett.no>

	* traffic/report/customer-ts.pl: Use substitution for perl interpreter.

2008-09-10  Havard Eidnes <he@uninett.no>

	* vwatch/cur-vers.pl: Add sort handling for JunOS routers.

2008-08-14  Havard Eidnes <he@uninett.no>

	* traffic/report/tail-stats.pl:
	Import a fix from another part of the code: enable proper octet
	counter detection when doing "today's" stats as well.
	Also, if there's no data, skip it.

2008-07-25  Havard Eidnes <he@uninett.no>

	* traffic/cgi/r-all.pl:
	Convert to using font specification compatible with the move
	to Pango/Cairo/Fontconfig in rrdtool 1.3.0.
	Also, add a font specification for the small plots.
	Untested...

2008-07-21  Havard Eidnes <he@uninett.no>

	* traffic/common/date.pl:
	Now that we're a bit more picky about $tm values,
	make "first in week" return the time of 00:00 the
	first day of the week, not 02:00 or 03:00 depending
	on whether DST is in effect.

	* traffic/common/date.pl:
	Don't use "1 minute after midnight", use instead "exactly midnight"
	when returning the base $tm for the day.

2008-06-25  Havard Eidnes <he@uninett.no>

	* vwatch/vw-daily.pl:
	Change subject of the mail to be more similar to the other messages
	sent on a nightly basis by zino.

2008-06-11  Havard Eidnes <he@uninett.no>

	* traffic/report/tail-stats.pl:
	Write report to an $opt_r.new file, rename to $opt_r after report is
	finished.

	* traffic/jobs/Makefile:
	Add a check that no remaining to-be-substituted pattern remains
	in the result file; exit otherwise.
	This because we lately introduced a new top-level Makefile.inc
	variable used in zino-config.pl, which if left un-substituted
	will cause the daily jobs to fail due to perl parse errors.

2008-06-09  Havard Eidnes <he@uninett.no>

	* traffic/report/tail-stats.pl:
	Replace use of "time" with $^T (script start time).
	Add the "maximum" round-robin archive to the rrd database.

	Log data values into the rrd database in bit/s, not Mbit/s;
	newer RRDtool versions don't have problems with values > 2^32.

	Fix it so that when we run just past midnight, we reach into the
	previous day to pick up the last data from that log.

	Pass the "date for time 0" to sub-scripts to eliminate ambiguity with
	hour-based timestamps.

	Add an -I option to unconditionally inialize the RRD database.

	* traffic/report/customer-ts.pl:
	In save_vars, make sure we save "computed and saved values" as well,
	by initializing $p to our current "root".
	During data processing, if we get delta_t=0, skip sample.

	Make two functions to save and merge back in saved values.  This is to
	fix problems which occur when you have data from many sources, and
	they are collected asynchronously, and a few samples spill into the
	"next" sample.  Saving a few samples lets us smooth over what would
	otherwise be a "ragged edge".

	Also introduce a configurable time-delay so that we stop reading data
	sources when "now - time-dalay" is found.  This was an earlier attempt
	at avoiding the problem fixed by the save+merge functions above, and
	may now actually be redudant.  However, "don't change something which
	works" will be the motto for now.

	Always save 2 samples worth of data and merge it back when we're
	re-run.

	* traffic/common/read-raw-log.pl: Fix a bug related to day roll-over.

	* traffic/common/read-5m-sum.pl:
	Remember mapping logical-port-name -> logging-file-name, and if it
	changes, we're probably looking at a different variable, so don't try
	to diff the two.
	Correct some issues having to do with day roll-over.
	Add some commented-out debugging code.
	Make sure we correctly compute $min_sample and $max_sample.

	* traffic/report/Makefile: Install mk-customer-index.pl as well.

	* traffic/report/mk-customer-index.pl:
	Script to create a combined "per-customer" html index file
	based on a description file (e.g. as used by customer-ts), and
	a template file.

2008-06-06  Havard Eidnes <he@uninett.no>

	* traffic/cgi/r-all.pl:
	Actually... Go back to emitting direct pointers to the images.  It
	turns out that even though we explicitly set an Expires: header, the
	client will fetch the images anyway, possibly with an if-modified-
	since header which we don't interpret or respond to.  Instead, let
	apache deal with that itself -- this reduces the traffic from the web
	server further.

2008-06-05  Havard Eidnes <he@uninett.no>

	* traffic/cgi/r-all.pl:
	It turns out that we can't use my() to share variables between the
	"main" script and it's subroutines when using mod_perl, because the
	outer script is being wrapped inside a subroutine, and..., well, it
	doesn't work.  Use our() instead.

	Turn off "redefine" warnings (these happen with all named subroutines
	with mod_perl).

	Use Apache2::RequestIO and pick up $r, so that we can use
	$r->sendfile() to send the image files.

	* traffic/cgi/r-all.pl: Re-do how we label the graphs.

2008-04-23  Havard Eidnes <he@uninett.no>

	* traffic/common/date.pl:
	Replace "time" with "$^T", so as to not skew results based
	on how long time the script has been running.

2008-04-18  Havard Eidnes <he@uninett.no>

	* traffic/plot/plot-raw.pl, traffic/plot/plot-hr.pl:
	Use the correct time_t for 00:00.

2008-04-17  Havard Eidnes <he@uninett.no>

	* traffic/report/customer-ts.pl:
	Add a feature to collect all the ports from a "category", expressed
	via a "select customers given their attributes/tags" expression.

	* traffic/report/customer-ts.pl:
	Convert to using the modularized version of conn-common.pl (Zino::conn).

	* traffic/jobs/extract-value.pl, traffic/plot/plot-hr.pl,
	  traffic/plot/plot-raw.pl, traffic/report/re-report-day.pl,
	  traffic/report/get-perc.pl, traffic/report/report-day.pl,
	  traffic/report/report-mon-sp.pl, traffic/report/tail-stats.pl:
	Adapt to the changed signature of read_log().

	* traffic/report/customer-ts.pl:
	Use the new interface to read_5m_sum(), to pass in a time-delay so as
	to ensure that we can collect all the samples which are part of a
	5-minute quantization.
	Handle midnight rollover a little better (hopefully!).

	* traffic/common/read-hr-log.pl:
	Accept an optional time_t for 00:00, though this code doesn't use it
	(yet).

	* traffic/common/conn.pm: Exported arrays need a % prefix.

	* traffic/common/Makefile: Fix typo.

	* traffic/common/read-raw-log.pl:
	Change the interface and get rid of hairy and wrong heuristics for
	handling day rollover.  Instead, accept a time_t for what's supposed
	to be 00:00 on "this" day, and an optional "time-delay" to stop
	reading when we've reached "now - time_delay".  This is in order
	to ease quantization into 5-minute intervals done by read_5m_sum().

	* traffic/common/read-5m-sum.pl:
	Compute the time_t corresponding to 00:00 on the given day,
	and pass it to read_log().
	Accept an optional "time-delay" argument, stop reading at
	now - time_delay, pass it also to read_log().

	* traffic/cgi/r-all.pl: Improve title of page showing one plot.

2008-04-14  Havard Eidnes <he@uninett.no>

	* traffic/cgi/r-all.pl:
	Make it possible to use our own modules, take advantage of this to
	display the full name of the connection.

	Fix positioning of the X-labels in order to make the plots easier to
	interpret.

	Introduce 3 new plots, max for day, week and month.
	Make it possible to produce "avg", "max", and "combined" plots,
	dictated by type.

	If image size is unknown (shared data has zeroed?), make sure we
	regenerate the plots so that the size is once again known.

	* Makefile.inc.dist: Add DESCFILE setting.

	* Makefile.inc.dist: Use server.nordu.net as the tacacs host example.

	* traffic/common/Makefile:
	Add instructions for installation of Zino modules.

	* traffic/common/conn.pm: Convert conn-common.pl into a module.

2008-04-07  Havard Eidnes <he@uninett.no>

	* traffic/report/tail-stats.pl:
	I *think* there should be no need to disable
	hour-23 handling anymore.

	* traffic/jobs/zino-config.pl: Add tail_delay.

	* Makefile.inc.dist: Add default setting for TAILDELAY.

	* traffic/common/date.pl: Use script beginning ($^T) instead of "time".

	* traffic/jobs/daily.pl: Minor modernization -- use my() and our().
	Split off the compression of yesterday's logs to ease the implementation
	of "tail-stat"-like programs.

	* traffic/jobs/Makefile: Add compress-data.pl.

	* traffic/jobs/compress-data.pl:
	Split out the "compress previous day's data" to a separate file,
	so that it can be run a little later in the day, so as to make
	it a little easier for "tail-stat"-like programs to handle log
	rollover.

	* traffic/doc/basic-inst.html: Note the need for a new crontab line.
	This documentation stuff badly needs an update.

	* traffic/jobs/Makefile: Add the onlyone.sh script, which uses shlock.

2008-03-31  Havard Eidnes <he@uninett.no>

	* traffic/common/read-raw-log.pl:
	Discard samples older than $lasttime{$v}.
	Adjust the latter at day roll-over to maintain "relative to 00:00"
	property.
	This should allow us to read the remainder of the log from "yesterday"
	without too many problems.

	* traffic/common/read-raw-log.pl:
	Don't mark "DST offset computed" during hour 23.
	Fixes mis-computation of DST offset when there's a log entry from
	yesterday in the data file.

2008-03-17  Havard Eidnes <he@uninett.no>

	* traffic/common/read-raw-log.pl:
	Add a cheesy workaround for "25 hour days" (as happens when we
	compensate for daylight saving time).

	* traffic/common/read-5m-sum.pl:
	Remember to undef %sample_time before each new round.
	Compensate %lasttime for daylight savings time for previous day,
	and when having looked at previous day.
	Instead of using the "global" $sample_time{$sno}, use the per-
	variable $sample_time{$v,$sno}.  If a sample got lost (it happens),
	this avoids a needless glitch.
	Skip over undefined samples.

	* traffic/common/read-raw-log.pl:
	Um, fix prototype errors, use numeric dates for comparison instead.

	* traffic/common/read-raw-log.pl:
	Improve logic for handling day and log rollover, where we may end up
	with a few samples from "yesterday", without seeing a sample from
	today, even though we look at today's log.

2008-03-12  Havard Eidnes <he@uninett.no>

	* traffic/cgi/r-all.pl: Y scale is now in bits/s.
	Use GPRINT, not PRINT to print into graph...

	* traffic/report/customer-ts.pl: Add a MAX round-robin archive.
	Report to rrdtool in bits/s, not Mbit/s, to avoid "k Mbit/s".

	* traffic/common/read-raw-log.pl:
	Don't just test for whether we've seen hour 0; samples may be missing.
	Instead, check for "any other hour than hour 23" (which could be
	samples from the previous day).

	* traffic/common/read-raw-log.pl: Combine a nested test + reindent.
	Improve handling of daylight savings time switchover.
	If we go back in time (switching to summertime), skip samples seen in
	the same hour as they are spurious and create noise.
	Also, when detecting DST shift, compensate for all variables, not just
	one...

	* traffic/cgi/r-all.pl:
	Emit headers specifying the plot period above each plot.
	Make another futile attempt at getting "last updated" into the plot.

	* traffic/cgi/r-all.pl: Introduce a plot showing 3 months back.
	Introduce max-value plotting, but only for a subset of the plots (the
	ones with finer resolution ends up being rather cluttered).
	Get rid of warnings / errors related to my() shadow declarations.

	* traffic/report/customer-ts.pl:
	Remove day rollover code from here; it's handled at a lower layer
	(read-raw-log.pl).

	Need to re-compute the "time in seconds since the epoch" for each day,
	so that daylight savings time changes are handled smoothly when we
	process a period longer than a single day.

	Make it possible to process data for more than one customer; separate
	customer short-names with comma in the -n option value.

	* traffic/common/read-raw-log.pl:
	Now that the day rollover handles at the end, we need to be a bit more
	careful about when we apply the DST rollover fixup.

	* traffic/common/read-raw-log.pl: Define another local variable.
	When we moved the "hour 23" handling, we need to also make an
	exception to the "trigger DST compensation" part of the code, or else
	just the first sample (the one in hour 23) would be read(!)

	* traffic/common/read-raw-log.pl:
	Move some code out from an inner loop.

	* traffic/common/read-raw-log.pl:
	Move the "hour 23 is previous day" handling to a place where we can be
	certain that we will see or have seen data for hour 0 the following
	day.  Should fix incremental log processing when looking at today's
	data and the hour is 23.

2008-03-11  Havard Eidnes <he@uninett.no>

	* traffic/cgi/r-all.pl:
	Allow a little more room for the values (when we pass 1k, we want the
	decimals included...), and add a space which makes more font choices
	result in aligned "Avg:" text.

	* traffic/jobs/onlyone.sh:
	Simple shell script wrapper using shlock to ensure that only one
	instance of a script / process runs at any one time.

	* traffic/common/read-5m-sum.pl:
	Instead of going to the next file if the file has shrunk, read it anew
	from the start instead.  However, avoid inspecting samples with a time
	we've already inspected.

2008-03-09  Havard Eidnes <he@uninett.no>

	* traffic/cgi/r-all.pl:
	Correct the time comparison for "is it new enough".
	Add some more parameter checking / error reporting.

2008-03-08  Havard Eidnes <he@uninett.no>

	* traffic/common/read-5m-sum.pl:
	If we ended up reading the entire day anyway (no longer seekable
	or data has been touched since it was initially logged), throw away
	samples up until the "last seen" point.

	* traffic/cgi/Makefile: Add the r-all.pl script.

	* traffic/cgi/r-all.pl:
	Commit a CGI script which can be used to present data from
	per-customer RRD databases.  Uses appropriate caching headers and
	image sizes (remembers sizes via shared memory), and avoids
	regenerating images if a sufficiently new one exists already.

	It should be possible to run this script under mod_perl, but
	that has so far not been tested.

	* traffic/report/customer-ts.pl:
	Add a help option (show usage and exit).
	Make it possible to process data for one customer for "today",
	i.e. when -d is left out.

	* Makefile.inc.dist: Fix WEBSRVR to point to NORDUnet.
	Introduce ISPNAME and RRDDIR, former is tweakable.

2008-03-07  Havard Eidnes <he@uninett.no>

	* traffic/jobs/config.pl: Replaced by zino-config.pl.

	* traffic/report/Makefile:
	Add customer-ts.pl -- customer tail statistics processing script,
	which is primarily used for sending data into RRD databases.

	* traffic/common/Makefile:
	Add conn-common.pl to process per-customer reports.

	* traffic/jobs/Makefile:
	Rename config.pl to zino-config.pl in order to avoid a name
	collision with a file installed earlier in @INC.

	* traffic/report/sel-report.pl:
	Rename config.pl to zino-config.pl to avoid name collision with
	one found earlier in @INC when a particular perl module is installed.

	* traffic/cgi/load-map.pl, traffic/jobs/daily.pl,
	  traffic/report/customer-ts.pl, traffic/report/tail-stats.pl,
	  vwatch/cur-vers.pl, vwatch/uptimes.pl:
	Rename config.pl to zino-config.pl to avoid conflict with one from
	an installed package...

	* traffic/jobs/zino-config.pl: Renamed from config.pl.

2008-03-06  Havard Eidnes <he@uninett.no>

	* traffic/common/read-5m-sum.pl: Declare $date as a global as well.
	Ensure that we only restore previous state in the two
	cases where it's required (and gives correct results):
	at log rollover close to midnight, or when repeatedly
	looking at data for "today".

2008-03-05  Havard Eidnes <he@uninett.no>

	* traffic/common/conn-common.pl:
	Fix a comment to accurately describe the globals this puts
	its data in.

	* traffic/common/utils.pl:
	Um, correct floor_int(-1), so that it doesn't return -2...

	* traffic/report/tail-stats.pl: Use our() to declare globals some more.
	Make convert_times() take an optional fourth argument: starting
	seconds in the epoch, same for flag_deviations() and process_data().
	Remove some more &today() assumptions, so that this script can
	be run on historical data.
	Add a gatewaying function into RRD databases, via the -R option
	which should point to a directory for the RRD databases.
	The create_rrd() function has hardwired parameters for the RRD
	databases we'll create; perhaps re-visit that later.
	Convert to requiring a date-spec as the -d value, and add handling
	so that we can process stats for more than one day (as many days
	as the date-spec specifies).
	Add a few more options (this script has too many already...):
	-v for some debugging output, -V outputs RRD updates as well.

	* traffic/report/customer-ts.pl: Declare more globals with our().
	Output some more progress information under -v.
	Don't unconditionally process values from sample 0,
	use the new $min_sample instead.
	There's now no need for a separate do_all_customers_today(),
	as the do_all_customers() function is sufficiently general.

	* traffic/common/read-raw-log.pl:
	Add some robustness, protecting against a bogus log file.
	Re-do how we compensate for the log rotation event by fixing up
	$firsttime{$v} -- only do the -24 subtraction after we've seen
	"hour 0".

	* traffic/common/read-5m-sum.pl:
	Changes after adaptation and debugging, so that this actually
	works as intended together with the new customer-plot script.
	Conditionally position the log file file before reading it,
	based on the value in $position{$base} (basename of log file),
	suitable for reading the log for today, and continuing where
	we left off the last time around.

	Correct a typo which messed up the continuation from the last
	session.
	Re-do how we calculate the starting point for the internal 5m
	clock we use to slice and sum the data.
	Clean up before and after, so no "ghost data" is left behind.
	Export $min_sample as the sample to start from (required for
	repeated reading of today's log data).

2008-03-04  Havard Eidnes <he@uninett.no>

	* traffic/report/customer-ts.pl:
	Die if a new save-file could not be created.
	Fix restore_vars() so that it actually does what was intended.
	Fix rrd database creation function to use correct variables.
	Add usage of restore_vars() and save_vars(), to save state
	between subsequent runs.

	* traffic/report/customer-ts.pl: Correct required file name.
	Convert the saved variables also to use references.
	Need to use %sample_secs in compute_basic_values()
	for the "is defined" test to work.
	Correct some format string botches.

	* traffic/report/customer-ts.pl:
	Convert save / restore routines to use a hash containing
	names and hash references.

	* traffic/report/customer-ts.pl:
	Commit the start of a script to do per-customer "tail-stats",
	primarily to feed data into RRD databases.

	* traffic/common/read-5m-sum.pl:
	Improve detection of wheter we are looking at the log file
	from the same date we read before, if not, start reading
	from the start.

	* traffic/common/read-5m-sum.pl:
	Do a simple replacement of local $date with $d.

	* traffic/common/conn-common.pl:
	Add a comment describing the interface / results.

	* traffic/common/read-5m-sum.pl:
	Add comment about more globals used to save/restore state.

	* traffic/common/read-5m-sum.pl:
	Restore and save position for each file in the global %position array.

2008-03-03  Havard Eidnes <he@uninett.no>

	* zinomon/Zino.pm:
	Do some more checking of OK result from login, avoid warning
	about un-initialized value in pattern match.

	* traffic/common/conn-common.pl: Initial version imported.

2008-03-01  Havard Eidnes <he@uninett.no>

	* traffic/common/date.pl: Remove $timezone -- it's apparently not used.
	Correct days_in_month() to account for leap years.

2008-02-27  Havard Eidnes <he@uninett.no>

	* traffic/report/tail-stats.pl:
	Correct the new save/restore parts to fix syntax errors
	and temporarily turn off "strict 'refs'", since we do
	symbolic references here.

	* traffic/report/tail-stats.pl:
	Save some more values between each run, so that the processing doesn't
	skip any samples.

2008-02-20  Havard Eidnes <he@uninett.no>

	* traffic/common/read-5m-sum.pl: Declare global variables using our().

	Use the globals %save_base, %save_lasttime, and %save_varnames to save
	and restore data when the same surrounding script reads data for
	multiple log files.  Use these to set up %lasttime and %base before
	reading the raw data log, to ensure that we don't lose any samples..

	Correctly handle the quantization into 5-minute intervals when data
	from the previous day is available.  Also handle "leftover" data from
	the previous day which didn't completely fill a 5-minute interval, and
	similarly leave the remaining data at EOF in $leftover{$line,$var}, so
	that this script can correctly stitch together data from multiple
	days, and not lose any samples.

	If the surrounding script terminates between subsequent runs (as would
	be the case for a script to update statistics in near-real-time), it
	ought to save and restore the %leftover array, and also the
	%save_base, %save_lasttime, and %save_varnames arrays mentioned above.

	* traffic/common/read-raw-log.pl:
	Point out that time stamps are a relative offset from 00:00 local time.
	Export a few more variables: %firsttime, %lasttime, and %dstcomp, the
	latter only for debugging.
	Declare global variables using our().

	Introduce automatic compensation for daylight savings time, so that we
	preserve a monotonically increasing time relative to 00:00 local time.
	This makes it possible to convert the time stamps to UTC without
	"hiccups" when entering or leaving daylight savings time.
	This only handles daylight savings time changes with 1 hour.
	This means that one day per year will appear to have 23 hours, while
	another will appear to have 25.

2008-02-04  Havard Eidnes <he@uninett.no>

	* zino/Makefile: Add the version.tcl file.

	* zino/server.tcl:
	Add a "version" command to display the running version of zino.

	* zino/bgp.tcl:
	We need a bgpAdminUp procedure, which notes when the admin state goes
	from "stop" to "start".  Call it in the appropriate place.

2008-01-31  Havard Eidnes <he@uninett.no>

	* ritz/ui.tcl:
	Allow the user to provide default settings of the View() array.

2008-01-30  Havard Eidnes <he@uninett.no>

	* ChangeLog: Final changes for 0.9.5.

2008-01-30  vegardv  <vegardv@uninett.no>

	* ritz/debian/changelog: New upstream version

2008-01-20  Havard Eidnes <he@uninett.no>

	* ChangeLog: Some more changes for 0.9.5.

2008-01-18  Havard Eidnes <he@uninett.no>

	* ChangeLog: Update for version 0.9.5.

	* Makefile: Bump version number to 0.9.5.

	* zino/jnx-alarm.tcl: Disable some debugging printout.

	* common/attrs.tcl: Add handling of "alarm" events.

	* emt/emt.tcl: Log case ID when rejecting due to priority threshold.

	* common/sort.tcl: Add some minimal handling of alarm events.

	* emt/emt.tcl:
	Add support for triggering messages on "alarm" event types.

	* ritz/summary.tcl: Correct length of "port" field.

	* zino/jnx-alarm.tcl: Be consistent in quoting.
	isJuniper() is indexed by router name; comply.
	Add some minor debugging output.

	* zino/status.tcl:
	Ensure that delay_factor == 0 makes the poll run in the first round.

	* zino/status.tcl: Use proper list notation.

	* zino/jnx-alarm.tcl: Terminate with a newline.

	* zino/Makefile: Add new juniper alarm module.

	* zino/load-mibs.tcl: Correctly spell the Juniper MIB file names.

	* mibs/Makefile:
	Add MIB files required to support the Juniper chassis alarm handling.

	* mibs/mib-jnx-chassis-alarm.txt: Juniper Chassis alarm MIB.

	* mibs/mib-jnx-smi.txt: Juniper SMI MIB module.

	* zino/load-mibs.tcl:
	Add MIBs required to support Juniper chassis alarms.

	* zino/bgp.tcl:
	Avoid using "local" variables in an SNMP callback script.  The
	callback is evaluated in the global context(!)

	* zino/status.tcl:
	Add an isJuniper array, and init the new Juniper alarm handling
	module.

	* zino/jnx-alarm.tcl:
	Add a file to probe the number of chassis alarms in Juniper routers,
	and flag them with the new "alarm" event type.

	* ritz/summary.tcl, ritz/sort.tcl:
	Add support for the new "alarm" event type.

	* ritz/ui.tcl: Update copyright year.

2008-01-17  Havard Eidnes <he@uninett.no>

	* zinomon/zinomon.sh:
	Hm, correctly collect exit status from the perl script.

	* zinomon/zinomon.sh: Uhm, correct redirection.

	* zinomon/zinomon.sh:
	For some strange reason, use of brackets in messages to the SMS
	gateway ends up converting the entire message to be all made up of
	question marks!?!  Therefore, delete []'s from the data from
	zino-monitor.pl before sending onwards to the SMS gateway.

2008-01-07  Havard Eidnes <he@uninett.no>

	* conf-diff/checkin-configs.sh:
	Ensure tftp file remains group- and owner-writable (yes, this
	hardcodes the file permission setting).

2007-12-11  Havard Eidnes <he@uninett.no>

	* zino/flaps.tcl:
	Improve resiliency; set un-recorded port state to "unknown".

	* zino/bgp.tcl: Reenable some debugging.
	Ensure that we detect "up" state for events we've previously
	created events for.

2007-12-05  Havard Eidnes <he@uninett.no>

	* conf-diff/checkin-configs.sh:
	Add stderr redirection to the find commands.

	* conf-diff/checkin-configs.sh:
	Rip out the compensation for non-truncating-tftpds; people better
	fix their tftpds.
	Re-order the code so that we have a better chance of actually
	avoiding doing diffs of "hot" files.

2007-11-27  Havard Eidnes <he@uninett.no>

	* zinomon/zinomon.sh: Get rid of the useless cat processes.
	Use the correct name for the ritz config variable for potentially
	multiple phone numbers.

2007-11-26  Havard Eidnes <he@uninett.no>

	* zinomon/zinomon.sh: Add missing pipe symbol.

	* zinomon/zinomon.sh:
	Also send an alarm via e-mail if a problem is detected with zino.

	* zinomon/zinomon.sh:
	If message submission via sendmail for some reason should fail, emit
	the text on stderr and let cron send it to the owner of the cron job.

	* traffic/report/tail-stats.pl:
	Instruct sendmail to pick up recipients from stdin by giving the
	-t option.

	* ChangeLog: Another update, this time including ourselves...

	* ChangeLog: Update for the bump to 0.9.4.

	* zino/bgp.tcl, zino/status.tcl: Comment out debug log messages.

	* Makefile: Add zinomon subdir, bump to 0.9.4.

	* zinomon/Makefile: Make install output more readable.

	* zinomon/zinomon.sh: Correct usage of trap function.

	* zinomon/Makefile: Reorder.

	* zinomon/Makefile: Install zino-monitor.pl as well.

	* zinomon/zinomon.sh: Correct the name of the perl script.

	* zinomon/zinomon.sh:
	Shell script to monitor zino, to be run from cron.

	* zinomon/Makefile:
	Makefile to install the various bits of the zino monitor.

	* zinomon/emt-config.tcl:
	Script to output emt config as shell variables.

	* zinomon/Zino.pm, zinomon/zino-monitor.pl:
	Add a monitor of zino itself, version 0.02, to be run from cron.
	Wrapper script to check exit status and send SMS will be added.

2007-11-26  Havard Eidnes <he@uninett.no>

	* ChangeLog: Update for the bump to 0.9.4.

	* Makefile: Add zinomon subdir, bump to 0.9.4.

	* zino/bgp.tcl, zino/status.tcl: Comment out debug log messages.

	* zinomon/Makefile: Make install output more readable.

	* zinomon/zinomon.sh: Correct usage of trap function.

	* zinomon/Makefile: Reorder.

	* zinomon/Makefile: Install zino-monitor.pl as well.

	* zinomon/zinomon.sh: Correct the name of the perl script.

	* zinomon/zinomon.sh:
	Shell script to monitor zino, to be run from cron.

	* zinomon/Makefile:
	Makefile to install the various bits of the zino monitor.

	* zinomon/emt-config.tcl:
	Script to output emt config as shell variables.

	* zinomon/Zino.pm, zinomon/zino-monitor.pl:
	Add a monitor of zino itself, version 0.02, to be run from cron.
	Wrapper script to check exit status and send SMS will be added.

2007-11-22  Havard Eidnes <he@uninett.no>

	* ritz/summary.tcl:
	Fix the BGP summary strings to show admin-down instead of operational
	state when it's admin-down which is the cause.

2007-11-21  Havard Eidnes <he@uninett.no>

	* ritz/summary.tcl: Use admin-state of event, not of the peering.

	* ritz/sort.tcl: Mark non-open BGP events as simply "warning".

	* zino/start-zino.sh:
	Bump stack size resource limit, now that all polling is done
	asynchronously.  For some odd reason and even though we do our
	best to prevent it, activity may pile up consuming considerable
	stack resources.

	* zino/bgp.tcl:
	Only flag events if the state differs from what it was last time, or
	if we didn't know the prior state.

2007-11-20  Havard Eidnes <he@uninett.no>

	* zino/bgp.tcl:
	If the events already exist and the event being logged hasn't changed
	since the last call, just return since there's no change.

	Correct the index used for the BGP events.

	Correct the bug workarounds -- they should test the remote address and
	not the local one, since the latter is 0.0.0.0 when the peering is
	operatinally down.

	Move setting of persistent variables till after the tests.

	Add some debugging output, and one commented-out debug output for each
	row checked.

2007-11-19  Havard Eidnes <he@uninett.no>

	* zino/bgp.tcl: Log some more warnings if we return early.

2007-11-14  Havard Eidnes <he@uninett.no>

	* traffic/cgi/load-map.pl:
	There's apparently no need to prefix refresh timer with + and suffix
	with 's'.

	* traffic/cgi/load-map.pl: Subtract some slop for expiration times.

	* traffic/cgi/load-map.pl: Hm, need localtime in there...

	* traffic/cgi/load-map.pl: Add required parens.

	* traffic/cgi/load-map.pl:
	Add printout of when the base data was last updated if we are looking
	at data for "today".

	* traffic/cgi/load-map.pl:
	If looking at a map for "today", reduce document expiry, reduce image
	expiry, and add auto-refresh; so far all hardcoded to 15 minutes, and
	also make sure in-document heading contains a timestamp.

	* traffic/cgi/load-map.pl:
	Allow addition of a pointer to data for "today".

	* traffic/report/sel-report.pl: Explicitly print values with %f.

	* traffic/report/sel-report.pl:
	Correct directory name in default file name.

	* traffic/report/sel-report.pl: Make failure to read file clear.

	* traffic/report/sel-report.pl:
	Make it possible to use the report generated by running
	   tail-stats -r <filename>
	as a data source, to allow reporting of current traffic
	load.  Default filename to $TOP/reports/load-now.txt.

2007-11-13  Havard Eidnes <he@uninett.no>

	* traffic/report/tail-stats.pl:
	Improve comment for format of "load now" file.
	Ignore failure to unlink the $opt_r file.

2007-11-07  Havard Eidnes <he@uninett.no>

	* traffic/report/get-5m-perc.pl:
	Print percentage value exactly as given.

2007-09-25  Havard Eidnes <he@uninett.no>

	* vwatch/pretty-ios.pl:
	Add some pretty-printing for HP ProCurve switches.

2007-09-23  Havard Eidnes <he@uninett.no>

	* conf-diff/checkin-configs.sh: Also skip over any zero-sized files.

2007-09-17  Havard Eidnes <he@uninett.no>

	* traffic/report/get-5m-perc.pl:
	Add a -v(erbose) option: print out all discarded measurement
	values as a verification.

	* traffic/report/get-5m-perc.pl:
	Add -M option to report in Mbit/s instead of kbit/s.
	Make a few fields (name and numbers) into fixed-length fields.
	Shorten some of the text to accomodate the other longer fields.

	* traffic/report/get-5m-perc.pl:
	Allow -N option to override name presented in report.

	* zino/status.tcl:
	Correct one more instance of use of "local" variables in
	an SNMP callback.  These don't really work reliably because
	they end up as globals and are then subject to a race condition.

2007-09-14  Havard Eidnes <he@uninett.no>

	* mibs/Makefile: Add the recently added MIBs.

	* zino/load-mibs.tcl: Load the new MIBs.

	* mibs/CISCO-PRODUCTS-MIB.my: Update to newer version of this MIB.

	* mibs/BRIDGE-MIB.my, mibs/CISCO-BGP4-MIB.my,
	  mibs/CISCO-ENVMON-MIB.my, mibs/CISCO-MAC-NOTIFICATION-MIB.my,
	  mibs/CISCO-PIM-MIB.my, mibs/CISCO-VTP-MIB.my, mibs/ENTITY-MIB.my,
	  mibs/INET-ADDRESS-MIB.my, mibs/MSDP-MIB.my, mibs/PIM-MIB.my:
	Add a few more MIBs for variables so that we can decode the traps
	we usually see in our network.

	* zino/status.tcl:
	Adjust timers so that there is a minimum of 3 seconds between
	successively started poll operations.

	Only poll BGP once every 5 rounds.

	Leave some debug logging in for now.

2007-09-12  Havard Eidnes <he@uninett.no>

	* TODO: Add items for "detect removed BGP peers" and "detect duplicate
	logical port names in your network".

2007-09-06  Havard Eidnes <he@uninett.no>

	* zino/status.tcl: Comment out some debug logging.

	* zino/trap.tcl: Add the SNMPv2 BGP backward transition notification.
	Ignore it for now.

	* zino/zino-main.tcl:
	Use the poll scheduler instead of polling directly.

	* zino/bgp.tcl:
	Mark the last activity in the table walker for the benefit of the poll
	scheduler / rate limiter.

	* zino/status.tcl:
	Insert a scheduler between the config file + job scheduler and the
	actual router polls.  This ensures that router polls are better
	spread out (prevents "clustering" of polls) and that there is a
	minimum of 60 seconds between the last activity towards a router
	and the start of a new poll.

	To this end, each of the table walkers which are done as part of
	the router poll have been instrumented to mark when the last
	activity was being done.

	Also, replace use of regexp with simple string equality comparison
	when that is sufficient.

	Since SNMP callbacks are evaluated in the global context(!), make
	sure to invoke a procedure to handle things which might require the
	use of local variables.  Such variables directly in the SNMP callback
	will end up as global variables(!), and this can mess things up
	royally if the variable values are used to direct the polling.

2007-09-05  Havard Eidnes <he@uninett.no>

	* zino/trap.tcl: Log a warning if ignoring a trap.

	* zino/trap.tcl: Ignore errors translating address->handle.
	We may be in the start-up phase.

	* zino/status.tcl: Use another variable name for saving the uptime,
	there's apparently a conflict.

	* zino/trap.tcl: Don't log BGP backward transition traps.

	* zino/status.tcl: Fix a mis-balanced bracket.

	* zino/trap.tcl: Adapt to simplified checkResponse interface.

	* zino/status.tcl: Reinstate checkResponse, but simplify its interface.

	* zino/status.tcl:
	Replace the synchronous SNMP operations with asynchronous
	operations.  This should fix issues where a larger portion
	of devices are unreachable, and prevent the zino process
	from becoming unresponsive as a consequence.

2007-09-03  Havard Eidnes <he@uninett.no>

	* zino/status.tcl: Ignore errors in unsetting responseCheckInProgress.

2007-08-30  Havard Eidnes <he@uninett.no>

	* zino/Makefile, zino/bgp.tcl, zino/status.tcl:
	Add checking of certain events related to external BGP:

	 o If a peer reset the connection, flag an event
	 o If a session has been turned off, flag an event
	 o If a peer is down, and the monitored system's uptime is > 10 min,
	   flag an event.

	Internal sessions will not cause any events -- monitoring of an
	iBGP full mesh (not the only way to deploy iBGP) should probably
	be done by another tool, and less frequently, e.g. once per day,
	to catch mis-configuration.

	* zino/trap.tcl:
	Add proper handling of SNMPv1 trap messages; tweak to eliminate
	the .0 apparently inserted in snmpTrapOID.

2007-08-29  Vegard Vesterheim <vegardv@uninett.no>

	* ritz/debian/changelog, ritz/debian/rules: Ny debian-pakking

2007-08-29  Havard Eidnes <he@uninett.no>

	* ChangeLog: ...and the final update for 0.9.3.

	* ChangeLog: Update for bump to 0.9.3.

	* Makefile: Bump version to 0.9.3.

	* ritz/Makefile, ritz/sort.tcl, ritz/summary.tcl, ritz/ui.tcl:
	Several changes to ritz:
	 o Add support for BGP events to ritz.
	 o Make ritz more quiet if some attributes are missing.
	 o Fix the Age sorting order; newer comes first.
	 o Make ritz ignore unknown event types (log a warning to stderr)
	   instead of flagging it as an error, requiring an OK to a popup.
	   (Should perhaps make a dummy summary line, that may come next.)
	 o Update copyright years.
	 o Change from snmpnetstat to justnetstat.
	 o Change the background & foreground colours for attribute value
	   display, to enhance readability.

	* mibs/BGP4-MIB.my: Update the BGP4 MIB to that found in RFC 4273.

	* ritz/ui.tcl: Make attribute display more readable.

	* conf-diff/post-diff.sh:
	Always remove the list of files checked, so that we don't end
	up with a long list of files if there were actually no config
	changes, but the files were still updated/written.

	* ritz/sort.tcl: Quiet ritz if certain attributes are not present.
	Fix the order for age comparison.

	* ritz/Makefile: Make the install target depend on an updated script.

	* mibs/BGP4-MIB.my:
	Update the BGP4 MIB to the version published as RFC 4273.

2007-08-29  Havard Eidnes <he@uninett.no>

	* ChangeLog: Update for bump to 0.9.3.

	* Makefile: Bump version to 0.9.3.

	* ritz/Makefile, ritz/sort.tcl, ritz/summary.tcl, ritz/ui.tcl:
	Several changes to ritz:
	 o Add support for BGP events to ritz.
	 o Make ritz more quiet if some attributes are missing.
	 o Fix the Age sorting order; newer comes first.
	 o Make ritz ignore unknown event types (log a warning to stderr)
	   instead of flagging it as an error, requiring an OK to a popup.
	   (Should perhaps make a dummy summary line, that may come next.)
	 o Update copyright years.
	 o Change from snmpnetstat to justnetstat.
	 o Change the background & foreground colours for attribute value
	   display, to enhance readability.

	* mibs/BGP4-MIB.my: Update the BGP4 MIB to that found in RFC 4273.

2007-08-19  Havard Eidnes <he@uninett.no>

	* conf-diff/checkin-configs.sh:
	In the inner loop, skip over "hot files" (files being written),
	and pick those up on the successive iterations of the outer loop.

	Also add a comment explaining the presence of the handling of cisco
	configs with tftpds which don't truncate their output.

2007-07-16  Havard Eidnes <he@uninett.no>

	* traffic/common/read-5m-sum.pl:
	Add support to reverse the in/out byte and packet counters by
	appending :r to the logical port name(s).

2007-06-20  Jarle Greipsland  <jarle@uninett.no>

	* emt/emt.tcl:
	"Hotfix" to ensure emt doesn't crash.  The new variable
	emt_alarm_phones was being used without having been initialized.

2007-04-11  Havard Eidnes <he@uninett.no>

	* traffic/cgi/load-map.pl:
	Ensure that we always emit an alt= attribute with an <area>.
	This brings us XHTML 1.0 compliance for this document too.

	* traffic/cgi/plot-all.pl:
	Ensure all shape attribute values are quoted.

2007-04-04  Havard Eidnes <he@uninett.no>

	* emt/emt.tcl: Ugh, fix syntax error -- this is not sh...

2007-03-22  Havard Eidnes <he@uninett.no>

	* emt/emt.tcl:
	Re-read config files before each run where alerts are being sent
	out.  This allows one to change configuration in-flight, e.g. to
	re-direct alarms to a different destination.

2007-03-21  Havard Eidnes <he@uninett.no>

	* emt/emt.tcl:
	Add support to send short alarm messages to more than one
	phone number using the "sms phoneno" subject convention
	which our SMS gateway uses.

2007-03-19  Havard Eidnes <he@uninett.no>

	* traffic/db/update-dbs.pl:
	Fix a problem where a $1 was being inadvertently overwritten;
	the symptom was that logical port names with spaces in their
	names would not be recorded.
	Make some if-bodies multi-line, to allow breakpoints to be set while
	debugging the above problem.

2007-03-14  Havard Eidnes <he@uninett.no>

	* TODO: Add two more wishlist items.

2007-02-28  Havard Eidnes <he@uninett.no>

	* traffic/cgi/list-ports.pl, traffic/cgi/tbl-report.pl,
	  traffic/html/tbl-report.html, traffic/html/intf-load.html, 
	  traffic/cgi/plot-all.pl:
	Make this or the output valid XHTML 1.0 Transitional.

	* traffic/db/update-dbs.pl:
	Make sure to re-open closed entries when they re-appear.

	* traffic/db/update-dbs.pl:
	Allow either ", " or ",_" as field separator, to cater
	for e.g. D-Link switches which can't have " " in their
	description fields.

	Correct a cut&paste error which appears to have ended up
	closing the wrong entry...

	* traffic/cgi/load-map.pl:
	Convert this so that it emits a valid XHTML 1.0 document.
	Changes:
	 - area shape values must be quoted
	 - area elements must be closed with " />"
	 - the paragraph at the end must be closed with </p>
	 - use the id attribute (too) in the <map> element

2007-02-27  Havard Eidnes <he@uninett.no>

	* emt/emt.tcl: Hum, add missing square brackets.

2007-02-15  Havard Eidnes <he@uninett.no>

	* traffic/cgi/load-map.pl:
	Reverse the order in which the image map elements are emitted,
	so that the that when two lines overlap, the drawing layering
	matches up with the image-map layering.

2007-02-09  Havard Eidnes <he@uninett.no>

	* ChangeLog: Updated ChangeLog for new version bump.

	* Makefile: Bump version to 0.9.2.

	* ritz/sort.tcl:
	Um, make sure we use the proper colour for "ignored" events.

	* ritz/ui.tcl: Add support for the "ignored" event state.
	Colour such events with a light blue colour.

	* ritz/sort.tcl: Add support for "ignored" events.
	While sorting, consider events marked as such as "normal".

	* emt/emt.tcl: Add support for the "ignored" event state;
	don't send alarms for such events.

2007-02-07  Vegard Vesterheim  <vegardv@uninett.no>

	* ritz/debian/changelog, ritz/debian/control: Oppdatert
	versjonsnummer

	* ritz/debian/patches/patch01, ritz/debian/changelog,
	ritz/debian/rules:
	New upstream version

2007-01-30  Havard Eidnes <he@uninett.no>

	* traffic/cgi/load-map.pl: Handle polylines with more than 8
	vertexes.

2007-01-29  Havard Eidnes <he@uninett.no>

	* ritz/attrs.tcl, common/attrs.tcl:
	Make "lowerLayerDown" be synonymous with "down".

2007-01-28  Havard Eidnes <he@uninett.no>

	* emt/emt.tcl: Even though we report more than 3 events, don't
	skip the history log -- there could be manually added info there
	relevant for the other NOC personnel.

	* emt/emt.tcl: Actually chop off the last newline in order to find
	the last line of the log.

	* emt/test-emt.tcl: ...and e-mail address.

	* emt/test-emt.tcl: Change tclsh path.

2007-01-19  Havard Eidnes <he@uninett.no>

	* ritz/ui.tcl:
	Try to add some robustness for a problem which appears to have
	its root in zino itself, where some events can be created without
	the "type" attribute(!)

2007-01-18  Havard Eidnes <he@uninett.no>

	* emt/emt.tcl:
	Add some robustness to cater for a problem which probably
	has its roots inside zino itself, in that apparently some
	events can be created without the "type" attribute (!).
	Catch the resulting exception, and just ignore that event
	for now, and let the rest be checked & reported.

2006-11-20  Havard Eidnes <he@uninett.no>

	* ChangeLog: Some more folding of long lines.

	* ChangeLog: Fold a line.

	* ChangeLog: Update ChangeLog, computed from CVS messages.

	* Makefile: Bump version number to 0.9.1.

2006-11-20  Havard Eidnes <he@uninett.no>

	* Makefile: Bump version number to 0.9.1.

2006-11-16  Havard Eidnes <he@uninett.no>

	* conf-diff/checkin-configs.sh:
	If there is no change, don't output a heading.

2006-10-24  Havard Eidnes <he@uninett.no>

	* vwatch/cur-vers.pl, vwatch/pretty-ios.pl:
	Add handling of JunOS version strings.

2006-10-11  Havard Eidnes <he@uninett.no>

	* traffic/cgi/load-map.pl:
	Ignore one more attribute output by newer versions of tgif.

2006-10-09  Havard Eidnes <he@uninett.no>

	* ritz/Makefile, Makefile.inc.dist:
	Instead of using tixwish, use wish instead and require Tix instead.
	Hint from Kolbjorn -- tixwish is apparently gone in later versions
	of Tk.

2006-05-26  Vegard Vesterheim  <vegardv@uninett.no>

	* ritz/debian/README, ritz/debian/changelog, ritz/debian/control,
	  ritz/debian/copyright, ritz/debian/patches/patch01,
	  ritz/debian/rules:
	Debinaizing ritz

2006-05-26  Havard Eidnes <he@uninett.no>

	* vwatch/uptimes.pl:
	Add a script which in addition to current versions also displays
	uptimes.

2006-05-17  Havard Eidnes <he@uninett.no>

	* traffic/db/update-close.pl: Ensure we can reach common library files.
	Shorten debug output so more likely to fit in 80 coloumns.
	Don't update if we end up not changing close date.

	* traffic/db/update-close.pl: Um, need to point to databases.

	* traffic/db/update-close.pl: Fix small typo in comment.

	* traffic/db/update-close.pl:
	Add script to update the close date of entries after introduction
	of the "close entries" code in update-dbs.pl.

2006-05-12  Havard Eidnes <he@uninett.no>

	* traffic/db/update-dbs.pl:
	Add code to detect and close entries which can no longer be found
	after the scan of monitored devices.  This inspects the logging file
	names to extract the poll-device name, and that device must have
	responded to snmp for the closing to be done.  Devices which are
	no longer monitored will have their corresponding entries closed.

	Also reduce the output level under -d -- now we don't emit a line for
	each port/file checked.

2006-02-17  Havard Eidnes <he@uninett.no>

	* tpoller/tpoller.tcl: Remove debugging code.

	* tpoller/tpoller.tcl: Don't try to extract mib name from an empty oid.

	* tpoller/tpoller.tcl: Typo correction.

	* tpoller/tpoller.tcl:
	Catch errors from getAddrList and getIfList (e.g. time-outs), and log
	instead of erroring out.
	Give more debug information when ignoring info for ifIndex values we've
	not seen anything about.

	* tpoller/tpoller.tcl:
	If we don't have descr or admin-status for a port, no point in later
	trying to check descr against e.g. ignorepat and fall over because
	it's not defined.  Instead, exit early from logVars.

2006-01-24  Havard Eidnes <he@uninett.no>

	* traffic/cgi/tbl-report.pl, traffic/report/report-day.pl:
	Expand error reports to use 3 decimals instead of 2.

2006-01-02  Havard Eidnes <he@uninett.no>

	* vwatch/Makefile: Add the uptimes script.

	* vwatch/vwatch.tcl:
	Save the uptime of each device on each round, for later reporting.

	* vwatch/vwatch-main.tcl: Set uptime_dir.

	* vwatch/vw-daily.pl: Also create uptime subdirectory.

2005-12-08  Havard Eidnes <he@uninett.no>

	* ChangeLog: update for version 0.9.

2005-10-14  Havard Eidnes <he@uninett.no>

	* traffic/report/re-report-day.pl: Require utils.pl for floor_int().
	Change "local" to "my", as that's quite sufficient.
	Avoid reuse/overwrite of the $date global variable.

	* traffic/cgi/tbl-report.pl:
	Make most of the coloumn headings clickable, to change sort criteria.

	* traffic/cgi/tbl-report.pl:
	Widen coloumns in traffic report, so that values for 1-9.99Gbit/s fits.

2005-09-15  Havard Eidnes <he@uninett.no>

	* vwatch/vwatch.tcl: Ignore errors unsetting uptime in destroyDev.

2005-09-14  Havard Eidnes <he@uninett.no>

	* zino/status.tcl: Ignore errors when removing "delayed check" stuff.

2005-09-05  Havard Eidnes <he@uninett.no>

	* traffic/cgi/load-map.pl: Add missing string concatenation op.

	* traffic/cgi/load-map.pl:
	Add support for reversing xx.yy-<n> patterns.

2005-08-24  Havard Eidnes <he@uninett.no>

	* vwatch/Makefile: vwatch is also dependent on the included sources.

2005-08-04  Havard Eidnes <he@uninett.no>

	* vwatch/vw-day-report.pl: Shorten even more (get rid of "boots" text).

2005-07-29  Havard Eidnes <he@uninett.no>

	* vwatch/vw-day-report.pl:
	Make shorter: restarts -> boots, to better fit within 80 coloumns.

2005-07-03  Havard Eidnes <he@uninett.no>

	* zino/status.tcl:
	Fix typo, need :: and not : between package and function name.

2005-04-12  Havard Eidnes <he@uninett.no>

	* README: Add dependency on TclX.

	* zino/server.tcl:
	Add dependency on tclX, and use fcntl to turn on socket keepalives
	for client connections.

2005-03-03  Havard Eidnes <he@uninett.no>

	* tpoller/tpoller.tcl, zino/flaps.tcl, zino/read-cf.tcl, zino/status.tcl, common/config.tcl:
	Implement "watchpat" configuration option.

2005-01-12  Havard Eidnes <he@uninett.no>

	* traffic/db/update-dbs.pl:
	Set timeout on SNMPNETSTAT invocation to 30 seconds, up from the
	default of 5.  This to work around Cisco ONS 15454 devices and their
	broken SNMP agents which sometimes take eons to reply.

2004-12-09  Havard Eidnes <he@uninett.no>

	* traffic/plot/plot-raw.pl, traffic/plot/plot-hr.pl,
	  traffic/plot/plot-5m.pl:
	Don't print question marks to plot files -- confuses gnuplot.

2004-12-03  Havard Eidnes <he@uninett.no>

	* traffic/plot/plot-raw.pl:
	Correct loop variable used in plot_eerrs.  We now again get Cisco-
	specific "ethernet errors" type plots.

2004-11-26  Havard Eidnes <he@uninett.no>

	* traffic/plot/plot-5m.pl, traffic/plot/plot-hr.pl,
	  traffic/plot/plot-raw.pl:
	Don't print "? ? ?" as error values if it's not plotting for a Cisco
	router -- print "0 0 0" instead.  This makes error plots work for
	Juniper	routers.

2004-11-12  vegardv  <vegardv@uninett.no>

	* zino/status.tcl: Fjernet unødig loggmelding

2004-11-02  Havard Eidnes <he@uninett.no>

	* Makefile, ChangeLog: Mark what we have now as version 0.8.

2004-08-25  Havard Eidnes <he@uninett.no>

	* traffic/common/plot.pl:
	Remove the "color" from the png device init string.
	Newer gnuplot doesn't like it.

2004-08-23  Havard Eidnes <he@uninett.no>

	* traffic/report/tail-stats.pl:
	Before deviding by stddev, ensure that stddev is > 1e-100, not just
	different from 0, to avoid getting NaN as a result, leading to a panic
	in perl (observed stddev was 9.9e-324).

2004-07-21  Havard Eidnes <he@uninett.no>

	* conf-diff/checkin-configs.sh:
	Use symbolic signal names, and add handling of HUP and TERM.

2004-06-09  Havard Eidnes <he@uninett.no>

	* traffic/site/Makefile.inc.dist:
	Move install / beforeinstall targets to Makefile.

	* traffic/site/Makefile:
	Only install changed files or files not present in target dir.

2004-03-19  Havard Eidnes <he@uninett.no>

	* traffic/common/read-hr-log.pl, traffic/common/read-raw-log.pl:
	If there is a quiet period before the Reboot line is logged,
	it would be discarded because $lasttime was too far into the
	past.  Instead, compare to the actual timestamp of the Reboot
	log message.

2004-03-11  Havard Eidnes <he@uninett.no>

	* ChangeLog: Update for version 0.7.

	* Makefile: Mark what we have now as version 0.7.

2004-03-11  Havard Eidnes <he@uninett.no>

	* Makefile, ChangeLog: Mark what we have now as version 0.8.

2004-08-25  Havard Eidnes <he@uninett.no>

	* traffic/common/plot.pl:
	Remove the "color" from the png device init string.
	Newer gnuplot doesn't like it.

2004-08-23  Havard Eidnes <he@uninett.no>

	* traffic/report/tail-stats.pl:
	Before dividing by stddev, ensure that stddev is > 1e-100, not just
	different from 0, to avoid getting NaN as a result, leading to a panic
	in perl (observed stddev was 9.9e-324).

2004-07-21  Havard Eidnes <he@uninett.no>

	* conf-diff/checkin-configs.sh:
	Use symbolic signal names, and add handling of HUP and TERM.

2004-06-09  Havard Eidnes <he@uninett.no>

	* traffic/site/Makefile.inc.dist:
	Move install / beforeinstall targets to Makefile.

	* traffic/site/Makefile:
	Only install changed files or files not present in target dir.

2004-03-19  Havard Eidnes <he@uninett.no>

	* traffic/common/read-hr-log.pl, traffic/common/read-raw-log.pl:
	If there is a quiet period before the Reboot line is logged,
	it would be discarded because $lasttime was too far into the
	past.  Instead, compare to the actual timestamp of the Reboot
	log message.

2004-03-11  Havard Eidnes <he@uninett.no>

	* Makefile: Mark what we have now as version 0.7.

2004-02-26  Havard Eidnes <he@uninett.no>

	* traffic/report/tail-stats.pl:
	Actually make writing of report file optional.

	* traffic/report/tail-stats.pl:
	Open report file in outer loop, pass reference inwards.

	* traffic/report/tail-stats.pl:
	Avoid taking sqrt of negative numbers when computing
	stddev.  This isn't supposed to happen, but, well, it did.

	* traffic/Makefile:
	Create tail-save/ subdirectory for tail-stats.

	* traffic/report/tail-stats.pl: Fix typo.

	* traffic/report/Makefile:
	Add installation of tail-stats script.

	* traffic/report/tail-stats.pl:
	Make "installable" by using %% substitutions.
	Make it necessary to specify header mail from address when sending
	mail.  Add usage() and use of same.

2004-02-01  Havard Eidnes <he@uninett.no>

	* traffic/report/tail-stats.pl:
	Let -i ignore unnamed ports also in the stat deviation calculation.
	Avoid a possible division by zero.
	Use sprintf, not printf when collecting up a string...
	Correct a few syntax errors related to printf to FDs.
	Collect up statistics deviation report for all files before sending
	mail (if that's what we're asked to do).

2004-01-27  Havard Eidnes <he@uninett.no>

	* traffic/report/tail-stats.pl: Add three new options:
	 -r <outfile>	put report about "latest load" in this file
	 -i		suppress/ignore logical ports with no name in report
	 -m <mailto>	address to send stats deviation report to

2004-01-14  Havard Eidnes <he@uninett.no>

	* traffic/report/tail-stats.pl:
	Drop attempt at using year in time string -- it's going
	to be too wide anyway.

2004-01-13  Havard Eidnes <he@uninett.no>

	* traffic/report/tail-stats.pl:
	Add a comment describing the options.

	* traffic/report/tail-stats.pl:
	This is a version which can post-process old files,
	but has not been re-tested in the "tail" mode.
	This now has some tunable statistical machinery to
	detect major deviations in traffic patterns.

	* traffic/common/read-raw-log.pl:
	Only set $date in the inner loop after hour 00 has been seen.

2003-12-26  Havard Eidnes <he@uninett.no>

	* traffic/report/tail-stats.pl: Rename a few functions.

2003-12-09  Havard Eidnes <he@uninett.no>

	* emt/emt.tcl:
	Complete the former -- remove comments which removed
	the sending of the original e-mail messages...

2003-12-08  vegardv  <vegardv@uninett.no>

	* emt/emt.tcl:
	Added a new option for sending brief alarm messages to another
	channel, e.g. via SMS.	

2003-11-06  Havard Eidnes <he@uninett.no>

	* traffic/report/tail-stats.pl:
	Add a comment to the output format.

	* traffic/report/tail-stats.pl:
	Version which works and could replace the "lastnu" script.

2003-11-04  Havard Eidnes <he@uninett.no>

	* traffic/report/report-day.pl: cat_and_base() moved out.

	* traffic/common/read-raw-log.pl:
	Make "hour 23" handling optional.

	* traffic/common/search.pl: Put cat_and_base() here.

	* traffic/report/tail-stats.pl:
	The start of a "tail-stats" script.

2003-10-08  Havard Eidnes <he@uninett.no>

	* zino/trap.tcl: Comment out the trap debugging again.

	* zino/trap.tcl:
	Simplify and make the debug output more explicit.

	* zino/trap.tcl:
	Enable trap debugging code again, printing out varbind list.
	Compensate for missing ifDescr in Juniper trap messages, instead
	derive from ifIndex and existing portToIfDescr table.

2003-07-28  Havard Eidnes <he@uninett.no>

	* traffic/cgi/load-map.pl:
	Add ignore of new "dont_reencode" one-line TGIF directive.

2003-07-11  Havard Eidnes <he@uninett.no>

	* traffic/db/update-dbs.pl:
	Yet another RE correction (+ instead of *).

	* traffic/db/update-dbs.pl:
	Correct typo -- missing / terminating RE.

2003-07-10  Havard Eidnes <he@uninett.no>

	* traffic/db/update-dbs.pl:
	Tolerate, but warn against trailing whitespace.

2003-05-26  Havard Eidnes <he@uninett.no>

	* TODO: One more item: count input drops?

2003-05-21  Havard Eidnes <he@uninett.no>

	* traffic/common/read-raw-log.pl:
	Fix comment to point out use for $base{$v}.

	* traffic/common/read-hr-log.pl, traffic/common/read-raw-log.pl:
	Do 32-bit counter wraparound also for non-octet counters.

2003-04-28  Havard Eidnes <he@uninett.no>

	* vwatch/pretty-ios.pl:
	Refine version string matching pattern, so as to only match on a
	single line.

	* vwatch/cur-vers.pl:
	Resort to simple string comparison if the "intelligent" version
	doesn't work.  Makes routers appear in alphabetical order when
	they have the same software version.

	* TODO: Legg til innslag om DoS-deteksjon.

2002-12-06  Havard Eidnes <he@uninett.no>

	* mibs/Makefile: Allow clean (does nothing here yet).

2002-10-30  Havard Eidnes <he@uninett.no>

	* ChangeLog: Minor tweak, remove hostname portion.

	* ChangeLog: Update for marking this as 0.6.1.

	* Makefile: Minor version bump to 0.6.1.

2002-10-30  Havard Eidnes <he@uninett.no>

	* ChangeLog: Update for marking this as 0.6.1.

	* Makefile: Minor version bump to 0.6.1.

2002-10-23  Havard Eidnes <he@uninett.no>

	* traffic/cgi/load-map.pl:
	Anchor the matches when reversing the line name, so the entire
	name gets included in the "reverse" version (!).

2002-10-23  Havard Eidnes <he@uninett.no>

	* traffic/cgi/load-map.pl:
	Anchor the matches when reversing the line name, so the entire
	name gets included in the "reverse" version (!).

2002-10-22  Havard Eidnes <he@uninett.no>

	* traffic/cgi/load-map.pl:
	Try the "simple swap" before taking numerals into account.

2002-09-13  Havard Eidnes <he@uninett.no>

	* traffic/cgi/load-map.pl:
	Fix a fencepost error which occurred when a two-segment line
	was exactly divided in half.

2002-08-22  Havard Eidnes <he@uninett.no>

	* TODO:
	Should zero out old values in mappng tables right before inserting
	new.

2002-08-21  Havard Eidnes <he@uninett.no>

	* ChangeLog: Update for marking this as 0.6.

	* Makefile: Bump to version 0.6.

	* ChangeLog: Computed ChangeLog based on CVS log messages with emacs'
	M-x vc-update-change-log.

2002-08-21  Havard Eidnes <he@uninett.no>

	* Makefile: Bump to version 0.6.

	* ChangeLog:
	Computed ChangeLog based on CVS log messages with emacs'
	M-x vc-update-change-log.

2002-08-12  Havard Eidnes <he@uninett.no>

	* traffic/plot/Makefile:
	Install plot-5m.pl too.

	* traffic/report/get-perc.pl:
	Bugfix -- zero totals for each go-around.
	Use "usage()" instead of complaining for each problem.

	* traffic/common/Makefile:
	Install read-5m-sum.pl too.

2002-08-06  Havard Eidnes <he@uninett.no>

	* traffic/report/report-day.pl:
	Squeeze out some more precision by dropping a leading zero
	for values below 1.

	* traffic/report/report-day.pl:
	Provide more precision in results for percentage values < 10.

	* traffic/cgi/load-map.pl:
	Add support for user-specified limits in load scale.

2002-08-05  Havard Eidnes <he@uninett.no>

	* traffic/common/date.pl:
	Let make_datespec() also support the "yyyy-mm--dd" notation.

2002-07-19  Havard Eidnes <he@uninett.no>

	* traffic/common/read-5m-sum.pl:
	Fix the previous in a better way, now that we've actually
	reproduced the problem.

	* traffic/common/read-5m-sum.pl:
	Protect against division by zero, as can happen when
	you have a completely empty circuit (I think).

2002-07-15  Havard Eidnes <he@uninett.no>

	* traffic/common/utils.pl:
	Try a little harder to look for high-counters.

2002-07-12  Havard Eidnes <he@uninett.no>

	* common/persist.tcl:
	Also handle brackets, so as to avoid interpretation on re-sourcing.

2002-04-26  Havard Eidnes <he@uninett.no>

	* TODO:
	One more thing to do: knob to reduce alarms/e-mails, but otherwise
	collect status.

2002-04-19  Havard Eidnes <he@uninett.no>

	* traffic/cgi/load-map.pl:
	Add a hack to ignore data for a logical port if there has already
	been seen higher value for this port earlier.

	* traffic/cgi/load-map.pl:
	Add support for circle-shaped mapref areas.

	* traffic/cgi/load-map.pl:
	Handle names with more than one hyphen; reverse only two first parts.

2002-04-07  Havard Eidnes <he@uninett.no>

	* TODO:
	Add comment on how temperature could be monitored.

2002-03-15  Havard Eidnes <he@uninett.no>

	* Makefile: Mark this as 0.5.1.

	* tpoller/tpoller.tcl:
	Add support for using ifHighSpeed as the starting point for the speed
	recording, so that interfaces with a speed of more than 2**32 can be
	supported properly.

2002-03-09  Havard Eidnes <he@uninett.no>

	* vwatch/vw-day-report.pl:
	Use the correct variable when reporting current software version.

2002-03-01  Havard Eidnes <he@uninett.no>

	* Makefile:
	Let's mark this as 0.5 and let it out the door.

	* vwatch/vw-month-upgr.pl:
	Also harvest upgrade info by polling the description files.

	* vwatch/vw-day-report.pl:
	Try to account for more than one software upgrade/downgrade per day.

	* vwatch/vw-month-upgr.pl:
	Change this so that it reports if there's more than one
	upgrade/downgrade per day.

2002-02-28  Havard Eidnes <he@uninett.no>

	* traffic/common/read-5m-sum.pl:
	Zero a hash before starting, possibly from previous go-around.
	Whitespace cleanup.

	* traffic/report/Makefile:
	Add script to compute percentile values based on 5-minute averages,
	possibly for more than one port, as e.g. used in load-sharing.

	* traffic/report/get-5m-perc.pl:
	Add script to compute percentiles based on 5-minute averages,
	possibly for more than one port.

2002-02-26  Havard Eidnes <he@uninett.no>

	* traffic/plot/plot-5m.pl:
	Script to produce a 5-minute average plot for one or more ports.
	Useful for situations where load-sharing is done or where resilient
	connections are used.

	This is awfully close to plot-raw.pl, and the common code should be
	factored out.

	* traffic/common/read-raw-log.pl:
	Document the single-index %sample_time variant.

	* traffic/common/read-5m-sum.pl:
	Routine to process 5-minute averages for one or more lines.
	Useful for situations when one is doing load-sharing, or have
	resilient connections.

	* traffic/cgi/plot-all.pl:
	Add required support to plot sum of two lines.

	* traffic/common/date.pl:
	Add 5-minute average plot type to %res_to_dsp_t.

	* traffic/cgi/ex-png.pl:
	Allow + in file names (used for sum of lines).
	Output HTML header before error message.

2002-02-16  Havard Eidnes <he@uninett.no>

	* ritz/Makefile:
	Remove now-incorrect -e on sed command.

	* ritz/net.tcl:
	Make a substitutable %SHA%.

	* ritz/Makefile:
	Do substitutions on ritz.

	* zino/status.tcl:
	Improve handling of deleted devices.

	* common/polljob.tcl:
	Handle the "handle does not exist" case properly instead of falling over.

2002-01-14  Havard Eidnes <he@uninett.no>

	* traffic/jobs/daily.pl:
	Remove any leftover gzipped files from the previous month.

2001-12-14  Havard Eidnes <he@uninett.no>

	* TODO: One more todo item.

	* traffic/common/read-hr-log.pl, traffic/common/read-raw-log.pl:
	Several changes related to 32-bit counter roll-over compensation:
	 o Only compensate on Octet variables
	 o Only compensate on non-high-counter (/ifHC/) variables
	 o If delta is negative, force delta to zero

	Problem found when an address was moved to another port on the same
	router, and part of the log was

	Wed Sep 19 08:11:21 2001 ifHCInOctets.5 1.79084887318e+13
	Wed Sep 19 08:13:11 2001 ifHCInOctets.5 1.79088327289e+13
	Wed Sep 19 08:29:21 2001 ifHCInOctets.9 1.63199387464e+13
	Wed Sep 19 08:30:21 2001 ifHCInOctets.9 1.63202332168e+13

2001-12-13  Havard Eidnes <he@uninett.no>

	* traffic/jobs/daily.pl:
	Gzip the files in the backup directory to save space.

2001-12-10  Havard Eidnes <he@uninett.no>

	* traffic/common/read-hr-log.pl:
	Ignore reboot entries more than 15 minutes into the future.

	* traffic/common/read-raw-log.pl:
	Also ignore reboot log lines which are too far into the future relative
	to the last seen timestamp (15 minutes given here as the limit).

2001-12-08  Havard Eidnes <he@uninett.no>

	* mibs/Makefile:
	Make sure MIBDIR is created as a directory before installing mibs.

2001-12-04  Havard Eidnes <he@uninett.no>

	* traffic/jobs/dst-shift.pl:
	Script to compensate for DST shift in the autumn.

	* traffic/db/db-lookup.pl:
	Get the starting date from the correct place.

	* traffic/jobs/Makefile:
	Add dst-shift.pl.

2001-11-12  Havard Eidnes <he@uninett.no>

	* traffic/cgi/plot-all.pl:
	Add more output in error case.

	* zino/events.tcl:
	Improve robustness of fixupEventState.

	* zino/flaps.tcl:
	Stopgap solution to increase robustness of flapAger code, so that the
	job is not terminated.

2001-11-02  Havard Eidnes <he@uninett.no>

	* traffic/cgi/plot-all.pl:
	Don't round down origin of data when the period is "epoch".

	* traffic/common/date.pl:
	Permit calculations involving week 0; there's a difference
	between being 0 and not being defined...

	* traffic/jobs/daily.pl:
	Save one month of uncompressed data files, for possible
	re-postprocessing.

	* traffic/Makefile:
	Add BACKUPDIR creation.

	* Makefile.inc.dist:
	Add BACKUPDIR variable.

	* traffic/jobs/fixup-data.pl:
	Try to handle DST shifts.
	Yes, this is a hack.

	* traffic/common/read-hr-log.pl:
	Move around setting of lasttime and last_day.

2001-10-25  Havard Eidnes <he@uninett.no>

	* vwatch/cur-vers.pl:
	Do more intelligent sorting of Cisco software versions.

2001-09-25  Havard Eidnes <he@uninett.no>

	* traffic/report/Makefile:
	Add get-perc.pl.

	* traffic/report/get-perc.pl:
	Simple script to compute percentiles of traffic in kbit/s in/out
	for a given port and a given time period.

2001-09-02  Havard Eidnes <he@uninett.no>

	* traffic/report/report-month.pl:
	Add dimentioning load (average of top three samples) to the
	monthly report.

2001-05-14  Havard Eidnes <he@uninett.no>

	* traffic/cgi/load-map.pl:
	Prefer pivoting on a '.' when trying to reverse a logical port name.

	* Makefile:
	Descend into the mibs directory too, please.

	* traffic/cgi/load-map.pl:
	Deal correctly with polygons with more than 8 vertices.
	In those cases the vertices are spread across multiple lines by tgif.

2001-05-05  Havard Eidnes <he@uninett.no>

	* traffic/site/ndn-map.obj:
	Map as of May 5th 2001.

	* traffic/site/ndn-map.obj:
	Map as of Apr 27 2001.

2001-05-04  Havard Eidnes <he@uninett.no>

	* TODO:
	One more item: environment monitoring.

2001-03-30  Havard Eidnes <he@uninett.no>

	* traffic/cgi/load-map.pl:
	Implement absolute and relative map references, via the attribute name
	"mapref".  Absolute references start with http://, and should contain
	the map name; the date spec, type and sample-type will be passed on.
	Relative references just contain the map name, and should thus be
	accessible on the same server.  If you want to, you can also
	optionally add an "alt" to the reference, via the "mapalt" attribute.

2001-03-22  Havard Eidnes <he@uninett.no>

	* traffic/cgi/load-map.pl:
	Add a local warn() function, and use it in preference to err()
	in a couple of places where the error may not be fatal.

2001-03-16  Havard Eidnes <he@uninett.no>

	* tpoller/Makefile: Add "clean" target.

	* Makefile: Bump version number.

	* README: Cosmetics.

	* README:
	Extend a little with newer noteworthy items.

	* TODO: ...and one more.

	* TODO: One more to remember.

	* TODO:
	Scratch a few done items off the list.

	* traffic/cgi/tbl-report.pl:
	Minor correction: one more 6->7 field widening.

	* traffic/cgi/tbl-report.pl:
	Correct "Busy sample" -> "Peak sample".
	Widen speed coloumn to 7, to acommodate 2.4G interfaces.

	* traffic/common/utils.pl:
	Use a variable which is usable in both "raw" and "hr" data.

	* traffic/site/ndn-map.obj:
	Update to example map.

	* traffic/plot/plot-raw.pl, traffic/plot/plot-hr.pl, traffic/report/report-day.pl:
	Support and prefer 64-bit octet counters.

2001-03-15  Havard Eidnes <he@uninett.no>

	* traffic/report/report-month.pl:
	Correct the ordering of "speed" and "iftype" in the "possible heading"
	for the kbit/s report.

2001-03-06  Havard Eidnes <he@uninett.no>

	* traffic/common/read-hr-log.pl:
	Avoid division by zero.

	* traffic/common/read-day-report.pl,
	traffic/common/read-hr-log.pl, traffic/common/utils.pl,
	traffic/report/report-day.pl, traffic/report/report-month.pl,
	traffic/report/report-week.pl:
	Add support for computing 90th percentile load in/out,
	and medians of 90th percentiles for week and month reports.

2001-02-26  Havard Eidnes <he@uninett.no>

	* traffic/site/ndn-map.obj:
	Adorn with "last update" text.

	* traffic/site/ndn-map.obj:
	Tgif object file describing today's NORDUnet.

	* traffic/site/Makefile.inc.dist:
	Also install ndn-map.obj in the NORDUnet installation.

	* traffic/site/default.rng:
	Omit some text.

	* traffic/cgi/Makefile:
	In with the new load-map script, rename the old script;
	still install both.

	* traffic/cgi/xf-load-map.pl:
	Rename the old load-map script, revision 1.3.
	This one interprets stylished xfig files to produce a colored
	load map.

	* traffic/cgi/load-map.pl:
	Replace by a script which interprets tgif object files,
	and does more computation by itself:

	 o figures out name of "other end of circuit", if available,
	   otherwise reverts to name/i (input value).
	 o calculates half-distance along circuit for coloring
	 o calculates sensitive area around circuit

	No reference to "submaps" yet, though (easy to add).

2001-02-18  Havard Eidnes <he@uninett.no>

	* traffic/site/ndn-map.fig:
	New map -- SRP-ring interface of sw-gw was not marked.

2001-01-30  Havard Eidnes <he@uninett.no>

	* traffic/site/ndn-map.fig:
	New NORDUnet map.

	* traffic/site/ndn-map.fig: New map.

2001-01-25  Havard Eidnes <he@uninett.no>

	* common/auth.tcl:
	Make use of %SHA% instead of sha to get proper auth.

2001-01-22  Havard Eidnes <he@uninett.no>

	* zino/Makefile, zino/auth.tcl, Makefile.inc.dist:
	Make the which program to use to compute SHA-1 be configurable.
	OpenSSL has both `sha' and `sha1' which return different results,
	and it's the latter which is compatible with the locally maintained
	`sha' program.

2001-01-19  Havard Eidnes <he@uninett.no>

	* traffic/cgi/plot-all.pl:
	Generalize to also handle weekly plots which can get data from
	"today".

	* traffic/common/date.pl:
	Week plots can also look at data which covers "today".  Add handling
	of that.

	* traffic/plot/plot-hr.pl:
	Solve the previous problem a little differently: don't plot values for
	times beyond "now".

	* tpoller/tpoller.tcl:
	Use 64-bit byte counters (too) towards devices configured with the
	"hcounters" attribute.  This means that we need to replace use of
	MIB-II with the interface mib (RFC 2863), which is a little tricky,
	but luckily Jarle figured that one out for me.

	* common/polljob.tcl:
	If a device is configured for "hcounters", use SNMPv2c to establish
	the session.

	* common/config.tcl:
	Support the "hcounters" config variable; turns on use of 64-bit
	counters for the InOctets and OutOctets values.

	* traffic/common/read-hr-log.pl:
	Also return the values which read-raw-log.pl returns.  Properly handle
	multiple samples happening before hour 0, i.e. before the log wraps.
	If the last hour in the log contains values for only parts of the
	hour, compute a reasonable average value based on the time we have
	data for.

	* traffic/common/utils.pl:
	Add &floor_int().

	* traffic/plot/plot-hr.pl:
	Do not output 0-values when the corresponding counters are not
	defined.  This way today's hourly plot does not "cut to zero" at the
	end of data.

	* traffic/html/intf-load.html:
	Change from method=post to method=get.

	* traffic/common/date.pl:
	In some of the date calculations, instead of beginning "today" two
	hours into the day in the local time zone, start it one minute into
	the day.

	* traffic/common/date.pl:
	Expand datespecs up until and including today.
	This way we can "zoom in" to today's raw plot from the hr plot.

2001-01-17  Havard Eidnes <he@uninett.no>

	* traffic/common/date.pl:
	Make sure we print hh:mm with %02d.

	* traffic/plot/plot-hr.pl:
	Correct obvious typo (missing ||).

	* traffic/cgi/plot-all.pl:
	Drop the "no-cache" settings for the HTML document (just generates
	additional load for very little benefit, especially as long as the PNG
	file is still cacheable).

	* traffic/common/date.pl:
	Add hh:mm to "pretty datespec" when we're looking at today.

	* traffic/html/tbl-report.html:
	Convert to using method=get instead of method=post.

	* traffic/common/search.pl:
	Remove quotes here to allow quotes in Makefile.inc.
	The latter are now required (I think) due to the recent mk-subst
	change.

	* traffic/common/search.pl, traffic/plot/plot-hr.pl,
	traffic/plot/plot-raw.pl, traffic/cgi/plot-all.pl,
	traffic/common/date.pl:
	Add support for looking at today's plot.  Properly handle caching,
	and regenerate today's plot on refresh.  Add an HTTP refresh header,
	so that document refreshes automatically (raw plot: 5 min, hr plot:
	30 min).

2001-01-10  Havard Eidnes <he@uninett.no>

	* TODO: A couple of minor items.

	* TODO:
	Add some more text fleshing out what I've found out so far.

	* TODO: Add a couple of more ideas.

2000-12-08  Havard Eidnes <he@uninett.no>

	* ritz/sort.tcl:
	Umm, correct serious bugs in the previous.

	* ritz/sort.tcl:
	Provide some more resilience against zino fuckups.
	(Typeless events.)

2000-11-27  Havard Eidnes <he@uninett.no>

	* zino/flaps.tcl:
	Also fill in eventid and event type (eventId may be lying that
	this is an active event!).
	Obviolsy this is a kludge until this code is reworked.

	* zino/events.tcl:
	Do a kludge: also init to do persistent attrs
	for "existing" events.

2000-11-08  Havard Eidnes <he@uninett.no>

	* ritz/main.tcl:
	Be more permissive -- allow clear-text passwords (tacacs)
	by default.

	* ritz/ui.tcl:
	Tolerate non-initialized Server, Port, User and Secret
	global varaibles (as might happen with nonexistent .ritz.tcl).

2000-11-06  Havard Eidnes <he@uninett.no>

	* tpoller/tpoller.tcl:
	Forget the right variables -- use the correct loop variable.
	Add some commented-out debug info.

2000-10-24  Havard Eidnes <he@uninett.no>

	* traffic/jobs/daily.sh:
	Insert -v (verbose output) and -n (no ping-check) options to
	update-dbs.

	* traffic/db/update-dbs.pl:
	Introduce new -d debugging option, to take over some of -v's role.
	Let -v just print modified or new entries, -d enables the rest of the
	debugging output.

	* traffic/db/update-dbs.pl:
	Oops, missing argument to printf format.

2000-10-23  Havard Eidnes <he@uninett.no>

	* traffic/db/update-dbs.pl:
	Fix a syntax error.
	Remember if a router went non-responsive.
	Add -n option to skip ping test (it causes unneccessary delay).

	* traffic/db/update-dbs.pl:
	Add -v option, put debugging printouts under checks for $opt_v.

	* traffic/db/update-dbs.pl:
	Make this a bit more talkative.

	* traffic/db/update-dbs.pl:
	Explain a bit better why we do the substitute song & dance
	on the data we retreive from the net.

2000-10-14  Havard Eidnes <he@uninett.no>

	* traffic/cgi/load-map.pl:
	Properly handle polylines with polygon primitive by drawing the points
	in reverse order back to the starting point.

	* traffic/site/ndn-map.fig:
	Update to current reality.

2000-10-09  Havard Eidnes <he@uninett.no>

	* traffic/jobs/fixup-data.pl:
	Do a thorough rework of this; hopefully crushing a few bugs
	in the process (yes, it's somewhat tested).

	* traffic/cgi/tbl-report.pl:
	Correct sorting by "Output discards".

2000-10-06  Havard Eidnes <he@uninett.no>

	* TODO: Counter64 support item added.

2000-10-05  Havard Eidnes <he@uninett.no>

	* tpoller/tpoller.tcl:
	Correct rather blatant variable name error.

	* zino/tacping.pl: Substitute %PERL%.

	* zino/zino.cf.tmpl:
	Use own installed tacping script.

	* zino/Makefile: Add tacping.

	* zino/zino.cf.tmpl: Add authTacacs.

	* traffic/cgi/plot-all.pl:
	Add the pps plot for raw and hr resolution.

	* traffic/plot/plot-hr.pl, traffic/plot/plot-raw.pl:
	Add packets per second plot.

	* vwatch/cur-vers.pl:
	Correct error -- missing $ to expand file handle variable.
	Expand router name coloumn to 25 chars.

	* vwatch/vw-month-upgr.pl, vwatch/vw-month-rst.pl,
	vwatch/vw-day-report.pl, vwatch/unctime.pl, vwatch/pretty-ios.pl,
	vwatch/cur-vers.pl:
	Use my() instead of local().

	* vwatch/cur-vers.pl, vwatch/vw-day-report.pl,
	vwatch/vw-month-rst.pl, vwatch/vw-month-upgr.pl:
	Add required push(@INC, ...) statements.

2000-10-04  Havard Eidnes <he@uninett.no>

	* Makefile:
	Add a target to detect changes in distributed variable settings.

	* traffic/jobs/fixup-data.pl:
	Save both first and last line with "same value", so we don't get
	discontinuities in the "raw" plots.

	* sha/sha.c:
	Fix byte order detection logic.
	Fix formatting (function name on new line, k&r argument decls
	indented).
	Run both tests, detect failure at end.

	* sha/sha-test, sha/sha:
	Remove binary.

	* vwatch/Makefile:
	Introduce dependency on Makefile too.

	* vwatch/Makefile:
	Can't do "source" in TCL script, so do the inclusion here instead.

	* vwatch/vwatch-head.tcl:
	Um, can't use "source", need to do this in the Makefile.

	* traffic/jobs/startup.sh:
	Add start-vwatch.

	* vwatch/start-vwatch.sh:
	Script to start version monitor.

	* vwatch/Makefile: Add start-vwatch.
	Use SUBST instead of literals.

2000-10-03  Havard Eidnes <he@uninett.no>

	* traffic/report/Makefile:
	Adapt to new location.

	* tpoller/main.tcl:
	Use correct substitution name.

	* tpoller/Makefile:
	Substitute in tpoller script.

	* tpoller/Makefile:
	Installed script with no .sh.

	* tpoller/main.tcl:
	Add config information here.

	* traffic/jobs/nanny.pl, traffic/jobs/start-nanny.sh,
	traffic/jobs/Makefile:
	Exit nanny.

	* tpoller/Makefile: Minor tweak.

	* TODO:
	Merge entries from other TODO files.

	* traffic/site/default.rng, traffic/site/ndn-map.fig:
	Updates to reflect reality.

	* traffic/site/Makefile:
	.include needs double quotes or <>.

	* traffic/db/Makefile:
	Adapt to new setup.

	* traffic/TODO:
	Contents now merged with main TODO file.

	* zino/TODO:
	Remove file now merged in with main TODO file.

	* TODO: Remove some, add some.

	* traffic/plot/Makefile:
	Adapt to new setup.

	* traffic/common/read-raw-log.pl:
	Fix obvious syntactic mistake.

	* traffic/common/Makefile:
	Adapt to new setup.

	* traffic/db/update-dbs.pl:
	Be more careful about overriding 'line name' -> 'file name' mappings.

	* traffic/jobs/Makefile:
	Point to correct sed edit script.

	* traffic/db/Makefile:
	Point to the correct substitute sed script.

	* traffic/site/Makefile:
	Move rules out to separate Makefile.inc (.dist).

	* traffic/site/Makefile.inc.dist:
	Move rules here too.

	* traffic/site/Makefile.inc.dist:
	Distributed Makefile.inc.

	* traffic/cgi/load-map.pl:
	Omit linefeed from ranges file.

	* traffic/cgi/Makefile:
	Adapt to new setup.

	* traffic/site/ndn-map.fig, traffic/site/ndn-map.fig.new:
	Updated NORDUnet map (should perhaps not be distributed).
	Removed old temporary file.

	* traffic/site/ifs.cf:
	This file no longer distributed (old format...).

	* traffic/site/xfig.SAVE:
	Remove auto-save file.

	* zino/Makefile:
	Clean all generated files.

	* Makefile.inc.dist, emt/Makefile:
	Introduce EMTDIR.

	* zino/Makefile: Use ${} instead of $().
	Create zino dir if it doesn't already exist.

	* zino/auth.tcl:
	Don't call "sha" with -t option anymore, it's no longer needed.

	* emt/Makefile: Remove temporary file.

	* emt/Makefile:
	Make sure to install directory and empty emt-save.tcl if either
	doesn't already exist.

	* mibs/Makefile:
	Install mibs in the "proper" place.
	Some of these should most probably be removed (they're old cruft).
	Then the remaining mibs should be installed in scotty's site dir
	instead.

	* zino/Makefile:
	Make sure we build startup script too.

	* conf-diff/post-diff.sh:
	Uh, use . instead of source, and use century conversion.

2000-10-02  Havard Eidnes <he@uninett.no>

	* Makefile: Add conf-diff, bump minor.

	* conf-diff/crontab: Example crontab.

	* conf-diff/post-diff.sh:
	Change config file name.

	* zino/test-status.tcl:
	Use "more standard" scotty.

	* zino/auth.tcl:
	Omit ``-t'' from "sha" program, should no longer be needed.

	* sha/sha.c:
	Reverse sense of ``-t'' flag: default is now without spaces.

	* ritz/net.tcl:
	Omit use of ``-t'' option to sha, it should no longer be needed.

	* ritz/Makefile: Adapt to config setup.

	* Makefile.inc.dist: Add wish.

	* common/auth.tcl:
	Don't call sha with ``-t'' option; should no longer be needed.

	* vwatch/Makefile:
	Support objdirs under <bsd.prog.mk>.

	* vwatch/Makefile: Silence.

	* vwatch/Makefile:
	Correct mistakes and typos.
	Create log directory tree if it doesn't already exist.

	* vwatch/vwatch.cf:
	Remove now-stale file.

	* vwatch/vwatch-old.tcl, vwatch/config.pl, vwatch/daily.pl,
	vwatch/daily.sh, vwatch/month-rst.pl, vwatch/month-upgr.pl,
	vwatch/pretty.pl, vwatch/report-day.pl, vwatch/startup.sh:
	Remove now-stale files.

	* vwatch/vw-month-upgr.pl, vwatch/vw-month-rst.pl,
	vwatch/vw-day-report.pl, vwatch/vw-daily.pl:
	Adapt to new setup.

	* vwatch/unctime.pl:
	Remove perl exec header.

	* vwatch/pretty-ios.pl:
	Procedure to pretty-print software version (geared towards Cisco IOS).

	* vwatch/cur-vers.pl:
	Adapt to new config setup.

	* vwatch/Makefile:
	Makefile for version watcher and support scripts.

	* vwatch/vwatch-main.tcl:
	Moved header out to separate file.

	* vwatch/vwatch-head.tcl:
	Head of version-watch script.

	* vwatch/vwatch-main.tcl:
	Complete last line.

	* vwatch/vwatch-main.tcl:
	Main script, containing config information.

	* conf-diff/Makefile, conf-diff/checkin-configs.sh,
	conf-diff/post-diff.sh:
	Add scripts for mailing out config changes saved in /tftpboot,
	typically used for Cisco routers and switches.

2000-09-07  Havard Eidnes <he@uninett.no>

	* sha/Makefile:
	Install executable 555, not 755.

	* traffic/Makefile:
	Substitution generalized and moved to parent directory.
	Adapt to new location of Makefile.inc.

	* emt/start-emt.sh: Script to start emt.

	* traffic/jobs/startup.sh:
	Start the three current component scripts.
	The version-monitor will need to be added later.

	* Makefile.inc.dist: A few additions.

	* zino/Makefile:
	Create and install startup script.

	* Makefile:
	Remove dist target (will need to be redone).
	Add usage of bsd.subdir.mk, add "active" subdirs.

	* tpoller/Makefile:
	Build and install startup script.

	* tpoller/start-tpoll.sh:
	Script to start traffic poller.

	* traffic/jobs/start-zino.sh:
	Script moved to zino directory.

	* zino/start-zino.sh:
	Script to start zino.

	* zino/Makefile:
	Use variables from ../Makefile.inc.
	Generate zino.cf and install it.
	Also install required empty files if they don't already exist.

	* emt/Makefile:
	Create and install startup script for emt.

	* traffic/jobs/start-zino.sh:
	Uhm, actually make this start zino.

	* traffic/jobs/start-zino.sh:
	Script to start zino.

	* emt/emt.tcl:
	Insist on presence of ~/.ritz.tcl and ~/.emt.tcl, and complain
	(and refuse to start) if either does not exist.

	* emt/emt.tcl:
	Don't encode absolute paths here; allow substitution.

	* emt/Makefile:
	Import settings from ../Makefile.inc.
	Do substitutions on generated script.

	* Makefile:
	Also create SED substitution file.

	* mk-subst.awk:
	A script to construct sed substitutions from the Makefile settings
	in Makefile.inc.  Handles one variable substitution (by a previously
	defined variable) per line.

	* mk-subst.awk:
	Script to generate sed substitution patterns from Makefile settings.

	* zino/zino.cf.tmpl:
	Template file for zino configuration file / startup file generation.

	* zino/tacping.pl:
	Add tacping.pl from xtacacsd distribution, tacping.pl version 1.2.

	* tpoller/Makefile:
	Adapt for substitution mechanism.

	* tpoller/tpoller.tcl:
	Only fetch statistics from devices marked with "statistics: yes",
	(which is the default).

	* common/config.tcl:
	Add "statistics" as a known keyword, in preparation of
	tweaking traffic poller to ignore those with statistics != yes.

	* traffic/Makefile.inc.dist:
	Moved to parent directory.

	* traffic/plot/Makefile, traffic/report/Makefile,
	traffic/site/Makefile, traffic/db/Makefile, traffic/doc/Makefile,
	traffic/html/Makefile, traffic/jobs/Makefile,
	traffic/mibs/Makefile, traffic/common/Makefile,
	traffic/cgi/Makefile:
	Include new Makefile.inc.

	* Makefile.inc:
	This file should not be in repository, to ease upgrades.

	* Makefile.inc.dist:
	Hm, distribution version of this file.

	* Makefile.inc:
	New file, copied from traffic/Makefile.inc.

	* TODO: A couple of additions.

	* traffic/db/update-dbs.pl:
	Correct handling of default community.
	Chomp some input lines.

2000-07-20  Havard Eidnes <he@uninett.no>

	* emt/emt.tcl:
	Add some debugging of emt_lastlogline.
	Fix a longstanding bug in emt_open: it's important that the
	while-condition not just be evaluated *once*!

2000-07-19  Havard Eidnes <he@uninett.no>

	* zino/status.tcl:
	Substitute a pollSingleIf which actually works...

	* zino/flaps.tcl:
	Fix long-standing bug causing flapping interfaces to have the wrong
	state set in the portState array.  The symptom is events created by
	interface flapping which don't revert to the normal state even when
	the port comes back and is stable over a long period.

	* zino/routers.cf.sample:
	Set defaults explicitly (config file format changed).

2000-07-17  Havard Eidnes <he@uninett.no>

	* traffic/common/read-raw-log.pl:
	Now that we preserve %base between invocations, we will get a sample
	in hour 23 of the "previous day" when we are called repeatedly (to
	produce weekly info).  Compensate for this by subtracting 24h from
	timestamps seen in hour 23 before we've seen any samples in hours less
	than 23 (on the following day).

	* traffic/common/read-raw-log.pl:
	Redo sample number allocation, again, to adapt to the new
	filtered logs where identical values are removed.

	* traffic/common/read-raw-log.pl:
	Export %base hash.

	* traffic/plot/plot-raw.pl:
	Correct typo.

	* traffic/plot/plot-raw.pl:
	More adaptation for filtered data files.

	* traffic/plot/plot-raw.pl:
	Better code to adapt to logs where non-changing variables are omitted.

	* traffic/common/read-raw-log.pl:
	Adapt to filtered logs where only changed variables
	are logged.  This means that it's not necessary that the
	first variable in the file is logged for every sample.

	* traffic/plot/plot-raw.pl:
	Hm, print a time stamp in all circumstances.

	* traffic/plot/plot-raw.pl:
	Handle missing ifInErrors a little better.

	* traffic/common/read-hr-log.pl:
	Mark bug comment with XXX.

	* traffic/jobs/fixup-data.pl:
	On a "recent" reboot log message, print all saved variables,
	so that the order doesn't get jumbled.

	* emt/emt.tcl:
	Ignore possibly missing "reason" attribute.

	* emt/emt.tcl:
	Adapt to change in ::persist package.

	* emt/Makefile:
	Clean up some, adapt for VD installation using pkgsrc.

2000-07-15  Havard Eidnes <he@uninett.no>

	* common/persist.tcl:
	Comment out debugging code.

	* zino/events.tcl:
	Remember no longer to save attributes for an event
	once it is closed.

	* common/persist.tcl:
	Don't output "global" headings for nonexistent variables.
	Don't remove persistence for nonexistent variables.

	* zino/status.tcl:
	Fall back to ifAlias if locIfDescr isn't available.

	* zino/load-mibs.tcl:
	Use installed mibs from snmpnetstat.
	(Should really install own required mibs, and this
	list should be revised.)

	* ritz/sort.tcl:
	Return "warning" for non-open (handled) reachability events.

	* ritz/sort.tcl:
	Compare states before comparing downtime.

	* zino/zino-main.tcl:
	Rename zino.cf config variable.

	* common/auth.tcl:
	Declare "authenticated" as a variable.

	* zino/events.tcl:
	Also unset EventId on closeEvent.

2000-07-14  Havard Eidnes <he@uninett.no>

	* ritz/Makefile:
	Use tixwish and remove some cruft.

	* ritz/main.tcl:
	Rely on use of tixwish, so no "require Tix".

	* mibs/Makefile:
	Makefile to install mibs.

	* common/persist.tcl:
	Let startPeriodicDump take seconds as argument, not minutes.

	* traffic/jobs/nanny.pl, traffic/jobs/startup.sh:
	Modify to create and use ../tpoller.pid.
	Nanny is currently unused.

	* tpoller/main.tcl, tpoller/Makefile:
	*** empty log message ***

	* traffic/html/tbl-report.html:
	Change to have the "day" checked instead of "month".

	* traffic/Makefile:
	Take out the old poller from what we install; we're
	going to use the new version instead.

	* traffic/db/update-dbs.pl:
	Updte comments at top.
	Change "router" to "dev".
	Add handling of "community" and "default community" directives in
	the config file, so that the correct community can be passed to
	snmpnetstat.

	* traffic/db/update-dbs.pl:
	Use options to point to top directory (implicitly naming config file
	and database directory).
	Add more comments in a few places.
	Adapt to Jarle's version of snmpnetstat.
	Make more robust against whitespace goofs.
	Replace local() with my().

	* traffic/jobs/daily.sh:
	Um, redo that decision...

	* traffic/jobs/daily.sh:
	Adapt to new required options to the update-dbs script.

2000-07-05  Havard Eidnes <he@uninett.no>

	* traffic/common/Makefile, traffic/common/date.pl,
	traffic/common/newtimelocal.pl, traffic/common/plot.pl,
	traffic/common/read-day-report.pl, traffic/common/read-hr-log.pl,
	traffic/common/read-raw-log.pl,
	traffic/common/read-week-report.pl, traffic/common/scaling.pl,
	traffic/common/search.pl, traffic/common/timelocal.pl,
	traffic/common/tmpfiles.pl, traffic/common/utils.pl,
	traffic/db/Makefile, traffic/db/db-lookup.pl,
	traffic/db/dbm-dump.pl, traffic/db/dbm-edit,
	traffic/db/dbm-load.pl, traffic/db/update-dbs.pl,
	traffic/doc/Makefile, traffic/doc/basic-inst.html,
	traffic/doc/changes.html, traffic/doc/common-pl.html,
	traffic/doc/conf-conv.html, traffic/doc/features.html,
	traffic/doc/impl.html, traffic/doc/index.html,
	traffic/doc/install.html, traffic/doc/load-map.html,
	traffic/doc/plots.html, traffic/doc/poller.html,
	traffic/doc/tbl-report.html, traffic/doc/todo.html,
	traffic/doc/tools.html, traffic/doc/use-lm.html,
	traffic/jobs/Makefile, traffic/jobs/config.pl,
	traffic/jobs/daily-clean.sh, traffic/jobs/daily.pl,
	traffic/jobs/daily.sh, traffic/jobs/extract-value.pl,
	traffic/jobs/fixup-data.pl, traffic/jobs/fixup-data.sh,
	traffic/jobs/nanny.pl, traffic/jobs/showdelta.pl,
	traffic/jobs/start-nanny.sh, traffic/jobs/startup.sh,
	traffic/mibs/CISCO-SMI.my, traffic/mibs/Makefile,
	traffic/mibs/OLD-CISCO-INTERFACES-MIB.my, traffic/plot/Makefile,
	traffic/plot/plot-day.pl, traffic/plot/plot-hr.pl,
	traffic/plot/plot-raw.pl, traffic/plot/plot-week.pl,
	traffic/site/Makefile, traffic/site/default.rng,
	traffic/site/ifs.cf, traffic/site/index.html,
	traffic/site/ndn-map.coords, traffic/site/ndn-map.fig,
	traffic/site/ndn-map.fig-19970626, traffic/site/ndn-map.fig.new,
	traffic/site/ndn-map.gif, traffic/site/ndn-map.ps,
	traffic/site/xfig.SAVE:
	NORDstat version 0.29

	* traffic/common/Makefile, traffic/common/date.pl,
	traffic/common/newtimelocal.pl, traffic/common/plot.pl,
	traffic/common/read-day-report.pl, traffic/common/read-hr-log.pl,
	traffic/common/read-raw-log.pl,
	traffic/common/read-week-report.pl, traffic/common/scaling.pl,
	traffic/common/search.pl, traffic/common/timelocal.pl,
	traffic/common/tmpfiles.pl, traffic/common/utils.pl,
	traffic/db/Makefile, traffic/db/db-lookup.pl,
	traffic/db/dbm-dump.pl, traffic/db/dbm-edit,
	traffic/db/dbm-load.pl, traffic/db/update-dbs.pl,
	traffic/doc/Makefile, traffic/doc/basic-inst.html,
	traffic/doc/changes.html, traffic/doc/common-pl.html,
	traffic/doc/conf-conv.html, traffic/doc/features.html,
	traffic/doc/impl.html, traffic/doc/index.html,
	traffic/doc/install.html, traffic/doc/load-map.html,
	traffic/doc/plots.html, traffic/doc/poller.html,
	traffic/doc/tbl-report.html, traffic/doc/todo.html,
	traffic/doc/tools.html, traffic/doc/use-lm.html,
	traffic/jobs/Makefile, traffic/jobs/config.pl,
	traffic/jobs/daily-clean.sh, traffic/jobs/daily.pl,
	traffic/jobs/daily.sh, traffic/jobs/extract-value.pl,
	traffic/jobs/fixup-data.pl, traffic/jobs/fixup-data.sh,
	traffic/jobs/nanny.pl, traffic/jobs/showdelta.pl,
	traffic/jobs/start-nanny.sh, traffic/jobs/startup.sh,
	traffic/mibs/CISCO-SMI.my, traffic/mibs/Makefile,
	traffic/mibs/OLD-CISCO-INTERFACES-MIB.my, traffic/plot/Makefile,
	traffic/plot/plot-day.pl, traffic/plot/plot-hr.pl,
	traffic/plot/plot-raw.pl, traffic/plot/plot-week.pl,
	traffic/site/Makefile, traffic/site/default.rng,
	traffic/site/ifs.cf, traffic/site/index.html,
	traffic/site/ndn-map.coords, traffic/site/ndn-map.fig,
	traffic/site/ndn-map.fig-19970626, traffic/site/ndn-map.fig.new,
	traffic/site/ndn-map.gif, traffic/site/ndn-map.ps,
	traffic/site/xfig.SAVE:
	New file.

	* traffic/Makefile, traffic/Makefile.inc.dist, traffic/README,
	traffic/TODO, traffic/cgi/Makefile, traffic/cgi/emit-map.pl,
	traffic/cgi/ex-png.pl, traffic/cgi/intf-load.pl,
	traffic/cgi/list-ports.pl, traffic/cgi/load-map.pl,
	traffic/cgi/plot-all.pl, traffic/cgi/tbl-report.pl,
	traffic/html/Makefile, traffic/html/dsp.html,
	traffic/html/img-doc.html, traffic/html/intf-load.html,
	traffic/html/map-base.gif, traffic/html/map-doc.html,
	traffic/html/map-large.gif, traffic/html/map-zoom.fig,
	traffic/html/map-zoom.gif, traffic/html/tbl-report.html,
	traffic/html/zoom-base.gif, traffic/html/zoom-large.fig,
	traffic/html/zoom-large.gif, traffic/html/zoom.gif,
	traffic/report/Makefile, traffic/report/re-report-day.pl,
	traffic/report/report-day.pl, traffic/report/report-mon-sp.pl,
	traffic/report/report-month.pl, traffic/report/report-week.pl,
	traffic/report/sel-report.pl:
	NORDstat version 0.29

	* traffic/Makefile, traffic/Makefile.inc.dist, traffic/README,
	traffic/TODO, traffic/cgi/Makefile, traffic/cgi/emit-map.pl,
	traffic/cgi/ex-png.pl, traffic/cgi/intf-load.pl,
	traffic/cgi/list-ports.pl, traffic/cgi/load-map.pl,
	traffic/cgi/plot-all.pl, traffic/cgi/tbl-report.pl,
	traffic/html/Makefile, traffic/html/dsp.html,
	traffic/html/img-doc.html, traffic/html/intf-load.html,
	traffic/html/map-base.gif, traffic/html/map-doc.html,
	traffic/html/map-large.gif, traffic/html/map-zoom.fig,
	traffic/html/map-zoom.gif, traffic/html/tbl-report.html,
	traffic/html/zoom-base.gif, traffic/html/zoom-large.fig,
	traffic/html/zoom-large.gif, traffic/html/zoom.gif,
	traffic/report/Makefile, traffic/report/re-report-day.pl,
	traffic/report/report-day.pl, traffic/report/report-mon-sp.pl,
	traffic/report/report-month.pl, traffic/report/report-week.pl,
	traffic/report/sel-report.pl:
	New file.

2000-06-27  Havard Eidnes <he@uninett.no>

	* TODO: Add a few more.

	* README: Update my e-mail address.

	* zino/zino-main.tcl:
	(Almost) top-level function for zino.
	Ties into the component packages and starts things in their right
	order.
	Uses config file zino.cf from current directory.

	* zino/trap.tcl:
	Adapt to replacement of $cx and various other config info.
	Comment out a few of the handled traps (a better mechanism
	is needed).

	* zino/status.tcl:
	Adapt to new persist package.
	Adapt to replacement of $cx and various other config info.
	Tweak response/no-response handling (which badly needs a rewrite).
	Delete poll job handling procedures, since they're replaced
	by common routines these days.

	* zino/server.tcl:
	Adapt to the replacement of $cx.
	Fix an error (missing format argument).

	* zino/read-cf.tcl:
	Move cleanupDBvars out of this file, since it's slated
	for eventual removal.

	* zino/flaps.tcl:
	Adapt to new persist package, and the replacement of $cx.

	* zino/events.tcl:
	Adapt to new persist package.
	Add a cleanupDBvars proc.

	* zino/TODO: Strike one off the list.

	* zino/NOTES:
	One more possible TODO thing.

	* zino/Makefile: Reorganize file list.

	* test/test-tpoll.tcl:
	Add one more required file.

	* test/routers.cf:
	A few updates in the direction of reality (for UNINETT).

	* common/config.tcl: Add confExists.
	Set up default config file handler.

2000-03-15  Havard Eidnes <he@uninett.no>

	* common/polljob.tcl:
	Correct implementation of "handle" function.
	Factor out/rename to get "setup" and "teardown" functions,
	and convert to use them.

	* zino/Makefile:
	First attempt at a minimal makefile for zino.

2000-03-14  Havard Eidnes <he@uninett.no>

	* common/conffile.tcl:
	Newline-terminate file.

	* ritz/sort.tcl:
	Don't error out if the "type" attribute is missing.
	This may happen when we stop polling a router, in which case
	a new case may be created by zino (really a bug there, but we'll
	let it slide for now).

1999-11-02  Havard Eidnes <he@uninett.no>

	* emt/emt.tcl:
	Go to new ::persist routine name.
	More robustness & diagnostic (attempt, anyway) for open-routine.

	* common/attrs.tcl:
	Make "adminDown" also be reported as a "down" event.

1999-09-14  Havard Eidnes <he@uninett.no>

	* common/conffile.tcl:
	Slight change to warning message for previous.

	* common/conffile.tcl:
	Warn about multiple occurrances of configuration for
	the same device name.

1999-09-13  Havard Eidnes <he@uninett.no>

	* tpoller/tpoller.tcl:
	Wrap sparseTableWalk with catch, and augment the error message if it
	fails.
	A few other minor fixups.

	* tpoller/tpoller.tcl:
	Timestamp error messages.

	* tpoller/tpoller.tcl:
	Well, I forgot, some errors should be fatal.
	Make "normal" error returns contain the "FAILED" string,
	and check for it at the toplevel; omit printing errorInfo
	output in those cases (most usual reason: no response from agent).

1999-09-12  Havard Eidnes <he@uninett.no>

	* tpoller/tpoller.tcl:
	Fix a syntax error (missing bracket).
	Make some errors "non-fatal", i.e. just log and don't error.

1999-09-11  Havard Eidnes <he@uninett.no>

	* tpoller/tpoller.tcl:
	Import ::config::conf to access ignore-patterns.
	Load required mibs.
	Output error message if an error was caught.
	Minor bugfixing and typo corrections to make this work.

	* test/test-tpoll.tcl:
	Test traffic-poller.

	* test/routers.cf:
	Use loopback0 address, not serial link (now down).

	* test/test-vw.tcl:
	Test version-watcher.

	* test/test-chi.tcl:
	A few routines/settings to test sparse-walk (or simple table walk).

	* test/test-sw.tcl:
	Adapt to changes in sparse-walk module:
	 o Drop error handler, add "error script"
	 o Add in a test of the synchronous/parallel
	   getnext version of sparseTableWalk.
	Say where tests were run.

	* test/test-poll.tcl:
	Use "name" command instead of "cx".
	Simplify now that we have more defaults.

	* tpoller/tpoller.tcl:
	Initial revision of reimplemented traffic statistics poller.

1999-09-09  Havard Eidnes <he@uninett.no>

	* common/polljob.tcl:
	Provide default values for the initDev / pollDev / destroyDev
	upcall procedure variables.

1999-09-07  Havard Eidnes <he@uninett.no>

	* common/justSNMP.tcl:
	Hm, well, it turns out that the synchronous version built on top
	of the asynchronous version of sparseTableWalk will have problems
	if two sparseTableWalk calls are active at the same time, something
	which can happen if the second call was triggered from a timer event.
	Thus, re-import the old synchronous version of sparseTableWalk.

	Remove the error handler for async events, use an optional body to
	evaluate instead.

	Don't use "uplevel" and "upvar" from the callback script to reference
	the parent context; since we're in an SNMP callback script, the parent
	context is the global context (!).  In order to not conflict with the
	local variables in the callback handler, call down a level to have the
	callback scripts evaluated.

1999-09-06  Havard Eidnes <he@uninett.no>

	* test/test-sw.tcl:
	Sparse-walk file changed name.
	Adapt to sparseTableWalk now being synchronous again.

	* common/justSNMP.tcl:
	Fix "synchronous" shell around asyncSparseTableWalk -- the upcalls
	will be done in the global context, so care needs to be taken to
	use/set the correct variables.
	Add an error script, and substitution of %E and %S for both the
	"done" and "error" callback scripts.

	* common/justSNMP.tcl:
	Hm, make the sparseTableWalk proc appear to be synchronous again,
	but using asynchronous primitives below, allowing other events to
	be processed at the same time.

	* common/polljob.tcl:
	Don't reference global procedures anymore, instead, use
	an init procedure to set up callbacks.

	* common/justSNMP.tcl:
	Fix copyright date.

	* common/justSNMP.tcl:
	Uh, need to use "variable" inside procedures.

	* common/config.tcl, common/justSNMP.tcl, common/swalk.tcl:
	Rename swalk.tcl to justSNMP.tcl.
	Fix a typo in config.tcl.

	* common/swalk.tcl:
	Bring in stuff from justSNMP version 0.0.
	Bump minor version to 0.1.

	* test/test-sw.tcl:
	Make this a real test script.

	* common/swalk.tcl:
	Async version of sparse-walk routines.
	Should really import entire JUST package.

	* test/test-sw.tcl:
	Add error handler upcall.
	Add optional "end of table" script parameter.

1999-09-05  Havard Eidnes <he@uninett.no>

	* vwatch/vwatch.tcl:
	Return "unexpected uptime" initially when $lastpoll($sh) isn't set.
	Substitute the CRs in device description fields before saving.

1999-09-04  Havard Eidnes <he@uninett.no>

	* vwatch/vwatch.tcl:
	Separate out inclusion of other files and
	configuration info setting + the "main" program.

	* common/polljob.tcl:
	No longer export "variable access procedure" ``cx'', but rather
	export ``handle'' and ``name'' to translate from name to handle and
	from handle to name respectively.
	Also, no longer access variables in other modules directly.

	* vwatch/vwatch.tcl:
	Adapt to change in polljob, no longer exports 'cx' procedure.

1999-08-31  Havard Eidnes <he@uninett.no>

	* test/test-sw.tcl:
	Asynchronous sparse-walk implementation.
	Error handling and recovery missing.

	* vwatch/vwatch.tcl:
	Remove some useless variable settings (since they're not used).

	* vwatch/vwatch.tcl:
	...and closer still.
	I think what remains now is testing and
	better configuration support for where files should be stashed etc.

	* test/test-poll.tcl:
	Use the new variable access procedure instead of
	accessing variables in another namespace directly.

	* vwatch/vwatch.tcl:
	Bring this closer to something which might work.

	* common/polljob.tcl:
	Convert to using variable access procedure
	instead of trying to export/import variables (which doesn't work,
	only commands can be exported/imported).

	* common/config.tcl:
	Can probably not use "default" as name.  Export
	variable access procedure.

	* common/config.tcl: One more.

	* common/config.tcl:
	Add a variable access procedure to access 'conf'.

	* test/test-poll.tcl:
	Test the polljob module, that the right jobs are started etc.

1999-08-29  Havard Eidnes <he@uninett.no>

	* vwatch/vwatch-old.tcl, vwatch/vwatch.tcl:
	Checkpoint.

1999-08-25  Havard Eidnes <he@uninett.no>

	* common/polljob.tcl:
	Don't make a "restart" action trigger upcalls to ::deleteDev
	and then ::initDev; instead let it pass without any upcall.

1999-08-24  Havard Eidnes <he@uninett.no>

	* common/polljob.tcl:
	A typo correction and a minor bugfix.

	* common/polljob.tcl:
	Initial cut at generic poll job handling.

	* common/util.tcl:
	Add "minutes-to-milliseconds" as mtoms.

	* test/routers.cf, test/test-conf.tcl:
	Test harness for config reading/handling.

1999-08-20  Havard Eidnes <he@uninett.no>

	* vwatch/config.pl, vwatch/cur-vers.pl, vwatch/daily.pl,
	vwatch/daily.sh, vwatch/month-rst.pl, vwatch/month-upgr.pl,
	vwatch/pretty.pl, vwatch/report-day.pl, vwatch/startup.sh,
	vwatch/unctime.pl, vwatch/vwatch.cf, vwatch/vwatch.tcl:
	Add baseline "version watch" sources.

1999-08-18  Havard Eidnes <he@uninett.no>

	* emt/emt.tcl:
	Adjust to name change in ::persist.

	* common/notify.tcl:
	Protect initial "unset acceptchan".

1999-08-11  Havard Eidnes <he@uninett.no>

	* common/config.tcl:
	Simplify changedDev.

	* common/util.tcl:
	Protect the "unset" of the "to" array (may not exist).

	* common/notify.tcl:
	The "variable" command really takes only one variable.

	* common/config.tcl:
	Reinstate printing of defaults.

	* common/config.tcl:
	Do "namespace import" correctly.
	Add defaults variable.
	Fixes so that handleCchangedConf can be used the first time too.

	* common/conffile.tcl:
	Close file after reading.
	"variable" only takes one variable.
	Various minor bugfixes found by testing.

	* common/config.tcl: Added printConf.

	* common/config.tcl:
	Corrected a few variable naming errors.

	* common/config.tcl:
	Common post-processing after reading new config file.
	Interfaces to various polljob:: procs.

	* common/util.tcl:
	Common utility routines.

	* common/conffile.tcl:
	Add generalized package for reading configuration files.
	Returns data which needs "post-processing" and some setup.

	* common/persist.tcl:
	Rename "dump" to "checkpoint" in various procs.

1999-05-11  Havard Eidnes <he@uninett.no>

	* zino/status.tcl:
	Only do cleanup if really required.

	* zino/status.tcl:
	Protect an unset, the variable may not exist.

1999-05-07  Havard Eidnes <he@uninett.no>

	* zino/auth.tcl:
	Actually make this work as intended...

	* zino/auth.tcl:
	Actually make it possible to authenticate users
	even though they're not in the local user database,
	but only exist in the tacacs database.

1999-04-29  Havard Eidnes <he@uninett.no>

	* zino/status.tcl:
	Oops, need access to $r.

	* common/cp.tcl: Typo correction.

	* zino/status.tcl:
	Add more cleanup of "delayed lack-of-response checking",
	apparently some of that could be forgotten, and a router's
	state would be stuck in "doing delayed checking" when in fact
	no such checking was scheduled, causing lack of "no-response"
	alarm generation.
	This code badly needs to be redone.

1999-04-07  Havard Eidnes <he@uninett.no>

	* emt/emt.tcl:
	Use new function to get "cleaned" log lines.

	* common/cp.tcl:
	getLog now returns a list, getLogLines ++ new functions.

1999-03-24  Havard Eidnes <he@uninett.no>

	* emt/TODO: TODO list for emt.

	* ritz/net.tcl: Fix a pair of bugs:
	 o typo in variable name
	 o use of list instead of string

1999-03-09  Havard Eidnes <he@uninett.no>

	* common/sort.tcl: Typo correction.

1999-02-28  Havard Eidnes <he@uninett.no>

	* zino/status.tcl:
	Instead of giving up (and possibly leaving event in a half-cooked
	state), fake sysUpTime setting if it could not be fetched.
	Also, record "noResponse" if getting sysUpTime failed.

	Re-verify port state change after 2 minutes.

	* emt/emt.tcl:
	Add code to also report last line in event log.

	* zino/NOTES:
	Add one idea for extension.

	* zino/flaps.tcl:
	Add a 2-minute delayed poll after trap-initiated state change.

	* zino/status.tcl:
	Reshuffle "stop*Deleted*" contents, so that restartPolLChangedRouters
	can have a chance at working.

1999-02-27  Havard Eidnes <he@uninett.no>

	* zino/read-cf.tcl:
	Even more debugging output.

	* zino/read-cf.tcl:
	Don't unset Address -- that way we won't detect changes in router
	addresses (!).  Instead, the code in oldRouterNames should suffice
	to pick up the old names.  At another place where Address was being
	used, use seenRouter instead.

	* zino/read-cf.tcl:
	Add debugging output.

	* zino/status.tcl:
	Add debugging output, apparently needed...
	Fix a syntax error or two...

	* emt/emt.tcl:
	Log success opening server connection.

	* zino/trap.tcl:
	Do the checking of reachability after trap reception correct according
	to new function of checkResponse.

	* zino/status.tcl:
	Improve the handling of "noResponse" events:
	 o Reduce trigger-happiness (re-check for response after 1 minute
	   before opening event)
	 o Increase frequency of reachability checking after a "noResponse"
	   event happens.
	 o Only log reachability status changes, not every "noResponse"
	   event.
	 o Make checkResponse useful.

	* emt/emt.tcl: Minor simplification.

	* emt/emt.tcl:
	Don't call emt_newhist unless notification received.

1999-02-26  Havard Eidnes <he@uninett.no>

	* ritz/Makefile:
	Add rule to make ../version.tcl if missing or outdated.

	* Makefile:
	Separate out rule to make version.tcl.
	Makefile needs improvement to handle subdirectories.

	* ritz/notify.tcl:
	Move some code around, should be no functional change.

	* ritz/net.tcl:
	Clean up getLog -- separate the cleaning of the log to a separate proc.

	* TODO: Remove a few items now covered.

	* emt/emt.tcl:
	Default second argument to emt_notify so that "LostConn" event works.
	Trigger sending e-mail also if state/history changes for an event we
	have already sent a note about.  Add some more debugging output.
	Remove a few syntax errors...
	Make long reports a little more verbose + include parts of history.

	* zino/flaps.tcl:
	Tweak flap computation values so that "flapping" doesn't happen
	so quickly, and it takes shorter stable-time to come out of "flapping".

	* common/attrs.tcl:
	Let getOperState return "effectivePortState" for portstate events,
	so that "flapping" is caught.

	* emt/emt.tcl:
	Add history to verbose mail messages.

	* emt/emt.tcl:
	Make sure state($id) is defined for all cases, also for new ones...
	Refine emt_should_report, set state variables at appropriate times etc.
	Reshuffle subject/one-line reports.

1999-02-25  Havard Eidnes <he@uninett.no>

	* emt/emt.tcl:
	Adapt to procedure name changes.
	Add some debugging output via new "log" procedure.
	Add a periodic "keepalive" job to check that server is up and alive.
	Don't get event logs -- we don't handle them yet.
	Make emt_newlog and emt_forget more robust.

	* emt/Makefile:
	SRCS not FILES, and use tclsh and not wish.

	* common/attrs.tcl, common/cp.tcl, common/net.tcl,
	common/notify.tcl, common/sort.tcl:
	Add missing newlines at end of file.

	* common/notify.tcl:
	Add required qualification.

	* common/persist.tcl:
	Id string correction.

	* common/persist.tcl:
	Rename a few procedures.

	* common/cp.tcl:
	Minor typo (unbalanced paren).

	* common/sort.tcl:
	Finish conversion to new procedure names.

	* common/persist.tcl: Typo correction.
	Add qualification where needed.
	Finish conversion of old routine names.

	* common/notify.tcl:
	Make sure "acceptchan" is unset when it needs to be.
	Add qualification where required.

	* common/net.tcl:
	Move setting of "chan" in ::net::open, so that the following
	::net::gets works.
	Add robustness in close routine.
	Add some (commented-out) trace output for "puts" and "gets".

	* common/auth.tcl:
	Add a forgotten ::net::gets.
	Be more robust when resetting.

	* common/attrs.tcl:
	Add isUpState (as it was apparently used...).

	* emt/test-emt.tcl:
	Script to set up test environment for emt.

	* emt/emt.tcl:
	Reshuffle includes (remove -- move to test-emt.tcl).
	Rename main -> emt_main.
	Remove emt_close -- emt_open closes at first for robustness.
	Use appropriately qualified names.
	Various other minor bugfixes.

	* emt/Makefile:
	Update to create an "emt" executable, taken from ritz.

	* common/persist.tcl, common/sort.tcl, common/attrs.tcl,
	common/cp.tcl:
	New modules extracted and tweaked from old code.

	* common/notify.tcl:
	Simplify how notification handler is set up and used.

	* common/net.tcl:
	Improve so that gets can take "-channel $chan" arguments and act
	on them.

	* emt/emt.tcl:
	First cut that is testable.

1999-02-22  Havard Eidnes <he@uninett.no>

	* emt/Makefile, emt/emt.tcl:
	Initial commit of e-mail trigger.  Far from done.

	* common/notify.tcl, common/auth.tcl, common/net.tcl:
	More generalized routines, using namespace packaging.

1999-02-19  Havard Eidnes <he@uninett.no>

	* ritz/Makefile, ritz/test-client.tcl, Makefile:
	Create version.tcl, and use in ritz.

	* ritz/ui.tcl:
	Added "Help/About" menu and version display.

	* zino/events.tcl:
	Don't call nonexistent procedure.
	Make robust for setting "lasttrans" for new events.

	* zino/events.tcl:
	Can't compare a not-yet-committed attribute value.

1999-02-18  Havard Eidnes <he@uninett.no>

	* zino/events.tcl:
	Uhm, do setEventAttr calls before actually setting things in
	eventCommit.

	* zino/events.tcl:
	Fix bug in eventCommit.
	Fix regexp syntax bug.
	Port state "adminDown" counts as "up" wrt. downtime calculation.
	Robustness improvement for events with no log.
	Set "lasttrans" also at start of downtime period (doh!).

	* ritz/ritz:
	Removing generated "binary".

	* ritz/ritz: Updated.

	* ritz/attrs.tcl:
	Protect getDowntime against missing attributes.

	* ritz/ui.tcl:
	Another minor geometry adjustment.

	* ritz/ritz, ritz/ui.tcl:
	Adjust geometry.

	* ritz/ritz, ritz/sort.tcl, ritz/summary.tcl, ritz/ui.tcl,
	ritz/attrs.tcl:
	Implement client side of "downtime" display/recording.

	* zino/events.tcl:
	Change setEventAttr to set a temporary value, delay actual setting
	of attribute until eventCommit.  Add new code in eventCommit to
	support.
	Implement calculation of "accumulated (known) downtime" in the
	server.
	Triggers off log entries, i.e. based on conventions for how log
	lines appear.
	Implement fixupDowntime to add "ac-down" and "lasttrans" to active
	events.

	* zino/flaps.tcl:
	More explanatory message when polling stops.

	* zino/persist.tcl:
	Stop saving nonexistent variables.

1999-02-16  Havard Eidnes <he@uninett.no>

	* scotty.diff:
	Add non-blocking patch to scotty diff.

1999-02-15  Havard Eidnes <he@uninett.no>

	* mibs/CISCO-CDP-MIB.my, mibs/CISCO-CONFIG-MAN-MIB.my,
	mibs/CISCO-TC.my:
	Initial zino import

	* mibs/CISCO-CDP-MIB.my, mibs/CISCO-CONFIG-MAN-MIB.my,
	mibs/CISCO-TC.my:
	New file.

	* mibs/BGP4-MIB.my, mibs/CISCO-PRODUCTS-MIB.my, mibs/CISCO-SMI.my,
	mibs/OLD-CISCO-INTERFACES-MIB.my, mibs/OLD-CISCO-TCP-MIB.my,
	mibs/OLD-CISCO-TS-MIB.my, mibs/cisco-10-mib.my, mibs/mib.traps,
	ritz/just/justSNMP.tcl, ritz/just/mib2util.tcl,
	ritz/just/pkgIndex.tcl, ritz/just/prettySNMP.tcl, ritz/net.tcl,
	sha/Makefile, sha/Readme, sha/sha, sha/sha-test, sha/sha.1,
	sha/sha.c, sha/sha_file.3:
	Initial zino import

	* mibs/BGP4-MIB.my, mibs/CISCO-PRODUCTS-MIB.my, mibs/CISCO-SMI.my,
	mibs/OLD-CISCO-INTERFACES-MIB.my, mibs/OLD-CISCO-TCP-MIB.my,
	mibs/OLD-CISCO-TS-MIB.my, mibs/cisco-10-mib.my, mibs/mib.traps,
	ritz/just/justSNMP.tcl, ritz/just/mib2util.tcl,
	ritz/just/pkgIndex.tcl, ritz/just/prettySNMP.tcl, ritz/net.tcl,
	sha/Makefile, sha/Readme, sha/sha, sha/sha-test, sha/sha.1,
	sha/sha.c, sha/sha_file.3:
	New file.

	* ritz/ChangeLog, ritz/Makefile, ritz/TODO, ritz/attrs.tcl,
	ritz/bgerror.tcl, ritz/main.tcl, ritz/notify.tcl, ritz/ritz,
	ritz/sort.tcl, ritz/summary.tcl, ritz/test-client.tcl,
	ritz/ui.tcl, ritz/utils.tcl:
	Initial zino import

	* ritz/ChangeLog, ritz/Makefile, ritz/TODO, ritz/attrs.tcl,
	ritz/bgerror.tcl, ritz/main.tcl, ritz/notify.tcl, ritz/ritz,
	ritz/sort.tcl, ritz/summary.tcl, ritz/test-client.tcl,
	ritz/ui.tcl, ritz/utils.tcl:
	New file.

	* zino/NOTES, zino/TODO, zino/auth.tcl, zino/dumpvars.tcl,
	zino/events.tcl, zino/flaps.tcl, zino/load-mibs.tcl, zino/log.tcl,
	zino/read-cf.tcl, zino/swalk.tcl, zino/test-status.tcl,
	zino/test-traps.tcl, zino/utils.tcl:
	Initial zino import

	* zino/NOTES, zino/TODO, zino/auth.tcl, zino/dumpvars.tcl,
	zino/events.tcl, zino/flaps.tcl, zino/load-mibs.tcl, zino/log.tcl,
	zino/read-cf.tcl, zino/swalk.tcl, zino/test-status.tcl,
	zino/test-traps.tcl, zino/utils.tcl:
	New file.

	* zino/trap.tcl: Initial zino import

	* zino/trap.tcl: New file.

	* zino/ChangeLog, zino/persist.tcl, zino/routers.cf.sample,
	zino/server.tcl, zino/status.tcl:
	Initial zino import

	* zino/ChangeLog, zino/persist.tcl, zino/routers.cf.sample,
	zino/server.tcl, zino/status.tcl:
	New file.

	* Makefile, README, TODO, scotty.diff:
	Initial zino import

	* Makefile, README, TODO, scotty.diff:
	New file.
