summaryrefslogtreecommitdiffstats
path: root/etc
diff options
context:
space:
mode:
authorErmal <eri@pfsense.org>2013-01-31 11:07:59 +0000
committerErmal <eri@pfsense.org>2013-01-31 11:07:59 +0000
commit7a04cd20c4d5991c5afeb431589c75aa3956b654 (patch)
treec0ce816db46701de74ef0a34b8234662598d5de3 /etc
parentdd1fc379b433c9f6c03d45c2e7a9a5f7dda043d6 (diff)
downloadpfsense-7a04cd20c4d5991c5afeb431589c75aa3956b654.zip
pfsense-7a04cd20c4d5991c5afeb431589c75aa3956b654.tar.gz
Create link_interface_to_track6 to make code more readble and easily trackble. Also improve the generation of rules to avoid creating problems during filter reload and some optimizations with it
Diffstat (limited to 'etc')
-rw-r--r--etc/inc/filter.inc88
-rw-r--r--etc/inc/interfaces.inc158
-rw-r--r--etc/inc/pfsense-utils.inc2
-rwxr-xr-xetc/rc.newwanip4
-rwxr-xr-xetc/rc.newwanipv620
5 files changed, 129 insertions, 143 deletions
diff --git a/etc/inc/filter.inc b/etc/inc/filter.inc
index f30ec90..dc9fb7b 100644
--- a/etc/inc/filter.inc
+++ b/etc/inc/filter.inc
@@ -842,6 +842,8 @@ function filter_generate_optcfg_array() {
$oic['type'] = $oc['ipaddr'];
if(!is_ipaddrv6($oc['ipaddrv6']) && !empty($oc['ipaddrv6']))
$oic['type6'] = $oc['ipaddrv6'];
+ if (!empty($oc['track6-interface']))
+ $oc['track6-interface'] = $oc['track6-interface'];
$oic['sn'] = get_interface_subnet($if);
$oic['snv6'] = get_interface_subnetv6($if);
$oic['mtu'] = empty($oc['mtu']) ? 1500 : $oc['mtu'];
@@ -2684,21 +2686,23 @@ EOD;
}
break;
default:
- if((isset($config['dhcpdv6'][$on]['enable'])) ||
- (isset($config['interfaces'][$on]['track6-interface']))) {
+ if ((is_array($config['dhcpdv6'][$on]) && isset($config['dhcpdv6'][$on]['enable'])) || isset($oc['track6-interface'])) {
$ipfrules .= <<<EOD
-
# allow access to DHCPv6 server on {$oc['descr']}
-anchor "dhcpv6server{$oc['descr']}"
# We need inet6 icmp for stateless autoconfig and dhcpv6
pass quick on \${$oc['descr']} inet6 proto udp from fe80::/10 to fe80::/10 port = 546 label "allow access to DHCPv6 server"
pass quick on \${$oc['descr']} inet6 proto udp from fe80::/10 to ff02::/16 port = 546 label "allow access to DHCPv6 server"
pass quick on \${$oc['descr']} inet6 proto udp from fe80::/10 to ff02::/16 port = 547 label "allow access to DHCPv6 server"
pass quick on \${$oc['descr']} inet6 proto udp from ff02::/16 to fe80::/10 port = 547 label "allow access to DHCPv6 server"
+
+EOD;
+ if (is_ipaddrv6($oc['ipv6'])) {
+ $ipfrules .= <<<EOD
pass in quick on \${$oc['descr']} inet6 proto udp from fe80::/10 to {$oc['ipv6']} port = 546 label "allow access to DHCPv6 server"
pass out quick on \${$oc['descr']} inet6 proto udp from {$oc['ipv6']} port = 547 to fe80::/10 label "allow access to DHCPv6 server"
EOD;
+ }
}
break;
}
@@ -2861,26 +2865,17 @@ EOD;
$ipfrules .= "\n# Automatic Pass rules for any delegated IPv6 prefixes through dynamic IPv6 clients\n";
/* add automatic LAN rules to allow IPv6 traffic out for dynamic IPv6 networks */
foreach ($FilterIflist as $ifdescr => $ifcfg) {
- $oc = $FilterIflist[$ifdescr];
- if($config['interfaces'][$ifdescr]['track6-interface'] <> "") {
- $realif = get_real_interface($ifdescr);
- $ifcfgipv6 = find_interface_ipv6($realif);
- $trackifname = $config['interfaces'][$ifdescr]['track6-interface'];
- $trackcfg = $config['interfaces'][$trackifname];
- if($trackcfg['descr'] == "")
- $trackcfg['descr'] = $trackifname;
- $trackcfg['descr'] = strtoupper($trackcfg['descr']);
-
- $pdlen = 64 - calculate_ipv6_delegation_length($trackifname);
- if(is_ipaddrv6($ifcfgipv6)) {
- $prefix = Net_IPv6::getNetmask($ifcfgipv6, $pdlen);
- $ipfrules .= "pass in quick on \${$oc['descr']} inet6 from $prefix/$pdlen to any keep state label \"Allow IPv6 on {$oc['descr']} to any\"\n";
+ if (isset($ifcfg['track6-interface'])) {
+ if (is_ipaddrv6($ifcfg['ipv6'])) {
+ $trackifname = $ifcfg['track6-interface'];
+ $trackcfg = $FilterIflist[$trackifname];
+ $pdlen = 64 - calculate_ipv6_delegation_length($trackifname);
+ $prefix = Net_IPv6::getNetmask($ifcfg['ipv6'], $pdlen);
+ $ipfrules .= "pass in on \${$ifcfg['descr']} inet6 from $prefix/$pdlen to any keep state label \"Allow IPv6 on {$ifcfg['descr']} to any\"\n";
/* add rules on the WAN for traffic back in, let the downstream router
* figure out what to do with the traffic */
- $trackcfgipv6 = find_interface_ipv6(get_real_interface($trackifname));
- if(is_ipaddrv6($trackcfgipv6)) {
- $ipfrules .= "pass in quick on \${$trackcfg['descr']} inet6 from any to $prefix/$pdlen keep state label \"Allow IPv6 in on {$trackcfg['descr']} to $prefix/$pdlen\"\n";
- }
+ if (is_ipaddrv6($trackcfg['ipv6']))
+ $ipfrules .= "pass in on \${$trackcfg['descr']} inet6 from any to $prefix/$pdlen keep state label \"Allow IPv6 in on {$trackcfg['descr']} to $prefix/$pdlen\"\n";
}
}
}
@@ -2896,12 +2891,12 @@ EOD;
if(is_array($FilterIflist[$friendly])) {
$oc = $FilterIflist[$friendly];
$routeent = explode("/", $route['network']);
- if($oc['ip']) {
+ unset($sa);
+ if (is_ipaddrv4($oc['ip'])) {
$sa = $oc['sa'];
$sn = $oc['sn'];
- $if = $oc['if'];
}
- if($sa && is_ipaddrv4($routeent[0])) {
+ if ($sa && is_ipaddrv4($routeent[0])) {
$ipfrules .= <<<EOD
pass quick on \${$oc['descr']} proto tcp from {$sa}/{$sn} to {$route['network']} flags any keep state(sloppy) label "pass traffic between statically routed subnets"
pass quick on \${$oc['descr']} from {$sa}/{$sn} to {$route['network']} keep state(sloppy) label "pass traffic between statically routed subnets"
@@ -2910,12 +2905,12 @@ pass quick on \${$oc['descr']} from {$route['network']} to {$sa}/{$sn} keep stat
EOD;
}
- if($oc['ipv6']) {
+ unset($sa);
+ if (is_ipaddrv6($oc['ipv6'])) {
$sa = $oc['sav6'];
$sn = $oc['snv6'];
- $if = $oc['if'];
}
- if($sa && is_ipaddrv6($routeent[0])) {
+ if ($sa && is_ipaddrv6($routeent[0])) {
$ipfrules .= <<<EOD
pass quick on \${$oc['descr']} inet6 proto tcp from {$sa}/{$sn} to {$route['network']} flags any keep state(sloppy) label "pass traffic between statically routed subnets"
pass quick on \${$oc['descr']} inet6 from {$sa}/{$sn} to {$route['network']} keep state(sloppy) label "pass traffic between statically routed subnets"
@@ -2937,29 +2932,26 @@ anchor "tftp-proxy/*"
EOD;
update_filter_reload_status("Creating uPNP rules...");
- if(isset($config['installedpackages']['miniupnpd']) && isset($config['installedpackages']['miniupnpd']['config'][0]['enable'])) {
-
- $ipfrules .= <<<EOD
-# uPnPd
-anchor "miniupnpd"
-
-EOD;
-
- $upnp_interfaces = explode(",", $config['installedpackages']['miniupnpd'][0]['config']['iface_array']);
- foreach($upnp_interfaces as $upnp_if) {
- if(is_array($FilterIflist[$upnp_if])) {
- $oc = $FilterIflist[$upnp_if];
- if($oc['ip']) {
- $sa = $oc['sa'];
- $sn = $oc['sn'];
- $if = $oc['if'];
- }
- if($sa) {
- $ipfrules .= <<<EOD
-
+ if (is_array($config['installedpackages']['miniupnpd']) && is_array($config['installedpackages']['miniupnpd'][0])) {
+ if (isset($config['installedpackages']['miniupnpd']['config'][0]['enable']))
+ $ipfrules .= "anchor \"miniupnpd\"\n";
+
+ if (is_array($config['installedpackages']['miniupnpd'][0]['config'])) {
+ $upnp_interfaces = explode(",", $config['installedpackages']['miniupnpd'][0]['config']['iface_array']);
+ foreach($upnp_interfaces as $upnp_if) {
+ if (is_array($FilterIflist[$upnp_if])) {
+ $oc = $FilterIflist[$upnp_if];
+ unset($sa);
+ if($oc['ip']) {
+ $sa = $oc['sa'];
+ $sn = $oc['sn'];
+ }
+ if($sa) {
+ $ipfrules .= <<<EOD
pass in on \${$oc['descr']} proto tcp from {$sa}/{$sn} to 239.255.255.250/32 port 1900 keep state label "pass multicast traffic to miniupnpd"
EOD;
+ }
}
}
}
diff --git a/etc/inc/interfaces.inc b/etc/inc/interfaces.inc
index 51400d2..107f9bf 100644
--- a/etc/inc/interfaces.inc
+++ b/etc/inc/interfaces.inc
@@ -2836,13 +2836,13 @@ function interface_configure($interface = "wan", $reloadall = false, $linkupeven
switch ($wancfg['ipaddrv6']) {
case 'slaac':
case 'dhcp6':
- interface_dhcpv6_configure($interface);
+ interface_dhcpv6_configure($interface, $wancfg);
break;
case '6rd':
- interface_6rd_configure($interface);
+ interface_6rd_configure($interface, $wancfg);
break;
case '6to4':
- interface_6to4_configure($interface);
+ interface_6to4_configure($interface, $wancfg);
break;
case 'track6':
interface_track6_configure($interface);
@@ -2911,11 +2911,13 @@ function interface_configure($interface = "wan", $reloadall = false, $linkupeven
return 0;
}
-function interface_track6_configure($interface = "lan") {
+function interface_track6_configure($interface = "lan", $wancfg) {
global $config, $g;
- $wancfg = $config['interfaces'][$interface];
- if (empty($config['interfaces'][$interface]))
+ if (!is_array($wancfg))
+ return;
+
+ if (!isset($wancfg['enable']))
return;
/* If the interface is not configured via another, exit */
@@ -2926,22 +2928,27 @@ function interface_track6_configure($interface = "lan") {
$realif = get_real_interface($interface);
mwexec("/sbin/ifconfig {$realif} inet6 fe80::1:1%{$realif}");
- $type = $config['interfaces'][$wancfg['track6-interface']]['ipaddrv6'];
- switch($type) {
+ $trackcfg = $config['interfaces'][$wancfg['track6-interface']];
+ if (!isset($trackcfg['enable'])) {
+ log_error("Interface {$interface} tracking non-existant interface {$wancfg['track6-interface']}");
+ return;
+ }
+
+ switch($trackcfg['ipaddrv6']) {
case "6to4":
if ($g['debug'])
log_error("Interface {$interface} configured via {$wancfg['track6-interface']} type {$type}");
- interface_track6_6to4_configure($interface);
+ interface_track6_6to4_configure($interface, $wancfg);
break;
case "6rd":
if ($g['debug'])
log_error("Interface {$interface} configured via {$wancfg['track6-interface']} type {$type}");
- interface_track6_6rd_configure($interface);
+ interface_track6_6rd_configure($interface, $wancfg);
break;
case "dhcp6":
if ($g['debug'])
log_error("Interface {$interface} configured via {$wancfg['track6-interface']} type {$type}");
- interface_track6_dhcp6_configure($interface);
+ interface_track6_dhcp6_configure($interface, $wancfg);
break;
}
@@ -2949,11 +2956,10 @@ function interface_track6_configure($interface = "lan") {
}
-function interface_track6_6rd_configure($interface = "lan") {
+function interface_track6_6rd_configure($interface = "lan", $lancfg) {
global $config, $g;
- $lancfg = $config['interfaces'][$interface];
- if (empty($config['interfaces'][$interface]))
+ if (!is_array($lancfg))
return;
/* If the interface is not configured via another, exit */
@@ -2964,12 +2970,14 @@ function interface_track6_6rd_configure($interface = "lan") {
$lancfg['track6-prefix-id'] = 0;
$wancfg = $config['interfaces'][$lancfg['track6-interface']];
- if (empty($wancfg))
+ if (empty($wancfg)) {
+ log_error("Interface {$interface} tracking non-existant interface {$lancfg['track6-interface']}");
return;
+ }
$wanif = get_real_interface($lancfg['track6-interface']);
$ip4address = find_interface_ip($wanif);
- if ((!is_ipaddrv4($ip4address)) || (is_private_ip($ip4address))) {
+ if (!is_ipaddrv4($ip4address)) { /* XXX: This should not be needed by 6rd || (is_private_ip($ip4address))) { */
log_error("The interface IPv4 '{$ip4address}' address on interface '{$wanif}' is not public, not configuring 6RD tunnel");
return;
}
@@ -3006,27 +3014,26 @@ function interface_track6_6rd_configure($interface = "lan") {
return 0;
}
-function interface_track6_6to4_configure($interface = "lan") {
+function interface_track6_6to4_configure($interface = "lan", $lancfg) {
global $config, $g;
- $lancfg = $config['interfaces'][$interface];
- if (empty($config['interfaces'][$interface]))
+ if (!is_array($lancfg))
return;
/* If the interface is not configured via another, exit */
if (empty($lancfg['track6-interface']))
return;
+ $wancfg = $config['interfaces'][$lancfg['track6-interface']];
+ if (empty($wancfg)) {
+ log_error("Interface {$interface} tracking non-existant interface {$lancfg['track6-interface']}");
+ return;
+ }
+
if (!is_numeric($lancfg['track6-prefix-id']))
$lancfg['track6-prefix-id'] = 0;
$wanif = get_real_interface($lancfg['track6-interface']);
- if (!$wanif)
- return;
- $wancfg = $config['interfaces'][$lancfg['track6-interface']];
- if (empty($wancfg))
- $wancfg = array();
-
$ip4address = find_interface_ip($wanif);
if (!is_ipaddrv4($ip4address) || is_private_ip($ip4address)) {
log_error("The interface IPv4 '{$ip4address}' address on interface '{$wanif}' is not public, not configuring 6RD tunnel");
@@ -3061,11 +3068,10 @@ function interface_track6_6to4_configure($interface = "lan") {
return 0;
}
-function interface_track6_dhcp6_configure($interface = "lan") {
+function interface_track6_dhcp6_configure($interface = "lan", $lancfg) {
global $config, $g;
- $lancfg = $config['interfaces'][$interface];
- if (empty($config['interfaces'][$interface]))
+ if (!is_array($lancfg))
return;
/* If the interface is not configured via another, exit */
@@ -3076,8 +3082,10 @@ function interface_track6_dhcp6_configure($interface = "lan") {
$lancfg['track6-prefix-id'] = 0;
$wancfg = $config['interfaces'][$lancfg['track6-interface']];
- if (empty($wancfg))
- $wancfg = array();
+ if (empty($wancfg)) {
+ log_error("Interface {$interface} tracking non-existant interface {$lancfg['track6-interface']}");
+ return;
+ }
$wanif = get_real_interface($lancfg['track6-interface']);
$ifcfgipv6 = find_interface_ipv6($wanif);
@@ -3097,14 +3105,13 @@ function interface_track6_dhcp6_configure($interface = "lan") {
return 0;
}
-function interface_6rd_configure($interface = "wan") {
+function interface_6rd_configure($interface = "wan", $wancfg) {
global $config, $g;
/* because this is a tunnel interface we can only function
* with a public IPv4 address on the interface */
- $wancfg = $config['interfaces'][$interface];
- if (empty($wancfg))
+ if (!is_array($wancfg))
return;
$wanif = get_real_interface($interface);
@@ -3167,31 +3174,22 @@ function interface_6rd_configure($interface = "wan") {
mwexec("/sbin/route change -host " . $wancfg['gateway-6rd'] . " {$ip4gateway}");
/* configure dependent interfaces */
- if (!$g['booting']) {
- /* XXX: Really necessary? */
- $iflist = get_configured_interface_with_descr(false, true);
- foreach($iflist as $if => $ifname) {
- if ($config['interfaces'][$if]['track6-interface'] == $interface)
- interface_track6_configure($if);
- }
- unset($iflist);
- }
+ if (!$g['booting'])
+ link_interface_to_track6($interface, "update");
return 0;
}
-function interface_6to4_configure($interface = "wan"){
+function interface_6to4_configure($interface = "wan", $wancfg){
global $config, $g;
/* because this is a tunnel interface we can only function
* with a public IPv4 address on the interface */
- $wancfg = $config['interfaces'][$interface];
- if (empty($wancfg))
- $wancfg = array();
+ if (!is_array($wancfg))
+ return;
$wanif = get_real_interface($interface);
-
$ip4address = find_interface_ip($wanif);
if((!is_ipaddrv4($ip4address)) || (is_private_ip($ip4address))) {
log_error("The interface IPv4 '{$ip4address}' address on interface '{$wanif}' is not public, not configuring 6RD tunnel");
@@ -3269,28 +3267,19 @@ function interface_6to4_configure($interface = "wan"){
if (is_ipaddrv4($ip4gateway))
mwexec("route change -host 192.88.99.1 {$ip4gateway}");
- if (!$g['booting']) {
- /* configure dependent interfaces */
- $iflist = get_configured_interface_with_descr(false, true);
- foreach($iflist as $if => $ifname) {
- if($config['interfaces'][$if]['track6-interface'] == $interface)
- interface_track6_configure($if);
- }
- unset($iflist);
- }
+ if (!$g['booting'])
+ link_interface_to_track6($interface, "update");
return 0;
}
-function interface_dhcpv6_configure($interface = "wan") {
+function interface_dhcpv6_configure($interface = "wan", $wancfg) {
global $config, $g;
- $wancfg = $config['interfaces'][$interface];
- if (empty($config['interfaces'][$interface]))
+ if (!is_array($wancfg))
return;
$wanif = get_real_interface($interface);
-
$dhcp6cconf = "";
$dhcp6cconf .= "interface {$wanif} {\n";
@@ -3316,19 +3305,19 @@ function interface_dhcpv6_configure($interface = "wan") {
/* Setup the prefix delegation */
$dhcp6cconf .= "id-assoc pd 0 {\n";
$iflist = get_configured_interface_with_descr(false, true);
- foreach($iflist as $friendly => $ifdescr) {
- if($config['interfaces'][$friendly]['track6-interface'] != $interface)
- continue;
- if (is_numeric($config['interfaces'][$friendly]['track6-prefix-id'])) {
- log_error("setting up $ifdescr - {$config['interfaces'][$friendly]['track6-prefix-id']}");
+ $iflist = link_interface_to_track6($interface);
+ foreach ($iflist as $friendly => $ifcfg) {
+ if (is_numeric($ifcfg['track6-prefix-id'])) {
+ if ($g['debug'])
+ log_error("setting up $ifdescr - {$ifcfg['track6-prefix-id']}");
$realif = get_real_interface($friendly);
$dhcp6cconf .= " prefix-interface {$realif} {\n";
- $dhcp6cconf .= " sla-id {$config['interfaces'][$friendly]['track6-prefix-id']};\n";
+ $dhcp6cconf .= " sla-id {$ifcfg['track6-prefix-id']};\n";
$dhcp6cconf .= " sla-len {$wancfg['dhcp6-ia-pd-len']};\n";
$dhcp6cconf .= " };\n";
}
}
- unset($iflist);
+ unset($iflist, $ifcfg);
$dhcp6cconf .= "};\n";
}
}
@@ -3380,18 +3369,11 @@ function interface_dhcpv6_configure($interface = "wan") {
}
}
}
+ unset($out);
}
/* worst case is that the rc.newwanipv6 handles setting up the track6 interface */
- if (!$g['booting'] && $wancfg['ippaddrv6'] != "slaac") {
- /* configure dependent interfaces */
- /* XXX: Really necessary? */
- $iflist = get_configured_interface_with_descr(false, true);
- foreach($iflist as $if => $ifname) {
- if ($config['interfaces'][$if]['track6-interface'] == $interface)
- interface_track6_configure($if);
- }
- unset($iflist);
- }
+ if (!$g['booting'] && $wancfg['ippaddrv6'] != "slaac")
+ link_interface_to_track6($interface, "update");
return 0;
}
@@ -3970,6 +3952,28 @@ function link_ip_to_carp_interface($ip) {
return $carp_ints;
}
+function link_interface_to_track6($int, $action = "") {
+ global $config;
+
+ if (empty($int))
+ return;
+
+ if (is_array($config['interfaces'])) {
+ $list = array();
+ foreach ($config['interfaces'] as $ifname => $ifcfg) {
+ if (!isset($ifcfg['enable']))
+ continue;
+ if (!empty($ifcfg['ipaddrv6']) && $ifcfg['track6-interface'] == $int) {
+ if ($action == "update")
+ interface_track6_configure($ifname, $ifcfg);
+ else if ($action == "")
+ $list[$ifname] = $ifcfg;
+ }
+ }
+ return $list;
+ }
+}
+
function link_interface_to_vlans($int, $action = "") {
global $config;
diff --git a/etc/inc/pfsense-utils.inc b/etc/inc/pfsense-utils.inc
index 85c9211..6219793 100644
--- a/etc/inc/pfsense-utils.inc
+++ b/etc/inc/pfsense-utils.inc
@@ -1074,7 +1074,7 @@ function is_dhcpv6_server_enabled() {
if (is_array($config['interfaces'])) {
foreach ($config['interfaces'] as $ifcfg) {
- if (!empty($ifcfg['track6-interface']))
+ if (isset($ifcfg['enable']) && !empty($ifcfg['track6-interface']))
return true;
}
}
diff --git a/etc/rc.newwanip b/etc/rc.newwanip
index 4df5343..ef72c2d 100755
--- a/etc/rc.newwanip
+++ b/etc/rc.newwanip
@@ -126,10 +126,10 @@ if ($interface == "lan")
/* check tunneled IPv6 interface tracking */
switch($config['interfaces'][$interface]['ipaddrv6']) {
case "6to4":
- interface_6to4_configure($interface);
+ interface_6to4_configure($interface, $config['interfaces'][$interface]);
break;
case "6rd":
- interface_6rd_configure($interface);
+ interface_6rd_configure($interface, $config['interfaces'][$interface]);
break;
}
diff --git a/etc/rc.newwanipv6 b/etc/rc.newwanipv6
index c2266ae..6d33ead 100755
--- a/etc/rc.newwanipv6
+++ b/etc/rc.newwanipv6
@@ -104,6 +104,9 @@ if(count($valid_ns > 0))
if(!empty($_ENV['new_domain_name']))
file_put_contents("{$g['varetc_path']}/searchdomain_v6{$interface}", $_ENV['new_domain_name']);
+/* write current WAN IPv6 to file */
+file_put_contents("{$g['vardb_path']}/{$interface}_ipv6", $curwanipv6);
+
log_error("rc.newwanipv6: on (IP address: {$curwanipv6}) (interface: {$interface}) (real interface: {$interface_real}).");
$oldipv6 = "";
@@ -114,24 +117,11 @@ $grouptmp = link_interface_to_group($interface);
if (!empty($grouptmp))
array_walk($grouptmp, 'interface_group_add_member');
+link_interface_to_track6($interface, "update");
+
/* regenerate resolv.conf if DNS overrides are allowed */
system_resolvconf_generate(true);
-/* write current WAN IPv6 to file */
-file_put_contents("{$g['vardb_path']}/{$interface}_ipv6", $curwanipv6);
-
-/* check native IPv6 interface tracking */
-switch($config['interfaces'][$interface]['ipaddrv6']) {
- case "dhcp6":
- foreach($config['interfaces'] as $iftrackname => $iftrack) {
- if($iftrack['track6-interface'] == $interface) {
- log_error("interface {$iftrackname} depends on {$interface}, configuring");
- interface_track6_configure($iftrackname);
- }
- }
- break;
-}
-
/* reconfigure static routes (kernel may have deleted them) */
system_routing_configure($interface);
OpenPOWER on IntegriCloud