From b955dbc2510df97e678f2ad71283e944da4f45fe Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Fri, 7 Jun 2024 14:51:31 +0200 Subject: [PATCH] interafces: track interface id #5630 --- src/etc/inc/interfaces.inc | 6 ++++++ src/www/interfaces.php | 22 ++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/src/etc/inc/interfaces.inc b/src/etc/inc/interfaces.inc index 390ff1d48..5de9f40b7 100644 --- a/src/etc/inc/interfaces.inc +++ b/src/etc/inc/interfaces.inc @@ -2961,6 +2961,9 @@ function DHCP6_Config_File_Basic($interface, $wancfg, $wanif, $id = 0) $dhcp6cconf .= " prefix-interface {$trackifv6} {\n"; $dhcp6cconf .= " sla-id {$lancfg['track6-prefix-id']};\n"; $dhcp6cconf .= " sla-len {$wancfg['dhcp6-ia-pd-len']};\n"; + if (isset($lancfg['track6_ifid'])) { + $dhcp6cconf .= " ifid {$lancfg['track6_ifid']};\n"; + } $dhcp6cconf .= " };\n"; } } @@ -3090,6 +3093,9 @@ function DHCP6_Config_File_Advanced($interface, $wancfg, $wanif, $id = 0) ) { $id_assoc_statement_prefix .= " sla-len {$wancfg['adv_dhcp6_prefix_interface_statement_sla_len']};\n"; } + if (isset($lancfg['track6_ifid'])) { + $id_assoc_statement_prefix .= " ifid {$lancfg['track6_ifid']};\n"; + } $id_assoc_statement_prefix .= " };\n"; } } diff --git a/src/www/interfaces.php b/src/www/interfaces.php index 13cefaac8..c345a43c7 100644 --- a/src/www/interfaces.php +++ b/src/www/interfaces.php @@ -416,6 +416,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { 'subnetv6', 'track6-interface', 'track6-prefix-id', + 'track6_ifid', ]; foreach ($std_copy_fieldnames as $fieldname) { $pconfig[$fieldname] = isset($a_interfaces[$if][$fieldname]) ? $a_interfaces[$if][$fieldname] : null; @@ -431,6 +432,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { $pconfig['dhcp6prefixonly'] = isset($a_interfaces[$if]['dhcp6prefixonly']); $pconfig['dhcp6usev4iface'] = isset($a_interfaces[$if]['dhcp6usev4iface']); $pconfig['track6-prefix-id--hex'] = sprintf("%x", empty($pconfig['track6-prefix-id']) ? 0 : $pconfig['track6-prefix-id']); + $pconfig['track6_ifid--hex'] = isset($pconfig['track6_ifid']) && $pconfig['track6_ifid'] != '' ? sprintf("%x", $pconfig['track6_ifid']) : ''; $pconfig['dhcp6-prefix-id--hex'] = isset($pconfig['dhcp6-prefix-id']) && $pconfig['dhcp6-prefix-id'] != '' ? sprintf("%x", $pconfig['dhcp6-prefix-id']) : ''; $pconfig['dhcp6_ifid--hex'] = isset($pconfig['dhcp6_ifid']) && $pconfig['dhcp6_ifid'] != '' ? sprintf("%x", $pconfig['dhcp6_ifid']) : ''; $pconfig['dhcpd6track6allowoverride'] = isset($a_interfaces[$if]['dhcpd6track6allowoverride']); @@ -808,6 +810,11 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { } } } + if (isset($pconfig['track6_ifid--hex']) && $pconfig['track6_ifid--hex'] != '') { + if (!ctype_xdigit($pconfig['track6_ifid--hex'])) { + $input_errors[] = gettext('You must enter a valid hexadecimal number for the IPv6 interface ID.'); + } + } break; case 'pppoev6': if ($pconfig['type'] != 'pppoe') { @@ -1251,6 +1258,9 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { if (ctype_xdigit($pconfig['track6-prefix-id--hex'])) { $new_config['track6-prefix-id'] = intval($pconfig['track6-prefix-id--hex'], 16); } + if (isset($pconfig['track6_ifid--hex']) && ctype_xdigit($pconfig['track6_ifid--hex'])) { + $new_config['track6_ifid'] = intval($pconfig['track6_ifid--hex'], 16); + } $new_config['dhcpd6track6allowoverride'] = !empty($pconfig['dhcpd6track6allowoverride']); break; } @@ -3037,6 +3047,18 @@ include("head.inc"); + + + +
+
0x
+ +
+ + +