
Beta 14

* added x axis labels to gif
* some fixes to BER.pm: Works now for sunos even with numerical IPs
                        does not send source address any more, because
                        some routers were confused by it.

 
Beta 17

* dave: changed rateups handling of logfiles. It should now pay more
        attention to NOT loose them even in nasty conditions ...


Beta 18 

* dave: rateup works even when we run it for the very first time ....

Beta 19

* added labels to the y axis ....

* changed the scaling methode. rateup now tries to get some
  'sensibel' numbers onto the y axis. The idea is, that the numbers should
  have only two digits diffrent from 0, and that they should be displayed
  in kilo mega giga terra which ever is apropriate ... The whole code is
  pretty woodo ... if you have any better solutions, I'd be interested ..

* if rateup is compiled with -DWRITERIGHT, the graphs are drawn from
  right to left and not from left to right ... Comments welcome ...
  should this be the default ?

* in the cfg file you can specify a 'refresh' option, which
  gives the interval for netscape to reload the page.

* in the cfg file you can use supress option, which inhibits the [d]ayly, 
  [w]eekly [m]onthly or [y]early graph.

* all changes documented in mrtg.html

* added some stats to each graph. there is now the maximum and average in
  and out rate for each graph ...

* revampt the whole html page. more tables...

* The title is not printed automaticaly any
  more. This allows more customisaztion. To toint this out. I changed 
  the comment tag to "pagetop"

Beta 20

* if mrtg fails to reach a router, it will try 3 times, and complain.
  it waits 3 seconds between the requests 

* added percentage of maxbytes to the scores.

* Added arrow to indicate the graph direction

* Added vertical lable to y axis

* THe legend will now only explain the graph colors which are realy
  used ...

Beta 21

* Fixed spelling error: It is Hours ...

* Added Configurable "Interval" this will appear in the 
  "One Sample every x Minutes" title.

* From the calling interval a Expiration META header is generated,
  so that these pages don't hang around in the caches ...

* Fixed a bug in rateup where it crashed when run on a empty
  logfile.

* Integrated a Fix from Heino Peters for SNMPSession.pm to make it work on
  SunOS 4.1.4

Beta 22

* smaller titles for the graphs ...

Bugfix:
* rateup had some integer overflows .... 
  (it did NOT work correcly for data older than about 2 Months
   so if you converted from 1.x mrtg, do so again!!!)

* enhanced convert to consolidate the old log file. mrtg 1.x saved
  way to much data ... (here again, people who converted earlier, should do
  so again ...)
 
Beta 23

* added a horizontal red dotted line at the theoretical maximum thouput ...

Bugfix:

* complete rewrite of convert ... now it should really work ...
* mrtg should now work properly with the binaries NOT sitting in the
  "workdir".

Beta 24

* added Options switch to router cfg sections
  growright - grow from left to right
  ioswap - swap in and out rates, for people who are not
           able to monitor the right router

* require perl 5.002

* graph size is now configurable
  xsize and ysize options

* added latest in/out rates to html page

* added preliminary VMS support based on a patch contributed by
  Werner Berger <werner.berger@cch.cerberus.ch>

* Updated docu with latest changes

* Created Contib file, listing Contributers to mrtg

* Stuff defined for the dummy router '^' will be PREPENDED to 
  each corresponding entry of the other routers. The same goes
  for '$' but its content will be APPENDED.

Beta 25
-------

Bugfixes:

* Fixed bug where the old traffic readings got zeroed form the html page
  in the month and year graph ... we did NOT read enough lines back from the
  html file

* Fixed a bug in mrtg which sent is to sleep when this was 
  NOT intended ---> SPEED mrtg 2.0.24 * 10 = SPEED mrtg 2.0.25
  Even worse, sometimes it thought (wrongly) that the router was
  unreachable

* fixed ioswap ... there was a conceptual bug with this ...
  now you have to specify ioswap in the target definition ...

  Target[gw2]: -2:public@gw.agip.it 

* the numerical values in the html file sometimes got lost ... fixed ...


New Features:

* Introduced a new utility: which produces a rudimentray router
  part of mrtg.cfg ...

  cfgmaker routername comunity >>mrtg.cfg

* Richard Bullington <rbulling@obscure.org>
  has done a wonderful job cleaning up the mrtg script ... he also
  found a bug or two in the process ... Thanks

* Lukasz Ploszajski <lukasz@nask.pl> provided a patch which implements a
  'bits' option. This is for all those who like to impress their users with
  large numbers :-) All the numbers in the html page and in the gifs will 
  show up as bits and not as Bytes if you specify the

  Option[router]: bits

