diff -Nur ./nispor-1.1.1.old/src/lib/ifaces/bridge.rs nispor-1.1.1/src/lib/ifaces/bridge.rs --- ./nispor-1.1.1.old/src/lib/ifaces/bridge.rs 2021-06-19 01:48:56.000000000 +0800 +++ nispor-1.1.1/src/lib/ifaces/bridge.rs 2022-01-07 12:33:10.492882827 +0800 @@ -363,7 +363,12 @@ data: &[u8], ) -> Result<(), NisporError> { if let Some(ref mut port_info) = iface_state.bridge_port { - port_info.vlans = parse_af_spec_bridge_info(data)?; + if let Some(cur_vlans) = parse_af_spec_bridge_info(data)? { + match port_info.vlans.as_mut() { + Some(vlans) => vlans.extend(cur_vlans), + None => port_info.vlans = Some(cur_vlans), + }; + } } Ok(()) } diff -Nur ./nispor-1.1.1.old/src/lib/ifaces/iface.rs nispor-1.1.1/src/lib/ifaces/iface.rs --- ./nispor-1.1.1.old/src/lib/ifaces/iface.rs 2021-06-19 01:48:56.000000000 +0800 +++ nispor-1.1.1/src/lib/ifaces/iface.rs 2022-01-07 12:32:26.818695643 +0800 @@ -417,7 +417,6 @@ for nla in &nl_msg.nlas { if let Nla::AfSpecBridge(data) = nla { parse_bridge_vlan_info(&mut iface_state, data)?; - break; } } }