[VOL-4485] omci-lib-go: ME Attribute names should be exported

Change-Id: I15ef78c3b470a9c49a23b32aad513c1cddfb3066
diff --git a/internal/pkg/avcfg/omci_ani_config.go b/internal/pkg/avcfg/omci_ani_config.go
index cc023ba..92fe84f 100755
--- a/internal/pkg/avcfg/omci_ani_config.go
+++ b/internal/pkg/avcfg/omci_ani_config.go
@@ -377,7 +377,7 @@
 				dsQueueFound := false
 				for _, mgmtEntityID := range queueInstKeys {
 					if meAttributes := oFsm.pOnuDB.GetMe(me.PriorityQueueClassID, mgmtEntityID); meAttributes != nil {
-						returnVal := meAttributes["RelatedPort"]
+						returnVal := meAttributes[me.PriorityQueue_RelatedPort]
 						if returnVal != nil {
 							if relatedPort, err := oFsm.pOnuDB.GetUint32Attrib(returnVal); err == nil {
 								if relatedPort == usQrelPortMask {
@@ -398,7 +398,7 @@
 								logger.Warnw(ctx, "Could not convert attribute value", log.Fields{"device-id": oFsm.deviceID})
 							}
 						} else {
-							logger.Warnw(ctx, "'RelatedPort' not found in meAttributes:", log.Fields{"device-id": oFsm.deviceID})
+							logger.Warnw(ctx, "PrioQueue.RelatedPort not found in meAttributes:", log.Fields{"device-id": oFsm.deviceID})
 						}
 					} else {
 						logger.Warnw(ctx, "No attributes available in DB:", log.Fields{"meClassID": me.PriorityQueueClassID,
@@ -525,10 +525,10 @@
 	meParams := me.ParamData{
 		EntityID: oFsm.macBPCD0ID,
 		Attributes: me.AttributeValueMap{
-			"BridgeIdPointer": bridgePtr,
-			"PortNum":         0xFF, //fixed unique ANI side indication
-			"TpType":          3,    //for .1PMapper
-			"TpPointer":       oFsm.mapperSP0ID,
+			me.MacBridgePortConfigurationData_BridgeIdPointer: bridgePtr,
+			me.MacBridgePortConfigurationData_PortNum:         0xFF, //fixed unique ANI side indication
+			me.MacBridgePortConfigurationData_TpType:          3,    //for .1PMapper
+			me.MacBridgePortConfigurationData_TpPointer:       oFsm.mapperSP0ID,
 		},
 	}
 	oFsm.mutexPLastTxMeInstance.Lock()
@@ -574,7 +574,7 @@
 	meParams := me.ParamData{
 		EntityID: oFsm.tcont0ID,
 		Attributes: me.AttributeValueMap{
-			"AllocId": oFsm.alloc0ID,
+			me.TCont_AllocId: oFsm.alloc0ID,
 		},
 	}
 	oFsm.mutexPLastTxMeInstance.Lock()
@@ -691,7 +691,7 @@
 	// The TP type value 0 also indicates bridging mapping, and the TP pointer should be set to 0xFFFF
 	// setting this parameter is not strictly needed anymore with the ensured .1pMapper create default setting
 	// but except for processing effort does not really harm - left to keep changes low
-	meParams.Attributes["TpPointer"] = 0xffff
+	meParams.Attributes[me.Ieee8021PMapperServiceProfile_TpPointer] = 0xffff
 
 	if !foundIwPtr {
 		logger.Debugw(ctx, "UniPonAniConfigFsm no GemIwPtr found for .1pMapper - abort", log.Fields{
@@ -983,7 +983,7 @@
 	meParams := me.ParamData{
 		EntityID: oFsm.tcont0ID,
 		Attributes: me.AttributeValueMap{
-			"AllocId": cmn.UnusedTcontAllocID,
+			me.TCont_AllocId: cmn.UnusedTcontAllocID,
 		},
 	}
 	oFsm.mutexPLastTxMeInstance.Lock()
@@ -1454,13 +1454,13 @@
 		meParams := me.ParamData{
 			EntityID: gemPortAttribs.gemPortID, //unique, same as PortId
 			Attributes: me.AttributeValueMap{
-				"PortId":       gemPortAttribs.gemPortID,
-				"TContPointer": oFsm.tcont0ID,
-				"Direction":    gemPortAttribs.direction,
+				me.GemPortNetworkCtp_PortId:       gemPortAttribs.gemPortID,
+				me.GemPortNetworkCtp_TContPointer: oFsm.tcont0ID,
+				me.GemPortNetworkCtp_Direction:    gemPortAttribs.direction,
 				//ONU-G.TrafficManagementOption dependency ->PrioQueue or TCont
 				//  TODO!! verify dependency and QueueId in case of Multi-GemPort setup!
-				"TrafficManagementPointerForUpstream": gemPortAttribs.upQueueID, //might be different in wrr-only Setup - tcont0ID
-				"PriorityQueuePointerForDownStream":   gemPortAttribs.downQueueID,
+				me.GemPortNetworkCtp_TrafficManagementPointerForUpstream: gemPortAttribs.upQueueID, //might be different in wrr-only Setup - tcont0ID
+				me.GemPortNetworkCtp_PriorityQueuePointerForDownStream:   gemPortAttribs.downQueueID,
 			},
 		}
 		oFsm.mutexPLastTxMeInstance.Lock()
@@ -1520,10 +1520,10 @@
 			meParams := me.ParamData{
 				EntityID: gemPortAttribs.multicastGemID,
 				Attributes: me.AttributeValueMap{
-					"GemPortNetworkCtpConnectivityPointer": gemPortAttribs.multicastGemID,
-					"InterworkingOption":                   0, // Don't Care
-					"ServiceProfilePointer":                0, // Don't Care
-					"GalProfilePointer":                    cmn.GalEthernetEID,
+					me.MulticastGemInterworkingTerminationPoint_GemPortNetworkCtpConnectivityPointer: gemPortAttribs.multicastGemID,
+					me.MulticastGemInterworkingTerminationPoint_InterworkingOption:                   0, // Don't Care
+					me.MulticastGemInterworkingTerminationPoint_ServiceProfilePointer:                0, // Don't Care
+					me.MulticastGemInterworkingTerminationPoint_GalProfilePointer:                    cmn.GalEthernetEID,
 				},
 			}
 			if oFsm.pUniTechProf.multicastConfiguredForOtherUniTps(ctx, oFsm.uniTpKey) {
@@ -1564,7 +1564,7 @@
 			meIPV4MCTableParams := me.ParamData{
 				EntityID: gemPortAttribs.multicastGemID,
 				Attributes: me.AttributeValueMap{
-					"Ipv4MulticastAddressTable": ipv4MulticastTable,
+					me.MulticastGemInterworkingTerminationPoint_Ipv4MulticastAddressTable: ipv4MulticastTable,
 				},
 			}
 			oFsm.mutexPLastTxMeInstance.Lock()
@@ -1584,11 +1584,11 @@
 			meParams := me.ParamData{
 				EntityID: gemPortAttribs.gemPortID,
 				Attributes: me.AttributeValueMap{
-					"GemPortNetworkCtpConnectivityPointer": gemPortAttribs.gemPortID, //same as EntityID, see above
-					"InterworkingOption":                   5,                        //fixed model:: G.998 .1pMapper
-					"ServiceProfilePointer":                oFsm.mapperSP0ID,
-					"InterworkingTerminationPointPointer":  0, //not used with .1PMapper Mac bridge
-					"GalProfilePointer":                    cmn.GalEthernetEID,
+					me.GemInterworkingTerminationPoint_GemPortNetworkCtpConnectivityPointer: gemPortAttribs.gemPortID, //same as EntityID, see above
+					me.GemInterworkingTerminationPoint_InterworkingOption:                   5,                        //fixed model:: G.998 .1pMapper
+					me.GemInterworkingTerminationPoint_ServiceProfilePointer:                oFsm.mapperSP0ID,
+					me.GemInterworkingTerminationPoint_InterworkingTerminationPointPointer:  0, //not used with .1PMapper Mac bridge
+					me.GemInterworkingTerminationPoint_GalProfilePointer:                    cmn.GalEthernetEID,
 				},
 			}
 			oFsm.mutexPLastTxMeInstance.Lock()
@@ -1705,15 +1705,15 @@
 				logger.Debugw(ctx, "uniPonAniConfigFsm Tx Set::PrioQueue to StrictPrio", log.Fields{
 					"EntitytId": strconv.FormatInt(int64(queueIndex), 16),
 					"device-id": oFsm.deviceID})
-				meParams.Attributes["TrafficSchedulerPointer"] = 0 //ensure T-Cont defined StrictPrio scheduling
+				meParams.Attributes[me.PriorityQueue_TrafficSchedulerPointer] = 0 //ensure T-Cont defined StrictPrio scheduling
 			} else {
 				//WRR indication
 				logger.Debugw(ctx, "uniPonAniConfigFsm Tx Set::PrioQueue to WRR", log.Fields{
 					"EntitytId": strconv.FormatInt(int64(queueIndex), 16),
 					"Weight":    kv.Value,
 					"device-id": oFsm.deviceID})
-				meParams.Attributes["TrafficSchedulerPointer"] = loTrafficSchedulerEID //ensure assignment of the relevant trafficScheduler
-				meParams.Attributes["Weight"] = uint8(kv.Value.(uint16))
+				meParams.Attributes[me.PriorityQueue_TrafficSchedulerPointer] = loTrafficSchedulerEID //ensure assignment of the relevant trafficScheduler
+				meParams.Attributes[me.PriorityQueue_Weight] = uint8(kv.Value.(uint16))
 			}
 		} else {
 			// setting Traffic Scheduler (TS) pointer is not supported unless we point to another TS that points to the same TCONT.
@@ -1730,7 +1730,7 @@
 				"EntitytId": strconv.FormatInt(int64(queueIndex), 16),
 				"Weight":    kv.Value,
 				"device-id": oFsm.deviceID})
-			meParams.Attributes["Weight"] = uint8(kv.Value.(uint16))
+			meParams.Attributes[me.PriorityQueue_Weight] = uint8(kv.Value.(uint16))
 		}
 		oFsm.mutexPLastTxMeInstance.Lock()
 		meInstance, err := oFsm.pOmciCC.SendSetPrioQueueVar(log.WithSpanFromContext(context.TODO(), ctx), oFsm.pDeviceHandler.GetOmciTimeout(), true,
diff --git a/internal/pkg/avcfg/omci_vlan_config.go b/internal/pkg/avcfg/omci_vlan_config.go
index e97b0be..dd066b7 100755
--- a/internal/pkg/avcfg/omci_vlan_config.go
+++ b/internal/pkg/avcfg/omci_vlan_config.go
@@ -1215,9 +1215,9 @@
 		meParams := me.ParamData{
 			EntityID: vtfdID,
 			Attributes: me.AttributeValueMap{
-				"VlanFilterList":   vtfdFilterList, //omci lib wants a slice for serialization
-				"ForwardOperation": uint8(0x10),    //VID investigation
-				"NumberOfEntries":  oFsm.numVlanFilterEntries,
+				me.VlanTaggingFilterData_VlanFilterList:   vtfdFilterList, //omci lib wants a slice for serialization
+				me.VlanTaggingFilterData_ForwardOperation: uint8(0x10),    //VID investigation
+				me.VlanTaggingFilterData_NumberOfEntries:  oFsm.numVlanFilterEntries,
 			},
 		}
 		logger.Debugw(ctx, "UniVlanConfigFsm sendcreate VTFD", log.Fields{
@@ -1448,9 +1448,9 @@
 			meParams := me.ParamData{
 				EntityID: vtfdID,
 				Attributes: me.AttributeValueMap{
-					"VlanFilterList":   vtfdFilterList,
-					"ForwardOperation": uint8(0x10), //VID investigation
-					"NumberOfEntries":  oFsm.numVlanFilterEntries,
+					me.VlanTaggingFilterData_VlanFilterList:   vtfdFilterList,
+					me.VlanTaggingFilterData_ForwardOperation: uint8(0x10), //VID investigation
+					me.VlanTaggingFilterData_NumberOfEntries:  oFsm.numVlanFilterEntries,
 				},
 			}
 			oFsm.mutexPLastTxMeInstance.Lock()
@@ -1499,9 +1499,9 @@
 			meParams := me.ParamData{
 				EntityID: vtfdID,
 				Attributes: me.AttributeValueMap{
-					"VlanFilterList":   vtfdFilterList,
-					"ForwardOperation": uint8(0x10), //VID investigation
-					"NumberOfEntries":  oFsm.numVlanFilterEntries,
+					me.VlanTaggingFilterData_VlanFilterList:   vtfdFilterList,
+					me.VlanTaggingFilterData_ForwardOperation: uint8(0x10), //VID investigation
+					me.VlanTaggingFilterData_NumberOfEntries:  oFsm.numVlanFilterEntries,
 				},
 			}
 			oFsm.mutexPLastTxMeInstance.Lock()
@@ -2166,8 +2166,8 @@
 		meParams := me.ParamData{
 			EntityID: evtocdID,
 			Attributes: me.AttributeValueMap{
-				"AssociationType":     uint8(associationType),
-				"AssociatedMePointer": oFsm.pOnuUniPort.EntityID,
+				me.ExtendedVlanTaggingOperationConfigurationData_AssociationType:     uint8(associationType),
+				me.ExtendedVlanTaggingOperationConfigurationData_AssociatedMePointer: oFsm.pOnuUniPort.EntityID,
 			},
 		}
 		oFsm.mutexPLastTxMeInstance.Lock()
@@ -2198,9 +2198,9 @@
 		meParams = me.ParamData{
 			EntityID: evtocdID,
 			Attributes: me.AttributeValueMap{
-				"InputTpid":      uint16(cDefaultTpid), //could be possibly retrieved from flow config one day, by now just like py-code base
-				"OutputTpid":     uint16(cDefaultTpid), //could be possibly retrieved from flow config one day, by now just like py-code base
-				"DownstreamMode": uint8(cDefaultDownstreamMode),
+				me.ExtendedVlanTaggingOperationConfigurationData_InputTpid:      uint16(cDefaultTpid), //could be possibly retrieved from flow config one day, by now just like py-code base
+				me.ExtendedVlanTaggingOperationConfigurationData_OutputTpid:     uint16(cDefaultTpid), //could be possibly retrieved from flow config one day, by now just like py-code base
+				me.ExtendedVlanTaggingOperationConfigurationData_DownstreamMode: uint8(cDefaultDownstreamMode),
 			},
 		}
 		oFsm.mutexPLastTxMeInstance.Lock()
@@ -2262,7 +2262,7 @@
 		meParams := me.ParamData{
 			EntityID: evtocdID,
 			Attributes: me.AttributeValueMap{
-				"ReceivedFrameVlanTaggingOperationTable": sliceEvtocdRule,
+				me.ExtendedVlanTaggingOperationConfigurationData_ReceivedFrameVlanTaggingOperationTable: sliceEvtocdRule,
 			},
 		}
 		oFsm.mutexPLastTxMeInstance.Lock()
@@ -2328,7 +2328,7 @@
 			meParams := me.ParamData{
 				EntityID: evtocdID,
 				Attributes: me.AttributeValueMap{
-					"ReceivedFrameVlanTaggingOperationTable": sliceEvtocdRule,
+					me.ExtendedVlanTaggingOperationConfigurationData_ReceivedFrameVlanTaggingOperationTable: sliceEvtocdRule,
 				},
 			}
 			oFsm.mutexPLastTxMeInstance.Lock()
@@ -2390,7 +2390,7 @@
 				meParams := me.ParamData{
 					EntityID: evtocdID,
 					Attributes: me.AttributeValueMap{
-						"ReceivedFrameVlanTaggingOperationTable": sliceEvtocdRule,
+						me.ExtendedVlanTaggingOperationConfigurationData_ReceivedFrameVlanTaggingOperationTable: sliceEvtocdRule,
 					},
 				}
 				oFsm.mutexPLastTxMeInstance.Lock()
@@ -2453,7 +2453,7 @@
 				meParams := me.ParamData{
 					EntityID: evtocdID,
 					Attributes: me.AttributeValueMap{
-						"ReceivedFrameVlanTaggingOperationTable": sliceEvtocdRule,
+						me.ExtendedVlanTaggingOperationConfigurationData_ReceivedFrameVlanTaggingOperationTable: sliceEvtocdRule,
 					},
 				}
 				oFsm.mutexPLastTxMeInstance.Lock()
@@ -2532,7 +2532,7 @@
 		meParams := me.ParamData{
 			EntityID: evtocdID,
 			Attributes: me.AttributeValueMap{
-				"ReceivedFrameVlanTaggingOperationTable": sliceEvtocdRule,
+				me.ExtendedVlanTaggingOperationConfigurationData_ReceivedFrameVlanTaggingOperationTable: sliceEvtocdRule,
 			},
 		}
 		oFsm.mutexPLastTxMeInstance.Lock()
@@ -2587,7 +2587,7 @@
 			meParams := me.ParamData{
 				EntityID: evtocdID,
 				Attributes: me.AttributeValueMap{
-					"ReceivedFrameVlanTaggingOperationTable": sliceEvtocdRule,
+					me.ExtendedVlanTaggingOperationConfigurationData_ReceivedFrameVlanTaggingOperationTable: sliceEvtocdRule,
 				},
 			}
 			oFsm.mutexPLastTxMeInstance.Lock()
@@ -2699,7 +2699,7 @@
 					meParams := me.ParamData{
 						EntityID: evtocdID,
 						Attributes: me.AttributeValueMap{
-							"ReceivedFrameVlanTaggingOperationTable": sliceEvtocdRule,
+							me.ExtendedVlanTaggingOperationConfigurationData_ReceivedFrameVlanTaggingOperationTable: sliceEvtocdRule,
 						},
 					}
 					oFsm.mutexPLastTxMeInstance.Lock()
@@ -2751,7 +2751,7 @@
 					meParams := me.ParamData{
 						EntityID: evtocdID,
 						Attributes: me.AttributeValueMap{
-							"ReceivedFrameVlanTaggingOperationTable": sliceEvtocdRule,
+							me.ExtendedVlanTaggingOperationConfigurationData_ReceivedFrameVlanTaggingOperationTable: sliceEvtocdRule,
 						},
 					}
 					oFsm.mutexPLastTxMeInstance.Lock()
@@ -2864,10 +2864,10 @@
 	meParams := me.ParamData{
 		EntityID: macBpCdEID,
 		Attributes: me.AttributeValueMap{
-			"BridgeIdPointer": cmn.MacBridgeServiceProfileEID + uint16(oFsm.pOnuUniPort.MacBpNo),
-			"PortNum":         0xf0, //fixed unique ANI side indication
-			"TpType":          6,    //MCGemIWTP
-			"TpPointer":       multicastGemPortID,
+			me.MacBridgePortConfigurationData_BridgeIdPointer: cmn.MacBridgeServiceProfileEID + uint16(oFsm.pOnuUniPort.MacBpNo),
+			me.MacBridgePortConfigurationData_PortNum:         0xf0, //fixed unique ANI side indication
+			me.MacBridgePortConfigurationData_TpType:          6,    //MCGemIWTP
+			me.MacBridgePortConfigurationData_TpPointer:       multicastGemPortID,
 		},
 	}
 	oFsm.mutexPLastTxMeInstance.Lock()
@@ -2911,9 +2911,9 @@
 	meParams = me.ParamData{
 		EntityID: mcastVtfdID,
 		Attributes: me.AttributeValueMap{
-			"VlanFilterList":   vtfdFilterList,
-			"ForwardOperation": uint8(0x10), //VID investigation
-			"NumberOfEntries":  oFsm.numVlanFilterEntries,
+			me.VlanTaggingFilterData_VlanFilterList:   vtfdFilterList,
+			me.VlanTaggingFilterData_ForwardOperation: uint8(0x10), //VID investigation
+			me.VlanTaggingFilterData_NumberOfEntries:  oFsm.numVlanFilterEntries,
 		},
 	}
 	oFsm.mutexPLastTxMeInstance.Lock()
@@ -2951,7 +2951,7 @@
 	meParams := me.ParamData{
 		EntityID: instID,
 		Attributes: me.AttributeValueMap{
-			"MeType": 0,
+			me.MulticastSubscriberConfigInfo_MeType: 0,
 			//Direct reference to the Operation profile
 			//TODO ANI side used on UNI side, not the clearest option.
 			"MulticastOperationsProfilePointer": instID,
@@ -2995,17 +2995,17 @@
 	meParams := me.ParamData{
 		EntityID: instID,
 		Attributes: me.AttributeValueMap{
-			"IgmpVersion":  2,
-			"IgmpFunction": 0,
+			me.MulticastOperationsProfile_IgmpVersion:  2,
+			me.MulticastOperationsProfile_IgmpFunction: 0,
 			//0 means false
-			"ImmediateLeave":          0,
-			"Robustness":              2,
-			"QuerierIpAddress":        0,
-			"QueryInterval":           125,
-			"QueryMaxResponseTime":    100,
-			"LastMemberQueryInterval": 10,
+			me.MulticastOperationsProfile_ImmediateLeave:          0,
+			me.MulticastOperationsProfile_Robustness:              2,
+			me.MulticastOperationsProfile_QuerierIpAddress:        0,
+			me.MulticastOperationsProfile_QueryInterval:           125,
+			me.MulticastOperationsProfile_QueryMaxResponseTime:    100,
+			me.MulticastOperationsProfile_LastMemberQueryInterval: 10,
 			//0 means false
-			"UnauthorizedJoinRequestBehaviour": 0,
+			me.MulticastOperationsProfile_UnauthorizedJoinRequestBehaviour: 0,
 		},
 	}
 	oFsm.mutexPLastTxMeInstance.Lock()
@@ -3070,7 +3070,7 @@
 	meParams := me.ParamData{
 		EntityID: instID,
 		Attributes: me.AttributeValueMap{
-			"DynamicAccessControlListTable": dynamicAccessCL,
+			me.MulticastOperationsProfile_DynamicAccessControlListTable: dynamicAccessCL,
 		},
 	}
 	oFsm.mutexPLastTxMeInstance.Lock()
@@ -3122,14 +3122,14 @@
 	meParams := me.ParamData{
 		EntityID: trafficDescriptorID,
 		Attributes: me.AttributeValueMap{
-			"Cir":                  cir,
-			"Pir":                  pir,
-			"Cbs":                  cbs,
-			"Pbs":                  pbs,
-			"ColourMode":           1,
-			"IngressColourMarking": 3,
-			"EgressColourMarking":  3,
-			"MeterType":            1,
+			me.TrafficDescriptor_Cir:                  cir,
+			me.TrafficDescriptor_Pir:                  pir,
+			me.TrafficDescriptor_Cbs:                  cbs,
+			me.TrafficDescriptor_Pbs:                  pbs,
+			me.TrafficDescriptor_ColourMode:           1,
+			me.TrafficDescriptor_IngressColourMarking: 3,
+			me.TrafficDescriptor_EgressColourMarking:  3,
+			me.TrafficDescriptor_MeterType:            1,
 		},
 	}
 	oFsm.mutexPLastTxMeInstance.Lock()
@@ -3165,7 +3165,7 @@
 	meParams := me.ParamData{
 		EntityID: gemPortEntityID,
 		Attributes: me.AttributeValueMap{
-			"TrafficDescriptorProfilePointerForUpstream": trafficDescriptorEntityID,
+			me.GemPortNetworkCtp_TrafficDescriptorProfilePointerForUpstream: trafficDescriptorEntityID,
 		},
 	}
 	oFsm.mutexPLastTxMeInstance.Lock()
diff --git a/internal/pkg/common/omci_cc.go b/internal/pkg/common/omci_cc.go
index 57bc0ce..45c536d 100755
--- a/internal/pkg/common/omci_cc.go
+++ b/internal/pkg/common/omci_cc.go
@@ -891,7 +891,7 @@
 
 	meParams := me.ParamData{
 		EntityID:   GalEthernetEID,
-		Attributes: me.AttributeValueMap{"MaximumGemPayloadSize": maxGemPayloadSize},
+		Attributes: me.AttributeValueMap{me.GalEthernetProfile_MaximumGemPayloadSize: maxGemPayloadSize},
 	}
 	meInstance, omciErr := me.NewGalEthernetProfile(meParams)
 	if omciErr.GetError() == nil {
@@ -941,7 +941,7 @@
 	// read ONU-2G from DB ???? //TODO!!!
 	meParams := me.ParamData{
 		EntityID:   0,
-		Attributes: me.AttributeValueMap{"CurrentConnectivityMode": connectivityModeValue},
+		Attributes: me.AttributeValueMap{me.Onu2G_CurrentConnectivityMode: connectivityModeValue},
 	}
 	meInstance, omciErr := me.NewOnu2G(meParams)
 	if omciErr.GetError() == nil {
@@ -988,11 +988,11 @@
 	meParams := me.ParamData{
 		EntityID: instID,
 		Attributes: me.AttributeValueMap{
-			"Priority":                   0x8000,
-			"MaxAge":                     20 * 256, //20s
-			"HelloTime":                  2 * 256,  //2s
-			"ForwardDelay":               15 * 256, //15s
-			"DynamicFilteringAgeingTime": 0,
+			me.MacBridgeServiceProfile_Priority:                   0x8000,
+			me.MacBridgeServiceProfile_MaxAge:                     20 * 256, //20s
+			me.MacBridgeServiceProfile_HelloTime:                  2 * 256,  //2s
+			me.MacBridgeServiceProfile_ForwardDelay:               15 * 256, //15s
+			me.MacBridgeServiceProfile_DynamicFilteringAgeingTime: 0,
 		},
 	}
 
@@ -1048,10 +1048,10 @@
 	meParams := me.ParamData{
 		EntityID: instID,
 		Attributes: me.AttributeValueMap{
-			"BridgeIdPointer": MacBridgeServiceProfileEID + uint16(aPUniPort.MacBpNo),
-			"PortNum":         aPUniPort.MacBpNo,
-			"TpType":          uint8(aPUniPort.PortType),
-			"TpPointer":       aPUniPort.EntityID,
+			me.MacBridgePortConfigurationData_BridgeIdPointer: MacBridgeServiceProfileEID + uint16(aPUniPort.MacBpNo),
+			me.MacBridgePortConfigurationData_PortNum:         aPUniPort.MacBpNo,
+			me.MacBridgePortConfigurationData_TpType:          uint8(aPUniPort.PortType),
+			me.MacBridgePortConfigurationData_TpPointer:       aPUniPort.EntityID,
 		},
 	}
 	meInstance, omciErr := me.NewMacBridgePortConfigurationData(meParams)
@@ -1109,8 +1109,8 @@
 	meParams := me.ParamData{
 		EntityID: instID,
 		Attributes: me.AttributeValueMap{
-			"AssociationType":     assType,
-			"AssociatedMePointer": aPUniPort.EntityID,
+			me.ExtendedVlanTaggingOperationConfigurationData_AssociationType:     assType,
+			me.ExtendedVlanTaggingOperationConfigurationData_AssociatedMePointer: aPUniPort.EntityID,
 			//EnhancedMode not yet supported, used with default options
 		},
 	}
@@ -1422,15 +1422,15 @@
 		EntityID: aInstID,
 		Attributes: me.AttributeValueMap{
 			//workaround for unsuitable omci-lib default values, cmp VOL-3729
-			"TpPointer":                          0xFFFF,
-			"InterworkTpPointerForPBitPriority0": 0xFFFF,
-			"InterworkTpPointerForPBitPriority1": 0xFFFF,
-			"InterworkTpPointerForPBitPriority2": 0xFFFF,
-			"InterworkTpPointerForPBitPriority3": 0xFFFF,
-			"InterworkTpPointerForPBitPriority4": 0xFFFF,
-			"InterworkTpPointerForPBitPriority5": 0xFFFF,
-			"InterworkTpPointerForPBitPriority6": 0xFFFF,
-			"InterworkTpPointerForPBitPriority7": 0xFFFF,
+			me.Ieee8021PMapperServiceProfile_TpPointer:                          0xFFFF,
+			me.Ieee8021PMapperServiceProfile_InterworkTpPointerForPBitPriority0: 0xFFFF,
+			me.Ieee8021PMapperServiceProfile_InterworkTpPointerForPBitPriority1: 0xFFFF,
+			me.Ieee8021PMapperServiceProfile_InterworkTpPointerForPBitPriority2: 0xFFFF,
+			me.Ieee8021PMapperServiceProfile_InterworkTpPointerForPBitPriority3: 0xFFFF,
+			me.Ieee8021PMapperServiceProfile_InterworkTpPointerForPBitPriority4: 0xFFFF,
+			me.Ieee8021PMapperServiceProfile_InterworkTpPointerForPBitPriority5: 0xFFFF,
+			me.Ieee8021PMapperServiceProfile_InterworkTpPointerForPBitPriority6: 0xFFFF,
+			me.Ieee8021PMapperServiceProfile_InterworkTpPointerForPBitPriority7: 0xFFFF,
 		},
 	}
 	meInstance, omciErr := me.NewIeee8021PMapperServiceProfile(meParams)
@@ -4552,7 +4552,7 @@
 		"SequNo": strconv.FormatInt(int64(tid), 16), "InstId": strconv.FormatInt(int64(entityID), 16), "create": create, "upstream": upstream})
 
 	meParam := me.ParamData{EntityID: entityID,
-		Attributes: me.AttributeValueMap{"ControlBlock": controlBlock},
+		Attributes: me.AttributeValueMap{me.EthernetFrameExtendedPm_ControlBlock: controlBlock},
 	}
 	var meInstance *me.ManagedEntity
 	var omciErr me.OmciErrors
@@ -4633,7 +4633,7 @@
 		"SequNo": strconv.FormatInt(int64(tid), 16), "InstId": strconv.FormatInt(int64(entityID), 16)})
 
 	meParams := me.ParamData{EntityID: entityID,
-		Attributes: me.AttributeValueMap{"ControlBlock": controlBlock},
+		Attributes: me.AttributeValueMap{me.EthernetFrameExtendedPm_ControlBlock: controlBlock},
 	}
 	var meInstance *me.ManagedEntity
 	var omciErr me.OmciErrors
diff --git a/internal/pkg/mib/mib_sync.go b/internal/pkg/mib/mib_sync.go
index 5222b8b..9b8196b 100755
--- a/internal/pkg/mib/mib_sync.go
+++ b/internal/pkg/mib/mib_sync.go
@@ -97,7 +97,7 @@
 
 func (oo *OnuDeviceEntry) enterGettingVendorAndSerialState(ctx context.Context, e *fsm.Event) {
 	logger.Debugw(ctx, "MibSync FSM", log.Fields{"Start getting VendorId and SerialNumber in State": e.FSM.Current(), "device-id": oo.deviceID})
-	requestedAttributes := me.AttributeValueMap{"VendorId": "", "SerialNumber": 0}
+	requestedAttributes := me.AttributeValueMap{me.OnuG_VendorId: "", me.OnuG_SerialNumber: 0}
 	oo.mutexLastTxParamStruct.Lock()
 	meInstance, err := oo.PDevOmciCC.SendGetMe(log.WithSpanFromContext(context.TODO(), ctx), me.OnuGClassID, cmn.OnugMeID, requestedAttributes, oo.baseDeviceHandler.GetOmciTimeout(), true, oo.PMibUploadFsm.CommChan)
 	//accept also nil as (error) return value for writing to LastTx
@@ -120,7 +120,7 @@
 
 func (oo *OnuDeviceEntry) enterGettingEquipmentIDState(ctx context.Context, e *fsm.Event) {
 	logger.Debugw(ctx, "MibSync FSM", log.Fields{"Start getting EquipmentId in State": e.FSM.Current(), "device-id": oo.deviceID})
-	requestedAttributes := me.AttributeValueMap{"EquipmentId": ""}
+	requestedAttributes := me.AttributeValueMap{me.Onu2G_EquipmentId: ""}
 	oo.mutexLastTxParamStruct.Lock()
 	meInstance, err := oo.PDevOmciCC.SendGetMe(log.WithSpanFromContext(context.TODO(), ctx), me.Onu2GClassID, cmn.Onu2gMeID, requestedAttributes, oo.baseDeviceHandler.GetOmciTimeout(), true, oo.PMibUploadFsm.CommChan)
 	//accept also nil as (error) return value for writing to LastTx
@@ -143,7 +143,7 @@
 
 func (oo *OnuDeviceEntry) enterGettingFirstSwVersionState(ctx context.Context, e *fsm.Event) {
 	logger.Debugw(ctx, "MibSync FSM", log.Fields{"Start getting IsActive and Version of first SW-image in State": e.FSM.Current(), "device-id": oo.deviceID})
-	requestedAttributes := me.AttributeValueMap{"IsCommitted": 0, "IsActive": 0, "Version": ""}
+	requestedAttributes := me.AttributeValueMap{me.SoftwareImage_IsCommitted: 0, me.SoftwareImage_IsActive: 0, me.SoftwareImage_Version: ""}
 	oo.mutexLastTxParamStruct.Lock()
 	meInstance, err := oo.PDevOmciCC.SendGetMe(log.WithSpanFromContext(context.TODO(), ctx), me.SoftwareImageClassID, cmn.FirstSwImageMeID, requestedAttributes, oo.baseDeviceHandler.GetOmciTimeout(), true, oo.PMibUploadFsm.CommChan)
 	//accept also nil as (error) return value for writing to LastTx
@@ -166,7 +166,7 @@
 
 func (oo *OnuDeviceEntry) enterGettingSecondSwVersionState(ctx context.Context, e *fsm.Event) {
 	logger.Debugw(ctx, "MibSync FSM", log.Fields{"Start getting IsActive and Version of second SW-image in State": e.FSM.Current(), "device-id": oo.deviceID})
-	requestedAttributes := me.AttributeValueMap{"IsCommitted": 0, "IsActive": 0, "Version": ""}
+	requestedAttributes := me.AttributeValueMap{me.SoftwareImage_IsCommitted: 0, me.SoftwareImage_IsActive: 0, me.SoftwareImage_Version: ""}
 	oo.mutexLastTxParamStruct.Lock()
 	meInstance, err := oo.PDevOmciCC.SendGetMe(log.WithSpanFromContext(context.TODO(), ctx), me.SoftwareImageClassID, cmn.SecondSwImageMeID, requestedAttributes, oo.baseDeviceHandler.GetOmciTimeout(), true, oo.PMibUploadFsm.CommChan)
 	//accept also nil as (error) return value for writing to LastTx
@@ -189,7 +189,7 @@
 
 func (oo *OnuDeviceEntry) enterGettingMacAddressState(ctx context.Context, e *fsm.Event) {
 	logger.Debugw(ctx, "MibSync FSM", log.Fields{"Start getting MacAddress in State": e.FSM.Current(), "device-id": oo.deviceID})
-	requestedAttributes := me.AttributeValueMap{"MacAddress": ""}
+	requestedAttributes := me.AttributeValueMap{me.IpHostConfigData_MacAddress: ""}
 	oo.mutexLastTxParamStruct.Lock()
 	meInstance, err := oo.PDevOmciCC.SendGetMe(log.WithSpanFromContext(context.TODO(), ctx), me.IpHostConfigDataClassID, cmn.IPHostConfigDataMeID, requestedAttributes, oo.baseDeviceHandler.GetOmciTimeout(), true, oo.PMibUploadFsm.CommChan)
 	//accept also nil as (error) return value for writing to LastTx
@@ -550,7 +550,7 @@
 		oo.mutexLastTxParamStruct.Lock()
 		if oo.lastTxParamStruct.lastTxMessageType == omci.GetRequestType && oo.lastTxParamStruct.repeatCount == 0 {
 			logger.Debugw(ctx, "MibSync FSM - repeat MdsGetRequest (updated SequenceNumber)", log.Fields{"device-id": oo.deviceID})
-			requestedAttributes := me.AttributeValueMap{"MibDataSync": ""}
+			requestedAttributes := me.AttributeValueMap{me.OnuData_MibDataSync: ""}
 			_, err := oo.PDevOmciCC.SendGetMe(log.WithSpanFromContext(context.TODO(), ctx),
 				me.OnuDataClassID, cmn.OnuDataMeID, requestedAttributes, oo.baseDeviceHandler.GetOmciTimeout(), true, oo.PMibUploadFsm.CommChan)
 			if err != nil {
@@ -721,8 +721,8 @@
 			case "OnuG":
 				oo.mutexLastTxParamStruct.RUnlock()
 				oo.MutexPersOnuConfig.Lock()
-				oo.SOnuPersistentData.PersVendorID = cmn.TrimStringFromMeOctet(meAttributes["VendorId"])
-				snBytes, _ := me.InterfaceToOctets(meAttributes["SerialNumber"])
+				oo.SOnuPersistentData.PersVendorID = cmn.TrimStringFromMeOctet(meAttributes[me.OnuG_VendorId])
+				snBytes, _ := me.InterfaceToOctets(meAttributes[me.OnuG_SerialNumber])
 				if cmn.OnugSerialNumberLen == len(snBytes) {
 					snVendorPart := fmt.Sprintf("%s", snBytes[:4])
 					snNumberPart := hex.EncodeToString(snBytes[4:])
@@ -740,7 +740,7 @@
 			case "Onu2G":
 				oo.mutexLastTxParamStruct.RUnlock()
 				oo.MutexPersOnuConfig.Lock()
-				oo.SOnuPersistentData.PersEquipmentID = cmn.TrimStringFromMeOctet(meAttributes["EquipmentId"])
+				oo.SOnuPersistentData.PersEquipmentID = cmn.TrimStringFromMeOctet(meAttributes[me.Onu2G_EquipmentId])
 				logger.Debugw(ctx, "MibSync FSM - GetResponse Data for Onu2-G - EquipmentId", log.Fields{"device-id": oo.deviceID,
 					"onuDeviceEntry.equipmentID": oo.SOnuPersistentData.PersEquipmentID})
 				oo.MutexPersOnuConfig.Unlock()
@@ -760,7 +760,7 @@
 				return nil
 			case "IpHostConfigData":
 				oo.mutexLastTxParamStruct.RUnlock()
-				macBytes, _ := me.InterfaceToOctets(meAttributes["MacAddress"])
+				macBytes, _ := me.InterfaceToOctets(meAttributes[me.IpHostConfigData_MacAddress])
 				oo.MutexPersOnuConfig.Lock()
 				if cmn.OmciMacAddressLen == len(macBytes) {
 					oo.SOnuPersistentData.PersMacAddress = hex.EncodeToString(macBytes[:])
@@ -776,7 +776,7 @@
 				return nil
 			case "OnuData":
 				oo.mutexLastTxParamStruct.RUnlock()
-				oo.checkMdsValue(ctx, meAttributes["MibDataSync"].(uint8))
+				oo.checkMdsValue(ctx, meAttributes[me.OnuData_MibDataSync].(uint8))
 				return nil
 			default:
 				oo.mutexLastTxParamStruct.RUnlock()
@@ -801,9 +801,9 @@
 
 //HandleSwImageIndications updates onuSwImageIndications with the ONU data just received
 func (oo *OnuDeviceEntry) HandleSwImageIndications(ctx context.Context, entityID uint16, meAttributes me.AttributeValueMap) {
-	imageIsCommitted := meAttributes["IsCommitted"].(uint8)
-	imageIsActive := meAttributes["IsActive"].(uint8)
-	imageVersion := cmn.TrimStringFromMeOctet(meAttributes["Version"])
+	imageIsCommitted := meAttributes[me.SoftwareImage_IsCommitted].(uint8)
+	imageIsActive := meAttributes[me.SoftwareImage_IsActive].(uint8)
+	imageVersion := cmn.TrimStringFromMeOctet(meAttributes[me.SoftwareImage_Version])
 	oo.MutexPersOnuConfig.RLock()
 	logger.Infow(ctx, "MibSync FSM - GetResponse Data for SoftwareImage",
 		log.Fields{"device-id": oo.deviceID, "entityID": entityID,
@@ -1042,7 +1042,7 @@
 
 func (oo *OnuDeviceEntry) requestMdsValue(ctx context.Context) {
 	logger.Debugw(ctx, "Request MDS value", log.Fields{"device-id": oo.deviceID})
-	requestedAttributes := me.AttributeValueMap{"MibDataSync": ""}
+	requestedAttributes := me.AttributeValueMap{me.OnuData_MibDataSync: ""}
 	meInstance, err := oo.PDevOmciCC.SendGetMe(log.WithSpanFromContext(context.TODO(), ctx),
 		me.OnuDataClassID, cmn.OnuDataMeID, requestedAttributes, oo.baseDeviceHandler.GetOmciTimeout(), true, oo.PMibUploadFsm.CommChan)
 	//accept also nil as (error) return value for writing to LastTx
diff --git a/internal/pkg/pmmgr/onu_metrics_manager.go b/internal/pkg/pmmgr/onu_metrics_manager.go
index 2ce6174..b67f455 100755
--- a/internal/pkg/pmmgr/onu_metrics_manager.go
+++ b/internal/pkg/pmmgr/onu_metrics_manager.go
@@ -74,20 +74,6 @@
 	ExtendedPmCreateAttempts            = 3
 	UnsupportedCounterValue32bit uint64 = 4294967294
 	UnsupportedCounterValue64bit uint64 = 18446744073709551614
-	dropEvents                          = "DropEvents"
-	octets                              = "Octets"
-	frames                              = "Frames"
-	broadcastFrames                     = "BroadcastFrames"
-	multicastFrames                     = "MulticastFrames"
-	crcErroredFrames                    = "CrcErroredFrames"
-	undersizeFrames                     = "UndersizeFrames"
-	oversizeFrames                      = "OversizeFrames"
-	frames64Octets                      = "Frames64Octets"
-	frames65To127Octets                 = "Frames65To127Octets"
-	frames128To255Octets                = "Frames128To255Octets"
-	frames256To511Octets                = "Frames256To511Octets"
-	frames512To1023Octets               = "Frames512To1023Octets"
-	frames1024To1518Octets              = "Frames1024To1518Octets"
 )
 
 // OpticalPowerGroupMetrics are supported optical pm names
@@ -760,7 +746,7 @@
 		var meAttributes me.AttributeValueMap
 		opticalMetrics := make(map[string]float32)
 		// Get the ANI-G instance optical power attributes
-		requestedAttributes := me.AttributeValueMap{"OpticalSignalLevel": 0, "TransmitOpticalLevel": 0}
+		requestedAttributes := me.AttributeValueMap{me.AniG_OpticalSignalLevel: 0, me.AniG_TransmitOpticalLevel: 0}
 		meInstance, err := mm.pOnuDeviceEntry.GetDevOmciCC().SendGetMe(ctx, me.AniGClassID, anigInstID, requestedAttributes, mm.pDeviceHandler.GetOmciTimeout(), true, mm.PAdaptFsm.CommChan)
 		if err != nil {
 			logger.Errorw(ctx, "GetMe failed, failure PM FSM!", log.Fields{"device-id": mm.deviceID})
@@ -781,15 +767,15 @@
 			for k := range OpticalPowerGroupMetrics {
 				switch k {
 				case "ani_g_instance_id":
-					if val, ok := meAttributes["ManagedEntityId"]; ok && val != nil {
+					if val, ok := meAttributes[me.ManagedEntityID]; ok && val != nil {
 						opticalMetrics[k] = float32(val.(uint16))
 					}
 				case "transmit_power_dBm":
-					if val, ok := meAttributes["TransmitOpticalLevel"]; ok && val != nil {
+					if val, ok := meAttributes[me.AniG_TransmitOpticalLevel]; ok && val != nil {
 						opticalMetrics[k] = float32(math.Round((float64(cmn.TwosComplementToSignedInt16(val.(uint16)))/500.0)*10) / 10) // convert to dBm rounded of to single decimal place
 					}
 				case "receive_power_dBm":
-					if val, ok := meAttributes["OpticalSignalLevel"]; ok && val != nil {
+					if val, ok := meAttributes[me.AniG_OpticalSignalLevel]; ok && val != nil {
 						opticalMetrics[k] = float32(math.Round((float64(cmn.TwosComplementToSignedInt16(val.(uint16)))/500.0)*10) / 10) // convert to dBm rounded of to single decimal place
 					}
 				default:
@@ -843,7 +829,7 @@
 		unigMetrics := make(map[string]float32)
 		var meAttributes me.AttributeValueMap
 		// Get the UNI-G instance optical power attributes
-		requestedAttributes := me.AttributeValueMap{"AdministrativeState": 0}
+		requestedAttributes := me.AttributeValueMap{me.UniG_AdministrativeState: 0}
 		meInstance, err := mm.pOnuDeviceEntry.GetDevOmciCC().SendGetMe(ctx, me.UniGClassID, unigInstID, requestedAttributes, mm.pDeviceHandler.GetOmciTimeout(), true, mm.PAdaptFsm.CommChan)
 		if err != nil {
 			logger.Errorw(ctx, "UNI-G failed, failure PM FSM!", log.Fields{"device-id": mm.deviceID})
@@ -864,14 +850,14 @@
 			for k := range UniStatusGroupMetrics {
 				switch k {
 				case "uni_admin_state":
-					if val, ok := meAttributes["AdministrativeState"]; ok && val != nil {
+					if val, ok := meAttributes[me.UniG_AdministrativeState]; ok && val != nil {
 						unigMetrics[k] = float32(val.(byte))
 					}
 				default:
 					// do nothing
 				}
 			}
-			if val, ok := meAttributes["ManagedEntityId"]; ok && val != nil {
+			if val, ok := meAttributes[me.ManagedEntityID]; ok && val != nil {
 				entityID := val.(uint16)
 				unigMetrics["entity_id"] = float32(entityID)
 				// TODO: Rlock needed for reading uniEntityMap? May not be needed given uniEntityMap is populated setup at initial ONU bring up
@@ -899,8 +885,12 @@
 		var meAttributes me.AttributeValueMap
 		pptpMetrics := make(map[string]float32)
 
-		requestedAttributes := me.AttributeValueMap{"ConfigurationInd": 0, "OperationalState": 0, "AdministrativeState": 0}
-		meInstance, err := mm.pOnuDeviceEntry.GetDevOmciCC().SendGetMe(ctx, me.PhysicalPathTerminationPointEthernetUniClassID, pptpInstID, requestedAttributes, mm.pDeviceHandler.GetOmciTimeout(), true, mm.PAdaptFsm.CommChan)
+		requestedAttributes := me.AttributeValueMap{
+			me.PhysicalPathTerminationPointEthernetUni_ConfigurationInd:    0,
+			me.PhysicalPathTerminationPointEthernetUni_OperationalState:    0,
+			me.PhysicalPathTerminationPointEthernetUni_AdministrativeState: 0}
+		meInstance, err := mm.pOnuDeviceEntry.GetDevOmciCC().SendGetMe(ctx, me.PhysicalPathTerminationPointEthernetUniClassID,
+			pptpInstID, requestedAttributes, mm.pDeviceHandler.GetOmciTimeout(), true, mm.PAdaptFsm.CommChan)
 		if err != nil {
 			logger.Errorw(ctx, "GetMe failed, failure PM FSM!", log.Fields{"device-id": mm.deviceID})
 			_ = mm.PAdaptFsm.PFsm.Event(L2PmEventFailure)
@@ -921,15 +911,15 @@
 			for k := range UniStatusGroupMetrics {
 				switch k {
 				case "configuration_ind":
-					if val, ok := meAttributes["ConfigurationInd"]; ok && val != nil {
+					if val, ok := meAttributes[me.PhysicalPathTerminationPointEthernetUni_ConfigurationInd]; ok && val != nil {
 						pptpMetrics[k] = float32(val.(byte))
 					}
 				case "oper_status":
-					if val, ok := meAttributes["OperationalState"]; ok && val != nil {
+					if val, ok := meAttributes[me.PhysicalPathTerminationPointEthernetUni_OperationalState]; ok && val != nil {
 						pptpMetrics[k] = float32(val.(byte))
 					}
 				case "uni_admin_state":
-					if val, ok := meAttributes["AdministrativeState"]; ok && val != nil {
+					if val, ok := meAttributes[me.PhysicalPathTerminationPointEthernetUni_AdministrativeState]; ok && val != nil {
 						pptpMetrics[k] = float32(val.(byte))
 					}
 				default:
@@ -937,7 +927,7 @@
 				}
 			}
 		}
-		if val, ok := meAttributes["ManagedEntityId"]; ok && val != nil {
+		if val, ok := meAttributes[me.ManagedEntityID]; ok && val != nil {
 			entityID := val.(uint16)
 			pptpMetrics["entity_id"] = float32(entityID)
 			// TODO: Rlock needed for reading uniEntityMap? May not be needed given uniEntityMap is populated setup at initial ONU bring up
@@ -964,7 +954,7 @@
 		var meAttributes me.AttributeValueMap
 		veipMetrics := make(map[string]float32)
 
-		requestedAttributes := me.AttributeValueMap{"OperationalState": 0, "AdministrativeState": 0}
+		requestedAttributes := me.AttributeValueMap{me.VirtualEthernetInterfacePoint_OperationalState: 0, me.VirtualEthernetInterfacePoint_AdministrativeState: 0}
 		meInstance, err := mm.pOnuDeviceEntry.GetDevOmciCC().SendGetMe(ctx, me.VirtualEthernetInterfacePointClassID, veipInstID, requestedAttributes, mm.pDeviceHandler.GetOmciTimeout(), true, mm.PAdaptFsm.CommChan)
 		if err != nil {
 			logger.Errorw(ctx, "GetMe failed, failure PM FSM!", log.Fields{"device-id": mm.deviceID})
@@ -986,11 +976,11 @@
 			for k := range UniStatusGroupMetrics {
 				switch k {
 				case "oper_status":
-					if val, ok := meAttributes["OperationalState"]; ok && val != nil {
+					if val, ok := meAttributes[me.VirtualEthernetInterfacePoint_OperationalState]; ok && val != nil {
 						veipMetrics[k] = float32(val.(byte))
 					}
 				case "uni_admin_state":
-					if val, ok := meAttributes["AdministrativeState"]; ok && val != nil {
+					if val, ok := meAttributes[me.VirtualEthernetInterfacePoint_AdministrativeState]; ok && val != nil {
 						veipMetrics[k] = float32(val.(byte))
 					}
 				default:
@@ -999,7 +989,7 @@
 			}
 		}
 
-		if val, ok := meAttributes["ManagedEntityId"]; ok && val != nil {
+		if val, ok := meAttributes[me.ManagedEntityID]; ok && val != nil {
 			entityID := val.(uint16)
 			veipMetrics["entity_id"] = float32(entityID)
 			// TODO: Rlock needed for reading uniEntityMap? May not be needed given uniEntityMap is populated setup at initial ONU bring up
@@ -1999,7 +1989,7 @@
 		upstream = true
 	}
 	// Insert "IntervalEndTime" as part of the requested attributes as we need this to compare the get responses when get request is multipart
-	requestedAttributes["IntervalEndTime"] = 0
+	requestedAttributes[me.EthernetFramePerformanceMonitoringHistoryDataUpstream_IntervalEndTime] = 0
 	meInstance, err := mm.pOnuDeviceEntry.GetDevOmciCC().SendGetMe(ctx, classID, entityID, requestedAttributes, mm.pDeviceHandler.GetOmciTimeout(), true, mm.PAdaptFsm.CommChan)
 	if err != nil {
 		logger.Errorw(ctx, "GetME failed, failure PM FSM!", log.Fields{"device-id": mm.deviceID})
@@ -2034,63 +2024,63 @@
 		if _, ok := ethPMHistData[k]; !ok {
 			switch k {
 			case "entity_id":
-				if val, ok := meAttributes["ManagedEntityId"]; ok && val != nil {
+				if val, ok := meAttributes[me.ManagedEntityID]; ok && val != nil {
 					ethPMHistData[k] = float32(val.(uint16))
 				}
 			case "drop_events":
-				if val, ok := meAttributes["DropEvents"]; ok && val != nil {
+				if val, ok := meAttributes[me.EthernetFramePerformanceMonitoringHistoryDataUpstream_DropEvents]; ok && val != nil {
 					ethPMHistData[k] = float32(val.(uint32))
 				}
 			case "octets":
-				if val, ok := meAttributes["Octets"]; ok && val != nil {
+				if val, ok := meAttributes[me.EthernetFramePerformanceMonitoringHistoryDataUpstream_Octets]; ok && val != nil {
 					ethPMHistData[k] = float32(val.(uint32))
 				}
 			case "packets":
-				if val, ok := meAttributes["Packets"]; ok && val != nil {
+				if val, ok := meAttributes[me.EthernetFramePerformanceMonitoringHistoryDataUpstream_Packets]; ok && val != nil {
 					ethPMHistData[k] = float32(val.(uint32))
 				}
 			case "broadcast_packets":
-				if val, ok := meAttributes["BroadcastPackets"]; ok && val != nil {
+				if val, ok := meAttributes[me.EthernetFramePerformanceMonitoringHistoryDataUpstream_BroadcastPackets]; ok && val != nil {
 					ethPMHistData[k] = float32(val.(uint32))
 				}
 			case "multicast_packets":
-				if val, ok := meAttributes["MulticastPackets"]; ok && val != nil {
+				if val, ok := meAttributes[me.EthernetFramePerformanceMonitoringHistoryDataUpstream_MulticastPackets]; ok && val != nil {
 					ethPMHistData[k] = float32(val.(uint32))
 				}
 			case "crc_errored_packets":
-				if val, ok := meAttributes["CrcErroredPackets"]; ok && val != nil {
+				if val, ok := meAttributes[me.EthernetFramePerformanceMonitoringHistoryDataUpstream_CrcErroredPackets]; ok && val != nil {
 					ethPMHistData[k] = float32(val.(uint32))
 				}
 			case "undersize_packets":
-				if val, ok := meAttributes["UndersizePackets"]; ok && val != nil {
+				if val, ok := meAttributes[me.EthernetFramePerformanceMonitoringHistoryDataUpstream_UndersizePackets]; ok && val != nil {
 					ethPMHistData[k] = float32(val.(uint32))
 				}
 			case "oversize_packets":
-				if val, ok := meAttributes["OversizePackets"]; ok && val != nil {
+				if val, ok := meAttributes[me.EthernetFramePerformanceMonitoringHistoryDataUpstream_OversizePackets]; ok && val != nil {
 					ethPMHistData[k] = float32(val.(uint32))
 				}
 			case "64_octets":
-				if val, ok := meAttributes["Packets64Octets"]; ok && val != nil {
+				if val, ok := meAttributes[me.EthernetFramePerformanceMonitoringHistoryDataUpstream_Packets64Octets]; ok && val != nil {
 					ethPMHistData[k] = float32(val.(uint32))
 				}
 			case "65_to_127_octets":
-				if val, ok := meAttributes["Packets65To127Octets"]; ok && val != nil {
+				if val, ok := meAttributes[me.EthernetFramePerformanceMonitoringHistoryDataUpstream_Packets65To127Octets]; ok && val != nil {
 					ethPMHistData[k] = float32(val.(uint32))
 				}
 			case "128_to_255_octets":
-				if val, ok := meAttributes["Packets128To255Octets"]; ok && val != nil {
+				if val, ok := meAttributes[me.EthernetFramePerformanceMonitoringHistoryDataUpstream_Packets128To255Octets]; ok && val != nil {
 					ethPMHistData[k] = float32(val.(uint32))
 				}
 			case "256_to_511_octets":
-				if val, ok := meAttributes["Packets256To511Octets"]; ok && val != nil {
+				if val, ok := meAttributes[me.EthernetFramePerformanceMonitoringHistoryDataUpstream_Packets256To511Octets]; ok && val != nil {
 					ethPMHistData[k] = float32(val.(uint32))
 				}
 			case "512_to_1023_octets":
-				if val, ok := meAttributes["Packets512To1023Octets"]; ok && val != nil {
+				if val, ok := meAttributes[me.EthernetFramePerformanceMonitoringHistoryDataUpstream_Packets512To1023Octets]; ok && val != nil {
 					ethPMHistData[k] = float32(val.(uint32))
 				}
 			case "1024_to_1518_octets":
-				if val, ok := meAttributes["Packets1024To1518Octets"]; ok && val != nil {
+				if val, ok := meAttributes[me.EthernetFramePerformanceMonitoringHistoryDataUpstream_Packets1024To1518Octets]; ok && val != nil {
 					ethPMHistData[k] = float32(val.(uint32))
 				}
 			default:
@@ -2136,63 +2126,63 @@
 		if _, ok := ethPMUniHistData[k]; !ok {
 			switch k {
 			case "entity_id":
-				if val, ok := meAttributes["ManagedEntityId"]; ok && val != nil {
+				if val, ok := meAttributes[me.ManagedEntityID]; ok && val != nil {
 					ethPMUniHistData[k] = float32(val.(uint16))
 				}
 			case "fcs_errors":
-				if val, ok := meAttributes["FcsErrors"]; ok && val != nil {
+				if val, ok := meAttributes[me.EthernetPerformanceMonitoringHistoryData_FcsErrors]; ok && val != nil {
 					ethPMUniHistData[k] = float32(val.(uint32))
 				}
 			case "excessive_collision_counter":
-				if val, ok := meAttributes["ExcessiveCollisionCounter"]; ok && val != nil {
+				if val, ok := meAttributes[me.EthernetPerformanceMonitoringHistoryData_ExcessiveCollisionCounter]; ok && val != nil {
 					ethPMUniHistData[k] = float32(val.(uint32))
 				}
 			case "late_collision_counter":
-				if val, ok := meAttributes["LateCollisionCounter"]; ok && val != nil {
+				if val, ok := meAttributes[me.EthernetPerformanceMonitoringHistoryData_LateCollisionCounter]; ok && val != nil {
 					ethPMUniHistData[k] = float32(val.(uint32))
 				}
 			case "frames_too_long":
-				if val, ok := meAttributes["FramesTooLong"]; ok && val != nil {
+				if val, ok := meAttributes[me.EthernetPerformanceMonitoringHistoryData_FramesTooLong]; ok && val != nil {
 					ethPMUniHistData[k] = float32(val.(uint32))
 				}
 			case "buffer_overflows_on_rx":
-				if val, ok := meAttributes["BufferOverflowsOnReceive"]; ok && val != nil {
+				if val, ok := meAttributes[me.EthernetPerformanceMonitoringHistoryData_BufferOverflowsOnReceive]; ok && val != nil {
 					ethPMUniHistData[k] = float32(val.(uint32))
 				}
 			case "buffer_overflows_on_tx":
-				if val, ok := meAttributes["BufferOverflowsOnTransmit"]; ok && val != nil {
+				if val, ok := meAttributes[me.EthernetPerformanceMonitoringHistoryData_BufferOverflowsOnTransmit]; ok && val != nil {
 					ethPMUniHistData[k] = float32(val.(uint32))
 				}
 			case "single_collision_frame_counter":
-				if val, ok := meAttributes["SingleCollisionFrameCounter"]; ok && val != nil {
+				if val, ok := meAttributes[me.EthernetPerformanceMonitoringHistoryData_SingleCollisionFrameCounter]; ok && val != nil {
 					ethPMUniHistData[k] = float32(val.(uint32))
 				}
 			case "multiple_collisions_frame_counter":
-				if val, ok := meAttributes["MultipleCollisionsFrameCounter"]; ok && val != nil {
+				if val, ok := meAttributes[me.EthernetPerformanceMonitoringHistoryData_MultipleCollisionsFrameCounter]; ok && val != nil {
 					ethPMUniHistData[k] = float32(val.(uint32))
 				}
 			case "sqe_counter":
-				if val, ok := meAttributes["SqeCounter"]; ok && val != nil {
+				if val, ok := meAttributes[me.EthernetPerformanceMonitoringHistoryData_SqeCounter]; ok && val != nil {
 					ethPMUniHistData[k] = float32(val.(uint32))
 				}
 			case "deferred_tx_counter":
-				if val, ok := meAttributes["DeferredTransmissionCounter"]; ok && val != nil {
+				if val, ok := meAttributes[me.EthernetPerformanceMonitoringHistoryData_DeferredTransmissionCounter]; ok && val != nil {
 					ethPMUniHistData[k] = float32(val.(uint32))
 				}
 			case "internal_mac_tx_error_counter":
-				if val, ok := meAttributes["InternalMacTransmitErrorCounter"]; ok && val != nil {
+				if val, ok := meAttributes[me.EthernetPerformanceMonitoringHistoryData_InternalMacTransmitErrorCounter]; ok && val != nil {
 					ethPMUniHistData[k] = float32(val.(uint32))
 				}
 			case "carrier_sense_error_counter":
-				if val, ok := meAttributes["CarrierSenseErrorCounter"]; ok && val != nil {
+				if val, ok := meAttributes[me.EthernetPerformanceMonitoringHistoryData_CarrierSenseErrorCounter]; ok && val != nil {
 					ethPMUniHistData[k] = float32(val.(uint32))
 				}
 			case "alignment_error_counter":
-				if val, ok := meAttributes["AlignmentErrorCounter"]; ok && val != nil {
+				if val, ok := meAttributes[me.EthernetPerformanceMonitoringHistoryData_AlignmentErrorCounter]; ok && val != nil {
 					ethPMUniHistData[k] = float32(val.(uint32))
 				}
 			case "internal_mac_rx_error_counter":
-				if val, ok := meAttributes["InternalMacReceiveErrorCounter"]; ok && val != nil {
+				if val, ok := meAttributes[me.EthernetPerformanceMonitoringHistoryData_InternalMacReceiveErrorCounter]; ok && val != nil {
 					ethPMUniHistData[k] = float32(val.(uint32))
 				}
 			default:
@@ -2207,8 +2197,8 @@
 func (mm *OnuMetricsManager) populateFecHistoryMetrics(ctx context.Context, classID me.ClassID, entityID uint16,
 	meAttributes me.AttributeValueMap, requestedAttributes me.AttributeValueMap, fecHistData map[string]float32, intervalEndTime *int) error {
 	// Insert "IntervalEndTime" as part of the requested attributes as we need this to compare the get responses when get request is multipart
-	if _, ok := requestedAttributes["IntervalEndTime"]; !ok {
-		requestedAttributes["IntervalEndTime"] = 0
+	if _, ok := requestedAttributes[me.FecPerformanceMonitoringHistoryData_IntervalEndTime]; !ok {
+		requestedAttributes[me.FecPerformanceMonitoringHistoryData_IntervalEndTime] = 0
 	}
 	meInstance, err := mm.pOnuDeviceEntry.GetDevOmciCC().SendGetMe(ctx, classID, entityID, requestedAttributes, mm.pDeviceHandler.GetOmciTimeout(), true, mm.PAdaptFsm.CommChan)
 	if err != nil {
@@ -2238,27 +2228,27 @@
 		if _, ok := fecHistData[k]; !ok {
 			switch k {
 			case "entity_id":
-				if val, ok := meAttributes["ManagedEntityId"]; ok && val != nil {
+				if val, ok := meAttributes[me.ManagedEntityID]; ok && val != nil {
 					fecHistData[k] = float32(val.(uint16))
 				}
 			case "corrected_bytes":
-				if val, ok := meAttributes["CorrectedBytes"]; ok && val != nil {
+				if val, ok := meAttributes[me.FecPerformanceMonitoringHistoryData_CorrectedBytes]; ok && val != nil {
 					fecHistData[k] = float32(val.(uint32))
 				}
 			case "corrected_code_words":
-				if val, ok := meAttributes["CorrectedCodeWords"]; ok && val != nil {
+				if val, ok := meAttributes[me.FecPerformanceMonitoringHistoryData_CorrectedCodeWords]; ok && val != nil {
 					fecHistData[k] = float32(val.(uint32))
 				}
 			case "uncorrectable_code_words":
-				if val, ok := meAttributes["UncorrectableCodeWords"]; ok && val != nil {
+				if val, ok := meAttributes[me.FecPerformanceMonitoringHistoryData_UncorrectableCodeWords]; ok && val != nil {
 					fecHistData[k] = float32(val.(uint32))
 				}
 			case "total_code_words":
-				if val, ok := meAttributes["TotalCodeWords"]; ok && val != nil {
+				if val, ok := meAttributes[me.FecPerformanceMonitoringHistoryData_TotalCodeWords]; ok && val != nil {
 					fecHistData[k] = float32(val.(uint32))
 				}
 			case "fec_seconds":
-				if val, ok := meAttributes["FecSeconds"]; ok && val != nil {
+				if val, ok := meAttributes[me.FecPerformanceMonitoringHistoryData_FecSeconds]; ok && val != nil {
 					fecHistData[k] = float32(val.(uint16))
 				}
 			default:
@@ -2273,8 +2263,8 @@
 func (mm *OnuMetricsManager) populateGemPortMetrics(ctx context.Context, classID me.ClassID, entityID uint16,
 	meAttributes me.AttributeValueMap, requestedAttributes me.AttributeValueMap, gemPortHistData map[string]float32, intervalEndTime *int) error {
 	// Insert "IntervalEndTime" is part of the requested attributes as we need this to compare the get responses when get request is multipart
-	if _, ok := requestedAttributes["IntervalEndTime"]; !ok {
-		requestedAttributes["IntervalEndTime"] = 0
+	if _, ok := requestedAttributes[me.GemPortNetworkCtpPerformanceMonitoringHistoryData_IntervalEndTime]; !ok {
+		requestedAttributes[me.GemPortNetworkCtpPerformanceMonitoringHistoryData_IntervalEndTime] = 0
 	}
 	meInstance, err := mm.pOnuDeviceEntry.GetDevOmciCC().SendGetMe(ctx, classID, entityID, requestedAttributes, mm.pDeviceHandler.GetOmciTimeout(), true, mm.PAdaptFsm.CommChan)
 	if err != nil {
@@ -2304,27 +2294,27 @@
 		if _, ok := gemPortHistData[k]; !ok {
 			switch k {
 			case "entity_id":
-				if val, ok := meAttributes["ManagedEntityId"]; ok && val != nil {
+				if val, ok := meAttributes[me.ManagedEntityID]; ok && val != nil {
 					gemPortHistData[k] = float32(val.(uint16))
 				}
 			case "transmitted_gem_frames":
-				if val, ok := meAttributes["TransmittedGemFrames"]; ok && val != nil {
+				if val, ok := meAttributes[me.GemPortNetworkCtpPerformanceMonitoringHistoryData_TransmittedGemFrames]; ok && val != nil {
 					gemPortHistData[k] = float32(val.(uint32))
 				}
 			case "received_gem_frames":
-				if val, ok := meAttributes["ReceivedGemFrames"]; ok && val != nil {
+				if val, ok := meAttributes[me.GemPortNetworkCtpPerformanceMonitoringHistoryData_ReceivedGemFrames]; ok && val != nil {
 					gemPortHistData[k] = float32(val.(uint32))
 				}
 			case "received_payload_bytes":
-				if val, ok := meAttributes["ReceivedPayloadBytes"]; ok && val != nil {
+				if val, ok := meAttributes[me.GemPortNetworkCtpPerformanceMonitoringHistoryData_ReceivedPayloadBytes]; ok && val != nil {
 					gemPortHistData[k] = float32(val.(uint64))
 				}
 			case "transmitted_payload_bytes":
-				if val, ok := meAttributes["TransmittedPayloadBytes"]; ok && val != nil {
+				if val, ok := meAttributes[me.GemPortNetworkCtpPerformanceMonitoringHistoryData_TransmittedPayloadBytes]; ok && val != nil {
 					gemPortHistData[k] = float32(val.(uint64))
 				}
 			case "encryption_key_errors":
-				if val, ok := meAttributes["EncryptionKeyErrors"]; ok && val != nil {
+				if val, ok := meAttributes[me.GemPortNetworkCtpPerformanceMonitoringHistoryData_EncryptionKeyErrors]; ok && val != nil {
 					gemPortHistData[k] = float32(val.(uint32))
 				}
 			default:
@@ -3476,42 +3466,42 @@
 			if _, ok := ethFrameExtPMData[k]; !ok {
 				switch k {
 				case "drop_events":
-					if val, ok := meAttributes[dropEvents]; ok && val != nil {
+					if val, ok := meAttributes[me.EthernetFrameExtendedPm_DropEvents]; ok && val != nil {
 						ethFrameExtPMData[k] = uint64(val.(uint32))
 						receivedMask |= 0x2000
 					} else if !ok {
 						ethFrameExtPMData[k] = UnsupportedCounterValue32bit
 					}
 				case "octets":
-					if val, ok := meAttributes[octets]; ok && val != nil {
+					if val, ok := meAttributes[me.EthernetFrameExtendedPm_Octets]; ok && val != nil {
 						ethFrameExtPMData[k] = uint64(val.(uint32))
 						receivedMask |= 0x1000
 					} else if !ok {
 						ethFrameExtPMData[k] = UnsupportedCounterValue32bit
 					}
 				case "frames":
-					if val, ok := meAttributes[frames]; ok && val != nil {
+					if val, ok := meAttributes[me.EthernetFrameExtendedPm_Frames]; ok && val != nil {
 						ethFrameExtPMData[k] = uint64(val.(uint32))
 						receivedMask |= 0x800
 					} else if !ok {
 						ethFrameExtPMData[k] = UnsupportedCounterValue32bit
 					}
 				case "broadcast_frames":
-					if val, ok := meAttributes[broadcastFrames]; ok && val != nil {
+					if val, ok := meAttributes[me.EthernetFrameExtendedPm_BroadcastFrames]; ok && val != nil {
 						ethFrameExtPMData[k] = uint64(val.(uint32))
 						receivedMask |= 0x400
 					} else if !ok {
 						ethFrameExtPMData[k] = UnsupportedCounterValue32bit
 					}
 				case "multicast_frames":
-					if val, ok := meAttributes[multicastFrames]; ok && val != nil {
+					if val, ok := meAttributes[me.EthernetFrameExtendedPm_MulticastFrames]; ok && val != nil {
 						ethFrameExtPMData[k] = uint64(val.(uint32))
 						receivedMask |= 0x200
 					} else if !ok {
 						ethFrameExtPMData[k] = UnsupportedCounterValue32bit
 					}
 				case "crc_errored_frames":
-					if val, ok := meAttributes[crcErroredFrames]; ok && val != nil {
+					if val, ok := meAttributes[me.EthernetFrameExtendedPm_CrcErroredFrames]; ok && val != nil {
 						ethFrameExtPMData[k] = uint64(val.(uint32))
 						receivedMask |= 0x100
 					} else if !ok {
@@ -3527,42 +3517,42 @@
 			if _, ok := ethFrameExtPMData[k]; !ok {
 				switch k {
 				case "undersize_frames":
-					if val, ok := meAttributes[undersizeFrames]; ok && val != nil {
+					if val, ok := meAttributes[me.EthernetFrameExtendedPm_UndersizeFrames]; ok && val != nil {
 						ethFrameExtPMData[k] = uint64(val.(uint32))
 						receivedMask |= 0x80
 					} else if !ok {
 						ethFrameExtPMData[k] = UnsupportedCounterValue32bit
 					}
 				case "oversize_frames":
-					if val, ok := meAttributes[oversizeFrames]; ok && val != nil {
+					if val, ok := meAttributes[me.EthernetFrameExtendedPm_OversizeFrames]; ok && val != nil {
 						ethFrameExtPMData[k] = uint64(val.(uint32))
 						receivedMask |= 0x40
 					} else if !ok {
 						ethFrameExtPMData[k] = UnsupportedCounterValue32bit
 					}
 				case "64_octets":
-					if val, ok := meAttributes[frames64Octets]; ok && val != nil {
+					if val, ok := meAttributes[me.EthernetFrameExtendedPm_Frames64Octets]; ok && val != nil {
 						ethFrameExtPMData[k] = uint64(val.(uint32))
 						receivedMask |= 0x20
 					} else if !ok {
 						ethFrameExtPMData[k] = UnsupportedCounterValue32bit
 					}
 				case "65_to_127_octets":
-					if val, ok := meAttributes[frames65To127Octets]; ok && val != nil {
+					if val, ok := meAttributes[me.EthernetFrameExtendedPm_Frames65To127Octets]; ok && val != nil {
 						ethFrameExtPMData[k] = uint64(val.(uint32))
 						receivedMask |= 0x10
 					} else if !ok {
 						ethFrameExtPMData[k] = UnsupportedCounterValue32bit
 					}
 				case "128_to_255_octets":
-					if val, ok := meAttributes[frames128To255Octets]; ok && val != nil {
+					if val, ok := meAttributes[me.EthernetFrameExtendedPm_Frames128To255Octets]; ok && val != nil {
 						ethFrameExtPMData[k] = uint64(val.(uint32))
 						receivedMask |= 0x8
 					} else if !ok {
 						ethFrameExtPMData[k] = UnsupportedCounterValue32bit
 					}
 				case "256_to_511_octets":
-					if val, ok := meAttributes[frames256To511Octets]; ok && val != nil {
+					if val, ok := meAttributes[me.EthernetFrameExtendedPm_Frames256To511Octets]; ok && val != nil {
 						ethFrameExtPMData[k] = uint64(val.(uint32))
 						receivedMask |= 0x4
 					} else if !ok {
@@ -3578,14 +3568,14 @@
 			if _, ok := ethFrameExtPMData[k]; !ok {
 				switch k {
 				case "512_to_1023_octets":
-					if val, ok := meAttributes[frames512To1023Octets]; ok && val != nil {
+					if val, ok := meAttributes[me.EthernetFrameExtendedPm_Frames512To1023Octets]; ok && val != nil {
 						ethFrameExtPMData[k] = uint64(val.(uint32))
 						receivedMask |= 0x2
 					} else if !ok {
 						ethFrameExtPMData[k] = UnsupportedCounterValue32bit
 					}
 				case "1024_to_1518_octets":
-					if val, ok := meAttributes[frames1024To1518Octets]; ok && val != nil {
+					if val, ok := meAttributes[me.EthernetFrameExtendedPm_Frames1024To1518Octets]; ok && val != nil {
 						ethFrameExtPMData[k] = uint64(val.(uint32))
 						receivedMask |= 0x1
 					} else if !ok {
@@ -3611,21 +3601,21 @@
 			if _, ok := ethFrameExtPMData[k]; !ok {
 				switch k {
 				case "drop_events":
-					if val, ok := meAttributes[dropEvents]; ok && val != nil {
+					if val, ok := meAttributes[me.EthernetFrameExtendedPm64Bit_DropEvents]; ok && val != nil {
 						ethFrameExtPMData[k] = val.(uint64)
 						receivedMask |= 0x2000
 					} else if !ok {
 						ethFrameExtPMData[k] = UnsupportedCounterValue64bit
 					}
 				case "octets":
-					if val, ok := meAttributes[octets]; ok && val != nil {
+					if val, ok := meAttributes[me.EthernetFrameExtendedPm64Bit_Octets]; ok && val != nil {
 						ethFrameExtPMData[k] = val.(uint64)
 						receivedMask |= 0x1000
 					} else if !ok {
 						ethFrameExtPMData[k] = UnsupportedCounterValue64bit
 					}
 				case "frames":
-					if val, ok := meAttributes[frames]; ok && val != nil {
+					if val, ok := meAttributes[me.EthernetFrameExtendedPm64Bit_Frames]; ok && val != nil {
 						ethFrameExtPMData[k] = val.(uint64)
 						receivedMask |= 0x800
 					} else if !ok {
@@ -3639,21 +3629,21 @@
 			if _, ok := ethFrameExtPMData[k]; !ok {
 				switch k {
 				case "broadcast_frames":
-					if val, ok := meAttributes[broadcastFrames]; ok && val != nil {
+					if val, ok := meAttributes[me.EthernetFrameExtendedPm64Bit_BroadcastFrames]; ok && val != nil {
 						ethFrameExtPMData[k] = val.(uint64)
 						receivedMask |= 0x400
 					} else if !ok {
 						ethFrameExtPMData[k] = UnsupportedCounterValue64bit
 					}
 				case "multicast_frames":
-					if val, ok := meAttributes[multicastFrames]; ok && val != nil {
+					if val, ok := meAttributes[me.EthernetFrameExtendedPm64Bit_MulticastFrames]; ok && val != nil {
 						ethFrameExtPMData[k] = val.(uint64)
 						receivedMask |= 0x200
 					} else if !ok {
 						ethFrameExtPMData[k] = UnsupportedCounterValue64bit
 					}
 				case "crc_errored_frames":
-					if val, ok := meAttributes[crcErroredFrames]; ok && val != nil {
+					if val, ok := meAttributes[me.EthernetFrameExtendedPm64Bit_CrcErroredFrames]; ok && val != nil {
 						ethFrameExtPMData[k] = val.(uint64)
 						receivedMask |= 0x100
 					} else if !ok {
@@ -3667,21 +3657,21 @@
 			if _, ok := ethFrameExtPMData[k]; !ok {
 				switch k {
 				case "undersize_frames":
-					if val, ok := meAttributes[undersizeFrames]; ok && val != nil {
+					if val, ok := meAttributes[me.EthernetFrameExtendedPm64Bit_UndersizeFrames]; ok && val != nil {
 						ethFrameExtPMData[k] = val.(uint64)
 						receivedMask |= 0x80
 					} else if !ok {
 						ethFrameExtPMData[k] = UnsupportedCounterValue64bit
 					}
 				case "oversize_frames":
-					if val, ok := meAttributes[oversizeFrames]; ok && val != nil {
+					if val, ok := meAttributes[me.EthernetFrameExtendedPm64Bit_OversizeFrames]; ok && val != nil {
 						ethFrameExtPMData[k] = val.(uint64)
 						receivedMask |= 0x40
 					} else if !ok {
 						ethFrameExtPMData[k] = UnsupportedCounterValue64bit
 					}
 				case "64_octets":
-					if val, ok := meAttributes[frames64Octets]; ok && val != nil {
+					if val, ok := meAttributes[me.EthernetFrameExtendedPm64Bit_Frames64Octets]; ok && val != nil {
 						ethFrameExtPMData[k] = val.(uint64)
 						receivedMask |= 0x20
 					} else if !ok {
@@ -3695,21 +3685,21 @@
 			if _, ok := ethFrameExtPMData[k]; !ok {
 				switch k {
 				case "65_to_127_octets":
-					if val, ok := meAttributes[frames65To127Octets]; ok && val != nil {
+					if val, ok := meAttributes[me.EthernetFrameExtendedPm64Bit_Frames65To127Octets]; ok && val != nil {
 						ethFrameExtPMData[k] = val.(uint64)
 						receivedMask |= 0x10
 					} else if !ok {
 						ethFrameExtPMData[k] = UnsupportedCounterValue64bit
 					}
 				case "128_to_255_octets":
-					if val, ok := meAttributes[frames128To255Octets]; ok && val != nil {
+					if val, ok := meAttributes[me.EthernetFrameExtendedPm64Bit_Frames128To255Octets]; ok && val != nil {
 						ethFrameExtPMData[k] = val.(uint64)
 						receivedMask |= 0x8
 					} else if !ok {
 						ethFrameExtPMData[k] = UnsupportedCounterValue64bit
 					}
 				case "256_to_511_octets":
-					if val, ok := meAttributes[frames256To511Octets]; ok && val != nil {
+					if val, ok := meAttributes[me.EthernetFrameExtendedPm64Bit_Frames256To511Octets]; ok && val != nil {
 						ethFrameExtPMData[k] = val.(uint64)
 						receivedMask |= 0x4
 					} else if !ok {
@@ -3725,14 +3715,14 @@
 			if _, ok := ethFrameExtPMData[k]; !ok {
 				switch k {
 				case "512_to_1023_octets":
-					if val, ok := meAttributes[frames512To1023Octets]; ok && val != nil {
+					if val, ok := meAttributes[me.EthernetFrameExtendedPm64Bit_Frames512To1023Octets]; ok && val != nil {
 						ethFrameExtPMData[k] = val.(uint64)
 						receivedMask |= 0x2
 					} else if !ok {
 						ethFrameExtPMData[k] = UnsupportedCounterValue64bit
 					}
 				case "1024_to_1518_octets":
-					if val, ok := meAttributes[frames1024To1518Octets]; ok && val != nil {
+					if val, ok := meAttributes[me.EthernetFrameExtendedPm64Bit_Frames1024To1518Octets]; ok && val != nil {
 						ethFrameExtPMData[k] = val.(uint64)
 						receivedMask |= 0x1
 					} else if !ok {
diff --git a/internal/pkg/swupg/omci_onu_upgrade.go b/internal/pkg/swupg/omci_onu_upgrade.go
index f9b393e..7809ef8 100755
--- a/internal/pkg/swupg/omci_onu_upgrade.go
+++ b/internal/pkg/swupg/omci_onu_upgrade.go
@@ -960,7 +960,7 @@
 func (oFsm *OnuUpgradeFsm) enterCheckImageName(ctx context.Context, e *fsm.Event) {
 	logger.Debugw(ctx, "OnuUpgradeFsm checking downloaded image name", log.Fields{
 		"device-id": oFsm.deviceID, "me-id": oFsm.InactiveImageMeID})
-	requestedAttributes := me.AttributeValueMap{"IsCommitted": 0, "IsActive": 0, "Version": ""}
+	requestedAttributes := me.AttributeValueMap{me.SoftwareImage_IsCommitted: 0, me.SoftwareImage_IsActive: 0, me.SoftwareImage_Version: ""}
 	meInstance, err := oFsm.pOmciCC.SendGetMe(log.WithSpanFromContext(context.Background(), ctx),
 		me.SoftwareImageClassID, oFsm.InactiveImageMeID, requestedAttributes, oFsm.pDeviceHandler.GetOmciTimeout(),
 		false, oFsm.PAdaptFsm.CommChan)
@@ -1038,7 +1038,7 @@
 func (oFsm *OnuUpgradeFsm) enterCheckCommitted(ctx context.Context, e *fsm.Event) {
 	logger.Debugw(ctx, "OnuUpgradeFsm checking committed SW", log.Fields{
 		"device-id": oFsm.deviceID, "me-id": oFsm.InactiveImageMeID})
-	requestedAttributes := me.AttributeValueMap{"IsCommitted": 0, "IsActive": 0, "Version": ""}
+	requestedAttributes := me.AttributeValueMap{me.SoftwareImage_IsCommitted: 0, me.SoftwareImage_IsActive: 0, me.SoftwareImage_Version: ""}
 	meInstance, err := oFsm.pOmciCC.SendGetMe(log.WithSpanFromContext(context.Background(), ctx),
 		me.SoftwareImageClassID, oFsm.InactiveImageMeID, requestedAttributes, oFsm.pDeviceHandler.GetOmciTimeout(), false, oFsm.PAdaptFsm.CommChan)
 	if err != nil {
@@ -1612,9 +1612,9 @@
 	}
 
 	meAttributes := msgObj.Attributes
-	imageIsCommitted := meAttributes["IsCommitted"].(uint8)
-	imageIsActive := meAttributes["IsActive"].(uint8)
-	imageVersion := cmn.TrimStringFromMeOctet(meAttributes["Version"])
+	imageIsCommitted := meAttributes[me.SoftwareImage_IsCommitted].(uint8)
+	imageIsActive := meAttributes[me.SoftwareImage_IsActive].(uint8)
+	imageVersion := cmn.TrimStringFromMeOctet(meAttributes[me.SoftwareImage_Version])
 	logger.Debugw(ctx, "OnuUpgradeFsm - GetResponse Data for SoftwareImage",
 		log.Fields{"device-id": oFsm.deviceID, "entityID": msgObj.EntityInstance,
 			"version": imageVersion, "isActive": imageIsActive, "isCommitted": imageIsCommitted})
diff --git a/internal/pkg/swupg/onu_image_status.go b/internal/pkg/swupg/onu_image_status.go
index eb4021f..02d92bc 100755
--- a/internal/pkg/swupg/onu_image_status.go
+++ b/internal/pkg/swupg/onu_image_status.go
@@ -45,14 +45,6 @@
 	pLastTxMeInstance      *me.ManagedEntity
 }
 
-const (
-	cImgVersion     = "Version"
-	cImgIsCommitted = "IsCommitted"
-	cImgIsActive    = "IsActive"
-	cImgIsValid     = "IsValid"
-	cImgProductCode = "ProductCode"
-	cImgImageHash   = "ImageHash"
-)
 const cResponse = "response: "
 
 //NewOnuImageStatus creates a new instance of OnuImageStatus
@@ -91,17 +83,17 @@
 		// a global mechanism should be implemented that automates this distribution - which would entail quite some
 		// changes on the respective receiver sides.
 
-		oo.requestedAttributes = me.AttributeValueMap{cImgVersion: "", cImgIsCommitted: 0, cImgIsActive: 0, cImgIsValid: 0}
+		oo.requestedAttributes = me.AttributeValueMap{me.SoftwareImage_Version: "", me.SoftwareImage_IsCommitted: 0, me.SoftwareImage_IsActive: 0, me.SoftwareImage_IsValid: 0}
 		if err := oo.requestOnuImageAttributes(ctx, uint16(i), &image); err != nil {
 			logger.Errorw(ctx, err.Error(), log.Fields{"requestedAttributes": oo.requestedAttributes, "device-id": oo.deviceID})
 			return nil, err
 		}
-		oo.requestedAttributes = me.AttributeValueMap{cImgProductCode: ""}
+		oo.requestedAttributes = me.AttributeValueMap{me.SoftwareImage_ProductCode: ""}
 		if err := oo.requestOnuImageAttributes(ctx, uint16(i), &image); err != nil {
 			logger.Errorw(ctx, err.Error(), log.Fields{"requestedAttributes": oo.requestedAttributes, "device-id": oo.deviceID})
 			return nil, err
 		}
-		oo.requestedAttributes = me.AttributeValueMap{cImgImageHash: 0}
+		oo.requestedAttributes = me.AttributeValueMap{me.SoftwareImage_ImageHash: 0}
 		if err := oo.requestOnuImageAttributes(ctx, uint16(i), &image); err != nil {
 			logger.Errorw(ctx, err.Error(), log.Fields{"requestedAttributes": oo.requestedAttributes, "device-id": oo.deviceID})
 			return nil, err
@@ -213,7 +205,7 @@
 	meAttributes := msgObj.Attributes
 	logger.Debugw(ctx, "processAttributesReceived", log.Fields{"attributes": meAttributes, "device-id": oo.deviceID})
 
-	if _, ok := oo.requestedAttributes[cImgVersion]; ok {
+	if _, ok := oo.requestedAttributes[me.SoftwareImage_Version]; ok {
 		if msgObj.Result != me.Success {
 			logger.Errorw(ctx, "processAttributesReceived retrieval of mandatory attributes failed",
 				log.Fields{"device-id": oo.deviceID})
@@ -224,40 +216,40 @@
 	for k := range oo.requestedAttributes {
 		switch k {
 		// mandatory attributes
-		case cImgIsCommitted:
-			if meAttributes[cImgIsCommitted].(uint8) == cmn.SwIsCommitted {
+		case me.SoftwareImage_IsCommitted:
+			if meAttributes[me.SoftwareImage_IsCommitted].(uint8) == cmn.SwIsCommitted {
 				image.IsCommited = true
 			} else {
 				image.IsCommited = false
 			}
-		case cImgIsActive:
-			if meAttributes[cImgIsActive].(uint8) == cmn.SwIsActive {
+		case me.SoftwareImage_IsActive:
+			if meAttributes[me.SoftwareImage_IsActive].(uint8) == cmn.SwIsActive {
 				image.IsActive = true
 			} else {
 				image.IsActive = false
 			}
-		case cImgIsValid:
-			if meAttributes[cImgIsValid].(uint8) == cmn.SwIsValid {
+		case me.SoftwareImage_IsValid:
+			if meAttributes[me.SoftwareImage_IsValid].(uint8) == cmn.SwIsValid {
 				image.IsValid = true
 			} else {
 				image.IsValid = false
 			}
-		case cImgVersion:
-			image.Version = cmn.TrimStringFromMeOctet(meAttributes[cImgVersion])
+		case me.SoftwareImage_Version:
+			image.Version = cmn.TrimStringFromMeOctet(meAttributes[me.SoftwareImage_Version])
 
 		// optional attributes
-		case cImgProductCode:
+		case me.SoftwareImage_ProductCode:
 			if msgObj.Result == me.Success {
-				image.ProductCode = cmn.TrimStringFromMeOctet(meAttributes[cImgProductCode])
+				image.ProductCode = cmn.TrimStringFromMeOctet(meAttributes[me.SoftwareImage_ProductCode])
 			} else {
 				sResult := msgObj.Result.String()
 				logger.Infow(ctx, "processAttributesReceived - ProductCode",
 					log.Fields{"result": sResult, "unsupported attribute mask": msgObj.UnsupportedAttributeMask, "device-id": oo.deviceID})
 				image.ProductCode = cResponse + sResult
 			}
-		case cImgImageHash:
+		case me.SoftwareImage_ImageHash:
 			if msgObj.Result == me.Success {
-				bytes, _ := me.InterfaceToOctets(meAttributes[cImgImageHash])
+				bytes, _ := me.InterfaceToOctets(meAttributes[me.SoftwareImage_ImageHash])
 				image.Hash = hex.EncodeToString(bytes)
 			} else {
 				sResult := msgObj.Result.String()
diff --git a/internal/pkg/uniprt/uniportadmin.go b/internal/pkg/uniprt/uniportadmin.go
index 4ddf154..2a0a2c9 100755
--- a/internal/pkg/uniprt/uniportadmin.go
+++ b/internal/pkg/uniprt/uniportadmin.go
@@ -213,7 +213,7 @@
 	oFsm.mutexAdminState.RUnlock()
 	logger.Debugw(ctx, "LockStateFSM Tx Set::ONU-G:admin", log.Fields{
 		"omciAdmin": omciAdminState, "in state": e.FSM.Current(), "device-id": oFsm.deviceID})
-	requestedAttributes := me.AttributeValueMap{"AdministrativeState": omciAdminState}
+	requestedAttributes := me.AttributeValueMap{me.OnuG_AdministrativeState: omciAdminState}
 	oFsm.mutexPLastTxMeInstance.Lock()
 	meInstance, err := oFsm.pOmciCC.SendSetOnuGLS(log.WithSpanFromContext(context.TODO(), ctx), oFsm.pDeviceHandler.GetOmciTimeout(), true,
 		requestedAttributes, oFsm.PAdaptFsm.CommChan)
@@ -430,7 +430,7 @@
 	}
 	oFsm.mutexAdminState.RUnlock()
 	//set PPTPEthUni or VEIP AdminState
-	requestedAttributes := me.AttributeValueMap{"AdministrativeState": omciAdminState}
+	requestedAttributes := me.AttributeValueMap{me.PhysicalPathTerminationPointEthernetUni_AdministrativeState: omciAdminState}
 
 	for uniNo, uniPort := range *oFsm.pDeviceHandler.GetUniEntityMap() {
 		// only unlock the UniPort in case it is defined for usage (R2.6 limit only one port),
diff --git a/internal/pkg/uniprt/uniportstatus.go b/internal/pkg/uniprt/uniportstatus.go
index b088d41..4c294ce 100755
--- a/internal/pkg/uniprt/uniportstatus.go
+++ b/internal/pkg/uniprt/uniportstatus.go
@@ -28,12 +28,7 @@
 	"github.com/opencord/voltha-protos/v5/go/extension"
 )
 
-const (
-	uniStatusTimeout = 3
-	adminState       = "AdministrativeState"
-	operationalState = "OperationalState"
-	configInd        = "ConfigurationInd"
-)
+const uniStatusTimeout = 3
 
 //UniPortStatus implements methods to get uni port status info
 type UniPortStatus struct {
@@ -59,7 +54,10 @@
 
 		if uniPort.UniID == uint8(uniIdx) && uniPort.PortType == cmn.UniPPTP {
 
-			requestedAttributes := me.AttributeValueMap{adminState: 0, operationalState: 0, configInd: 0}
+			requestedAttributes := me.AttributeValueMap{
+				me.PhysicalPathTerminationPointEthernetUni_AdministrativeState: 0,
+				me.PhysicalPathTerminationPointEthernetUni_OperationalState:    0,
+				me.PhysicalPathTerminationPointEthernetUni_ConfigurationInd:    0}
 			// Note: No reference to fetch the OMCI timeout configuration value, so hard code it to 10s
 			meInstance, err := portStatus.pOmiCC.SendGetMe(ctx, me.PhysicalPathTerminationPointEthernetUniClassID, uniPort.EntityID, requestedAttributes, 10, true, portStatus.omciRespChn)
 			if err != nil {
@@ -134,17 +132,17 @@
 			},
 		},
 	}
-	if meAttributes[operationalState].(uint8) == 0 {
+	if meAttributes[me.PhysicalPathTerminationPointEthernetUni_OperationalState].(uint8) == 0 {
 		singleValResp.Response.GetUniInfo().OperState = extension.GetOnuUniInfoResponse_ENABLED
-	} else if meAttributes[operationalState].(uint8) == 1 {
+	} else if meAttributes[me.PhysicalPathTerminationPointEthernetUni_OperationalState].(uint8) == 1 {
 		singleValResp.Response.GetUniInfo().OperState = extension.GetOnuUniInfoResponse_DISABLED
 	} else {
 		singleValResp.Response.GetUniInfo().OperState = extension.GetOnuUniInfoResponse_OPERSTATE_UNDEFINED
 	}
 
-	if meAttributes[adminState].(uint8) == 0 {
+	if meAttributes[me.PhysicalPathTerminationPointEthernetUni_AdministrativeState].(uint8) == 0 {
 		singleValResp.Response.GetUniInfo().AdmState = extension.GetOnuUniInfoResponse_UNLOCKED
-	} else if meAttributes[adminState].(uint8) == 1 {
+	} else if meAttributes[me.PhysicalPathTerminationPointEthernetUni_AdministrativeState].(uint8) == 1 {
 		singleValResp.Response.GetUniInfo().AdmState = extension.GetOnuUniInfoResponse_LOCKED
 	} else {
 		singleValResp.Response.GetUniInfo().AdmState = extension.GetOnuUniInfoResponse_ADMSTATE_UNDEFINED
@@ -159,7 +157,7 @@
 		18: extension.GetOnuUniInfoResponse_HUNDRED_BASE_T_HDX,
 		19: extension.GetOnuUniInfoResponse_GIGABIT_ETHERNET_HDX,
 	}
-	configInd := meAttributes[configInd].(uint8)
+	configInd := meAttributes[me.PhysicalPathTerminationPointEthernetUni_ConfigurationInd].(uint8)
 	singleValResp.Response.GetUniInfo().ConfigInd = configIndMap[configInd]
 	return &singleValResp
 }