summaryrefslogtreecommitdiffstats
path: root/src/etc/inc/pfsense-utils.inc
diff options
context:
space:
mode:
authorRenato Botelho <renato@netgate.com>2016-02-19 10:49:27 -0200
committerRenato Botelho <renato@netgate.com>2016-02-19 10:57:32 -0200
commit6c8beed3454f3b262dbf7380f9ff94cdede24bdf (patch)
treedfd633ed6e8fe81a3df1c7f84c90109ec685a17f /src/etc/inc/pfsense-utils.inc
parent15db02a6abe5c0af41174c08a41a50e3c9eb9018 (diff)
downloadpfsense-6c8beed3454f3b262dbf7380f9ff94cdede24bdf.zip
pfsense-6c8beed3454f3b262dbf7380f9ff94cdede24bdf.tar.gz
Ticket #3029
Fix DHCPv6 GUI to work with PD length != 64
Diffstat (limited to 'src/etc/inc/pfsense-utils.inc')
-rw-r--r--src/etc/inc/pfsense-utils.inc36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/etc/inc/pfsense-utils.inc b/src/etc/inc/pfsense-utils.inc
index 6848bb8..416a89c 100644
--- a/src/etc/inc/pfsense-utils.inc
+++ b/src/etc/inc/pfsense-utils.inc
@@ -2871,6 +2871,42 @@ function merge_ipv6_delegated_prefix($prefix, $suffix, $len = 64) {
substr($suffix, $prefix_len));
}
+function dhcpv6_pd_str_help($pdlen) {
+ $result = '';
+
+ switch ($pdlen) {
+ case 48:
+ $result = '::xxxx:xxxx:xxxx:xxxx:xxxx';
+ break;
+ case 52:
+ $result = '::xxx:xxxx:xxxx:xxxx:xxxx';
+ break;
+ case 56:
+ $result = '::xx:xxxx:xxxx:xxxx:xxxx';
+ break;
+ case 60:
+ $result = '::x:xxxx:xxxx:xxxx:xxxx';
+ break;
+ /*
+ * XXX 63, 62 and 61 should use same mask of 60 but it would
+ * we let user chose this bit it can end up out of PD network
+ *
+ * Leave this with the same of 64 for now until we find a way to
+ * let user chose it. The side-effect is users with PD with one
+ * of these lengths will not be able to setup DHCP server range
+ * for full PD size, only for last /64 network
+ */
+ case 61:
+ case 62:
+ case 63:
+ case 64:
+ $result = '::xxxx:xxxx:xxxx:xxxx';
+ break;
+ }
+
+ return $result;
+}
+
function huawei_rssi_to_string($rssi) {
$dbm = array();
$i = 0;
OpenPOWER on IntegriCloud