With Linux OVS, if an OVS interface is disconnected, we can check the value in fieldifIndex or ofport to detect it. But it doesn't work on Windows. With local test, we found that Windows OVS doesn't update these fields' values in OVSDB even if an interface is disconnected. This introduces difficulty for the traffic trouble shoot.
Reproduce steps:
- Create an OVS bridge b1
- Add an internal port p1 on bridge b1
- Check the ofport filed value on interface p1. // In this step, we should observe a valid value is assigned to the openflow port of p1, e.g., 5.
- Delete the VM Network Adapter "p1", e.g.
Remove-VMNetworkAdapter -ManagementOS -SwitchName b1 -VMNetworkAdapterName p1
- Check the ofport filed value on interface p1. // In this step, we should observe the value of the old openflow port (5) still exists.
- Restart ovs-vswitch process
- Check the ofport filed value on interface p1. // In this step, we should observe the value of the old openflow port (5) still exists.
If we perform the same operations with OVS on Linux, we should observe that p1's ofport value becomes "-1" in step 5 and step 7.
Below is a sample of the OVSDB records for a disconnected interface on Windows,
_uuid : bd51cc7f-fb28-42bd-a213-1b08bd7583b1
admin_state : down
bfd : {}
bfd_status : {}
cfm_fault : []
cfm_fault_status : []
cfm_flap_count : []
cfm_health : []
cfm_mpid : []
cfm_remote_mpids : []
cfm_remote_opstate : []
duplex : []
error : []
external_ids : {}
ifindex : 0
ingress_policing_burst: 0
ingress_policing_kpkts_burst: 0
ingress_policing_kpkts_rate: 0
ingress_policing_rate: 0
lacp_current : []
link_resets : 0
link_speed : []
link_state : down
lldp : {}
mac : []
mac_in_use : "00:00:00:00:00:00"
mtu : []
mtu_request : []
name : p1
ofport : 5
ofport_request : []
options : {}
other_config : {}
statistics : {}
status : {}
type : internal
With Linux OVS, if an OVS interface is disconnected, we can check the value in field
ifIndexorofportto detect it. But it doesn't work on Windows. With local test, we found that Windows OVS doesn't update these fields' values in OVSDB even if an interface is disconnected. This introduces difficulty for the traffic trouble shoot.Reproduce steps:
Remove-VMNetworkAdapter -ManagementOS -SwitchName b1 -VMNetworkAdapterName p1If we perform the same operations with OVS on Linux, we should observe that p1's ofport value becomes "-1" in step 5 and step 7.
Below is a sample of the OVSDB records for a disconnected interface on Windows,