@@ -275,8 +275,9 @@ def vlans_add_memberships(iplink, vlans):
275275 continue
276276
277277 for brpvlan in brpvlans ["vlans" ]:
278- if not (vlan := vlans .get (brpvlan ["vlan" ])):
279- LOG .error (f"Unexpected vlan { brpvlans ['vlan' ]} on { port } " )
278+ vid = brpvlan ["vlan" ]
279+ if not (vlan := vlans .get (vid )):
280+ LOG .error (f"Unexpected vlan { vid } on { port } " )
280281 continue
281282
282283 if "Egress Untagged" in brpvlan .get ("flags" , []):
@@ -291,17 +292,18 @@ def vlans(iplink):
291292
292293 mctldata = mctl_queriers ()
293294
294- vlans = {
295- v ["vlan" ]: {
296- "vid" : v ["vlan" ],
297- "untagged" : [],
298- "tagged" : [],
299-
300- "multicast" : multicast (iplink , v , mctldata ),
301- "multicast-filters" : multicast_filters (iplink , v ["vlan" ]),
302- }
303- for v in brgvlans [0 ]["vlans" ]
304- }
295+ vlans = {}
296+ for v in brgvlans [0 ]["vlans" ]:
297+ start = v ["vlan" ]
298+ end = v .get ("vlanEnd" , start )
299+ for vid in range (start , end + 1 ):
300+ vlans [vid ] = {
301+ "vid" : vid ,
302+ "untagged" : [],
303+ "tagged" : [],
304+ "multicast" : multicast (iplink , v , mctldata ),
305+ "multicast-filters" : multicast_filters (iplink , vid ),
306+ }
305307
306308 vlans_add_memberships (iplink , vlans )
307309 return list (vlans .values ())
0 commit comments