| Version 8 (modified by ejhernandez@…, 6 years ago) (diff) |
|---|
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 per application protocol
- Shape not only egress traffic but also ingress traffic
- In theory, kernel should treat them equally but it's not and IMQ workaround should be used.
- Its lack of stability is the main point to delay its incursion
- In theory, kernel should treat them equally but it's not and IMQ workaround should be used.
- 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
Class structure
Attachments
-
class diagram.png
(42.6 KB) -
added by ejhernandez@… 6 years ago.
Class structure
