summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/vyos/ifconfig/wireless.py29
1 files changed, 14 insertions, 15 deletions
diff --git a/python/vyos/ifconfig/wireless.py b/python/vyos/ifconfig/wireless.py
index deca68bf0..37703d242 100644
--- a/python/vyos/ifconfig/wireless.py
+++ b/python/vyos/ifconfig/wireless.py
@@ -23,10 +23,8 @@ class WiFiIf(Interface):
default = {
'type': 'wifi',
- 'phy': '',
- 'wds': 'off',
+ 'phy': 'phy0'
}
-
definition = {
**Interface.definition,
**{
@@ -35,19 +33,12 @@ class WiFiIf(Interface):
'bridgeable': True,
}
}
-
options = Interface.options + \
['phy', 'op_mode']
- _command_set = {**Interface._command_set, **{
- '4addr': {
- 'shellcmd': 'iw dev {ifname} set 4addr {value}',
- },
- }}
-
def _create(self):
# all interfaces will be added in monitor mode
- cmd = 'iw phy {phy} interface add {ifname} type monitor 4addr {wds}' \
+ cmd = 'iw phy {phy} interface add {ifname} type monitor' \
.format(**self.config)
self._cmd(cmd)
@@ -59,20 +50,28 @@ class WiFiIf(Interface):
.format(**self.config)
self._cmd(cmd)
- def set_4aadr_mode(self, state):
- return self.set_interface('4addr', state)
-
def update(self, config):
""" General helper function which works on a dictionary retrived by
get_config_dict(). It's main intention is to consolidate the scattered
interface setup code and provide a single point of entry when workin
on any interface. """
- self.set_4aadr_mode('on' if 'wds' in config else 'off')
+ # We can not call add_to_bridge() until wpa_supplicant is running, thus
+ # we will remove the key from the config dict and react to this specal
+ # case in thie derived class.
+ # re-add ourselves to any bridge we might have fallen out of
+ bridge_member = ''
+ if 'is_bridge_member' in config:
+ bridge_member = config['is_bridge_member']
+ del config['is_bridge_member']
# call base class first
super().update(config)
+ # re-add ourselves to any bridge we might have fallen out of
+ if bridge_member:
+ self.add_to_bridge(bridge_member)
+
# Enable/Disable of an interface must always be done at the end of the
# derived class to make use of the ref-counting set_admin_state()
# function. We will only enable the interface if 'up' was called as