* NT support from Stuart Schneider <SchneiS@testlab.orst.edu>
  integrated

* Changed the calling sequence of mrtg to make is NT compatible. rateup 
  does now a chdir before it starts renaming files and writing gifs ...

* For more clarity I have renamed the following files:

  mrtg.html -> readme.html
  mrtg.cfg -> mrtg.cfg-dist

* Documentation is up to date with Beta25

Beta 26 
--------

Bug Fixes:

* Andrzej Tobola <san@iem.pw.edu.pl>  
  Added long String decode to BER.pm

* brought mrtg.cfg-dist up to date

* the last cfg tag did not get the $ stuff appended if defined
  thanks Heino

* using the bits option the Bytes at the end of the page in the legend
  was not changed to bits ... 
  thanks to Russell Vincent <vincent@ucthpx.uct.ac.za> 

* added <BR> before IMG tag in mrtg ...

Features:

* Changed the wording ... it is 5 minute Average and not Sample ...

* Slight change in the interpretation of the $ and ^ elements:
  you can now have several of them in your cfg file. They just override
  each other. The interpretation of this information is strictly
  sequential.

  Example

  Top[^]: one
  Top[rout]: two      
  Top[^]: three
  Top[well]: four

  Result

  Top[rout] = "one two"
  Top[well] = "three four"


* Richard provided a makefile ... thanks

* By Heino Peters:
  There is a new 'WriteExpires: Yes'  option which generates .meta files
  for all .html and .gif files created by mrtg. These .meta files
  contain Expiration headers for use with Apache and CERN httpds

* Updated BER.pm and SNMP_session.pm to the latest Version 
  by Simon Leinen. He has integrated all our patches ... These new
  versions implement the getnext operation. This allwed for a major
  rewrite of the cfgmaker. It does now query the ip addresses of the
  routers and the hostnames assigned to these ip addresses ...

* cfgmaker will now read the special Cisco interface Descriptions string
  if it finds that the router is a cisco patch by Ewald.Jenisch@univie.ac.at

* Changed the Header text of the graphs again ... Hope this is clear enough
  now

* In the 'numbers' area below the graph the word In and Out are in the
  right color now.

* mrtg does now check for the exit status of rateup and will terminate if
  something funny happens. Issuing a dangerouse error message.

* revamped the mrtg graphics ... hope you like them

* I added a copy of the GNU Public license to the programm, as there is 
  a rather big interest in this thing from Commercial People ... :-)

* Included the indexmaker script, I wrote it to help me generate 
  an overview of the router ports I monitore. For a sample see
  http://www.ee.ethz.ch/stats/mrtg2

* changed the title generated by cfgmaker. So that the sysdescr comes
  this will help indexmaker to sort the stuff more sensibly.

* Added docs on the NT port by Stuard Schneider

* added a patch by Kit Powell to include the Devicename into
  the generated HTML page

Beta 27
-------

Features:

* Russell Vincent <vincent@ucthpx.uct.ac.za>
  has contributed a patch which makes mrtg much more
  configurable:
  
  a) you can now change the colors used for drawing the
     graphs.

  b) The mib variable to Monitor and the Associated Lables in the
     generated Webpages can now be customized.

* Brought Docs into sync with the latest Features.

* mrtg will now complain if an unknown option is used within the 
  cfg file ...

Beta 27.1
---------

Bugs:

* interval is correctly recognised

Features:

* there is an option called 'noinfo' which supresses
  the generation of the uptime and routername thingy

* linenumbers for unknown tags in cfg file

* friendlier message for unkown options.

Beta 27.2
---------

Bugs:

* error in check for ysize fixed

Beta 27.3
---------

Bugs: 

* when using external commands to fetch data in the target
  option, they could not take any arguments ... this was due to a 
  broken regexp ....

Beta 28:
--------

Features:

* mrtg will store the ifDescr associated with each interface it 
  queries into a file. The filename is generated from the name
  of the cfg file. (eg.   mrtg.cfg  ->  mrtg.ok )
  
  when mrtg is started the next time, it reads the ifDescr values
  from this file and compares them to the values from the current run.
  If the values do not match, a waring will be issued and the corresponding
  graph will not be updated. 

  The user can then fix the mrtg.cfg file and remove the offending line from
  the mrtg.ok file.

* Thanks to Dave mrtg can now cope with data sources which return absolute
  values. These are devices who will reset their value when you read from
  them.

