diff --git a/os_clients/ubuntu/supportedPaths.go b/os_clients/ubuntu/supportedPaths.go index 34678822e46b420a42c467b3a60900fc0c0b57b9..6965a5a65c1a1a0022adc268b9da4d1b30991cf1 100644 --- a/os_clients/ubuntu/supportedPaths.go +++ b/os_clients/ubuntu/supportedPaths.go @@ -155,25 +155,30 @@ func generateSubinterface(subintf *gnmitargetygot.OpenconfigInterfaces_Interface } errs := make([]error, 0) - for _, addr := range subintf.Ipv4.Addresses.Address { - if !util.IsValueNil(addr.Config.Ip) && !util.IsValueNil(addr.Config.PrefixLength) { - netlinkAddr := &netlink.Addr{ - IPNet: &net.IPNet{ - IP: net.ParseIP(*addr.Config.Ip), - Mask: net.CIDRMask(int(*addr.Config.PrefixLength), 32), - }, + if ipv4s := subintf.GetIpv4(); ipv4s != nil { + if addresses := ipv4s.GetAddresses(); addresses != nil { + for _, addr := range subintf.Ipv4.Addresses.Address { + if !util.IsValueNil(addr.Config.Ip) && !util.IsValueNil(addr.Config.PrefixLength) { + netlinkAddr := &netlink.Addr{ + IPNet: &net.IPNet{ + IP: net.ParseIP(*addr.Config.Ip), + Mask: net.CIDRMask(int(*addr.Config.PrefixLength), 32), + }, + } + if err := netlink.AddrReplace(link, netlinkAddr); err != nil { + errs = append(errs, err) + } + } } - if err := netlink.AddrReplace(link, netlinkAddr); err != nil { - errs = append(errs, err) + if len(errs) != 0 { + return fmt.Errorf("encountered %v errors during address adding \n%v", len(errs), errs) } + return nil } } - if len(errs) != 0 { - return fmt.Errorf("encountered %v errors during address adding \n%v", len(errs), errs) - } - - return nil + errs = append(errs, fmt.Errorf("no ipv4 addresses found")) + return fmt.Errorf("encountered %v errors during address adding \n%v", len(errs), errs) } func generateProtocol(protocol *gnmitargetygot.OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol) error { diff --git a/os_clients/ubuntu/ubuntu.go b/os_clients/ubuntu/ubuntu.go index e1091991cc8cae6365a1ea319054d077ee7562d1..d1bcee10fc4a3630530248108a48030c62262da9 100644 --- a/os_clients/ubuntu/ubuntu.go +++ b/os_clients/ubuntu/ubuntu.go @@ -46,6 +46,7 @@ func (ou *OsclientUbuntu) GetConfig() *gnmitargetygot.Gnmitarget { log.WithFields(log.Fields{}).Error(err) } for _, localIface := range localIfaces { + log.Println("Creating Interface with name: ", localIface.Attrs().Name) ou.createInterfaces(localIface, ou.gt) }