| Version 1 (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 rule to
- Treat egress traffic (sent) and ingress (received) equally using IMQ
- Enable/Disable/Remove/Change? priority to a rule
Design
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 changes
- The shaping consists of:
- Shape per eBox object
- An eBox object can be a host or a net
- 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.
- Shape per source/destination address
- 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
Attachments
-
class diagram.png
(42.6 KB) -
added by ejhernandez@… 6 years ago.
Class structure