summaryrefslogtreecommitdiffstats
path: root/src/etc
diff options
context:
space:
mode:
authorRenato Botelho <renato@netgate.com>2017-07-31 16:34:37 -0300
committerRenato Botelho <renato@netgate.com>2017-07-31 16:34:37 -0300
commit8d4781774dd43f0e0ccc06cefa617b0922964fd0 (patch)
treea94aebd2679964d98540c8b3be8c4a7bc2dd1bc8 /src/etc
parent3919438729fb2451e14b1940a09b88c8bd785efb (diff)
parentb060e08c9dd701b56b5163321b5e9a79f90b1f23 (diff)
downloadpfsense-8d4781774dd43f0e0ccc06cefa617b0922964fd0.zip
pfsense-8d4781774dd43f0e0ccc06cefa617b0922964fd0.tar.gz
Merge pull request #3788 from znerol/feature/master/bridge-ipv6-auto-linklocal
Diffstat (limited to 'src/etc')
-rw-r--r--src/etc/inc/interfaces.inc21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/etc/inc/interfaces.inc b/src/etc/inc/interfaces.inc
index 003738e..fcc6ba1 100644
--- a/src/etc/inc/interfaces.inc
+++ b/src/etc/inc/interfaces.inc
@@ -560,6 +560,8 @@ function interface_bridge_configure(&$bridge, $checkmember = 0) {
interface_bridge_configure_advanced($bridge);
+ interface_bridge_configure_ip6linklocal($bridge);
+
if ($bridge['bridgeif']) {
interfaces_bring_up($bridge['bridgeif']);
} else {
@@ -686,6 +688,25 @@ function interface_bridge_configure_advanced($bridge) {
}
}
+function interface_bridge_configure_ip6linklocal($bridge) {
+ $bridgeif = $bridge['bridgeif'];
+
+ $members = explode(',', $bridge['members']);
+ if (!count($members)) {
+ return;
+ }
+
+ $auto_linklocal = isset($bridge['ip6linklocal']);
+ $bridgeop = $auto_linklocal ? '' : '-';
+ $memberop = $auto_linklocal ? '-' : '';
+
+ mwexec("/usr/sbin/ndp -i {$bridgeif} -- {$bridgeop}auto_linklocal");
+ foreach ($members as $member) {
+ $realif = get_real_interface($member);
+ mwexec("/usr/sbin/ndp -i {$realif} -- {$memberop}auto_linklocal");
+ }
+}
+
function interface_bridge_add_member($bridgeif, $interface, $flagsapplied = false) {
global $config;
OpenPOWER on IntegriCloud