From 410ac0dac8400aae1523a51184726ff7606dc5fd Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Fri, 3 Jan 2020 16:26:42 +0100 Subject: ifconfig: T1939: provide abstraction for interface "ip" option Provide an XML/Python abstraction to * ip disable-arp-filter * ip enable-arp-accept * ip enable-arp-announce * ip enable-arp-ignore The old implementation can co-exist until the last interfaces have been migrated. --- src/conf_mode/interfaces-wireless.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'src/conf_mode/interfaces-wireless.py') diff --git a/src/conf_mode/interfaces-wireless.py b/src/conf_mode/interfaces-wireless.py index 0df0b3ba4..162aaf463 100755 --- a/src/conf_mode/interfaces-wireless.py +++ b/src/conf_mode/interfaces-wireless.py @@ -816,6 +816,10 @@ default_config_data = { 'hw_id' : '', 'intf': '', 'isolate_stations' : False, + 'ip_disable_arp_filter': 1, + 'ip_enable_arp_accept': 0, + 'ip_enable_arp_announce': 0, + 'ip_enable_arp_ignore': 0, 'mac' : '', 'max_stations' : '', 'mgmt_frame_protection' : 'disabled', @@ -1112,6 +1116,22 @@ def get_config(): if conf.exists('isolate-stations'): wifi['isolate_stations'] = True + # ARP filter configuration + if conf.exists('ip disable-arp-filter'): + wifi['ip_disable_arp_filter'] = 0 + + # ARP enable accept + if conf.exists('ip enable-arp-accept'): + wifi['ip_enable_arp_accept'] = 1 + + # ARP enable announce + if conf.exists('ip enable-arp-announce'): + wifi['ip_enable_arp_announce'] = 1 + + # ARP enable ignore + if conf.exists('ip enable-arp-ignore'): + wifi['ip_enable_arp_ignore'] = 1 + # Media Access Control (MAC) address if conf.exists('mac'): wifi['mac'] = conf.return_value('mac') @@ -1373,6 +1393,15 @@ def apply(wifi): else: w.set_mac(wifi['hw_id']) + # configure ARP filter configuration + w.set_arp_filter(wifi['ip_disable_arp_filter']) + # configure ARP accept + w.set_arp_accept(wifi['ip_enable_arp_accept']) + # configure ARP announce + w.set_arp_announce(wifi['ip_enable_arp_announce']) + # configure ARP ignore + w.set_arp_ignore(wifi['ip_enable_arp_ignore']) + # enable interface if not wifi['disable']: w.set_state('up') -- cgit v1.2.3