in cni/cni.go [365:430]
func GetCurrResult(network *network.NetworkInfo, endpoint *network.EndpointInfo, ifname string, cniConfig *NetworkConfig) cniTypesCurr.Result {
result := cniTypesCurr.Result{
IPs: []*cniTypesCurr.IPConfig{},
Routes: []*cniTypes.Route{}}
var iFace = GetInterface(endpoint)
if cniConfig.OptionalFlags.EnableDualStack == false {
var ip = GetIP(network, endpoint)
ip.InterfaceIndex = 0
cIP := cniTypesCurr.IPConfig{
Version: ip.Version,
Address: net.IPNet{
IP: ip.Address.IP,
Mask: ip.Address.Mask},
Gateway: ip.Gateway,
Interface: &ip.InterfaceIndex,
}
result.IPs = append(result.IPs, &cIP)
} else {
ip4, ip6 := GetDualStackAddresses(endpoint)
ip4.InterfaceIndex = 0
cIP4 := cniTypesCurr.IPConfig{
Version: ip4.Version,
Address: net.IPNet{
IP: ip4.Address.IP,
Mask: ip4.Address.Mask},
Gateway: ip4.Gateway,
Interface: &ip4.InterfaceIndex,
}
result.IPs = append(result.IPs, &cIP4)
if ip6 != nil {
ip6.InterfaceIndex = 0
cIP6 := cniTypesCurr.IPConfig{
Version: ip6.Version,
Address: net.IPNet{
IP: ip6.Address.IP,
Mask: ip6.Address.Mask},
Gateway: ip6.Gateway,
Interface: &ip6.InterfaceIndex,
}
result.IPs = append(result.IPs, &cIP6)
}
}
// Add Interfaces to result.
iface := &cniTypesCurr.Interface{
Name: ifname,
Mac: string(iFace.MacAddress),
}
result.Interfaces = append(result.Interfaces, iface)
return result
}