I would look into tc linux traffic shaping. I'm not sure if the solution I propose will be applicable to your settings but here it is:
1) Use iptables to mark packets and track data usage.
2) use tc and iptables (details about implementation can be found at lartc.org)
-use tc to set different classes with rate limits and ceils that suit your need.
-use iptables to mark packets from a specific mac address
-use tc to direct packets with certain marks set by iptables to your traffic shaping rules.
-have tc output data usage
I was also able to find this thanks to google:
http://www.docum.org/docum.org/monitor/
I'm sure there are various ways to accomplish what you need and may take some time to get the right solution to your problem.