* the file mibhelp.txt contains a list of MIB Identifiers known to mrtg
  which can be used apart from the usual ones ... The file also contains 
  a short description for each identifier ...

Bugs:

* Thanks to Kit Powell: indexmakers output can now also be served by an
  NCSA server .... virtual --> file

* external command execution now supports full sh syntax ...
  and there should be some error messages if the thing fails ...

* Labeling Error the second Incomming on the HTML page has to 
  be Outgoing ... thanks:  Peter Evans <peter@gol.com>

Beta 28.1
---------

Bug: strange things happened on empty ifDescs ...
     I will ignore them now ...


Beta 28.2
---------

Features: 

* cfgmaker now also comments out loopback ifs and the ons which are in
  testing mode. It now also knows a lot more if types ...
  thanks to <Heiko.Blume@bln.sel.alcatel.de> for the patch

Beta 28.3
---------

Bugs:

* Don't complain about if names if you can't reach the router ...

Beta 29
-------

Feature:

* added absmax tuneable. O'Tone Dave:
  maxbytes is the 'maximum' that the link can handle.  absmax is the real
  maximum.  Classic examples are links with data compression, and Frame
  Relay links (where the CIR is for example 128K, but the lines can
  burst up to T1). This allows rateup to accept higher transfer rates, but
  it will still draw the red line where it belongs ...

* New tunables From: Andres Kroonmaa <andre@ml.ee>
  xzoom and yzoom will zoom the graphs by giving a larger width and height
  in the IMG tag.
  background will set the background colour of the generated page

Buggs: 

* From: "Simonet Philippe, 8TO" <sip00@vg.swissptt.ch>
  I had some problem to read private MIBs of our Synoptics   
  concentrators(1.3.6.1.4.1.45.1.6.6.2.1.1.2.204006), and I solved that by
  changing the 'BER.pm' routine ... 

Beat 29.1
---------

Buggs:

* xzoom and yzoom and absmax did not get proper default values because of 
  a } in the wrong place ...

Beat 29.2
---------
Bug:

* The documentation for 'absolute' was wrong. Absolute is for datasources
  which are reset to zero when ever tey are read. The new gauge option
  does what the description of absolute promised ...

Feature:

* The 'gauge' option is data sources which are not time dependant, Meaning
  that the value you get frothe source is the actual value which should go
  into the logfile. Eg: Users Logged in, Diskspace Available, Modems Online.

Beta 29.3
---------

* Minor Cleanup of rateup.c for variable types ... (Dave)

Beta 29.4
---------

* Andreas Fuchs <andreas.fuchs@siemens.ch>
  Added 'statushack' option. This will make the return values of
  ifAdminStatus and ifOperStatus to be 1 for up and 0 for down and testing.
  this allows to monitore the usage of our modembank.

Beta 30
-------

Features

* New Makefile option 'substitute' to fix the path for perl in all the
  headers. Torbjrn Carlsson

* New Logo and docs by Tobi with help from
  Simon Amor <simon@foobar.co.uk> and
  Felix Tang <ftang@iconn.net>
  Serge Pluess <spluess@creative.net>

* To have physical linebreaks in the generated HTML you can insert
  '\n' into the PageTop string.

* New CFG Variable AddHead. Its content will be included into
  the HTML page between </TITLE> and </HEAD> people want to use this
  for Java scripts.

* added MIB names for Framerelay stats. See mibhelp.txt.
  thanks to Simon Ferrett <simonf@world.net>

* Created a friendlier error message if rateup dies.

* In the target definition you can now use full mathematical expressions.
  For example 2*( 2:public@helios /( ifAdminHak.2:public@trubadis +1))
  would be a syntacticaly valid target ... Now its up to you to figure out
  what you can do with this ... :-) Obviously the thing with the ifNum for
  modem stats can be solved easily with this ...
  Note the whitespace arrond the target definitions.
  
* test whether we can execute the rateup binary

Bugs

* There was no test whether WorkDir was actually specified. Tobi

* The statushack option was not consistant with the mode of mrtgs operation
  its functionality has been replaced by two new pseudo OID names:
  ifAdminHack and ifOperHack

Beta 30.1
---------

Bugs

* indexmaker was missing some slashes ...

Beta 30.2
---------

Bugs

* html in the footer of the mrtg generated page was incorrect ...
  
Beta 30.3
---------

* Added Debugging Code to ifOperHack .....

Beta 30.4
---------

* Found and fixed bug which prevented ifOperHack and ifAdminHack from
  working.

Beta 30.5
---------

