From 98843bf427fb59db7c0894403e220900772cf1aa Mon Sep 17 00:00:00 2001 From: Lech Perczak Date: Fri, 9 Jun 2023 00:57:36 +0200 Subject: [PATCH] luci-proto-qmi: allow v6apn and (v6)profile configuration To support split-APN dual-stack connections over QMI, add new parameters supported in UCI to LuCI as well. Previously, connection profile wasn't configurable from LuCI at all, so add options to set which APN profile to match for each protocol. Signed-off-by: Lech Perczak (cherry picked from commit c682e530e2b95af7768b6a0c74c942222e0cd78d) --- .../luci-static/resources/protocol/qmi.js | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js b/protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js index 98ae486d37..1963bc0412 100644 --- a/protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js +++ b/protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js @@ -65,8 +65,7 @@ return network.registerProtocol('qmi', { }, this)); }; - o = s.taboption('general', form.Value, 'apn', _('APN')); - o.validate = function(section_id, value) { + var validate_apn = function(section_id, value) { if (value == null || value == '') return true; @@ -75,6 +74,14 @@ return network.registerProtocol('qmi', { return true; }; + o = s.taboption('general', form.Value, 'apn', _('APN')); + o.validate = validate_apn; + + if (L.hasSystemFeature('ipv6')) { + o = s.taboption('general', form.Value, 'v6apn', _('IPv6 APN')); + o.validate = validate_apn; + o.depends('pdptype', 'ipv4v6') + }; o = s.taboption('general', form.Value, 'pincode', _('PIN')); o.datatype = 'and(uinteger,minlength(4),maxlength(8))'; @@ -133,5 +140,17 @@ return network.registerProtocol('qmi', { _('If unchecked, the advertised DNS server addresses are ignored')); o.default = o.enabled; + o = s.taboption('advanced', form.Value, 'profile', + _('APN profile index')); + o.placeholder = '1'; + o.datatype = 'uinteger'; + + if (L.hasSystemFeature('ipv6')) { + o = s.taboption('advanced', form.Value, 'v6profile', + _('IPv6 APN profile index')); + o.placeholder = '1'; + o.datatype = 'uinteger'; + o.depends('pdptype', 'ipv4v6'); + }; } }); -- 2.30.2