Hi there, I'm new to Tomato. Started using it a few months ago. I like the bandwidth monitoring tools, but I think it's missing something: the ability to monitor bandwidth on a per client basis. For example, in my case, we share an internet connection through the router, and the cable company has a data usage limit. When we hit the limit, I get charged extra on my monthly bill, but I don't know which of my roommates used too much bandwidth. I've searched around to try to find a solution, but I haven't been able to find any. So, I started fooling around with it myself. Here's what I came up with, looking for some help to get this working. I started reading about iptables, and thought I could use them to count how much data someone was using by inserting some custom FORWARD chains/rules... From tomato's main GUI, under Administration -> Scripts, I entered a firewall script: /usr/sbin/iptables -N mymac /usr/sbin/iptables -I FORWARD -m mac --mac-source XX:XX:XX:XX:XX:XX -j mymac (using my real MAC address) This inserts an iptables chain, with no rules, so from what I can understand, the router runs the chain on the matching packets (ie: all forwarded packets to and from my machine - this could also be done by IP address instead of MAC address)... and since there are no rules, it just continues processing the packets however tomato has configured the rest of the iptables chains/rules. So, now, when I list the iptables via the SSH session, I see: # iptables -L -nv ... Chain FORWARD (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 989K 44M mymac 0 -- * * 0.0.0.0/0 0.0.0.0/0 MAC XX:XX:XX:XX:XX ... This gives me a packet count, but more importantly, the number of bytes of data from all packets with my MAC address in there. What I've noticed, though, is that the whole iptables seems to get zero'd out on occasion. I don't know when/how the tables get cleared. So, I thought that I would write a script to run as a cron job every couple of minutes to continuously monitor the byte count and write it to a file, then occasionally get the file from the router and store it on my local machine. At the end of each month, I could have the total bandwidth usage per client. Does this make sense? Can anyone see any problems with it? Is there a better way? Easier way? Could this somehow be done all via the tomato gui? I don't care to have fancy graphs, just the per-client count in text somewhere on the page. Will these kinds of rules in the FORWARD table have accurate counts of data used per client? Tomato keeps such accurate bandwidth data, I'm surprised that it doesn't already do this. I'm stuck now because I don't know how to write the script to check the iptables byte counts and store them. If I can get this to work, whenever we go over our bandwidth limit, I can tell exactly who used what, and so who should foot the bill for the extra costs associated with going over the limit. Thanks in advance for any help or suggestions!