Skip to content

Commit

Permalink
Merge pull request kubernetes#68897 from ksubrmnn/mac_address
Browse files Browse the repository at this point in the history
Load Balancing is not distributing connections to different endpoints
  • Loading branch information
k8s-ci-robot authored Oct 5, 2018
2 parents fecb5ed + d785379 commit 2f349d5
Showing 1 changed file with 12 additions and 1 deletion.
13 changes: 12 additions & 1 deletion pkg/proxy/winkernel/proxier.go
Original file line number Diff line number Diff line change
Expand Up @@ -128,12 +128,23 @@ type endpointsInfo struct {
refCount uint16
}

//Uses mac prefix and IPv4 address to return a mac address
//This ensures mac addresses are unique for proper load balancing
//Does not support IPv6 and returns a dummy mac
func conjureMac(macPrefix string, ip net.IP) string {
if ip4 := ip.To4(); ip4 != nil {
a, b, c, d := ip4[0], ip4[1], ip4[2], ip4[3]
return fmt.Sprintf("%v-%02x-%02x-%02x-%02x", macPrefix, a, b, c, d)
}
return "02-11-22-33-44-55"
}

func newEndpointInfo(ip string, port uint16, isLocal bool) *endpointsInfo {
info := &endpointsInfo{
ip: ip,
port: port,
isLocal: isLocal,
macAddress: "00:11:22:33:44:55", // Hardcoding to some Random Mac
macAddress: conjureMac("02-11", net.ParseIP(ip)),
refCount: 0,
hnsID: "",
}
Expand Down

0 comments on commit 2f349d5

Please sign in to comment.