Django-based HTB shaper configurator
I’ve decided to make it available after some nice people asked for this.
Now i have no time and, let’s say, health to make it better, so please don’t complain :-)
I guess it maybe would be better to make it available somewhere at code.google.com — i would like to work on this code later, surely.
Anyway. Now — as it now is. With incomplete README:
Hi. Sorry, this is a mess. Look at settings.py, of course. And there is one more file, shap_defaults.py, take a look, make changes. This configurator assumes that you have a linux box with two network interfaces connected in a bridge (two-ports Ethernet switch), and you wish to set up a HTB shaper on each; and these shapers should be symmetrical, one for incoming (destined to your IP(s)) and another for outgoing (from your IP(s)) traffic. This configurator assumes that you already do have a script, which should set up your shaper's "basement" — root qdisc and root class(es). With their leaves (qdiscs and classes) possibly. With — important — hash tables for all your /24s. An i assume you can set up django and add this "project" to it .) Then you can set up (via django admin interface or using fixtures) your networks, all one by one, as /24 prefixes (2 for /23, 4 for /22 etc..). You can (and should, actually) configure: - "QoS classes" (in terms of "which class should be a parent for this client's class" and "which part of ceil should be guaranteed"). - contract types (to use identifiers for contracts in a form "<letter_or_some_letters>-<digits><optional_prefix>") - ?.. something else?.. Well, i will update this README, i hope. You may configure: - "own" client's networks (which, for example, your client announces to you via some of dynamic routing protocols, or which are set up statically by you own) - network ranges delegations — ugly, "incomplete" (if smth else may be considered as complete) Now — i am really sorry, *really* :-) — there is no gettext support, and there are a lot of comments and remarks in Ukrainian. Now there are a lot (no too much though) places with unused code or like this — *this is a mess*. I am not a programmer, at all. I wish _you_ could help me to do this better.) "AS IS", surely, and this README — "AS IS". Sorry. # .-) # vim: set tw=72:
I am not even sure this can be deployed and used. It works for me though, works great. So i hope i will update it to some more usable state.