From 2e6b1381364047ec1ad29df657cb438fce167db9 Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Fri, 12 Jul 2019 14:43:27 +0200 Subject: [PATCH] interfaces: interfaces_staticarp_configure(), don't flush arp table when booting, arp is really slow with a lot of interfaces. for https://github.com/opnsense/core/issues/3567 --- src/etc/inc/interfaces.inc | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/etc/inc/interfaces.inc b/src/etc/inc/interfaces.inc index f7fd31bf0..a3e1a9d98 100644 --- a/src/etc/inc/interfaces.inc +++ b/src/etc/inc/interfaces.inc @@ -4083,7 +4083,10 @@ function interfaces_staticarp_configure($if) if (isset($config['dhcpd'][$if]['staticarp'])) { mwexecf('/sbin/ifconfig %s staticarp', array($ifcfg['if'])); - mwexecf('/usr/sbin/arp -d -i %s -a > /dev/null 2>&1', array($ifcfg['if'])); + if (!file_exists("/var/run/booting")) { + // XXX: arp is really slow when there are many interfaces, while booting -d -a shouldn't be needed anyway + mwexecf('/usr/sbin/arp -d -i %s -a > /dev/null 2>&1', array($ifcfg['if'])); + } if (isset($config['dhcpd'][$if]['staticmap'])) { foreach ($config['dhcpd'][$if]['staticmap'] as $arpent) { if (isset($arpent['ipaddr'])) { @@ -4096,7 +4099,10 @@ function interfaces_staticarp_configure($if) } } else { mwexecf('/sbin/ifconfig %s -staticarp', array($ifcfg['if'])); - mwexecf('/usr/sbin/arp -d -i %s -a > /dev/null 2>&1', array($ifcfg['if'])); + if (!file_exists("/var/run/booting")) { + // XXX: arp is really slow when there are many interfaces, while booting -d -a shouldn't be needed anyway + mwexecf('/usr/sbin/arp -d -i %s -a > /dev/null 2>&1', array($ifcfg['if'])); + } if (isset($config['dhcpd'][$if]['staticmap'])) { foreach ($config['dhcpd'][$if]['staticmap'] as $arpent) { if (isset($arpent['arp_table_static_entry'])) {