File tree Expand file tree Collapse file tree
netjsonconfig/backends/openwrt/converters Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -61,6 +61,7 @@ def __intermediate_wireless(self, interface):
6161 if 'encryption' in wireless :
6262 encryption = self .__intermediate_encryption (wireless )
6363 wireless .update (encryption )
64+ wireless = self .__intermediate_roaming (wireless )
6465 # attached networks (openwrt specific)
6566 # by default the wifi interface is attached
6667 # to its defining interface
@@ -139,6 +140,20 @@ def __intermediate_encryption(self, wireless):
139140 uci ['encryption' ] += '+{0}' .format (cipher )
140141 return uci
141142
143+ roaming_properties = (
144+ 'ft_over_ds' ,
145+ 'ft_psk_generate_local' ,
146+ 'nasid' ,
147+ 'reassociation_deadline' ,
148+ )
149+
150+ def __intermediate_roaming (self , wireless ):
151+ if wireless .get ('ieee80211r' ) is False :
152+ for property in self .roaming_properties :
153+ if property in wireless :
154+ del wireless [property ]
155+ return wireless
156+
142157 def to_netjson_loop (self , block , result , index ):
143158 is_new = False
144159 interface = self .__get_netjson_interface (block )
Original file line number Diff line number Diff line change @@ -861,6 +861,52 @@ def test_parse_access_point_80211r(self):
861861 del netjson_80211r ['interfaces' ][0 ]['wireless' ]['reassociation_deadline' ]
862862 self .assertEqual (o .config , netjson_80211r )
863863
864+ _80211r_false_netjson = {
865+ "interfaces" : [
866+ {
867+ "name" : "wlan0" ,
868+ "type" : "wireless" ,
869+ "wireless" : {
870+ "radio" : "radio0" ,
871+ "mode" : "access_point" ,
872+ "ssid" : "MyWifiAP" ,
873+ "rsn_preauth" : True ,
874+ "ieee80211r" : False ,
875+ "ft_over_ds" : True ,
876+ "ft_psk_generate_local" : True ,
877+ "nasid" : "123" ,
878+ "reassociation_deadline" : 1000 ,
879+ "network" : ["lan" ],
880+ },
881+ }
882+ ]
883+ }
884+ _80211r_false_uci = """package network
885+
886+ config device 'device_wlan0'
887+ option name 'wlan0'
888+
889+ config interface 'wlan0'
890+ option device 'wlan0'
891+ option proto 'none'
892+
893+ package wireless
894+
895+ config wifi-iface 'wifi_wlan0'
896+ option device 'radio0'
897+ option ieee80211r '0'
898+ option ifname 'wlan0'
899+ option mode 'ap'
900+ option network 'lan'
901+ option rsn_preauth '1'
902+ option ssid 'MyWifiAP'
903+ """
904+
905+ def test_render_access_point_80211r_false (self ):
906+ o = OpenWrt (self ._80211r_false_netjson )
907+ expected = self ._tabs (self ._80211r_false_uci )
908+ self .assertEqual (o .render (), expected )
909+
864910 _80211s_netjson = {
865911 "interfaces" : [
866912 {
You can’t perform that action at this time.
0 commit comments