diff options
author | Renato Botelho <renato@netgate.com> | 2017-07-31 16:34:37 -0300 |
---|---|---|
committer | Renato Botelho <renato@netgate.com> | 2017-07-31 16:34:37 -0300 |
commit | 8d4781774dd43f0e0ccc06cefa617b0922964fd0 (patch) | |
tree | a94aebd2679964d98540c8b3be8c4a7bc2dd1bc8 /src/etc | |
parent | 3919438729fb2451e14b1940a09b88c8bd785efb (diff) | |
parent | b060e08c9dd701b56b5163321b5e9a79f90b1f23 (diff) | |
download | pfsense-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.inc | 21 |
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; |