* fixed NT's problems with the -x test
* fixed indexmaker to not report on ^ and $ nets

Beta 30.6
---------

* fixed NT again and updated NT docs ... thanks to stuard schneider.

Beta 30.7
---------

* In / Out strings in the legend were not configurabel. The new 
  parameters legendI and legendO allow to configure them. The defaults are 
  '&nbsp;In:' and '&nbsp;Out:' respectively.

  If you set LegendI or LegendO to an empty string then the corresponding
  line will not show up at all in the generated html page

  eg:
  -----
  LegendI[router]: :&nbsp;
  LegendO[router]:
  -----

  Will make the second legend line disapear all together and the first will
  neiter say In nor Out. This is usefull if you are monitoring something
  like a modem pool

* The legend at the left of the graph was not centered vertically.

Beta 30.8
---------

* previous fix made the color of the second text line below the graph to
  become the same as the first line

Beta 30.9
---------

* convert will move the old log to name.1.x-log and not to .old so that
  rateup does not overwrite the old logfile ...

* fixes to the documentation

* added contrib area for stuff contributed by mrtg users

* added more outup in case of dieing rateup ...

Beta 30.10
----------

* Fixed rateup for handling stupid NT parameter pasing properly ...

Beta 30.11
----------

* cfgmaker ... assumes now that any if with speed > 400MByte /s is
  a loopback if ...

* readme.txt gets generated automagicaly from readme.html

* cfgmaker will complain if a router port has not dns entry.

* SNMP_Session.pm does now automaticaly retry if it does not get
  an answer ... This was earlier implemented within mrtg. But the way it is 
  setup now, cfgmaker will benefit as well ... And it is moreconfigurable
  than the earier version. Check SNMP_Session (timeout) for details.

* Changed file Contrib to Contributors in order to avoid nameclashes on
  PC filesystems.... 

Beta 30.12
----------

* Fixed integration of SNMP_Session into mrtg ... 

Beat 30.13
----------

* New version of SNMP_Session which checks that the source of the answer 
  is actually the router wich was queried in the first place ..

* more sensible timeout values (hopefully)

* Steven Boswell <whatis@noc.cerf.net>

  * Added the "Directory" option for routers, so that each router can
    have its own directory for data.
  * Fixed a few non-portable references to pathname seperators, and one
    typo (CELLPADING => CELLPADDING)

Beta 30.14
----------

* Yet another new SNMP_Session which checks the requests serial number 
  an not the host the response came from. Whith this we can now be 
  sure to really get the answers to the requests we sent out. Even with short
  timeouts.

* A new version of BER.pm going with the new SNMP_Session.pm

Beta 30.15
----------

* another new version of SNMP_Session. THis one fixes some protability 
  bugs. As fahr as TCP/IP is regarded ...
 
* cfgmaker will not accept interfaces which say they have speed == 0 
  patch from Quan Nguyen <quan@vortex.CC.McGill.CA> 

* mrtg has a new configurable to specify a router to get the uptime from
  when handling targets with complex OID summs ... see mrtg.cfg-dist
  (routeruptime)   From: Juergen Unger <unger@choin.net>  

* ifdescription for indexmaker from Quan

* changed pops to shifts in cfgmaker, to fix problems with ciscos who 
  do not return an equal number of entries for get-table calls ...
  especially with cisco-private if descriptions. Using shift to mach up
  the arryas seems to be more reasonable in this case ... thanks to quan for 
  pointing this out ..

* moved TITLE to the beginning of the generated HTML so that it will
  show up in fancy indexes ...

* added hack to BER.pm and SNMP_Session.pm in order to make them work with 
  NT perl 5.001 again ... we'll leve this in until NT perl 5.003 comes out 
  of beta ...

* added get-active script from Russ Wright <Wright@LBL.Gov> to contrib area.
  This will look at the $trafficDir directory for MRTG generated HTML files,
  parse them and generate a listing of the most active interfaces in a file
  called "active.htlm" in the same directory

Beta 30.16
----------

* another new SNMP_Session.pm from Simon ... 
now it should really work under NT ...

2.0
---

New Contributions:

From: John-David Childs <jdc@ism.net> script to
get number of connected users from an ascend
>> script in contrib/ascendget

From: Jim Willette <mailroom@ctec.net> a patch to make 
mrtg record stats based on interface ip address instead of 
Interface number. It does not do all the great errorchecking 
and no OS testing but it is functional for my needs.
>> patch in contrib/mrtg-ipget

2.0.1
-----

Fixed ascendget script 

2.1
---

