From a114dc67bfa9da56ea09463af4dc9da1900fe261 Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Sat, 14 Apr 2018 13:07:06 +0200 Subject: [PATCH] Traffic shaper, add buckets option https://github.com/opnsense/core/issues/2359 --- .../OPNsense/TrafficShaper/forms/dialogPipe.xml | 7 +++++++ .../OPNsense/TrafficShaper/forms/dialogQueue.xml | 7 +++++++ .../models/OPNsense/TrafficShaper/TrafficShaper.xml | 12 ++++++++++++ .../service/templates/OPNsense/IPFW/ipfw.conf | 4 +++- 4 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/opnsense/mvc/app/controllers/OPNsense/TrafficShaper/forms/dialogPipe.xml b/src/opnsense/mvc/app/controllers/OPNsense/TrafficShaper/forms/dialogPipe.xml index b0f8cfdfa..fa5c44bfe 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/TrafficShaper/forms/dialogPipe.xml +++ b/src/opnsense/mvc/app/controllers/OPNsense/TrafficShaper/forms/dialogPipe.xml @@ -33,6 +33,13 @@
  • Leave this value empty if you want to create a pipe with a fixed bandwith.
  • ]]> + + pipe.buckets + + text + Specifies the size of the hash table used for storing the various dynamic pipes configured with the mask setting + true + pipe.scheduler diff --git a/src/opnsense/mvc/app/controllers/OPNsense/TrafficShaper/forms/dialogQueue.xml b/src/opnsense/mvc/app/controllers/OPNsense/TrafficShaper/forms/dialogQueue.xml index f130c5349..5d46e3a64 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/TrafficShaper/forms/dialogQueue.xml +++ b/src/opnsense/mvc/app/controllers/OPNsense/TrafficShaper/forms/dialogQueue.xml @@ -27,6 +27,13 @@
  • Leave this value empty if you want to specify multiple queues with different weights.
  • ]]>
    + + queue.buckets + + text + Specifies the size of the hash table used for storing the various dynamic queues configured with the mask setting + true + queue.codel_enable diff --git a/src/opnsense/mvc/app/models/OPNsense/TrafficShaper/TrafficShaper.xml b/src/opnsense/mvc/app/models/OPNsense/TrafficShaper/TrafficShaper.xml index c00e56008..8090c44c7 100644 --- a/src/opnsense/mvc/app/models/OPNsense/TrafficShaper/TrafficShaper.xml +++ b/src/opnsense/mvc/app/models/OPNsense/TrafficShaper/TrafficShaper.xml @@ -48,6 +48,12 @@ destination + + N + 1 + 65535 + bucket size should be between 1...65535 + N @@ -149,6 +155,12 @@ destination + + N + 1 + 65535 + bucket size should be between 1...65535 + 0 Y diff --git a/src/opnsense/service/templates/OPNsense/IPFW/ipfw.conf b/src/opnsense/service/templates/OPNsense/IPFW/ipfw.conf index f86de6d69..eefce4d27 100644 --- a/src/opnsense/service/templates/OPNsense/IPFW/ipfw.conf +++ b/src/opnsense/service/templates/OPNsense/IPFW/ipfw.conf @@ -39,6 +39,7 @@ flush pipe {{ pipe.number }} config bw {{ pipe.bandwidth }}{{ pipe.bandwidthMetric }}/s{% if pipe.queue %} queue {{ pipe.queue }}{% if pipe.queueMetric != 'slots' %}{{pipe.queueMetric}}{% endif %}{% endif + %}{% if pipe.buckets %} buckets {{ pipe.buckets }}{% endif %}{% if pipe.mask != 'none' %} mask {{ pipe.mask }} 0xffffffff {% endif %} type {% if pipe.scheduler|default('') != '' %} {{pipe.scheduler}} {% else %} wf2q+ {% endif %}{% if pipe.delay|default('') != '' %} delay {{pipe.delay}} {% endif %}{% @@ -63,7 +64,8 @@ pipe {{ pipe.number }} config bw {{ pipe.bandwidth }}{{ pipe.bandwidthMetric }}/ {% if helpers.exists('OPNsense.TrafficShaper.queues.queue') %} {% for queue in helpers.toList('OPNsense.TrafficShaper.queues.queue') %} {% if helpers.getUUIDtag(queue.pipe) in ['pipe'] %} -queue {{ queue.number }} config pipe {{ helpers.getUUID(queue.pipe).number }} {% if queue.mask != 'none' %} mask {{ queue.mask }} 0xffffffff {% endif %} weight {{ queue.weight }}{% +queue {{ queue.number }} config pipe {{ helpers.getUUID(queue.pipe).number +}}{% if queue.buckets %} buckets {{ queue.buckets }}{% endif %}{% if queue.mask != 'none' %} mask {{ queue.mask }} 0xffffffff {% endif %} weight {{ queue.weight }}{% if queue.codel_enable|default('0') == '1' %} codel {% if queue.codel_target|default('') != ''%} target {{queue.codel_target}} {% endif %}{% if queue.codel_interval|default('') != ''%} interval {{queue.codel_interval}} {% endif %}{%