mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-11-01 16:44:23 +08:00
🤞 Sync 2026-10-29 22:46:41
This commit is contained in:
1 parent
ff521a5a6a
commit
8d20d896c0
78 files changed
+16387
-1210
No files matched your search
@@ -146,7 +146,10 @@ return L.view.extend({
|
||||
_('bpf_burst => same as the default scheduler') + '<br />' +
|
||||
_('bpf_red => sends all packets redundantly on all available subflows') + '<br />' +
|
||||
_('bpf_first => always picks the first subflow to send data') + '<br />' +
|
||||
_('bpf_rr => always picks the next available subflow to send data (round-robin)')
|
||||
_('bpf_rr => always picks the next available subflow to send data (round-robin)') + '<br />' +
|
||||
_('bpf_ecf => sends on the lowest-latency subflow, and on a slower one only when that does not delay the data') + '<br />' +
|
||||
_('bpf_blest => sends on the lowest-latency subflow, and on a slower one only when that does not block the fastest one') + '<br />' +
|
||||
_('bpf_overflow => uses the subflows by weight: a lower weight only carries what the higher ones cannot')
|
||||
|
||||
);
|
||||
scheduler.value("default", _("default"));
|
||||
@@ -178,6 +181,9 @@ return L.view.extend({
|
||||
// bpf_red => sends all packets redundantly on all available subflows
|
||||
// bpf_first => always picks the first subflow to send data
|
||||
// bpf_rr => always picks the next available subflow to send data (round-robin)
|
||||
// bpf_ecf => sends on the lowest-latency subflow, and on a slower one only when that does not delay the data
|
||||
// bpf_blest => sends on the lowest-latency subflow, and on a slower one only when that does not block the fastest one
|
||||
// bpf_overflow => uses the subflows by weight: a lower weight only carries what the higher ones cannot
|
||||
}
|
||||
|
||||
scheduler.onchange = function(ev, section_id, value) {
|
||||
@@ -203,6 +209,7 @@ return L.view.extend({
|
||||
o.depends("mptcp_scheduler", "bpf_weight");
|
||||
o.depends("mptcp_scheduler", "bpf_weight_rr");
|
||||
o.depends("mptcp_scheduler", "bpf_burstweight");
|
||||
o.depends("mptcp_scheduler", "bpf_overflow");
|
||||
/* Every option below that depends() on another field keeps its stored
|
||||
* value while hidden: form.js otherwise removes it on any save, so a
|
||||
* save made with another scheduler or with mptcp_pm_type=0 silently
|
||||
@@ -402,7 +409,7 @@ return L.view.extend({
|
||||
// (discussion #4368).
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.option(form.Value, "multipath_weight", _("Weight"), _("Only used by *weight schedulers/path managers. Ignored if no weight scheduler is selected.") + '<br />' + _("A weight >100 make it more attractive, a weight <100 make it less attractive. Max 256"));
|
||||
o = s.option(form.Value, "multipath_weight", _("Weight"), _("Only used by the weight schedulers (bpf_weight, bpf_weight_rr, bpf_burstweight, bpf_overflow) and path managers. Ignored if no weight scheduler is selected.") + '<br />' + _("A weight >100 make it more attractive, a weight <100 make it less attractive. Max 256"));
|
||||
// 1 to 256, as "ip route" takes it: the schedulers read 0 as no weight
|
||||
// (neutral 100) and add the weight to a signed counter
|
||||
o.datatype = "and(uinteger,range(1,256))";
|
||||
|
||||
@@ -96,7 +96,7 @@ return L.view.extend({
|
||||
|
||||
var mptcpScheduler = normalizeSchedulerValue(uci.get('network', 'globals', 'mptcp_scheduler'));
|
||||
var mptcpHasDscpScheduler = (mptcpScheduler === 'bpf_dscp');
|
||||
var mptcpHasWeightScheduler = (mptcpScheduler === 'bpf_weight' || mptcpScheduler === 'bpf_weight_rr' || mptcpScheduler === 'bpf_burstweight');
|
||||
var mptcpHasWeightScheduler = (mptcpScheduler === 'bpf_weight' || mptcpScheduler === 'bpf_weight_rr' || mptcpScheduler === 'bpf_burstweight' || mptcpScheduler === 'bpf_overflow');
|
||||
|
||||
var mqvpnEnabled = (mqvpn.enabled === true);
|
||||
var mqvpnScheduler = mqvpn.scheduler;
|
||||
@@ -115,10 +115,10 @@ return L.view.extend({
|
||||
var showWeight = mptcpHasWeightScheduler || mqvpnHasWeightScheduler;
|
||||
|
||||
m = new form.Map('network', _('DSCP / Weight Routing'),
|
||||
_('Choose which WAN carries each DSCP-tagged traffic class -- for the MPTCP bpf_dscp scheduler and for mqvpn -- and review the per-WAN weight used by the *weight schedulers on both. This page only edits the pins/weights; pick the scheduler that actually uses them on the MPTCP and MQVPN pages themselves.'));
|
||||
_('Choose which WAN carries each DSCP-tagged traffic class -- for the MPTCP bpf_dscp scheduler and for mqvpn -- and review the per-WAN weight used by the weight schedulers on both. This page only edits the pins/weights; pick the scheduler that actually uses them on the MPTCP and MQVPN pages themselves.'));
|
||||
|
||||
if (!showDscp && !showWeight) {
|
||||
m.description += '<br /><br />' + _('Nothing to show yet: no DSCP scheduler (bpf_dscp) or weight scheduler (bpf_weight/bpf_weight_rr/bpf_burstweight, or mqvpn’s Weighted RTT/Weighted Round Robin) is currently selected on the MPTCP or MQVPN pages.');
|
||||
m.description += '<br /><br />' + _('Nothing to show yet: no DSCP scheduler (bpf_dscp) or weight scheduler (bpf_weight/bpf_weight_rr/bpf_burstweight/bpf_overflow, or mqvpn’s Weighted RTT/Weighted Round Robin) is currently selected on the MPTCP or MQVPN pages.');
|
||||
return m.render();
|
||||
}
|
||||
|
||||
@@ -170,7 +170,7 @@ return L.view.extend({
|
||||
|
||||
if (showWeight) {
|
||||
s = m.section(form.TypedSection, 'interface', _('WAN weight'),
|
||||
_('Used by the *weight MPTCP schedulers (bpf_weight/bpf_weight_rr) and by mqvpn’s "Weighted RTT"/"Weighted Round Robin" schedulers -- same value, applies to both upload and download (mirrored to the gateway automatically). Unlike the DSCP pins above, weight is a single value per WAN, not per traffic class.') + ' ' +
|
||||
_('Used by the weight MPTCP schedulers (bpf_weight/bpf_weight_rr/bpf_overflow) and by mqvpn’s "Weighted RTT"/"Weighted Round Robin" schedulers -- same value, applies to both upload and download (mirrored to the gateway automatically). Unlike the DSCP pins above, weight is a single value per WAN, not per traffic class.') + ' ' +
|
||||
_('Only WANs with Multipath TCP enabled (the “Multipath TCP” option on the MPTCP page’s Interfaces Settings) are listed below.'));
|
||||
s.filter = function(section) {
|
||||
return isEligibleIface(section) && isMultipathEnabledIface(section);
|
||||
|
||||
Reference in new issue
Block a user