Added 100BaseVG iftyp to cfgmaker

Fixed rounding Bug in rateup.c which caused it to scale graphs with small 
values incorrectly ...

Added rdlog2 by Phillip Simonet. This tool transforms a xfig network 
map into a clickable gif with colorcoded representation of the 
current load of your network links. The information for the colorcoding
is taken from the mrtg log files.

From: "Peter W. Osel" <pwo@hl.siemens.de>
A perl script to get roundtrip delays to hosts by sending a ping 
to them. Added to contrib.

Allowed any character except @ and \s to be used in a community string ...

Fixed two instances where variables were declared twice (my($var)) 
within the same scope. Late perl5.003 versions do not like that ...
and it was wrong anyway. This happens both in SNMP_Session.pm 
and mrtg

When using the Directory option in connection with [^] a stray space gets
added to the path. This is now removed with s/\s//g ... spaces in path names
are stupid anyway.

2.2
---

Added Contribution from Anthony Rumble. For gathering stats for apache
webservers and squid proxies

From: T. Pospisek <tpo@spin.ch>
SHELL scripts to get active tty(-dial-in modem-) lines localy and remotely. 
I'm using them with a cyclades board but they can be adapted at wish to
different tasks.

made graphs in indexmaker generated pages clickable ... leewm@sgp.hp.com 

added contributet script for gatherig portmaster stats 

added mrtg-blast contrib from Balthasar T. Indermuehle

made mrtg observe order of routers in cfg file .... as suggested by
Mick Ghazey <mick@lowdown.com>  

Added GetSNMPLinesUP to contrib ... from Carlos Canau <canau@dawn.EUnet.pt>
this is for monitoring Modembanks ...

Added timezone configurable to set a timezone per router. Details in 
mrtg.cfg-dist as suggested by Jun (John) Wu 

Added MaxBytes check ....

Fixed portability problem of Makefile under IRIX

Added sendmail stats contrib from Rachel Polanskis

Changes 2.3
-----------

Added IconDir configurable, for people who want to keep the mrtg 
logo in a central location. As suggested by James FitzGibbon <james@nexis.net>

Made the periode var a double in rateup.c as suggested by Dave

Added patch from Paul <root@nevertheless.redline.ru> to cfgmaker
now it will try to figure the speed of an interface ....

Stoped mrtg from aborting on non existing HOST names

Warn on Duplicate CFG entries.

Customizable week number thingy from Simon Leinen

rateup fix for FreeBSD: FreeBSD does not need malloc.h
included. From: Ulf Zimmermann <ulf@Alameda.net>

Fix for time chitter by dave ...

new pingprobe from Peter W. Osel

relaxed parsing of keywords. ther can be a space before the 
colon .... as sugested by Samath


From mcm@unx.sas.com Tue Jun  3 07:43:38 1997

Cheanged rateup.c so that it will start scaling the graphs when the 
datarate is higher than MaxBytes, if the AbsMax value is set. Even when it
is operation in unscaled mode ...
I also changed 'indexmaker' to allow me to pass in a title, and
to support the 'Directory' option in the configuration file.

From: Jay Soffian <jay@lw.net> Wed, 04 Jun 1997 15:34:01 -0400

Added new configurables XScale[], YScale[] to realy enlarge the graphs and not
just make their pixels larger ...

Added configurable Step[] to allow for shorter base periods different from 
5 Minutes ... But beware, this is NOT supported ... and its likely
that you will run into problems ...

Updated to latest version of SNMP_Session.pm This will work fine with 
perl5.002 and above. BUT not with perl 5.001 !!! so if you are still using 
an old version of perl, use SNMP_Session.pm-for-perl5.001

Changes 2.4
-----------

* fixed IconDir ... Carlos Canau <canau@dawn.EUnet.pt>

* mrtg.cfg-dist debugged and rewritten ...  Paul FIscher <paul@shire.btg.com>

* mod_expire tip from Stephane Bortzmeyer <bortzmeyer@cache.cnrs.fr>
  added to mrtg.cfg-dist

* mrtg: large values are not handled by int any more but rather by 
  sprintf "%.0f"

* mailstat fixes by Petter Reinholdtsen <pere@minerva.link.no>
 
* added nopercent option as suggested by Frank van Wensveen

* added contrib by Philippe.Simonet@SWISSTELECOM.com
  a c-programm to create gifs showing the traffic distribution over time
  real neat ...  Thanks ...

* changed chops in mrtg to chomp calls just in case ... 

* fixed 'external' command parsing in target lines ...
