This section will describe the overall process of how AstroFlow managers bandwidth.
AstroFlow needs to know your total amount of bandwidth in order for it to effectively manage traffic flow. This bandwidth would be assigned to your incoming and outgoing classes. These are the main classes and your total amount of bandwidth will be assigned to them. You would then create sub-classes in order to split up your bandwidth according to priority or assigning different bandwidth guarantees to clients. You could effectively think of it as a family tree as in Figure 2. Every time you split a class or create sub-classes the total amount of bandwidth you can assign to sub-classes cannot exceed the total amount of bandwidth assigned to their parents.
I have 512K total bandwidth for incoming and 512K for outgoing. I would create four different classes. Critical priority, high priority, medium priority and low priority. For each sub-class I would assign guaranteed and burst bandwidth according to my priority. For instance, critical priority would get 256K guaranteed and be allowed to burst to 512K thus, guaranteeing 256K to this class. My high priority, I would assign 128K and allow it to burst to 512K. My medium priority would get 96K and burst 512K and my low priority sub-class will get the remaining 32K also allowing to burst to 512K. So as you can see the guaranteed bandwidth for the classes are greater according to the priorities but the burst rates are all the same allowing each class to borrow bandwidth from the root class if surplus bandwidth is available. So, if no high priority class bandwidth is being used
that bandwidth becomes pooled making it available for other classes that may require it.
Bursting is optional and if set to zero or left blank disables it. So even if surplus bandwidth is available but a class has no burst rate, that class will not be able to transfer data above its guaranteed rate.
In AstroFlow the priority of classes go according to their order. The first class will have the highest priority and thus the last the lowest. Classes can be sorted by clicking on the up or down arrows to the left of the class.
Taking the above scenario we can go even further and create sub-classes off of our critical priority class and do the same as above. We could, for instance, create four classes and call them HTTP, SMTP, POP3 and VPN and assign equal bandwidth to each class thus guaranteeing each of these critical services an equal share of our priority class. The burst rate also applies. Each one of these can have the option of bursting to 256K. This could again be split up to more classes and so on.
So as you can see, from Figure 2 that guarantees can be met from within guarantees thus being able to guarantee service levels.