tx/rx accumulated monthly

There is demand for this, and every now and again the topic comes up on the forum. I also have a monthly transfer limit, beyond which my rate is cut to dialup speed. Some other people have to pay for extra download.

So, I have implemented transmit and receive cumulative totals for the calendar month. These values are in MB and appear on mouse-over the network tray icon.

I have kept download and upload totals separate, as some people are only limited to a certain amount of download per month, unlimited upload.
Also, in my case, there is a lot of upload from my laptop to the router, which does not go out on the Internet -- this seems to be a peculiarity of the 'ath5k' kernel wireless driver.

The network_tray PET has been updated to version 2.4.2:

And the source:

However, network_tray does not work on its own. I have also edited /etc/rc.d/rc.sysinit and /etc/rc.d/rc.shutdown in Woof.

Posted on 14 Aug 2010, 11:22


Posted on 15 Aug 2010, 7:03 by BarryK
Monthly acc for dialup
Note that I have only tested this with SNS. It should work ok for any network that stays "up" until Puppy shutdown. Dialup is a problem, as it might be disconnected before shutdown.

The log files are:

If there is an active network at shutdown, /etc/rc.d/rc.shutdown will read /sys/class/net/$INTERFACE/statistics/rx_bytes (and tx_bytes) and add those values to rx_bytes_month and tx_bytes_month.
At bootup, rx.sysinit will reset rx_bytes_month and tx_bytes_month to zero at the start of a month.

So, what we need in 'pupdial' is perform the same operation as rc.shutdown does, just before disconnecting. The code can be conditional, test for existence of rx_bytes_month or tx_bytes_month, so will not perform the operation on older puppies.

Rerwin is the guy who maintains pupdial, I'll contact him about this.

In fact, any network code that has a disconnect feature can incorporate this code into it. Something like this:

if [ -f /var/local/sns/rx_bytes_month ];then

if [ -d /sys/class/net/${ACTIVE_INTERFACE}/statistics ];then
RX_BYTES="`cat /sys/class/net/${ACTIVE_INTERFACE}/statistics/rx_bytes`"
TX_BYTES="`cat /sys/class/net/${ACTIVE_INTERFACE}/statistics/tx_bytes`"
RX_BYTES_MONTH=`cat /var/local/sns/rx_bytes_month`
echo -n "$RX_BYTES_MONTH" > /var/local/sns/rx_bytes_month
TX_BYTES_MONTH=`cat /var/local/sns/tx_bytes_month`
echo -n "$TX_BYTES_MONTH" > /var/local/sns/tx_bytes_month

Posted on 15 Aug 2010, 7:20 by 01micko
Hi Barry

This is fantastic!

People have been asking for this in the Pwidgets (a special widget to measure upload/download) thread for a long time, especially for the pre-paid 3G modems which work well in Puppy thanks to rerwin.

I'm sure zigbert will be most interested when he gets the time. I'm blowed if I know where he gets any time, he does so many different things.
http://sigmundberglund.com (sorry for off topic link).


Posted on 15 Aug 2010, 8:47 by BarryK
Monthly log backport
Um, when I upload Woof, anyone can grab it and get rc.sysinit and rc.shutdown out of it and extract the relevant code and backport it to any older Puppy.

Posted on 15 Aug 2010, 8:54 by BarryK
Network disconnect
A qualifier to above posts. Any network code that disconnects the interface can have the code I posted, but it must also bring down the interface, so that the rx_bytes and tx_bytes get removed (and will start from zero if the network is brought up again in the same session).

If the network is disconnected but interface left active, I think that the reading of rx_bytes and tx_bytes in rc.shutdown is sufficient.

Posted on 2 Sep 2010, 7:21 by scsijon
mod please if possible
Barry, is there the possability to have the package work with a shutdown/restart the network so that when you restart the computer it reads the last tx/rx and reloads the actual to be visable rather than resetting each time?

Maybe with a date clearing setting, not just a reset on the "1st of xxxxx" so that those like us on sat have a clear idea on how were going.

even something like the ff netuseage addin.


Posted on 2 Sep 2010, 8:41 by BarryK
tx/rx acc
tx/rx does accumulate over the month. Not fully implemented though -- currently should work properly with SNS. When I update PupDial, rerwin has implemented support also -- will be in Wary 070.

Other tools should accumulate properly if their network interface stays up until shutdown/reboot.