Goal
Provide a network traffic shaper which supports web-based interface to manage Quality of Service (QoS) functions available in Linux Kernel.
Requirements
- Allow shaping from different constraints:
- Per service (protocol and port)
- Per eBox object
- Per interface
- Per application protocol
- Per source/destination address
- Shaping capabilities:
- Priorize traffic
- Share bandwidth (equally|proportional)
- Guarantee minimum bandwidth
- Limit maximum bandwidth with/out bursting
- Guarantee maximum delay
- Fallback to default rule
- Treat egress traffic (sent) and ingress (received) equally using IMQ
- Enable/Disable/Remove/Change? priority to a rule
Design
Integration between Firewall module and Traffic Shaping module is needed, the requirements are filled here?.
The traffic shaping module design will be taken incrementally. It will be taken different phases deployed in roadmap:
- Shape per service and per interface
- The shaping consists of:
- Guarantee bandwidth
- Limit bandwidth
- Priorize traffic
- The different rules can be enabled, disabled, removed or changed
- The shaping consists of:
- Shape per eBox object
- An eBox object can be a host or a net
- Shape per source/destination address
- Shape internal interfaces by egress traffic
- It almost fills the need to shape ingress traffic if eBox acts as a gateway.
- Shape not only egress traffic but also ingress traffic
- Shape per application protocol
- Include bursting into limit bandwidth
- Guarantee a maximum delay using HFSC queue discipline
- This gives VoIP/SIP and other very interactive traffic a point
- Almost transparent from user point of view
- Hierarchical rules
- Sharing bandwidth
Web interface will use prototype library to give AJAX support
User suggestions
A trick for Ebox application layer shape I suggest a possibility to add QOS application layer 7 in groups for use on diferent networks and the same for services. Another think is adding a new function to shape traffic in percentage for setting the bandwidth or in Kb/Mb? or in %.
Bridge network interfaces also is a good tip.
Class structure
Attachments
-
class diagram.png
(42.6 KB) -
added by ejhernandez@… 6 years ago.
Class structure
