diff options
author | Chris Buechler <cmb@pfsense.org> | 2015-04-04 20:36:13 -0500 |
---|---|---|
committer | Chris Buechler <cmb@pfsense.org> | 2015-04-04 20:36:13 -0500 |
commit | 38253ce6e5c1b587294882aaa1787301687522dd (patch) | |
tree | 1a283f9e4e8b6cafa1c4e4f337f353627446172a /etc | |
parent | c5292060a497a88bdeb5cb9325fb2a5595bbcea1 (diff) | |
download | pfsense-38253ce6e5c1b587294882aaa1787301687522dd.zip pfsense-38253ce6e5c1b587294882aaa1787301687522dd.tar.gz |
Include additional subnets for RAs in radvd.conf. Ticket #4468
Diffstat (limited to 'etc')
-rw-r--r-- | etc/inc/services.inc | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/etc/inc/services.inc b/etc/inc/services.inc index 680d695..cbf9542 100644 --- a/etc/inc/services.inc +++ b/etc/inc/services.inc @@ -129,7 +129,7 @@ function services_radvd_configure($blacklist = array()) { $radvdconf .= "\tAdvLinkMTU {$mtu};\n"; else $radvdconf .= "\tAdvLinkMTU 1280;\n"; - // $radvdconf .= "\tDeprecatePrefix on;\n"; + switch($dhcpv6ifconf['rapriority']) { case "low": $radvdconf .= "\tAdvDefaultPreference low;\n"; @@ -178,6 +178,41 @@ function services_radvd_configure($blacklist = array()) { } $radvdconf .= "\t};\n"; + if (is_array($dhcpv6ifconf['subnets']['item'])) { + foreach ($dhcpv6ifconf['subnets']['item'] as $subnet) { + if (is_subnetv6($subnet)) { + $radvdconf .= "\tprefix {$subnet} {\n"; + if($carpif == true) { + $radvdconf .= "\t\tDeprecatePrefix off;\n"; + } else { + $radvdconf .= "\t\tDeprecatePrefix on;\n"; + } + switch($dhcpv6ifconf['ramode']) { + case "managed": + $radvdconf .= "\t\tAdvOnLink on;\n"; + $radvdconf .= "\t\tAdvAutonomous off;\n"; + $radvdconf .= "\t\tAdvRouterAddr on;\n"; + break; + case "router": + $radvdconf .= "\t\tAdvOnLink off;\n"; + $radvdconf .= "\t\tAdvAutonomous off;\n"; + $radvdconf .= "\t\tAdvRouterAddr on;\n"; + break; + case "assist": + $radvdconf .= "\t\tAdvOnLink on;\n"; + $radvdconf .= "\t\tAdvAutonomous on;\n"; + $radvdconf .= "\t\tAdvRouterAddr on;\n"; + break; + case "unmanaged": + $radvdconf .= "\t\tAdvOnLink on;\n"; + $radvdconf .= "\t\tAdvAutonomous on;\n"; + $radvdconf .= "\t\tAdvRouterAddr on;\n"; + break; + } + $radvdconf .= "\t};\n"; + } + } + } if($carpif === true) { $radvdconf .= "\troute ::/0 {\n"; $radvdconf .= "\t\tRemoveRoute off;\n"; |