in Kubernetes/wincni/cni/cni.go [170:206]
func (config *NetworkConfig) GetNetworkInfo() *network.NetworkInfo {
var subnet = network.SubnetInfo{}
if config.Ipam.Subnet != "" {
ip, s, _ := net.ParseCIDR(config.Ipam.Subnet)
gatewayIP := ip.To4()
gatewayIP[3]++
if config.Ipam.Routes != nil && len(config.Ipam.Routes) > 0 && config.Ipam.Routes[0].GW != nil {
gatewayIP = config.Ipam.Routes[0].GW
}
subnet = network.SubnetInfo{
AddressPrefix: *s,
GatewayAddress: gatewayIP,
}
}
ninfo := &network.NetworkInfo{
ID: config.Name,
Name: config.Name,
Type: network.NetworkType(config.Name),
Subnets: []network.SubnetInfo{subnet},
InterfaceName: "",
DNS: network.DNSInfo{
Servers: config.DNS.Nameservers,
Suffix: strings.Join(config.DNS.Search, ","),
},
}
if config.AdditionalArgs != nil {
for _, kvp := range config.AdditionalArgs {
if strings.Contains(kvp.Name, "Policy") {
npolicy := network.Policy{Type: network.CNIPolicyType(kvp.Name), Data: kvp.Value}
ninfo.Policies = append(ninfo.Policies, npolicy)
}
}
}
return ninfo
}