Skip to content

Commit eb0cd87

Browse files
committed
fix: use "vEthernet (LoopbackAdapterHostNCConnectivity)" when CNS is checking for existance of loopback adapter for Apipa network Creation.
1 parent 1c28add commit eb0cd87

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

cns/hnsclient/hnsclient_windows.go

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,9 @@ const (
5353
// Name of the loopback adapter needed to create Host NC apipa network
5454
hostNCLoopbackAdapterName = "LoopbackAdapterHostNCConnectivity"
5555

56+
// Name of the loopback adapter created by HNS for Host NC apipa network
57+
vEthernethostNCLoopbackAdapterName = "vEthernet (" + hostNCLoopbackAdapterName + ")"
58+
5659
// HNS rehydration issue requires this GW to be different than the loopback adapter ip, so we set it to .2
5760
defaultHnsGwIPAddress = "169.254.128.2"
5861
hnsLoopbackAdapterIPAddress = "169.254.128.1"
@@ -301,7 +304,16 @@ func createHostNCApipaNetwork(
301304
}
302305

303306
// Create loopback adapter needed for this HNS network
304-
if interfaceExists, _ := networkcontainers.InterfaceExists(hostNCLoopbackAdapterName); !interfaceExists {
307+
// We need to fitst check the existence of either "LoopbackAdapterHostNCConnectivity" or the vEthernet(LoopbackAdapterHostNCConnectivity) interfaces
308+
// If neither exists, we create the loopback adapter with the specified IP configuration.
309+
loopbackInterfaceExists, _ := networkcontainers.InterfaceExists(hostNCLoopbackAdapterName)
310+
vethernetLoopbackInterfaceExists, _ := networkcontainers.InterfaceExists(vEthernethostNCLoopbackAdapterName)
311+
if loopbackInterfaceExists {
312+
logger.Printf("%s already created, skipping loopback interface creation", hostNCLoopbackAdapterName)
313+
}
314+
if vethernetLoopbackInterfaceExists {
315+
logger.Printf("%s already created, skipping loopback interface creation", vEthernethostNCLoopbackAdapterName)
316+
} else if !loopbackInterfaceExists && !vethernetLoopbackInterfaceExists {
305317
ipconfig := cns.IPConfiguration{
306318
IPSubnet: cns.IPSubnet{
307319
IPAddress: hnsLoopbackAdapterIPAddress,

0 commit comments

Comments
 (0)