Hi, I'm investigating BA v8.5 (VLAN support) and I have devised a small script to plot graphs from captured data I found very neat. I'd like to contribute it just in case you find it useful, and also to request your help in finding bugs and suggesting improvements. I don't know how many users are up to this particular version, perhaps somebody can tailor it to other BA versions. My customer wants to grant a commited rate to groups of LANs in a very particular way (e.g. a group of networks A, B and C wants to get a minimum X rate, networks D and E a minimum Y rate, etc). I have resorted to divide X over 3, Y over 2, etc., watch the graphic results, and then progressively tune up BA VLAN rules empirically. We had no available tool to perform the job of aggregating the offered load from the selected groups, so I took up this little script. You can also set up trivial (one-network) "groups". The script scans /etc/arbdefault.conf looking for #GROUP comments before some contiguous set of lines of VLAN statements. Each group's aggregated bandwidth during BA's operation will be reflected by a curve in the graph. The GROUP is closed by a new #GROUP comment, or by the end of the file. HARD limits are also monitored. (By the way, I already had had to make a minor modification to the /art/start_it script as it did not manage well comments to lines containing "VLAN". I just changed "cat /etc/arbdefault.conf | grep ..." by "cat /etc/ arbdefault.conf | grep -v "^#" | grep ..."). You can edit the conf file without need to restart BA. The edition will do no harm to BA's behavior in case of stopping and restarting BA. So if you have something like: #GROUP Customer X VLAN 10.0.0.0/16 ... VLAN 10.1.0.0/16 ... #GROUP Customer Y VLAN 192.168.0.0/24 ... You will get a curve labeled "Customer X" showing the aggregated BW for those two 10.X.X.X VLANs, and one labeled "Customer Y" showing BW for VLAN 192.168.0.0/24. The scripts operates by querying BA's 'brain' (i.e. by launching a 'brctl getbrain my ' command) each x seconds during a specified period of time. It generates a .dat file which contains plotting instructions for Gnuplot. To use the script you have to: 1) Manually edit /etc/arbdefault.conf to reflect your idea of GROUPs. Put them any description you like. It will be included in the graph as a reference. 2) Call the script netplot with arguments such as: -file=FILENAME The root name of the .dat file -secs=n The number of seconds to run -each=m The interval in seconds between measurements -title=STRING The title to appear over the graph -wavg If you want WAVG statistics (default AVG) -yrange=Y Specify a maximum dependent ordinate in KBps (e.g. to have a number of plots over a same scale or to compare against your total link BW) - default is autoscaling. 3) The script will generate a FILENAME.dat after n seconds. Then you can do "gnuplot FILENAME.dat" to obtain FILENAME.png. You can safely set a cron task to do hourly measurements each 5 secs. The .dat files are typically some 40K in size for an hour's work. For instance you can have a script called 'callnetplot' in /root: HOUR=`date +%m%d-%H%M` SECS=3600 /root/netplot -file=vlans$HOUR -secs=$SECS -each=5 -title=$HOUR \ -yrange=100 And set up a cron task to call it this way: 0 8-18 * * mon-fri /root/callnetplot This will collect a whole week' hourly statistics in files named vlansMMDD-0800.dat, vlansMMDD-0900.dat, etc. You are free to do what you want with this script. I'd like to know if it worked for you. Please feel free to contact me on any event. I seem to have been the one who requested this version of BA, and this is my way to show how grateful I feel (long live Open Source!). Script follows... #!/usr/bin/perl -s # prepare PNG graph showing aggregated BW for network groups # ############################################## # WARNING # # this script # # RUNS ONLY TESTED ON BANDWIDTH ARBITRATOR v8.5 GPL # ############################################## # arguments # -file= # -secs=