Integrate Leon Labs ONU to openonu-go adapter

Change-Id: Ia1779633436712785c58d38e10a900d2898df490
diff --git a/VERSION b/VERSION
index 8a9f876..9137641 100755
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.2.2-dev271
+2.2.2-dev272
diff --git a/internal/pkg/config/config.go b/internal/pkg/config/config.go
index 98c7eac..4e0eeb4 100644
--- a/internal/pkg/config/config.go
+++ b/internal/pkg/config/config.go
@@ -26,7 +26,7 @@
 // Open ONU default constants
 const (
 	EtcdStoreName = "etcd"
-	OnuVendorIds  = "OPEN,ALCL,BRCM,TWSH,ALPH,ISKT,SFAA,BBSM,SCOM,ARPX,DACM,ERSN,HWTC,CIGG,ADTN,ARCA,AVMG"
+	OnuVendorIds  = "OPEN,ALCL,BRCM,TWSH,ALPH,ISKT,SFAA,BBSM,SCOM,ARPX,DACM,ERSN,HWTC,CIGG,ADTN,ARCA,AVMG,LEOX"
 )
 
 // AdapterFlags represents the set of configurations used by the read-write adaptercore service
diff --git a/internal/pkg/mib/mib_sync.go b/internal/pkg/mib/mib_sync.go
index a1cc82c..595228e 100755
--- a/internal/pkg/mib/mib_sync.go
+++ b/internal/pkg/mib/mib_sync.go
@@ -643,6 +643,7 @@
 	}
 }
 
+// nolint: gocyclo
 func (oo *OnuDeviceEntry) handleOmciGetResponseMessage(ctx context.Context, msg cmn.OmciMessage) error {
 	var err error = nil
 
@@ -729,14 +730,20 @@
 				return nil
 			case "IpHostConfigData":
 				oo.mutexLastTxParamStruct.RUnlock()
-				macBytes, _ := me.InterfaceToOctets(meAttributes[me.IpHostConfigData_MacAddress])
+				ipHostConfigMacAddress, ok := meAttributes[me.IpHostConfigData_MacAddress]
 				oo.MutexPersOnuConfig.Lock()
-				if cmn.OmciMacAddressLen == len(macBytes) {
-					oo.SOnuPersistentData.PersMacAddress = hex.EncodeToString(macBytes[:])
-					logger.Debugw(ctx, "MibSync FSM - GetResponse Data for IpHostConfigData - MacAddress", log.Fields{"device-id": oo.deviceID,
-						"macAddress": oo.SOnuPersistentData.PersMacAddress})
+				if ok {
+					macBytes, _ := me.InterfaceToOctets(ipHostConfigMacAddress)
+					if cmn.OmciMacAddressLen == len(macBytes) {
+						oo.SOnuPersistentData.PersMacAddress = hex.EncodeToString(macBytes[:])
+						logger.Debugw(ctx, "MibSync FSM - GetResponse Data for IpHostConfigData - MacAddress", log.Fields{"device-id": oo.deviceID,
+							"macAddress": oo.SOnuPersistentData.PersMacAddress})
+					} else {
+						logger.Infow(ctx, "MibSync FSM - MacAddress wrong length - fill macAddress with zeros", log.Fields{"device-id": oo.deviceID, "length": len(macBytes)})
+						oo.SOnuPersistentData.PersMacAddress = cEmptyMacAddrString
+					}
 				} else {
-					logger.Infow(ctx, "MibSync FSM - MacAddress wrong length - fill macAddress with zeros", log.Fields{"device-id": oo.deviceID, "length": len(macBytes)})
+					logger.Infow(ctx, "MibSync FSM - MacAddress field not present in ip host config - fill macAddress with zeros", log.Fields{"device-id": oo.deviceID})
 					oo.SOnuPersistentData.PersMacAddress = cEmptyMacAddrString
 				}
 				oo.MutexPersOnuConfig.Unlock()