diff --git a/generated/aal5performancemonitoringhistorydata.go b/generated/aal5performancemonitoringhistorydata.go
index 50dd54a..2ddf76e 100644
--- a/generated/aal5performancemonitoringhistorydata.go
+++ b/generated/aal5performancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -81,10 +81,20 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const Aal5PerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const Aal5PerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const Aal5PerformanceMonitoringHistoryData_SumOfInvalidCsFieldErrors = "SumOfInvalidCsFieldErrors"
+const Aal5PerformanceMonitoringHistoryData_CrcViolations = "CrcViolations"
+const Aal5PerformanceMonitoringHistoryData_ReassemblyTimerExpirations = "ReassemblyTimerExpirations"
+const Aal5PerformanceMonitoringHistoryData_BufferOverflows = "BufferOverflows"
+const Aal5PerformanceMonitoringHistoryData_EncapProtocolErrors = "EncapProtocolErrors"
+
 func init() {
 	aal5performancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "Aal5PerformanceMonitoringHistoryData",
-		ClassID: 18,
+		ClassID: Aal5PerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -94,14 +104,14 @@
 		),
 		AllowedAttributeMask: 0xfe00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint32Field("SumOfInvalidCsFieldErrors", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4: Uint32Field("CrcViolations", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5: Uint32Field("ReassemblyTimerExpirations", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6: Uint32Field("BufferOverflows", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7: Uint32Field("EncapProtocolErrors", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(Aal5PerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: Uint16Field(Aal5PerformanceMonitoringHistoryData_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint32Field(Aal5PerformanceMonitoringHistoryData_SumOfInvalidCsFieldErrors, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4: Uint32Field(Aal5PerformanceMonitoringHistoryData_CrcViolations, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5: Uint32Field(Aal5PerformanceMonitoringHistoryData_ReassemblyTimerExpirations, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6: Uint32Field(Aal5PerformanceMonitoringHistoryData_BufferOverflows, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7: Uint32Field(Aal5PerformanceMonitoringHistoryData_EncapProtocolErrors, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/aal5profile.go b/generated/aal5profile.go
index bbade42..423bce7 100644
--- a/generated/aal5profile.go
+++ b/generated/aal5profile.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -80,10 +80,16 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const Aal5Profile_MaxCpcsPduSize = "MaxCpcsPduSize"
+const Aal5Profile_AalMode = "AalMode"
+const Aal5Profile_SscsType = "SscsType"
+
 func init() {
 	aal5profileBME = &ManagedEntityDefinition{
 		Name:    "Aal5Profile",
-		ClassID: 16,
+		ClassID: Aal5ProfileClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -92,10 +98,10 @@
 		),
 		AllowedAttributeMask: 0xe000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: Uint16Field("MaxCpcsPduSize", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2: ByteField("AalMode", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: ByteField("SscsType", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: Uint16Field(Aal5Profile_MaxCpcsPduSize, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2: ByteField(Aal5Profile_AalMode, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: ByteField(Aal5Profile_SscsType, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/ani-g.go b/generated/ani-g.go
index 0e13c5c..bec4bb4 100644
--- a/generated/ani-g.go
+++ b/generated/ani-g.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -155,10 +155,29 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const AniG_SrIndication = "SrIndication"
+const AniG_TotalTcontNumber = "TotalTcontNumber"
+const AniG_GemBlockLength = "GemBlockLength"
+const AniG_PiggybackDbaReporting = "PiggybackDbaReporting"
+const AniG_Deprecated = "Deprecated"
+const AniG_SignalFailThreshold = "SignalFailThreshold"
+const AniG_SignalDegradeThreshold = "SignalDegradeThreshold"
+const AniG_Arc = "Arc"
+const AniG_ArcInterval = "ArcInterval"
+const AniG_OpticalSignalLevel = "OpticalSignalLevel"
+const AniG_LowerOpticalThreshold = "LowerOpticalThreshold"
+const AniG_UpperOpticalThreshold = "UpperOpticalThreshold"
+const AniG_OnuResponseTime = "OnuResponseTime"
+const AniG_TransmitOpticalLevel = "TransmitOpticalLevel"
+const AniG_LowerTransmitPowerThreshold = "LowerTransmitPowerThreshold"
+const AniG_UpperTransmitPowerThreshold = "UpperTransmitPowerThreshold"
+
 func init() {
 	anigBME = &ManagedEntityDefinition{
 		Name:    "AniG",
-		ClassID: 263,
+		ClassID: AniGClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
@@ -166,23 +185,23 @@
 		),
 		AllowedAttributeMask: 0xffff,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  ByteField("SrIndication", EnumerationAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  Uint16Field("TotalTcontNumber", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
-			3:  Uint16Field("GemBlockLength", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
-			4:  ByteField("PiggybackDbaReporting", EnumerationAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  ByteField("Deprecated", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, true, 5),
-			6:  ByteField("SignalFailThreshold", UnsignedIntegerAttributeType, 0x0400, 5, mapset.NewSetWith(Read, Write), false, false, false, 6),
-			7:  ByteField("SignalDegradeThreshold", UnsignedIntegerAttributeType, 0x0200, 9, mapset.NewSetWith(Read, Write), false, false, false, 7),
-			8:  ByteField("Arc", EnumerationAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), true, true, false, 8),
-			9:  ByteField("ArcInterval", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, true, false, 9),
-			10: Uint16Field("OpticalSignalLevel", SignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, true, false, 10),
-			11: ByteField("LowerOpticalThreshold", SignedIntegerAttributeType, 0x0020, 255, mapset.NewSetWith(Read, Write), false, true, false, 11),
-			12: ByteField("UpperOpticalThreshold", SignedIntegerAttributeType, 0x0010, 255, mapset.NewSetWith(Read, Write), false, true, false, 12),
-			13: Uint16Field("OnuResponseTime", UnsignedIntegerAttributeType, 0x0008, 35000, mapset.NewSetWith(Read), false, true, false, 13),
-			14: Uint16Field("TransmitOpticalLevel", SignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, true, false, 14),
-			15: ByteField("LowerTransmitPowerThreshold", SignedIntegerAttributeType, 0x0002, 129, mapset.NewSetWith(Read, Write), false, true, false, 15),
-			16: ByteField("UpperTransmitPowerThreshold", SignedIntegerAttributeType, 0x0001, 129, mapset.NewSetWith(Read, Write), false, true, false, 16),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  ByteField(AniG_SrIndication, EnumerationAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  Uint16Field(AniG_TotalTcontNumber, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
+			3:  Uint16Field(AniG_GemBlockLength, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
+			4:  ByteField(AniG_PiggybackDbaReporting, EnumerationAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  ByteField(AniG_Deprecated, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, true, 5),
+			6:  ByteField(AniG_SignalFailThreshold, UnsignedIntegerAttributeType, 0x0400, 5, mapset.NewSetWith(Read, Write), false, false, false, 6),
+			7:  ByteField(AniG_SignalDegradeThreshold, UnsignedIntegerAttributeType, 0x0200, 9, mapset.NewSetWith(Read, Write), false, false, false, 7),
+			8:  ByteField(AniG_Arc, EnumerationAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), true, true, false, 8),
+			9:  ByteField(AniG_ArcInterval, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, true, false, 9),
+			10: Uint16Field(AniG_OpticalSignalLevel, SignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, true, false, 10),
+			11: ByteField(AniG_LowerOpticalThreshold, SignedIntegerAttributeType, 0x0020, 255, mapset.NewSetWith(Read, Write), false, true, false, 11),
+			12: ByteField(AniG_UpperOpticalThreshold, SignedIntegerAttributeType, 0x0010, 255, mapset.NewSetWith(Read, Write), false, true, false, 12),
+			13: Uint16Field(AniG_OnuResponseTime, UnsignedIntegerAttributeType, 0x0008, 35000, mapset.NewSetWith(Read), false, true, false, 13),
+			14: Uint16Field(AniG_TransmitOpticalLevel, SignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, true, false, 14),
+			15: ByteField(AniG_LowerTransmitPowerThreshold, SignedIntegerAttributeType, 0x0002, 129, mapset.NewSetWith(Read, Write), false, true, false, 15),
+			16: ByteField(AniG_UpperTransmitPowerThreshold, SignedIntegerAttributeType, 0x0001, 129, mapset.NewSetWith(Read, Write), false, true, false, 16),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/attrNames_test.json b/generated/attrNames_test.json
index ef8076e..a25d51a 100644
--- a/generated/attrNames_test.json
+++ b/generated/attrNames_test.json
@@ -1326,9 +1326,9 @@
         "Index": 3
       },
       "4": {
-        "Name": "Lost C_= 0 Cells",
-        "CamelCase": "LostC=0Cells",
-        "Final": "VpPerformanceMonitoringHistoryData_LostC=0Cells",
+        "Name": "Lost C0 Cells",
+        "CamelCase": "LostC0Cells",
+        "Final": "VpPerformanceMonitoringHistoryData_LostC0Cells",
         "Index": 4
       },
       "5": {
@@ -1338,15 +1338,15 @@
         "Index": 5
       },
       "6": {
-        "Name": "Transmitted C_= 0 _ 1 Cells",
-        "CamelCase": "TransmittedC=01Cells",
-        "Final": "VpPerformanceMonitoringHistoryData_TransmittedC=01Cells",
+        "Name": "Transmitted C0 _ 1 Cells",
+        "CamelCase": "TransmittedC01Cells",
+        "Final": "VpPerformanceMonitoringHistoryData_TransmittedC01Cells",
         "Index": 6
       },
       "7": {
-        "Name": "Transmitted C_= 0 Cells",
-        "CamelCase": "TransmittedC=0Cells",
-        "Final": "VpPerformanceMonitoringHistoryData_TransmittedC=0Cells",
+        "Name": "Transmitted C0 Cells",
+        "CamelCase": "TransmittedC0Cells",
+        "Final": "VpPerformanceMonitoringHistoryData_TransmittedC0Cells",
         "Index": 7
       },
       "8": {
@@ -2772,15 +2772,15 @@
         "Index": 14
       },
       "15": {
-        "Name": "Sos Success Count, Near End",
-        "CamelCase": "SosSuccessCount,NearEnd",
-        "Final": "XdslXtuCPerformanceMonitoringHistoryData_SosSuccessCount,NearEnd",
+        "Name": "Sos Success Count Near End",
+        "CamelCase": "SosSuccessCountNearEnd",
+        "Final": "XdslXtuCPerformanceMonitoringHistoryData_SosSuccessCountNearEnd",
         "Index": 15
       },
       "16": {
-        "Name": "Sos Success Count, Far End",
-        "CamelCase": "SosSuccessCount,FarEnd",
-        "Final": "XdslXtuCPerformanceMonitoringHistoryData_SosSuccessCount,FarEnd",
+        "Name": "Sos Success Count Far End",
+        "CamelCase": "SosSuccessCountFarEnd",
+        "Final": "XdslXtuCPerformanceMonitoringHistoryData_SosSuccessCountFarEnd",
         "Index": 16
       }
     }
@@ -5294,9 +5294,9 @@
         "Index": 15
       },
       "16": {
-        "Name": "Upboshaped Aele_Mode, Upboelmt",
-        "CamelCase": "UpboshapedAeleMode,Upboelmt",
-        "Final": "Vdsl2LineConfigurationExtensions_UpboshapedAeleMode,Upboelmt",
+        "Name": "Upboshaped Aele_Mode Upboelmt",
+        "CamelCase": "UpboshapedAeleModeUpboelmt",
+        "Final": "Vdsl2LineConfigurationExtensions_UpboshapedAeleModeUpboelmt",
         "Index": 16
       }
     }
@@ -6998,9 +6998,9 @@
         "Index": 5
       },
       "6": {
-        "Name": "Misordered Packets, Usable",
-        "CamelCase": "MisorderedPackets,Usable",
-        "Final": "PseudowirePerformanceMonitoringHistoryData_MisorderedPackets,Usable",
+        "Name": "Misordered Packets Usable",
+        "CamelCase": "MisorderedPacketsUsable",
+        "Final": "PseudowirePerformanceMonitoringHistoryData_MisorderedPacketsUsable",
         "Index": 6
       },
       "7": {
@@ -8874,9 +8874,9 @@
         "Index": 11
       },
       "12": {
-        "Name": "R'S' Splitter Coupling Ratio",
-        "CamelCase": "R'S'SplitterCouplingRatio",
-        "Final": "ReDownstreamAmplifier_R'S'SplitterCouplingRatio",
+        "Name": "R S Splitter Coupling Ratio",
+        "CamelCase": "RSSplitterCouplingRatio",
+        "Final": "ReDownstreamAmplifier_RSSplitterCouplingRatio",
         "Index": 12
       }
     }
@@ -13210,34 +13210,40 @@
         "Index": 1
       },
       "2": {
-        "Name": "Serial Number Part 1, Serial Number Part 2",
-        "CamelCase": "SerialNumberPart1,SerialNumberPart2",
-        "Final": "OnuManufacturingData_SerialNumberPart1,SerialNumberPart2",
+        "Name": "Serial Number 1",
+        "CamelCase": "SerialNumber1",
+        "Final": "OnuManufacturingData_SerialNumber1",
         "Index": 2
       },
       "3": {
-        "Name": "Model Name",
-        "CamelCase": "ModelName",
-        "Final": "OnuManufacturingData_ModelName",
+        "Name": "Serial Number 2",
+        "CamelCase": "SerialNumber2",
+        "Final": "OnuManufacturingData_SerialNumber2",
         "Index": 3
       },
       "4": {
-        "Name": "Manufacturing Date",
-        "CamelCase": "ManufacturingDate",
-        "Final": "OnuManufacturingData_ManufacturingDate",
+        "Name": "Model Name",
+        "CamelCase": "ModelName",
+        "Final": "OnuManufacturingData_ModelName",
         "Index": 4
       },
       "5": {
-        "Name": "Hardware_Revision",
-        "CamelCase": "HardwareRevision",
-        "Final": "OnuManufacturingData_HardwareRevision",
+        "Name": "Manufacturing Date",
+        "CamelCase": "ManufacturingDate",
+        "Final": "OnuManufacturingData_ManufacturingDate",
         "Index": 5
       },
       "6": {
+        "Name": "Hardware_Revision",
+        "CamelCase": "HardwareRevision",
+        "Final": "OnuManufacturingData_HardwareRevision",
+        "Index": 6
+      },
+      "7": {
         "Name": "Firmware_Revision",
         "CamelCase": "FirmwareRevision",
         "Final": "OnuManufacturingData_FirmwareRevision",
-        "Index": 6
+        "Index": 7
       }
     }
   },
diff --git a/generated/attribute.go b/generated/attribute.go
index 4956e89..030ff0a 100644
--- a/generated/attribute.go
+++ b/generated/attribute.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -36,6 +36,9 @@
 	"github.com/google/gopacket"
 )
 
+// ManagedEntityID is a string constant that can be used for the 16-bit Entity ID
+const ManagedEntityID = "ManagedEntityId"
+
 // Attribute types
 type AttributeType uint8
 
diff --git a/generated/attributeme.go b/generated/attributeme.go
index 43d73da..1eb2deb 100644
--- a/generated/attributeme.go
+++ b/generated/attributeme.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -132,26 +132,38 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const AttributeMe_Name = "Name"
+const AttributeMe_Size = "Size"
+const AttributeMe_Access = "Access"
+const AttributeMe_Format = "Format"
+const AttributeMe_LowerLimit = "LowerLimit"
+const AttributeMe_UpperLimit = "UpperLimit"
+const AttributeMe_BitField = "BitField"
+const AttributeMe_CodePointsTable = "CodePointsTable"
+const AttributeMe_Support = "Support"
+
 func init() {
 	attributemeBME = &ManagedEntityDefinition{
 		Name:    "AttributeMe",
-		ClassID: 289,
+		ClassID: AttributeMeClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			GetNext,
 		),
 		AllowedAttributeMask: 0xff80,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: MultiByteField("Name", OctetsAttributeType, 0x8000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 1),
-			2: Uint16Field("Size", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
-			3: ByteField("Access", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4: ByteField("Format", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5: Uint32Field("LowerLimit", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6: Uint32Field("UpperLimit", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7: Uint32Field("BitField", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8: TableField("CodePointsTable", TableAttributeType, 0x0100, TableInfo{nil, 2}, mapset.NewSetWith(Read), false, false, false, 8),
-			9: ByteField("Support", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: MultiByteField(AttributeMe_Name, OctetsAttributeType, 0x8000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 1),
+			2: Uint16Field(AttributeMe_Size, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
+			3: ByteField(AttributeMe_Access, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4: ByteField(AttributeMe_Format, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5: Uint32Field(AttributeMe_LowerLimit, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6: Uint32Field(AttributeMe_UpperLimit, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7: Uint32Field(AttributeMe_BitField, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8: TableField(AttributeMe_CodePointsTable, TableAttributeType, 0x0100, TableInfo{nil, 2}, mapset.NewSetWith(Read), false, false, false, 8),
+			9: ByteField(AttributeMe_Support, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/authenticationsecuritymethod.go b/generated/authenticationsecuritymethod.go
index fd1eb1b..d4ef4e2 100644
--- a/generated/authenticationsecuritymethod.go
+++ b/generated/authenticationsecuritymethod.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -84,10 +84,18 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const AuthenticationSecurityMethod_ValidationScheme = "ValidationScheme"
+const AuthenticationSecurityMethod_Username1 = "Username1"
+const AuthenticationSecurityMethod_Password = "Password"
+const AuthenticationSecurityMethod_Realm = "Realm"
+const AuthenticationSecurityMethod_Username2 = "Username2"
+
 func init() {
 	authenticationsecuritymethodBME = &ManagedEntityDefinition{
 		Name:    "AuthenticationSecurityMethod",
-		ClassID: 148,
+		ClassID: AuthenticationSecurityMethodClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -96,12 +104,12 @@
 		),
 		AllowedAttributeMask: 0xf800,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("ValidationScheme", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
-			2: MultiByteField("Username1", OctetsAttributeType, 0x4000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 2),
-			3: MultiByteField("Password", OctetsAttributeType, 0x2000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 3),
-			4: MultiByteField("Realm", OctetsAttributeType, 0x1000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 4),
-			5: MultiByteField("Username2", OctetsAttributeType, 0x0800, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 5),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(AuthenticationSecurityMethod_ValidationScheme, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			2: MultiByteField(AuthenticationSecurityMethod_Username1, OctetsAttributeType, 0x4000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 2),
+			3: MultiByteField(AuthenticationSecurityMethod_Password, OctetsAttributeType, 0x2000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 3),
+			4: MultiByteField(AuthenticationSecurityMethod_Realm, OctetsAttributeType, 0x1000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 4),
+			5: MultiByteField(AuthenticationSecurityMethod_Username2, OctetsAttributeType, 0x0800, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 5),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/bbftr-069managementserver.go b/generated/bbftr-069managementserver.go
index 6aab0a9..5831e6f 100644
--- a/generated/bbftr-069managementserver.go
+++ b/generated/bbftr-069managementserver.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -72,20 +72,26 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const BbfTr069ManagementServer_AdministrativeState = "AdministrativeState"
+const BbfTr069ManagementServer_AcsNetworkAddress = "AcsNetworkAddress"
+const BbfTr069ManagementServer_AssociatedTag = "AssociatedTag"
+
 func init() {
 	bbftr069managementserverBME = &ManagedEntityDefinition{
 		Name:    "BbfTr069ManagementServer",
-		ClassID: 340,
+		ClassID: BbfTr069ManagementServerClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
 		),
 		AllowedAttributeMask: 0xe000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: ByteField("AdministrativeState", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
-			2: Uint16Field("AcsNetworkAddress", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
-			3: Uint16Field("AssociatedTag", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: ByteField(BbfTr069ManagementServer_AdministrativeState, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			2: Uint16Field(BbfTr069ManagementServer_AcsNetworkAddress, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
+			3: Uint16Field(BbfTr069ManagementServer_AssociatedTag, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/callcontrolperformancemonitoringhistorydata.go b/generated/callcontrolperformancemonitoringhistorydata.go
index d901177..ac6bbf8 100644
--- a/generated/callcontrolperformancemonitoringhistorydata.go
+++ b/generated/callcontrolperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -80,10 +80,20 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const CallControlPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const CallControlPerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const CallControlPerformanceMonitoringHistoryData_CallSetupFailures = "CallSetupFailures"
+const CallControlPerformanceMonitoringHistoryData_CallSetupTimer = "CallSetupTimer"
+const CallControlPerformanceMonitoringHistoryData_CallTerminateFailures = "CallTerminateFailures"
+const CallControlPerformanceMonitoringHistoryData_AnalogPortReleases = "AnalogPortReleases"
+const CallControlPerformanceMonitoringHistoryData_AnalogPortOffHookTimer = "AnalogPortOffHookTimer"
+
 func init() {
 	callcontrolperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "CallControlPerformanceMonitoringHistoryData",
-		ClassID: 140,
+		ClassID: CallControlPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -93,14 +103,14 @@
 		),
 		AllowedAttributeMask: 0xfe00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint32Field("CallSetupFailures", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4: Uint32Field("CallSetupTimer", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5: Uint32Field("CallTerminateFailures", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6: Uint32Field("AnalogPortReleases", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7: Uint32Field("AnalogPortOffHookTimer", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(CallControlPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: Uint16Field(CallControlPerformanceMonitoringHistoryData_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint32Field(CallControlPerformanceMonitoringHistoryData_CallSetupFailures, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4: Uint32Field(CallControlPerformanceMonitoringHistoryData_CallSetupTimer, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5: Uint32Field(CallControlPerformanceMonitoringHistoryData_CallTerminateFailures, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6: Uint32Field(CallControlPerformanceMonitoringHistoryData_AnalogPortReleases, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7: Uint32Field(CallControlPerformanceMonitoringHistoryData_AnalogPortOffHookTimer, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/cardholder.go b/generated/cardholder.go
index 5b996c6..0434f5e 100644
--- a/generated/cardholder.go
+++ b/generated/cardholder.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -164,26 +164,38 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const Cardholder_ActualPlugInUnitType = "ActualPlugInUnitType"
+const Cardholder_ExpectedPlugInUnitType = "ExpectedPlugInUnitType"
+const Cardholder_ExpectedPortCount = "ExpectedPortCount"
+const Cardholder_ExpectedEquipmentId = "ExpectedEquipmentId"
+const Cardholder_ActualEquipmentId = "ActualEquipmentId"
+const Cardholder_ProtectionProfilePointer = "ProtectionProfilePointer"
+const Cardholder_InvokeProtectionSwitch = "InvokeProtectionSwitch"
+const Cardholder_AlarmReportingControl = "AlarmReportingControl"
+const Cardholder_ArcInterval = "ArcInterval"
+
 func init() {
 	cardholderBME = &ManagedEntityDefinition{
 		Name:    "Cardholder",
-		ClassID: 5,
+		ClassID: CardholderClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
 		),
 		AllowedAttributeMask: 0xff80,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: ByteField("ActualPlugInUnitType", EnumerationAttributeType, 0x8000, 0, mapset.NewSetWith(Read), true, false, false, 1),
-			2: ByteField("ExpectedPlugInUnitType", EnumerationAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
-			3: ByteField("ExpectedPortCount", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, true, false, 3),
-			4: MultiByteField("ExpectedEquipmentId", StringAttributeType, 0x1000, 20, toOctets("ICAgICAgICAgICAgICAgICAgICA="), mapset.NewSetWith(Read, Write), false, true, false, 4),
-			5: MultiByteField("ActualEquipmentId", StringAttributeType, 0x0800, 20, toOctets("ICAgICAgICAgICAgICAgICAgICA="), mapset.NewSetWith(Read), true, true, false, 5),
-			6: ByteField("ProtectionProfilePointer", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, true, false, 6),
-			7: ByteField("InvokeProtectionSwitch", EnumerationAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, true, false, 7),
-			8: ByteField("AlarmReportingControl", EnumerationAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), true, true, false, 8),
-			9: ByteField("ArcInterval", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, true, false, 9),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: ByteField(Cardholder_ActualPlugInUnitType, EnumerationAttributeType, 0x8000, 0, mapset.NewSetWith(Read), true, false, false, 1),
+			2: ByteField(Cardholder_ExpectedPlugInUnitType, EnumerationAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
+			3: ByteField(Cardholder_ExpectedPortCount, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, true, false, 3),
+			4: MultiByteField(Cardholder_ExpectedEquipmentId, StringAttributeType, 0x1000, 20, toOctets("ICAgICAgICAgICAgICAgICAgICA="), mapset.NewSetWith(Read, Write), false, true, false, 4),
+			5: MultiByteField(Cardholder_ActualEquipmentId, StringAttributeType, 0x0800, 20, toOctets("ICAgICAgICAgICAgICAgICAgICA="), mapset.NewSetWith(Read), true, true, false, 5),
+			6: ByteField(Cardholder_ProtectionProfilePointer, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, true, false, 6),
+			7: ByteField(Cardholder_InvokeProtectionSwitch, EnumerationAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, true, false, 7),
+			8: ByteField(Cardholder_AlarmReportingControl, EnumerationAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), true, true, false, 8),
+			9: ByteField(Cardholder_ArcInterval, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, true, false, 9),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/cesserviceprofile.go b/generated/cesserviceprofile.go
index ad20760..0344d19 100644
--- a/generated/cesserviceprofile.go
+++ b/generated/cesserviceprofile.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -72,10 +72,15 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const CesServiceProfile_CesBufferedCdvTolerance = "CesBufferedCdvTolerance"
+const CesServiceProfile_ChannelAssociatedSignallingCas = "ChannelAssociatedSignallingCas"
+
 func init() {
 	cesserviceprofileBME = &ManagedEntityDefinition{
 		Name:    "CesServiceProfile",
-		ClassID: 21,
+		ClassID: CesServiceProfileClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -84,9 +89,9 @@
 		),
 		AllowedAttributeMask: 0xc000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: Uint16Field("CesBufferedCdvTolerance", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2: ByteField("ChannelAssociatedSignallingCas", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 2),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: Uint16Field(CesServiceProfile_CesBufferedCdvTolerance, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2: ByteField(CesServiceProfile_ChannelAssociatedSignallingCas, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 2),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/circuitpack.go b/generated/circuitpack.go
index 0fa6a4e..277219e 100644
--- a/generated/circuitpack.go
+++ b/generated/circuitpack.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -163,10 +163,27 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const CircuitPack_Type = "Type"
+const CircuitPack_NumberOfPorts = "NumberOfPorts"
+const CircuitPack_SerialNumber = "SerialNumber"
+const CircuitPack_Version = "Version"
+const CircuitPack_VendorId = "VendorId"
+const CircuitPack_AdministrativeState = "AdministrativeState"
+const CircuitPack_OperationalState = "OperationalState"
+const CircuitPack_BridgedOrIpInd = "BridgedOrIpInd"
+const CircuitPack_EquipmentId = "EquipmentId"
+const CircuitPack_CardConfiguration = "CardConfiguration"
+const CircuitPack_TotalTContBufferNumber = "TotalTContBufferNumber"
+const CircuitPack_TotalPriorityQueueNumber = "TotalPriorityQueueNumber"
+const CircuitPack_TotalTrafficSchedulerNumber = "TotalTrafficSchedulerNumber"
+const CircuitPack_PowerShedOverride = "PowerShedOverride"
+
 func init() {
 	circuitpackBME = &ManagedEntityDefinition{
 		Name:    "CircuitPack",
-		ClassID: 6,
+		ClassID: CircuitPackClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
@@ -175,21 +192,21 @@
 		),
 		AllowedAttributeMask: 0xfffc,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("Type", EnumerationAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 1),
-			2:  ByteField("NumberOfPorts", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, true, false, 2),
-			3:  MultiByteField("SerialNumber", OctetsAttributeType, 0x2000, 8, toOctets("ICAgICAgICA="), mapset.NewSetWith(Read), false, false, false, 3),
-			4:  MultiByteField("Version", OctetsAttributeType, 0x1000, 14, toOctets("ICAgICAgICAgICAgICA="), mapset.NewSetWith(Read), false, false, false, 4),
-			5:  MultiByteField("VendorId", StringAttributeType, 0x0800, 4, toOctets("ICAgIA=="), mapset.NewSetWith(Read), false, true, false, 5),
-			6:  ByteField("AdministrativeState", EnumerationAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
-			7:  ByteField("OperationalState", EnumerationAttributeType, 0x0200, 2, mapset.NewSetWith(Read), true, true, false, 7),
-			8:  ByteField("BridgedOrIpInd", EnumerationAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, false, false, 8),
-			9:  MultiByteField("EquipmentId", StringAttributeType, 0x0080, 20, toOctets("ICAgICAgICAgICAgICAgICAgICA="), mapset.NewSetWith(Read), false, true, false, 9),
-			10: ByteField("CardConfiguration", EnumerationAttributeType, 0x0040, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 10),
-			11: ByteField("TotalTContBufferNumber", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
-			12: ByteField("TotalPriorityQueueNumber", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
-			13: ByteField("TotalTrafficSchedulerNumber", UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
-			14: Uint32Field("PowerShedOverride", BitFieldAttributeType, 0x0004, 0, mapset.NewSetWith(Read, Write), false, true, false, 14),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(CircuitPack_Type, EnumerationAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 1),
+			2:  ByteField(CircuitPack_NumberOfPorts, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, true, false, 2),
+			3:  MultiByteField(CircuitPack_SerialNumber, OctetsAttributeType, 0x2000, 8, toOctets("ICAgICAgICA="), mapset.NewSetWith(Read), false, false, false, 3),
+			4:  MultiByteField(CircuitPack_Version, OctetsAttributeType, 0x1000, 14, toOctets("ICAgICAgICAgICAgICA="), mapset.NewSetWith(Read), false, false, false, 4),
+			5:  MultiByteField(CircuitPack_VendorId, StringAttributeType, 0x0800, 4, toOctets("ICAgIA=="), mapset.NewSetWith(Read), false, true, false, 5),
+			6:  ByteField(CircuitPack_AdministrativeState, EnumerationAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
+			7:  ByteField(CircuitPack_OperationalState, EnumerationAttributeType, 0x0200, 2, mapset.NewSetWith(Read), true, true, false, 7),
+			8:  ByteField(CircuitPack_BridgedOrIpInd, EnumerationAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, false, false, 8),
+			9:  MultiByteField(CircuitPack_EquipmentId, StringAttributeType, 0x0080, 20, toOctets("ICAgICAgICAgICAgICAgICAgICA="), mapset.NewSetWith(Read), false, true, false, 9),
+			10: ByteField(CircuitPack_CardConfiguration, EnumerationAttributeType, 0x0040, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 10),
+			11: ByteField(CircuitPack_TotalTContBufferNumber, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
+			12: ByteField(CircuitPack_TotalPriorityQueueNumber, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
+			13: ByteField(CircuitPack_TotalTrafficSchedulerNumber, UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
+			14: Uint32Field(CircuitPack_PowerShedOverride, BitFieldAttributeType, 0x0004, 0, mapset.NewSetWith(Read, Write), false, true, false, 14),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/classaccess.go b/generated/classaccess.go
index e38986f..4a2e255 100644
--- a/generated/classaccess.go
+++ b/generated/classaccess.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
diff --git a/generated/classidmap.go b/generated/classidmap.go
index eef38d7..64c1ad6 100644
--- a/generated/classidmap.go
+++ b/generated/classidmap.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
diff --git a/generated/classidmap_test.go b/generated/classidmap_test.go
index 326e4f8..20ca0e9 100644
--- a/generated/classidmap_test.go
+++ b/generated/classidmap_test.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -131,17 +131,11 @@
 					// ManagedEntityId constant common in all files and defined elsewhere
 					var expectedLine string
 					if attrEntry.Index != 0 {
-						expectedLine = fmt.Sprintf("(\"%v\", ", attrEntry.CamelCase)
-						// NOTE: Following will be enabled when the constant attribute names are
-						//       added to the golang generated code and the previous removed
-						//format := "const %v = %v"
-						//expectedLine = fmt.Sprintf(format, attrEntry.Final, attrEntry.CamelCase)
+						format := "const %v = \"%v\""
+						expectedLine = fmt.Sprintf(format, attrEntry.Final, attrEntry.CamelCase)
 					} else {
-						expectedLine = "(\"ManagedEntityId\", "
-						// NOTE: Following will be enabled when the constant attribute names are
-						//       added to the golang generated code
-						//format := "const ManagedEntityId = %v"
-						//expectedLine = fmt.Sprintf(format, attrEntry.CamelCase)
+						// Match Entity ID by looking at use in structure initialization
+						expectedLine = "Uint16Field(ManagedEntityID, PointerAttributeType"
 					}
 					found := strings.Contains(goFileText, expectedLine)
 					assert.True(t, found)
diff --git a/generated/classsupport.go b/generated/classsupport.go
index 90b85d9..6162119 100644
--- a/generated/classsupport.go
+++ b/generated/classsupport.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
diff --git a/generated/decodeerror.go b/generated/decodeerror.go
index 4358c0c..89ccf6f 100644
--- a/generated/decodeerror.go
+++ b/generated/decodeerror.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
diff --git a/generated/dot1agcfmstack.go b/generated/dot1agcfmstack.go
index 08dda58..780fed8 100644
--- a/generated/dot1agcfmstack.go
+++ b/generated/dot1agcfmstack.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -128,20 +128,26 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const Dot1AgCfmStack_Layer2Type = "Layer2Type"
+const Dot1AgCfmStack_MpStatusTable = "MpStatusTable"
+const Dot1AgCfmStack_ConfigurationErrorListTable = "ConfigurationErrorListTable"
+
 func init() {
 	dot1agcfmstackBME = &ManagedEntityDefinition{
 		Name:    "Dot1AgCfmStack",
-		ClassID: 305,
+		ClassID: Dot1AgCfmStackClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			GetNext,
 		),
 		AllowedAttributeMask: 0xe000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: ByteField("Layer2Type", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: TableField("MpStatusTable", TableAttributeType, 0x4000, TableInfo{nil, 18}, mapset.NewSetWith(Read), false, false, false, 2),
-			3: TableField("ConfigurationErrorListTable", TableAttributeType, 0x2000, TableInfo{nil, 5}, mapset.NewSetWith(Read), true, false, false, 3),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: ByteField(Dot1AgCfmStack_Layer2Type, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: TableField(Dot1AgCfmStack_MpStatusTable, TableAttributeType, 0x4000, TableInfo{nil, 18}, mapset.NewSetWith(Read), false, false, false, 2),
+			3: TableField(Dot1AgCfmStack_ConfigurationErrorListTable, TableAttributeType, 0x2000, TableInfo{nil, 5}, mapset.NewSetWith(Read), true, false, false, 3),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/dot1agchassis-managementinfo.go b/generated/dot1agchassis-managementinfo.go
index 75d0106..60539c2 100644
--- a/generated/dot1agchassis-managementinfo.go
+++ b/generated/dot1agchassis-managementinfo.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -113,27 +113,40 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const Dot1AgChassisManagementInfo_ChassisIdLength = "ChassisIdLength"
+const Dot1AgChassisManagementInfo_ChassisIdSubtype = "ChassisIdSubtype"
+const Dot1AgChassisManagementInfo_ChassisIdPart1 = "ChassisIdPart1"
+const Dot1AgChassisManagementInfo_ChassisIdPart2 = "ChassisIdPart2"
+const Dot1AgChassisManagementInfo_ManagementAddressDomainLength = "ManagementAddressDomainLength"
+const Dot1AgChassisManagementInfo_ManagementAddressDomain1 = "ManagementAddressDomain1"
+const Dot1AgChassisManagementInfo_ManagementAddressDomain2 = "ManagementAddressDomain2"
+const Dot1AgChassisManagementInfo_ManagementAddressLength = "ManagementAddressLength"
+const Dot1AgChassisManagementInfo_ManagementAddress1 = "ManagementAddress1"
+const Dot1AgChassisManagementInfo_ManagementAddress2 = "ManagementAddress2"
+
 func init() {
 	dot1agchassismanagementinfoBME = &ManagedEntityDefinition{
 		Name:    "Dot1AgChassisManagementInfo",
-		ClassID: 306,
+		ClassID: Dot1AgChassisManagementInfoClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
 		),
 		AllowedAttributeMask: 0xffc0,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  ByteField("ChassisIdLength", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
-			2:  ByteField("ChassisIdSubtype", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
-			3:  MultiByteField("ChassisIdPart1", OctetsAttributeType, 0x2000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 3),
-			4:  MultiByteField("ChassisIdPart2", OctetsAttributeType, 0x1000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 4),
-			5:  ByteField("ManagementAddressDomainLength", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
-			6:  MultiByteField("ManagementAddressDomain1", OctetsAttributeType, 0x0400, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 6),
-			7:  MultiByteField("ManagementAddressDomain2", OctetsAttributeType, 0x0200, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 7),
-			8:  ByteField("ManagementAddressLength", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, false, false, 8),
-			9:  MultiByteField("ManagementAddress1", OctetsAttributeType, 0x0080, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 9),
-			10: MultiByteField("ManagementAddress2", OctetsAttributeType, 0x0040, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 10),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  ByteField(Dot1AgChassisManagementInfo_ChassisIdLength, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			2:  ByteField(Dot1AgChassisManagementInfo_ChassisIdSubtype, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
+			3:  MultiByteField(Dot1AgChassisManagementInfo_ChassisIdPart1, OctetsAttributeType, 0x2000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 3),
+			4:  MultiByteField(Dot1AgChassisManagementInfo_ChassisIdPart2, OctetsAttributeType, 0x1000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 4),
+			5:  ByteField(Dot1AgChassisManagementInfo_ManagementAddressDomainLength, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
+			6:  MultiByteField(Dot1AgChassisManagementInfo_ManagementAddressDomain1, OctetsAttributeType, 0x0400, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 6),
+			7:  MultiByteField(Dot1AgChassisManagementInfo_ManagementAddressDomain2, OctetsAttributeType, 0x0200, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 7),
+			8:  ByteField(Dot1AgChassisManagementInfo_ManagementAddressLength, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, false, false, 8),
+			9:  MultiByteField(Dot1AgChassisManagementInfo_ManagementAddress1, OctetsAttributeType, 0x0080, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 9),
+			10: MultiByteField(Dot1AgChassisManagementInfo_ManagementAddress2, OctetsAttributeType, 0x0040, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 10),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/dot1agdefaultmdlevel.go b/generated/dot1agdefaultmdlevel.go
index 0d1e13e..457aa8d 100644
--- a/generated/dot1agdefaultmdlevel.go
+++ b/generated/dot1agdefaultmdlevel.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -152,10 +152,18 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const Dot1AgDefaultMdLevel_Layer2Type = "Layer2Type"
+const Dot1AgDefaultMdLevel_CatchallLevel = "CatchallLevel"
+const Dot1AgDefaultMdLevel_CatchallMhfCreation = "CatchallMhfCreation"
+const Dot1AgDefaultMdLevel_CatchallSenderIdPermission = "CatchallSenderIdPermission"
+const Dot1AgDefaultMdLevel_DefaultMdLevelTable = "DefaultMdLevelTable"
+
 func init() {
 	dot1agdefaultmdlevelBME = &ManagedEntityDefinition{
 		Name:    "Dot1AgDefaultMdLevel",
-		ClassID: 301,
+		ClassID: Dot1AgDefaultMdLevelClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			GetNext,
@@ -164,12 +172,12 @@
 		),
 		AllowedAttributeMask: 0xf800,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: ByteField("Layer2Type", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: ByteField("CatchallLevel", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
-			3: ByteField("CatchallMhfCreation", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
-			4: ByteField("CatchallSenderIdPermission", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, false, false, 4),
-			5: TableField("DefaultMdLevelTable", TableAttributeType, 0x0800, TableInfo{nil, 29}, mapset.NewSetWith(Read, Write), false, false, false, 5),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: ByteField(Dot1AgDefaultMdLevel_Layer2Type, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: ByteField(Dot1AgDefaultMdLevel_CatchallLevel, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
+			3: ByteField(Dot1AgDefaultMdLevel_CatchallMhfCreation, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
+			4: ByteField(Dot1AgDefaultMdLevel_CatchallSenderIdPermission, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, false, false, 4),
+			5: TableField(Dot1AgDefaultMdLevel_DefaultMdLevelTable, TableAttributeType, 0x0800, TableInfo{nil, 29}, mapset.NewSetWith(Read, Write), false, false, false, 5),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/dot1agmaintenanceassociation.go b/generated/dot1agmaintenanceassociation.go
index b898665..9122a6c 100644
--- a/generated/dot1agmaintenanceassociation.go
+++ b/generated/dot1agmaintenanceassociation.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -135,10 +135,20 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const Dot1AgMaintenanceAssociation_MdPointer = "MdPointer"
+const Dot1AgMaintenanceAssociation_ShortMaNameFormat = "ShortMaNameFormat"
+const Dot1AgMaintenanceAssociation_ShortMaName1 = "ShortMaName1"
+const Dot1AgMaintenanceAssociation_ShortMaName2 = "ShortMaName2"
+const Dot1AgMaintenanceAssociation_ContinuityCheckMessageCcmInterval = "ContinuityCheckMessageCcmInterval"
+const Dot1AgMaintenanceAssociation_AssociatedVlans = "AssociatedVlans"
+const Dot1AgMaintenanceAssociation_MhfCreation = "MhfCreation"
+
 func init() {
 	dot1agmaintenanceassociationBME = &ManagedEntityDefinition{
 		Name:    "Dot1AgMaintenanceAssociation",
-		ClassID: 300,
+		ClassID: Dot1AgMaintenanceAssociationClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -147,14 +157,14 @@
 		),
 		AllowedAttributeMask: 0xfe00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: Uint16Field("MdPointer", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2: ByteField("ShortMaNameFormat", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: MultiByteField("ShortMaName1", OctetsAttributeType, 0x2000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 3),
-			4: MultiByteField("ShortMaName2", OctetsAttributeType, 0x1000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 4),
-			5: ByteField("ContinuityCheckMessageCcmInterval", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
-			6: Uint16Field("AssociatedVlans", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
-			7: ByteField("MhfCreation", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: Uint16Field(Dot1AgMaintenanceAssociation_MdPointer, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2: ByteField(Dot1AgMaintenanceAssociation_ShortMaNameFormat, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: MultiByteField(Dot1AgMaintenanceAssociation_ShortMaName1, OctetsAttributeType, 0x2000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 3),
+			4: MultiByteField(Dot1AgMaintenanceAssociation_ShortMaName2, OctetsAttributeType, 0x1000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 4),
+			5: ByteField(Dot1AgMaintenanceAssociation_ContinuityCheckMessageCcmInterval, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
+			6: Uint16Field(Dot1AgMaintenanceAssociation_AssociatedVlans, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
+			7: ByteField(Dot1AgMaintenanceAssociation_MhfCreation, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/dot1agmaintenancedomain.go b/generated/dot1agmaintenancedomain.go
index 5f191a5..f64688d 100644
--- a/generated/dot1agmaintenancedomain.go
+++ b/generated/dot1agmaintenancedomain.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -118,10 +118,19 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const Dot1AgMaintenanceDomain_MdLevel = "MdLevel"
+const Dot1AgMaintenanceDomain_MdNameFormat = "MdNameFormat"
+const Dot1AgMaintenanceDomain_MdName1 = "MdName1"
+const Dot1AgMaintenanceDomain_MdName2 = "MdName2"
+const Dot1AgMaintenanceDomain_MaintenanceDomainIntermediatePointHalfFunctionMhfCreation = "MaintenanceDomainIntermediatePointHalfFunctionMhfCreation"
+const Dot1AgMaintenanceDomain_SenderIdPermission = "SenderIdPermission"
+
 func init() {
 	dot1agmaintenancedomainBME = &ManagedEntityDefinition{
 		Name:    "Dot1AgMaintenanceDomain",
-		ClassID: 299,
+		ClassID: Dot1AgMaintenanceDomainClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -130,13 +139,13 @@
 		),
 		AllowedAttributeMask: 0xfc00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("MdLevel", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2: ByteField("MdNameFormat", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: MultiByteField("MdName1", OctetsAttributeType, 0x2000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 3),
-			4: MultiByteField("MdName2", OctetsAttributeType, 0x1000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 4),
-			5: ByteField("MaintenanceDomainIntermediatePointHalfFunctionMhfCreation", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
-			6: ByteField("SenderIdPermission", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 6),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(Dot1AgMaintenanceDomain_MdLevel, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2: ByteField(Dot1AgMaintenanceDomain_MdNameFormat, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: MultiByteField(Dot1AgMaintenanceDomain_MdName1, OctetsAttributeType, 0x2000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 3),
+			4: MultiByteField(Dot1AgMaintenanceDomain_MdName2, OctetsAttributeType, 0x1000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 4),
+			5: ByteField(Dot1AgMaintenanceDomain_MaintenanceDomainIntermediatePointHalfFunctionMhfCreation, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
+			6: ByteField(Dot1AgMaintenanceDomain_SenderIdPermission, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 6),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/dot1agmep.go b/generated/dot1agmep.go
index 44cce8c..60eb007 100644
--- a/generated/dot1agmep.go
+++ b/generated/dot1agmep.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -141,10 +141,27 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const Dot1AgMep_Layer2EntityPointer = "Layer2EntityPointer"
+const Dot1AgMep_Layer2Type = "Layer2Type"
+const Dot1AgMep_MaPointer = "MaPointer"
+const Dot1AgMep_MepId = "MepId"
+const Dot1AgMep_MepControl = "MepControl"
+const Dot1AgMep_PrimaryVlan = "PrimaryVlan"
+const Dot1AgMep_AdministrativeState = "AdministrativeState"
+const Dot1AgMep_CcmAndLtmPriority = "CcmAndLtmPriority"
+const Dot1AgMep_EgressIdentifier = "EgressIdentifier"
+const Dot1AgMep_PeerMepIds = "PeerMepIds"
+const Dot1AgMep_EthAisControl = "EthAisControl"
+const Dot1AgMep_FaultAlarmThreshold = "FaultAlarmThreshold"
+const Dot1AgMep_AlarmDeclarationSoakTime = "AlarmDeclarationSoakTime"
+const Dot1AgMep_AlarmClearSoakTime = "AlarmClearSoakTime"
+
 func init() {
 	dot1agmepBME = &ManagedEntityDefinition{
 		Name:    "Dot1AgMep",
-		ClassID: 302,
+		ClassID: Dot1AgMepClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -153,21 +170,21 @@
 		),
 		AllowedAttributeMask: 0xfffc,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  Uint16Field("Layer2EntityPointer", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2:  ByteField("Layer2Type", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint16Field("MaPointer", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
-			4:  Uint16Field("MepId", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
-			5:  ByteField("MepControl", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
-			6:  Uint16Field("PrimaryVlan", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 6),
-			7:  ByteField("AdministrativeState", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
-			8:  ByteField("CcmAndLtmPriority", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 8),
-			9:  Uint64Field("EgressIdentifier", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 9),
-			10: MultiByteField("PeerMepIds", OctetsAttributeType, 0x0040, 24, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), mapset.NewSetWith(Read, Write), false, false, false, 10),
-			11: ByteField("EthAisControl", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 11),
-			12: ByteField("FaultAlarmThreshold", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 12),
-			13: Uint16Field("AlarmDeclarationSoakTime", UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, Write), false, false, false, 13),
-			14: Uint16Field("AlarmClearSoakTime", UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read, Write), false, false, false, 14),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  Uint16Field(Dot1AgMep_Layer2EntityPointer, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2:  ByteField(Dot1AgMep_Layer2Type, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint16Field(Dot1AgMep_MaPointer, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
+			4:  Uint16Field(Dot1AgMep_MepId, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
+			5:  ByteField(Dot1AgMep_MepControl, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
+			6:  Uint16Field(Dot1AgMep_PrimaryVlan, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 6),
+			7:  ByteField(Dot1AgMep_AdministrativeState, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
+			8:  ByteField(Dot1AgMep_CcmAndLtmPriority, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 8),
+			9:  Uint64Field(Dot1AgMep_EgressIdentifier, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 9),
+			10: MultiByteField(Dot1AgMep_PeerMepIds, OctetsAttributeType, 0x0040, 24, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), mapset.NewSetWith(Read, Write), false, false, false, 10),
+			11: ByteField(Dot1AgMep_EthAisControl, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 11),
+			12: ByteField(Dot1AgMep_FaultAlarmThreshold, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 12),
+			13: Uint16Field(Dot1AgMep_AlarmDeclarationSoakTime, UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, Write), false, false, false, 13),
+			14: Uint16Field(Dot1AgMep_AlarmClearSoakTime, UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read, Write), false, false, false, 14),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/dot1ratelimiter.go b/generated/dot1ratelimiter.go
index 71c88c5..4bae87c 100644
--- a/generated/dot1ratelimiter.go
+++ b/generated/dot1ratelimiter.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -78,10 +78,18 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const Dot1RateLimiter_ParentMePointer = "ParentMePointer"
+const Dot1RateLimiter_TpType = "TpType"
+const Dot1RateLimiter_UpstreamUnicastFloodRatePointer = "UpstreamUnicastFloodRatePointer"
+const Dot1RateLimiter_UpstreamBroadcastRatePointer = "UpstreamBroadcastRatePointer"
+const Dot1RateLimiter_UpstreamMulticastPayloadRatePointer = "UpstreamMulticastPayloadRatePointer"
+
 func init() {
 	dot1ratelimiterBME = &ManagedEntityDefinition{
 		Name:    "Dot1RateLimiter",
-		ClassID: 298,
+		ClassID: Dot1RateLimiterClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -90,12 +98,12 @@
 		),
 		AllowedAttributeMask: 0xf800,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: Uint16Field("ParentMePointer", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2: ByteField("TpType", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint16Field("UpstreamUnicastFloodRatePointer", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 3),
-			4: Uint16Field("UpstreamBroadcastRatePointer", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 4),
-			5: Uint16Field("UpstreamMulticastPayloadRatePointer", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 5),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: Uint16Field(Dot1RateLimiter_ParentMePointer, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2: ByteField(Dot1RateLimiter_TpType, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint16Field(Dot1RateLimiter_UpstreamUnicastFloodRatePointer, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 3),
+			4: Uint16Field(Dot1RateLimiter_UpstreamBroadcastRatePointer, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 4),
+			5: Uint16Field(Dot1RateLimiter_UpstreamMulticastPayloadRatePointer, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 5),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/dot1xconfigurationprofile.go b/generated/dot1xconfigurationprofile.go
index ad53d44..bb41523 100644
--- a/generated/dot1xconfigurationprofile.go
+++ b/generated/dot1xconfigurationprofile.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -110,27 +110,40 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const Dot1XConfigurationProfile_CircuitIdPrefix = "CircuitIdPrefix"
+const Dot1XConfigurationProfile_FallbackPolicy = "FallbackPolicy"
+const Dot1XConfigurationProfile_AuthServer1 = "AuthServer1"
+const Dot1XConfigurationProfile_SharedSecretAuth1 = "SharedSecretAuth1"
+const Dot1XConfigurationProfile_AuthServer2 = "AuthServer2"
+const Dot1XConfigurationProfile_SharedSecretAuth2 = "SharedSecretAuth2"
+const Dot1XConfigurationProfile_AuthServer3 = "AuthServer3"
+const Dot1XConfigurationProfile_SharedSecretAuth3 = "SharedSecretAuth3"
+const Dot1XConfigurationProfile_OltProxyAddress = "OltProxyAddress"
+const Dot1XConfigurationProfile_CallingStationIdFormat = "CallingStationIdFormat"
+
 func init() {
 	dot1xconfigurationprofileBME = &ManagedEntityDefinition{
 		Name:    "Dot1XConfigurationProfile",
-		ClassID: 291,
+		ClassID: Dot1XConfigurationProfileClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
 		),
 		AllowedAttributeMask: 0xffc0,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  Uint16Field("CircuitIdPrefix", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
-			2:  ByteField("FallbackPolicy", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
-			3:  Uint16Field("AuthServer1", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
-			4:  MultiByteField("SharedSecretAuth1", OctetsAttributeType, 0x1000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 4),
-			5:  Uint16Field("AuthServer2", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, true, false, 5),
-			6:  MultiByteField("SharedSecretAuth2", OctetsAttributeType, 0x0400, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 6),
-			7:  Uint16Field("AuthServer3", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, true, false, 7),
-			8:  MultiByteField("SharedSecretAuth3", OctetsAttributeType, 0x0100, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 8),
-			9:  Uint32Field("OltProxyAddress", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, true, false, 9),
-			10: Uint16Field("CallingStationIdFormat", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, true, false, 10),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  Uint16Field(Dot1XConfigurationProfile_CircuitIdPrefix, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			2:  ByteField(Dot1XConfigurationProfile_FallbackPolicy, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
+			3:  Uint16Field(Dot1XConfigurationProfile_AuthServer1, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
+			4:  MultiByteField(Dot1XConfigurationProfile_SharedSecretAuth1, OctetsAttributeType, 0x1000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 4),
+			5:  Uint16Field(Dot1XConfigurationProfile_AuthServer2, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, true, false, 5),
+			6:  MultiByteField(Dot1XConfigurationProfile_SharedSecretAuth2, OctetsAttributeType, 0x0400, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 6),
+			7:  Uint16Field(Dot1XConfigurationProfile_AuthServer3, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, true, false, 7),
+			8:  MultiByteField(Dot1XConfigurationProfile_SharedSecretAuth3, OctetsAttributeType, 0x0100, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 8),
+			9:  Uint32Field(Dot1XConfigurationProfile_OltProxyAddress, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, true, false, 9),
+			10: Uint16Field(Dot1XConfigurationProfile_CallingStationIdFormat, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, true, false, 10),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/dot1xperformancemonitoringhistorydata.go b/generated/dot1xperformancemonitoringhistorydata.go
index e9d2177..8530a26 100644
--- a/generated/dot1xperformancemonitoringhistorydata.go
+++ b/generated/dot1xperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -102,10 +102,27 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const Dot1XPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const Dot1XPerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const Dot1XPerformanceMonitoringHistoryData_EapolFramesReceived = "EapolFramesReceived"
+const Dot1XPerformanceMonitoringHistoryData_EapolFramesTransmitted = "EapolFramesTransmitted"
+const Dot1XPerformanceMonitoringHistoryData_EapolStartFramesReceived = "EapolStartFramesReceived"
+const Dot1XPerformanceMonitoringHistoryData_EapolLogoffFramesReceived = "EapolLogoffFramesReceived"
+const Dot1XPerformanceMonitoringHistoryData_InvalidEapolFramesReceived = "InvalidEapolFramesReceived"
+const Dot1XPerformanceMonitoringHistoryData_EapRespIdFramesReceived = "EapRespIdFramesReceived"
+const Dot1XPerformanceMonitoringHistoryData_EapResponseFramesReceived = "EapResponseFramesReceived"
+const Dot1XPerformanceMonitoringHistoryData_EapInitialRequestFramesTransmitted = "EapInitialRequestFramesTransmitted"
+const Dot1XPerformanceMonitoringHistoryData_EapRequestFramesTransmitted = "EapRequestFramesTransmitted"
+const Dot1XPerformanceMonitoringHistoryData_EapLengthErrorFramesReceived = "EapLengthErrorFramesReceived"
+const Dot1XPerformanceMonitoringHistoryData_EapSuccessFramesGeneratedAutonomously = "EapSuccessFramesGeneratedAutonomously"
+const Dot1XPerformanceMonitoringHistoryData_EapFailureFramesGeneratedAutonomously = "EapFailureFramesGeneratedAutonomously"
+
 func init() {
 	dot1xperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "Dot1XPerformanceMonitoringHistoryData",
-		ClassID: 292,
+		ClassID: Dot1XPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -115,21 +132,21 @@
 		),
 		AllowedAttributeMask: 0xfffc,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint32Field("EapolFramesReceived", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4:  Uint32Field("EapolFramesTransmitted", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  Uint32Field("EapolStartFramesReceived", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6:  Uint32Field("EapolLogoffFramesReceived", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  Uint32Field("InvalidEapolFramesReceived", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8:  Uint32Field("EapRespIdFramesReceived", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
-			9:  Uint32Field("EapResponseFramesReceived", CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
-			10: Uint32Field("EapInitialRequestFramesTransmitted", CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
-			11: Uint32Field("EapRequestFramesTransmitted", CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
-			12: Uint32Field("EapLengthErrorFramesReceived", CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
-			13: Uint32Field("EapSuccessFramesGeneratedAutonomously", CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
-			14: Uint32Field("EapFailureFramesGeneratedAutonomously", CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(Dot1XPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  Uint16Field(Dot1XPerformanceMonitoringHistoryData_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint32Field(Dot1XPerformanceMonitoringHistoryData_EapolFramesReceived, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4:  Uint32Field(Dot1XPerformanceMonitoringHistoryData_EapolFramesTransmitted, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  Uint32Field(Dot1XPerformanceMonitoringHistoryData_EapolStartFramesReceived, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6:  Uint32Field(Dot1XPerformanceMonitoringHistoryData_EapolLogoffFramesReceived, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  Uint32Field(Dot1XPerformanceMonitoringHistoryData_InvalidEapolFramesReceived, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8:  Uint32Field(Dot1XPerformanceMonitoringHistoryData_EapRespIdFramesReceived, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			9:  Uint32Field(Dot1XPerformanceMonitoringHistoryData_EapResponseFramesReceived, CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
+			10: Uint32Field(Dot1XPerformanceMonitoringHistoryData_EapInitialRequestFramesTransmitted, CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
+			11: Uint32Field(Dot1XPerformanceMonitoringHistoryData_EapRequestFramesTransmitted, CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
+			12: Uint32Field(Dot1XPerformanceMonitoringHistoryData_EapLengthErrorFramesReceived, CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
+			13: Uint32Field(Dot1XPerformanceMonitoringHistoryData_EapSuccessFramesGeneratedAutonomously, CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
+			14: Uint32Field(Dot1XPerformanceMonitoringHistoryData_EapFailureFramesGeneratedAutonomously, CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/dot1xportextensionpackage.go b/generated/dot1xportextensionpackage.go
index 8970c4a..47e147d 100644
--- a/generated/dot1xportextensionpackage.go
+++ b/generated/dot1xportextensionpackage.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -167,29 +167,44 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const Dot1XPortExtensionPackage_Dot1XEnable = "Dot1XEnable"
+const Dot1XPortExtensionPackage_ActionRegister = "ActionRegister"
+const Dot1XPortExtensionPackage_AuthenticatorPaeState = "AuthenticatorPaeState"
+const Dot1XPortExtensionPackage_BackendAuthenticationState = "BackendAuthenticationState"
+const Dot1XPortExtensionPackage_AdminControlledDirections = "AdminControlledDirections"
+const Dot1XPortExtensionPackage_OperationalControlledDirections = "OperationalControlledDirections"
+const Dot1XPortExtensionPackage_AuthenticatorControlledPortStatus = "AuthenticatorControlledPortStatus"
+const Dot1XPortExtensionPackage_QuietPeriod = "QuietPeriod"
+const Dot1XPortExtensionPackage_ServerTimeoutPeriod = "ServerTimeoutPeriod"
+const Dot1XPortExtensionPackage_ReAuthenticationPeriod = "ReAuthenticationPeriod"
+const Dot1XPortExtensionPackage_ReAuthenticationEnabled = "ReAuthenticationEnabled"
+const Dot1XPortExtensionPackage_KeyTransmissionEnabled = "KeyTransmissionEnabled"
+
 func init() {
 	dot1xportextensionpackageBME = &ManagedEntityDefinition{
 		Name:    "Dot1XPortExtensionPackage",
-		ClassID: 290,
+		ClassID: Dot1XPortExtensionPackageClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
 		),
 		AllowedAttributeMask: 0xfff0,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  ByteField("Dot1XEnable", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
-			2:  ByteField("ActionRegister", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Write), false, false, false, 2),
-			3:  ByteField("AuthenticatorPaeState", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, true, false, 3),
-			4:  ByteField("BackendAuthenticationState", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, true, false, 4),
-			5:  ByteField("AdminControlledDirections", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, true, false, 5),
-			6:  ByteField("OperationalControlledDirections", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, true, false, 6),
-			7:  ByteField("AuthenticatorControlledPortStatus", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, true, false, 7),
-			8:  Uint16Field("QuietPeriod", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, true, false, 8),
-			9:  Uint16Field("ServerTimeoutPeriod", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, true, false, 9),
-			10: Uint16Field("ReAuthenticationPeriod", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, true, false, 10),
-			11: ByteField("ReAuthenticationEnabled", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, true, false, 11),
-			12: ByteField("KeyTransmissionEnabled", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, true, false, 12),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  ByteField(Dot1XPortExtensionPackage_Dot1XEnable, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			2:  ByteField(Dot1XPortExtensionPackage_ActionRegister, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Write), false, false, false, 2),
+			3:  ByteField(Dot1XPortExtensionPackage_AuthenticatorPaeState, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, true, false, 3),
+			4:  ByteField(Dot1XPortExtensionPackage_BackendAuthenticationState, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, true, false, 4),
+			5:  ByteField(Dot1XPortExtensionPackage_AdminControlledDirections, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, true, false, 5),
+			6:  ByteField(Dot1XPortExtensionPackage_OperationalControlledDirections, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, true, false, 6),
+			7:  ByteField(Dot1XPortExtensionPackage_AuthenticatorControlledPortStatus, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, true, false, 7),
+			8:  Uint16Field(Dot1XPortExtensionPackage_QuietPeriod, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, true, false, 8),
+			9:  Uint16Field(Dot1XPortExtensionPackage_ServerTimeoutPeriod, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, true, false, 9),
+			10: Uint16Field(Dot1XPortExtensionPackage_ReAuthenticationPeriod, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, true, false, 10),
+			11: ByteField(Dot1XPortExtensionPackage_ReAuthenticationEnabled, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, true, false, 11),
+			12: ByteField(Dot1XPortExtensionPackage_KeyTransmissionEnabled, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, true, false, 12),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/efmbondinggroup.go b/generated/efmbondinggroup.go
index b569180..93f0c1b 100644
--- a/generated/efmbondinggroup.go
+++ b/generated/efmbondinggroup.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -86,10 +86,17 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const EfmBondingGroup_GroupId = "GroupId"
+const EfmBondingGroup_MinimumUpstreamGroupRate = "MinimumUpstreamGroupRate"
+const EfmBondingGroup_MinimumDownstreamGroupRate = "MinimumDownstreamGroupRate"
+const EfmBondingGroup_GroupAlarmEnable = "GroupAlarmEnable"
+
 func init() {
 	efmbondinggroupBME = &ManagedEntityDefinition{
 		Name:    "EfmBondingGroup",
-		ClassID: 418,
+		ClassID: EfmBondingGroupClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -98,11 +105,11 @@
 		),
 		AllowedAttributeMask: 0xf000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: MultiByteField("GroupId", OctetsAttributeType, 0x8000, 6, toOctets("AAAAAAAA"), mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2: Uint32Field("MinimumUpstreamGroupRate", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
-			3: Uint32Field("MinimumDownstreamGroupRate", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
-			4: ByteField("GroupAlarmEnable", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: MultiByteField(EfmBondingGroup_GroupId, OctetsAttributeType, 0x8000, 6, toOctets("AAAAAAAA"), mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2: Uint32Field(EfmBondingGroup_MinimumUpstreamGroupRate, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
+			3: Uint32Field(EfmBondingGroup_MinimumDownstreamGroupRate, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
+			4: ByteField(EfmBondingGroup_GroupAlarmEnable, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/efmbondinggroupperformancemonitoringhistorydata.go b/generated/efmbondinggroupperformancemonitoringhistorydata.go
index 55a24c3..47263da 100644
--- a/generated/efmbondinggroupperformancemonitoringhistorydata.go
+++ b/generated/efmbondinggroupperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -89,10 +89,25 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const EfmBondingGroupPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const EfmBondingGroupPerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const EfmBondingGroupPerformanceMonitoringHistoryData_RxBadFragments = "RxBadFragments"
+const EfmBondingGroupPerformanceMonitoringHistoryData_RxLostFragments = "RxLostFragments"
+const EfmBondingGroupPerformanceMonitoringHistoryData_RxLostStarts = "RxLostStarts"
+const EfmBondingGroupPerformanceMonitoringHistoryData_RxLostEnds = "RxLostEnds"
+const EfmBondingGroupPerformanceMonitoringHistoryData_RxFrames = "RxFrames"
+const EfmBondingGroupPerformanceMonitoringHistoryData_TxFrames = "TxFrames"
+const EfmBondingGroupPerformanceMonitoringHistoryData_RxBytes = "RxBytes"
+const EfmBondingGroupPerformanceMonitoringHistoryData_TxBytes = "TxBytes"
+const EfmBondingGroupPerformanceMonitoringHistoryData_TxDiscardedFrames = "TxDiscardedFrames"
+const EfmBondingGroupPerformanceMonitoringHistoryData_TxDiscardedBytes = "TxDiscardedBytes"
+
 func init() {
 	efmbondinggroupperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "EfmBondingGroupPerformanceMonitoringHistoryData",
-		ClassID: 420,
+		ClassID: EfmBondingGroupPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -102,19 +117,19 @@
 		),
 		AllowedAttributeMask: 0xfff0,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint32Field("RxBadFragments", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4:  Uint32Field("RxLostFragments", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  Uint32Field("RxLostStarts", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6:  Uint32Field("RxLostEnds", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  Uint32Field("RxFrames", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8:  Uint32Field("TxFrames", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
-			9:  Uint64Field("RxBytes", CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
-			10: Uint64Field("TxBytes", CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
-			11: Uint32Field("TxDiscardedFrames", CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
-			12: Uint32Field("TxDiscardedBytes", CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(EfmBondingGroupPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  Uint16Field(EfmBondingGroupPerformanceMonitoringHistoryData_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint32Field(EfmBondingGroupPerformanceMonitoringHistoryData_RxBadFragments, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4:  Uint32Field(EfmBondingGroupPerformanceMonitoringHistoryData_RxLostFragments, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  Uint32Field(EfmBondingGroupPerformanceMonitoringHistoryData_RxLostStarts, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6:  Uint32Field(EfmBondingGroupPerformanceMonitoringHistoryData_RxLostEnds, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  Uint32Field(EfmBondingGroupPerformanceMonitoringHistoryData_RxFrames, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8:  Uint32Field(EfmBondingGroupPerformanceMonitoringHistoryData_TxFrames, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			9:  Uint64Field(EfmBondingGroupPerformanceMonitoringHistoryData_RxBytes, CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
+			10: Uint64Field(EfmBondingGroupPerformanceMonitoringHistoryData_TxBytes, CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
+			11: Uint32Field(EfmBondingGroupPerformanceMonitoringHistoryData_TxDiscardedFrames, CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
+			12: Uint32Field(EfmBondingGroupPerformanceMonitoringHistoryData_TxDiscardedBytes, CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/efmbondinggroupperformancemonitoringhistorydatapart2.go b/generated/efmbondinggroupperformancemonitoringhistorydatapart2.go
index ed3a34c..3138dbf 100644
--- a/generated/efmbondinggroupperformancemonitoringhistorydatapart2.go
+++ b/generated/efmbondinggroupperformancemonitoringhistorydatapart2.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -98,10 +98,27 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const EfmBondingGroupPerformanceMonitoringHistoryDataPart2_IntervalEndTime = "IntervalEndTime"
+const EfmBondingGroupPerformanceMonitoringHistoryDataPart2_ThresholdData12Id = "ThresholdData12Id"
+const EfmBondingGroupPerformanceMonitoringHistoryDataPart2_RxUnicastFrames = "RxUnicastFrames"
+const EfmBondingGroupPerformanceMonitoringHistoryDataPart2_TxUnicastFrames = "TxUnicastFrames"
+const EfmBondingGroupPerformanceMonitoringHistoryDataPart2_RxUnicastBytes = "RxUnicastBytes"
+const EfmBondingGroupPerformanceMonitoringHistoryDataPart2_TxUnicastBytes = "TxUnicastBytes"
+const EfmBondingGroupPerformanceMonitoringHistoryDataPart2_RxBroadcastFrames = "RxBroadcastFrames"
+const EfmBondingGroupPerformanceMonitoringHistoryDataPart2_TxBroadcastFrames = "TxBroadcastFrames"
+const EfmBondingGroupPerformanceMonitoringHistoryDataPart2_RxBroadcastBytes = "RxBroadcastBytes"
+const EfmBondingGroupPerformanceMonitoringHistoryDataPart2_TxBroadcastBytes = "TxBroadcastBytes"
+const EfmBondingGroupPerformanceMonitoringHistoryDataPart2_RxMulticastFrames = "RxMulticastFrames"
+const EfmBondingGroupPerformanceMonitoringHistoryDataPart2_TxMulticastFrames = "TxMulticastFrames"
+const EfmBondingGroupPerformanceMonitoringHistoryDataPart2_RxMulticastBytes = "RxMulticastBytes"
+const EfmBondingGroupPerformanceMonitoringHistoryDataPart2_TxMulticastBytes = "TxMulticastBytes"
+
 func init() {
 	efmbondinggroupperformancemonitoringhistorydatapart2BME = &ManagedEntityDefinition{
 		Name:    "EfmBondingGroupPerformanceMonitoringHistoryDataPart2",
-		ClassID: 421,
+		ClassID: EfmBondingGroupPerformanceMonitoringHistoryDataPart2ClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -111,21 +128,21 @@
 		),
 		AllowedAttributeMask: 0xfffc,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint32Field("RxUnicastFrames", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4:  Uint32Field("TxUnicastFrames", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  Uint64Field("RxUnicastBytes", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6:  Uint64Field("TxUnicastBytes", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  Uint32Field("RxBroadcastFrames", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8:  Uint32Field("TxBroadcastFrames", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
-			9:  Uint64Field("RxBroadcastBytes", CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
-			10: Uint64Field("TxBroadcastBytes", CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
-			11: Uint32Field("RxMulticastFrames", CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
-			12: Uint32Field("TxMulticastFrames", CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
-			13: Uint64Field("RxMulticastBytes", CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
-			14: Uint64Field("TxMulticastBytes", CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(EfmBondingGroupPerformanceMonitoringHistoryDataPart2_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  Uint16Field(EfmBondingGroupPerformanceMonitoringHistoryDataPart2_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint32Field(EfmBondingGroupPerformanceMonitoringHistoryDataPart2_RxUnicastFrames, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4:  Uint32Field(EfmBondingGroupPerformanceMonitoringHistoryDataPart2_TxUnicastFrames, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  Uint64Field(EfmBondingGroupPerformanceMonitoringHistoryDataPart2_RxUnicastBytes, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6:  Uint64Field(EfmBondingGroupPerformanceMonitoringHistoryDataPart2_TxUnicastBytes, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  Uint32Field(EfmBondingGroupPerformanceMonitoringHistoryDataPart2_RxBroadcastFrames, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8:  Uint32Field(EfmBondingGroupPerformanceMonitoringHistoryDataPart2_TxBroadcastFrames, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			9:  Uint64Field(EfmBondingGroupPerformanceMonitoringHistoryDataPart2_RxBroadcastBytes, CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
+			10: Uint64Field(EfmBondingGroupPerformanceMonitoringHistoryDataPart2_TxBroadcastBytes, CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
+			11: Uint32Field(EfmBondingGroupPerformanceMonitoringHistoryDataPart2_RxMulticastFrames, CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
+			12: Uint32Field(EfmBondingGroupPerformanceMonitoringHistoryDataPart2_TxMulticastFrames, CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
+			13: Uint64Field(EfmBondingGroupPerformanceMonitoringHistoryDataPart2_RxMulticastBytes, CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
+			14: Uint64Field(EfmBondingGroupPerformanceMonitoringHistoryDataPart2_TxMulticastBytes, CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/efmbondinglink.go b/generated/efmbondinglink.go
index 4df2d36..a38e1c5 100644
--- a/generated/efmbondinglink.go
+++ b/generated/efmbondinglink.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -72,10 +72,15 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const EfmBondingLink_AssociatedGroupMeId = "AssociatedGroupMeId"
+const EfmBondingLink_LinkAlarmEnable = "LinkAlarmEnable"
+
 func init() {
 	efmbondinglinkBME = &ManagedEntityDefinition{
 		Name:    "EfmBondingLink",
-		ClassID: 419,
+		ClassID: EfmBondingLinkClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -84,9 +89,9 @@
 		),
 		AllowedAttributeMask: 0xc000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: Uint16Field("AssociatedGroupMeId", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2: ByteField("LinkAlarmEnable", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: Uint16Field(EfmBondingLink_AssociatedGroupMeId, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2: ByteField(EfmBondingLink_LinkAlarmEnable, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/efmbondinglinkperformancemonitoringhistorydata.go b/generated/efmbondinglinkperformancemonitoringhistorydata.go
index 2ef9f2a..f0721e3 100644
--- a/generated/efmbondinglinkperformancemonitoringhistorydata.go
+++ b/generated/efmbondinglinkperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -79,10 +79,23 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const EfmBondingLinkPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const EfmBondingLinkPerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const EfmBondingLinkPerformanceMonitoringHistoryData_RxErroredFragments = "RxErroredFragments"
+const EfmBondingLinkPerformanceMonitoringHistoryData_RxSmallFragments = "RxSmallFragments"
+const EfmBondingLinkPerformanceMonitoringHistoryData_RxLargeFragments = "RxLargeFragments"
+const EfmBondingLinkPerformanceMonitoringHistoryData_RxDiscardedFragments = "RxDiscardedFragments"
+const EfmBondingLinkPerformanceMonitoringHistoryData_RxFcsErrors = "RxFcsErrors"
+const EfmBondingLinkPerformanceMonitoringHistoryData_RxCodingErrors = "RxCodingErrors"
+const EfmBondingLinkPerformanceMonitoringHistoryData_RxFragments = "RxFragments"
+const EfmBondingLinkPerformanceMonitoringHistoryData_TxFragments = "TxFragments"
+
 func init() {
 	efmbondinglinkperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "EfmBondingLinkPerformanceMonitoringHistoryData",
-		ClassID: 422,
+		ClassID: EfmBondingLinkPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -92,17 +105,17 @@
 		),
 		AllowedAttributeMask: 0xffc0,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint32Field("RxErroredFragments", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4:  Uint32Field("RxSmallFragments", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  Uint32Field("RxLargeFragments", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6:  Uint32Field("RxDiscardedFragments", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  Uint32Field("RxFcsErrors", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8:  Uint32Field("RxCodingErrors", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
-			9:  Uint32Field("RxFragments", CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
-			10: Uint32Field("TxFragments", CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(EfmBondingLinkPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  Uint16Field(EfmBondingLinkPerformanceMonitoringHistoryData_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint32Field(EfmBondingLinkPerformanceMonitoringHistoryData_RxErroredFragments, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4:  Uint32Field(EfmBondingLinkPerformanceMonitoringHistoryData_RxSmallFragments, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  Uint32Field(EfmBondingLinkPerformanceMonitoringHistoryData_RxLargeFragments, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6:  Uint32Field(EfmBondingLinkPerformanceMonitoringHistoryData_RxDiscardedFragments, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  Uint32Field(EfmBondingLinkPerformanceMonitoringHistoryData_RxFcsErrors, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8:  Uint32Field(EfmBondingLinkPerformanceMonitoringHistoryData_RxCodingErrors, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			9:  Uint32Field(EfmBondingLinkPerformanceMonitoringHistoryData_RxFragments, CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
+			10: Uint32Field(EfmBondingLinkPerformanceMonitoringHistoryData_TxFragments, CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/efmbondingportperformancemonitoringhistorydata.go b/generated/efmbondingportperformancemonitoringhistorydata.go
index 6585ce3..90fe2b6 100644
--- a/generated/efmbondingportperformancemonitoringhistorydata.go
+++ b/generated/efmbondingportperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -78,10 +78,21 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const EfmBondingPortPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const EfmBondingPortPerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const EfmBondingPortPerformanceMonitoringHistoryData_RxFrames = "RxFrames"
+const EfmBondingPortPerformanceMonitoringHistoryData_TxFrames = "TxFrames"
+const EfmBondingPortPerformanceMonitoringHistoryData_RxBytes = "RxBytes"
+const EfmBondingPortPerformanceMonitoringHistoryData_TxBytes = "TxBytes"
+const EfmBondingPortPerformanceMonitoringHistoryData_TxDiscardedFrames = "TxDiscardedFrames"
+const EfmBondingPortPerformanceMonitoringHistoryData_TxDiscardedBytes = "TxDiscardedBytes"
+
 func init() {
 	efmbondingportperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "EfmBondingPortPerformanceMonitoringHistoryData",
-		ClassID: 423,
+		ClassID: EfmBondingPortPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -91,15 +102,15 @@
 		),
 		AllowedAttributeMask: 0xff00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint32Field("RxFrames", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4: Uint32Field("TxFrames", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5: Uint32Field("RxBytes", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6: Uint32Field("TxBytes", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7: Uint32Field("TxDiscardedFrames", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8: Uint32Field("TxDiscardedBytes", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(EfmBondingPortPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: Uint16Field(EfmBondingPortPerformanceMonitoringHistoryData_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint32Field(EfmBondingPortPerformanceMonitoringHistoryData_RxFrames, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4: Uint32Field(EfmBondingPortPerformanceMonitoringHistoryData_TxFrames, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5: Uint32Field(EfmBondingPortPerformanceMonitoringHistoryData_RxBytes, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6: Uint32Field(EfmBondingPortPerformanceMonitoringHistoryData_TxBytes, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7: Uint32Field(EfmBondingPortPerformanceMonitoringHistoryData_TxDiscardedFrames, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8: Uint32Field(EfmBondingPortPerformanceMonitoringHistoryData_TxDiscardedBytes, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/efmbondingportperformancemonitoringhistorydatapart2.go b/generated/efmbondingportperformancemonitoringhistorydatapart2.go
index f2a1f15..767228b 100644
--- a/generated/efmbondingportperformancemonitoringhistorydatapart2.go
+++ b/generated/efmbondingportperformancemonitoringhistorydatapart2.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -99,10 +99,27 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const EfmBondingPortPerformanceMonitoringHistoryDataPart2_IntervalEndTime = "IntervalEndTime"
+const EfmBondingPortPerformanceMonitoringHistoryDataPart2_ThresholdData12Id = "ThresholdData12Id"
+const EfmBondingPortPerformanceMonitoringHistoryDataPart2_RxUnicastFrames = "RxUnicastFrames"
+const EfmBondingPortPerformanceMonitoringHistoryDataPart2_TxUnicastFrames = "TxUnicastFrames"
+const EfmBondingPortPerformanceMonitoringHistoryDataPart2_RxUnicastBytes = "RxUnicastBytes"
+const EfmBondingPortPerformanceMonitoringHistoryDataPart2_TxUnicastBytes = "TxUnicastBytes"
+const EfmBondingPortPerformanceMonitoringHistoryDataPart2_RxBroadcastFrames = "RxBroadcastFrames"
+const EfmBondingPortPerformanceMonitoringHistoryDataPart2_TxBroadcastFrames = "TxBroadcastFrames"
+const EfmBondingPortPerformanceMonitoringHistoryDataPart2_RxBroadcastBytes = "RxBroadcastBytes"
+const EfmBondingPortPerformanceMonitoringHistoryDataPart2_TxBroadcastBytes = "TxBroadcastBytes"
+const EfmBondingPortPerformanceMonitoringHistoryDataPart2_RxMulticastFrames = "RxMulticastFrames"
+const EfmBondingPortPerformanceMonitoringHistoryDataPart2_TxMulticastFrames = "TxMulticastFrames"
+const EfmBondingPortPerformanceMonitoringHistoryDataPart2_RxMulticastBytes = "RxMulticastBytes"
+const EfmBondingPortPerformanceMonitoringHistoryDataPart2_TxMulticastBytes = "TxMulticastBytes"
+
 func init() {
 	efmbondingportperformancemonitoringhistorydatapart2BME = &ManagedEntityDefinition{
 		Name:    "EfmBondingPortPerformanceMonitoringHistoryDataPart2",
-		ClassID: 424,
+		ClassID: EfmBondingPortPerformanceMonitoringHistoryDataPart2ClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -112,21 +129,21 @@
 		),
 		AllowedAttributeMask: 0xfffc,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint32Field("RxUnicastFrames", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4:  Uint32Field("TxUnicastFrames", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  Uint32Field("RxUnicastBytes", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6:  Uint32Field("TxUnicastBytes", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  Uint32Field("RxBroadcastFrames", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8:  Uint32Field("TxBroadcastFrames", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
-			9:  Uint32Field("RxBroadcastBytes", CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
-			10: Uint32Field("TxBroadcastBytes", CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
-			11: Uint32Field("RxMulticastFrames", CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
-			12: Uint32Field("TxMulticastFrames", CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
-			13: Uint32Field("RxMulticastBytes", CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
-			14: Uint32Field("TxMulticastBytes", CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(EfmBondingPortPerformanceMonitoringHistoryDataPart2_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  Uint16Field(EfmBondingPortPerformanceMonitoringHistoryDataPart2_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint32Field(EfmBondingPortPerformanceMonitoringHistoryDataPart2_RxUnicastFrames, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4:  Uint32Field(EfmBondingPortPerformanceMonitoringHistoryDataPart2_TxUnicastFrames, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  Uint32Field(EfmBondingPortPerformanceMonitoringHistoryDataPart2_RxUnicastBytes, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6:  Uint32Field(EfmBondingPortPerformanceMonitoringHistoryDataPart2_TxUnicastBytes, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  Uint32Field(EfmBondingPortPerformanceMonitoringHistoryDataPart2_RxBroadcastFrames, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8:  Uint32Field(EfmBondingPortPerformanceMonitoringHistoryDataPart2_TxBroadcastFrames, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			9:  Uint32Field(EfmBondingPortPerformanceMonitoringHistoryDataPart2_RxBroadcastBytes, CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
+			10: Uint32Field(EfmBondingPortPerformanceMonitoringHistoryDataPart2_TxBroadcastBytes, CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
+			11: Uint32Field(EfmBondingPortPerformanceMonitoringHistoryDataPart2_RxMulticastFrames, CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
+			12: Uint32Field(EfmBondingPortPerformanceMonitoringHistoryDataPart2_TxMulticastFrames, CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
+			13: Uint32Field(EfmBondingPortPerformanceMonitoringHistoryDataPart2_RxMulticastBytes, CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
+			14: Uint32Field(EfmBondingPortPerformanceMonitoringHistoryDataPart2_TxMulticastBytes, CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/energyconsumptionperformancemonitoringhistorydata.go b/generated/energyconsumptionperformancemonitoringhistorydata.go
index d831e3e..7bf30a9 100644
--- a/generated/energyconsumptionperformancemonitoringhistorydata.go
+++ b/generated/energyconsumptionperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -78,10 +78,19 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const EnergyConsumptionPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const EnergyConsumptionPerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const EnergyConsumptionPerformanceMonitoringHistoryData_DozeTime = "DozeTime"
+const EnergyConsumptionPerformanceMonitoringHistoryData_CyclicSleepTime = "CyclicSleepTime"
+const EnergyConsumptionPerformanceMonitoringHistoryData_WatchfulSleepTime = "WatchfulSleepTime"
+const EnergyConsumptionPerformanceMonitoringHistoryData_EnergyConsumed = "EnergyConsumed"
+
 func init() {
 	energyconsumptionperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "EnergyConsumptionPerformanceMonitoringHistoryData",
-		ClassID: 343,
+		ClassID: EnergyConsumptionPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -91,13 +100,13 @@
 		),
 		AllowedAttributeMask: 0xfc00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: Uint16Field("ThresholdData12Id", PointerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint32Field("DozeTime", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4: Uint32Field("CyclicSleepTime", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5: Uint32Field("WatchfulSleepTime", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6: Uint32Field("EnergyConsumed", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, true, false, 6),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(EnergyConsumptionPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: Uint16Field(EnergyConsumptionPerformanceMonitoringHistoryData_ThresholdData12Id, PointerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint32Field(EnergyConsumptionPerformanceMonitoringHistoryData_DozeTime, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4: Uint32Field(EnergyConsumptionPerformanceMonitoringHistoryData_CyclicSleepTime, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5: Uint32Field(EnergyConsumptionPerformanceMonitoringHistoryData_WatchfulSleepTime, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6: Uint32Field(EnergyConsumptionPerformanceMonitoringHistoryData_EnergyConsumed, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, true, false, 6),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/enhancedfecperformancemonitoringhistorydata.go b/generated/enhancedfecperformancemonitoringhistorydata.go
index b3da774..0c3ac9f 100644
--- a/generated/enhancedfecperformancemonitoringhistorydata.go
+++ b/generated/enhancedfecperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -77,10 +77,20 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const EnhancedFecPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const EnhancedFecPerformanceMonitoringHistoryData_ThresholdData64BitId = "ThresholdData64BitId"
+const EnhancedFecPerformanceMonitoringHistoryData_CorrectedBytes = "CorrectedBytes"
+const EnhancedFecPerformanceMonitoringHistoryData_CorrectedCodeWords = "CorrectedCodeWords"
+const EnhancedFecPerformanceMonitoringHistoryData_UncorrectableCodeWords = "UncorrectableCodeWords"
+const EnhancedFecPerformanceMonitoringHistoryData_TotalCodeWords = "TotalCodeWords"
+const EnhancedFecPerformanceMonitoringHistoryData_FecSeconds = "FecSeconds"
+
 func init() {
 	enhancedfecperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "EnhancedFecPerformanceMonitoringHistoryData",
-		ClassID: 453,
+		ClassID: EnhancedFecPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -90,14 +100,14 @@
 		),
 		AllowedAttributeMask: 0xfe00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: Uint16Field("ThresholdData64BitId", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint64Field("CorrectedBytes", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4: Uint64Field("CorrectedCodeWords", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5: Uint64Field("UncorrectableCodeWords", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6: Uint64Field("TotalCodeWords", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7: Uint16Field("FecSeconds", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(EnhancedFecPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: Uint16Field(EnhancedFecPerformanceMonitoringHistoryData_ThresholdData64BitId, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint64Field(EnhancedFecPerformanceMonitoringHistoryData_CorrectedBytes, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4: Uint64Field(EnhancedFecPerformanceMonitoringHistoryData_CorrectedCodeWords, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5: Uint64Field(EnhancedFecPerformanceMonitoringHistoryData_UncorrectableCodeWords, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6: Uint64Field(EnhancedFecPerformanceMonitoringHistoryData_TotalCodeWords, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7: Uint16Field(EnhancedFecPerformanceMonitoringHistoryData_FecSeconds, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/enhancedsecuritycontrol.go b/generated/enhancedsecuritycontrol.go
index 7c2948a..5c74bb0 100644
--- a/generated/enhancedsecuritycontrol.go
+++ b/generated/enhancedsecuritycontrol.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -238,10 +238,25 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const EnhancedSecurityControl_OltCryptoCapabilities = "OltCryptoCapabilities"
+const EnhancedSecurityControl_OltRandomChallengeTable = "OltRandomChallengeTable"
+const EnhancedSecurityControl_OltChallengeStatus = "OltChallengeStatus"
+const EnhancedSecurityControl_OnuSelectedCryptoCapabilities = "OnuSelectedCryptoCapabilities"
+const EnhancedSecurityControl_OnuRandomChallengeTable = "OnuRandomChallengeTable"
+const EnhancedSecurityControl_OnuAuthenticationResultTable = "OnuAuthenticationResultTable"
+const EnhancedSecurityControl_OltAuthenticationResultTable = "OltAuthenticationResultTable"
+const EnhancedSecurityControl_OltResultStatus = "OltResultStatus"
+const EnhancedSecurityControl_OnuAuthenticationStatus = "OnuAuthenticationStatus"
+const EnhancedSecurityControl_MasterSessionKeyName = "MasterSessionKeyName"
+const EnhancedSecurityControl_BroadcastKeyTable = "BroadcastKeyTable"
+const EnhancedSecurityControl_EffectiveKeyLength = "EffectiveKeyLength"
+
 func init() {
 	enhancedsecuritycontrolBME = &ManagedEntityDefinition{
 		Name:    "EnhancedSecurityControl",
-		ClassID: 332,
+		ClassID: EnhancedSecurityControlClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			GetNext,
@@ -249,19 +264,19 @@
 		),
 		AllowedAttributeMask: 0xfff0,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  MultiByteField("OltCryptoCapabilities", OctetsAttributeType, 0x8000, 16, toOctets("AAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Write), false, false, false, 1),
-			2:  TableField("OltRandomChallengeTable", TableAttributeType, 0x4000, TableInfo{nil, 17}, mapset.NewSetWith(Read, Write), false, false, false, 2),
-			3:  ByteField("OltChallengeStatus", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
-			4:  ByteField("OnuSelectedCryptoCapabilities", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  TableField("OnuRandomChallengeTable", TableAttributeType, 0x0800, TableInfo{nil, 16}, mapset.NewSetWith(Read), true, false, false, 5),
-			6:  TableField("OnuAuthenticationResultTable", TableAttributeType, 0x0400, TableInfo{nil, 16}, mapset.NewSetWith(Read), true, false, false, 6),
-			7:  TableField("OltAuthenticationResultTable", TableAttributeType, 0x0200, TableInfo{nil, 17}, mapset.NewSetWith(Read, Write), false, false, false, 7),
-			8:  ByteField("OltResultStatus", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, false, false, 8),
-			9:  ByteField("OnuAuthenticationStatus", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), true, false, false, 9),
-			10: MultiByteField("MasterSessionKeyName", OctetsAttributeType, 0x0040, 16, toOctets("AAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 10),
-			11: TableField("BroadcastKeyTable", TableAttributeType, 0x0020, TableInfo{nil, 18}, mapset.NewSetWith(Read, Write), false, true, false, 11),
-			12: Uint16Field("EffectiveKeyLength", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, true, false, 12),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  MultiByteField(EnhancedSecurityControl_OltCryptoCapabilities, OctetsAttributeType, 0x8000, 16, toOctets("AAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Write), false, false, false, 1),
+			2:  TableField(EnhancedSecurityControl_OltRandomChallengeTable, TableAttributeType, 0x4000, TableInfo{nil, 17}, mapset.NewSetWith(Read, Write), false, false, false, 2),
+			3:  ByteField(EnhancedSecurityControl_OltChallengeStatus, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
+			4:  ByteField(EnhancedSecurityControl_OnuSelectedCryptoCapabilities, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  TableField(EnhancedSecurityControl_OnuRandomChallengeTable, TableAttributeType, 0x0800, TableInfo{nil, 16}, mapset.NewSetWith(Read), true, false, false, 5),
+			6:  TableField(EnhancedSecurityControl_OnuAuthenticationResultTable, TableAttributeType, 0x0400, TableInfo{nil, 16}, mapset.NewSetWith(Read), true, false, false, 6),
+			7:  TableField(EnhancedSecurityControl_OltAuthenticationResultTable, TableAttributeType, 0x0200, TableInfo{nil, 17}, mapset.NewSetWith(Read, Write), false, false, false, 7),
+			8:  ByteField(EnhancedSecurityControl_OltResultStatus, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, false, false, 8),
+			9:  ByteField(EnhancedSecurityControl_OnuAuthenticationStatus, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), true, false, false, 9),
+			10: MultiByteField(EnhancedSecurityControl_MasterSessionKeyName, OctetsAttributeType, 0x0040, 16, toOctets("AAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 10),
+			11: TableField(EnhancedSecurityControl_BroadcastKeyTable, TableAttributeType, 0x0020, TableInfo{nil, 18}, mapset.NewSetWith(Read, Write), false, true, false, 11),
+			12: Uint16Field(EnhancedSecurityControl_EffectiveKeyLength, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, true, false, 12),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/enhancedtcperformancemonitoringhistorydata.go b/generated/enhancedtcperformancemonitoringhistorydata.go
index ddc1605..9c51d30 100644
--- a/generated/enhancedtcperformancemonitoringhistorydata.go
+++ b/generated/enhancedtcperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -121,10 +121,28 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const EnhancedTcPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const EnhancedTcPerformanceMonitoringHistoryData_ThresholdData64BitId = "ThresholdData64BitId"
+const EnhancedTcPerformanceMonitoringHistoryData_PsbdHecErrorCount = "PsbdHecErrorCount"
+const EnhancedTcPerformanceMonitoringHistoryData_XgtcHecErrorCount = "XgtcHecErrorCount"
+const EnhancedTcPerformanceMonitoringHistoryData_UnknownProfileCount = "UnknownProfileCount"
+const EnhancedTcPerformanceMonitoringHistoryData_TransmittedXgemFrames = "TransmittedXgemFrames"
+const EnhancedTcPerformanceMonitoringHistoryData_FragmentXgemFrames = "FragmentXgemFrames"
+const EnhancedTcPerformanceMonitoringHistoryData_XgemHecLostWordsCount = "XgemHecLostWordsCount"
+const EnhancedTcPerformanceMonitoringHistoryData_XgemKeyErrors = "XgemKeyErrors"
+const EnhancedTcPerformanceMonitoringHistoryData_XgemHecErrorCount = "XgemHecErrorCount"
+const EnhancedTcPerformanceMonitoringHistoryData_TransmittedBytesInNonIdleXgemFrames = "TransmittedBytesInNonIdleXgemFrames"
+const EnhancedTcPerformanceMonitoringHistoryData_ReceivedBytesInNonIdleXgemFrames = "ReceivedBytesInNonIdleXgemFrames"
+const EnhancedTcPerformanceMonitoringHistoryData_LodsEventCount = "LodsEventCount"
+const EnhancedTcPerformanceMonitoringHistoryData_LodsEventRestoredCount = "LodsEventRestoredCount"
+const EnhancedTcPerformanceMonitoringHistoryData_OnuReactivationByLodsEvents = "OnuReactivationByLodsEvents"
+
 func init() {
 	enhancedtcperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "EnhancedTcPerformanceMonitoringHistoryData",
-		ClassID: 454,
+		ClassID: EnhancedTcPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -134,22 +152,22 @@
 		),
 		AllowedAttributeMask: 0xfffe,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  Uint16Field("ThresholdData64BitId", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint32Field("PsbdHecErrorCount", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, true, false, 3),
-			4:  Uint32Field("XgtcHecErrorCount", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, true, false, 4),
-			5:  Uint32Field("UnknownProfileCount", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, true, false, 5),
-			6:  Uint64Field("TransmittedXgemFrames", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  Uint64Field("FragmentXgemFrames", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, true, false, 7),
-			8:  Uint64Field("XgemHecLostWordsCount", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, true, false, 8),
-			9:  Uint64Field("XgemKeyErrors", CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
-			10: Uint64Field("XgemHecErrorCount", CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
-			11: Uint64Field("TransmittedBytesInNonIdleXgemFrames", CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
-			12: Uint64Field("ReceivedBytesInNonIdleXgemFrames", CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, true, false, 12),
-			13: Uint32Field("LodsEventCount", CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, true, false, 13),
-			14: Uint32Field("LodsEventRestoredCount", CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, true, false, 14),
-			15: Uint32Field("OnuReactivationByLodsEvents", CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, true, false, 15),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(EnhancedTcPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  Uint16Field(EnhancedTcPerformanceMonitoringHistoryData_ThresholdData64BitId, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint32Field(EnhancedTcPerformanceMonitoringHistoryData_PsbdHecErrorCount, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, true, false, 3),
+			4:  Uint32Field(EnhancedTcPerformanceMonitoringHistoryData_XgtcHecErrorCount, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, true, false, 4),
+			5:  Uint32Field(EnhancedTcPerformanceMonitoringHistoryData_UnknownProfileCount, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, true, false, 5),
+			6:  Uint64Field(EnhancedTcPerformanceMonitoringHistoryData_TransmittedXgemFrames, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  Uint64Field(EnhancedTcPerformanceMonitoringHistoryData_FragmentXgemFrames, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, true, false, 7),
+			8:  Uint64Field(EnhancedTcPerformanceMonitoringHistoryData_XgemHecLostWordsCount, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, true, false, 8),
+			9:  Uint64Field(EnhancedTcPerformanceMonitoringHistoryData_XgemKeyErrors, CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
+			10: Uint64Field(EnhancedTcPerformanceMonitoringHistoryData_XgemHecErrorCount, CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
+			11: Uint64Field(EnhancedTcPerformanceMonitoringHistoryData_TransmittedBytesInNonIdleXgemFrames, CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
+			12: Uint64Field(EnhancedTcPerformanceMonitoringHistoryData_ReceivedBytesInNonIdleXgemFrames, CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, true, false, 12),
+			13: Uint32Field(EnhancedTcPerformanceMonitoringHistoryData_LodsEventCount, CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, true, false, 13),
+			14: Uint32Field(EnhancedTcPerformanceMonitoringHistoryData_LodsEventRestoredCount, CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, true, false, 14),
+			15: Uint32Field(EnhancedTcPerformanceMonitoringHistoryData_OnuReactivationByLodsEvents, CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, true, false, 15),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/epondownstreamperformancemonitoringconfiguration.go b/generated/epondownstreamperformancemonitoringconfiguration.go
index 8ee5afc..a1be9fb 100644
--- a/generated/epondownstreamperformancemonitoringconfiguration.go
+++ b/generated/epondownstreamperformancemonitoringconfiguration.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -83,25 +83,36 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const EponDownstreamPerformanceMonitoringConfiguration_ErroredSymbolPeriodWindow = "ErroredSymbolPeriodWindow"
+const EponDownstreamPerformanceMonitoringConfiguration_ErroredSymbolPeriodThreshold = "ErroredSymbolPeriodThreshold"
+const EponDownstreamPerformanceMonitoringConfiguration_ErroredFrameWindow = "ErroredFrameWindow"
+const EponDownstreamPerformanceMonitoringConfiguration_ErroredFrameThreshold = "ErroredFrameThreshold"
+const EponDownstreamPerformanceMonitoringConfiguration_ErroredFramePeriodWindow = "ErroredFramePeriodWindow"
+const EponDownstreamPerformanceMonitoringConfiguration_ErroredFramePeriodThreshold = "ErroredFramePeriodThreshold"
+const EponDownstreamPerformanceMonitoringConfiguration_ErroredFrameSecondsSummaryWindow = "ErroredFrameSecondsSummaryWindow"
+const EponDownstreamPerformanceMonitoringConfiguration_ErroredFrameSecondsSummaryThreshold = "ErroredFrameSecondsSummaryThreshold"
+
 func init() {
 	epondownstreamperformancemonitoringconfigurationBME = &ManagedEntityDefinition{
 		Name:    "EponDownstreamPerformanceMonitoringConfiguration",
-		ClassID: 406,
+		ClassID: EponDownstreamPerformanceMonitoringConfigurationClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
 		),
 		AllowedAttributeMask: 0xff00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: Uint64Field("ErroredSymbolPeriodWindow", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, true, false, 1),
-			2: Uint64Field("ErroredSymbolPeriodThreshold", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, true, false, 2),
-			3: Uint16Field("ErroredFrameWindow", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, true, false, 3),
-			4: Uint32Field("ErroredFrameThreshold", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, true, false, 4),
-			5: Uint32Field("ErroredFramePeriodWindow", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, true, false, 5),
-			6: Uint32Field("ErroredFramePeriodThreshold", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, true, false, 6),
-			7: Uint16Field("ErroredFrameSecondsSummaryWindow", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, true, false, 7),
-			8: Uint16Field("ErroredFrameSecondsSummaryThreshold", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, true, false, 8),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: Uint64Field(EponDownstreamPerformanceMonitoringConfiguration_ErroredSymbolPeriodWindow, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, true, false, 1),
+			2: Uint64Field(EponDownstreamPerformanceMonitoringConfiguration_ErroredSymbolPeriodThreshold, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, true, false, 2),
+			3: Uint16Field(EponDownstreamPerformanceMonitoringConfiguration_ErroredFrameWindow, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, true, false, 3),
+			4: Uint32Field(EponDownstreamPerformanceMonitoringConfiguration_ErroredFrameThreshold, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, true, false, 4),
+			5: Uint32Field(EponDownstreamPerformanceMonitoringConfiguration_ErroredFramePeriodWindow, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, true, false, 5),
+			6: Uint32Field(EponDownstreamPerformanceMonitoringConfiguration_ErroredFramePeriodThreshold, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, true, false, 6),
+			7: Uint16Field(EponDownstreamPerformanceMonitoringConfiguration_ErroredFrameSecondsSummaryWindow, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, true, false, 7),
+			8: Uint16Field(EponDownstreamPerformanceMonitoringConfiguration_ErroredFrameSecondsSummaryThreshold, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, true, false, 8),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/equipmentextensionpackage.go b/generated/equipmentextensionpackage.go
index 22bca67..c37dc0b 100644
--- a/generated/equipmentextensionpackage.go
+++ b/generated/equipmentextensionpackage.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -90,19 +90,24 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const EquipmentExtensionPackage_EnvironmentalSense = "EnvironmentalSense"
+const EquipmentExtensionPackage_ContactClosureOutput = "ContactClosureOutput"
+
 func init() {
 	equipmentextensionpackageBME = &ManagedEntityDefinition{
 		Name:    "EquipmentExtensionPackage",
-		ClassID: 160,
+		ClassID: EquipmentExtensionPackageClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
 		),
 		AllowedAttributeMask: 0xc000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: Uint16Field("EnvironmentalSense", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, true, false, 1),
-			2: Uint16Field("ContactClosureOutput", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, true, false, 2),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: Uint16Field(EquipmentExtensionPackage_EnvironmentalSense, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, true, false, 1),
+			2: Uint16Field(EquipmentExtensionPackage_ContactClosureOutput, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, true, false, 2),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/ethernetflowterminationpoint.go b/generated/ethernetflowterminationpoint.go
index d2401d8..0225950 100644
--- a/generated/ethernetflowterminationpoint.go
+++ b/generated/ethernetflowterminationpoint.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -82,10 +82,18 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const EthernetFlowTerminationPoint_DestinationMac = "DestinationMac"
+const EthernetFlowTerminationPoint_SourceMac = "SourceMac"
+const EthernetFlowTerminationPoint_TagPolicy = "TagPolicy"
+const EthernetFlowTerminationPoint_Tci = "Tci"
+const EthernetFlowTerminationPoint_Loopback = "Loopback"
+
 func init() {
 	ethernetflowterminationpointBME = &ManagedEntityDefinition{
 		Name:    "EthernetFlowTerminationPoint",
-		ClassID: 286,
+		ClassID: EthernetFlowTerminationPointClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -94,12 +102,12 @@
 		),
 		AllowedAttributeMask: 0xf800,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: MultiByteField("DestinationMac", OctetsAttributeType, 0x8000, 6, toOctets("AAAAAAAA"), mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2: MultiByteField("SourceMac", OctetsAttributeType, 0x4000, 6, toOctets("AAAAAAAA"), mapset.NewSetWith(Read), false, false, false, 2),
-			3: ByteField("TagPolicy", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
-			4: Uint16Field("Tci", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, true, false, 4),
-			5: ByteField("Loopback", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: MultiByteField(EthernetFlowTerminationPoint_DestinationMac, OctetsAttributeType, 0x8000, 6, toOctets("AAAAAAAA"), mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2: MultiByteField(EthernetFlowTerminationPoint_SourceMac, OctetsAttributeType, 0x4000, 6, toOctets("AAAAAAAA"), mapset.NewSetWith(Read), false, false, false, 2),
+			3: ByteField(EthernetFlowTerminationPoint_TagPolicy, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
+			4: Uint16Field(EthernetFlowTerminationPoint_Tci, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, true, false, 4),
+			5: ByteField(EthernetFlowTerminationPoint_Loopback, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/ethernetframeextendedpm.go b/generated/ethernetframeextendedpm.go
index bad6912..215ebc1 100644
--- a/generated/ethernetframeextendedpm.go
+++ b/generated/ethernetframeextendedpm.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -203,10 +203,29 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const EthernetFrameExtendedPm_IntervalEndTime = "IntervalEndTime"
+const EthernetFrameExtendedPm_ControlBlock = "ControlBlock"
+const EthernetFrameExtendedPm_DropEvents = "DropEvents"
+const EthernetFrameExtendedPm_Octets = "Octets"
+const EthernetFrameExtendedPm_Frames = "Frames"
+const EthernetFrameExtendedPm_BroadcastFrames = "BroadcastFrames"
+const EthernetFrameExtendedPm_MulticastFrames = "MulticastFrames"
+const EthernetFrameExtendedPm_CrcErroredFrames = "CrcErroredFrames"
+const EthernetFrameExtendedPm_UndersizeFrames = "UndersizeFrames"
+const EthernetFrameExtendedPm_OversizeFrames = "OversizeFrames"
+const EthernetFrameExtendedPm_Frames64Octets = "Frames64Octets"
+const EthernetFrameExtendedPm_Frames65To127Octets = "Frames65To127Octets"
+const EthernetFrameExtendedPm_Frames128To255Octets = "Frames128To255Octets"
+const EthernetFrameExtendedPm_Frames256To511Octets = "Frames256To511Octets"
+const EthernetFrameExtendedPm_Frames512To1023Octets = "Frames512To1023Octets"
+const EthernetFrameExtendedPm_Frames1024To1518Octets = "Frames1024To1518Octets"
+
 func init() {
 	ethernetframeextendedpmBME = &ManagedEntityDefinition{
 		Name:    "EthernetFrameExtendedPm",
-		ClassID: 334,
+		ClassID: EthernetFrameExtendedPmClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -216,23 +235,23 @@
 		),
 		AllowedAttributeMask: 0xffff,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  MultiByteField("ControlBlock", OctetsAttributeType, 0x4000, 16, toOctets("AAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint32Field("DropEvents", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4:  Uint32Field("Octets", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  Uint32Field("Frames", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6:  Uint32Field("BroadcastFrames", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  Uint32Field("MulticastFrames", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8:  Uint32Field("CrcErroredFrames", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
-			9:  Uint32Field("UndersizeFrames", CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
-			10: Uint32Field("OversizeFrames", CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
-			11: Uint32Field("Frames64Octets", CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
-			12: Uint32Field("Frames65To127Octets", CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
-			13: Uint32Field("Frames128To255Octets", CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
-			14: Uint32Field("Frames256To511Octets", CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
-			15: Uint32Field("Frames512To1023Octets", CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, false, false, 15),
-			16: Uint32Field("Frames1024To1518Octets", CounterAttributeType, 0x0001, 0, mapset.NewSetWith(Read), false, false, false, 16),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(EthernetFrameExtendedPm_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  MultiByteField(EthernetFrameExtendedPm_ControlBlock, OctetsAttributeType, 0x4000, 16, toOctets("AAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint32Field(EthernetFrameExtendedPm_DropEvents, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4:  Uint32Field(EthernetFrameExtendedPm_Octets, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  Uint32Field(EthernetFrameExtendedPm_Frames, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6:  Uint32Field(EthernetFrameExtendedPm_BroadcastFrames, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  Uint32Field(EthernetFrameExtendedPm_MulticastFrames, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8:  Uint32Field(EthernetFrameExtendedPm_CrcErroredFrames, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			9:  Uint32Field(EthernetFrameExtendedPm_UndersizeFrames, CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
+			10: Uint32Field(EthernetFrameExtendedPm_OversizeFrames, CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
+			11: Uint32Field(EthernetFrameExtendedPm_Frames64Octets, CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
+			12: Uint32Field(EthernetFrameExtendedPm_Frames65To127Octets, CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
+			13: Uint32Field(EthernetFrameExtendedPm_Frames128To255Octets, CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
+			14: Uint32Field(EthernetFrameExtendedPm_Frames256To511Octets, CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
+			15: Uint32Field(EthernetFrameExtendedPm_Frames512To1023Octets, CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, false, false, 15),
+			16: Uint32Field(EthernetFrameExtendedPm_Frames1024To1518Octets, CounterAttributeType, 0x0001, 0, mapset.NewSetWith(Read), false, false, false, 16),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/ethernetframeextendedpm64-bit.go b/generated/ethernetframeextendedpm64-bit.go
index 4d3eb90..b4d333f 100644
--- a/generated/ethernetframeextendedpm64-bit.go
+++ b/generated/ethernetframeextendedpm64-bit.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -202,10 +202,29 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const EthernetFrameExtendedPm64Bit_IntervalEndTime = "IntervalEndTime"
+const EthernetFrameExtendedPm64Bit_ControlBlock = "ControlBlock"
+const EthernetFrameExtendedPm64Bit_DropEvents = "DropEvents"
+const EthernetFrameExtendedPm64Bit_Octets = "Octets"
+const EthernetFrameExtendedPm64Bit_Frames = "Frames"
+const EthernetFrameExtendedPm64Bit_BroadcastFrames = "BroadcastFrames"
+const EthernetFrameExtendedPm64Bit_MulticastFrames = "MulticastFrames"
+const EthernetFrameExtendedPm64Bit_CrcErroredFrames = "CrcErroredFrames"
+const EthernetFrameExtendedPm64Bit_UndersizeFrames = "UndersizeFrames"
+const EthernetFrameExtendedPm64Bit_OversizeFrames = "OversizeFrames"
+const EthernetFrameExtendedPm64Bit_Frames64Octets = "Frames64Octets"
+const EthernetFrameExtendedPm64Bit_Frames65To127Octets = "Frames65To127Octets"
+const EthernetFrameExtendedPm64Bit_Frames128To255Octets = "Frames128To255Octets"
+const EthernetFrameExtendedPm64Bit_Frames256To511Octets = "Frames256To511Octets"
+const EthernetFrameExtendedPm64Bit_Frames512To1023Octets = "Frames512To1023Octets"
+const EthernetFrameExtendedPm64Bit_Frames1024To1518Octets = "Frames1024To1518Octets"
+
 func init() {
 	ethernetframeextendedpm64bitBME = &ManagedEntityDefinition{
 		Name:    "EthernetFrameExtendedPm64Bit",
-		ClassID: 425,
+		ClassID: EthernetFrameExtendedPm64BitClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -215,23 +234,23 @@
 		),
 		AllowedAttributeMask: 0xffff,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  MultiByteField("ControlBlock", OctetsAttributeType, 0x4000, 16, toOctets("AAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint64Field("DropEvents", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4:  Uint64Field("Octets", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  Uint64Field("Frames", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6:  Uint64Field("BroadcastFrames", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  Uint64Field("MulticastFrames", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8:  Uint64Field("CrcErroredFrames", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
-			9:  Uint64Field("UndersizeFrames", CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
-			10: Uint64Field("OversizeFrames", CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
-			11: Uint64Field("Frames64Octets", CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
-			12: Uint64Field("Frames65To127Octets", CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
-			13: Uint64Field("Frames128To255Octets", CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
-			14: Uint64Field("Frames256To511Octets", CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
-			15: Uint64Field("Frames512To1023Octets", CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, false, false, 15),
-			16: Uint64Field("Frames1024To1518Octets", CounterAttributeType, 0x0001, 0, mapset.NewSetWith(Read), false, false, false, 16),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(EthernetFrameExtendedPm64Bit_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  MultiByteField(EthernetFrameExtendedPm64Bit_ControlBlock, OctetsAttributeType, 0x4000, 16, toOctets("AAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint64Field(EthernetFrameExtendedPm64Bit_DropEvents, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4:  Uint64Field(EthernetFrameExtendedPm64Bit_Octets, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  Uint64Field(EthernetFrameExtendedPm64Bit_Frames, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6:  Uint64Field(EthernetFrameExtendedPm64Bit_BroadcastFrames, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  Uint64Field(EthernetFrameExtendedPm64Bit_MulticastFrames, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8:  Uint64Field(EthernetFrameExtendedPm64Bit_CrcErroredFrames, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			9:  Uint64Field(EthernetFrameExtendedPm64Bit_UndersizeFrames, CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
+			10: Uint64Field(EthernetFrameExtendedPm64Bit_OversizeFrames, CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
+			11: Uint64Field(EthernetFrameExtendedPm64Bit_Frames64Octets, CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
+			12: Uint64Field(EthernetFrameExtendedPm64Bit_Frames65To127Octets, CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
+			13: Uint64Field(EthernetFrameExtendedPm64Bit_Frames128To255Octets, CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
+			14: Uint64Field(EthernetFrameExtendedPm64Bit_Frames256To511Octets, CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
+			15: Uint64Field(EthernetFrameExtendedPm64Bit_Frames512To1023Octets, CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, false, false, 15),
+			16: Uint64Field(EthernetFrameExtendedPm64Bit_Frames1024To1518Octets, CounterAttributeType, 0x0001, 0, mapset.NewSetWith(Read), false, false, false, 16),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/ethernetframeperformancemonitoringhistorydatadownstream.go b/generated/ethernetframeperformancemonitoringhistorydatadownstream.go
index de3bb40..b1101a8 100644
--- a/generated/ethernetframeperformancemonitoringhistorydatadownstream.go
+++ b/generated/ethernetframeperformancemonitoringhistorydatadownstream.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -116,10 +116,29 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const EthernetFramePerformanceMonitoringHistoryDataDownstream_IntervalEndTime = "IntervalEndTime"
+const EthernetFramePerformanceMonitoringHistoryDataDownstream_ThresholdData12Id = "ThresholdData12Id"
+const EthernetFramePerformanceMonitoringHistoryDataDownstream_DropEvents = "DropEvents"
+const EthernetFramePerformanceMonitoringHistoryDataDownstream_Octets = "Octets"
+const EthernetFramePerformanceMonitoringHistoryDataDownstream_Packets = "Packets"
+const EthernetFramePerformanceMonitoringHistoryDataDownstream_BroadcastPackets = "BroadcastPackets"
+const EthernetFramePerformanceMonitoringHistoryDataDownstream_MulticastPackets = "MulticastPackets"
+const EthernetFramePerformanceMonitoringHistoryDataDownstream_CrcErroredPackets = "CrcErroredPackets"
+const EthernetFramePerformanceMonitoringHistoryDataDownstream_UndersizePackets = "UndersizePackets"
+const EthernetFramePerformanceMonitoringHistoryDataDownstream_OversizePackets = "OversizePackets"
+const EthernetFramePerformanceMonitoringHistoryDataDownstream_Packets64Octets = "Packets64Octets"
+const EthernetFramePerformanceMonitoringHistoryDataDownstream_Packets65To127Octets = "Packets65To127Octets"
+const EthernetFramePerformanceMonitoringHistoryDataDownstream_Packets128To255Octets = "Packets128To255Octets"
+const EthernetFramePerformanceMonitoringHistoryDataDownstream_Packets256To511Octets = "Packets256To511Octets"
+const EthernetFramePerformanceMonitoringHistoryDataDownstream_Packets512To1023Octets = "Packets512To1023Octets"
+const EthernetFramePerformanceMonitoringHistoryDataDownstream_Packets1024To1518Octets = "Packets1024To1518Octets"
+
 func init() {
 	ethernetframeperformancemonitoringhistorydatadownstreamBME = &ManagedEntityDefinition{
 		Name:    "EthernetFramePerformanceMonitoringHistoryDataDownstream",
-		ClassID: 321,
+		ClassID: EthernetFramePerformanceMonitoringHistoryDataDownstreamClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -129,23 +148,23 @@
 		),
 		AllowedAttributeMask: 0xffff,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  Uint16Field("ThresholdData12Id", PointerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint32Field("DropEvents", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4:  Uint32Field("Octets", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  Uint32Field("Packets", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6:  Uint32Field("BroadcastPackets", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  Uint32Field("MulticastPackets", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8:  Uint32Field("CrcErroredPackets", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
-			9:  Uint32Field("UndersizePackets", CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
-			10: Uint32Field("OversizePackets", CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
-			11: Uint32Field("Packets64Octets", CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
-			12: Uint32Field("Packets65To127Octets", CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
-			13: Uint32Field("Packets128To255Octets", CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
-			14: Uint32Field("Packets256To511Octets", CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
-			15: Uint32Field("Packets512To1023Octets", CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, false, false, 15),
-			16: Uint32Field("Packets1024To1518Octets", CounterAttributeType, 0x0001, 0, mapset.NewSetWith(Read), false, false, false, 16),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(EthernetFramePerformanceMonitoringHistoryDataDownstream_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  Uint16Field(EthernetFramePerformanceMonitoringHistoryDataDownstream_ThresholdData12Id, PointerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint32Field(EthernetFramePerformanceMonitoringHistoryDataDownstream_DropEvents, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4:  Uint32Field(EthernetFramePerformanceMonitoringHistoryDataDownstream_Octets, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  Uint32Field(EthernetFramePerformanceMonitoringHistoryDataDownstream_Packets, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6:  Uint32Field(EthernetFramePerformanceMonitoringHistoryDataDownstream_BroadcastPackets, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  Uint32Field(EthernetFramePerformanceMonitoringHistoryDataDownstream_MulticastPackets, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8:  Uint32Field(EthernetFramePerformanceMonitoringHistoryDataDownstream_CrcErroredPackets, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			9:  Uint32Field(EthernetFramePerformanceMonitoringHistoryDataDownstream_UndersizePackets, CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
+			10: Uint32Field(EthernetFramePerformanceMonitoringHistoryDataDownstream_OversizePackets, CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
+			11: Uint32Field(EthernetFramePerformanceMonitoringHistoryDataDownstream_Packets64Octets, CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
+			12: Uint32Field(EthernetFramePerformanceMonitoringHistoryDataDownstream_Packets65To127Octets, CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
+			13: Uint32Field(EthernetFramePerformanceMonitoringHistoryDataDownstream_Packets128To255Octets, CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
+			14: Uint32Field(EthernetFramePerformanceMonitoringHistoryDataDownstream_Packets256To511Octets, CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
+			15: Uint32Field(EthernetFramePerformanceMonitoringHistoryDataDownstream_Packets512To1023Octets, CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, false, false, 15),
+			16: Uint32Field(EthernetFramePerformanceMonitoringHistoryDataDownstream_Packets1024To1518Octets, CounterAttributeType, 0x0001, 0, mapset.NewSetWith(Read), false, false, false, 16),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/ethernetframeperformancemonitoringhistorydataupstream.go b/generated/ethernetframeperformancemonitoringhistorydataupstream.go
index 6970c10..54cf90f 100644
--- a/generated/ethernetframeperformancemonitoringhistorydataupstream.go
+++ b/generated/ethernetframeperformancemonitoringhistorydataupstream.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -124,10 +124,29 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const EthernetFramePerformanceMonitoringHistoryDataUpstream_IntervalEndTime = "IntervalEndTime"
+const EthernetFramePerformanceMonitoringHistoryDataUpstream_ThresholdData12Id = "ThresholdData12Id"
+const EthernetFramePerformanceMonitoringHistoryDataUpstream_DropEvents = "DropEvents"
+const EthernetFramePerformanceMonitoringHistoryDataUpstream_Octets = "Octets"
+const EthernetFramePerformanceMonitoringHistoryDataUpstream_Packets = "Packets"
+const EthernetFramePerformanceMonitoringHistoryDataUpstream_BroadcastPackets = "BroadcastPackets"
+const EthernetFramePerformanceMonitoringHistoryDataUpstream_MulticastPackets = "MulticastPackets"
+const EthernetFramePerformanceMonitoringHistoryDataUpstream_CrcErroredPackets = "CrcErroredPackets"
+const EthernetFramePerformanceMonitoringHistoryDataUpstream_UndersizePackets = "UndersizePackets"
+const EthernetFramePerformanceMonitoringHistoryDataUpstream_OversizePackets = "OversizePackets"
+const EthernetFramePerformanceMonitoringHistoryDataUpstream_Packets64Octets = "Packets64Octets"
+const EthernetFramePerformanceMonitoringHistoryDataUpstream_Packets65To127Octets = "Packets65To127Octets"
+const EthernetFramePerformanceMonitoringHistoryDataUpstream_Packets128To255Octets = "Packets128To255Octets"
+const EthernetFramePerformanceMonitoringHistoryDataUpstream_Packets256To511Octets = "Packets256To511Octets"
+const EthernetFramePerformanceMonitoringHistoryDataUpstream_Packets512To1023Octets = "Packets512To1023Octets"
+const EthernetFramePerformanceMonitoringHistoryDataUpstream_Packets1024To1518Octets = "Packets1024To1518Octets"
+
 func init() {
 	ethernetframeperformancemonitoringhistorydataupstreamBME = &ManagedEntityDefinition{
 		Name:    "EthernetFramePerformanceMonitoringHistoryDataUpstream",
-		ClassID: 322,
+		ClassID: EthernetFramePerformanceMonitoringHistoryDataUpstreamClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -137,23 +156,23 @@
 		),
 		AllowedAttributeMask: 0xffff,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  Uint16Field("ThresholdData12Id", PointerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint32Field("DropEvents", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4:  Uint32Field("Octets", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  Uint32Field("Packets", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6:  Uint32Field("BroadcastPackets", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  Uint32Field("MulticastPackets", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8:  Uint32Field("CrcErroredPackets", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
-			9:  Uint32Field("UndersizePackets", CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
-			10: Uint32Field("OversizePackets", CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
-			11: Uint32Field("Packets64Octets", CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
-			12: Uint32Field("Packets65To127Octets", CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
-			13: Uint32Field("Packets128To255Octets", CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
-			14: Uint32Field("Packets256To511Octets", CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
-			15: Uint32Field("Packets512To1023Octets", CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, false, false, 15),
-			16: Uint32Field("Packets1024To1518Octets", CounterAttributeType, 0x0001, 0, mapset.NewSetWith(Read), false, false, false, 16),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(EthernetFramePerformanceMonitoringHistoryDataUpstream_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  Uint16Field(EthernetFramePerformanceMonitoringHistoryDataUpstream_ThresholdData12Id, PointerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint32Field(EthernetFramePerformanceMonitoringHistoryDataUpstream_DropEvents, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4:  Uint32Field(EthernetFramePerformanceMonitoringHistoryDataUpstream_Octets, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  Uint32Field(EthernetFramePerformanceMonitoringHistoryDataUpstream_Packets, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6:  Uint32Field(EthernetFramePerformanceMonitoringHistoryDataUpstream_BroadcastPackets, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  Uint32Field(EthernetFramePerformanceMonitoringHistoryDataUpstream_MulticastPackets, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8:  Uint32Field(EthernetFramePerformanceMonitoringHistoryDataUpstream_CrcErroredPackets, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			9:  Uint32Field(EthernetFramePerformanceMonitoringHistoryDataUpstream_UndersizePackets, CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
+			10: Uint32Field(EthernetFramePerformanceMonitoringHistoryDataUpstream_OversizePackets, CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
+			11: Uint32Field(EthernetFramePerformanceMonitoringHistoryDataUpstream_Packets64Octets, CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
+			12: Uint32Field(EthernetFramePerformanceMonitoringHistoryDataUpstream_Packets65To127Octets, CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
+			13: Uint32Field(EthernetFramePerformanceMonitoringHistoryDataUpstream_Packets128To255Octets, CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
+			14: Uint32Field(EthernetFramePerformanceMonitoringHistoryDataUpstream_Packets256To511Octets, CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
+			15: Uint32Field(EthernetFramePerformanceMonitoringHistoryDataUpstream_Packets512To1023Octets, CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, false, false, 15),
+			16: Uint32Field(EthernetFramePerformanceMonitoringHistoryDataUpstream_Packets1024To1518Octets, CounterAttributeType, 0x0001, 0, mapset.NewSetWith(Read), false, false, false, 16),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/ethernetperformancemonitoringhistorydata.go b/generated/ethernetperformancemonitoringhistorydata.go
index 37e2876..ea56521 100644
--- a/generated/ethernetperformancemonitoringhistorydata.go
+++ b/generated/ethernetperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -118,10 +118,29 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const EthernetPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const EthernetPerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const EthernetPerformanceMonitoringHistoryData_FcsErrors = "FcsErrors"
+const EthernetPerformanceMonitoringHistoryData_ExcessiveCollisionCounter = "ExcessiveCollisionCounter"
+const EthernetPerformanceMonitoringHistoryData_LateCollisionCounter = "LateCollisionCounter"
+const EthernetPerformanceMonitoringHistoryData_FramesTooLong = "FramesTooLong"
+const EthernetPerformanceMonitoringHistoryData_BufferOverflowsOnReceive = "BufferOverflowsOnReceive"
+const EthernetPerformanceMonitoringHistoryData_BufferOverflowsOnTransmit = "BufferOverflowsOnTransmit"
+const EthernetPerformanceMonitoringHistoryData_SingleCollisionFrameCounter = "SingleCollisionFrameCounter"
+const EthernetPerformanceMonitoringHistoryData_MultipleCollisionsFrameCounter = "MultipleCollisionsFrameCounter"
+const EthernetPerformanceMonitoringHistoryData_SqeCounter = "SqeCounter"
+const EthernetPerformanceMonitoringHistoryData_DeferredTransmissionCounter = "DeferredTransmissionCounter"
+const EthernetPerformanceMonitoringHistoryData_InternalMacTransmitErrorCounter = "InternalMacTransmitErrorCounter"
+const EthernetPerformanceMonitoringHistoryData_CarrierSenseErrorCounter = "CarrierSenseErrorCounter"
+const EthernetPerformanceMonitoringHistoryData_AlignmentErrorCounter = "AlignmentErrorCounter"
+const EthernetPerformanceMonitoringHistoryData_InternalMacReceiveErrorCounter = "InternalMacReceiveErrorCounter"
+
 func init() {
 	ethernetperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "EthernetPerformanceMonitoringHistoryData",
-		ClassID: 24,
+		ClassID: EthernetPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -131,23 +150,23 @@
 		),
 		AllowedAttributeMask: 0xffff,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  Uint16Field("ThresholdData12Id", PointerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint32Field("FcsErrors", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4:  Uint32Field("ExcessiveCollisionCounter", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  Uint32Field("LateCollisionCounter", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6:  Uint32Field("FramesTooLong", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  Uint32Field("BufferOverflowsOnReceive", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8:  Uint32Field("BufferOverflowsOnTransmit", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
-			9:  Uint32Field("SingleCollisionFrameCounter", CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
-			10: Uint32Field("MultipleCollisionsFrameCounter", CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
-			11: Uint32Field("SqeCounter", CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
-			12: Uint32Field("DeferredTransmissionCounter", CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
-			13: Uint32Field("InternalMacTransmitErrorCounter", CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
-			14: Uint32Field("CarrierSenseErrorCounter", CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
-			15: Uint32Field("AlignmentErrorCounter", CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, false, false, 15),
-			16: Uint32Field("InternalMacReceiveErrorCounter", CounterAttributeType, 0x0001, 0, mapset.NewSetWith(Read), false, false, false, 16),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(EthernetPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  Uint16Field(EthernetPerformanceMonitoringHistoryData_ThresholdData12Id, PointerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint32Field(EthernetPerformanceMonitoringHistoryData_FcsErrors, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4:  Uint32Field(EthernetPerformanceMonitoringHistoryData_ExcessiveCollisionCounter, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  Uint32Field(EthernetPerformanceMonitoringHistoryData_LateCollisionCounter, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6:  Uint32Field(EthernetPerformanceMonitoringHistoryData_FramesTooLong, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  Uint32Field(EthernetPerformanceMonitoringHistoryData_BufferOverflowsOnReceive, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8:  Uint32Field(EthernetPerformanceMonitoringHistoryData_BufferOverflowsOnTransmit, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			9:  Uint32Field(EthernetPerformanceMonitoringHistoryData_SingleCollisionFrameCounter, CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
+			10: Uint32Field(EthernetPerformanceMonitoringHistoryData_MultipleCollisionsFrameCounter, CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
+			11: Uint32Field(EthernetPerformanceMonitoringHistoryData_SqeCounter, CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
+			12: Uint32Field(EthernetPerformanceMonitoringHistoryData_DeferredTransmissionCounter, CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
+			13: Uint32Field(EthernetPerformanceMonitoringHistoryData_InternalMacTransmitErrorCounter, CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
+			14: Uint32Field(EthernetPerformanceMonitoringHistoryData_CarrierSenseErrorCounter, CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
+			15: Uint32Field(EthernetPerformanceMonitoringHistoryData_AlignmentErrorCounter, CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, false, false, 15),
+			16: Uint32Field(EthernetPerformanceMonitoringHistoryData_InternalMacReceiveErrorCounter, CounterAttributeType, 0x0001, 0, mapset.NewSetWith(Read), false, false, false, 16),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/ethernetperformancemonitoringhistorydata2.go b/generated/ethernetperformancemonitoringhistorydata2.go
index 6bb6fa1..93068cf 100644
--- a/generated/ethernetperformancemonitoringhistorydata2.go
+++ b/generated/ethernetperformancemonitoringhistorydata2.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -64,10 +64,16 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const EthernetPerformanceMonitoringHistoryData2_IntervalEndTime = "IntervalEndTime"
+const EthernetPerformanceMonitoringHistoryData2_ThresholdData12Id = "ThresholdData12Id"
+const EthernetPerformanceMonitoringHistoryData2_PppoeFilteredFrameCounter = "PppoeFilteredFrameCounter"
+
 func init() {
 	ethernetperformancemonitoringhistorydata2BME = &ManagedEntityDefinition{
 		Name:    "EthernetPerformanceMonitoringHistoryData2",
-		ClassID: 89,
+		ClassID: EthernetPerformanceMonitoringHistoryData2ClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -77,10 +83,10 @@
 		),
 		AllowedAttributeMask: 0xe000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: Uint16Field("ThresholdData12Id", PointerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint32Field("PppoeFilteredFrameCounter", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(EthernetPerformanceMonitoringHistoryData2_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: Uint16Field(EthernetPerformanceMonitoringHistoryData2_ThresholdData12Id, PointerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint32Field(EthernetPerformanceMonitoringHistoryData2_PppoeFilteredFrameCounter, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/ethernetperformancemonitoringhistorydata3.go b/generated/ethernetperformancemonitoringhistorydata3.go
index 8149d84..d09db2b 100644
--- a/generated/ethernetperformancemonitoringhistorydata3.go
+++ b/generated/ethernetperformancemonitoringhistorydata3.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -133,10 +133,29 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const EthernetPerformanceMonitoringHistoryData3_IntervalEndTime = "IntervalEndTime"
+const EthernetPerformanceMonitoringHistoryData3_ThresholdData12Id = "ThresholdData12Id"
+const EthernetPerformanceMonitoringHistoryData3_DropEvents = "DropEvents"
+const EthernetPerformanceMonitoringHistoryData3_Octets = "Octets"
+const EthernetPerformanceMonitoringHistoryData3_Packets = "Packets"
+const EthernetPerformanceMonitoringHistoryData3_BroadcastPackets = "BroadcastPackets"
+const EthernetPerformanceMonitoringHistoryData3_MulticastPackets = "MulticastPackets"
+const EthernetPerformanceMonitoringHistoryData3_UndersizePackets = "UndersizePackets"
+const EthernetPerformanceMonitoringHistoryData3_Fragments = "Fragments"
+const EthernetPerformanceMonitoringHistoryData3_Jabbers = "Jabbers"
+const EthernetPerformanceMonitoringHistoryData3_Packets64Octets = "Packets64Octets"
+const EthernetPerformanceMonitoringHistoryData3_Packets65To127Octets = "Packets65To127Octets"
+const EthernetPerformanceMonitoringHistoryData3_Packets128To255Octets = "Packets128To255Octets"
+const EthernetPerformanceMonitoringHistoryData3_Packets256To511Octets = "Packets256To511Octets"
+const EthernetPerformanceMonitoringHistoryData3_Packets512To1023Octets = "Packets512To1023Octets"
+const EthernetPerformanceMonitoringHistoryData3_Packets1024To1518Octets = "Packets1024To1518Octets"
+
 func init() {
 	ethernetperformancemonitoringhistorydata3BME = &ManagedEntityDefinition{
 		Name:    "EthernetPerformanceMonitoringHistoryData3",
-		ClassID: 296,
+		ClassID: EthernetPerformanceMonitoringHistoryData3ClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -146,23 +165,23 @@
 		),
 		AllowedAttributeMask: 0xffff,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  Uint16Field("ThresholdData12Id", PointerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint32Field("DropEvents", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4:  Uint32Field("Octets", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  Uint32Field("Packets", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6:  Uint32Field("BroadcastPackets", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  Uint32Field("MulticastPackets", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8:  Uint32Field("UndersizePackets", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
-			9:  Uint32Field("Fragments", CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
-			10: Uint32Field("Jabbers", CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
-			11: Uint32Field("Packets64Octets", CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
-			12: Uint32Field("Packets65To127Octets", CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
-			13: Uint32Field("Packets128To255Octets", CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
-			14: Uint32Field("Packets256To511Octets", CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
-			15: Uint32Field("Packets512To1023Octets", CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, false, false, 15),
-			16: Uint32Field("Packets1024To1518Octets", CounterAttributeType, 0x0001, 0, mapset.NewSetWith(Read), false, false, false, 16),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(EthernetPerformanceMonitoringHistoryData3_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  Uint16Field(EthernetPerformanceMonitoringHistoryData3_ThresholdData12Id, PointerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint32Field(EthernetPerformanceMonitoringHistoryData3_DropEvents, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4:  Uint32Field(EthernetPerformanceMonitoringHistoryData3_Octets, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  Uint32Field(EthernetPerformanceMonitoringHistoryData3_Packets, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6:  Uint32Field(EthernetPerformanceMonitoringHistoryData3_BroadcastPackets, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  Uint32Field(EthernetPerformanceMonitoringHistoryData3_MulticastPackets, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8:  Uint32Field(EthernetPerformanceMonitoringHistoryData3_UndersizePackets, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			9:  Uint32Field(EthernetPerformanceMonitoringHistoryData3_Fragments, CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
+			10: Uint32Field(EthernetPerformanceMonitoringHistoryData3_Jabbers, CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
+			11: Uint32Field(EthernetPerformanceMonitoringHistoryData3_Packets64Octets, CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
+			12: Uint32Field(EthernetPerformanceMonitoringHistoryData3_Packets65To127Octets, CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
+			13: Uint32Field(EthernetPerformanceMonitoringHistoryData3_Packets128To255Octets, CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
+			14: Uint32Field(EthernetPerformanceMonitoringHistoryData3_Packets256To511Octets, CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
+			15: Uint32Field(EthernetPerformanceMonitoringHistoryData3_Packets512To1023Octets, CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, false, false, 15),
+			16: Uint32Field(EthernetPerformanceMonitoringHistoryData3_Packets1024To1518Octets, CounterAttributeType, 0x0001, 0, mapset.NewSetWith(Read), false, false, false, 16),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/ethernetpseudowireparameters.go b/generated/ethernetpseudowireparameters.go
index cd64e28..a6dd980 100644
--- a/generated/ethernetpseudowireparameters.go
+++ b/generated/ethernetpseudowireparameters.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -54,10 +54,14 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const EthernetPseudowireParameters_Mtu = "Mtu"
+
 func init() {
 	ethernetpseudowireparametersBME = &ManagedEntityDefinition{
 		Name:    "EthernetPseudowireParameters",
-		ClassID: 400,
+		ClassID: EthernetPseudowireParametersClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -66,8 +70,8 @@
 		),
 		AllowedAttributeMask: 0x8000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: Uint16Field("Mtu", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: Uint16Field(EthernetPseudowireParameters_Mtu, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/extendedvlantaggingoperationconfigurationdata.go b/generated/extendedvlantaggingoperationconfigurationdata.go
index 0487c71..d72f000 100644
--- a/generated/extendedvlantaggingoperationconfigurationdata.go
+++ b/generated/extendedvlantaggingoperationconfigurationdata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -554,10 +554,23 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const ExtendedVlanTaggingOperationConfigurationData_AssociationType = "AssociationType"
+const ExtendedVlanTaggingOperationConfigurationData_ReceivedFrameVlanTaggingOperationTableMaxSize = "ReceivedFrameVlanTaggingOperationTableMaxSize"
+const ExtendedVlanTaggingOperationConfigurationData_InputTpid = "InputTpid"
+const ExtendedVlanTaggingOperationConfigurationData_OutputTpid = "OutputTpid"
+const ExtendedVlanTaggingOperationConfigurationData_DownstreamMode = "DownstreamMode"
+const ExtendedVlanTaggingOperationConfigurationData_ReceivedFrameVlanTaggingOperationTable = "ReceivedFrameVlanTaggingOperationTable"
+const ExtendedVlanTaggingOperationConfigurationData_AssociatedMePointer = "AssociatedMePointer"
+const ExtendedVlanTaggingOperationConfigurationData_DscpToPBitMapping = "DscpToPBitMapping"
+const ExtendedVlanTaggingOperationConfigurationData_EnhancedMode = "EnhancedMode"
+const ExtendedVlanTaggingOperationConfigurationData_EnhancedReceivedFrameClassificationAndProcessingTable = "EnhancedReceivedFrameClassificationAndProcessingTable"
+
 func init() {
 	extendedvlantaggingoperationconfigurationdataBME = &ManagedEntityDefinition{
 		Name:    "ExtendedVlanTaggingOperationConfigurationData",
-		ClassID: 171,
+		ClassID: ExtendedVlanTaggingOperationConfigurationDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -568,17 +581,17 @@
 		),
 		AllowedAttributeMask: 0xffc0,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("AssociationType", EnumerationAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2:  Uint16Field("ReceivedFrameVlanTaggingOperationTableMaxSize", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
-			3:  Uint16Field("InputTpid", UnsignedIntegerAttributeType, 0x2000, 34984, mapset.NewSetWith(Read, Write), false, false, false, 3),
-			4:  Uint16Field("OutputTpid", UnsignedIntegerAttributeType, 0x1000, 34984, mapset.NewSetWith(Read, Write), false, false, false, 4),
-			5:  ByteField("DownstreamMode", EnumerationAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
-			6:  TableField("ReceivedFrameVlanTaggingOperationTable", TableAttributeType, 0x0400, TableInfo{nil, 16}, mapset.NewSetWith(Read, Write), false, false, false, 6),
-			7:  Uint16Field("AssociatedMePointer", PointerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
-			8:  MultiByteField("DscpToPBitMapping", OctetsAttributeType, 0x0100, 24, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), mapset.NewSetWith(Read, Write), false, true, false, 8),
-			9:  ByteField("EnhancedMode", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, SetByCreate), false, true, false, 9),
-			10: TableField("EnhancedReceivedFrameClassificationAndProcessingTable", TableAttributeType, 0x0040, TableInfo{nil, 28}, mapset.NewSetWith(Read, Write), false, true, false, 10),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(ExtendedVlanTaggingOperationConfigurationData_AssociationType, EnumerationAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2:  Uint16Field(ExtendedVlanTaggingOperationConfigurationData_ReceivedFrameVlanTaggingOperationTableMaxSize, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
+			3:  Uint16Field(ExtendedVlanTaggingOperationConfigurationData_InputTpid, UnsignedIntegerAttributeType, 0x2000, 34984, mapset.NewSetWith(Read, Write), false, false, false, 3),
+			4:  Uint16Field(ExtendedVlanTaggingOperationConfigurationData_OutputTpid, UnsignedIntegerAttributeType, 0x1000, 34984, mapset.NewSetWith(Read, Write), false, false, false, 4),
+			5:  ByteField(ExtendedVlanTaggingOperationConfigurationData_DownstreamMode, EnumerationAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
+			6:  TableField(ExtendedVlanTaggingOperationConfigurationData_ReceivedFrameVlanTaggingOperationTable, TableAttributeType, 0x0400, TableInfo{nil, 16}, mapset.NewSetWith(Read, Write), false, false, false, 6),
+			7:  Uint16Field(ExtendedVlanTaggingOperationConfigurationData_AssociatedMePointer, PointerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
+			8:  MultiByteField(ExtendedVlanTaggingOperationConfigurationData_DscpToPBitMapping, OctetsAttributeType, 0x0100, 24, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), mapset.NewSetWith(Read, Write), false, true, false, 8),
+			9:  ByteField(ExtendedVlanTaggingOperationConfigurationData_EnhancedMode, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, SetByCreate), false, true, false, 9),
+			10: TableField(ExtendedVlanTaggingOperationConfigurationData_EnhancedReceivedFrameClassificationAndProcessingTable, TableAttributeType, 0x0040, TableInfo{nil, 28}, mapset.NewSetWith(Read, Write), false, true, false, 10),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/fastchannelconfigurationprofile.go b/generated/fastchannelconfigurationprofile.go
index 32de6f9..bd52332 100644
--- a/generated/fastchannelconfigurationprofile.go
+++ b/generated/fastchannelconfigurationprofile.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -130,10 +130,24 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const FastChannelConfigurationProfile_MaximumNetDataRateMaxndr = "MaximumNetDataRateMaxndr"
+const FastChannelConfigurationProfile_MinimumExpectedThroughputMinetr = "MinimumExpectedThroughputMinetr"
+const FastChannelConfigurationProfile_MaximumGammaDataRateMaxgdr = "MaximumGammaDataRateMaxgdr"
+const FastChannelConfigurationProfile_MinimumGammaDataRateMingdr = "MinimumGammaDataRateMingdr"
+const FastChannelConfigurationProfile_MaximumDelayDelaymax = "MaximumDelayDelaymax"
+const FastChannelConfigurationProfile_MinimumImpulseNoiseProtectionAgainstShineInpminShine = "MinimumImpulseNoiseProtectionAgainstShineInpminShine"
+const FastChannelConfigurationProfile_ShineRatioShineratio = "ShineRatioShineratio"
+const FastChannelConfigurationProfile_MinimumImpulseNoiseProtectionAgainstReinInpminRein = "MinimumImpulseNoiseProtectionAgainstReinInpminRein"
+const FastChannelConfigurationProfile_ReinInterArrivalTimeIatRein = "ReinInterArrivalTimeIatRein"
+const FastChannelConfigurationProfile_MinimumReedSolomonRfecNfecRatioRnratio = "MinimumReedSolomonRfecNfecRatioRnratio"
+const FastChannelConfigurationProfile_RtxTcTestmodeRtxTestmode = "RtxTcTestmodeRtxTestmode"
+
 func init() {
 	fastchannelconfigurationprofileBME = &ManagedEntityDefinition{
 		Name:    "FastChannelConfigurationProfile",
-		ClassID: 432,
+		ClassID: FastChannelConfigurationProfileClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -142,18 +156,18 @@
 		),
 		AllowedAttributeMask: 0xffe0,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  Uint32Field("MaximumNetDataRateMaxndr", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
-			2:  Uint32Field("MinimumExpectedThroughputMinetr", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
-			3:  Uint32Field("MaximumGammaDataRateMaxgdr", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
-			4:  Uint32Field("MinimumGammaDataRateMingdr", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, false, false, 4),
-			5:  Uint32Field("MaximumDelayDelaymax", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
-			6:  Uint16Field("MinimumImpulseNoiseProtectionAgainstShineInpminShine", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
-			7:  ByteField("ShineRatioShineratio", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
-			8:  ByteField("MinimumImpulseNoiseProtectionAgainstReinInpminRein", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, false, false, 8),
-			9:  ByteField("ReinInterArrivalTimeIatRein", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, false, false, 9),
-			10: ByteField("MinimumReedSolomonRfecNfecRatioRnratio", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, false, false, 10),
-			11: ByteField("RtxTcTestmodeRtxTestmode", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, true, false, 11),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  Uint32Field(FastChannelConfigurationProfile_MaximumNetDataRateMaxndr, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			2:  Uint32Field(FastChannelConfigurationProfile_MinimumExpectedThroughputMinetr, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
+			3:  Uint32Field(FastChannelConfigurationProfile_MaximumGammaDataRateMaxgdr, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
+			4:  Uint32Field(FastChannelConfigurationProfile_MinimumGammaDataRateMingdr, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, false, false, 4),
+			5:  Uint32Field(FastChannelConfigurationProfile_MaximumDelayDelaymax, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
+			6:  Uint16Field(FastChannelConfigurationProfile_MinimumImpulseNoiseProtectionAgainstShineInpminShine, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
+			7:  ByteField(FastChannelConfigurationProfile_ShineRatioShineratio, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
+			8:  ByteField(FastChannelConfigurationProfile_MinimumImpulseNoiseProtectionAgainstReinInpminRein, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, false, false, 8),
+			9:  ByteField(FastChannelConfigurationProfile_ReinInterArrivalTimeIatRein, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, false, false, 9),
+			10: ByteField(FastChannelConfigurationProfile_MinimumReedSolomonRfecNfecRatioRnratio, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, false, false, 10),
+			11: ByteField(FastChannelConfigurationProfile_RtxTcTestmodeRtxTestmode, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, true, false, 11),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/fastdatapathconfigurationprofile.go b/generated/fastdatapathconfigurationprofile.go
index f7d9546..b759115 100644
--- a/generated/fastdatapathconfigurationprofile.go
+++ b/generated/fastdatapathconfigurationprofile.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -54,10 +54,14 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const FastDataPathConfigurationProfile_TpsTcTestmodeTpsTestmode = "TpsTcTestmodeTpsTestmode"
+
 func init() {
 	fastdatapathconfigurationprofileBME = &ManagedEntityDefinition{
 		Name:    "FastDataPathConfigurationProfile",
-		ClassID: 433,
+		ClassID: FastDataPathConfigurationProfileClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -66,8 +70,8 @@
 		),
 		AllowedAttributeMask: 0x8000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("TpsTcTestmodeTpsTestmode", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(FastDataPathConfigurationProfile_TpsTcTestmodeTpsTestmode, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/fastlineinventoryandstatusdatapart2.go b/generated/fastlineinventoryandstatusdatapart2.go
index ae25b7f..a90dd37 100644
--- a/generated/fastlineinventoryandstatusdatapart2.go
+++ b/generated/fastlineinventoryandstatusdatapart2.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -83,21 +83,29 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const FastLineInventoryAndStatusDataPart2_DateTimeStampingOfLastSuccessfulDownstreamFraOperationStampFrads = "DateTimeStampingOfLastSuccessfulDownstreamFraOperationStampFrads"
+const FastLineInventoryAndStatusDataPart2_DateTimeStampingOfLastSuccessfulUpstreamFraOperationStampFraus = "DateTimeStampingOfLastSuccessfulUpstreamFraOperationStampFraus"
+const FastLineInventoryAndStatusDataPart2_DateTimeStampingOfLastSuccessfulDownstreamRpaOperationStampRpads = "DateTimeStampingOfLastSuccessfulDownstreamRpaOperationStampRpads"
+const FastLineInventoryAndStatusDataPart2_DateTimeStampingOfLastSuccessfulUpstreamRpaOperationStampRpaus = "DateTimeStampingOfLastSuccessfulUpstreamRpaOperationStampRpaus"
+const FastLineInventoryAndStatusDataPart2_DateTimeStampingOfLastSuccessfulDownstreamTigaOperationStampTiga = "DateTimeStampingOfLastSuccessfulDownstreamTigaOperationStampTiga"
+
 func init() {
 	fastlineinventoryandstatusdatapart2BME = &ManagedEntityDefinition{
 		Name:    "FastLineInventoryAndStatusDataPart2",
-		ClassID: 436,
+		ClassID: FastLineInventoryAndStatusDataPart2ClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 		),
 		AllowedAttributeMask: 0xf800,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: MultiByteField("DateTimeStampingOfLastSuccessfulDownstreamFraOperationStampFrads", OctetsAttributeType, 0x8000, 7, toOctets("AAAAAAAAAA=="), mapset.NewSetWith(Read), false, true, false, 1),
-			2: MultiByteField("DateTimeStampingOfLastSuccessfulUpstreamFraOperationStampFraus", OctetsAttributeType, 0x4000, 7, toOctets("AAAAAAAAAA=="), mapset.NewSetWith(Read), false, true, false, 2),
-			3: MultiByteField("DateTimeStampingOfLastSuccessfulDownstreamRpaOperationStampRpads", OctetsAttributeType, 0x2000, 7, toOctets("AAAAAAAAAA=="), mapset.NewSetWith(Read), false, true, false, 3),
-			4: MultiByteField("DateTimeStampingOfLastSuccessfulUpstreamRpaOperationStampRpaus", OctetsAttributeType, 0x1000, 7, toOctets("AAAAAAAAAA=="), mapset.NewSetWith(Read), false, true, false, 4),
-			5: MultiByteField("DateTimeStampingOfLastSuccessfulDownstreamTigaOperationStampTiga", OctetsAttributeType, 0x0800, 7, toOctets("AAAAAAAAAA=="), mapset.NewSetWith(Read), false, true, false, 5),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: MultiByteField(FastLineInventoryAndStatusDataPart2_DateTimeStampingOfLastSuccessfulDownstreamFraOperationStampFrads, OctetsAttributeType, 0x8000, 7, toOctets("AAAAAAAAAA=="), mapset.NewSetWith(Read), false, true, false, 1),
+			2: MultiByteField(FastLineInventoryAndStatusDataPart2_DateTimeStampingOfLastSuccessfulUpstreamFraOperationStampFraus, OctetsAttributeType, 0x4000, 7, toOctets("AAAAAAAAAA=="), mapset.NewSetWith(Read), false, true, false, 2),
+			3: MultiByteField(FastLineInventoryAndStatusDataPart2_DateTimeStampingOfLastSuccessfulDownstreamRpaOperationStampRpads, OctetsAttributeType, 0x2000, 7, toOctets("AAAAAAAAAA=="), mapset.NewSetWith(Read), false, true, false, 3),
+			4: MultiByteField(FastLineInventoryAndStatusDataPart2_DateTimeStampingOfLastSuccessfulUpstreamRpaOperationStampRpaus, OctetsAttributeType, 0x1000, 7, toOctets("AAAAAAAAAA=="), mapset.NewSetWith(Read), false, true, false, 4),
+			5: MultiByteField(FastLineInventoryAndStatusDataPart2_DateTimeStampingOfLastSuccessfulDownstreamTigaOperationStampTiga, OctetsAttributeType, 0x0800, 7, toOctets("AAAAAAAAAA=="), mapset.NewSetWith(Read), false, true, false, 5),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/fastvectoringlineconfigurationextensions.go b/generated/fastvectoringlineconfigurationextensions.go
index acbe8d3..2697de5 100644
--- a/generated/fastvectoringlineconfigurationextensions.go
+++ b/generated/fastvectoringlineconfigurationextensions.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -62,10 +62,15 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const FastVectoringLineConfigurationExtensions_FextCancellationEnablingDisablingUpstreamFextToCancelEnableus = "FextCancellationEnablingDisablingUpstreamFextToCancelEnableus"
+const FastVectoringLineConfigurationExtensions_FextCancellationEnablingDisablingDownstreamFextToCancelEnableds = "FextCancellationEnablingDisablingDownstreamFextToCancelEnableds"
+
 func init() {
 	fastvectoringlineconfigurationextensionsBME = &ManagedEntityDefinition{
 		Name:    "FastVectoringLineConfigurationExtensions",
-		ClassID: 434,
+		ClassID: FastVectoringLineConfigurationExtensionsClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -74,9 +79,9 @@
 		),
 		AllowedAttributeMask: 0xc000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("FextCancellationEnablingDisablingUpstreamFextToCancelEnableus", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
-			2: ByteField("FextCancellationEnablingDisablingDownstreamFextToCancelEnableds", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(FastVectoringLineConfigurationExtensions_FextCancellationEnablingDisablingUpstreamFextToCancelEnableus, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			2: ByteField(FastVectoringLineConfigurationExtensions_FextCancellationEnablingDisablingDownstreamFextToCancelEnableds, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/fastxtu-cperformancemonitoringhistorydata.go b/generated/fastxtu-cperformancemonitoringhistorydata.go
index 0c2d554..a701cee 100644
--- a/generated/fastxtu-cperformancemonitoringhistorydata.go
+++ b/generated/fastxtu-cperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -72,10 +72,18 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const FastXtuCPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const FastXtuCPerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const FastXtuCPerformanceMonitoringHistoryData_SuccessfulFraCounter = "SuccessfulFraCounter"
+const FastXtuCPerformanceMonitoringHistoryData_SuccessfulRpaCounter = "SuccessfulRpaCounter"
+const FastXtuCPerformanceMonitoringHistoryData_SuccessfulTigaCounter = "SuccessfulTigaCounter"
+
 func init() {
 	fastxtucperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "FastXtuCPerformanceMonitoringHistoryData",
-		ClassID: 437,
+		ClassID: FastXtuCPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -84,12 +92,12 @@
 		),
 		AllowedAttributeMask: 0xf800,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint32Field("SuccessfulFraCounter", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4: Uint32Field("SuccessfulRpaCounter", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, true, false, 4),
-			5: Uint32Field("SuccessfulTigaCounter", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, true, false, 5),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(FastXtuCPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: Uint16Field(FastXtuCPerformanceMonitoringHistoryData_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint32Field(FastXtuCPerformanceMonitoringHistoryData_SuccessfulFraCounter, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4: Uint32Field(FastXtuCPerformanceMonitoringHistoryData_SuccessfulRpaCounter, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, true, false, 4),
+			5: Uint32Field(FastXtuCPerformanceMonitoringHistoryData_SuccessfulTigaCounter, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, true, false, 5),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/fastxtu-rperformancemonitoringhistorydata.go b/generated/fastxtu-rperformancemonitoringhistorydata.go
index 579f46f..5d2bde7 100644
--- a/generated/fastxtu-rperformancemonitoringhistorydata.go
+++ b/generated/fastxtu-rperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -67,10 +67,17 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const FastXtuRPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const FastXtuRPerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const FastXtuRPerformanceMonitoringHistoryData_SuccessfulFraCounter = "SuccessfulFraCounter"
+const FastXtuRPerformanceMonitoringHistoryData_SuccessfulRpaCounter = "SuccessfulRpaCounter"
+
 func init() {
 	fastxturperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "FastXtuRPerformanceMonitoringHistoryData",
-		ClassID: 438,
+		ClassID: FastXtuRPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -79,11 +86,11 @@
 		),
 		AllowedAttributeMask: 0xf000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint32Field("SuccessfulFraCounter", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4: Uint32Field("SuccessfulRpaCounter", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, true, false, 4),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(FastXtuRPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: Uint16Field(FastXtuRPerformanceMonitoringHistoryData_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint32Field(FastXtuRPerformanceMonitoringHistoryData_SuccessfulFraCounter, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4: Uint32Field(FastXtuRPerformanceMonitoringHistoryData_SuccessfulRpaCounter, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, true, false, 4),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/fecperformancemonitoringhistorydata.go b/generated/fecperformancemonitoringhistorydata.go
index 1633e36..c39ff6b 100644
--- a/generated/fecperformancemonitoringhistorydata.go
+++ b/generated/fecperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -78,10 +78,20 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const FecPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const FecPerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const FecPerformanceMonitoringHistoryData_CorrectedBytes = "CorrectedBytes"
+const FecPerformanceMonitoringHistoryData_CorrectedCodeWords = "CorrectedCodeWords"
+const FecPerformanceMonitoringHistoryData_UncorrectableCodeWords = "UncorrectableCodeWords"
+const FecPerformanceMonitoringHistoryData_TotalCodeWords = "TotalCodeWords"
+const FecPerformanceMonitoringHistoryData_FecSeconds = "FecSeconds"
+
 func init() {
 	fecperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "FecPerformanceMonitoringHistoryData",
-		ClassID: 312,
+		ClassID: FecPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -91,14 +101,14 @@
 		),
 		AllowedAttributeMask: 0xfe00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint32Field("CorrectedBytes", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4: Uint32Field("CorrectedCodeWords", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5: Uint32Field("UncorrectableCodeWords", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6: Uint32Field("TotalCodeWords", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7: Uint16Field("FecSeconds", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(FecPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: Uint16Field(FecPerformanceMonitoringHistoryData_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint32Field(FecPerformanceMonitoringHistoryData_CorrectedBytes, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4: Uint32Field(FecPerformanceMonitoringHistoryData_CorrectedCodeWords, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5: Uint32Field(FecPerformanceMonitoringHistoryData_UncorrectableCodeWords, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6: Uint32Field(FecPerformanceMonitoringHistoryData_TotalCodeWords, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7: Uint16Field(FecPerformanceMonitoringHistoryData_FecSeconds, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/galethernetperformancemonitoringhistorydata.go b/generated/galethernetperformancemonitoringhistorydata.go
index 808da29..6d3846a 100644
--- a/generated/galethernetperformancemonitoringhistorydata.go
+++ b/generated/galethernetperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -62,10 +62,16 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const GalEthernetPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const GalEthernetPerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const GalEthernetPerformanceMonitoringHistoryData_DiscardedFrames = "DiscardedFrames"
+
 func init() {
 	galethernetperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "GalEthernetPerformanceMonitoringHistoryData",
-		ClassID: 276,
+		ClassID: GalEthernetPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -75,10 +81,10 @@
 		),
 		AllowedAttributeMask: 0xe000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: Uint16Field("ThresholdData12Id", PointerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint32Field("DiscardedFrames", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(GalEthernetPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: Uint16Field(GalEthernetPerformanceMonitoringHistoryData_ThresholdData12Id, PointerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint32Field(GalEthernetPerformanceMonitoringHistoryData_DiscardedFrames, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/galethernetprofile.go b/generated/galethernetprofile.go
index 9521dc6..ea44cee 100644
--- a/generated/galethernetprofile.go
+++ b/generated/galethernetprofile.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -55,10 +55,14 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const GalEthernetProfile_MaximumGemPayloadSize = "MaximumGemPayloadSize"
+
 func init() {
 	galethernetprofileBME = &ManagedEntityDefinition{
 		Name:    "GalEthernetProfile",
-		ClassID: 272,
+		ClassID: GalEthernetProfileClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -67,8 +71,8 @@
 		),
 		AllowedAttributeMask: 0x8000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: Uint16Field("MaximumGemPayloadSize", UnsignedIntegerAttributeType, 0x8000, 48, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: Uint16Field(GalEthernetProfile_MaximumGemPayloadSize, UnsignedIntegerAttributeType, 0x8000, 48, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/geminterworkingterminationpoint.go b/generated/geminterworkingterminationpoint.go
index 575d6f9..c0c9142 100644
--- a/generated/geminterworkingterminationpoint.go
+++ b/generated/geminterworkingterminationpoint.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -151,10 +151,21 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const GemInterworkingTerminationPoint_GemPortNetworkCtpConnectivityPointer = "GemPortNetworkCtpConnectivityPointer"
+const GemInterworkingTerminationPoint_InterworkingOption = "InterworkingOption"
+const GemInterworkingTerminationPoint_ServiceProfilePointer = "ServiceProfilePointer"
+const GemInterworkingTerminationPoint_InterworkingTerminationPointPointer = "InterworkingTerminationPointPointer"
+const GemInterworkingTerminationPoint_PptpCounter = "PptpCounter"
+const GemInterworkingTerminationPoint_OperationalState = "OperationalState"
+const GemInterworkingTerminationPoint_GalProfilePointer = "GalProfilePointer"
+const GemInterworkingTerminationPoint_GalLoopbackConfiguration = "GalLoopbackConfiguration"
+
 func init() {
 	geminterworkingterminationpointBME = &ManagedEntityDefinition{
 		Name:    "GemInterworkingTerminationPoint",
-		ClassID: 266,
+		ClassID: GemInterworkingTerminationPointClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -163,15 +174,15 @@
 		),
 		AllowedAttributeMask: 0xff00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: Uint16Field("GemPortNetworkCtpConnectivityPointer", PointerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2: ByteField("InterworkingOption", EnumerationAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint16Field("ServiceProfilePointer", PointerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
-			4: Uint16Field("InterworkingTerminationPointPointer", PointerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
-			5: ByteField("PptpCounter", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, true, false, 5),
-			6: ByteField("OperationalState", EnumerationAttributeType, 0x0400, 0, mapset.NewSetWith(Read), true, true, false, 6),
-			7: Uint16Field("GalProfilePointer", PointerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
-			8: ByteField("GalLoopbackConfiguration", EnumerationAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, false, false, 8),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: Uint16Field(GemInterworkingTerminationPoint_GemPortNetworkCtpConnectivityPointer, PointerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2: ByteField(GemInterworkingTerminationPoint_InterworkingOption, EnumerationAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint16Field(GemInterworkingTerminationPoint_ServiceProfilePointer, PointerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
+			4: Uint16Field(GemInterworkingTerminationPoint_InterworkingTerminationPointPointer, PointerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
+			5: ByteField(GemInterworkingTerminationPoint_PptpCounter, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, true, false, 5),
+			6: ByteField(GemInterworkingTerminationPoint_OperationalState, EnumerationAttributeType, 0x0400, 0, mapset.NewSetWith(Read), true, true, false, 6),
+			7: Uint16Field(GemInterworkingTerminationPoint_GalProfilePointer, PointerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
+			8: ByteField(GemInterworkingTerminationPoint_GalLoopbackConfiguration, EnumerationAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, false, false, 8),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/gemportnetworkctp.go b/generated/gemportnetworkctp.go
index 627e052..ad0766c 100644
--- a/generated/gemportnetworkctp.go
+++ b/generated/gemportnetworkctp.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -147,10 +147,23 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const GemPortNetworkCtp_PortId = "PortId"
+const GemPortNetworkCtp_TContPointer = "TContPointer"
+const GemPortNetworkCtp_Direction = "Direction"
+const GemPortNetworkCtp_TrafficManagementPointerForUpstream = "TrafficManagementPointerForUpstream"
+const GemPortNetworkCtp_TrafficDescriptorProfilePointerForUpstream = "TrafficDescriptorProfilePointerForUpstream"
+const GemPortNetworkCtp_UniCounter = "UniCounter"
+const GemPortNetworkCtp_PriorityQueuePointerForDownStream = "PriorityQueuePointerForDownStream"
+const GemPortNetworkCtp_EncryptionState = "EncryptionState"
+const GemPortNetworkCtp_TrafficDescriptorProfilePointerForDownstream = "TrafficDescriptorProfilePointerForDownstream"
+const GemPortNetworkCtp_EncryptionKeyRing = "EncryptionKeyRing"
+
 func init() {
 	gemportnetworkctpBME = &ManagedEntityDefinition{
 		Name:    "GemPortNetworkCtp",
-		ClassID: 268,
+		ClassID: GemPortNetworkCtpClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -159,17 +172,17 @@
 		),
 		AllowedAttributeMask: 0xffc0,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  Uint16Field("PortId", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2:  Uint16Field("TContPointer", PointerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  ByteField("Direction", EnumerationAttributeType, 0x2000, 3, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
-			4:  Uint16Field("TrafficManagementPointerForUpstream", PointerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
-			5:  Uint16Field("TrafficDescriptorProfilePointerForUpstream", PointerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 5),
-			6:  ByteField("UniCounter", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, true, false, 6),
-			7:  Uint16Field("PriorityQueuePointerForDownStream", PointerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
-			8:  ByteField("EncryptionState", EnumerationAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, true, false, 8),
-			9:  Uint16Field("TrafficDescriptorProfilePointerForDownstream", PointerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 9),
-			10: ByteField("EncryptionKeyRing", EnumerationAttributeType, 0x0040, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 10),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  Uint16Field(GemPortNetworkCtp_PortId, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2:  Uint16Field(GemPortNetworkCtp_TContPointer, PointerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  ByteField(GemPortNetworkCtp_Direction, EnumerationAttributeType, 0x2000, 3, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
+			4:  Uint16Field(GemPortNetworkCtp_TrafficManagementPointerForUpstream, PointerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
+			5:  Uint16Field(GemPortNetworkCtp_TrafficDescriptorProfilePointerForUpstream, PointerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 5),
+			6:  ByteField(GemPortNetworkCtp_UniCounter, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, true, false, 6),
+			7:  Uint16Field(GemPortNetworkCtp_PriorityQueuePointerForDownStream, PointerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
+			8:  ByteField(GemPortNetworkCtp_EncryptionState, EnumerationAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, true, false, 8),
+			9:  Uint16Field(GemPortNetworkCtp_TrafficDescriptorProfilePointerForDownstream, PointerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 9),
+			10: ByteField(GemPortNetworkCtp_EncryptionKeyRing, EnumerationAttributeType, 0x0040, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 10),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/gemportnetworkctpperformancemonitoringhistorydata.go b/generated/gemportnetworkctpperformancemonitoringhistorydata.go
index ec04ef9..8e5a586 100644
--- a/generated/gemportnetworkctpperformancemonitoringhistorydata.go
+++ b/generated/gemportnetworkctpperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -96,10 +96,20 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const GemPortNetworkCtpPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const GemPortNetworkCtpPerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const GemPortNetworkCtpPerformanceMonitoringHistoryData_TransmittedGemFrames = "TransmittedGemFrames"
+const GemPortNetworkCtpPerformanceMonitoringHistoryData_ReceivedGemFrames = "ReceivedGemFrames"
+const GemPortNetworkCtpPerformanceMonitoringHistoryData_ReceivedPayloadBytes = "ReceivedPayloadBytes"
+const GemPortNetworkCtpPerformanceMonitoringHistoryData_TransmittedPayloadBytes = "TransmittedPayloadBytes"
+const GemPortNetworkCtpPerformanceMonitoringHistoryData_EncryptionKeyErrors = "EncryptionKeyErrors"
+
 func init() {
 	gemportnetworkctpperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "GemPortNetworkCtpPerformanceMonitoringHistoryData",
-		ClassID: 341,
+		ClassID: GemPortNetworkCtpPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -109,14 +119,14 @@
 		),
 		AllowedAttributeMask: 0xfe00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: Uint16Field("ThresholdData12Id", PointerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint32Field("TransmittedGemFrames", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4: Uint32Field("ReceivedGemFrames", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5: Uint64Field("ReceivedPayloadBytes", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6: Uint64Field("TransmittedPayloadBytes", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7: Uint32Field("EncryptionKeyErrors", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, true, false, 7),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(GemPortNetworkCtpPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: Uint16Field(GemPortNetworkCtpPerformanceMonitoringHistoryData_ThresholdData12Id, PointerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint32Field(GemPortNetworkCtpPerformanceMonitoringHistoryData_TransmittedGemFrames, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4: Uint32Field(GemPortNetworkCtpPerformanceMonitoringHistoryData_ReceivedGemFrames, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5: Uint64Field(GemPortNetworkCtpPerformanceMonitoringHistoryData_ReceivedPayloadBytes, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6: Uint64Field(GemPortNetworkCtpPerformanceMonitoringHistoryData_TransmittedPayloadBytes, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7: Uint32Field(GemPortNetworkCtpPerformanceMonitoringHistoryData_EncryptionKeyErrors, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, true, false, 7),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/generalpurposebuffer.go b/generated/generalpurposebuffer.go
index 90cd13e..5d038bc 100644
--- a/generated/generalpurposebuffer.go
+++ b/generated/generalpurposebuffer.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -73,10 +73,15 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const GeneralPurposeBuffer_MaximumSize = "MaximumSize"
+const GeneralPurposeBuffer_BufferTable = "BufferTable"
+
 func init() {
 	generalpurposebufferBME = &ManagedEntityDefinition{
 		Name:    "GeneralPurposeBuffer",
-		ClassID: 308,
+		ClassID: GeneralPurposeBufferClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -85,9 +90,9 @@
 		),
 		AllowedAttributeMask: 0xc000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: Uint32Field("MaximumSize", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 1),
-			2: TableField("BufferTable", TableAttributeType, 0x4000, TableInfo{nil, -1}, mapset.NewSetWith(Read), true, false, false, 2),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: Uint32Field(GeneralPurposeBuffer_MaximumSize, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 1),
+			2: TableField(GeneralPurposeBuffer_BufferTable, TableAttributeType, 0x4000, TableInfo{nil, -1}, mapset.NewSetWith(Read), true, false, false, 2),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/ieee802.1pmapperserviceprofile.go b/generated/ieee802.1pmapperserviceprofile.go
index 989c783..ad61f87 100644
--- a/generated/ieee802.1pmapperserviceprofile.go
+++ b/generated/ieee802.1pmapperserviceprofile.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -154,10 +154,26 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const Ieee8021PMapperServiceProfile_TpPointer = "TpPointer"
+const Ieee8021PMapperServiceProfile_InterworkTpPointerForPBitPriority0 = "InterworkTpPointerForPBitPriority0"
+const Ieee8021PMapperServiceProfile_InterworkTpPointerForPBitPriority1 = "InterworkTpPointerForPBitPriority1"
+const Ieee8021PMapperServiceProfile_InterworkTpPointerForPBitPriority2 = "InterworkTpPointerForPBitPriority2"
+const Ieee8021PMapperServiceProfile_InterworkTpPointerForPBitPriority3 = "InterworkTpPointerForPBitPriority3"
+const Ieee8021PMapperServiceProfile_InterworkTpPointerForPBitPriority4 = "InterworkTpPointerForPBitPriority4"
+const Ieee8021PMapperServiceProfile_InterworkTpPointerForPBitPriority5 = "InterworkTpPointerForPBitPriority5"
+const Ieee8021PMapperServiceProfile_InterworkTpPointerForPBitPriority6 = "InterworkTpPointerForPBitPriority6"
+const Ieee8021PMapperServiceProfile_InterworkTpPointerForPBitPriority7 = "InterworkTpPointerForPBitPriority7"
+const Ieee8021PMapperServiceProfile_UnmarkedFrameOption = "UnmarkedFrameOption"
+const Ieee8021PMapperServiceProfile_DscpToPBitMapping = "DscpToPBitMapping"
+const Ieee8021PMapperServiceProfile_DefaultPBitAssumption = "DefaultPBitAssumption"
+const Ieee8021PMapperServiceProfile_TpType = "TpType"
+
 func init() {
 	ieee8021pmapperserviceprofileBME = &ManagedEntityDefinition{
 		Name:    "Ieee8021PMapperServiceProfile",
-		ClassID: 130,
+		ClassID: Ieee8021PMapperServiceProfileClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -166,20 +182,20 @@
 		),
 		AllowedAttributeMask: 0xfff8,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  Uint16Field("TpPointer", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2:  Uint16Field("InterworkTpPointerForPBitPriority0", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint16Field("InterworkTpPointerForPBitPriority1", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
-			4:  Uint16Field("InterworkTpPointerForPBitPriority2", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
-			5:  Uint16Field("InterworkTpPointerForPBitPriority3", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
-			6:  Uint16Field("InterworkTpPointerForPBitPriority4", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 6),
-			7:  Uint16Field("InterworkTpPointerForPBitPriority5", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
-			8:  Uint16Field("InterworkTpPointerForPBitPriority6", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 8),
-			9:  Uint16Field("InterworkTpPointerForPBitPriority7", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 9),
-			10: ByteField("UnmarkedFrameOption", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 10),
-			11: MultiByteField("DscpToPBitMapping", OctetsAttributeType, 0x0020, 24, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), mapset.NewSetWith(Read, Write), false, false, false, 11),
-			12: ByteField("DefaultPBitAssumption", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 12),
-			13: ByteField("TpType", UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 13),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  Uint16Field(Ieee8021PMapperServiceProfile_TpPointer, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2:  Uint16Field(Ieee8021PMapperServiceProfile_InterworkTpPointerForPBitPriority0, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint16Field(Ieee8021PMapperServiceProfile_InterworkTpPointerForPBitPriority1, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
+			4:  Uint16Field(Ieee8021PMapperServiceProfile_InterworkTpPointerForPBitPriority2, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
+			5:  Uint16Field(Ieee8021PMapperServiceProfile_InterworkTpPointerForPBitPriority3, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
+			6:  Uint16Field(Ieee8021PMapperServiceProfile_InterworkTpPointerForPBitPriority4, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 6),
+			7:  Uint16Field(Ieee8021PMapperServiceProfile_InterworkTpPointerForPBitPriority5, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
+			8:  Uint16Field(Ieee8021PMapperServiceProfile_InterworkTpPointerForPBitPriority6, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 8),
+			9:  Uint16Field(Ieee8021PMapperServiceProfile_InterworkTpPointerForPBitPriority7, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 9),
+			10: ByteField(Ieee8021PMapperServiceProfile_UnmarkedFrameOption, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 10),
+			11: MultiByteField(Ieee8021PMapperServiceProfile_DscpToPBitMapping, OctetsAttributeType, 0x0020, 24, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), mapset.NewSetWith(Read, Write), false, false, false, 11),
+			12: ByteField(Ieee8021PMapperServiceProfile_DefaultPBitAssumption, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 12),
+			13: ByteField(Ieee8021PMapperServiceProfile_TpType, UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 13),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/interworkingvccterminationpoint.go b/generated/interworkingvccterminationpoint.go
index 0b1e18a..db27f38 100644
--- a/generated/interworkingvccterminationpoint.go
+++ b/generated/interworkingvccterminationpoint.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -96,10 +96,22 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const InterworkingVccTerminationPoint_VciValue = "VciValue"
+const InterworkingVccTerminationPoint_VpNetworkCtpConnectivityPointer = "VpNetworkCtpConnectivityPointer"
+const InterworkingVccTerminationPoint_Deprecated1 = "Deprecated1"
+const InterworkingVccTerminationPoint_Deprecated2 = "Deprecated2"
+const InterworkingVccTerminationPoint_Aal5ProfilePointer = "Aal5ProfilePointer"
+const InterworkingVccTerminationPoint_Deprecated3 = "Deprecated3"
+const InterworkingVccTerminationPoint_AalLoopbackConfiguration = "AalLoopbackConfiguration"
+const InterworkingVccTerminationPoint_PptpCounter = "PptpCounter"
+const InterworkingVccTerminationPoint_OperationalState = "OperationalState"
+
 func init() {
 	interworkingvccterminationpointBME = &ManagedEntityDefinition{
 		Name:    "InterworkingVccTerminationPoint",
-		ClassID: 14,
+		ClassID: InterworkingVccTerminationPointClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -108,16 +120,16 @@
 		),
 		AllowedAttributeMask: 0xff80,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: Uint16Field("VciValue", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2: Uint16Field("VpNetworkCtpConnectivityPointer", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: ByteField("Deprecated1", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, true, 3),
-			4: Uint16Field("Deprecated2", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, true, 4),
-			5: Uint16Field("Aal5ProfilePointer", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
-			6: Uint16Field("Deprecated3", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, true, 6),
-			7: ByteField("AalLoopbackConfiguration", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
-			8: ByteField("PptpCounter", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, true, false, 8),
-			9: ByteField("OperationalState", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), true, true, false, 9),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: Uint16Field(InterworkingVccTerminationPoint_VciValue, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2: Uint16Field(InterworkingVccTerminationPoint_VpNetworkCtpConnectivityPointer, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: ByteField(InterworkingVccTerminationPoint_Deprecated1, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, true, 3),
+			4: Uint16Field(InterworkingVccTerminationPoint_Deprecated2, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, true, 4),
+			5: Uint16Field(InterworkingVccTerminationPoint_Aal5ProfilePointer, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
+			6: Uint16Field(InterworkingVccTerminationPoint_Deprecated3, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, true, 6),
+			7: ByteField(InterworkingVccTerminationPoint_AalLoopbackConfiguration, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
+			8: ByteField(InterworkingVccTerminationPoint_PptpCounter, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, true, false, 8),
+			9: ByteField(InterworkingVccTerminationPoint_OperationalState, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), true, true, false, 9),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/iphostconfigdata.go b/generated/iphostconfigdata.go
index 7786d91..0c6c014 100644
--- a/generated/iphostconfigdata.go
+++ b/generated/iphostconfigdata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -198,10 +198,29 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const IpHostConfigData_IpOptions = "IpOptions"
+const IpHostConfigData_MacAddress = "MacAddress"
+const IpHostConfigData_OnuIdentifier = "OnuIdentifier"
+const IpHostConfigData_IpAddress = "IpAddress"
+const IpHostConfigData_Mask = "Mask"
+const IpHostConfigData_Gateway = "Gateway"
+const IpHostConfigData_PrimaryDns = "PrimaryDns"
+const IpHostConfigData_SecondaryDns = "SecondaryDns"
+const IpHostConfigData_CurrentAddress = "CurrentAddress"
+const IpHostConfigData_CurrentMask = "CurrentMask"
+const IpHostConfigData_CurrentGateway = "CurrentGateway"
+const IpHostConfigData_CurrentPrimaryDns = "CurrentPrimaryDns"
+const IpHostConfigData_CurrentSecondaryDns = "CurrentSecondaryDns"
+const IpHostConfigData_DomainName = "DomainName"
+const IpHostConfigData_HostName = "HostName"
+const IpHostConfigData_RelayAgentOptions = "RelayAgentOptions"
+
 func init() {
 	iphostconfigdataBME = &ManagedEntityDefinition{
 		Name:    "IpHostConfigData",
-		ClassID: 134,
+		ClassID: IpHostConfigDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
@@ -209,23 +228,23 @@
 		),
 		AllowedAttributeMask: 0xffff,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  ByteField("IpOptions", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
-			2:  MultiByteField("MacAddress", OctetsAttributeType, 0x4000, 6, toOctets("AAAAAAAA"), mapset.NewSetWith(Read), false, false, false, 2),
-			3:  MultiByteField("OnuIdentifier", OctetsAttributeType, 0x2000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 3),
-			4:  Uint32Field("IpAddress", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, false, false, 4),
-			5:  Uint32Field("Mask", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
-			6:  Uint32Field("Gateway", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
-			7:  Uint32Field("PrimaryDns", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
-			8:  Uint32Field("SecondaryDns", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, false, false, 8),
-			9:  Uint32Field("CurrentAddress", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), true, true, false, 9),
-			10: Uint32Field("CurrentMask", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), true, true, false, 10),
-			11: Uint32Field("CurrentGateway", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read), true, true, false, 11),
-			12: Uint32Field("CurrentPrimaryDns", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read), true, true, false, 12),
-			13: Uint32Field("CurrentSecondaryDns", UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read), true, true, false, 13),
-			14: MultiByteField("DomainName", OctetsAttributeType, 0x0004, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), true, false, false, 14),
-			15: MultiByteField("HostName", OctetsAttributeType, 0x0002, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), true, false, false, 15),
-			16: Uint16Field("RelayAgentOptions", UnsignedIntegerAttributeType, 0x0001, 0, mapset.NewSetWith(Read, Write), true, true, false, 16),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  ByteField(IpHostConfigData_IpOptions, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			2:  MultiByteField(IpHostConfigData_MacAddress, OctetsAttributeType, 0x4000, 6, toOctets("AAAAAAAA"), mapset.NewSetWith(Read), false, false, false, 2),
+			3:  MultiByteField(IpHostConfigData_OnuIdentifier, OctetsAttributeType, 0x2000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 3),
+			4:  Uint32Field(IpHostConfigData_IpAddress, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, false, false, 4),
+			5:  Uint32Field(IpHostConfigData_Mask, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
+			6:  Uint32Field(IpHostConfigData_Gateway, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
+			7:  Uint32Field(IpHostConfigData_PrimaryDns, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
+			8:  Uint32Field(IpHostConfigData_SecondaryDns, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, false, false, 8),
+			9:  Uint32Field(IpHostConfigData_CurrentAddress, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), true, true, false, 9),
+			10: Uint32Field(IpHostConfigData_CurrentMask, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), true, true, false, 10),
+			11: Uint32Field(IpHostConfigData_CurrentGateway, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read), true, true, false, 11),
+			12: Uint32Field(IpHostConfigData_CurrentPrimaryDns, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read), true, true, false, 12),
+			13: Uint32Field(IpHostConfigData_CurrentSecondaryDns, UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read), true, true, false, 13),
+			14: MultiByteField(IpHostConfigData_DomainName, OctetsAttributeType, 0x0004, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), true, false, false, 14),
+			15: MultiByteField(IpHostConfigData_HostName, OctetsAttributeType, 0x0002, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), true, false, false, 15),
+			16: Uint16Field(IpHostConfigData_RelayAgentOptions, UnsignedIntegerAttributeType, 0x0001, 0, mapset.NewSetWith(Read, Write), true, true, false, 16),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/iphostperformancemonitoringhistorydata.go b/generated/iphostperformancemonitoringhistorydata.go
index 0622bf5..47fa1b7 100644
--- a/generated/iphostperformancemonitoringhistorydata.go
+++ b/generated/iphostperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -82,10 +82,21 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const IpHostPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const IpHostPerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const IpHostPerformanceMonitoringHistoryData_IcmpErrors = "IcmpErrors"
+const IpHostPerformanceMonitoringHistoryData_DnsErrors = "DnsErrors"
+const IpHostPerformanceMonitoringHistoryData_DhcpTimeouts = "DhcpTimeouts"
+const IpHostPerformanceMonitoringHistoryData_IpAddressConflict = "IpAddressConflict"
+const IpHostPerformanceMonitoringHistoryData_OutOfMemory = "OutOfMemory"
+const IpHostPerformanceMonitoringHistoryData_InternalError = "InternalError"
+
 func init() {
 	iphostperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "IpHostPerformanceMonitoringHistoryData",
-		ClassID: 135,
+		ClassID: IpHostPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -95,15 +106,15 @@
 		),
 		AllowedAttributeMask: 0xff00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint32Field("IcmpErrors", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4: Uint32Field("DnsErrors", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5: Uint16Field("DhcpTimeouts", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, true, false, 5),
-			6: Uint16Field("IpAddressConflict", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, true, false, 6),
-			7: Uint16Field("OutOfMemory", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, true, false, 7),
-			8: Uint16Field("InternalError", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, true, false, 8),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(IpHostPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: Uint16Field(IpHostPerformanceMonitoringHistoryData_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint32Field(IpHostPerformanceMonitoringHistoryData_IcmpErrors, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4: Uint32Field(IpHostPerformanceMonitoringHistoryData_DnsErrors, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5: Uint16Field(IpHostPerformanceMonitoringHistoryData_DhcpTimeouts, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, true, false, 5),
+			6: Uint16Field(IpHostPerformanceMonitoringHistoryData_IpAddressConflict, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, true, false, 6),
+			7: Uint16Field(IpHostPerformanceMonitoringHistoryData_OutOfMemory, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, true, false, 7),
+			8: Uint16Field(IpHostPerformanceMonitoringHistoryData_InternalError, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, true, false, 8),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/largestring.go b/generated/largestring.go
index 668ec03..db0a535 100644
--- a/generated/largestring.go
+++ b/generated/largestring.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -128,10 +128,29 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const LargeString_NumberOfParts = "NumberOfParts"
+const LargeString_Part1 = "Part1"
+const LargeString_Part2 = "Part2"
+const LargeString_Part3 = "Part3"
+const LargeString_Part4 = "Part4"
+const LargeString_Part5 = "Part5"
+const LargeString_Part6 = "Part6"
+const LargeString_Part7 = "Part7"
+const LargeString_Part8 = "Part8"
+const LargeString_Part9 = "Part9"
+const LargeString_Part10 = "Part10"
+const LargeString_Part11 = "Part11"
+const LargeString_Part12 = "Part12"
+const LargeString_Part13 = "Part13"
+const LargeString_Part14 = "Part14"
+const LargeString_Part15 = "Part15"
+
 func init() {
 	largestringBME = &ManagedEntityDefinition{
 		Name:    "LargeString",
-		ClassID: 157,
+		ClassID: LargeStringClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -140,23 +159,23 @@
 		),
 		AllowedAttributeMask: 0xffff,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("NumberOfParts", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), true, false, false, 1),
-			2:  MultiByteField("Part1", OctetsAttributeType, 0x4000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), true, false, false, 2),
-			3:  MultiByteField("Part2", OctetsAttributeType, 0x2000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), true, false, false, 3),
-			4:  MultiByteField("Part3", OctetsAttributeType, 0x1000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), true, false, false, 4),
-			5:  MultiByteField("Part4", OctetsAttributeType, 0x0800, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), true, false, false, 5),
-			6:  MultiByteField("Part5", OctetsAttributeType, 0x0400, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), true, false, false, 6),
-			7:  MultiByteField("Part6", OctetsAttributeType, 0x0200, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), true, false, false, 7),
-			8:  MultiByteField("Part7", OctetsAttributeType, 0x0100, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), true, false, false, 8),
-			9:  MultiByteField("Part8", OctetsAttributeType, 0x0080, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), true, false, false, 9),
-			10: MultiByteField("Part9", OctetsAttributeType, 0x0040, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), true, false, false, 10),
-			11: MultiByteField("Part10", OctetsAttributeType, 0x0020, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), true, false, false, 11),
-			12: MultiByteField("Part11", OctetsAttributeType, 0x0010, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), true, false, false, 12),
-			13: MultiByteField("Part12", OctetsAttributeType, 0x0008, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), true, false, false, 13),
-			14: MultiByteField("Part13", OctetsAttributeType, 0x0004, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), true, false, false, 14),
-			15: MultiByteField("Part14", OctetsAttributeType, 0x0002, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), true, false, false, 15),
-			16: MultiByteField("Part15", OctetsAttributeType, 0x0001, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), true, false, false, 16),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(LargeString_NumberOfParts, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), true, false, false, 1),
+			2:  MultiByteField(LargeString_Part1, OctetsAttributeType, 0x4000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), true, false, false, 2),
+			3:  MultiByteField(LargeString_Part2, OctetsAttributeType, 0x2000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), true, false, false, 3),
+			4:  MultiByteField(LargeString_Part3, OctetsAttributeType, 0x1000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), true, false, false, 4),
+			5:  MultiByteField(LargeString_Part4, OctetsAttributeType, 0x0800, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), true, false, false, 5),
+			6:  MultiByteField(LargeString_Part5, OctetsAttributeType, 0x0400, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), true, false, false, 6),
+			7:  MultiByteField(LargeString_Part6, OctetsAttributeType, 0x0200, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), true, false, false, 7),
+			8:  MultiByteField(LargeString_Part7, OctetsAttributeType, 0x0100, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), true, false, false, 8),
+			9:  MultiByteField(LargeString_Part8, OctetsAttributeType, 0x0080, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), true, false, false, 9),
+			10: MultiByteField(LargeString_Part9, OctetsAttributeType, 0x0040, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), true, false, false, 10),
+			11: MultiByteField(LargeString_Part10, OctetsAttributeType, 0x0020, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), true, false, false, 11),
+			12: MultiByteField(LargeString_Part11, OctetsAttributeType, 0x0010, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), true, false, false, 12),
+			13: MultiByteField(LargeString_Part12, OctetsAttributeType, 0x0008, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), true, false, false, 13),
+			14: MultiByteField(LargeString_Part13, OctetsAttributeType, 0x0004, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), true, false, false, 14),
+			15: MultiByteField(LargeString_Part14, OctetsAttributeType, 0x0002, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), true, false, false, 15),
+			16: MultiByteField(LargeString_Part15, OctetsAttributeType, 0x0001, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), true, false, false, 16),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/macbridgeconfigurationdata.go b/generated/macbridgeconfigurationdata.go
index 0431803..76b5fda 100644
--- a/generated/macbridgeconfigurationdata.go
+++ b/generated/macbridgeconfigurationdata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -86,24 +86,35 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const MacBridgeConfigurationData_BridgeMacAddress = "BridgeMacAddress"
+const MacBridgeConfigurationData_BridgePriority = "BridgePriority"
+const MacBridgeConfigurationData_DesignatedRoot = "DesignatedRoot"
+const MacBridgeConfigurationData_RootPathCost = "RootPathCost"
+const MacBridgeConfigurationData_BridgePortCount = "BridgePortCount"
+const MacBridgeConfigurationData_RootPortNum = "RootPortNum"
+const MacBridgeConfigurationData_HelloTime = "HelloTime"
+const MacBridgeConfigurationData_ForwardDelay = "ForwardDelay"
+
 func init() {
 	macbridgeconfigurationdataBME = &ManagedEntityDefinition{
 		Name:    "MacBridgeConfigurationData",
-		ClassID: 46,
+		ClassID: MacBridgeConfigurationDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 		),
 		AllowedAttributeMask: 0xff00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: MultiByteField("BridgeMacAddress", OctetsAttributeType, 0x8000, 6, toOctets("AAAAAAAA"), mapset.NewSetWith(Read), false, false, false, 1),
-			2: Uint16Field("BridgePriority", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
-			3: MultiByteField("DesignatedRoot", OctetsAttributeType, 0x2000, 8, toOctets("AAAAAAAAAAA="), mapset.NewSetWith(Read), false, false, false, 3),
-			4: Uint32Field("RootPathCost", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5: ByteField("BridgePortCount", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6: Uint16Field("RootPortNum", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7: Uint16Field("HelloTime", UnsignedIntegerAttributeType, 0x0200, 256, mapset.NewSetWith(Read), false, true, false, 7),
-			8: Uint16Field("ForwardDelay", UnsignedIntegerAttributeType, 0x0100, 1024, mapset.NewSetWith(Read), false, true, false, 8),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: MultiByteField(MacBridgeConfigurationData_BridgeMacAddress, OctetsAttributeType, 0x8000, 6, toOctets("AAAAAAAA"), mapset.NewSetWith(Read), false, false, false, 1),
+			2: Uint16Field(MacBridgeConfigurationData_BridgePriority, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
+			3: MultiByteField(MacBridgeConfigurationData_DesignatedRoot, OctetsAttributeType, 0x2000, 8, toOctets("AAAAAAAAAAA="), mapset.NewSetWith(Read), false, false, false, 3),
+			4: Uint32Field(MacBridgeConfigurationData_RootPathCost, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5: ByteField(MacBridgeConfigurationData_BridgePortCount, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6: Uint16Field(MacBridgeConfigurationData_RootPortNum, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7: Uint16Field(MacBridgeConfigurationData_HelloTime, UnsignedIntegerAttributeType, 0x0200, 256, mapset.NewSetWith(Read), false, true, false, 7),
+			8: Uint16Field(MacBridgeConfigurationData_ForwardDelay, UnsignedIntegerAttributeType, 0x0100, 1024, mapset.NewSetWith(Read), false, true, false, 8),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/macbridgeperformancemonitoringhistorydata.go b/generated/macbridgeperformancemonitoringhistorydata.go
index c80f91f..e5212d7 100644
--- a/generated/macbridgeperformancemonitoringhistorydata.go
+++ b/generated/macbridgeperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -66,10 +66,16 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const MacBridgePerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const MacBridgePerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const MacBridgePerformanceMonitoringHistoryData_BridgeLearningEntryDiscardCount = "BridgeLearningEntryDiscardCount"
+
 func init() {
 	macbridgeperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "MacBridgePerformanceMonitoringHistoryData",
-		ClassID: 51,
+		ClassID: MacBridgePerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -79,10 +85,10 @@
 		),
 		AllowedAttributeMask: 0xe000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: Uint16Field("ThresholdData12Id", PointerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint32Field("BridgeLearningEntryDiscardCount", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(MacBridgePerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: Uint16Field(MacBridgePerformanceMonitoringHistoryData_ThresholdData12Id, PointerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint32Field(MacBridgePerformanceMonitoringHistoryData_BridgeLearningEntryDiscardCount, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/macbridgeportbridgetabledata.go b/generated/macbridgeportbridgetabledata.go
index 50e8610..566a5af 100644
--- a/generated/macbridgeportbridgetabledata.go
+++ b/generated/macbridgeportbridgetabledata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -80,18 +80,22 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const MacBridgePortBridgeTableData_BridgeTable = "BridgeTable"
+
 func init() {
 	macbridgeportbridgetabledataBME = &ManagedEntityDefinition{
 		Name:    "MacBridgePortBridgeTableData",
-		ClassID: 50,
+		ClassID: MacBridgePortBridgeTableDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			GetNext,
 		),
 		AllowedAttributeMask: 0x8000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: TableField("BridgeTable", TableAttributeType, 0x8000, TableInfo{nil, 8}, mapset.NewSetWith(Read), false, false, false, 1),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: TableField(MacBridgePortBridgeTableData_BridgeTable, TableAttributeType, 0x8000, TableInfo{nil, 8}, mapset.NewSetWith(Read), false, false, false, 1),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/macbridgeportconfigurationdata.go b/generated/macbridgeportconfigurationdata.go
index 24e245d..e2badbb 100644
--- a/generated/macbridgeportconfigurationdata.go
+++ b/generated/macbridgeportconfigurationdata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -139,10 +139,27 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const MacBridgePortConfigurationData_BridgeIdPointer = "BridgeIdPointer"
+const MacBridgePortConfigurationData_PortNum = "PortNum"
+const MacBridgePortConfigurationData_TpType = "TpType"
+const MacBridgePortConfigurationData_TpPointer = "TpPointer"
+const MacBridgePortConfigurationData_PortPriority = "PortPriority"
+const MacBridgePortConfigurationData_PortPathCost = "PortPathCost"
+const MacBridgePortConfigurationData_PortSpanningTreeInd = "PortSpanningTreeInd"
+const MacBridgePortConfigurationData_Deprecated1 = "Deprecated1"
+const MacBridgePortConfigurationData_Deprecated2 = "Deprecated2"
+const MacBridgePortConfigurationData_PortMacAddress = "PortMacAddress"
+const MacBridgePortConfigurationData_OutboundTdPointer = "OutboundTdPointer"
+const MacBridgePortConfigurationData_InboundTdPointer = "InboundTdPointer"
+const MacBridgePortConfigurationData_MacLearningDepth = "MacLearningDepth"
+const MacBridgePortConfigurationData_LaspIdPointer = "LaspIdPointer"
+
 func init() {
 	macbridgeportconfigurationdataBME = &ManagedEntityDefinition{
 		Name:    "MacBridgePortConfigurationData",
-		ClassID: 47,
+		ClassID: MacBridgePortConfigurationDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -151,21 +168,21 @@
 		),
 		AllowedAttributeMask: 0xfffc,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  Uint16Field("BridgeIdPointer", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2:  ByteField("PortNum", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  ByteField("TpType", EnumerationAttributeType, 0x2000, 1, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
-			4:  Uint16Field("TpPointer", PointerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
-			5:  Uint16Field("PortPriority", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 5),
-			6:  Uint16Field("PortPathCost", UnsignedIntegerAttributeType, 0x0400, 1, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 6),
-			7:  ByteField("PortSpanningTreeInd", EnumerationAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
-			8:  ByteField("Deprecated1", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, true, 8),
-			9:  ByteField("Deprecated2", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, true, 9),
-			10: MultiByteField("PortMacAddress", OctetsAttributeType, 0x0040, 6, toOctets("AAAAAAAA"), mapset.NewSetWith(Read), false, true, false, 10),
-			11: Uint16Field("OutboundTdPointer", PointerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, true, false, 11),
-			12: Uint16Field("InboundTdPointer", PointerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, true, false, 12),
-			13: ByteField("MacLearningDepth", UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 13),
-			14: Uint16Field("LaspIdPointer", UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 14),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  Uint16Field(MacBridgePortConfigurationData_BridgeIdPointer, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2:  ByteField(MacBridgePortConfigurationData_PortNum, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  ByteField(MacBridgePortConfigurationData_TpType, EnumerationAttributeType, 0x2000, 1, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
+			4:  Uint16Field(MacBridgePortConfigurationData_TpPointer, PointerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
+			5:  Uint16Field(MacBridgePortConfigurationData_PortPriority, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 5),
+			6:  Uint16Field(MacBridgePortConfigurationData_PortPathCost, UnsignedIntegerAttributeType, 0x0400, 1, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 6),
+			7:  ByteField(MacBridgePortConfigurationData_PortSpanningTreeInd, EnumerationAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
+			8:  ByteField(MacBridgePortConfigurationData_Deprecated1, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, true, 8),
+			9:  ByteField(MacBridgePortConfigurationData_Deprecated2, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, true, 9),
+			10: MultiByteField(MacBridgePortConfigurationData_PortMacAddress, OctetsAttributeType, 0x0040, 6, toOctets("AAAAAAAA"), mapset.NewSetWith(Read), false, true, false, 10),
+			11: Uint16Field(MacBridgePortConfigurationData_OutboundTdPointer, PointerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, true, false, 11),
+			12: Uint16Field(MacBridgePortConfigurationData_InboundTdPointer, PointerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, true, false, 12),
+			13: ByteField(MacBridgePortConfigurationData_MacLearningDepth, UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 13),
+			14: Uint16Field(MacBridgePortConfigurationData_LaspIdPointer, UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 14),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/macbridgeportdesignationdata.go b/generated/macbridgeportdesignationdata.go
index df0da16..5764757 100644
--- a/generated/macbridgeportdesignationdata.go
+++ b/generated/macbridgeportdesignationdata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -96,18 +96,23 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const MacBridgePortDesignationData_DesignatedBridgeRootCostPort = "DesignatedBridgeRootCostPort"
+const MacBridgePortDesignationData_PortState = "PortState"
+
 func init() {
 	macbridgeportdesignationdataBME = &ManagedEntityDefinition{
 		Name:    "MacBridgePortDesignationData",
-		ClassID: 48,
+		ClassID: MacBridgePortDesignationDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 		),
 		AllowedAttributeMask: 0xc000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: MultiByteField("DesignatedBridgeRootCostPort", OctetsAttributeType, 0x8000, 24, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), mapset.NewSetWith(Read), false, false, false, 1),
-			2: ByteField("PortState", EnumerationAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: MultiByteField(MacBridgePortDesignationData_DesignatedBridgeRootCostPort, OctetsAttributeType, 0x8000, 24, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), mapset.NewSetWith(Read), false, false, false, 1),
+			2: ByteField(MacBridgePortDesignationData_PortState, EnumerationAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/macbridgeportfilterpre-assigntable.go b/generated/macbridgeportfilterpre-assigntable.go
index 604af06..2516f2a 100644
--- a/generated/macbridgeportfilterpre-assigntable.go
+++ b/generated/macbridgeportfilterpre-assigntable.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -96,27 +96,40 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const MacBridgePortFilterPreAssignTable_Ipv4MulticastFiltering = "Ipv4MulticastFiltering"
+const MacBridgePortFilterPreAssignTable_Ipv6MulticastFiltering = "Ipv6MulticastFiltering"
+const MacBridgePortFilterPreAssignTable_Ipv4BroadcastFiltering = "Ipv4BroadcastFiltering"
+const MacBridgePortFilterPreAssignTable_RarpFiltering = "RarpFiltering"
+const MacBridgePortFilterPreAssignTable_IpxFiltering = "IpxFiltering"
+const MacBridgePortFilterPreAssignTable_NetbeuiFiltering = "NetbeuiFiltering"
+const MacBridgePortFilterPreAssignTable_AppletalkFiltering = "AppletalkFiltering"
+const MacBridgePortFilterPreAssignTable_BridgeManagementInformationFiltering = "BridgeManagementInformationFiltering"
+const MacBridgePortFilterPreAssignTable_ArpFiltering = "ArpFiltering"
+const MacBridgePortFilterPreAssignTable_PointToPointProtocolOverEthernetPppoeBroadcastFiltering = "PointToPointProtocolOverEthernetPppoeBroadcastFiltering"
+
 func init() {
 	macbridgeportfilterpreassigntableBME = &ManagedEntityDefinition{
 		Name:    "MacBridgePortFilterPreAssignTable",
-		ClassID: 79,
+		ClassID: MacBridgePortFilterPreAssignTableClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
 		),
 		AllowedAttributeMask: 0xffc0,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  ByteField("Ipv4MulticastFiltering", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
-			2:  ByteField("Ipv6MulticastFiltering", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
-			3:  ByteField("Ipv4BroadcastFiltering", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
-			4:  ByteField("RarpFiltering", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, false, false, 4),
-			5:  ByteField("IpxFiltering", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
-			6:  ByteField("NetbeuiFiltering", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
-			7:  ByteField("AppletalkFiltering", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
-			8:  ByteField("BridgeManagementInformationFiltering", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, false, false, 8),
-			9:  ByteField("ArpFiltering", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, false, false, 9),
-			10: ByteField("PointToPointProtocolOverEthernetPppoeBroadcastFiltering", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, false, false, 10),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  ByteField(MacBridgePortFilterPreAssignTable_Ipv4MulticastFiltering, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			2:  ByteField(MacBridgePortFilterPreAssignTable_Ipv6MulticastFiltering, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
+			3:  ByteField(MacBridgePortFilterPreAssignTable_Ipv4BroadcastFiltering, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
+			4:  ByteField(MacBridgePortFilterPreAssignTable_RarpFiltering, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, false, false, 4),
+			5:  ByteField(MacBridgePortFilterPreAssignTable_IpxFiltering, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
+			6:  ByteField(MacBridgePortFilterPreAssignTable_NetbeuiFiltering, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
+			7:  ByteField(MacBridgePortFilterPreAssignTable_AppletalkFiltering, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
+			8:  ByteField(MacBridgePortFilterPreAssignTable_BridgeManagementInformationFiltering, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, false, false, 8),
+			9:  ByteField(MacBridgePortFilterPreAssignTable_ArpFiltering, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, false, false, 9),
+			10: ByteField(MacBridgePortFilterPreAssignTable_PointToPointProtocolOverEthernetPppoeBroadcastFiltering, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, false, false, 10),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/macbridgeportfiltertabledata.go b/generated/macbridgeportfiltertabledata.go
index 9d7cace..658fba2 100644
--- a/generated/macbridgeportfiltertabledata.go
+++ b/generated/macbridgeportfiltertabledata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -94,10 +94,14 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const MacBridgePortFilterTableData_MacFilterTable = "MacFilterTable"
+
 func init() {
 	macbridgeportfiltertabledataBME = &ManagedEntityDefinition{
 		Name:    "MacBridgePortFilterTableData",
-		ClassID: 49,
+		ClassID: MacBridgePortFilterTableDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			GetNext,
@@ -106,8 +110,8 @@
 		),
 		AllowedAttributeMask: 0x8000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: TableField("MacFilterTable", TableAttributeType, 0x8000, TableInfo{nil, 8}, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: TableField(MacBridgePortFilterTableData_MacFilterTable, TableAttributeType, 0x8000, TableInfo{nil, 8}, mapset.NewSetWith(Read, Write), false, false, false, 1),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/macbridgeporticmpv6processpre-assigntable.go b/generated/macbridgeporticmpv6processpre-assigntable.go
index 8131599..eae6eaa 100644
--- a/generated/macbridgeporticmpv6processpre-assigntable.go
+++ b/generated/macbridgeporticmpv6processpre-assigntable.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -95,25 +95,37 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const MacBridgePortIcmpv6ProcessPreAssignTable_Icmpv6ErrorMessagesProcessing = "Icmpv6ErrorMessagesProcessing"
+const MacBridgePortIcmpv6ProcessPreAssignTable_Icmpv6InformationalMessagesProcessing = "Icmpv6InformationalMessagesProcessing"
+const MacBridgePortIcmpv6ProcessPreAssignTable_RouterSolicitationProcessing = "RouterSolicitationProcessing"
+const MacBridgePortIcmpv6ProcessPreAssignTable_RouterAdvertisementProcessing = "RouterAdvertisementProcessing"
+const MacBridgePortIcmpv6ProcessPreAssignTable_NeighbourSolicitationProcessing = "NeighbourSolicitationProcessing"
+const MacBridgePortIcmpv6ProcessPreAssignTable_NeighbourAdvertisementProcessing = "NeighbourAdvertisementProcessing"
+const MacBridgePortIcmpv6ProcessPreAssignTable_RedirectProcessing = "RedirectProcessing"
+const MacBridgePortIcmpv6ProcessPreAssignTable_MulticastListenerQueryProcessing = "MulticastListenerQueryProcessing"
+const MacBridgePortIcmpv6ProcessPreAssignTable_UnknownIcmpv6Processing = "UnknownIcmpv6Processing"
+
 func init() {
 	macbridgeporticmpv6processpreassigntableBME = &ManagedEntityDefinition{
 		Name:    "MacBridgePortIcmpv6ProcessPreAssignTable",
-		ClassID: 348,
+		ClassID: MacBridgePortIcmpv6ProcessPreAssignTableClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 		),
 		AllowedAttributeMask: 0xff80,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: ByteField("Icmpv6ErrorMessagesProcessing", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
-			2: ByteField("Icmpv6InformationalMessagesProcessing", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
-			3: ByteField("RouterSolicitationProcessing", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
-			4: ByteField("RouterAdvertisementProcessing", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, false, false, 4),
-			5: ByteField("NeighbourSolicitationProcessing", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
-			6: ByteField("NeighbourAdvertisementProcessing", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
-			7: ByteField("RedirectProcessing", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
-			8: ByteField("MulticastListenerQueryProcessing", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, false, false, 8),
-			9: ByteField("UnknownIcmpv6Processing", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, false, false, 9),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: ByteField(MacBridgePortIcmpv6ProcessPreAssignTable_Icmpv6ErrorMessagesProcessing, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			2: ByteField(MacBridgePortIcmpv6ProcessPreAssignTable_Icmpv6InformationalMessagesProcessing, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
+			3: ByteField(MacBridgePortIcmpv6ProcessPreAssignTable_RouterSolicitationProcessing, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
+			4: ByteField(MacBridgePortIcmpv6ProcessPreAssignTable_RouterAdvertisementProcessing, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, false, false, 4),
+			5: ByteField(MacBridgePortIcmpv6ProcessPreAssignTable_NeighbourSolicitationProcessing, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
+			6: ByteField(MacBridgePortIcmpv6ProcessPreAssignTable_NeighbourAdvertisementProcessing, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
+			7: ByteField(MacBridgePortIcmpv6ProcessPreAssignTable_RedirectProcessing, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
+			8: ByteField(MacBridgePortIcmpv6ProcessPreAssignTable_MulticastListenerQueryProcessing, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, false, false, 8),
+			9: ByteField(MacBridgePortIcmpv6ProcessPreAssignTable_UnknownIcmpv6Processing, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, false, false, 9),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/macbridgeportperformancemonitoringhistorydata.go b/generated/macbridgeportperformancemonitoringhistorydata.go
index 97b0e16..b1d5304 100644
--- a/generated/macbridgeportperformancemonitoringhistorydata.go
+++ b/generated/macbridgeportperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -78,10 +78,20 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const MacBridgePortPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const MacBridgePortPerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const MacBridgePortPerformanceMonitoringHistoryData_ForwardedFrameCounter = "ForwardedFrameCounter"
+const MacBridgePortPerformanceMonitoringHistoryData_DelayExceededDiscardCounter = "DelayExceededDiscardCounter"
+const MacBridgePortPerformanceMonitoringHistoryData_MaximumTransmissionUnitMtuExceededDiscardCounter = "MaximumTransmissionUnitMtuExceededDiscardCounter"
+const MacBridgePortPerformanceMonitoringHistoryData_ReceivedFrameCounter = "ReceivedFrameCounter"
+const MacBridgePortPerformanceMonitoringHistoryData_ReceivedAndDiscardedCounter = "ReceivedAndDiscardedCounter"
+
 func init() {
 	macbridgeportperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "MacBridgePortPerformanceMonitoringHistoryData",
-		ClassID: 52,
+		ClassID: MacBridgePortPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -91,14 +101,14 @@
 		),
 		AllowedAttributeMask: 0xfe00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: Uint16Field("ThresholdData12Id", PointerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint32Field("ForwardedFrameCounter", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4: Uint32Field("DelayExceededDiscardCounter", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5: Uint32Field("MaximumTransmissionUnitMtuExceededDiscardCounter", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6: Uint32Field("ReceivedFrameCounter", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7: Uint32Field("ReceivedAndDiscardedCounter", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(MacBridgePortPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: Uint16Field(MacBridgePortPerformanceMonitoringHistoryData_ThresholdData12Id, PointerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint32Field(MacBridgePortPerformanceMonitoringHistoryData_ForwardedFrameCounter, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4: Uint32Field(MacBridgePortPerformanceMonitoringHistoryData_DelayExceededDiscardCounter, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5: Uint32Field(MacBridgePortPerformanceMonitoringHistoryData_MaximumTransmissionUnitMtuExceededDiscardCounter, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6: Uint32Field(MacBridgePortPerformanceMonitoringHistoryData_ReceivedFrameCounter, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7: Uint32Field(MacBridgePortPerformanceMonitoringHistoryData_ReceivedAndDiscardedCounter, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/macbridgeserviceprofile.go b/generated/macbridgeserviceprofile.go
index c05d948..83419e2 100644
--- a/generated/macbridgeserviceprofile.go
+++ b/generated/macbridgeserviceprofile.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -103,10 +103,23 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const MacBridgeServiceProfile_SpanningTreeInd = "SpanningTreeInd"
+const MacBridgeServiceProfile_LearningInd = "LearningInd"
+const MacBridgeServiceProfile_PortBridgingInd = "PortBridgingInd"
+const MacBridgeServiceProfile_Priority = "Priority"
+const MacBridgeServiceProfile_MaxAge = "MaxAge"
+const MacBridgeServiceProfile_HelloTime = "HelloTime"
+const MacBridgeServiceProfile_ForwardDelay = "ForwardDelay"
+const MacBridgeServiceProfile_UnknownMacAddressDiscard = "UnknownMacAddressDiscard"
+const MacBridgeServiceProfile_MacLearningDepth = "MacLearningDepth"
+const MacBridgeServiceProfile_DynamicFilteringAgeingTime = "DynamicFilteringAgeingTime"
+
 func init() {
 	macbridgeserviceprofileBME = &ManagedEntityDefinition{
 		Name:    "MacBridgeServiceProfile",
-		ClassID: 45,
+		ClassID: MacBridgeServiceProfileClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -115,17 +128,17 @@
 		),
 		AllowedAttributeMask: 0xffc0,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("SpanningTreeInd", EnumerationAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2:  ByteField("LearningInd", EnumerationAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  ByteField("PortBridgingInd", EnumerationAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
-			4:  Uint16Field("Priority", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
-			5:  Uint16Field("MaxAge", UnsignedIntegerAttributeType, 0x0800, 1536, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
-			6:  Uint16Field("HelloTime", UnsignedIntegerAttributeType, 0x0400, 256, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 6),
-			7:  Uint16Field("ForwardDelay", UnsignedIntegerAttributeType, 0x0200, 1024, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
-			8:  ByteField("UnknownMacAddressDiscard", EnumerationAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 8),
-			9:  ByteField("MacLearningDepth", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 9),
-			10: Uint32Field("DynamicFilteringAgeingTime", UnsignedIntegerAttributeType, 0x0040, 300, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 10),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(MacBridgeServiceProfile_SpanningTreeInd, EnumerationAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2:  ByteField(MacBridgeServiceProfile_LearningInd, EnumerationAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  ByteField(MacBridgeServiceProfile_PortBridgingInd, EnumerationAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
+			4:  Uint16Field(MacBridgeServiceProfile_Priority, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
+			5:  Uint16Field(MacBridgeServiceProfile_MaxAge, UnsignedIntegerAttributeType, 0x0800, 1536, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
+			6:  Uint16Field(MacBridgeServiceProfile_HelloTime, UnsignedIntegerAttributeType, 0x0400, 256, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 6),
+			7:  Uint16Field(MacBridgeServiceProfile_ForwardDelay, UnsignedIntegerAttributeType, 0x0200, 1024, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
+			8:  ByteField(MacBridgeServiceProfile_UnknownMacAddressDiscard, EnumerationAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 8),
+			9:  ByteField(MacBridgeServiceProfile_MacLearningDepth, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 9),
+			10: Uint32Field(MacBridgeServiceProfile_DynamicFilteringAgeingTime, UnsignedIntegerAttributeType, 0x0040, 300, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 10),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/managedentityme.go b/generated/managedentityme.go
index 91354b5..c55bceb 100644
--- a/generated/managedentityme.go
+++ b/generated/managedentityme.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -103,25 +103,36 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const ManagedEntityMe_Name = "Name"
+const ManagedEntityMe_AttributesTable = "AttributesTable"
+const ManagedEntityMe_Access = "Access"
+const ManagedEntityMe_AlarmsTable = "AlarmsTable"
+const ManagedEntityMe_AvcsTable = "AvcsTable"
+const ManagedEntityMe_Actions = "Actions"
+const ManagedEntityMe_InstancesTable = "InstancesTable"
+const ManagedEntityMe_Support = "Support"
+
 func init() {
 	managedentitymeBME = &ManagedEntityDefinition{
 		Name:    "ManagedEntityMe",
-		ClassID: 288,
+		ClassID: ManagedEntityMeClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			GetNext,
 		),
 		AllowedAttributeMask: 0xff00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: MultiByteField("Name", OctetsAttributeType, 0x8000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 1),
-			2: TableField("AttributesTable", TableAttributeType, 0x4000, TableInfo{nil, 2}, mapset.NewSetWith(Read), false, false, false, 2),
-			3: ByteField("Access", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4: TableField("AlarmsTable", TableAttributeType, 0x1000, TableInfo{nil, 1}, mapset.NewSetWith(Read), false, false, false, 4),
-			5: TableField("AvcsTable", TableAttributeType, 0x0800, TableInfo{nil, 1}, mapset.NewSetWith(Read), false, false, false, 5),
-			6: Uint32Field("Actions", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7: TableField("InstancesTable", TableAttributeType, 0x0200, TableInfo{nil, 2}, mapset.NewSetWith(Read), false, false, false, 7),
-			8: ByteField("Support", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: MultiByteField(ManagedEntityMe_Name, OctetsAttributeType, 0x8000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 1),
+			2: TableField(ManagedEntityMe_AttributesTable, TableAttributeType, 0x4000, TableInfo{nil, 2}, mapset.NewSetWith(Read), false, false, false, 2),
+			3: ByteField(ManagedEntityMe_Access, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4: TableField(ManagedEntityMe_AlarmsTable, TableAttributeType, 0x1000, TableInfo{nil, 1}, mapset.NewSetWith(Read), false, false, false, 4),
+			5: TableField(ManagedEntityMe_AvcsTable, TableAttributeType, 0x0800, TableInfo{nil, 1}, mapset.NewSetWith(Read), false, false, false, 5),
+			6: Uint32Field(ManagedEntityMe_Actions, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7: TableField(ManagedEntityMe_InstancesTable, TableAttributeType, 0x0200, TableInfo{nil, 2}, mapset.NewSetWith(Read), false, false, false, 7),
+			8: ByteField(ManagedEntityMe_Support, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/me.go b/generated/me.go
index 2d83255..d901c3a 100644
--- a/generated/me.go
+++ b/generated/me.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
diff --git a/generated/medef.go b/generated/medef.go
index 4b2061a..b74f536 100644
--- a/generated/medef.go
+++ b/generated/medef.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
diff --git a/generated/mgcconfigdata.go b/generated/mgcconfigdata.go
index 4b97077..dcacc6b 100644
--- a/generated/mgcconfigdata.go
+++ b/generated/mgcconfigdata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -112,10 +112,24 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const MgcConfigData_PrimaryMgc = "PrimaryMgc"
+const MgcConfigData_SecondaryMgc = "SecondaryMgc"
+const MgcConfigData_TcpUdpPointer = "TcpUdpPointer"
+const MgcConfigData_Version = "Version"
+const MgcConfigData_MessageFormat = "MessageFormat"
+const MgcConfigData_MaximumRetryTime = "MaximumRetryTime"
+const MgcConfigData_MaximumRetryAttempts = "MaximumRetryAttempts"
+const MgcConfigData_ServiceChangeDelay = "ServiceChangeDelay"
+const MgcConfigData_TerminationIdBase = "TerminationIdBase"
+const MgcConfigData_Softswitch = "Softswitch"
+const MgcConfigData_MessageIdPointer = "MessageIdPointer"
+
 func init() {
 	mgcconfigdataBME = &ManagedEntityDefinition{
 		Name:    "MgcConfigData",
-		ClassID: 155,
+		ClassID: MgcConfigDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -124,18 +138,18 @@
 		),
 		AllowedAttributeMask: 0xffe0,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  Uint16Field("PrimaryMgc", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2:  Uint16Field("SecondaryMgc", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint16Field("TcpUdpPointer", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
-			4:  ByteField("Version", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
-			5:  ByteField("MessageFormat", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
-			6:  Uint16Field("MaximumRetryTime", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, true, false, 6),
-			7:  Uint16Field("MaximumRetryAttempts", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 7),
-			8:  Uint16Field("ServiceChangeDelay", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, true, false, 8),
-			9:  MultiByteField("TerminationIdBase", OctetsAttributeType, 0x0080, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 9),
-			10: Uint32Field("Softswitch", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 10),
-			11: Uint16Field("MessageIdPointer", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 11),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  Uint16Field(MgcConfigData_PrimaryMgc, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2:  Uint16Field(MgcConfigData_SecondaryMgc, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint16Field(MgcConfigData_TcpUdpPointer, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
+			4:  ByteField(MgcConfigData_Version, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
+			5:  ByteField(MgcConfigData_MessageFormat, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
+			6:  Uint16Field(MgcConfigData_MaximumRetryTime, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, true, false, 6),
+			7:  Uint16Field(MgcConfigData_MaximumRetryAttempts, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 7),
+			8:  Uint16Field(MgcConfigData_ServiceChangeDelay, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, true, false, 8),
+			9:  MultiByteField(MgcConfigData_TerminationIdBase, OctetsAttributeType, 0x0080, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 9),
+			10: Uint32Field(MgcConfigData_Softswitch, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 10),
+			11: Uint16Field(MgcConfigData_MessageIdPointer, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 11),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/mgcconfigportal.go b/generated/mgcconfigportal.go
index 46167fa..34a46c7 100644
--- a/generated/mgcconfigportal.go
+++ b/generated/mgcconfigportal.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -59,18 +59,22 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const MgcConfigPortal_ConfigurationTextTable = "ConfigurationTextTable"
+
 func init() {
 	mgcconfigportalBME = &ManagedEntityDefinition{
 		Name:    "MgcConfigPortal",
-		ClassID: 154,
+		ClassID: MgcConfigPortalClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			GetNext,
 		),
 		AllowedAttributeMask: 0x8000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: TableField("ConfigurationTextTable", TableAttributeType, 0x8000, TableInfo{nil, 25}, mapset.NewSetWith(Read), true, false, false, 1),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: TableField(MgcConfigPortal_ConfigurationTextTable, TableAttributeType, 0x8000, TableInfo{nil, 25}, mapset.NewSetWith(Read), true, false, false, 1),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/mgcperformancemonitoringhistorydata.go b/generated/mgcperformancemonitoringhistorydata.go
index 082de74..b500734 100644
--- a/generated/mgcperformancemonitoringhistorydata.go
+++ b/generated/mgcperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -123,10 +123,24 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const MgcPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const MgcPerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const MgcPerformanceMonitoringHistoryData_ReceivedMessages = "ReceivedMessages"
+const MgcPerformanceMonitoringHistoryData_ReceivedOctets = "ReceivedOctets"
+const MgcPerformanceMonitoringHistoryData_SentMessages = "SentMessages"
+const MgcPerformanceMonitoringHistoryData_SentOctets = "SentOctets"
+const MgcPerformanceMonitoringHistoryData_ProtocolErrors = "ProtocolErrors"
+const MgcPerformanceMonitoringHistoryData_TransportLosses = "TransportLosses"
+const MgcPerformanceMonitoringHistoryData_LastDetectedEvent = "LastDetectedEvent"
+const MgcPerformanceMonitoringHistoryData_LastDetectedEventTime = "LastDetectedEventTime"
+const MgcPerformanceMonitoringHistoryData_LastDetectedResetTime = "LastDetectedResetTime"
+
 func init() {
 	mgcperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "MgcPerformanceMonitoringHistoryData",
-		ClassID: 156,
+		ClassID: MgcPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -136,18 +150,18 @@
 		),
 		AllowedAttributeMask: 0xffe0,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint32Field("ReceivedMessages", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4:  Uint32Field("ReceivedOctets", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  Uint32Field("SentMessages", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6:  Uint32Field("SentOctets", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  Uint32Field("ProtocolErrors", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8:  Uint32Field("TransportLosses", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
-			9:  ByteField("LastDetectedEvent", CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
-			10: Uint32Field("LastDetectedEventTime", CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
-			11: Uint32Field("LastDetectedResetTime", CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(MgcPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  Uint16Field(MgcPerformanceMonitoringHistoryData_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint32Field(MgcPerformanceMonitoringHistoryData_ReceivedMessages, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4:  Uint32Field(MgcPerformanceMonitoringHistoryData_ReceivedOctets, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  Uint32Field(MgcPerformanceMonitoringHistoryData_SentMessages, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6:  Uint32Field(MgcPerformanceMonitoringHistoryData_SentOctets, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  Uint32Field(MgcPerformanceMonitoringHistoryData_ProtocolErrors, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8:  Uint32Field(MgcPerformanceMonitoringHistoryData_TransportLosses, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			9:  ByteField(MgcPerformanceMonitoringHistoryData_LastDetectedEvent, CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
+			10: Uint32Field(MgcPerformanceMonitoringHistoryData_LastDetectedEventTime, CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
+			11: Uint32Field(MgcPerformanceMonitoringHistoryData_LastDetectedResetTime, CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/mocaethernetperformancemonitoringhistorydata.go b/generated/mocaethernetperformancemonitoringhistorydata.go
index c69d00b..2c73afe 100644
--- a/generated/mocaethernetperformancemonitoringhistorydata.go
+++ b/generated/mocaethernetperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -102,10 +102,29 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const MocaEthernetPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const MocaEthernetPerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const MocaEthernetPerformanceMonitoringHistoryData_IncomingUnicastPackets = "IncomingUnicastPackets"
+const MocaEthernetPerformanceMonitoringHistoryData_IncomingDiscardedPackets = "IncomingDiscardedPackets"
+const MocaEthernetPerformanceMonitoringHistoryData_IncomingErroredPackets = "IncomingErroredPackets"
+const MocaEthernetPerformanceMonitoringHistoryData_IncomingUnknownPackets = "IncomingUnknownPackets"
+const MocaEthernetPerformanceMonitoringHistoryData_IncomingMulticastPackets = "IncomingMulticastPackets"
+const MocaEthernetPerformanceMonitoringHistoryData_IncomingBroadcastPackets = "IncomingBroadcastPackets"
+const MocaEthernetPerformanceMonitoringHistoryData_IncomingOctets = "IncomingOctets"
+const MocaEthernetPerformanceMonitoringHistoryData_OutgoingUnicastPackets = "OutgoingUnicastPackets"
+const MocaEthernetPerformanceMonitoringHistoryData_OutgoingDiscardedPackets = "OutgoingDiscardedPackets"
+const MocaEthernetPerformanceMonitoringHistoryData_OutgoingErroredPackets = "OutgoingErroredPackets"
+const MocaEthernetPerformanceMonitoringHistoryData_OutgoingUnknownPackets = "OutgoingUnknownPackets"
+const MocaEthernetPerformanceMonitoringHistoryData_OutgoingMulticastPackets = "OutgoingMulticastPackets"
+const MocaEthernetPerformanceMonitoringHistoryData_OutgoingBroadcastPackets = "OutgoingBroadcastPackets"
+const MocaEthernetPerformanceMonitoringHistoryData_OutgoingOctets = "OutgoingOctets"
+
 func init() {
 	mocaethernetperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "MocaEthernetPerformanceMonitoringHistoryData",
-		ClassID: 163,
+		ClassID: MocaEthernetPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -114,23 +133,23 @@
 		),
 		AllowedAttributeMask: 0xffff,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint32Field("IncomingUnicastPackets", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, true, false, 3),
-			4:  Uint32Field("IncomingDiscardedPackets", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, true, false, 4),
-			5:  Uint32Field("IncomingErroredPackets", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, true, false, 5),
-			6:  Uint32Field("IncomingUnknownPackets", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, true, false, 6),
-			7:  Uint32Field("IncomingMulticastPackets", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, true, false, 7),
-			8:  Uint32Field("IncomingBroadcastPackets", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, true, false, 8),
-			9:  Uint32Field("IncomingOctets", CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, true, false, 9),
-			10: Uint32Field("OutgoingUnicastPackets", CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, true, false, 10),
-			11: Uint32Field("OutgoingDiscardedPackets", CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, true, false, 11),
-			12: Uint32Field("OutgoingErroredPackets", CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, true, false, 12),
-			13: Uint32Field("OutgoingUnknownPackets", CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, true, false, 13),
-			14: Uint32Field("OutgoingMulticastPackets", CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, true, false, 14),
-			15: Uint32Field("OutgoingBroadcastPackets", CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, true, false, 15),
-			16: Uint32Field("OutgoingOctets", CounterAttributeType, 0x0001, 0, mapset.NewSetWith(Read), false, true, false, 16),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(MocaEthernetPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  Uint16Field(MocaEthernetPerformanceMonitoringHistoryData_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint32Field(MocaEthernetPerformanceMonitoringHistoryData_IncomingUnicastPackets, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, true, false, 3),
+			4:  Uint32Field(MocaEthernetPerformanceMonitoringHistoryData_IncomingDiscardedPackets, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, true, false, 4),
+			5:  Uint32Field(MocaEthernetPerformanceMonitoringHistoryData_IncomingErroredPackets, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, true, false, 5),
+			6:  Uint32Field(MocaEthernetPerformanceMonitoringHistoryData_IncomingUnknownPackets, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, true, false, 6),
+			7:  Uint32Field(MocaEthernetPerformanceMonitoringHistoryData_IncomingMulticastPackets, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, true, false, 7),
+			8:  Uint32Field(MocaEthernetPerformanceMonitoringHistoryData_IncomingBroadcastPackets, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, true, false, 8),
+			9:  Uint32Field(MocaEthernetPerformanceMonitoringHistoryData_IncomingOctets, CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, true, false, 9),
+			10: Uint32Field(MocaEthernetPerformanceMonitoringHistoryData_OutgoingUnicastPackets, CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, true, false, 10),
+			11: Uint32Field(MocaEthernetPerformanceMonitoringHistoryData_OutgoingDiscardedPackets, CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, true, false, 11),
+			12: Uint32Field(MocaEthernetPerformanceMonitoringHistoryData_OutgoingErroredPackets, CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, true, false, 12),
+			13: Uint32Field(MocaEthernetPerformanceMonitoringHistoryData_OutgoingUnknownPackets, CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, true, false, 13),
+			14: Uint32Field(MocaEthernetPerformanceMonitoringHistoryData_OutgoingMulticastPackets, CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, true, false, 14),
+			15: Uint32Field(MocaEthernetPerformanceMonitoringHistoryData_OutgoingBroadcastPackets, CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, true, false, 15),
+			16: Uint32Field(MocaEthernetPerformanceMonitoringHistoryData_OutgoingOctets, CounterAttributeType, 0x0001, 0, mapset.NewSetWith(Read), false, true, false, 16),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/mocainterfaceperformancemonitoringhistorydata.go b/generated/mocainterfaceperformancemonitoringhistorydata.go
index 41b3aa1..d9986d3 100644
--- a/generated/mocainterfaceperformancemonitoringhistorydata.go
+++ b/generated/mocainterfaceperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -106,10 +106,17 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const MocaInterfacePerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const MocaInterfacePerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const MocaInterfacePerformanceMonitoringHistoryData_PhyTXBroadcastRate = "PhyTXBroadcastRate"
+const MocaInterfacePerformanceMonitoringHistoryData_NodeTable = "NodeTable"
+
 func init() {
 	mocainterfaceperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "MocaInterfacePerformanceMonitoringHistoryData",
-		ClassID: 164,
+		ClassID: MocaInterfacePerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -119,11 +126,11 @@
 		),
 		AllowedAttributeMask: 0xf000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint32Field("PhyTXBroadcastRate", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, true, false, 3),
-			4: TableField("NodeTable", TableAttributeType, 0x1000, TableInfo{nil, 37}, mapset.NewSetWith(Read), false, false, false, 4),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(MocaInterfacePerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: Uint16Field(MocaInterfacePerformanceMonitoringHistoryData_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint32Field(MocaInterfacePerformanceMonitoringHistoryData_PhyTXBroadcastRate, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, true, false, 3),
+			4: TableField(MocaInterfacePerformanceMonitoringHistoryData_NodeTable, TableAttributeType, 0x1000, TableInfo{nil, 37}, mapset.NewSetWith(Read), false, false, false, 4),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/mplspseudowireterminationpoint.go b/generated/mplspseudowireterminationpoint.go
index ed2ec34..4db7afe 100644
--- a/generated/mplspseudowireterminationpoint.go
+++ b/generated/mplspseudowireterminationpoint.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -171,10 +171,28 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const MplsPseudowireTerminationPoint_TpType = "TpType"
+const MplsPseudowireTerminationPoint_TpPointer = "TpPointer"
+const MplsPseudowireTerminationPoint_MplsLabelIndicator = "MplsLabelIndicator"
+const MplsPseudowireTerminationPoint_MplsPwDirection = "MplsPwDirection"
+const MplsPseudowireTerminationPoint_MplsPwUplinkLabel = "MplsPwUplinkLabel"
+const MplsPseudowireTerminationPoint_MplsPwDownlinkLabel = "MplsPwDownlinkLabel"
+const MplsPseudowireTerminationPoint_MplsPwTc = "MplsPwTc"
+const MplsPseudowireTerminationPoint_MplsTunnelDirection = "MplsTunnelDirection"
+const MplsPseudowireTerminationPoint_MplsTunnelUplinkLabel = "MplsTunnelUplinkLabel"
+const MplsPseudowireTerminationPoint_MplsTunnelDownlinkLabel = "MplsTunnelDownlinkLabel"
+const MplsPseudowireTerminationPoint_MplsTunnelTc = "MplsTunnelTc"
+const MplsPseudowireTerminationPoint_PseudowireType = "PseudowireType"
+const MplsPseudowireTerminationPoint_PseudowireControlWordPreference = "PseudowireControlWordPreference"
+const MplsPseudowireTerminationPoint_AdministrativeState = "AdministrativeState"
+const MplsPseudowireTerminationPoint_OperationalState = "OperationalState"
+
 func init() {
 	mplspseudowireterminationpointBME = &ManagedEntityDefinition{
 		Name:    "MplsPseudowireTerminationPoint",
-		ClassID: 333,
+		ClassID: MplsPseudowireTerminationPointClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -183,22 +201,22 @@
 		),
 		AllowedAttributeMask: 0xfffe,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("TpType", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2:  Uint16Field("TpPointer", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  ByteField("MplsLabelIndicator", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
-			4:  ByteField("MplsPwDirection", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
-			5:  Uint32Field("MplsPwUplinkLabel", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
-			6:  Uint32Field("MplsPwDownlinkLabel", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 6),
-			7:  ByteField("MplsPwTc", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
-			8:  ByteField("MplsTunnelDirection", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 8),
-			9:  Uint32Field("MplsTunnelUplinkLabel", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 9),
-			10: Uint32Field("MplsTunnelDownlinkLabel", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 10),
-			11: ByteField("MplsTunnelTc", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 11),
-			12: Uint16Field("PseudowireType", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 12),
-			13: ByteField("PseudowireControlWordPreference", UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 13),
-			14: ByteField("AdministrativeState", UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read, Write), false, true, false, 14),
-			15: ByteField("OperationalState", UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read), true, true, false, 15),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(MplsPseudowireTerminationPoint_TpType, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2:  Uint16Field(MplsPseudowireTerminationPoint_TpPointer, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  ByteField(MplsPseudowireTerminationPoint_MplsLabelIndicator, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
+			4:  ByteField(MplsPseudowireTerminationPoint_MplsPwDirection, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
+			5:  Uint32Field(MplsPseudowireTerminationPoint_MplsPwUplinkLabel, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
+			6:  Uint32Field(MplsPseudowireTerminationPoint_MplsPwDownlinkLabel, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 6),
+			7:  ByteField(MplsPseudowireTerminationPoint_MplsPwTc, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
+			8:  ByteField(MplsPseudowireTerminationPoint_MplsTunnelDirection, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 8),
+			9:  Uint32Field(MplsPseudowireTerminationPoint_MplsTunnelUplinkLabel, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 9),
+			10: Uint32Field(MplsPseudowireTerminationPoint_MplsTunnelDownlinkLabel, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 10),
+			11: ByteField(MplsPseudowireTerminationPoint_MplsTunnelTc, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 11),
+			12: Uint16Field(MplsPseudowireTerminationPoint_PseudowireType, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 12),
+			13: ByteField(MplsPseudowireTerminationPoint_PseudowireControlWordPreference, UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 13),
+			14: ByteField(MplsPseudowireTerminationPoint_AdministrativeState, UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read, Write), false, true, false, 14),
+			15: ByteField(MplsPseudowireTerminationPoint_OperationalState, UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read), true, true, false, 15),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/multicastgeminterworkingterminationpoint.go b/generated/multicastgeminterworkingterminationpoint.go
index fd85a10..d4268d3 100644
--- a/generated/multicastgeminterworkingterminationpoint.go
+++ b/generated/multicastgeminterworkingterminationpoint.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -187,10 +187,23 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const MulticastGemInterworkingTerminationPoint_GemPortNetworkCtpConnectivityPointer = "GemPortNetworkCtpConnectivityPointer"
+const MulticastGemInterworkingTerminationPoint_InterworkingOption = "InterworkingOption"
+const MulticastGemInterworkingTerminationPoint_ServiceProfilePointer = "ServiceProfilePointer"
+const MulticastGemInterworkingTerminationPoint_NotUsed1 = "NotUsed1"
+const MulticastGemInterworkingTerminationPoint_PptpCounter = "PptpCounter"
+const MulticastGemInterworkingTerminationPoint_OperationalState = "OperationalState"
+const MulticastGemInterworkingTerminationPoint_GalProfilePointer = "GalProfilePointer"
+const MulticastGemInterworkingTerminationPoint_NotUsed2 = "NotUsed2"
+const MulticastGemInterworkingTerminationPoint_Ipv4MulticastAddressTable = "Ipv4MulticastAddressTable"
+const MulticastGemInterworkingTerminationPoint_Ipv6MulticastAddressTable = "Ipv6MulticastAddressTable"
+
 func init() {
 	multicastgeminterworkingterminationpointBME = &ManagedEntityDefinition{
 		Name:    "MulticastGemInterworkingTerminationPoint",
-		ClassID: 281,
+		ClassID: MulticastGemInterworkingTerminationPointClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -201,17 +214,17 @@
 		),
 		AllowedAttributeMask: 0xffc0,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  Uint16Field("GemPortNetworkCtpConnectivityPointer", PointerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2:  ByteField("InterworkingOption", EnumerationAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint16Field("ServiceProfilePointer", PointerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
-			4:  Uint16Field("NotUsed1", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
-			5:  ByteField("PptpCounter", UnsignedIntegerAttributeType, 0x0800, 255, mapset.NewSetWith(Read), false, true, false, 5),
-			6:  ByteField("OperationalState", EnumerationAttributeType, 0x0400, 0, mapset.NewSetWith(Read), true, true, false, 6),
-			7:  Uint16Field("GalProfilePointer", PointerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
-			8:  ByteField("NotUsed2", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 8),
-			9:  TableField("Ipv4MulticastAddressTable", TableAttributeType, 0x0080, TableInfo{nil, 12}, mapset.NewSetWith(Read, Write), false, false, false, 9),
-			10: TableField("Ipv6MulticastAddressTable", TableAttributeType, 0x0040, TableInfo{nil, 24}, mapset.NewSetWith(Read, Write), false, true, false, 10),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  Uint16Field(MulticastGemInterworkingTerminationPoint_GemPortNetworkCtpConnectivityPointer, PointerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2:  ByteField(MulticastGemInterworkingTerminationPoint_InterworkingOption, EnumerationAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint16Field(MulticastGemInterworkingTerminationPoint_ServiceProfilePointer, PointerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
+			4:  Uint16Field(MulticastGemInterworkingTerminationPoint_NotUsed1, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
+			5:  ByteField(MulticastGemInterworkingTerminationPoint_PptpCounter, UnsignedIntegerAttributeType, 0x0800, 255, mapset.NewSetWith(Read), false, true, false, 5),
+			6:  ByteField(MulticastGemInterworkingTerminationPoint_OperationalState, EnumerationAttributeType, 0x0400, 0, mapset.NewSetWith(Read), true, true, false, 6),
+			7:  Uint16Field(MulticastGemInterworkingTerminationPoint_GalProfilePointer, PointerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
+			8:  ByteField(MulticastGemInterworkingTerminationPoint_NotUsed2, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 8),
+			9:  TableField(MulticastGemInterworkingTerminationPoint_Ipv4MulticastAddressTable, TableAttributeType, 0x0080, TableInfo{nil, 12}, mapset.NewSetWith(Read, Write), false, false, false, 9),
+			10: TableField(MulticastGemInterworkingTerminationPoint_Ipv6MulticastAddressTable, TableAttributeType, 0x0040, TableInfo{nil, 24}, mapset.NewSetWith(Read, Write), false, true, false, 10),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/multicastoperationsprofile.go b/generated/multicastoperationsprofile.go
index 9db7284..d00bd7b 100644
--- a/generated/multicastoperationsprofile.go
+++ b/generated/multicastoperationsprofile.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -232,10 +232,29 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const MulticastOperationsProfile_IgmpVersion = "IgmpVersion"
+const MulticastOperationsProfile_IgmpFunction = "IgmpFunction"
+const MulticastOperationsProfile_ImmediateLeave = "ImmediateLeave"
+const MulticastOperationsProfile_UpstreamIgmpTci = "UpstreamIgmpTci"
+const MulticastOperationsProfile_UpstreamIgmpTagControl = "UpstreamIgmpTagControl"
+const MulticastOperationsProfile_UpstreamIgmpRate = "UpstreamIgmpRate"
+const MulticastOperationsProfile_DynamicAccessControlListTable = "DynamicAccessControlListTable"
+const MulticastOperationsProfile_StaticAccessControlListTable = "StaticAccessControlListTable"
+const MulticastOperationsProfile_LostGroupsListTable = "LostGroupsListTable"
+const MulticastOperationsProfile_Robustness = "Robustness"
+const MulticastOperationsProfile_QuerierIpAddress = "QuerierIpAddress"
+const MulticastOperationsProfile_QueryInterval = "QueryInterval"
+const MulticastOperationsProfile_QueryMaxResponseTime = "QueryMaxResponseTime"
+const MulticastOperationsProfile_LastMemberQueryInterval = "LastMemberQueryInterval"
+const MulticastOperationsProfile_UnauthorizedJoinRequestBehaviour = "UnauthorizedJoinRequestBehaviour"
+const MulticastOperationsProfile_DownstreamIgmpAndMulticastTci = "DownstreamIgmpAndMulticastTci"
+
 func init() {
 	multicastoperationsprofileBME = &ManagedEntityDefinition{
 		Name:    "MulticastOperationsProfile",
-		ClassID: 309,
+		ClassID: MulticastOperationsProfileClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -246,29 +265,26 @@
 		),
 		AllowedAttributeMask: 0xffff,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("IgmpVersion", EnumerationAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2:  ByteField("IgmpFunction", EnumerationAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  ByteField("ImmediateLeave", EnumerationAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
-			4:  Uint16Field("UpstreamIgmpTci", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 4),
-			5:  ByteField("UpstreamIgmpTagControl", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 5),
-			6:  Uint32Field("UpstreamIgmpRate", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 6),
-			7:  TableField("DynamicAccessControlListTable", TableAttributeType, 0x0200, TableInfo{nil, 24}, mapset.NewSetWith(Read, Write), false, false, false, 7),
-			8:  TableField("StaticAccessControlListTable", TableAttributeType, 0x0100, TableInfo{nil, 24}, mapset.NewSetWith(Read, Write), false, false, false, 8),
-			9:  TableField("LostGroupsListTable", TableAttributeType, 0x0080, TableInfo{nil, 10}, mapset.NewSetWith(Read), false, true, false, 9),
-			10: ByteField("Robustness", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 10),
-			11: Uint32Field("QuerierIpAddress", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 11),
-			12: Uint32Field("QueryInterval", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 12),
-			13: Uint32Field("QueryMaxResponseTime", UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 13),
-			14: Uint32Field("LastMemberQueryInterval", UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read, Write), false, true, false, 14),
-			15: ByteField("UnauthorizedJoinRequestBehaviour", UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read, Write), false, true, false, 15),
-			16: MultiByteField("DownstreamIgmpAndMulticastTci", OctetsAttributeType, 0x0001, 3, toOctets("AAAA"), mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 16),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(MulticastOperationsProfile_IgmpVersion, EnumerationAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2:  ByteField(MulticastOperationsProfile_IgmpFunction, EnumerationAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  ByteField(MulticastOperationsProfile_ImmediateLeave, EnumerationAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
+			4:  Uint16Field(MulticastOperationsProfile_UpstreamIgmpTci, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 4),
+			5:  ByteField(MulticastOperationsProfile_UpstreamIgmpTagControl, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 5),
+			6:  Uint32Field(MulticastOperationsProfile_UpstreamIgmpRate, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 6),
+			7:  TableField(MulticastOperationsProfile_DynamicAccessControlListTable, TableAttributeType, 0x0200, TableInfo{nil, 24}, mapset.NewSetWith(Read, Write), false, false, false, 7),
+			8:  TableField(MulticastOperationsProfile_StaticAccessControlListTable, TableAttributeType, 0x0100, TableInfo{nil, 24}, mapset.NewSetWith(Read, Write), false, false, false, 8),
+			9:  TableField(MulticastOperationsProfile_LostGroupsListTable, TableAttributeType, 0x0080, TableInfo{nil, 10}, mapset.NewSetWith(Read), false, true, false, 9),
+			10: ByteField(MulticastOperationsProfile_Robustness, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 10),
+			11: Uint32Field(MulticastOperationsProfile_QuerierIpAddress, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 11),
+			12: Uint32Field(MulticastOperationsProfile_QueryInterval, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 12),
+			13: Uint32Field(MulticastOperationsProfile_QueryMaxResponseTime, UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 13),
+			14: Uint32Field(MulticastOperationsProfile_LastMemberQueryInterval, UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read, Write), false, true, false, 14),
+			15: ByteField(MulticastOperationsProfile_UnauthorizedJoinRequestBehaviour, UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read, Write), false, true, false, 15),
+			16: MultiByteField(MulticastOperationsProfile_DownstreamIgmpAndMulticastTci, OctetsAttributeType, 0x0001, 3, toOctets("AAAA"), mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 16),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
-		Alarms: AlarmMap{
-			0: "Lost multicast group",
-		},
 	}
 }
 
diff --git a/generated/multicastsubscriberconfiginfo.go b/generated/multicastsubscriberconfiginfo.go
index 1932b6b..72670ef 100644
--- a/generated/multicastsubscriberconfiginfo.go
+++ b/generated/multicastsubscriberconfiginfo.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -168,10 +168,20 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const MulticastSubscriberConfigInfo_MeType = "MeType"
+const MulticastSubscriberConfigInfo_MulticastOperationsProfilePointer = "MulticastOperationsProfilePointer"
+const MulticastSubscriberConfigInfo_MaxSimultaneousGroups = "MaxSimultaneousGroups"
+const MulticastSubscriberConfigInfo_MaxMulticastBandwidth = "MaxMulticastBandwidth"
+const MulticastSubscriberConfigInfo_BandwidthEnforcement = "BandwidthEnforcement"
+const MulticastSubscriberConfigInfo_MulticastServicePackageTable = "MulticastServicePackageTable"
+const MulticastSubscriberConfigInfo_AllowedPreviewGroupsTable = "AllowedPreviewGroupsTable"
+
 func init() {
 	multicastsubscriberconfiginfoBME = &ManagedEntityDefinition{
 		Name:    "MulticastSubscriberConfigInfo",
-		ClassID: 310,
+		ClassID: MulticastSubscriberConfigInfoClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -182,14 +192,14 @@
 		),
 		AllowedAttributeMask: 0xfe00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("MeType", EnumerationAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2: Uint16Field("MulticastOperationsProfilePointer", PointerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint16Field("MaxSimultaneousGroups", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 3),
-			4: Uint32Field("MaxMulticastBandwidth", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 4),
-			5: ByteField("BandwidthEnforcement", EnumerationAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 5),
-			6: TableField("MulticastServicePackageTable", TableAttributeType, 0x0400, TableInfo{nil, 20}, mapset.NewSetWith(Read, Write), false, true, false, 6),
-			7: TableField("AllowedPreviewGroupsTable", TableAttributeType, 0x0200, TableInfo{nil, 22}, mapset.NewSetWith(Read, Write), false, false, false, 7),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(MulticastSubscriberConfigInfo_MeType, EnumerationAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2: Uint16Field(MulticastSubscriberConfigInfo_MulticastOperationsProfilePointer, PointerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint16Field(MulticastSubscriberConfigInfo_MaxSimultaneousGroups, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 3),
+			4: Uint32Field(MulticastSubscriberConfigInfo_MaxMulticastBandwidth, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 4),
+			5: ByteField(MulticastSubscriberConfigInfo_BandwidthEnforcement, EnumerationAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 5),
+			6: TableField(MulticastSubscriberConfigInfo_MulticastServicePackageTable, TableAttributeType, 0x0400, TableInfo{nil, 20}, mapset.NewSetWith(Read, Write), false, true, false, 6),
+			7: TableField(MulticastSubscriberConfigInfo_AllowedPreviewGroupsTable, TableAttributeType, 0x0200, TableInfo{nil, 22}, mapset.NewSetWith(Read, Write), false, false, false, 7),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/multicastsubscribermonitor.go b/generated/multicastsubscribermonitor.go
index a43d342..b9f6565 100644
--- a/generated/multicastsubscribermonitor.go
+++ b/generated/multicastsubscribermonitor.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -119,10 +119,19 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const MulticastSubscriberMonitor_MeType = "MeType"
+const MulticastSubscriberMonitor_CurrentMulticastBandwidth = "CurrentMulticastBandwidth"
+const MulticastSubscriberMonitor_JoinMessagesCounter = "JoinMessagesCounter"
+const MulticastSubscriberMonitor_BandwidthExceededCounter = "BandwidthExceededCounter"
+const MulticastSubscriberMonitor_Ipv4ActiveGroupListTable = "Ipv4ActiveGroupListTable"
+const MulticastSubscriberMonitor_Ipv6ActiveGroupListTable = "Ipv6ActiveGroupListTable"
+
 func init() {
 	multicastsubscribermonitorBME = &ManagedEntityDefinition{
 		Name:    "MulticastSubscriberMonitor",
-		ClassID: 311,
+		ClassID: MulticastSubscriberMonitorClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -132,13 +141,13 @@
 		),
 		AllowedAttributeMask: 0xfc00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("MeType", EnumerationAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2: Uint32Field("CurrentMulticastBandwidth", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, true, false, 2),
-			3: Uint32Field("JoinMessagesCounter", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, true, false, 3),
-			4: Uint32Field("BandwidthExceededCounter", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, true, false, 4),
-			5: TableField("Ipv4ActiveGroupListTable", TableAttributeType, 0x0800, TableInfo{nil, 24}, mapset.NewSetWith(Read), false, false, false, 5),
-			6: TableField("Ipv6ActiveGroupListTable", TableAttributeType, 0x0400, TableInfo{nil, 58}, mapset.NewSetWith(Read), false, true, false, 6),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(MulticastSubscriberMonitor_MeType, EnumerationAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2: Uint32Field(MulticastSubscriberMonitor_CurrentMulticastBandwidth, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, true, false, 2),
+			3: Uint32Field(MulticastSubscriberMonitor_JoinMessagesCounter, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, true, false, 3),
+			4: Uint32Field(MulticastSubscriberMonitor_BandwidthExceededCounter, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, true, false, 4),
+			5: TableField(MulticastSubscriberMonitor_Ipv4ActiveGroupListTable, TableAttributeType, 0x0800, TableInfo{nil, 24}, mapset.NewSetWith(Read), false, false, false, 5),
+			6: TableField(MulticastSubscriberMonitor_Ipv6ActiveGroupListTable, TableAttributeType, 0x0400, TableInfo{nil, 58}, mapset.NewSetWith(Read), false, true, false, 6),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/networkaddress.go b/generated/networkaddress.go
index e965db7..1dfb11c 100644
--- a/generated/networkaddress.go
+++ b/generated/networkaddress.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -68,10 +68,15 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const NetworkAddress_SecurityPointer = "SecurityPointer"
+const NetworkAddress_AddressPointer = "AddressPointer"
+
 func init() {
 	networkaddressBME = &ManagedEntityDefinition{
 		Name:    "NetworkAddress",
-		ClassID: 137,
+		ClassID: NetworkAddressClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -80,9 +85,9 @@
 		),
 		AllowedAttributeMask: 0xc000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: Uint16Field("SecurityPointer", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2: Uint16Field("AddressPointer", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: Uint16Field(NetworkAddress_SecurityPointer, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2: Uint16Field(NetworkAddress_AddressPointer, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/networkdialplantable.go b/generated/networkdialplantable.go
index 212aa55..59e917f 100644
--- a/generated/networkdialplantable.go
+++ b/generated/networkdialplantable.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -104,10 +104,19 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const NetworkDialPlanTable_DialPlanNumber = "DialPlanNumber"
+const NetworkDialPlanTable_DialPlanTableMaxSize = "DialPlanTableMaxSize"
+const NetworkDialPlanTable_CriticalDialTimeout = "CriticalDialTimeout"
+const NetworkDialPlanTable_PartialDialTimeout = "PartialDialTimeout"
+const NetworkDialPlanTable_DialPlanFormat = "DialPlanFormat"
+const NetworkDialPlanTable_DialPlanTable = "DialPlanTable"
+
 func init() {
 	networkdialplantableBME = &ManagedEntityDefinition{
 		Name:    "NetworkDialPlanTable",
-		ClassID: 145,
+		ClassID: NetworkDialPlanTableClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -118,13 +127,13 @@
 		),
 		AllowedAttributeMask: 0xfc00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: Uint16Field("DialPlanNumber", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: Uint16Field("DialPlanTableMaxSize", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 2),
-			3: Uint16Field("CriticalDialTimeout", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
-			4: Uint16Field("PartialDialTimeout", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
-			5: ByteField("DialPlanFormat", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
-			6: TableField("DialPlanTable", TableAttributeType, 0x0400, TableInfo{nil, 30}, mapset.NewSetWith(Read, Write), false, false, false, 6),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: Uint16Field(NetworkDialPlanTable_DialPlanNumber, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: Uint16Field(NetworkDialPlanTable_DialPlanTableMaxSize, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 2),
+			3: Uint16Field(NetworkDialPlanTable_CriticalDialTimeout, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
+			4: Uint16Field(NetworkDialPlanTable_PartialDialTimeout, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
+			5: ByteField(NetworkDialPlanTable_DialPlanFormat, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
+			6: TableField(NetworkDialPlanTable_DialPlanTable, TableAttributeType, 0x0400, TableInfo{nil, 30}, mapset.NewSetWith(Read, Write), false, false, false, 6),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/octetstring.go b/generated/octetstring.go
index 941761d..628a9e6 100644
--- a/generated/octetstring.go
+++ b/generated/octetstring.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -138,10 +138,29 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const OctetString_Length = "Length"
+const OctetString_Part1 = "Part1"
+const OctetString_Part2 = "Part2"
+const OctetString_Part3 = "Part3"
+const OctetString_Part4 = "Part4"
+const OctetString_Part5 = "Part5"
+const OctetString_Part6 = "Part6"
+const OctetString_Part7 = "Part7"
+const OctetString_Part8 = "Part8"
+const OctetString_Part9 = "Part9"
+const OctetString_Part10 = "Part10"
+const OctetString_Part11 = "Part11"
+const OctetString_Part12 = "Part12"
+const OctetString_Part13 = "Part13"
+const OctetString_Part14 = "Part14"
+const OctetString_Part15 = "Part15"
+
 func init() {
 	octetstringBME = &ManagedEntityDefinition{
 		Name:    "OctetString",
-		ClassID: 307,
+		ClassID: OctetStringClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -150,23 +169,23 @@
 		),
 		AllowedAttributeMask: 0xffff,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  Uint16Field("Length", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
-			2:  MultiByteField("Part1", OctetsAttributeType, 0x4000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 2),
-			3:  MultiByteField("Part2", OctetsAttributeType, 0x2000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 3),
-			4:  MultiByteField("Part3", OctetsAttributeType, 0x1000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 4),
-			5:  MultiByteField("Part4", OctetsAttributeType, 0x0800, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 5),
-			6:  MultiByteField("Part5", OctetsAttributeType, 0x0400, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 6),
-			7:  MultiByteField("Part6", OctetsAttributeType, 0x0200, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 7),
-			8:  MultiByteField("Part7", OctetsAttributeType, 0x0100, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 8),
-			9:  MultiByteField("Part8", OctetsAttributeType, 0x0080, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 9),
-			10: MultiByteField("Part9", OctetsAttributeType, 0x0040, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 10),
-			11: MultiByteField("Part10", OctetsAttributeType, 0x0020, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 11),
-			12: MultiByteField("Part11", OctetsAttributeType, 0x0010, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 12),
-			13: MultiByteField("Part12", OctetsAttributeType, 0x0008, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 13),
-			14: MultiByteField("Part13", OctetsAttributeType, 0x0004, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 14),
-			15: MultiByteField("Part14", OctetsAttributeType, 0x0002, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 15),
-			16: MultiByteField("Part15", OctetsAttributeType, 0x0001, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 16),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  Uint16Field(OctetString_Length, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			2:  MultiByteField(OctetString_Part1, OctetsAttributeType, 0x4000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 2),
+			3:  MultiByteField(OctetString_Part2, OctetsAttributeType, 0x2000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 3),
+			4:  MultiByteField(OctetString_Part3, OctetsAttributeType, 0x1000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 4),
+			5:  MultiByteField(OctetString_Part4, OctetsAttributeType, 0x0800, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 5),
+			6:  MultiByteField(OctetString_Part5, OctetsAttributeType, 0x0400, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 6),
+			7:  MultiByteField(OctetString_Part6, OctetsAttributeType, 0x0200, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 7),
+			8:  MultiByteField(OctetString_Part7, OctetsAttributeType, 0x0100, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 8),
+			9:  MultiByteField(OctetString_Part8, OctetsAttributeType, 0x0080, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 9),
+			10: MultiByteField(OctetString_Part9, OctetsAttributeType, 0x0040, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 10),
+			11: MultiByteField(OctetString_Part10, OctetsAttributeType, 0x0020, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 11),
+			12: MultiByteField(OctetString_Part11, OctetsAttributeType, 0x0010, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 12),
+			13: MultiByteField(OctetString_Part12, OctetsAttributeType, 0x0008, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 13),
+			14: MultiByteField(OctetString_Part13, OctetsAttributeType, 0x0004, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 14),
+			15: MultiByteField(OctetString_Part14, OctetsAttributeType, 0x0002, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 15),
+			16: MultiByteField(OctetString_Part15, OctetsAttributeType, 0x0001, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 16),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/olt-g.go b/generated/olt-g.go
index fbbff70..07e8f79 100644
--- a/generated/olt-g.go
+++ b/generated/olt-g.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -80,21 +80,28 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const OltG_OltVendorId = "OltVendorId"
+const OltG_EquipmentId = "EquipmentId"
+const OltG_Version = "Version"
+const OltG_TimeOfDayInformation = "TimeOfDayInformation"
+
 func init() {
 	oltgBME = &ManagedEntityDefinition{
 		Name:    "OltG",
-		ClassID: 131,
+		ClassID: OltGClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
 		),
 		AllowedAttributeMask: 0xf000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: MultiByteField("OltVendorId", StringAttributeType, 0x8000, 4, toOctets("ICAgIA=="), mapset.NewSetWith(Read, Write), false, false, false, 1),
-			2: MultiByteField("EquipmentId", StringAttributeType, 0x4000, 20, toOctets("ICAgICAgICAgICAgICAgICAgICA="), mapset.NewSetWith(Read, Write), false, false, false, 2),
-			3: MultiByteField("Version", StringAttributeType, 0x2000, 14, toOctets("MAAAAAAAAAAAAAAAAAA="), mapset.NewSetWith(Read, Write), false, false, false, 3),
-			4: MultiByteField("TimeOfDayInformation", OctetsAttributeType, 0x1000, 14, toOctets("AAAAAAAAAAAAAAAAAAA="), mapset.NewSetWith(Read, Write), false, true, false, 4),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: MultiByteField(OltG_OltVendorId, StringAttributeType, 0x8000, 4, toOctets("ICAgIA=="), mapset.NewSetWith(Read, Write), false, false, false, 1),
+			2: MultiByteField(OltG_EquipmentId, StringAttributeType, 0x4000, 20, toOctets("ICAgICAgICAgICAgICAgICAgICA="), mapset.NewSetWith(Read, Write), false, false, false, 2),
+			3: MultiByteField(OltG_Version, StringAttributeType, 0x2000, 14, toOctets("MAAAAAAAAAAAAAAAAAA="), mapset.NewSetWith(Read, Write), false, false, false, 3),
+			4: MultiByteField(OltG_TimeOfDayInformation, OctetsAttributeType, 0x1000, 14, toOctets("AAAAAAAAAAAAAAAAAAA="), mapset.NewSetWith(Read, Write), false, true, false, 4),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/omci.go b/generated/omci.go
index 77b4777..0480bd6 100644
--- a/generated/omci.go
+++ b/generated/omci.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -58,19 +58,24 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const Omci_MeTypeTable = "MeTypeTable"
+const Omci_MessageTypeTable = "MessageTypeTable"
+
 func init() {
 	omciBME = &ManagedEntityDefinition{
 		Name:    "Omci",
-		ClassID: 287,
+		ClassID: OmciClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			GetNext,
 		),
 		AllowedAttributeMask: 0xc000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: TableField("MeTypeTable", TableAttributeType, 0x8000, TableInfo{nil, 2}, mapset.NewSetWith(Read), false, false, false, 1),
-			2: TableField("MessageTypeTable", TableAttributeType, 0x4000, TableInfo{nil, 1}, mapset.NewSetWith(Read), false, false, false, 2),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: TableField(Omci_MeTypeTable, TableAttributeType, 0x8000, TableInfo{nil, 2}, mapset.NewSetWith(Read), false, false, false, 1),
+			2: TableField(Omci_MessageTypeTable, TableAttributeType, 0x4000, TableInfo{nil, 1}, mapset.NewSetWith(Read), false, false, false, 2),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/omcidefs.go b/generated/omcidefs.go
index 5e845ff..82ff2ef 100644
--- a/generated/omcidefs.go
+++ b/generated/omcidefs.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
diff --git a/generated/omcierror.go b/generated/omcierror.go
index 059e5ca..ff29a0e 100644
--- a/generated/omcierror.go
+++ b/generated/omcierror.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
diff --git a/generated/onu-g.go b/generated/onu-g.go
index 04bdca0..cf259ae 100644
--- a/generated/onu-g.go
+++ b/generated/onu-g.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -157,10 +157,26 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const OnuG_VendorId = "VendorId"
+const OnuG_Version = "Version"
+const OnuG_SerialNumber = "SerialNumber"
+const OnuG_TrafficManagementOption = "TrafficManagementOption"
+const OnuG_Deprecated = "Deprecated"
+const OnuG_BatteryBackup = "BatteryBackup"
+const OnuG_AdministrativeState = "AdministrativeState"
+const OnuG_OperationalState = "OperationalState"
+const OnuG_OnuSurvivalTime = "OnuSurvivalTime"
+const OnuG_LogicalOnuId = "LogicalOnuId"
+const OnuG_LogicalPassword = "LogicalPassword"
+const OnuG_CredentialsStatus = "CredentialsStatus"
+const OnuG_ExtendedTcLayerOptions = "ExtendedTcLayerOptions"
+
 func init() {
 	onugBME = &ManagedEntityDefinition{
 		Name:    "OnuG",
-		ClassID: 256,
+		ClassID: OnuGClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Reboot,
@@ -170,20 +186,20 @@
 		),
 		AllowedAttributeMask: 0xfff8,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  MultiByteField("VendorId", StringAttributeType, 0x8000, 4, toOctets("ICAgIA=="), mapset.NewSetWith(Read), false, false, false, 1),
-			2:  MultiByteField("Version", StringAttributeType, 0x4000, 14, toOctets("MAAAAAAAAAAAAAAAAAA="), mapset.NewSetWith(Read), false, false, false, 2),
-			3:  MultiByteField("SerialNumber", OctetsAttributeType, 0x2000, 8, toOctets("AAAAAAAAAAA="), mapset.NewSetWith(Read), false, false, false, 3),
-			4:  ByteField("TrafficManagementOption", EnumerationAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  ByteField("Deprecated", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, true, true, 5),
-			6:  ByteField("BatteryBackup", EnumerationAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
-			7:  ByteField("AdministrativeState", EnumerationAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
-			8:  ByteField("OperationalState", EnumerationAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, true, false, 8),
-			9:  ByteField("OnuSurvivalTime", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, true, false, 9),
-			10: MultiByteField("LogicalOnuId", OctetsAttributeType, 0x0040, 24, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), mapset.NewSetWith(Read), false, true, false, 10),
-			11: MultiByteField("LogicalPassword", OctetsAttributeType, 0x0020, 12, toOctets("AAAAAAAAAAAAAAAA"), mapset.NewSetWith(Read), false, true, false, 11),
-			12: ByteField("CredentialsStatus", EnumerationAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, true, false, 12),
-			13: Uint16Field("ExtendedTcLayerOptions", BitFieldAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, true, false, 13),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  MultiByteField(OnuG_VendorId, StringAttributeType, 0x8000, 4, toOctets("ICAgIA=="), mapset.NewSetWith(Read), false, false, false, 1),
+			2:  MultiByteField(OnuG_Version, StringAttributeType, 0x4000, 14, toOctets("MAAAAAAAAAAAAAAAAAA="), mapset.NewSetWith(Read), false, false, false, 2),
+			3:  MultiByteField(OnuG_SerialNumber, OctetsAttributeType, 0x2000, 8, toOctets("AAAAAAAAAAA="), mapset.NewSetWith(Read), false, false, false, 3),
+			4:  ByteField(OnuG_TrafficManagementOption, EnumerationAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  ByteField(OnuG_Deprecated, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, true, true, 5),
+			6:  ByteField(OnuG_BatteryBackup, EnumerationAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
+			7:  ByteField(OnuG_AdministrativeState, EnumerationAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
+			8:  ByteField(OnuG_OperationalState, EnumerationAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, true, false, 8),
+			9:  ByteField(OnuG_OnuSurvivalTime, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, true, false, 9),
+			10: MultiByteField(OnuG_LogicalOnuId, OctetsAttributeType, 0x0040, 24, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), mapset.NewSetWith(Read), false, true, false, 10),
+			11: MultiByteField(OnuG_LogicalPassword, OctetsAttributeType, 0x0020, 12, toOctets("AAAAAAAAAAAAAAAA"), mapset.NewSetWith(Read), false, true, false, 11),
+			12: ByteField(OnuG_CredentialsStatus, EnumerationAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, true, false, 12),
+			13: Uint16Field(OnuG_ExtendedTcLayerOptions, BitFieldAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, true, false, 13),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/onu2-g.go b/generated/onu2-g.go
index 6ee350e..54c7905 100644
--- a/generated/onu2-g.go
+++ b/generated/onu2-g.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -216,31 +216,48 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const Onu2G_EquipmentId = "EquipmentId"
+const Onu2G_OpticalNetworkUnitManagementAndControlChannelOmccVersion = "OpticalNetworkUnitManagementAndControlChannelOmccVersion"
+const Onu2G_VendorProductCode = "VendorProductCode"
+const Onu2G_SecurityCapability = "SecurityCapability"
+const Onu2G_SecurityMode = "SecurityMode"
+const Onu2G_TotalPriorityQueueNumber = "TotalPriorityQueueNumber"
+const Onu2G_TotalTrafficSchedulerNumber = "TotalTrafficSchedulerNumber"
+const Onu2G_Deprecated = "Deprecated"
+const Onu2G_TotalGemPortIdNumber = "TotalGemPortIdNumber"
+const Onu2G_Sysuptime = "Sysuptime"
+const Onu2G_ConnectivityCapability = "ConnectivityCapability"
+const Onu2G_CurrentConnectivityMode = "CurrentConnectivityMode"
+const Onu2G_QualityOfServiceQosConfigurationFlexibility = "QualityOfServiceQosConfigurationFlexibility"
+const Onu2G_PriorityQueueScaleFactor = "PriorityQueueScaleFactor"
+
 func init() {
 	onu2gBME = &ManagedEntityDefinition{
 		Name:    "Onu2G",
-		ClassID: 257,
+		ClassID: Onu2GClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
 		),
 		AllowedAttributeMask: 0xfffc,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  MultiByteField("EquipmentId", StringAttributeType, 0x8000, 20, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAA="), mapset.NewSetWith(Read), false, true, false, 1),
-			2:  ByteField("OpticalNetworkUnitManagementAndControlChannelOmccVersion", EnumerationAttributeType, 0x4000, 164, mapset.NewSetWith(Read), true, false, false, 2),
-			3:  Uint16Field("VendorProductCode", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, true, false, 3),
-			4:  ByteField("SecurityCapability", EnumerationAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  ByteField("SecurityMode", EnumerationAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
-			6:  Uint16Field("TotalPriorityQueueNumber", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  ByteField("TotalTrafficSchedulerNumber", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8:  ByteField("Deprecated", UnsignedIntegerAttributeType, 0x0100, 1, mapset.NewSetWith(Read), false, false, true, 8),
-			9:  Uint16Field("TotalGemPortIdNumber", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, true, false, 9),
-			10: Uint32Field("Sysuptime", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, true, false, 10),
-			11: Uint16Field("ConnectivityCapability", BitFieldAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, true, false, 11),
-			12: ByteField("CurrentConnectivityMode", BitFieldAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, true, false, 12),
-			13: Uint16Field("QualityOfServiceQosConfigurationFlexibility", BitFieldAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, true, false, 13),
-			14: Uint16Field("PriorityQueueScaleFactor", UnsignedIntegerAttributeType, 0x0004, 1, mapset.NewSetWith(Read, Write), false, true, false, 14),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  MultiByteField(Onu2G_EquipmentId, StringAttributeType, 0x8000, 20, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAA="), mapset.NewSetWith(Read), false, true, false, 1),
+			2:  ByteField(Onu2G_OpticalNetworkUnitManagementAndControlChannelOmccVersion, EnumerationAttributeType, 0x4000, 164, mapset.NewSetWith(Read), true, false, false, 2),
+			3:  Uint16Field(Onu2G_VendorProductCode, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, true, false, 3),
+			4:  ByteField(Onu2G_SecurityCapability, EnumerationAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  ByteField(Onu2G_SecurityMode, EnumerationAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
+			6:  Uint16Field(Onu2G_TotalPriorityQueueNumber, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  ByteField(Onu2G_TotalTrafficSchedulerNumber, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8:  ByteField(Onu2G_Deprecated, UnsignedIntegerAttributeType, 0x0100, 1, mapset.NewSetWith(Read), false, false, true, 8),
+			9:  Uint16Field(Onu2G_TotalGemPortIdNumber, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, true, false, 9),
+			10: Uint32Field(Onu2G_Sysuptime, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, true, false, 10),
+			11: Uint16Field(Onu2G_ConnectivityCapability, BitFieldAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, true, false, 11),
+			12: ByteField(Onu2G_CurrentConnectivityMode, BitFieldAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, true, false, 12),
+			13: Uint16Field(Onu2G_QualityOfServiceQosConfigurationFlexibility, BitFieldAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, true, false, 13),
+			14: Uint16Field(Onu2G_PriorityQueueScaleFactor, UnsignedIntegerAttributeType, 0x0004, 1, mapset.NewSetWith(Read, Write), false, true, false, 14),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/onu3-g.go b/generated/onu3-g.go
index 3e156b6..b879ed7 100644
--- a/generated/onu3-g.go
+++ b/generated/onu3-g.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -122,26 +122,39 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const Onu3G_FlashMemoryPerformanceValue = "FlashMemoryPerformanceValue"
+const Onu3G_LatestRestartReason = "LatestRestartReason"
+const Onu3G_TotalNumberOfStatusSnapshots = "TotalNumberOfStatusSnapshots"
+const Onu3G_NumberOfValidStatusSnapshots = "NumberOfValidStatusSnapshots"
+const Onu3G_NextStatusSnapshotIndex = "NextStatusSnapshotIndex"
+const Onu3G_StatusSnapshotRecordTable = "StatusSnapshotRecordTable"
+const Onu3G_SnapAction = "SnapAction"
+const Onu3G_MostRecentStatusSnapshot = "MostRecentStatusSnapshot"
+const Onu3G_ResetAction = "ResetAction"
+const Onu3G_EnhancedMode = "EnhancedMode"
+
 func init() {
 	onu3gBME = &ManagedEntityDefinition{
 		Name:    "Onu3G",
-		ClassID: 441,
+		ClassID: Onu3GClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 		),
 		AllowedAttributeMask: 0xffc0,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  ByteField("FlashMemoryPerformanceValue", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), true, true, false, 1),
-			2:  ByteField("LatestRestartReason", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
-			3:  Uint16Field("TotalNumberOfStatusSnapshots", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), true, false, false, 3),
-			4:  Uint16Field("NumberOfValidStatusSnapshots", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  Uint16Field("NextStatusSnapshotIndex", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6:  MultiByteField("StatusSnapshotRecordTable", OctetsAttributeType, 0x0400, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 6),
-			7:  ByteField("SnapAction", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Write), false, false, false, 7),
-			8:  MultiByteField("MostRecentStatusSnapshot", OctetsAttributeType, 0x0100, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 8),
-			9:  ByteField("ResetAction", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Write), false, false, false, 9),
-			10: ByteField("EnhancedMode", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, true, false, 10),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  ByteField(Onu3G_FlashMemoryPerformanceValue, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), true, true, false, 1),
+			2:  ByteField(Onu3G_LatestRestartReason, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
+			3:  Uint16Field(Onu3G_TotalNumberOfStatusSnapshots, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), true, false, false, 3),
+			4:  Uint16Field(Onu3G_NumberOfValidStatusSnapshots, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  Uint16Field(Onu3G_NextStatusSnapshotIndex, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6:  MultiByteField(Onu3G_StatusSnapshotRecordTable, OctetsAttributeType, 0x0400, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 6),
+			7:  ByteField(Onu3G_SnapAction, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Write), false, false, false, 7),
+			8:  MultiByteField(Onu3G_MostRecentStatusSnapshot, OctetsAttributeType, 0x0100, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 8),
+			9:  ByteField(Onu3G_ResetAction, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Write), false, false, false, 9),
+			10: ByteField(Onu3G_EnhancedMode, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, true, false, 10),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/onudata.go b/generated/onudata.go
index 4e22678..e31b2b2 100644
--- a/generated/onudata.go
+++ b/generated/onudata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -58,10 +58,14 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const OnuData_MibDataSync = "MibDataSync"
+
 func init() {
 	onudataBME = &ManagedEntityDefinition{
 		Name:    "OnuData",
-		ClassID: 2,
+		ClassID: OnuDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			GetAllAlarms,
@@ -73,8 +77,8 @@
 		),
 		AllowedAttributeMask: 0x8000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: ByteField("MibDataSync", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: ByteField(OnuData_MibDataSync, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/onudynamicpowermanagementcontrol.go b/generated/onudynamicpowermanagementcontrol.go
index ebb2f39..3a22c36 100644
--- a/generated/onudynamicpowermanagementcontrol.go
+++ b/generated/onudynamicpowermanagementcontrol.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -152,29 +152,44 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const OnuDynamicPowerManagementControl_PowerReductionManagementCapability = "PowerReductionManagementCapability"
+const OnuDynamicPowerManagementControl_PowerReductionManagementMode = "PowerReductionManagementMode"
+const OnuDynamicPowerManagementControl_Itransinit = "Itransinit"
+const OnuDynamicPowerManagementControl_Itxinit = "Itxinit"
+const OnuDynamicPowerManagementControl_MaximumSleepInterval = "MaximumSleepInterval"
+const OnuDynamicPowerManagementControl_MaximumReceiverOffInterval = "MaximumReceiverOffInterval"
+const OnuDynamicPowerManagementControl_MinimumAwareInterval = "MinimumAwareInterval"
+const OnuDynamicPowerManagementControl_MinimumActiveHeldInterval = "MinimumActiveHeldInterval"
+const OnuDynamicPowerManagementControl_MaximumSleepIntervalExtension = "MaximumSleepIntervalExtension"
+const OnuDynamicPowerManagementControl_EthernetPassiveOpticalNetworkEponCapabilityExtension = "EthernetPassiveOpticalNetworkEponCapabilityExtension"
+const OnuDynamicPowerManagementControl_EponSetupExtension = "EponSetupExtension"
+const OnuDynamicPowerManagementControl_MissingConsecutiveBurstsThreshold = "MissingConsecutiveBurstsThreshold"
+
 func init() {
 	onudynamicpowermanagementcontrolBME = &ManagedEntityDefinition{
 		Name:    "OnuDynamicPowerManagementControl",
-		ClassID: 336,
+		ClassID: OnuDynamicPowerManagementControlClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
 		),
 		AllowedAttributeMask: 0xfff0,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  ByteField("PowerReductionManagementCapability", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  ByteField("PowerReductionManagementMode", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
-			3:  Uint16Field("Itransinit", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4:  Uint16Field("Itxinit", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  Uint32Field("MaximumSleepInterval", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
-			6:  Uint32Field("MaximumReceiverOffInterval", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
-			7:  Uint32Field("MinimumAwareInterval", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
-			8:  Uint16Field("MinimumActiveHeldInterval", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, false, false, 8),
-			9:  Uint64Field("MaximumSleepIntervalExtension", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, true, false, 9),
-			10: ByteField("EthernetPassiveOpticalNetworkEponCapabilityExtension", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, true, false, 10),
-			11: ByteField("EponSetupExtension", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, true, false, 11),
-			12: Uint32Field("MissingConsecutiveBurstsThreshold", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, false, false, 12),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  ByteField(OnuDynamicPowerManagementControl_PowerReductionManagementCapability, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  ByteField(OnuDynamicPowerManagementControl_PowerReductionManagementMode, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
+			3:  Uint16Field(OnuDynamicPowerManagementControl_Itransinit, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4:  Uint16Field(OnuDynamicPowerManagementControl_Itxinit, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  Uint32Field(OnuDynamicPowerManagementControl_MaximumSleepInterval, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
+			6:  Uint32Field(OnuDynamicPowerManagementControl_MaximumReceiverOffInterval, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
+			7:  Uint32Field(OnuDynamicPowerManagementControl_MinimumAwareInterval, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
+			8:  Uint16Field(OnuDynamicPowerManagementControl_MinimumActiveHeldInterval, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, false, false, 8),
+			9:  Uint64Field(OnuDynamicPowerManagementControl_MaximumSleepIntervalExtension, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, true, false, 9),
+			10: ByteField(OnuDynamicPowerManagementControl_EthernetPassiveOpticalNetworkEponCapabilityExtension, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, true, false, 10),
+			11: ByteField(OnuDynamicPowerManagementControl_EponSetupExtension, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, true, false, 11),
+			12: Uint32Field(OnuDynamicPowerManagementControl_MissingConsecutiveBurstsThreshold, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, false, false, 12),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/onumanufacturingdata.go b/generated/onumanufacturingdata.go
index 8e01750..71f5827 100644
--- a/generated/onumanufacturingdata.go
+++ b/generated/onumanufacturingdata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -49,11 +49,17 @@
 //			This attribute contains the manufacturer name of this physical ONU. The preferred value is the
 //			manufacturer name string printed on the ONU itself (if present). (R) (optional) (25 bytes)
 //
-//		Serial Number Part 1, Serial Number Part 2
-//			These two attributes may be regarded as an ASCII string of up to 32 bytes whose length is a left
-//			justified manufacturer's serial number for this physical ONU. The preferred value is the
-//			manufacturer serial number string printed on the ONU itself (if present). (R) (optional)
-//			(25-bytes*2 attributes)
+//		Serial Number 1
+//			Serial number part 1, serial number part 2: These two attributes may be regarded as an ASCII
+//			string of up to 32 bytes whose length is a left justified manufacturer's serial number for this
+//			physical ONU. The preferred value is the manufacturer serial number string printed on the ONU
+//			itself (if present). (R) (optional) (25-bytes*2 attributes)
+//
+//		Serial Number 2
+//			Serial number part 1, serial number part 2: These two attributes may be regarded as an ASCII
+//			string of up to 32 bytes whose length is a left justified manufacturer's serial number for this
+//			physical ONU. The preferred value is the manufacturer serial number string printed on the ONU
+//			itself (if present). (R) (optional) (25-bytes*2 attributes)
 //
 //		Model Name
 //			This attribute contains the vendor specific model name identifier string. The preferred value is
@@ -78,22 +84,33 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const OnuManufacturingData_ManufacturerName = "ManufacturerName"
+const OnuManufacturingData_SerialNumber1 = "SerialNumber1"
+const OnuManufacturingData_SerialNumber2 = "SerialNumber2"
+const OnuManufacturingData_ModelName = "ModelName"
+const OnuManufacturingData_ManufacturingDate = "ManufacturingDate"
+const OnuManufacturingData_HardwareRevision = "HardwareRevision"
+const OnuManufacturingData_FirmwareRevision = "FirmwareRevision"
+
 func init() {
 	onumanufacturingdataBME = &ManagedEntityDefinition{
 		Name:    "OnuManufacturingData",
-		ClassID: 456,
+		ClassID: OnuManufacturingDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 		),
-		AllowedAttributeMask: 0xfc00,
+		AllowedAttributeMask: 0xfe00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: MultiByteField("ManufacturerName", OctetsAttributeType, 0x8000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, true, false, 1),
-			2: MultiByteField("SerialNumberPart1,SerialNumberPart2", OctetsAttributeType, 0x4000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, true, false, 2),
-			3: MultiByteField("ModelName", OctetsAttributeType, 0x2000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, true, false, 3),
-			4: MultiByteField("ManufacturingDate", OctetsAttributeType, 0x1000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, true, false, 4),
-			5: MultiByteField("HardwareRevision", OctetsAttributeType, 0x0800, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, true, false, 5),
-			6: MultiByteField("FirmwareRevision", OctetsAttributeType, 0x0400, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, true, false, 6),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: MultiByteField(OnuManufacturingData_ManufacturerName, OctetsAttributeType, 0x8000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, true, false, 1),
+			2: MultiByteField(OnuManufacturingData_SerialNumber1, OctetsAttributeType, 0x4000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, true, false, 2),
+			3: MultiByteField(OnuManufacturingData_SerialNumber2, OctetsAttributeType, 0x2000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, true, false, 3),
+			4: MultiByteField(OnuManufacturingData_ModelName, OctetsAttributeType, 0x1000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, true, false, 4),
+			5: MultiByteField(OnuManufacturingData_ManufacturingDate, OctetsAttributeType, 0x0800, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, true, false, 5),
+			6: MultiByteField(OnuManufacturingData_HardwareRevision, OctetsAttributeType, 0x0400, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, true, false, 6),
+			7: MultiByteField(OnuManufacturingData_FirmwareRevision, OctetsAttributeType, 0x0200, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, true, false, 7),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/onupowershedding.go b/generated/onupowershedding.go
index e791ace..5df9566 100644
--- a/generated/onupowershedding.go
+++ b/generated/onupowershedding.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -127,28 +127,42 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const OnuPowerShedding_RestorePowerTimerResetInterval = "RestorePowerTimerResetInterval"
+const OnuPowerShedding_DataClassSheddingInterval = "DataClassSheddingInterval"
+const OnuPowerShedding_VoiceClassSheddingInterval = "VoiceClassSheddingInterval"
+const OnuPowerShedding_VideoOverlayClassSheddingInterval = "VideoOverlayClassSheddingInterval"
+const OnuPowerShedding_VideoReturnClassSheddingInterval = "VideoReturnClassSheddingInterval"
+const OnuPowerShedding_DigitalSubscriberLineClassSheddingInterval = "DigitalSubscriberLineClassSheddingInterval"
+const OnuPowerShedding_AtmClassSheddingInterval = "AtmClassSheddingInterval"
+const OnuPowerShedding_CesClassSheddingInterval = "CesClassSheddingInterval"
+const OnuPowerShedding_FrameClassSheddingInterval = "FrameClassSheddingInterval"
+const OnuPowerShedding_SdhSonetClassSheddingInterval = "SdhSonetClassSheddingInterval"
+const OnuPowerShedding_SheddingStatus = "SheddingStatus"
+
 func init() {
 	onupowersheddingBME = &ManagedEntityDefinition{
 		Name:    "OnuPowerShedding",
-		ClassID: 133,
+		ClassID: OnuPowerSheddingClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
 		),
 		AllowedAttributeMask: 0xffe0,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  Uint16Field("RestorePowerTimerResetInterval", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
-			2:  Uint16Field("DataClassSheddingInterval", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
-			3:  Uint16Field("VoiceClassSheddingInterval", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
-			4:  Uint16Field("VideoOverlayClassSheddingInterval", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, false, false, 4),
-			5:  Uint16Field("VideoReturnClassSheddingInterval", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
-			6:  Uint16Field("DigitalSubscriberLineClassSheddingInterval", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
-			7:  Uint16Field("AtmClassSheddingInterval", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
-			8:  Uint16Field("CesClassSheddingInterval", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, false, false, 8),
-			9:  Uint16Field("FrameClassSheddingInterval", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, false, false, 9),
-			10: Uint16Field("SdhSonetClassSheddingInterval", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, false, false, 10),
-			11: Uint16Field("SheddingStatus", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read), true, true, false, 11),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  Uint16Field(OnuPowerShedding_RestorePowerTimerResetInterval, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			2:  Uint16Field(OnuPowerShedding_DataClassSheddingInterval, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
+			3:  Uint16Field(OnuPowerShedding_VoiceClassSheddingInterval, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
+			4:  Uint16Field(OnuPowerShedding_VideoOverlayClassSheddingInterval, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, false, false, 4),
+			5:  Uint16Field(OnuPowerShedding_VideoReturnClassSheddingInterval, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
+			6:  Uint16Field(OnuPowerShedding_DigitalSubscriberLineClassSheddingInterval, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
+			7:  Uint16Field(OnuPowerShedding_AtmClassSheddingInterval, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
+			8:  Uint16Field(OnuPowerShedding_CesClassSheddingInterval, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, false, false, 8),
+			9:  Uint16Field(OnuPowerShedding_FrameClassSheddingInterval, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, false, false, 9),
+			10: Uint16Field(OnuPowerShedding_SdhSonetClassSheddingInterval, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, false, false, 10),
+			11: Uint16Field(OnuPowerShedding_SheddingStatus, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read), true, true, false, 11),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/onuremotedebug.go b/generated/onuremotedebug.go
index 5a242ac..763aed9 100644
--- a/generated/onuremotedebug.go
+++ b/generated/onuremotedebug.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -71,10 +71,16 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const OnuRemoteDebug_CommandFormat = "CommandFormat"
+const OnuRemoteDebug_Command = "Command"
+const OnuRemoteDebug_ReplyTable = "ReplyTable"
+
 func init() {
 	onuremotedebugBME = &ManagedEntityDefinition{
 		Name:    "OnuRemoteDebug",
-		ClassID: 158,
+		ClassID: OnuRemoteDebugClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			GetNext,
@@ -82,10 +88,10 @@
 		),
 		AllowedAttributeMask: 0xe000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: ByteField("CommandFormat", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: MultiByteField("Command", OctetsAttributeType, 0x4000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Write), false, false, false, 2),
-			3: TableField("ReplyTable", TableAttributeType, 0x2000, TableInfo{nil, -1}, mapset.NewSetWith(Read), false, false, false, 3),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: ByteField(OnuRemoteDebug_CommandFormat, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: MultiByteField(OnuRemoteDebug_Command, OctetsAttributeType, 0x4000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Write), false, false, false, 2),
+			3: TableField(OnuRemoteDebug_ReplyTable, TableAttributeType, 0x2000, TableInfo{nil, -1}, mapset.NewSetWith(Read), false, false, false, 3),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/onutimeconfiguration.go b/generated/onutimeconfiguration.go
index 7f25731..bc6e38b 100644
--- a/generated/onutimeconfiguration.go
+++ b/generated/onutimeconfiguration.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -60,19 +60,24 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const OnuTimeConfiguration_CurrentLocalOnuTime = "CurrentLocalOnuTime"
+const OnuTimeConfiguration_TimeQualificationBlock = "TimeQualificationBlock"
+
 func init() {
 	onutimeconfigurationBME = &ManagedEntityDefinition{
 		Name:    "OnuTimeConfiguration",
-		ClassID: 457,
+		ClassID: OnuTimeConfigurationClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
 		),
 		AllowedAttributeMask: 0xc000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: MultiByteField("CurrentLocalOnuTime", OctetsAttributeType, 0x8000, 7, toOctets("AAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 1),
-			2: Uint16Field("TimeQualificationBlock", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: MultiByteField(OnuTimeConfiguration_CurrentLocalOnuTime, OctetsAttributeType, 0x8000, 7, toOctets("AAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 1),
+			2: Uint16Field(OnuTimeConfiguration_TimeQualificationBlock, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/physicalpathterminationpointcesuni.go b/generated/physicalpathterminationpointcesuni.go
index a863363..85ef623 100644
--- a/generated/physicalpathterminationpointcesuni.go
+++ b/generated/physicalpathterminationpointcesuni.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -214,29 +214,44 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const PhysicalPathTerminationPointCesUni_ExpectedType = "ExpectedType"
+const PhysicalPathTerminationPointCesUni_SensedType = "SensedType"
+const PhysicalPathTerminationPointCesUni_CesLoopbackConfiguration = "CesLoopbackConfiguration"
+const PhysicalPathTerminationPointCesUni_AdministrativeState = "AdministrativeState"
+const PhysicalPathTerminationPointCesUni_OperationalState = "OperationalState"
+const PhysicalPathTerminationPointCesUni_Framing = "Framing"
+const PhysicalPathTerminationPointCesUni_Encoding = "Encoding"
+const PhysicalPathTerminationPointCesUni_LineLength = "LineLength"
+const PhysicalPathTerminationPointCesUni_Ds1Mode = "Ds1Mode"
+const PhysicalPathTerminationPointCesUni_Arc = "Arc"
+const PhysicalPathTerminationPointCesUni_ArcInterval = "ArcInterval"
+const PhysicalPathTerminationPointCesUni_LineType = "LineType"
+
 func init() {
 	physicalpathterminationpointcesuniBME = &ManagedEntityDefinition{
 		Name:    "PhysicalPathTerminationPointCesUni",
-		ClassID: 12,
+		ClassID: PhysicalPathTerminationPointCesUniClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
 		),
 		AllowedAttributeMask: 0xfff0,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  ByteField("ExpectedType", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
-			2:  ByteField("SensedType", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), true, false, false, 2),
-			3:  ByteField("CesLoopbackConfiguration", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), true, false, false, 3),
-			4:  ByteField("AdministrativeState", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, false, false, 4),
-			5:  ByteField("OperationalState", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), true, true, false, 5),
-			6:  ByteField("Framing", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, true, false, 6),
-			7:  ByteField("Encoding", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
-			8:  ByteField("LineLength", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, true, false, 8),
-			9:  ByteField("Ds1Mode", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, true, false, 9),
-			10: ByteField("Arc", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), true, true, false, 10),
-			11: ByteField("ArcInterval", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, true, false, 11),
-			12: ByteField("LineType", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, false, false, 12),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  ByteField(PhysicalPathTerminationPointCesUni_ExpectedType, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			2:  ByteField(PhysicalPathTerminationPointCesUni_SensedType, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), true, false, false, 2),
+			3:  ByteField(PhysicalPathTerminationPointCesUni_CesLoopbackConfiguration, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), true, false, false, 3),
+			4:  ByteField(PhysicalPathTerminationPointCesUni_AdministrativeState, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, false, false, 4),
+			5:  ByteField(PhysicalPathTerminationPointCesUni_OperationalState, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), true, true, false, 5),
+			6:  ByteField(PhysicalPathTerminationPointCesUni_Framing, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, true, false, 6),
+			7:  ByteField(PhysicalPathTerminationPointCesUni_Encoding, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
+			8:  ByteField(PhysicalPathTerminationPointCesUni_LineLength, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, true, false, 8),
+			9:  ByteField(PhysicalPathTerminationPointCesUni_Ds1Mode, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, true, false, 9),
+			10: ByteField(PhysicalPathTerminationPointCesUni_Arc, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), true, true, false, 10),
+			11: ByteField(PhysicalPathTerminationPointCesUni_ArcInterval, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, true, false, 11),
+			12: ByteField(PhysicalPathTerminationPointCesUni_LineType, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, false, false, 12),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/physicalpathterminationpointethernetuni.go b/generated/physicalpathterminationpointethernetuni.go
index c72fbf0..a924899 100644
--- a/generated/physicalpathterminationpointethernetuni.go
+++ b/generated/physicalpathterminationpointethernetuni.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -193,32 +193,50 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const PhysicalPathTerminationPointEthernetUni_ExpectedType = "ExpectedType"
+const PhysicalPathTerminationPointEthernetUni_SensedType = "SensedType"
+const PhysicalPathTerminationPointEthernetUni_AutoDetectionConfiguration = "AutoDetectionConfiguration"
+const PhysicalPathTerminationPointEthernetUni_EthernetLoopbackConfiguration = "EthernetLoopbackConfiguration"
+const PhysicalPathTerminationPointEthernetUni_AdministrativeState = "AdministrativeState"
+const PhysicalPathTerminationPointEthernetUni_OperationalState = "OperationalState"
+const PhysicalPathTerminationPointEthernetUni_ConfigurationInd = "ConfigurationInd"
+const PhysicalPathTerminationPointEthernetUni_MaxFrameSize = "MaxFrameSize"
+const PhysicalPathTerminationPointEthernetUni_DteOrDceInd = "DteOrDceInd"
+const PhysicalPathTerminationPointEthernetUni_PauseTime = "PauseTime"
+const PhysicalPathTerminationPointEthernetUni_BridgedOrIpInd = "BridgedOrIpInd"
+const PhysicalPathTerminationPointEthernetUni_Arc = "Arc"
+const PhysicalPathTerminationPointEthernetUni_ArcInterval = "ArcInterval"
+const PhysicalPathTerminationPointEthernetUni_PppoeFilter = "PppoeFilter"
+const PhysicalPathTerminationPointEthernetUni_PowerControl = "PowerControl"
+
 func init() {
 	physicalpathterminationpointethernetuniBME = &ManagedEntityDefinition{
 		Name:    "PhysicalPathTerminationPointEthernetUni",
-		ClassID: 11,
+		ClassID: PhysicalPathTerminationPointEthernetUniClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
 		),
 		AllowedAttributeMask: 0xfffe,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  ByteField("ExpectedType", EnumerationAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
-			2:  ByteField("SensedType", EnumerationAttributeType, 0x4000, 0, mapset.NewSetWith(Read), true, false, false, 2),
-			3:  ByteField("AutoDetectionConfiguration", EnumerationAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
-			4:  ByteField("EthernetLoopbackConfiguration", EnumerationAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, false, false, 4),
-			5:  ByteField("AdministrativeState", EnumerationAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
-			6:  ByteField("OperationalState", EnumerationAttributeType, 0x0400, 0, mapset.NewSetWith(Read), true, true, false, 6),
-			7:  ByteField("ConfigurationInd", EnumerationAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8:  Uint16Field("MaxFrameSize", UnsignedIntegerAttributeType, 0x0100, 1518, mapset.NewSetWith(Read, Write), false, false, false, 8),
-			9:  ByteField("DteOrDceInd", EnumerationAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, false, false, 9),
-			10: Uint16Field("PauseTime", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, true, false, 10),
-			11: ByteField("BridgedOrIpInd", EnumerationAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, true, false, 11),
-			12: ByteField("Arc", EnumerationAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), true, true, false, 12),
-			13: ByteField("ArcInterval", UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, Write), false, true, false, 13),
-			14: ByteField("PppoeFilter", EnumerationAttributeType, 0x0004, 0, mapset.NewSetWith(Read, Write), false, true, false, 14),
-			15: ByteField("PowerControl", EnumerationAttributeType, 0x0002, 0, mapset.NewSetWith(Read, Write), false, true, false, 15),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  ByteField(PhysicalPathTerminationPointEthernetUni_ExpectedType, EnumerationAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			2:  ByteField(PhysicalPathTerminationPointEthernetUni_SensedType, EnumerationAttributeType, 0x4000, 0, mapset.NewSetWith(Read), true, false, false, 2),
+			3:  ByteField(PhysicalPathTerminationPointEthernetUni_AutoDetectionConfiguration, EnumerationAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
+			4:  ByteField(PhysicalPathTerminationPointEthernetUni_EthernetLoopbackConfiguration, EnumerationAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, false, false, 4),
+			5:  ByteField(PhysicalPathTerminationPointEthernetUni_AdministrativeState, EnumerationAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
+			6:  ByteField(PhysicalPathTerminationPointEthernetUni_OperationalState, EnumerationAttributeType, 0x0400, 0, mapset.NewSetWith(Read), true, true, false, 6),
+			7:  ByteField(PhysicalPathTerminationPointEthernetUni_ConfigurationInd, EnumerationAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8:  Uint16Field(PhysicalPathTerminationPointEthernetUni_MaxFrameSize, UnsignedIntegerAttributeType, 0x0100, 1518, mapset.NewSetWith(Read, Write), false, false, false, 8),
+			9:  ByteField(PhysicalPathTerminationPointEthernetUni_DteOrDceInd, EnumerationAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, false, false, 9),
+			10: Uint16Field(PhysicalPathTerminationPointEthernetUni_PauseTime, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, true, false, 10),
+			11: ByteField(PhysicalPathTerminationPointEthernetUni_BridgedOrIpInd, EnumerationAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, true, false, 11),
+			12: ByteField(PhysicalPathTerminationPointEthernetUni_Arc, EnumerationAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), true, true, false, 12),
+			13: ByteField(PhysicalPathTerminationPointEthernetUni_ArcInterval, UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, Write), false, true, false, 13),
+			14: ByteField(PhysicalPathTerminationPointEthernetUni_PppoeFilter, EnumerationAttributeType, 0x0004, 0, mapset.NewSetWith(Read, Write), false, true, false, 14),
+			15: ByteField(PhysicalPathTerminationPointEthernetUni_PowerControl, EnumerationAttributeType, 0x0002, 0, mapset.NewSetWith(Read, Write), false, true, false, 15),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/physicalpathterminationpointlctuni.go b/generated/physicalpathterminationpointlctuni.go
index b6381e6..2ada3be 100644
--- a/generated/physicalpathterminationpointlctuni.go
+++ b/generated/physicalpathterminationpointlctuni.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -81,18 +81,22 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const PhysicalPathTerminationPointLctUni_AdministrativeState = "AdministrativeState"
+
 func init() {
 	physicalpathterminationpointlctuniBME = &ManagedEntityDefinition{
 		Name:    "PhysicalPathTerminationPointLctUni",
-		ClassID: 83,
+		ClassID: PhysicalPathTerminationPointLctUniClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
 		),
 		AllowedAttributeMask: 0x8000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: ByteField("AdministrativeState", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: ByteField(PhysicalPathTerminationPointLctUni_AdministrativeState, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/physicalpathterminationpointmocauni.go b/generated/physicalpathterminationpointmocauni.go
index cb35f78..dbe8c46 100644
--- a/generated/physicalpathterminationpointmocauni.go
+++ b/generated/physicalpathterminationpointmocauni.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -137,31 +137,48 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const PhysicalPathTerminationPointMocaUni_LoopbackConfiguration = "LoopbackConfiguration"
+const PhysicalPathTerminationPointMocaUni_AdministrativeState = "AdministrativeState"
+const PhysicalPathTerminationPointMocaUni_OperationalState = "OperationalState"
+const PhysicalPathTerminationPointMocaUni_MaxFrameSize = "MaxFrameSize"
+const PhysicalPathTerminationPointMocaUni_Arc = "Arc"
+const PhysicalPathTerminationPointMocaUni_ArcInterval = "ArcInterval"
+const PhysicalPathTerminationPointMocaUni_PppoeFilter = "PppoeFilter"
+const PhysicalPathTerminationPointMocaUni_NetworkStatus = "NetworkStatus"
+const PhysicalPathTerminationPointMocaUni_Password = "Password"
+const PhysicalPathTerminationPointMocaUni_PrivacyEnabled = "PrivacyEnabled"
+const PhysicalPathTerminationPointMocaUni_MinimumBandwidthAlarmThreshold = "MinimumBandwidthAlarmThreshold"
+const PhysicalPathTerminationPointMocaUni_FrequencyMask = "FrequencyMask"
+const PhysicalPathTerminationPointMocaUni_RfChannel = "RfChannel"
+const PhysicalPathTerminationPointMocaUni_LastOperationalFrequency = "LastOperationalFrequency"
+
 func init() {
 	physicalpathterminationpointmocauniBME = &ManagedEntityDefinition{
 		Name:    "PhysicalPathTerminationPointMocaUni",
-		ClassID: 162,
+		ClassID: PhysicalPathTerminationPointMocaUniClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
 		),
 		AllowedAttributeMask: 0xfffc,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  ByteField("LoopbackConfiguration", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, true, false, 1),
-			2:  ByteField("AdministrativeState", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
-			3:  ByteField("OperationalState", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), true, true, false, 3),
-			4:  Uint16Field("MaxFrameSize", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, false, false, 4),
-			5:  ByteField("Arc", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), true, true, false, 5),
-			6:  ByteField("ArcInterval", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, true, false, 6),
-			7:  ByteField("PppoeFilter", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, true, false, 7),
-			8:  ByteField("NetworkStatus", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
-			9:  MultiByteField("Password", OctetsAttributeType, 0x0080, 17, toOctets("AAAAAAAAAAAAAAAAAAAAAAA="), mapset.NewSetWith(Read, Write), false, false, false, 9),
-			10: ByteField("PrivacyEnabled", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, false, false, 10),
-			11: Uint16Field("MinimumBandwidthAlarmThreshold", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, true, false, 11),
-			12: Uint32Field("FrequencyMask", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, true, false, 12),
-			13: Uint16Field("RfChannel", UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
-			14: Uint16Field("LastOperationalFrequency", UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  ByteField(PhysicalPathTerminationPointMocaUni_LoopbackConfiguration, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, true, false, 1),
+			2:  ByteField(PhysicalPathTerminationPointMocaUni_AdministrativeState, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
+			3:  ByteField(PhysicalPathTerminationPointMocaUni_OperationalState, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), true, true, false, 3),
+			4:  Uint16Field(PhysicalPathTerminationPointMocaUni_MaxFrameSize, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, false, false, 4),
+			5:  ByteField(PhysicalPathTerminationPointMocaUni_Arc, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), true, true, false, 5),
+			6:  ByteField(PhysicalPathTerminationPointMocaUni_ArcInterval, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, true, false, 6),
+			7:  ByteField(PhysicalPathTerminationPointMocaUni_PppoeFilter, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, true, false, 7),
+			8:  ByteField(PhysicalPathTerminationPointMocaUni_NetworkStatus, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			9:  MultiByteField(PhysicalPathTerminationPointMocaUni_Password, OctetsAttributeType, 0x0080, 17, toOctets("AAAAAAAAAAAAAAAAAAAAAAA="), mapset.NewSetWith(Read, Write), false, false, false, 9),
+			10: ByteField(PhysicalPathTerminationPointMocaUni_PrivacyEnabled, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, false, false, 10),
+			11: Uint16Field(PhysicalPathTerminationPointMocaUni_MinimumBandwidthAlarmThreshold, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, true, false, 11),
+			12: Uint32Field(PhysicalPathTerminationPointMocaUni_FrequencyMask, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, true, false, 12),
+			13: Uint16Field(PhysicalPathTerminationPointMocaUni_RfChannel, UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
+			14: Uint16Field(PhysicalPathTerminationPointMocaUni_LastOperationalFrequency, UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/physicalpathterminationpointpotsuni.go b/generated/physicalpathterminationpointpotsuni.go
index 8b7f6c7..ea700dd 100644
--- a/generated/physicalpathterminationpointpotsuni.go
+++ b/generated/physicalpathterminationpointpotsuni.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -151,10 +151,26 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const PhysicalPathTerminationPointPotsUni_AdministrativeState = "AdministrativeState"
+const PhysicalPathTerminationPointPotsUni_Deprecated = "Deprecated"
+const PhysicalPathTerminationPointPotsUni_Arc = "Arc"
+const PhysicalPathTerminationPointPotsUni_ArcInterval = "ArcInterval"
+const PhysicalPathTerminationPointPotsUni_Impedance = "Impedance"
+const PhysicalPathTerminationPointPotsUni_TransmissionPath = "TransmissionPath"
+const PhysicalPathTerminationPointPotsUni_RxGain = "RxGain"
+const PhysicalPathTerminationPointPotsUni_TxGain = "TxGain"
+const PhysicalPathTerminationPointPotsUni_OperationalState = "OperationalState"
+const PhysicalPathTerminationPointPotsUni_HookState = "HookState"
+const PhysicalPathTerminationPointPotsUni_PotsHoldoverTime = "PotsHoldoverTime"
+const PhysicalPathTerminationPointPotsUni_NominalFeedVoltage = "NominalFeedVoltage"
+const PhysicalPathTerminationPointPotsUni_LossOfSoftswitch = "LossOfSoftswitch"
+
 func init() {
 	physicalpathterminationpointpotsuniBME = &ManagedEntityDefinition{
 		Name:    "PhysicalPathTerminationPointPotsUni",
-		ClassID: 53,
+		ClassID: PhysicalPathTerminationPointPotsUniClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
@@ -162,20 +178,20 @@
 		),
 		AllowedAttributeMask: 0xfff8,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  ByteField("AdministrativeState", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), true, false, false, 1),
-			2:  Uint16Field("Deprecated", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, true, true, 2),
-			3:  ByteField("Arc", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), true, true, false, 3),
-			4:  ByteField("ArcInterval", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, true, false, 4),
-			5:  ByteField("Impedance", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, true, false, 5),
-			6:  ByteField("TransmissionPath", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, true, false, 6),
-			7:  ByteField("RxGain", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, true, false, 7),
-			8:  ByteField("TxGain", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, true, false, 8),
-			9:  ByteField("OperationalState", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), true, true, false, 9),
-			10: ByteField("HookState", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, true, false, 10),
-			11: Uint16Field("PotsHoldoverTime", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, true, false, 11),
-			12: ByteField("NominalFeedVoltage", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, true, false, 12),
-			13: ByteField("LossOfSoftswitch", UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, Write), false, true, false, 13),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  ByteField(PhysicalPathTerminationPointPotsUni_AdministrativeState, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), true, false, false, 1),
+			2:  Uint16Field(PhysicalPathTerminationPointPotsUni_Deprecated, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, true, true, 2),
+			3:  ByteField(PhysicalPathTerminationPointPotsUni_Arc, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), true, true, false, 3),
+			4:  ByteField(PhysicalPathTerminationPointPotsUni_ArcInterval, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, true, false, 4),
+			5:  ByteField(PhysicalPathTerminationPointPotsUni_Impedance, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, true, false, 5),
+			6:  ByteField(PhysicalPathTerminationPointPotsUni_TransmissionPath, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, true, false, 6),
+			7:  ByteField(PhysicalPathTerminationPointPotsUni_RxGain, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, true, false, 7),
+			8:  ByteField(PhysicalPathTerminationPointPotsUni_TxGain, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, true, false, 8),
+			9:  ByteField(PhysicalPathTerminationPointPotsUni_OperationalState, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), true, true, false, 9),
+			10: ByteField(PhysicalPathTerminationPointPotsUni_HookState, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, true, false, 10),
+			11: Uint16Field(PhysicalPathTerminationPointPotsUni_PotsHoldoverTime, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, true, false, 11),
+			12: ByteField(PhysicalPathTerminationPointPotsUni_NominalFeedVoltage, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, true, false, 12),
+			13: ByteField(PhysicalPathTerminationPointPotsUni_LossOfSoftswitch, UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, Write), false, true, false, 13),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/physicalpathterminationpointreuni.go b/generated/physicalpathterminationpointreuni.go
index ac1492e..4a4b56d 100644
--- a/generated/physicalpathterminationpointreuni.go
+++ b/generated/physicalpathterminationpointreuni.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -179,10 +179,29 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const PhysicalPathTerminationPointReUni_AdministrativeState = "AdministrativeState"
+const PhysicalPathTerminationPointReUni_OperationalState = "OperationalState"
+const PhysicalPathTerminationPointReUni_Arc = "Arc"
+const PhysicalPathTerminationPointReUni_ArcInterval = "ArcInterval"
+const PhysicalPathTerminationPointReUni_ReAniGPointer = "ReAniGPointer"
+const PhysicalPathTerminationPointReUni_TotalOpticalReceiveSignalLevelTable = "TotalOpticalReceiveSignalLevelTable"
+const PhysicalPathTerminationPointReUni_PerBurstReceiveSignalLevelTable = "PerBurstReceiveSignalLevelTable"
+const PhysicalPathTerminationPointReUni_LowerReceiveOpticalThreshold = "LowerReceiveOpticalThreshold"
+const PhysicalPathTerminationPointReUni_UpperReceiveOpticalThreshold = "UpperReceiveOpticalThreshold"
+const PhysicalPathTerminationPointReUni_TransmitOpticalLevel = "TransmitOpticalLevel"
+const PhysicalPathTerminationPointReUni_LowerTransmitPowerThreshold = "LowerTransmitPowerThreshold"
+const PhysicalPathTerminationPointReUni_UpperTransmitPowerThreshold = "UpperTransmitPowerThreshold"
+const PhysicalPathTerminationPointReUni_AdditionalPreamble = "AdditionalPreamble"
+const PhysicalPathTerminationPointReUni_AdditionalGuardTime = "AdditionalGuardTime"
+const PhysicalPathTerminationPointReUni_ConnectedOnusTable = "ConnectedOnusTable"
+const PhysicalPathTerminationPointReUni_ClearOnuTable = "ClearOnuTable"
+
 func init() {
 	physicalpathterminationpointreuniBME = &ManagedEntityDefinition{
 		Name:    "PhysicalPathTerminationPointReUni",
-		ClassID: 314,
+		ClassID: PhysicalPathTerminationPointReUniClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			GetNext,
@@ -190,23 +209,23 @@
 		),
 		AllowedAttributeMask: 0xffff,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  ByteField("AdministrativeState", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
-			2:  ByteField("OperationalState", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), true, true, false, 2),
-			3:  ByteField("Arc", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), true, true, false, 3),
-			4:  ByteField("ArcInterval", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, true, false, 4),
-			5:  Uint16Field("ReAniGPointer", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
-			6:  TableField("TotalOpticalReceiveSignalLevelTable", TableAttributeType, 0x0400, TableInfo{nil, 4}, mapset.NewSetWith(Read), false, true, false, 6),
-			7:  TableField("PerBurstReceiveSignalLevelTable", TableAttributeType, 0x0200, TableInfo{nil, 4}, mapset.NewSetWith(Read), false, true, false, 7),
-			8:  ByteField("LowerReceiveOpticalThreshold", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, true, false, 8),
-			9:  ByteField("UpperReceiveOpticalThreshold", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, true, false, 9),
-			10: Uint16Field("TransmitOpticalLevel", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, true, false, 10),
-			11: ByteField("LowerTransmitPowerThreshold", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, true, false, 11),
-			12: ByteField("UpperTransmitPowerThreshold", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, true, false, 12),
-			13: ByteField("AdditionalPreamble", UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
-			14: ByteField("AdditionalGuardTime", UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
-			15: TableField("ConnectedOnusTable", TableAttributeType, 0x0002, TableInfo{nil, 2}, mapset.NewSetWith(Read), false, true, false, 15),
-			16: TableField("ClearOnuTable", TableAttributeType, 0x0001, TableInfo{nil, 1}, mapset.NewSetWith(Write), false, true, false, 16),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  ByteField(PhysicalPathTerminationPointReUni_AdministrativeState, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			2:  ByteField(PhysicalPathTerminationPointReUni_OperationalState, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), true, true, false, 2),
+			3:  ByteField(PhysicalPathTerminationPointReUni_Arc, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), true, true, false, 3),
+			4:  ByteField(PhysicalPathTerminationPointReUni_ArcInterval, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, true, false, 4),
+			5:  Uint16Field(PhysicalPathTerminationPointReUni_ReAniGPointer, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
+			6:  TableField(PhysicalPathTerminationPointReUni_TotalOpticalReceiveSignalLevelTable, TableAttributeType, 0x0400, TableInfo{nil, 4}, mapset.NewSetWith(Read), false, true, false, 6),
+			7:  TableField(PhysicalPathTerminationPointReUni_PerBurstReceiveSignalLevelTable, TableAttributeType, 0x0200, TableInfo{nil, 4}, mapset.NewSetWith(Read), false, true, false, 7),
+			8:  ByteField(PhysicalPathTerminationPointReUni_LowerReceiveOpticalThreshold, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, true, false, 8),
+			9:  ByteField(PhysicalPathTerminationPointReUni_UpperReceiveOpticalThreshold, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, true, false, 9),
+			10: Uint16Field(PhysicalPathTerminationPointReUni_TransmitOpticalLevel, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, true, false, 10),
+			11: ByteField(PhysicalPathTerminationPointReUni_LowerTransmitPowerThreshold, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, true, false, 11),
+			12: ByteField(PhysicalPathTerminationPointReUni_UpperTransmitPowerThreshold, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, true, false, 12),
+			13: ByteField(PhysicalPathTerminationPointReUni_AdditionalPreamble, UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
+			14: ByteField(PhysicalPathTerminationPointReUni_AdditionalGuardTime, UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
+			15: TableField(PhysicalPathTerminationPointReUni_ConnectedOnusTable, TableAttributeType, 0x0002, TableInfo{nil, 2}, mapset.NewSetWith(Read), false, true, false, 15),
+			16: TableField(PhysicalPathTerminationPointReUni_ClearOnuTable, TableAttributeType, 0x0001, TableInfo{nil, 1}, mapset.NewSetWith(Write), false, true, false, 16),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/physicalpathterminationpointvideoani.go b/generated/physicalpathterminationpointvideoani.go
index c0728fe..949a9de 100644
--- a/generated/physicalpathterminationpointvideoani.go
+++ b/generated/physicalpathterminationpointvideoani.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -237,33 +237,52 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const PhysicalPathTerminationPointVideoAni_AdministrativeState = "AdministrativeState"
+const PhysicalPathTerminationPointVideoAni_OperationalState = "OperationalState"
+const PhysicalPathTerminationPointVideoAni_Arc = "Arc"
+const PhysicalPathTerminationPointVideoAni_ArcInterval = "ArcInterval"
+const PhysicalPathTerminationPointVideoAni_FrequencyRangeLow = "FrequencyRangeLow"
+const PhysicalPathTerminationPointVideoAni_FrequencyRangeHigh = "FrequencyRangeHigh"
+const PhysicalPathTerminationPointVideoAni_SignalCapability = "SignalCapability"
+const PhysicalPathTerminationPointVideoAni_OpticalSignalLevel = "OpticalSignalLevel"
+const PhysicalPathTerminationPointVideoAni_PilotSignalLevel = "PilotSignalLevel"
+const PhysicalPathTerminationPointVideoAni_SignalLevelMin = "SignalLevelMin"
+const PhysicalPathTerminationPointVideoAni_SignalLevelMax = "SignalLevelMax"
+const PhysicalPathTerminationPointVideoAni_PilotFrequency = "PilotFrequency"
+const PhysicalPathTerminationPointVideoAni_AgcMode = "AgcMode"
+const PhysicalPathTerminationPointVideoAni_AgcSetting = "AgcSetting"
+const PhysicalPathTerminationPointVideoAni_VideoLowerOpticalThreshold = "VideoLowerOpticalThreshold"
+const PhysicalPathTerminationPointVideoAni_VideoUpperOpticalThreshold = "VideoUpperOpticalThreshold"
+
 func init() {
 	physicalpathterminationpointvideoaniBME = &ManagedEntityDefinition{
 		Name:    "PhysicalPathTerminationPointVideoAni",
-		ClassID: 90,
+		ClassID: PhysicalPathTerminationPointVideoAniClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
 		),
 		AllowedAttributeMask: 0xffff,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  ByteField("AdministrativeState", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
-			2:  ByteField("OperationalState", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), true, true, false, 2),
-			3:  ByteField("Arc", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), true, true, false, 3),
-			4:  ByteField("ArcInterval", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, true, false, 4),
-			5:  ByteField("FrequencyRangeLow", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6:  ByteField("FrequencyRangeHigh", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  ByteField("SignalCapability", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8:  ByteField("OpticalSignalLevel", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, true, false, 8),
-			9:  ByteField("PilotSignalLevel", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, true, false, 9),
-			10: ByteField("SignalLevelMin", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
-			11: ByteField("SignalLevelMax", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
-			12: Uint32Field("PilotFrequency", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, true, false, 12),
-			13: ByteField("AgcMode", UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, Write), false, true, false, 13),
-			14: ByteField("AgcSetting", UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read, Write), false, true, false, 14),
-			15: ByteField("VideoLowerOpticalThreshold", UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read, Write), false, true, false, 15),
-			16: ByteField("VideoUpperOpticalThreshold", UnsignedIntegerAttributeType, 0x0001, 0, mapset.NewSetWith(Read, Write), false, true, false, 16),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  ByteField(PhysicalPathTerminationPointVideoAni_AdministrativeState, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			2:  ByteField(PhysicalPathTerminationPointVideoAni_OperationalState, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), true, true, false, 2),
+			3:  ByteField(PhysicalPathTerminationPointVideoAni_Arc, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), true, true, false, 3),
+			4:  ByteField(PhysicalPathTerminationPointVideoAni_ArcInterval, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, true, false, 4),
+			5:  ByteField(PhysicalPathTerminationPointVideoAni_FrequencyRangeLow, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6:  ByteField(PhysicalPathTerminationPointVideoAni_FrequencyRangeHigh, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  ByteField(PhysicalPathTerminationPointVideoAni_SignalCapability, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8:  ByteField(PhysicalPathTerminationPointVideoAni_OpticalSignalLevel, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, true, false, 8),
+			9:  ByteField(PhysicalPathTerminationPointVideoAni_PilotSignalLevel, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, true, false, 9),
+			10: ByteField(PhysicalPathTerminationPointVideoAni_SignalLevelMin, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
+			11: ByteField(PhysicalPathTerminationPointVideoAni_SignalLevelMax, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
+			12: Uint32Field(PhysicalPathTerminationPointVideoAni_PilotFrequency, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, true, false, 12),
+			13: ByteField(PhysicalPathTerminationPointVideoAni_AgcMode, UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, Write), false, true, false, 13),
+			14: ByteField(PhysicalPathTerminationPointVideoAni_AgcSetting, UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read, Write), false, true, false, 14),
+			15: ByteField(PhysicalPathTerminationPointVideoAni_VideoLowerOpticalThreshold, UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read, Write), false, true, false, 15),
+			16: ByteField(PhysicalPathTerminationPointVideoAni_VideoUpperOpticalThreshold, UnsignedIntegerAttributeType, 0x0001, 0, mapset.NewSetWith(Read, Write), false, true, false, 16),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/physicalpathterminationpointvideouni.go b/generated/physicalpathterminationpointvideouni.go
index 40d8f61..89d8cab 100644
--- a/generated/physicalpathterminationpointvideouni.go
+++ b/generated/physicalpathterminationpointvideouni.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -83,22 +83,30 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const PhysicalPathTerminationPointVideoUni_AdministrativeState = "AdministrativeState"
+const PhysicalPathTerminationPointVideoUni_OperationalState = "OperationalState"
+const PhysicalPathTerminationPointVideoUni_Arc = "Arc"
+const PhysicalPathTerminationPointVideoUni_ArcInterval = "ArcInterval"
+const PhysicalPathTerminationPointVideoUni_PowerControl = "PowerControl"
+
 func init() {
 	physicalpathterminationpointvideouniBME = &ManagedEntityDefinition{
 		Name:    "PhysicalPathTerminationPointVideoUni",
-		ClassID: 82,
+		ClassID: PhysicalPathTerminationPointVideoUniClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
 		),
 		AllowedAttributeMask: 0xf800,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: ByteField("AdministrativeState", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
-			2: ByteField("OperationalState", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), true, true, false, 2),
-			3: ByteField("Arc", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), true, true, false, 3),
-			4: ByteField("ArcInterval", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, true, false, 4),
-			5: ByteField("PowerControl", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, true, false, 5),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: ByteField(PhysicalPathTerminationPointVideoUni_AdministrativeState, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			2: ByteField(PhysicalPathTerminationPointVideoUni_OperationalState, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), true, true, false, 2),
+			3: ByteField(PhysicalPathTerminationPointVideoUni_Arc, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), true, true, false, 3),
+			4: ByteField(PhysicalPathTerminationPointVideoUni_ArcInterval, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, true, false, 4),
+			5: ByteField(PhysicalPathTerminationPointVideoUni_PowerControl, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, true, false, 5),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/physicalpathterminationpointxdslunipart1.go b/generated/physicalpathterminationpointxdslunipart1.go
index cec0633..6be89c6 100644
--- a/generated/physicalpathterminationpointxdslunipart1.go
+++ b/generated/physicalpathterminationpointxdslunipart1.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -140,30 +140,46 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const PhysicalPathTerminationPointXdslUniPart1_LoopbackConfiguration = "LoopbackConfiguration"
+const PhysicalPathTerminationPointXdslUniPart1_AdministrativeState = "AdministrativeState"
+const PhysicalPathTerminationPointXdslUniPart1_OperationalState = "OperationalState"
+const PhysicalPathTerminationPointXdslUniPart1_XdslLineConfigurationProfile = "XdslLineConfigurationProfile"
+const PhysicalPathTerminationPointXdslUniPart1_XdslSubcarrierMaskingDownstreamProfile = "XdslSubcarrierMaskingDownstreamProfile"
+const PhysicalPathTerminationPointXdslUniPart1_XdslSubcarrierMaskingUpstreamProfile = "XdslSubcarrierMaskingUpstreamProfile"
+const PhysicalPathTerminationPointXdslUniPart1_XdslDownstreamPowerSpectralDensityPsdMaskProfile = "XdslDownstreamPowerSpectralDensityPsdMaskProfile"
+const PhysicalPathTerminationPointXdslUniPart1_XdslDownstreamRfiBandsProfile = "XdslDownstreamRfiBandsProfile"
+const PhysicalPathTerminationPointXdslUniPart1_Arc = "Arc"
+const PhysicalPathTerminationPointXdslUniPart1_ArcInterval = "ArcInterval"
+const PhysicalPathTerminationPointXdslUniPart1_ModemType = "ModemType"
+const PhysicalPathTerminationPointXdslUniPart1_UpstreamPsdMaskProfile = "UpstreamPsdMaskProfile"
+const PhysicalPathTerminationPointXdslUniPart1_NetworkSpecificExtensionsPointer = "NetworkSpecificExtensionsPointer"
+
 func init() {
 	physicalpathterminationpointxdslunipart1BME = &ManagedEntityDefinition{
 		Name:    "PhysicalPathTerminationPointXdslUniPart1",
-		ClassID: 98,
+		ClassID: PhysicalPathTerminationPointXdslUniPart1ClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
 		),
 		AllowedAttributeMask: 0xfff8,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  ByteField("LoopbackConfiguration", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
-			2:  ByteField("AdministrativeState", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
-			3:  ByteField("OperationalState", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), true, true, false, 3),
-			4:  Uint16Field("XdslLineConfigurationProfile", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, false, false, 4),
-			5:  Uint16Field("XdslSubcarrierMaskingDownstreamProfile", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
-			6:  Uint16Field("XdslSubcarrierMaskingUpstreamProfile", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
-			7:  Uint16Field("XdslDownstreamPowerSpectralDensityPsdMaskProfile", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
-			8:  Uint16Field("XdslDownstreamRfiBandsProfile", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, false, false, 8),
-			9:  ByteField("Arc", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), true, true, false, 9),
-			10: ByteField("ArcInterval", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, true, false, 10),
-			11: ByteField("ModemType", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, true, false, 11),
-			12: Uint16Field("UpstreamPsdMaskProfile", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, true, false, 12),
-			13: Uint16Field("NetworkSpecificExtensionsPointer", UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, Write), false, true, false, 13),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  ByteField(PhysicalPathTerminationPointXdslUniPart1_LoopbackConfiguration, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			2:  ByteField(PhysicalPathTerminationPointXdslUniPart1_AdministrativeState, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
+			3:  ByteField(PhysicalPathTerminationPointXdslUniPart1_OperationalState, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), true, true, false, 3),
+			4:  Uint16Field(PhysicalPathTerminationPointXdslUniPart1_XdslLineConfigurationProfile, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, false, false, 4),
+			5:  Uint16Field(PhysicalPathTerminationPointXdslUniPart1_XdslSubcarrierMaskingDownstreamProfile, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
+			6:  Uint16Field(PhysicalPathTerminationPointXdslUniPart1_XdslSubcarrierMaskingUpstreamProfile, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
+			7:  Uint16Field(PhysicalPathTerminationPointXdslUniPart1_XdslDownstreamPowerSpectralDensityPsdMaskProfile, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
+			8:  Uint16Field(PhysicalPathTerminationPointXdslUniPart1_XdslDownstreamRfiBandsProfile, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, false, false, 8),
+			9:  ByteField(PhysicalPathTerminationPointXdslUniPart1_Arc, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), true, true, false, 9),
+			10: ByteField(PhysicalPathTerminationPointXdslUniPart1_ArcInterval, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, true, false, 10),
+			11: ByteField(PhysicalPathTerminationPointXdslUniPart1_ModemType, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, true, false, 11),
+			12: Uint16Field(PhysicalPathTerminationPointXdslUniPart1_UpstreamPsdMaskProfile, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, true, false, 12),
+			13: Uint16Field(PhysicalPathTerminationPointXdslUniPart1_NetworkSpecificExtensionsPointer, UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, Write), false, true, false, 13),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/physicalpathterminationpointxdslunipart2.go b/generated/physicalpathterminationpointxdslunipart2.go
index 6aca5a1..e243de4 100644
--- a/generated/physicalpathterminationpointxdslunipart2.go
+++ b/generated/physicalpathterminationpointxdslunipart2.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -79,25 +79,36 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const PhysicalPathTerminationPointXdslUniPart2_XdslChannelConfigurationProfileForBearerChannel0Downstream = "XdslChannelConfigurationProfileForBearerChannel0Downstream"
+const PhysicalPathTerminationPointXdslUniPart2_XdslChannelConfigurationProfileForBearerChannel1Downstream = "XdslChannelConfigurationProfileForBearerChannel1Downstream"
+const PhysicalPathTerminationPointXdslUniPart2_XdslChannelConfigurationProfileForBearerChannel2Downstream = "XdslChannelConfigurationProfileForBearerChannel2Downstream"
+const PhysicalPathTerminationPointXdslUniPart2_XdslChannelConfigurationProfileForBearerChannel3Downstream = "XdslChannelConfigurationProfileForBearerChannel3Downstream"
+const PhysicalPathTerminationPointXdslUniPart2_XdslChannelConfigurationProfileForBearerChannel0Upstream = "XdslChannelConfigurationProfileForBearerChannel0Upstream"
+const PhysicalPathTerminationPointXdslUniPart2_XdslChannelConfigurationProfileForBearerChannel1Upstream = "XdslChannelConfigurationProfileForBearerChannel1Upstream"
+const PhysicalPathTerminationPointXdslUniPart2_XdslChannelConfigurationProfileForBearerChannel2Upstream = "XdslChannelConfigurationProfileForBearerChannel2Upstream"
+const PhysicalPathTerminationPointXdslUniPart2_XdslChannelConfigurationProfileForBearerChannel3Upstream = "XdslChannelConfigurationProfileForBearerChannel3Upstream"
+
 func init() {
 	physicalpathterminationpointxdslunipart2BME = &ManagedEntityDefinition{
 		Name:    "PhysicalPathTerminationPointXdslUniPart2",
-		ClassID: 99,
+		ClassID: PhysicalPathTerminationPointXdslUniPart2ClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
 		),
 		AllowedAttributeMask: 0xff00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: Uint16Field("XdslChannelConfigurationProfileForBearerChannel0Downstream", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, true, false, 1),
-			2: Uint16Field("XdslChannelConfigurationProfileForBearerChannel1Downstream", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, true, false, 2),
-			3: Uint16Field("XdslChannelConfigurationProfileForBearerChannel2Downstream", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, true, false, 3),
-			4: Uint16Field("XdslChannelConfigurationProfileForBearerChannel3Downstream", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, true, false, 4),
-			5: Uint16Field("XdslChannelConfigurationProfileForBearerChannel0Upstream", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, true, false, 5),
-			6: Uint16Field("XdslChannelConfigurationProfileForBearerChannel1Upstream", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, true, false, 6),
-			7: Uint16Field("XdslChannelConfigurationProfileForBearerChannel2Upstream", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, true, false, 7),
-			8: Uint16Field("XdslChannelConfigurationProfileForBearerChannel3Upstream", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, true, false, 8),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: Uint16Field(PhysicalPathTerminationPointXdslUniPart2_XdslChannelConfigurationProfileForBearerChannel0Downstream, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, true, false, 1),
+			2: Uint16Field(PhysicalPathTerminationPointXdslUniPart2_XdslChannelConfigurationProfileForBearerChannel1Downstream, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, true, false, 2),
+			3: Uint16Field(PhysicalPathTerminationPointXdslUniPart2_XdslChannelConfigurationProfileForBearerChannel2Downstream, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, true, false, 3),
+			4: Uint16Field(PhysicalPathTerminationPointXdslUniPart2_XdslChannelConfigurationProfileForBearerChannel3Downstream, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, true, false, 4),
+			5: Uint16Field(PhysicalPathTerminationPointXdslUniPart2_XdslChannelConfigurationProfileForBearerChannel0Upstream, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, true, false, 5),
+			6: Uint16Field(PhysicalPathTerminationPointXdslUniPart2_XdslChannelConfigurationProfileForBearerChannel1Upstream, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, true, false, 6),
+			7: Uint16Field(PhysicalPathTerminationPointXdslUniPart2_XdslChannelConfigurationProfileForBearerChannel2Upstream, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, true, false, 7),
+			8: Uint16Field(PhysicalPathTerminationPointXdslUniPart2_XdslChannelConfigurationProfileForBearerChannel3Upstream, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, true, false, 8),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/physicalpathterminationpointxdslunipart3.go b/generated/physicalpathterminationpointxdslunipart3.go
index 454a126..da84b21 100644
--- a/generated/physicalpathterminationpointxdslunipart3.go
+++ b/generated/physicalpathterminationpointxdslunipart3.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -75,21 +75,28 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const PhysicalPathTerminationPointXdslUniPart3_FastLineConfigurationProfile = "FastLineConfigurationProfile"
+const PhysicalPathTerminationPointXdslUniPart3_FastDataPathConfigurationProfile = "FastDataPathConfigurationProfile"
+const PhysicalPathTerminationPointXdslUniPart3_FastChannelConfigurationProfileForBearerChannel0Downstream = "FastChannelConfigurationProfileForBearerChannel0Downstream"
+const PhysicalPathTerminationPointXdslUniPart3_FastXdslChannelConfigurationProfileForBearerChannel0Upstream = "FastXdslChannelConfigurationProfileForBearerChannel0Upstream"
+
 func init() {
 	physicalpathterminationpointxdslunipart3BME = &ManagedEntityDefinition{
 		Name:    "PhysicalPathTerminationPointXdslUniPart3",
-		ClassID: 427,
+		ClassID: PhysicalPathTerminationPointXdslUniPart3ClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
 		),
 		AllowedAttributeMask: 0xf000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: Uint16Field("FastLineConfigurationProfile", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
-			2: Uint16Field("FastDataPathConfigurationProfile", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, true, false, 2),
-			3: Uint16Field("FastChannelConfigurationProfileForBearerChannel0Downstream", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, true, false, 3),
-			4: Uint16Field("FastXdslChannelConfigurationProfileForBearerChannel0Upstream", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, true, false, 4),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: Uint16Field(PhysicalPathTerminationPointXdslUniPart3_FastLineConfigurationProfile, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			2: Uint16Field(PhysicalPathTerminationPointXdslUniPart3_FastDataPathConfigurationProfile, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, true, false, 2),
+			3: Uint16Field(PhysicalPathTerminationPointXdslUniPart3_FastChannelConfigurationProfileForBearerChannel0Downstream, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, true, false, 3),
+			4: Uint16Field(PhysicalPathTerminationPointXdslUniPart3_FastXdslChannelConfigurationProfileForBearerChannel0Upstream, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, true, false, 4),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/priorityqueue.go b/generated/priorityqueue.go
index e58ae53..d2c81a4 100644
--- a/generated/priorityqueue.go
+++ b/generated/priorityqueue.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -247,33 +247,52 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const PriorityQueue_QueueConfigurationOption = "QueueConfigurationOption"
+const PriorityQueue_MaximumQueueSize = "MaximumQueueSize"
+const PriorityQueue_AllocatedQueueSize = "AllocatedQueueSize"
+const PriorityQueue_DiscardBlockCounterResetInterval = "DiscardBlockCounterResetInterval"
+const PriorityQueue_ThresholdValueForDiscardedBlocksDueToBufferOverflow = "ThresholdValueForDiscardedBlocksDueToBufferOverflow"
+const PriorityQueue_RelatedPort = "RelatedPort"
+const PriorityQueue_TrafficSchedulerPointer = "TrafficSchedulerPointer"
+const PriorityQueue_Weight = "Weight"
+const PriorityQueue_BackPressureOperation = "BackPressureOperation"
+const PriorityQueue_BackPressureTime = "BackPressureTime"
+const PriorityQueue_BackPressureOccurQueueThreshold = "BackPressureOccurQueueThreshold"
+const PriorityQueue_BackPressureClearQueueThreshold = "BackPressureClearQueueThreshold"
+const PriorityQueue_PacketDropQueueThresholds = "PacketDropQueueThresholds"
+const PriorityQueue_PacketDropMaxP = "PacketDropMaxP"
+const PriorityQueue_QueueDropWQ = "QueueDropWQ"
+const PriorityQueue_DropPrecedenceColourMarking = "DropPrecedenceColourMarking"
+
 func init() {
 	priorityqueueBME = &ManagedEntityDefinition{
 		Name:    "PriorityQueue",
-		ClassID: 277,
+		ClassID: PriorityQueueClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
 		),
 		AllowedAttributeMask: 0xffff,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  ByteField("QueueConfigurationOption", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  Uint16Field("MaximumQueueSize", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
-			3:  Uint16Field("AllocatedQueueSize", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
-			4:  Uint16Field("DiscardBlockCounterResetInterval", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, true, false, 4),
-			5:  Uint16Field("ThresholdValueForDiscardedBlocksDueToBufferOverflow", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, true, false, 5),
-			6:  Uint32Field("RelatedPort", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
-			7:  Uint16Field("TrafficSchedulerPointer", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
-			8:  ByteField("Weight", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, false, false, 8),
-			9:  Uint16Field("BackPressureOperation", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, false, false, 9),
-			10: Uint32Field("BackPressureTime", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, false, false, 10),
-			11: Uint16Field("BackPressureOccurQueueThreshold", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, false, false, 11),
-			12: Uint16Field("BackPressureClearQueueThreshold", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, false, false, 12),
-			13: Uint64Field("PacketDropQueueThresholds", UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, Write), false, true, false, 13),
-			14: Uint16Field("PacketDropMaxP", UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read, Write), false, true, false, 14),
-			15: ByteField("QueueDropWQ", UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read, Write), false, true, false, 15),
-			16: ByteField("DropPrecedenceColourMarking", UnsignedIntegerAttributeType, 0x0001, 0, mapset.NewSetWith(Read, Write), false, true, false, 16),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  ByteField(PriorityQueue_QueueConfigurationOption, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  Uint16Field(PriorityQueue_MaximumQueueSize, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
+			3:  Uint16Field(PriorityQueue_AllocatedQueueSize, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
+			4:  Uint16Field(PriorityQueue_DiscardBlockCounterResetInterval, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, true, false, 4),
+			5:  Uint16Field(PriorityQueue_ThresholdValueForDiscardedBlocksDueToBufferOverflow, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, true, false, 5),
+			6:  Uint32Field(PriorityQueue_RelatedPort, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
+			7:  Uint16Field(PriorityQueue_TrafficSchedulerPointer, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
+			8:  ByteField(PriorityQueue_Weight, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, false, false, 8),
+			9:  Uint16Field(PriorityQueue_BackPressureOperation, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, false, false, 9),
+			10: Uint32Field(PriorityQueue_BackPressureTime, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, false, false, 10),
+			11: Uint16Field(PriorityQueue_BackPressureOccurQueueThreshold, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, false, false, 11),
+			12: Uint16Field(PriorityQueue_BackPressureClearQueueThreshold, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, false, false, 12),
+			13: Uint64Field(PriorityQueue_PacketDropQueueThresholds, UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, Write), false, true, false, 13),
+			14: Uint16Field(PriorityQueue_PacketDropMaxP, UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read, Write), false, true, false, 14),
+			15: ByteField(PriorityQueue_QueueDropWQ, UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read, Write), false, true, false, 15),
+			16: ByteField(PriorityQueue_DropPrecedenceColourMarking, UnsignedIntegerAttributeType, 0x0001, 0, mapset.NewSetWith(Read, Write), false, true, false, 16),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/pseudowiremaintenanceprofile.go b/generated/pseudowiremaintenanceprofile.go
index 20aa1fc..fdc8000 100644
--- a/generated/pseudowiremaintenanceprofile.go
+++ b/generated/pseudowiremaintenanceprofile.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -169,10 +169,29 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const PseudowireMaintenanceProfile_JitterBufferMaximumDepth = "JitterBufferMaximumDepth"
+const PseudowireMaintenanceProfile_JitterBufferDesiredDepth = "JitterBufferDesiredDepth"
+const PseudowireMaintenanceProfile_FillPolicy = "FillPolicy"
+const PseudowireMaintenanceProfile_MisconnectedPacketsDeclarationPolicy = "MisconnectedPacketsDeclarationPolicy"
+const PseudowireMaintenanceProfile_MisconnectedPacketsClearPolicy = "MisconnectedPacketsClearPolicy"
+const PseudowireMaintenanceProfile_LossOfPacketsDeclarationPolicy = "LossOfPacketsDeclarationPolicy"
+const PseudowireMaintenanceProfile_LossOfPacketsClearPolicy = "LossOfPacketsClearPolicy"
+const PseudowireMaintenanceProfile_BufferOverrunUnderrunDeclarationPolicy = "BufferOverrunUnderrunDeclarationPolicy"
+const PseudowireMaintenanceProfile_BufferOverrunUnderrunClearPolicy = "BufferOverrunUnderrunClearPolicy"
+const PseudowireMaintenanceProfile_MalformedPacketsDeclarationPolicy = "MalformedPacketsDeclarationPolicy"
+const PseudowireMaintenanceProfile_MalformedPacketsClearPolicy = "MalformedPacketsClearPolicy"
+const PseudowireMaintenanceProfile_RBitTransmitSetPolicy = "RBitTransmitSetPolicy"
+const PseudowireMaintenanceProfile_RBitTransmitClearPolicy = "RBitTransmitClearPolicy"
+const PseudowireMaintenanceProfile_RBitReceivePolicy = "RBitReceivePolicy"
+const PseudowireMaintenanceProfile_LBitReceivePolicy = "LBitReceivePolicy"
+const PseudowireMaintenanceProfile_SesThreshold = "SesThreshold"
+
 func init() {
 	pseudowiremaintenanceprofileBME = &ManagedEntityDefinition{
 		Name:    "PseudowireMaintenanceProfile",
-		ClassID: 284,
+		ClassID: PseudowireMaintenanceProfileClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -181,23 +200,23 @@
 		),
 		AllowedAttributeMask: 0xffff,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  Uint16Field("JitterBufferMaximumDepth", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 1),
-			2:  Uint16Field("JitterBufferDesiredDepth", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 2),
-			3:  ByteField("FillPolicy", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 3),
-			4:  ByteField("MisconnectedPacketsDeclarationPolicy", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 4),
-			5:  ByteField("MisconnectedPacketsClearPolicy", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 5),
-			6:  ByteField("LossOfPacketsDeclarationPolicy", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 6),
-			7:  ByteField("LossOfPacketsClearPolicy", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 7),
-			8:  ByteField("BufferOverrunUnderrunDeclarationPolicy", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 8),
-			9:  ByteField("BufferOverrunUnderrunClearPolicy", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 9),
-			10: ByteField("MalformedPacketsDeclarationPolicy", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 10),
-			11: ByteField("MalformedPacketsClearPolicy", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 11),
-			12: ByteField("RBitTransmitSetPolicy", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 12),
-			13: ByteField("RBitTransmitClearPolicy", UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 13),
-			14: ByteField("RBitReceivePolicy", UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 14),
-			15: ByteField("LBitReceivePolicy", UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 15),
-			16: Uint16Field("SesThreshold", UnsignedIntegerAttributeType, 0x0001, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 16),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  Uint16Field(PseudowireMaintenanceProfile_JitterBufferMaximumDepth, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 1),
+			2:  Uint16Field(PseudowireMaintenanceProfile_JitterBufferDesiredDepth, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 2),
+			3:  ByteField(PseudowireMaintenanceProfile_FillPolicy, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 3),
+			4:  ByteField(PseudowireMaintenanceProfile_MisconnectedPacketsDeclarationPolicy, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 4),
+			5:  ByteField(PseudowireMaintenanceProfile_MisconnectedPacketsClearPolicy, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 5),
+			6:  ByteField(PseudowireMaintenanceProfile_LossOfPacketsDeclarationPolicy, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 6),
+			7:  ByteField(PseudowireMaintenanceProfile_LossOfPacketsClearPolicy, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 7),
+			8:  ByteField(PseudowireMaintenanceProfile_BufferOverrunUnderrunDeclarationPolicy, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 8),
+			9:  ByteField(PseudowireMaintenanceProfile_BufferOverrunUnderrunClearPolicy, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 9),
+			10: ByteField(PseudowireMaintenanceProfile_MalformedPacketsDeclarationPolicy, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 10),
+			11: ByteField(PseudowireMaintenanceProfile_MalformedPacketsClearPolicy, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 11),
+			12: ByteField(PseudowireMaintenanceProfile_RBitTransmitSetPolicy, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 12),
+			13: ByteField(PseudowireMaintenanceProfile_RBitTransmitClearPolicy, UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 13),
+			14: ByteField(PseudowireMaintenanceProfile_RBitReceivePolicy, UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 14),
+			15: ByteField(PseudowireMaintenanceProfile_LBitReceivePolicy, UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 15),
+			16: Uint16Field(PseudowireMaintenanceProfile_SesThreshold, UnsignedIntegerAttributeType, 0x0001, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 16),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/pseudowireperformancemonitoringhistorydata.go b/generated/pseudowireperformancemonitoringhistorydata.go
index e570ba2..8c40c8f 100644
--- a/generated/pseudowireperformancemonitoringhistorydata.go
+++ b/generated/pseudowireperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -73,10 +73,10 @@
 //			numbering sequence. Both payload and signalling packets, if any, contribute to this count. (R)
 //			(mandatory) (4-bytes)
 //
-//		Misordered Packets, Usable
-//			This attribute counts the number of packets received out of order, but which were able to be
-//			successfully re-ordered and played out. Both payload and signalling packets, if any, contribute
-//			to this count. (R) (mandatory) (4-bytes)
+//		Misordered Packets Usable
+//			Misordered packets, usable: This attribute counts the number of packets received out of order,
+//			but which were able to be successfully re-ordered and played out. Both payload and signalling
+//			packets, if any, contribute to this count. (R) (mandatory) (4-bytes)
 //
 //		Misordered Packets Dropped
 //			This attribute counts the number of packets received out of sequence that were discarded, either
@@ -131,10 +131,28 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const PseudowirePerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const PseudowirePerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const PseudowirePerformanceMonitoringHistoryData_ReceivedPackets = "ReceivedPackets"
+const PseudowirePerformanceMonitoringHistoryData_TransmittedPackets = "TransmittedPackets"
+const PseudowirePerformanceMonitoringHistoryData_MissingPackets = "MissingPackets"
+const PseudowirePerformanceMonitoringHistoryData_MisorderedPacketsUsable = "MisorderedPacketsUsable"
+const PseudowirePerformanceMonitoringHistoryData_MisorderedPacketsDropped = "MisorderedPacketsDropped"
+const PseudowirePerformanceMonitoringHistoryData_PlayoutBufferUnderrunsOverruns = "PlayoutBufferUnderrunsOverruns"
+const PseudowirePerformanceMonitoringHistoryData_MalformedPackets = "MalformedPackets"
+const PseudowirePerformanceMonitoringHistoryData_StrayPackets = "StrayPackets"
+const PseudowirePerformanceMonitoringHistoryData_RemotePacketLoss = "RemotePacketLoss"
+const PseudowirePerformanceMonitoringHistoryData_TdmLBitPacketsTransmitted = "TdmLBitPacketsTransmitted"
+const PseudowirePerformanceMonitoringHistoryData_Es = "Es"
+const PseudowirePerformanceMonitoringHistoryData_Ses = "Ses"
+const PseudowirePerformanceMonitoringHistoryData_Uas = "Uas"
+
 func init() {
 	pseudowireperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "PseudowirePerformanceMonitoringHistoryData",
-		ClassID: 285,
+		ClassID: PseudowirePerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -144,22 +162,22 @@
 		),
 		AllowedAttributeMask: 0xfffe,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint32Field("ReceivedPackets", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4:  Uint32Field("TransmittedPackets", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  Uint32Field("MissingPackets", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6:  Uint32Field("MisorderedPackets,Usable", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  Uint32Field("MisorderedPacketsDropped", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8:  Uint32Field("PlayoutBufferUnderrunsOverruns", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
-			9:  Uint32Field("MalformedPackets", CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
-			10: Uint32Field("StrayPackets", CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
-			11: Uint32Field("RemotePacketLoss", CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
-			12: Uint32Field("TdmLBitPacketsTransmitted", CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
-			13: Uint32Field("Es", CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
-			14: Uint32Field("Ses", CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
-			15: Uint32Field("Uas", CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, false, false, 15),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(PseudowirePerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  Uint16Field(PseudowirePerformanceMonitoringHistoryData_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint32Field(PseudowirePerformanceMonitoringHistoryData_ReceivedPackets, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4:  Uint32Field(PseudowirePerformanceMonitoringHistoryData_TransmittedPackets, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  Uint32Field(PseudowirePerformanceMonitoringHistoryData_MissingPackets, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6:  Uint32Field(PseudowirePerformanceMonitoringHistoryData_MisorderedPacketsUsable, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  Uint32Field(PseudowirePerformanceMonitoringHistoryData_MisorderedPacketsDropped, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8:  Uint32Field(PseudowirePerformanceMonitoringHistoryData_PlayoutBufferUnderrunsOverruns, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			9:  Uint32Field(PseudowirePerformanceMonitoringHistoryData_MalformedPackets, CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
+			10: Uint32Field(PseudowirePerformanceMonitoringHistoryData_StrayPackets, CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
+			11: Uint32Field(PseudowirePerformanceMonitoringHistoryData_RemotePacketLoss, CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
+			12: Uint32Field(PseudowirePerformanceMonitoringHistoryData_TdmLBitPacketsTransmitted, CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
+			13: Uint32Field(PseudowirePerformanceMonitoringHistoryData_Es, CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
+			14: Uint32Field(PseudowirePerformanceMonitoringHistoryData_Ses, CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
+			15: Uint32Field(PseudowirePerformanceMonitoringHistoryData_Uas, CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, false, false, 15),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/pseudowireterminationpoint.go b/generated/pseudowireterminationpoint.go
index 31e0654..7a62854 100644
--- a/generated/pseudowireterminationpoint.go
+++ b/generated/pseudowireterminationpoint.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -184,10 +184,28 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const PseudowireTerminationPoint_UnderlyingTransport = "UnderlyingTransport"
+const PseudowireTerminationPoint_ServiceType = "ServiceType"
+const PseudowireTerminationPoint_Signalling = "Signalling"
+const PseudowireTerminationPoint_TdmUniPointer = "TdmUniPointer"
+const PseudowireTerminationPoint_NorthSidePointer = "NorthSidePointer"
+const PseudowireTerminationPoint_FarEndIpInfo = "FarEndIpInfo"
+const PseudowireTerminationPoint_PayloadSize = "PayloadSize"
+const PseudowireTerminationPoint_PayloadEncapsulationDelay = "PayloadEncapsulationDelay"
+const PseudowireTerminationPoint_TimingMode = "TimingMode"
+const PseudowireTerminationPoint_TransmitCircuitId = "TransmitCircuitId"
+const PseudowireTerminationPoint_ExpectedCircuitId = "ExpectedCircuitId"
+const PseudowireTerminationPoint_ReceivedCircuitId = "ReceivedCircuitId"
+const PseudowireTerminationPoint_ExceptionPolicy = "ExceptionPolicy"
+const PseudowireTerminationPoint_Arc = "Arc"
+const PseudowireTerminationPoint_ArcInterval = "ArcInterval"
+
 func init() {
 	pseudowireterminationpointBME = &ManagedEntityDefinition{
 		Name:    "PseudowireTerminationPoint",
-		ClassID: 282,
+		ClassID: PseudowireTerminationPointClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -196,22 +214,22 @@
 		),
 		AllowedAttributeMask: 0xfffe,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("UnderlyingTransport", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2:  ByteField("ServiceType", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  ByteField("Signalling", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
-			4:  Uint16Field("TdmUniPointer", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
-			5:  Uint16Field("NorthSidePointer", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
-			6:  Uint16Field("FarEndIpInfo", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 6),
-			7:  Uint16Field("PayloadSize", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
-			8:  ByteField("PayloadEncapsulationDelay", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 8),
-			9:  ByteField("TimingMode", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, false, false, 9),
-			10: Uint64Field("TransmitCircuitId", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, false, false, 10),
-			11: Uint64Field("ExpectedCircuitId", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, false, false, 11),
-			12: Uint64Field("ReceivedCircuitId", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
-			13: Uint16Field("ExceptionPolicy", UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, Write), false, true, false, 13),
-			14: ByteField("Arc", UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read, Write), true, true, false, 14),
-			15: ByteField("ArcInterval", UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read, Write), false, true, false, 15),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(PseudowireTerminationPoint_UnderlyingTransport, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2:  ByteField(PseudowireTerminationPoint_ServiceType, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  ByteField(PseudowireTerminationPoint_Signalling, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
+			4:  Uint16Field(PseudowireTerminationPoint_TdmUniPointer, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
+			5:  Uint16Field(PseudowireTerminationPoint_NorthSidePointer, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
+			6:  Uint16Field(PseudowireTerminationPoint_FarEndIpInfo, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 6),
+			7:  Uint16Field(PseudowireTerminationPoint_PayloadSize, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
+			8:  ByteField(PseudowireTerminationPoint_PayloadEncapsulationDelay, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 8),
+			9:  ByteField(PseudowireTerminationPoint_TimingMode, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, false, false, 9),
+			10: Uint64Field(PseudowireTerminationPoint_TransmitCircuitId, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, false, false, 10),
+			11: Uint64Field(PseudowireTerminationPoint_ExpectedCircuitId, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, false, false, 11),
+			12: Uint64Field(PseudowireTerminationPoint_ReceivedCircuitId, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
+			13: Uint16Field(PseudowireTerminationPoint_ExceptionPolicy, UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, Write), false, true, false, 13),
+			14: ByteField(PseudowireTerminationPoint_Arc, UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read, Write), true, true, false, 14),
+			15: ByteField(PseudowireTerminationPoint_ArcInterval, UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read, Write), false, true, false, 15),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/pwatmconfigurationdata.go b/generated/pwatmconfigurationdata.go
index 0cd5ec4..9b90e3c 100644
--- a/generated/pwatmconfigurationdata.go
+++ b/generated/pwatmconfigurationdata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -228,10 +228,21 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const PwAtmConfigurationData_TpType = "TpType"
+const PwAtmConfigurationData_TransportTpPointer = "TransportTpPointer"
+const PwAtmConfigurationData_PptpAtmUniPointer = "PptpAtmUniPointer"
+const PwAtmConfigurationData_MaxCEllCOncatenation = "MaxCEllCOncatenation"
+const PwAtmConfigurationData_FarEndMAxCEllCOncatenation = "FarEndMAxCEllCOncatenation"
+const PwAtmConfigurationData_AtmCellLossPriorityClpQosMapping = "AtmCellLossPriorityClpQosMapping"
+const PwAtmConfigurationData_TimeoutMode = "TimeoutMode"
+const PwAtmConfigurationData_PwAtmMappingTable = "PwAtmMappingTable"
+
 func init() {
 	pwatmconfigurationdataBME = &ManagedEntityDefinition{
 		Name:    "PwAtmConfigurationData",
-		ClassID: 337,
+		ClassID: PwAtmConfigurationDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -242,15 +253,15 @@
 		),
 		AllowedAttributeMask: 0xff00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("TpType", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2: Uint16Field("TransportTpPointer", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint16Field("PptpAtmUniPointer", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
-			4: Uint16Field("MaxCEllCOncatenation", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
-			5: Uint16Field("FarEndMAxCEllCOncatenation", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 5),
-			6: ByteField("AtmCellLossPriorityClpQosMapping", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 6),
-			7: ByteField("TimeoutMode", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 7),
-			8: TableField("PwAtmMappingTable", TableAttributeType, 0x0100, TableInfo{nil, 21}, mapset.NewSetWith(Read, Write), false, false, false, 8),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(PwAtmConfigurationData_TpType, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2: Uint16Field(PwAtmConfigurationData_TransportTpPointer, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint16Field(PwAtmConfigurationData_PptpAtmUniPointer, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
+			4: Uint16Field(PwAtmConfigurationData_MaxCEllCOncatenation, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
+			5: Uint16Field(PwAtmConfigurationData_FarEndMAxCEllCOncatenation, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 5),
+			6: ByteField(PwAtmConfigurationData_AtmCellLossPriorityClpQosMapping, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 6),
+			7: ByteField(PwAtmConfigurationData_TimeoutMode, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 7),
+			8: TableField(PwAtmConfigurationData_PwAtmMappingTable, TableAttributeType, 0x0100, TableInfo{nil, 21}, mapset.NewSetWith(Read, Write), false, false, false, 8),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/pwatmperformancemonitoringhistorydata.go b/generated/pwatmperformancemonitoringhistorydata.go
index 5e18218..683086d 100644
--- a/generated/pwatmperformancemonitoringhistorydata.go
+++ b/generated/pwatmperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -85,10 +85,22 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const PwAtmPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const PwAtmPerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const PwAtmPerformanceMonitoringHistoryData_DownstreamMissingPacketsCounter = "DownstreamMissingPacketsCounter"
+const PwAtmPerformanceMonitoringHistoryData_DownstreamReorderedPacketsCounter = "DownstreamReorderedPacketsCounter"
+const PwAtmPerformanceMonitoringHistoryData_DownstreamMisorderedPacketsCounter = "DownstreamMisorderedPacketsCounter"
+const PwAtmPerformanceMonitoringHistoryData_UpstreamTimeoutPacketsCounter = "UpstreamTimeoutPacketsCounter"
+const PwAtmPerformanceMonitoringHistoryData_UpstreamTransmittedCellsCounter = "UpstreamTransmittedCellsCounter"
+const PwAtmPerformanceMonitoringHistoryData_UpstreamDroppedCellsCounter = "UpstreamDroppedCellsCounter"
+const PwAtmPerformanceMonitoringHistoryData_UpstreamReceivedCellsCounter = "UpstreamReceivedCellsCounter"
+
 func init() {
 	pwatmperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "PwAtmPerformanceMonitoringHistoryData",
-		ClassID: 338,
+		ClassID: PwAtmPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -98,16 +110,16 @@
 		),
 		AllowedAttributeMask: 0xff80,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint32Field("DownstreamMissingPacketsCounter", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4: Uint32Field("DownstreamReorderedPacketsCounter", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, true, false, 4),
-			5: Uint32Field("DownstreamMisorderedPacketsCounter", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6: Uint32Field("UpstreamTimeoutPacketsCounter", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7: Uint32Field("UpstreamTransmittedCellsCounter", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8: Uint32Field("UpstreamDroppedCellsCounter", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
-			9: Uint32Field("UpstreamReceivedCellsCounter", CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(PwAtmPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: Uint16Field(PwAtmPerformanceMonitoringHistoryData_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint32Field(PwAtmPerformanceMonitoringHistoryData_DownstreamMissingPacketsCounter, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4: Uint32Field(PwAtmPerformanceMonitoringHistoryData_DownstreamReorderedPacketsCounter, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, true, false, 4),
+			5: Uint32Field(PwAtmPerformanceMonitoringHistoryData_DownstreamMisorderedPacketsCounter, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6: Uint32Field(PwAtmPerformanceMonitoringHistoryData_UpstreamTimeoutPacketsCounter, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7: Uint32Field(PwAtmPerformanceMonitoringHistoryData_UpstreamTransmittedCellsCounter, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8: Uint32Field(PwAtmPerformanceMonitoringHistoryData_UpstreamDroppedCellsCounter, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			9: Uint32Field(PwAtmPerformanceMonitoringHistoryData_UpstreamReceivedCellsCounter, CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/pwethernetconfigurationdata.go b/generated/pwethernetconfigurationdata.go
index 97e5f97..9e8b0b8 100644
--- a/generated/pwethernetconfigurationdata.go
+++ b/generated/pwethernetconfigurationdata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -77,10 +77,16 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const PwEthernetConfigurationData_MplsPseudowireTpPointer = "MplsPseudowireTpPointer"
+const PwEthernetConfigurationData_TpType = "TpType"
+const PwEthernetConfigurationData_UniPointer = "UniPointer"
+
 func init() {
 	pwethernetconfigurationdataBME = &ManagedEntityDefinition{
 		Name:    "PwEthernetConfigurationData",
-		ClassID: 339,
+		ClassID: PwEthernetConfigurationDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -89,10 +95,10 @@
 		),
 		AllowedAttributeMask: 0xe000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: Uint16Field("MplsPseudowireTpPointer", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2: ByteField("TpType", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint16Field("UniPointer", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: Uint16Field(PwEthernetConfigurationData_MplsPseudowireTpPointer, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2: ByteField(PwEthernetConfigurationData_TpType, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint16Field(PwEthernetConfigurationData_UniPointer, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/radiusperformancemonitoringhistorydata.go b/generated/radiusperformancemonitoringhistorydata.go
index 2dd144a..2b5c8ff 100644
--- a/generated/radiusperformancemonitoringhistorydata.go
+++ b/generated/radiusperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -84,10 +84,21 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const RadiusPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const RadiusPerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const RadiusPerformanceMonitoringHistoryData_AccessRequestPacketsTransmitted = "AccessRequestPacketsTransmitted"
+const RadiusPerformanceMonitoringHistoryData_AccessRequestRetransmissionCount = "AccessRequestRetransmissionCount"
+const RadiusPerformanceMonitoringHistoryData_AccessChallengePacketsReceived = "AccessChallengePacketsReceived"
+const RadiusPerformanceMonitoringHistoryData_AccessAcceptPacketsReceived = "AccessAcceptPacketsReceived"
+const RadiusPerformanceMonitoringHistoryData_AccessRejectPacketsReceived = "AccessRejectPacketsReceived"
+const RadiusPerformanceMonitoringHistoryData_InvalidRadiusPacketsReceived = "InvalidRadiusPacketsReceived"
+
 func init() {
 	radiusperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "RadiusPerformanceMonitoringHistoryData",
-		ClassID: 293,
+		ClassID: RadiusPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -97,15 +108,15 @@
 		),
 		AllowedAttributeMask: 0xff00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint32Field("AccessRequestPacketsTransmitted", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4: Uint32Field("AccessRequestRetransmissionCount", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5: Uint32Field("AccessChallengePacketsReceived", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6: Uint32Field("AccessAcceptPacketsReceived", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7: Uint32Field("AccessRejectPacketsReceived", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8: Uint32Field("InvalidRadiusPacketsReceived", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(RadiusPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: Uint16Field(RadiusPerformanceMonitoringHistoryData_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint32Field(RadiusPerformanceMonitoringHistoryData_AccessRequestPacketsTransmitted, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4: Uint32Field(RadiusPerformanceMonitoringHistoryData_AccessRequestRetransmissionCount, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5: Uint32Field(RadiusPerformanceMonitoringHistoryData_AccessChallengePacketsReceived, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6: Uint32Field(RadiusPerformanceMonitoringHistoryData_AccessAcceptPacketsReceived, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7: Uint32Field(RadiusPerformanceMonitoringHistoryData_AccessRejectPacketsReceived, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8: Uint32Field(RadiusPerformanceMonitoringHistoryData_InvalidRadiusPacketsReceived, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/reani-g.go b/generated/reani-g.go
index fcbb5c2..63a10b3 100644
--- a/generated/reani-g.go
+++ b/generated/reani-g.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -174,31 +174,48 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const ReAniG_AdministrativeState = "AdministrativeState"
+const ReAniG_OperationalState = "OperationalState"
+const ReAniG_Arc = "Arc"
+const ReAniG_ArcInterval = "ArcInterval"
+const ReAniG_OpticalSignalLevel = "OpticalSignalLevel"
+const ReAniG_LowerOpticalThreshold = "LowerOpticalThreshold"
+const ReAniG_UpperOpticalThreshold = "UpperOpticalThreshold"
+const ReAniG_TransmitOpticalLevel = "TransmitOpticalLevel"
+const ReAniG_LowerTransmitPowerThreshold = "LowerTransmitPowerThreshold"
+const ReAniG_UpperTransmitPowerThreshold = "UpperTransmitPowerThreshold"
+const ReAniG_UsageMode = "UsageMode"
+const ReAniG_TargetUpstreamFrequency = "TargetUpstreamFrequency"
+const ReAniG_TargetDownstreamFrequency = "TargetDownstreamFrequency"
+const ReAniG_UpstreamSignalTransmissionMode = "UpstreamSignalTransmissionMode"
+
 func init() {
 	reanigBME = &ManagedEntityDefinition{
 		Name:    "ReAniG",
-		ClassID: 313,
+		ClassID: ReAniGClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
 		),
 		AllowedAttributeMask: 0xfffc,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  ByteField("AdministrativeState", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
-			2:  ByteField("OperationalState", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), true, true, false, 2),
-			3:  ByteField("Arc", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), true, true, false, 3),
-			4:  ByteField("ArcInterval", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, true, false, 4),
-			5:  Uint16Field("OpticalSignalLevel", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, true, false, 5),
-			6:  ByteField("LowerOpticalThreshold", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, true, false, 6),
-			7:  ByteField("UpperOpticalThreshold", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, true, false, 7),
-			8:  Uint16Field("TransmitOpticalLevel", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, true, false, 8),
-			9:  ByteField("LowerTransmitPowerThreshold", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, true, false, 9),
-			10: ByteField("UpperTransmitPowerThreshold", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, true, false, 10),
-			11: ByteField("UsageMode", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, false, false, 11),
-			12: Uint32Field("TargetUpstreamFrequency", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, true, false, 12),
-			13: Uint32Field("TargetDownstreamFrequency", UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, Write), false, true, false, 13),
-			14: ByteField("UpstreamSignalTransmissionMode", UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read, Write), false, true, false, 14),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  ByteField(ReAniG_AdministrativeState, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			2:  ByteField(ReAniG_OperationalState, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), true, true, false, 2),
+			3:  ByteField(ReAniG_Arc, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), true, true, false, 3),
+			4:  ByteField(ReAniG_ArcInterval, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, true, false, 4),
+			5:  Uint16Field(ReAniG_OpticalSignalLevel, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, true, false, 5),
+			6:  ByteField(ReAniG_LowerOpticalThreshold, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, true, false, 6),
+			7:  ByteField(ReAniG_UpperOpticalThreshold, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, true, false, 7),
+			8:  Uint16Field(ReAniG_TransmitOpticalLevel, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, true, false, 8),
+			9:  ByteField(ReAniG_LowerTransmitPowerThreshold, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, true, false, 9),
+			10: ByteField(ReAniG_UpperTransmitPowerThreshold, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, true, false, 10),
+			11: ByteField(ReAniG_UsageMode, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, false, false, 11),
+			12: Uint32Field(ReAniG_TargetUpstreamFrequency, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, true, false, 12),
+			13: Uint32Field(ReAniG_TargetDownstreamFrequency, UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, Write), false, true, false, 13),
+			14: ByteField(ReAniG_UpstreamSignalTransmissionMode, UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read, Write), false, true, false, 14),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/recommonamplifierparameters.go b/generated/recommonamplifierparameters.go
index d5149b9..41b9dd9 100644
--- a/generated/recommonamplifierparameters.go
+++ b/generated/recommonamplifierparameters.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -107,28 +107,42 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const ReCommonAmplifierParameters_Gain = "Gain"
+const ReCommonAmplifierParameters_LowerGainThreshold = "LowerGainThreshold"
+const ReCommonAmplifierParameters_UpperGainThreshold = "UpperGainThreshold"
+const ReCommonAmplifierParameters_TargetGain = "TargetGain"
+const ReCommonAmplifierParameters_DeviceTemperature = "DeviceTemperature"
+const ReCommonAmplifierParameters_LowerDeviceTemperatureThreshold = "LowerDeviceTemperatureThreshold"
+const ReCommonAmplifierParameters_UpperDeviceTemperatureThreshold = "UpperDeviceTemperatureThreshold"
+const ReCommonAmplifierParameters_DeviceBiasCurrent = "DeviceBiasCurrent"
+const ReCommonAmplifierParameters_AmplifierSaturationOutputPower = "AmplifierSaturationOutputPower"
+const ReCommonAmplifierParameters_AmplifierNoiseFigure = "AmplifierNoiseFigure"
+const ReCommonAmplifierParameters_AmplifierSaturationGain = "AmplifierSaturationGain"
+
 func init() {
 	recommonamplifierparametersBME = &ManagedEntityDefinition{
 		Name:    "ReCommonAmplifierParameters",
-		ClassID: 328,
+		ClassID: ReCommonAmplifierParametersClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
 		),
 		AllowedAttributeMask: 0xffe0,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  ByteField("Gain", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, true, false, 1),
-			2:  ByteField("LowerGainThreshold", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, true, false, 2),
-			3:  ByteField("UpperGainThreshold", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, true, false, 3),
-			4:  ByteField("TargetGain", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, true, false, 4),
-			5:  Uint16Field("DeviceTemperature", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, true, false, 5),
-			6:  ByteField("LowerDeviceTemperatureThreshold", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, true, false, 6),
-			7:  ByteField("UpperDeviceTemperatureThreshold", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, true, false, 7),
-			8:  ByteField("DeviceBiasCurrent", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, true, false, 8),
-			9:  Uint16Field("AmplifierSaturationOutputPower", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, true, false, 9),
-			10: ByteField("AmplifierNoiseFigure", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, true, false, 10),
-			11: ByteField("AmplifierSaturationGain", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, true, false, 11),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  ByteField(ReCommonAmplifierParameters_Gain, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, true, false, 1),
+			2:  ByteField(ReCommonAmplifierParameters_LowerGainThreshold, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, true, false, 2),
+			3:  ByteField(ReCommonAmplifierParameters_UpperGainThreshold, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, true, false, 3),
+			4:  ByteField(ReCommonAmplifierParameters_TargetGain, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, true, false, 4),
+			5:  Uint16Field(ReCommonAmplifierParameters_DeviceTemperature, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, true, false, 5),
+			6:  ByteField(ReCommonAmplifierParameters_LowerDeviceTemperatureThreshold, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, true, false, 6),
+			7:  ByteField(ReCommonAmplifierParameters_UpperDeviceTemperatureThreshold, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, true, false, 7),
+			8:  ByteField(ReCommonAmplifierParameters_DeviceBiasCurrent, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, true, false, 8),
+			9:  Uint16Field(ReCommonAmplifierParameters_AmplifierSaturationOutputPower, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, true, false, 9),
+			10: ByteField(ReCommonAmplifierParameters_AmplifierNoiseFigure, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, true, false, 10),
+			11: ByteField(ReCommonAmplifierParameters_AmplifierSaturationGain, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, true, false, 11),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/redownstreamamplifier.go b/generated/redownstreamamplifier.go
index d85e3a7..4173e73 100644
--- a/generated/redownstreamamplifier.go
+++ b/generated/redownstreamamplifier.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -130,23 +130,38 @@
 //			dBm), with 0.5-dB granularity. The default value 0x7F selects the RE's internal policy. (R,-W)
 //			(optional) (1-byte)
 //
-//		R'S' Splitter Coupling Ratio
-//			This attribute reports the coupling ratio of the splitter at the R'/S' interface that connects
-//			the embedded management ONU and the amplifiers to the OTL. Valid values are 99:1 (coded as
-//			99-decimal) to 1:99 (coded as 1 decimal), where the first value is the value encoded and is the
-//			percentage of the optical signal connected to the amplifier. The default value 0xFF indicates
-//			that there is no splitter connected to this upstream/downstream amplifier pair. (R) (optional)
-//			(1-byte)
+//		R S Splitter Coupling Ratio
+//			R'S' splitter coupling ratio: This attribute reports the coupling ratio of the splitter at the
+//			R'/S' interface that connects the embedded management ONU and the amplifiers to the OTL. Valid
+//			values are 99:1 (coded as 99-decimal) to 1:99 (coded as 1 decimal), where the first value is the
+//			value encoded and is the percentage of the optical signal connected to the amplifier. The
+//			default value 0xFF indicates that there is no splitter connected to this upstream/downstream
+//			amplifier pair. (R) (optional) (1-byte)
 //
 type ReDownstreamAmplifier struct {
 	ManagedEntityDefinition
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const ReDownstreamAmplifier_AdministrativeState = "AdministrativeState"
+const ReDownstreamAmplifier_OperationalState = "OperationalState"
+const ReDownstreamAmplifier_Arc = "Arc"
+const ReDownstreamAmplifier_ArcInterval = "ArcInterval"
+const ReDownstreamAmplifier_OperationalMode = "OperationalMode"
+const ReDownstreamAmplifier_InputOpticalSignalLevel = "InputOpticalSignalLevel"
+const ReDownstreamAmplifier_LowerInputOpticalThreshold = "LowerInputOpticalThreshold"
+const ReDownstreamAmplifier_UpperInputOpticalThreshold = "UpperInputOpticalThreshold"
+const ReDownstreamAmplifier_OutputOpticalSignalLevel = "OutputOpticalSignalLevel"
+const ReDownstreamAmplifier_LowerOutputOpticalThreshold = "LowerOutputOpticalThreshold"
+const ReDownstreamAmplifier_UpperOutputOpticalThreshold = "UpperOutputOpticalThreshold"
+const ReDownstreamAmplifier_RSSplitterCouplingRatio = "RSSplitterCouplingRatio"
+
 func init() {
 	redownstreamamplifierBME = &ManagedEntityDefinition{
 		Name:    "ReDownstreamAmplifier",
-		ClassID: 316,
+		ClassID: ReDownstreamAmplifierClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
@@ -154,19 +169,19 @@
 		),
 		AllowedAttributeMask: 0xfff0,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  ByteField("AdministrativeState", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
-			2:  ByteField("OperationalState", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), true, true, false, 2),
-			3:  ByteField("Arc", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), true, true, false, 3),
-			4:  ByteField("ArcInterval", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, true, false, 4),
-			5:  ByteField("OperationalMode", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
-			6:  Uint16Field("InputOpticalSignalLevel", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, true, false, 6),
-			7:  ByteField("LowerInputOpticalThreshold", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, true, false, 7),
-			8:  ByteField("UpperInputOpticalThreshold", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, true, false, 8),
-			9:  Uint16Field("OutputOpticalSignalLevel", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, true, false, 9),
-			10: ByteField("LowerOutputOpticalThreshold", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, true, false, 10),
-			11: ByteField("UpperOutputOpticalThreshold", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, true, false, 11),
-			12: ByteField("R'S'SplitterCouplingRatio", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, true, false, 12),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  ByteField(ReDownstreamAmplifier_AdministrativeState, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			2:  ByteField(ReDownstreamAmplifier_OperationalState, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), true, true, false, 2),
+			3:  ByteField(ReDownstreamAmplifier_Arc, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), true, true, false, 3),
+			4:  ByteField(ReDownstreamAmplifier_ArcInterval, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, true, false, 4),
+			5:  ByteField(ReDownstreamAmplifier_OperationalMode, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
+			6:  Uint16Field(ReDownstreamAmplifier_InputOpticalSignalLevel, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, true, false, 6),
+			7:  ByteField(ReDownstreamAmplifier_LowerInputOpticalThreshold, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, true, false, 7),
+			8:  ByteField(ReDownstreamAmplifier_UpperInputOpticalThreshold, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, true, false, 8),
+			9:  Uint16Field(ReDownstreamAmplifier_OutputOpticalSignalLevel, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, true, false, 9),
+			10: ByteField(ReDownstreamAmplifier_LowerOutputOpticalThreshold, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, true, false, 10),
+			11: ByteField(ReDownstreamAmplifier_UpperOutputOpticalThreshold, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, true, false, 11),
+			12: ByteField(ReDownstreamAmplifier_RSSplitterCouplingRatio, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, true, false, 12),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/relaxed.go b/generated/relaxed.go
index a1e49d3..d733c91 100644
--- a/generated/relaxed.go
+++ b/generated/relaxed.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -20,6 +20,7 @@
  * Generated by 'goCodeGenerator.py':
  *              https://github.com/cboling/OMCI-parser/README.md
  */
+
 package generated
 
 import (
diff --git a/generated/reupstreamamplifier.go b/generated/reupstreamamplifier.go
index 32f3e62..93cf64b 100644
--- a/generated/reupstreamamplifier.go
+++ b/generated/reupstreamamplifier.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -149,10 +149,26 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const ReUpstreamAmplifier_AdministrativeState = "AdministrativeState"
+const ReUpstreamAmplifier_OperationalState = "OperationalState"
+const ReUpstreamAmplifier_OperationalMode = "OperationalMode"
+const ReUpstreamAmplifier_Arc = "Arc"
+const ReUpstreamAmplifier_ArcInterval = "ArcInterval"
+const ReUpstreamAmplifier_ReDownstreamAmplifierPointer = "ReDownstreamAmplifierPointer"
+const ReUpstreamAmplifier_TotalOpticalReceiveSignalLevelTable = "TotalOpticalReceiveSignalLevelTable"
+const ReUpstreamAmplifier_PerBurstReceiveSignalLevelTable = "PerBurstReceiveSignalLevelTable"
+const ReUpstreamAmplifier_LowerReceiveOpticalThreshold = "LowerReceiveOpticalThreshold"
+const ReUpstreamAmplifier_UpperReceiveOpticalThreshold = "UpperReceiveOpticalThreshold"
+const ReUpstreamAmplifier_TransmitOpticalSignalLevel = "TransmitOpticalSignalLevel"
+const ReUpstreamAmplifier_LowerTransmitOpticalThreshold = "LowerTransmitOpticalThreshold"
+const ReUpstreamAmplifier_UpperTransmitOpticalThreshold = "UpperTransmitOpticalThreshold"
+
 func init() {
 	reupstreamamplifierBME = &ManagedEntityDefinition{
 		Name:    "ReUpstreamAmplifier",
-		ClassID: 315,
+		ClassID: ReUpstreamAmplifierClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			GetNext,
@@ -160,20 +176,20 @@
 		),
 		AllowedAttributeMask: 0xfff8,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  ByteField("AdministrativeState", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
-			2:  ByteField("OperationalState", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), true, true, false, 2),
-			3:  ByteField("OperationalMode", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
-			4:  ByteField("Arc", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), true, true, false, 4),
-			5:  ByteField("ArcInterval", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, true, false, 5),
-			6:  Uint16Field("ReDownstreamAmplifierPointer", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
-			7:  TableField("TotalOpticalReceiveSignalLevelTable", TableAttributeType, 0x0200, TableInfo{nil, 4}, mapset.NewSetWith(Read), false, true, false, 7),
-			8:  TableField("PerBurstReceiveSignalLevelTable", TableAttributeType, 0x0100, TableInfo{nil, 4}, mapset.NewSetWith(Read), false, true, false, 8),
-			9:  ByteField("LowerReceiveOpticalThreshold", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, true, false, 9),
-			10: ByteField("UpperReceiveOpticalThreshold", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, true, false, 10),
-			11: Uint16Field("TransmitOpticalSignalLevel", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, true, false, 11),
-			12: ByteField("LowerTransmitOpticalThreshold", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, true, false, 12),
-			13: ByteField("UpperTransmitOpticalThreshold", UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, Write), false, true, false, 13),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  ByteField(ReUpstreamAmplifier_AdministrativeState, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			2:  ByteField(ReUpstreamAmplifier_OperationalState, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), true, true, false, 2),
+			3:  ByteField(ReUpstreamAmplifier_OperationalMode, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
+			4:  ByteField(ReUpstreamAmplifier_Arc, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), true, true, false, 4),
+			5:  ByteField(ReUpstreamAmplifier_ArcInterval, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, true, false, 5),
+			6:  Uint16Field(ReUpstreamAmplifier_ReDownstreamAmplifierPointer, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
+			7:  TableField(ReUpstreamAmplifier_TotalOpticalReceiveSignalLevelTable, TableAttributeType, 0x0200, TableInfo{nil, 4}, mapset.NewSetWith(Read), false, true, false, 7),
+			8:  TableField(ReUpstreamAmplifier_PerBurstReceiveSignalLevelTable, TableAttributeType, 0x0100, TableInfo{nil, 4}, mapset.NewSetWith(Read), false, true, false, 8),
+			9:  ByteField(ReUpstreamAmplifier_LowerReceiveOpticalThreshold, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, true, false, 9),
+			10: ByteField(ReUpstreamAmplifier_UpperReceiveOpticalThreshold, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, true, false, 10),
+			11: Uint16Field(ReUpstreamAmplifier_TransmitOpticalSignalLevel, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, true, false, 11),
+			12: ByteField(ReUpstreamAmplifier_LowerTransmitOpticalThreshold, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, true, false, 12),
+			13: ByteField(ReUpstreamAmplifier_UpperTransmitOpticalThreshold, UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, Write), false, true, false, 13),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/rtpperformancemonitoringhistorydata.go b/generated/rtpperformancemonitoringhistorydata.go
index 3252376..a79184d 100644
--- a/generated/rtpperformancemonitoringhistorydata.go
+++ b/generated/rtpperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -88,10 +88,21 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const RtpPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const RtpPerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const RtpPerformanceMonitoringHistoryData_RtpErrors = "RtpErrors"
+const RtpPerformanceMonitoringHistoryData_PacketLoss = "PacketLoss"
+const RtpPerformanceMonitoringHistoryData_MaximumJitter = "MaximumJitter"
+const RtpPerformanceMonitoringHistoryData_MaximumTimeBetweenRealTimeTransportControlProtocolRtcpPackets = "MaximumTimeBetweenRealTimeTransportControlProtocolRtcpPackets"
+const RtpPerformanceMonitoringHistoryData_BufferUnderflows = "BufferUnderflows"
+const RtpPerformanceMonitoringHistoryData_BufferOverflows = "BufferOverflows"
+
 func init() {
 	rtpperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "RtpPerformanceMonitoringHistoryData",
-		ClassID: 144,
+		ClassID: RtpPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -101,15 +112,15 @@
 		),
 		AllowedAttributeMask: 0xff00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint32Field("RtpErrors", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4: Uint32Field("PacketLoss", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5: Uint32Field("MaximumJitter", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6: Uint32Field("MaximumTimeBetweenRealTimeTransportControlProtocolRtcpPackets", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7: Uint32Field("BufferUnderflows", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8: Uint32Field("BufferOverflows", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(RtpPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: Uint16Field(RtpPerformanceMonitoringHistoryData_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint32Field(RtpPerformanceMonitoringHistoryData_RtpErrors, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4: Uint32Field(RtpPerformanceMonitoringHistoryData_PacketLoss, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5: Uint32Field(RtpPerformanceMonitoringHistoryData_MaximumJitter, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6: Uint32Field(RtpPerformanceMonitoringHistoryData_MaximumTimeBetweenRealTimeTransportControlProtocolRtcpPackets, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7: Uint32Field(RtpPerformanceMonitoringHistoryData_BufferUnderflows, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8: Uint32Field(RtpPerformanceMonitoringHistoryData_BufferOverflows, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/rtpprofiledata.go b/generated/rtpprofiledata.go
index 1bc4f00..bde2da6 100644
--- a/generated/rtpprofiledata.go
+++ b/generated/rtpprofiledata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -111,10 +111,21 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const RtpProfileData_LocalPortMin = "LocalPortMin"
+const RtpProfileData_LocalPortMax = "LocalPortMax"
+const RtpProfileData_DscpMark = "DscpMark"
+const RtpProfileData_PiggybackEvents = "PiggybackEvents"
+const RtpProfileData_ToneEvents = "ToneEvents"
+const RtpProfileData_DtmfEvents = "DtmfEvents"
+const RtpProfileData_CasEvents = "CasEvents"
+const RtpProfileData_IpHostConfigPointer = "IpHostConfigPointer"
+
 func init() {
 	rtpprofiledataBME = &ManagedEntityDefinition{
 		Name:    "RtpProfileData",
-		ClassID: 143,
+		ClassID: RtpProfileDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -123,15 +134,15 @@
 		),
 		AllowedAttributeMask: 0xff00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: Uint16Field("LocalPortMin", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2: Uint16Field("LocalPortMax", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 2),
-			3: ByteField("DscpMark", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
-			4: ByteField("PiggybackEvents", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
-			5: ByteField("ToneEvents", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
-			6: ByteField("DtmfEvents", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 6),
-			7: ByteField("CasEvents", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
-			8: Uint16Field("IpHostConfigPointer", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, true, false, 8),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: Uint16Field(RtpProfileData_LocalPortMin, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2: Uint16Field(RtpProfileData_LocalPortMax, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 2),
+			3: ByteField(RtpProfileData_DscpMark, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
+			4: ByteField(RtpProfileData_PiggybackEvents, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
+			5: ByteField(RtpProfileData_ToneEvents, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
+			6: ByteField(RtpProfileData_DtmfEvents, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 6),
+			7: ByteField(RtpProfileData_CasEvents, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
+			8: Uint16Field(RtpProfileData_IpHostConfigPointer, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, true, false, 8),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/rtppseudowireparameters.go b/generated/rtppseudowireparameters.go
index 472f754..1a69261 100644
--- a/generated/rtppseudowireparameters.go
+++ b/generated/rtppseudowireparameters.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -95,10 +95,19 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const RtpPseudowireParameters_ClockReference = "ClockReference"
+const RtpPseudowireParameters_RtpTimestampMode = "RtpTimestampMode"
+const RtpPseudowireParameters_Ptype = "Ptype"
+const RtpPseudowireParameters_Ssrc = "Ssrc"
+const RtpPseudowireParameters_ExpectedPtype = "ExpectedPtype"
+const RtpPseudowireParameters_ExpectedSsrc = "ExpectedSsrc"
+
 func init() {
 	rtppseudowireparametersBME = &ManagedEntityDefinition{
 		Name:    "RtpPseudowireParameters",
-		ClassID: 283,
+		ClassID: RtpPseudowireParametersClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -107,13 +116,13 @@
 		),
 		AllowedAttributeMask: 0xfc00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: Uint16Field("ClockReference", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2: ByteField("RtpTimestampMode", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint16Field("Ptype", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
-			4: Uint64Field("Ssrc", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
-			5: Uint16Field("ExpectedPtype", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 5),
-			6: Uint64Field("ExpectedSsrc", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 6),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: Uint16Field(RtpPseudowireParameters_ClockReference, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2: ByteField(RtpPseudowireParameters_RtpTimestampMode, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint16Field(RtpPseudowireParameters_Ptype, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
+			4: Uint64Field(RtpPseudowireParameters_Ssrc, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
+			5: Uint16Field(RtpPseudowireParameters_ExpectedPtype, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 5),
+			6: Uint64Field(RtpPseudowireParameters_ExpectedSsrc, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 6),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/sipagentconfigdata.go b/generated/sipagentconfigdata.go
index b67b74b..39aa2c4 100644
--- a/generated/sipagentconfigdata.go
+++ b/generated/sipagentconfigdata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -166,10 +166,28 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const SipAgentConfigData_ProxyServerAddressPointer = "ProxyServerAddressPointer"
+const SipAgentConfigData_OutboundProxyAddressPointer = "OutboundProxyAddressPointer"
+const SipAgentConfigData_PrimarySipDns = "PrimarySipDns"
+const SipAgentConfigData_SecondarySipDns = "SecondarySipDns"
+const SipAgentConfigData_TcpUdpPointer = "TcpUdpPointer"
+const SipAgentConfigData_SipRegExpTime = "SipRegExpTime"
+const SipAgentConfigData_SipReregHeadStartTime = "SipReregHeadStartTime"
+const SipAgentConfigData_HostPartUri = "HostPartUri"
+const SipAgentConfigData_SipStatus = "SipStatus"
+const SipAgentConfigData_SipRegistrar = "SipRegistrar"
+const SipAgentConfigData_Softswitch = "Softswitch"
+const SipAgentConfigData_SipResponseTable = "SipResponseTable"
+const SipAgentConfigData_SipOptionTransmitControl = "SipOptionTransmitControl"
+const SipAgentConfigData_SipUriFormat = "SipUriFormat"
+const SipAgentConfigData_RedundantSipAgentPointer = "RedundantSipAgentPointer"
+
 func init() {
 	sipagentconfigdataBME = &ManagedEntityDefinition{
 		Name:    "SipAgentConfigData",
-		ClassID: 150,
+		ClassID: SipAgentConfigDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -180,22 +198,22 @@
 		),
 		AllowedAttributeMask: 0xfffe,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  Uint16Field("ProxyServerAddressPointer", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2:  Uint16Field("OutboundProxyAddressPointer", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint32Field("PrimarySipDns", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
-			4:  Uint32Field("SecondarySipDns", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
-			5:  Uint16Field("TcpUdpPointer", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
-			6:  Uint32Field("SipRegExpTime", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
-			7:  Uint32Field("SipReregHeadStartTime", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
-			8:  Uint16Field("HostPartUri", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 8),
-			9:  ByteField("SipStatus", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), true, false, false, 9),
-			10: Uint16Field("SipRegistrar", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 10),
-			11: Uint32Field("Softswitch", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 11),
-			12: TableField("SipResponseTable", TableAttributeType, 0x0010, TableInfo{nil, 5}, mapset.NewSetWith(Read, Write), false, true, false, 12),
-			13: ByteField("SipOptionTransmitControl", UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 13),
-			14: ByteField("SipUriFormat", UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 14),
-			15: Uint16Field("RedundantSipAgentPointer", UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 15),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  Uint16Field(SipAgentConfigData_ProxyServerAddressPointer, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2:  Uint16Field(SipAgentConfigData_OutboundProxyAddressPointer, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint32Field(SipAgentConfigData_PrimarySipDns, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
+			4:  Uint32Field(SipAgentConfigData_SecondarySipDns, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
+			5:  Uint16Field(SipAgentConfigData_TcpUdpPointer, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
+			6:  Uint32Field(SipAgentConfigData_SipRegExpTime, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
+			7:  Uint32Field(SipAgentConfigData_SipReregHeadStartTime, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
+			8:  Uint16Field(SipAgentConfigData_HostPartUri, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 8),
+			9:  ByteField(SipAgentConfigData_SipStatus, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), true, false, false, 9),
+			10: Uint16Field(SipAgentConfigData_SipRegistrar, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 10),
+			11: Uint32Field(SipAgentConfigData_Softswitch, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 11),
+			12: TableField(SipAgentConfigData_SipResponseTable, TableAttributeType, 0x0010, TableInfo{nil, 5}, mapset.NewSetWith(Read, Write), false, true, false, 12),
+			13: ByteField(SipAgentConfigData_SipOptionTransmitControl, UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 13),
+			14: ByteField(SipAgentConfigData_SipUriFormat, UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 14),
+			15: Uint16Field(SipAgentConfigData_RedundantSipAgentPointer, UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 15),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/sipagentconfigdata2.go b/generated/sipagentconfigdata2.go
index 1ed14a8..4af9359 100644
--- a/generated/sipagentconfigdata2.go
+++ b/generated/sipagentconfigdata2.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -88,10 +88,20 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const SipAgentConfigData2_InUseOptionsTimer = "InUseOptionsTimer"
+const SipAgentConfigData2_AlternateOptionsTimer = "AlternateOptionsTimer"
+const SipAgentConfigData2_Revertive = "Revertive"
+const SipAgentConfigData2_CurrentProxyServerResolvedAddress = "CurrentProxyServerResolvedAddress"
+const SipAgentConfigData2_CurrentProxyServerResolvedName = "CurrentProxyServerResolvedName"
+const SipAgentConfigData2_AlternateProxyServerResolvedAddress = "AlternateProxyServerResolvedAddress"
+const SipAgentConfigData2_AlternateProxyServerResolvedName = "AlternateProxyServerResolvedName"
+
 func init() {
 	sipagentconfigdata2BME = &ManagedEntityDefinition{
 		Name:    "SipAgentConfigData2",
-		ClassID: 407,
+		ClassID: SipAgentConfigData2ClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -101,14 +111,14 @@
 		),
 		AllowedAttributeMask: 0xfe00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: Uint16Field("InUseOptionsTimer", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2: Uint16Field("AlternateOptionsTimer", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: ByteField("Revertive", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
-			4: Uint32Field("CurrentProxyServerResolvedAddress", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, true, false, 4),
-			5: Uint16Field("CurrentProxyServerResolvedName", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, true, false, 5),
-			6: Uint32Field("AlternateProxyServerResolvedAddress", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, true, false, 6),
-			7: Uint16Field("AlternateProxyServerResolvedName", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, true, false, 7),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: Uint16Field(SipAgentConfigData2_InUseOptionsTimer, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2: Uint16Field(SipAgentConfigData2_AlternateOptionsTimer, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: ByteField(SipAgentConfigData2_Revertive, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
+			4: Uint32Field(SipAgentConfigData2_CurrentProxyServerResolvedAddress, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, true, false, 4),
+			5: Uint16Field(SipAgentConfigData2_CurrentProxyServerResolvedName, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, true, false, 5),
+			6: Uint32Field(SipAgentConfigData2_AlternateProxyServerResolvedAddress, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, true, false, 6),
+			7: Uint16Field(SipAgentConfigData2_AlternateProxyServerResolvedName, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, true, false, 7),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/sipagentperformancemonitoringhistorydata.go b/generated/sipagentperformancemonitoringhistorydata.go
index 66850e2..3960179 100644
--- a/generated/sipagentperformancemonitoringhistorydata.go
+++ b/generated/sipagentperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -105,10 +105,28 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const SipAgentPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const SipAgentPerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const SipAgentPerformanceMonitoringHistoryData_Transactions = "Transactions"
+const SipAgentPerformanceMonitoringHistoryData_RxInviteReqs = "RxInviteReqs"
+const SipAgentPerformanceMonitoringHistoryData_RxInviteRetrans = "RxInviteRetrans"
+const SipAgentPerformanceMonitoringHistoryData_RxNoninviteReqs = "RxNoninviteReqs"
+const SipAgentPerformanceMonitoringHistoryData_RxNoninviteRetrans = "RxNoninviteRetrans"
+const SipAgentPerformanceMonitoringHistoryData_RxResponse = "RxResponse"
+const SipAgentPerformanceMonitoringHistoryData_RxResponseRetransmissions = "RxResponseRetransmissions"
+const SipAgentPerformanceMonitoringHistoryData_TxInviteReqs = "TxInviteReqs"
+const SipAgentPerformanceMonitoringHistoryData_TxInviteRetrans = "TxInviteRetrans"
+const SipAgentPerformanceMonitoringHistoryData_TxNoninviteReqs = "TxNoninviteReqs"
+const SipAgentPerformanceMonitoringHistoryData_TxNoninviteRetrans = "TxNoninviteRetrans"
+const SipAgentPerformanceMonitoringHistoryData_TxResponse = "TxResponse"
+const SipAgentPerformanceMonitoringHistoryData_TxResponseRetransmissions = "TxResponseRetransmissions"
+
 func init() {
 	sipagentperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "SipAgentPerformanceMonitoringHistoryData",
-		ClassID: 151,
+		ClassID: SipAgentPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -118,22 +136,22 @@
 		),
 		AllowedAttributeMask: 0xfffe,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint32Field("Transactions", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, true, false, 3),
-			4:  Uint32Field("RxInviteReqs", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, true, false, 4),
-			5:  Uint32Field("RxInviteRetrans", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, true, false, 5),
-			6:  Uint32Field("RxNoninviteReqs", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, true, false, 6),
-			7:  Uint32Field("RxNoninviteRetrans", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, true, false, 7),
-			8:  Uint32Field("RxResponse", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, true, false, 8),
-			9:  Uint32Field("RxResponseRetransmissions", CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, true, false, 9),
-			10: Uint32Field("TxInviteReqs", CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, true, false, 10),
-			11: Uint32Field("TxInviteRetrans", CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, true, false, 11),
-			12: Uint32Field("TxNoninviteReqs", CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, true, false, 12),
-			13: Uint32Field("TxNoninviteRetrans", CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, true, false, 13),
-			14: Uint32Field("TxResponse", CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, true, false, 14),
-			15: Uint32Field("TxResponseRetransmissions", CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, true, false, 15),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(SipAgentPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  Uint16Field(SipAgentPerformanceMonitoringHistoryData_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint32Field(SipAgentPerformanceMonitoringHistoryData_Transactions, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, true, false, 3),
+			4:  Uint32Field(SipAgentPerformanceMonitoringHistoryData_RxInviteReqs, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, true, false, 4),
+			5:  Uint32Field(SipAgentPerformanceMonitoringHistoryData_RxInviteRetrans, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, true, false, 5),
+			6:  Uint32Field(SipAgentPerformanceMonitoringHistoryData_RxNoninviteReqs, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, true, false, 6),
+			7:  Uint32Field(SipAgentPerformanceMonitoringHistoryData_RxNoninviteRetrans, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, true, false, 7),
+			8:  Uint32Field(SipAgentPerformanceMonitoringHistoryData_RxResponse, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, true, false, 8),
+			9:  Uint32Field(SipAgentPerformanceMonitoringHistoryData_RxResponseRetransmissions, CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, true, false, 9),
+			10: Uint32Field(SipAgentPerformanceMonitoringHistoryData_TxInviteReqs, CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, true, false, 10),
+			11: Uint32Field(SipAgentPerformanceMonitoringHistoryData_TxInviteRetrans, CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, true, false, 11),
+			12: Uint32Field(SipAgentPerformanceMonitoringHistoryData_TxNoninviteReqs, CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, true, false, 12),
+			13: Uint32Field(SipAgentPerformanceMonitoringHistoryData_TxNoninviteRetrans, CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, true, false, 13),
+			14: Uint32Field(SipAgentPerformanceMonitoringHistoryData_TxResponse, CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, true, false, 14),
+			15: Uint32Field(SipAgentPerformanceMonitoringHistoryData_TxResponseRetransmissions, CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, true, false, 15),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/sipcallinitiationperformancemonitoringhistorydata.go b/generated/sipcallinitiationperformancemonitoringhistorydata.go
index 23949a5..aa9e982 100644
--- a/generated/sipcallinitiationperformancemonitoringhistorydata.go
+++ b/generated/sipcallinitiationperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -81,10 +81,20 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const SipCallInitiationPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const SipCallInitiationPerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const SipCallInitiationPerformanceMonitoringHistoryData_FailedToConnectCounter = "FailedToConnectCounter"
+const SipCallInitiationPerformanceMonitoringHistoryData_FailedToValidateCounter = "FailedToValidateCounter"
+const SipCallInitiationPerformanceMonitoringHistoryData_TimeoutCounter = "TimeoutCounter"
+const SipCallInitiationPerformanceMonitoringHistoryData_FailureReceivedCounter = "FailureReceivedCounter"
+const SipCallInitiationPerformanceMonitoringHistoryData_FailedToAuthenticateCounter = "FailedToAuthenticateCounter"
+
 func init() {
 	sipcallinitiationperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "SipCallInitiationPerformanceMonitoringHistoryData",
-		ClassID: 152,
+		ClassID: SipCallInitiationPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -94,14 +104,14 @@
 		),
 		AllowedAttributeMask: 0xfe00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint32Field("FailedToConnectCounter", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4: Uint32Field("FailedToValidateCounter", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5: Uint32Field("TimeoutCounter", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6: Uint32Field("FailureReceivedCounter", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7: Uint32Field("FailedToAuthenticateCounter", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(SipCallInitiationPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: Uint16Field(SipCallInitiationPerformanceMonitoringHistoryData_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint32Field(SipCallInitiationPerformanceMonitoringHistoryData_FailedToConnectCounter, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4: Uint32Field(SipCallInitiationPerformanceMonitoringHistoryData_FailedToValidateCounter, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5: Uint32Field(SipCallInitiationPerformanceMonitoringHistoryData_TimeoutCounter, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6: Uint32Field(SipCallInitiationPerformanceMonitoringHistoryData_FailureReceivedCounter, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7: Uint32Field(SipCallInitiationPerformanceMonitoringHistoryData_FailedToAuthenticateCounter, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/sipconfigportal.go b/generated/sipconfigportal.go
index 7f525c0..b0471c4 100644
--- a/generated/sipconfigportal.go
+++ b/generated/sipconfigportal.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -59,18 +59,22 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const SipConfigPortal_ConfigurationTextTable = "ConfigurationTextTable"
+
 func init() {
 	sipconfigportalBME = &ManagedEntityDefinition{
 		Name:    "SipConfigPortal",
-		ClassID: 149,
+		ClassID: SipConfigPortalClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			GetNext,
 		),
 		AllowedAttributeMask: 0x8000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: TableField("ConfigurationTextTable", TableAttributeType, 0x8000, TableInfo{nil, 25}, mapset.NewSetWith(Read), true, false, false, 1),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: TableField(SipConfigPortal_ConfigurationTextTable, TableAttributeType, 0x8000, TableInfo{nil, 25}, mapset.NewSetWith(Read), true, false, false, 1),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/sipuserdata.go b/generated/sipuserdata.go
index dcbe99e..af74f1c 100644
--- a/generated/sipuserdata.go
+++ b/generated/sipuserdata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -110,10 +110,25 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const SipUserData_SipAgentPointer = "SipAgentPointer"
+const SipUserData_UserPartAor = "UserPartAor"
+const SipUserData_SipDisplayName = "SipDisplayName"
+const SipUserData_UsernameAndPassword = "UsernameAndPassword"
+const SipUserData_VoicemailServerSipUri = "VoicemailServerSipUri"
+const SipUserData_VoicemailSubscriptionExpirationTime = "VoicemailSubscriptionExpirationTime"
+const SipUserData_NetworkDialPlanPointer = "NetworkDialPlanPointer"
+const SipUserData_ApplicationServicesProfilePointer = "ApplicationServicesProfilePointer"
+const SipUserData_FeatureCodePointer = "FeatureCodePointer"
+const SipUserData_PptpPointer = "PptpPointer"
+const SipUserData_ReleaseTimer = "ReleaseTimer"
+const SipUserData_ReceiverOffHookRohTimer = "ReceiverOffHookRohTimer"
+
 func init() {
 	sipuserdataBME = &ManagedEntityDefinition{
 		Name:    "SipUserData",
-		ClassID: 153,
+		ClassID: SipUserDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -122,19 +137,19 @@
 		),
 		AllowedAttributeMask: 0xfff0,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  Uint16Field("SipAgentPointer", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2:  Uint16Field("UserPartAor", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  MultiByteField("SipDisplayName", OctetsAttributeType, 0x2000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 3),
-			4:  Uint16Field("UsernameAndPassword", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
-			5:  Uint16Field("VoicemailServerSipUri", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
-			6:  Uint32Field("VoicemailSubscriptionExpirationTime", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 6),
-			7:  Uint16Field("NetworkDialPlanPointer", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
-			8:  Uint16Field("ApplicationServicesProfilePointer", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 8),
-			9:  Uint16Field("FeatureCodePointer", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 9),
-			10: Uint16Field("PptpPointer", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 10),
-			11: ByteField("ReleaseTimer", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, true, false, 11),
-			12: ByteField("ReceiverOffHookRohTimer", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, true, false, 12),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  Uint16Field(SipUserData_SipAgentPointer, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2:  Uint16Field(SipUserData_UserPartAor, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  MultiByteField(SipUserData_SipDisplayName, OctetsAttributeType, 0x2000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 3),
+			4:  Uint16Field(SipUserData_UsernameAndPassword, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
+			5:  Uint16Field(SipUserData_VoicemailServerSipUri, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
+			6:  Uint32Field(SipUserData_VoicemailSubscriptionExpirationTime, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 6),
+			7:  Uint16Field(SipUserData_NetworkDialPlanPointer, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
+			8:  Uint16Field(SipUserData_ApplicationServicesProfilePointer, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 8),
+			9:  Uint16Field(SipUserData_FeatureCodePointer, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 9),
+			10: Uint16Field(SipUserData_PptpPointer, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 10),
+			11: ByteField(SipUserData_ReleaseTimer, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, true, false, 11),
+			12: ByteField(SipUserData_ReceiverOffHookRohTimer, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, true, false, 12),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/snmpconfigurationdata.go b/generated/snmpconfigurationdata.go
index 2e6c9e4..4c0616c 100644
--- a/generated/snmpconfigurationdata.go
+++ b/generated/snmpconfigurationdata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -82,10 +82,21 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const SnmpConfigurationData_SnmpVersion = "SnmpVersion"
+const SnmpConfigurationData_SnmpAgentAddress = "SnmpAgentAddress"
+const SnmpConfigurationData_SnmpServerAddress = "SnmpServerAddress"
+const SnmpConfigurationData_SnmpServerPort = "SnmpServerPort"
+const SnmpConfigurationData_SecurityNamePointer = "SecurityNamePointer"
+const SnmpConfigurationData_CommunityForRead = "CommunityForRead"
+const SnmpConfigurationData_CommunityForWrite = "CommunityForWrite"
+const SnmpConfigurationData_SysNamePointer = "SysNamePointer"
+
 func init() {
 	snmpconfigurationdataBME = &ManagedEntityDefinition{
 		Name:    "SnmpConfigurationData",
-		ClassID: 335,
+		ClassID: SnmpConfigurationDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -94,15 +105,15 @@
 		),
 		AllowedAttributeMask: 0xff00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: Uint16Field("SnmpVersion", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2: Uint16Field("SnmpAgentAddress", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint32Field("SnmpServerAddress", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
-			4: Uint16Field("SnmpServerPort", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
-			5: Uint16Field("SecurityNamePointer", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
-			6: Uint16Field("CommunityForRead", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 6),
-			7: Uint16Field("CommunityForWrite", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
-			8: Uint16Field("SysNamePointer", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 8),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: Uint16Field(SnmpConfigurationData_SnmpVersion, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2: Uint16Field(SnmpConfigurationData_SnmpAgentAddress, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint32Field(SnmpConfigurationData_SnmpServerAddress, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
+			4: Uint16Field(SnmpConfigurationData_SnmpServerPort, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
+			5: Uint16Field(SnmpConfigurationData_SecurityNamePointer, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
+			6: Uint16Field(SnmpConfigurationData_CommunityForRead, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 6),
+			7: Uint16Field(SnmpConfigurationData_CommunityForWrite, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
+			8: Uint16Field(SnmpConfigurationData_SysNamePointer, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 8),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/softwareimage.go b/generated/softwareimage.go
index b900d0b..e6f1d43 100644
--- a/generated/softwareimage.go
+++ b/generated/softwareimage.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -110,10 +110,19 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const SoftwareImage_Version = "Version"
+const SoftwareImage_IsCommitted = "IsCommitted"
+const SoftwareImage_IsActive = "IsActive"
+const SoftwareImage_IsValid = "IsValid"
+const SoftwareImage_ProductCode = "ProductCode"
+const SoftwareImage_ImageHash = "ImageHash"
+
 func init() {
 	softwareimageBME = &ManagedEntityDefinition{
 		Name:    "SoftwareImage",
-		ClassID: 7,
+		ClassID: SoftwareImageClassID,
 		MessageTypes: mapset.NewSetWith(
 			ActivateSoftware,
 			CommitSoftware,
@@ -124,13 +133,13 @@
 		),
 		AllowedAttributeMask: 0xfc00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: MultiByteField("Version", StringAttributeType, 0x8000, 14, toOctets("ICAgICAgICAgICAgICA="), mapset.NewSetWith(Read), true, false, false, 1),
-			2: ByteField("IsCommitted", EnumerationAttributeType, 0x4000, 0, mapset.NewSetWith(Read), true, false, false, 2),
-			3: ByteField("IsActive", EnumerationAttributeType, 0x2000, 0, mapset.NewSetWith(Read), true, false, false, 3),
-			4: ByteField("IsValid", EnumerationAttributeType, 0x1000, 0, mapset.NewSetWith(Read), true, false, false, 4),
-			5: MultiByteField("ProductCode", OctetsAttributeType, 0x0800, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), true, true, false, 5),
-			6: MultiByteField("ImageHash", StringAttributeType, 0x0400, 16, toOctets("AAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), true, true, false, 6),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: MultiByteField(SoftwareImage_Version, StringAttributeType, 0x8000, 14, toOctets("ICAgICAgICAgICAgICA="), mapset.NewSetWith(Read), true, false, false, 1),
+			2: ByteField(SoftwareImage_IsCommitted, EnumerationAttributeType, 0x4000, 0, mapset.NewSetWith(Read), true, false, false, 2),
+			3: ByteField(SoftwareImage_IsActive, EnumerationAttributeType, 0x2000, 0, mapset.NewSetWith(Read), true, false, false, 3),
+			4: ByteField(SoftwareImage_IsValid, EnumerationAttributeType, 0x1000, 0, mapset.NewSetWith(Read), true, false, false, 4),
+			5: MultiByteField(SoftwareImage_ProductCode, OctetsAttributeType, 0x0800, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), true, true, false, 5),
+			6: MultiByteField(SoftwareImage_ImageHash, StringAttributeType, 0x0400, 16, toOctets("AAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), true, true, false, 6),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/t-cont.go b/generated/t-cont.go
index 7fe59c9..106d042 100644
--- a/generated/t-cont.go
+++ b/generated/t-cont.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -96,20 +96,26 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const TCont_AllocId = "AllocId"
+const TCont_Deprecated = "Deprecated"
+const TCont_Policy = "Policy"
+
 func init() {
 	tcontBME = &ManagedEntityDefinition{
 		Name:    "TCont",
-		ClassID: 262,
+		ClassID: TContClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
 		),
 		AllowedAttributeMask: 0xe000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: Uint16Field("AllocId", UnsignedIntegerAttributeType, 0x8000, 65535, mapset.NewSetWith(Read, Write), false, false, false, 1),
-			2: ByteField("Deprecated", UnsignedIntegerAttributeType, 0x4000, 1, mapset.NewSetWith(Read), false, false, true, 2),
-			3: ByteField("Policy", EnumerationAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: Uint16Field(TCont_AllocId, UnsignedIntegerAttributeType, 0x8000, 65535, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			2: ByteField(TCont_Deprecated, UnsignedIntegerAttributeType, 0x4000, 1, mapset.NewSetWith(Read), false, false, true, 2),
+			3: ByteField(TCont_Policy, EnumerationAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/tcadaptorperformancemonitoringhistorydataxdsl.go b/generated/tcadaptorperformancemonitoringhistorydataxdsl.go
index 8c13139..987eba0 100644
--- a/generated/tcadaptorperformancemonitoringhistorydataxdsl.go
+++ b/generated/tcadaptorperformancemonitoringhistorydataxdsl.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -92,10 +92,23 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const TcAdaptorPerformanceMonitoringHistoryDataXdsl_IntervalEndTime = "IntervalEndTime"
+const TcAdaptorPerformanceMonitoringHistoryDataXdsl_ThresholdData12Id = "ThresholdData12Id"
+const TcAdaptorPerformanceMonitoringHistoryDataXdsl_NearEndHecViolationCount = "NearEndHecViolationCount"
+const TcAdaptorPerformanceMonitoringHistoryDataXdsl_NearEndDelineatedTotalCellCountCdP = "NearEndDelineatedTotalCellCountCdP"
+const TcAdaptorPerformanceMonitoringHistoryDataXdsl_NearEndUserTotalCellCountCuP = "NearEndUserTotalCellCountCuP"
+const TcAdaptorPerformanceMonitoringHistoryDataXdsl_NearEndIdleCellBitErrorCount = "NearEndIdleCellBitErrorCount"
+const TcAdaptorPerformanceMonitoringHistoryDataXdsl_FarEndHecViolationCount = "FarEndHecViolationCount"
+const TcAdaptorPerformanceMonitoringHistoryDataXdsl_FarEndDelineatedTotalCellCountCdPfe = "FarEndDelineatedTotalCellCountCdPfe"
+const TcAdaptorPerformanceMonitoringHistoryDataXdsl_FarEndUserTotalCellCountCuPfe = "FarEndUserTotalCellCountCuPfe"
+const TcAdaptorPerformanceMonitoringHistoryDataXdsl_FarEndIdleCellBitErrorCount = "FarEndIdleCellBitErrorCount"
+
 func init() {
 	tcadaptorperformancemonitoringhistorydataxdslBME = &ManagedEntityDefinition{
 		Name:    "TcAdaptorPerformanceMonitoringHistoryDataXdsl",
-		ClassID: 116,
+		ClassID: TcAdaptorPerformanceMonitoringHistoryDataXdslClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -105,17 +118,17 @@
 		),
 		AllowedAttributeMask: 0xffc0,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint16Field("NearEndHecViolationCount", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4:  Uint32Field("NearEndDelineatedTotalCellCountCdP", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  Uint32Field("NearEndUserTotalCellCountCuP", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6:  Uint16Field("NearEndIdleCellBitErrorCount", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  Uint16Field("FarEndHecViolationCount", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8:  Uint32Field("FarEndDelineatedTotalCellCountCdPfe", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
-			9:  Uint32Field("FarEndUserTotalCellCountCuPfe", CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
-			10: Uint16Field("FarEndIdleCellBitErrorCount", CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  ByteField(TcAdaptorPerformanceMonitoringHistoryDataXdsl_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  Uint16Field(TcAdaptorPerformanceMonitoringHistoryDataXdsl_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint16Field(TcAdaptorPerformanceMonitoringHistoryDataXdsl_NearEndHecViolationCount, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4:  Uint32Field(TcAdaptorPerformanceMonitoringHistoryDataXdsl_NearEndDelineatedTotalCellCountCdP, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  Uint32Field(TcAdaptorPerformanceMonitoringHistoryDataXdsl_NearEndUserTotalCellCountCuP, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6:  Uint16Field(TcAdaptorPerformanceMonitoringHistoryDataXdsl_NearEndIdleCellBitErrorCount, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  Uint16Field(TcAdaptorPerformanceMonitoringHistoryDataXdsl_FarEndHecViolationCount, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8:  Uint32Field(TcAdaptorPerformanceMonitoringHistoryDataXdsl_FarEndDelineatedTotalCellCountCdPfe, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			9:  Uint32Field(TcAdaptorPerformanceMonitoringHistoryDataXdsl_FarEndUserTotalCellCountCuPfe, CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
+			10: Uint16Field(TcAdaptorPerformanceMonitoringHistoryDataXdsl_FarEndIdleCellBitErrorCount, CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/tcpudpconfigdata.go b/generated/tcpudpconfigdata.go
index df11642..70a17a4 100644
--- a/generated/tcpudpconfigdata.go
+++ b/generated/tcpudpconfigdata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -72,10 +72,17 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const TcpUdpConfigData_PortId = "PortId"
+const TcpUdpConfigData_Protocol = "Protocol"
+const TcpUdpConfigData_TosDiffservField = "TosDiffservField"
+const TcpUdpConfigData_IpHostPointer = "IpHostPointer"
+
 func init() {
 	tcpudpconfigdataBME = &ManagedEntityDefinition{
 		Name:    "TcpUdpConfigData",
-		ClassID: 136,
+		ClassID: TcpUdpConfigDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -84,11 +91,11 @@
 		),
 		AllowedAttributeMask: 0xf000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: Uint16Field("PortId", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2: ByteField("Protocol", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: ByteField("TosDiffservField", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
-			4: Uint16Field("IpHostPointer", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: Uint16Field(TcpUdpConfigData_PortId, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2: ByteField(TcpUdpConfigData_Protocol, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: ByteField(TcpUdpConfigData_TosDiffservField, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
+			4: Uint16Field(TcpUdpConfigData_IpHostPointer, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/tcpudpperformancemonitoringhistorydata.go b/generated/tcpudpperformancemonitoringhistorydata.go
index fd7073b..491f353 100644
--- a/generated/tcpudpperformancemonitoringhistorydata.go
+++ b/generated/tcpudpperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -79,10 +79,20 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const TcpUdpPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const TcpUdpPerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const TcpUdpPerformanceMonitoringHistoryData_SocketFailed = "SocketFailed"
+const TcpUdpPerformanceMonitoringHistoryData_ListenFailed = "ListenFailed"
+const TcpUdpPerformanceMonitoringHistoryData_BindFailed = "BindFailed"
+const TcpUdpPerformanceMonitoringHistoryData_AcceptFailed = "AcceptFailed"
+const TcpUdpPerformanceMonitoringHistoryData_SelectFailed = "SelectFailed"
+
 func init() {
 	tcpudpperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "TcpUdpPerformanceMonitoringHistoryData",
-		ClassID: 342,
+		ClassID: TcpUdpPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -92,14 +102,14 @@
 		),
 		AllowedAttributeMask: 0xfe00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint16Field("SocketFailed", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4: Uint16Field("ListenFailed", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5: Uint16Field("BindFailed", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6: Uint16Field("AcceptFailed", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7: Uint16Field("SelectFailed", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(TcpUdpPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: Uint16Field(TcpUdpPerformanceMonitoringHistoryData_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint16Field(TcpUdpPerformanceMonitoringHistoryData_SocketFailed, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4: Uint16Field(TcpUdpPerformanceMonitoringHistoryData_ListenFailed, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5: Uint16Field(TcpUdpPerformanceMonitoringHistoryData_BindFailed, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6: Uint16Field(TcpUdpPerformanceMonitoringHistoryData_AcceptFailed, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7: Uint16Field(TcpUdpPerformanceMonitoringHistoryData_SelectFailed, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/thresholddata1.go b/generated/thresholddata1.go
index d398f61..f42aa70 100644
--- a/generated/thresholddata1.go
+++ b/generated/thresholddata1.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -79,10 +79,20 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const ThresholdData1_ThresholdValue1 = "ThresholdValue1"
+const ThresholdData1_ThresholdValue2 = "ThresholdValue2"
+const ThresholdData1_ThresholdValue3 = "ThresholdValue3"
+const ThresholdData1_ThresholdValue4 = "ThresholdValue4"
+const ThresholdData1_ThresholdValue5 = "ThresholdValue5"
+const ThresholdData1_ThresholdValue6 = "ThresholdValue6"
+const ThresholdData1_ThresholdValue7 = "ThresholdValue7"
+
 func init() {
 	thresholddata1BME = &ManagedEntityDefinition{
 		Name:    "ThresholdData1",
-		ClassID: 273,
+		ClassID: ThresholdData1ClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -91,14 +101,14 @@
 		),
 		AllowedAttributeMask: 0xfe00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: Uint32Field("ThresholdValue1", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2: Uint32Field("ThresholdValue2", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint32Field("ThresholdValue3", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
-			4: Uint32Field("ThresholdValue4", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
-			5: Uint32Field("ThresholdValue5", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
-			6: Uint32Field("ThresholdValue6", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 6),
-			7: Uint32Field("ThresholdValue7", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: Uint32Field(ThresholdData1_ThresholdValue1, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2: Uint32Field(ThresholdData1_ThresholdValue2, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint32Field(ThresholdData1_ThresholdValue3, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
+			4: Uint32Field(ThresholdData1_ThresholdValue4, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
+			5: Uint32Field(ThresholdData1_ThresholdValue5, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
+			6: Uint32Field(ThresholdData1_ThresholdValue6, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 6),
+			7: Uint32Field(ThresholdData1_ThresholdValue7, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/thresholddata2.go b/generated/thresholddata2.go
index 3cd0975..f1508db 100644
--- a/generated/thresholddata2.go
+++ b/generated/thresholddata2.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -77,10 +77,20 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const ThresholdData2_ThresholdValue8 = "ThresholdValue8"
+const ThresholdData2_ThresholdValue9 = "ThresholdValue9"
+const ThresholdData2_ThresholdValue10 = "ThresholdValue10"
+const ThresholdData2_ThresholdValue11 = "ThresholdValue11"
+const ThresholdData2_ThresholdValue12 = "ThresholdValue12"
+const ThresholdData2_ThresholdValue13 = "ThresholdValue13"
+const ThresholdData2_ThresholdValue14 = "ThresholdValue14"
+
 func init() {
 	thresholddata2BME = &ManagedEntityDefinition{
 		Name:    "ThresholdData2",
-		ClassID: 274,
+		ClassID: ThresholdData2ClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -89,14 +99,14 @@
 		),
 		AllowedAttributeMask: 0xfe00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: Uint32Field("ThresholdValue8", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2: Uint32Field("ThresholdValue9", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint32Field("ThresholdValue10", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
-			4: Uint32Field("ThresholdValue11", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
-			5: Uint32Field("ThresholdValue12", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
-			6: Uint32Field("ThresholdValue13", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 6),
-			7: Uint32Field("ThresholdValue14", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: Uint32Field(ThresholdData2_ThresholdValue8, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2: Uint32Field(ThresholdData2_ThresholdValue9, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint32Field(ThresholdData2_ThresholdValue10, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
+			4: Uint32Field(ThresholdData2_ThresholdValue11, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
+			5: Uint32Field(ThresholdData2_ThresholdValue12, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
+			6: Uint32Field(ThresholdData2_ThresholdValue13, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 6),
+			7: Uint32Field(ThresholdData2_ThresholdValue14, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/timestatusmessage.go b/generated/timestatusmessage.go
index d227b91..511439b 100644
--- a/generated/timestatusmessage.go
+++ b/generated/timestatusmessage.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -87,25 +87,36 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const TimeStatusMessage_DomainNumber = "DomainNumber"
+const TimeStatusMessage_FlagField = "FlagField"
+const TimeStatusMessage_Currentutcoffset = "Currentutcoffset"
+const TimeStatusMessage_Priority1 = "Priority1"
+const TimeStatusMessage_Clockclass = "Clockclass"
+const TimeStatusMessage_Accuracy = "Accuracy"
+const TimeStatusMessage_Offsetscaledlogvariance = "Offsetscaledlogvariance"
+const TimeStatusMessage_Priority2 = "Priority2"
+
 func init() {
 	timestatusmessageBME = &ManagedEntityDefinition{
 		Name:    "TimeStatusMessage",
-		ClassID: 440,
+		ClassID: TimeStatusMessageClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
 		),
 		AllowedAttributeMask: 0xff00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: ByteField("DomainNumber", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
-			2: ByteField("FlagField", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
-			3: Uint16Field("Currentutcoffset", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
-			4: ByteField("Priority1", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, false, false, 4),
-			5: ByteField("Clockclass", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
-			6: ByteField("Accuracy", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
-			7: Uint16Field("Offsetscaledlogvariance", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
-			8: ByteField("Priority2", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, false, false, 8),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: ByteField(TimeStatusMessage_DomainNumber, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			2: ByteField(TimeStatusMessage_FlagField, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
+			3: Uint16Field(TimeStatusMessage_Currentutcoffset, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
+			4: ByteField(TimeStatusMessage_Priority1, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, false, false, 4),
+			5: ByteField(TimeStatusMessage_Clockclass, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
+			6: ByteField(TimeStatusMessage_Accuracy, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
+			7: Uint16Field(TimeStatusMessage_Offsetscaledlogvariance, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
+			8: ByteField(TimeStatusMessage_Priority2, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, false, false, 8),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/trafficdescriptor.go b/generated/trafficdescriptor.go
index cf1ccc0..920ba6a 100644
--- a/generated/trafficdescriptor.go
+++ b/generated/trafficdescriptor.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -155,10 +155,21 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const TrafficDescriptor_Cir = "Cir"
+const TrafficDescriptor_Pir = "Pir"
+const TrafficDescriptor_Cbs = "Cbs"
+const TrafficDescriptor_Pbs = "Pbs"
+const TrafficDescriptor_ColourMode = "ColourMode"
+const TrafficDescriptor_IngressColourMarking = "IngressColourMarking"
+const TrafficDescriptor_EgressColourMarking = "EgressColourMarking"
+const TrafficDescriptor_MeterType = "MeterType"
+
 func init() {
 	trafficdescriptorBME = &ManagedEntityDefinition{
 		Name:    "TrafficDescriptor",
-		ClassID: 280,
+		ClassID: TrafficDescriptorClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -167,15 +178,15 @@
 		),
 		AllowedAttributeMask: 0xff00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: Uint32Field("Cir", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 1),
-			2: Uint32Field("Pir", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 2),
-			3: Uint32Field("Cbs", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 3),
-			4: Uint32Field("Pbs", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 4),
-			5: ByteField("ColourMode", EnumerationAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 5),
-			6: ByteField("IngressColourMarking", EnumerationAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 6),
-			7: ByteField("EgressColourMarking", EnumerationAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 7),
-			8: ByteField("MeterType", EnumerationAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate), false, true, false, 8),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: Uint32Field(TrafficDescriptor_Cir, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 1),
+			2: Uint32Field(TrafficDescriptor_Pir, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 2),
+			3: Uint32Field(TrafficDescriptor_Cbs, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 3),
+			4: Uint32Field(TrafficDescriptor_Pbs, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 4),
+			5: ByteField(TrafficDescriptor_ColourMode, EnumerationAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 5),
+			6: ByteField(TrafficDescriptor_IngressColourMarking, EnumerationAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 6),
+			7: ByteField(TrafficDescriptor_EgressColourMarking, EnumerationAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 7),
+			8: ByteField(TrafficDescriptor_MeterType, EnumerationAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate), false, true, false, 8),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/trafficscheduler.go b/generated/trafficscheduler.go
index 6be642f..71292a6 100644
--- a/generated/trafficscheduler.go
+++ b/generated/trafficscheduler.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -108,21 +108,28 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const TrafficScheduler_TContPointer = "TContPointer"
+const TrafficScheduler_TrafficSchedulerPointer = "TrafficSchedulerPointer"
+const TrafficScheduler_Policy = "Policy"
+const TrafficScheduler_PriorityWeight = "PriorityWeight"
+
 func init() {
 	trafficschedulerBME = &ManagedEntityDefinition{
 		Name:    "TrafficScheduler",
-		ClassID: 278,
+		ClassID: TrafficSchedulerClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
 		),
 		AllowedAttributeMask: 0xf000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: Uint16Field("TContPointer", PointerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
-			2: Uint16Field("TrafficSchedulerPointer", PointerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
-			3: ByteField("Policy", EnumerationAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
-			4: ByteField("PriorityWeight", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, false, false, 4),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: Uint16Field(TrafficScheduler_TContPointer, PointerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			2: Uint16Field(TrafficScheduler_TrafficSchedulerPointer, PointerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
+			3: ByteField(TrafficScheduler_Policy, EnumerationAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
+			4: ByteField(TrafficScheduler_PriorityWeight, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, false, false, 4),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/twdmchannelmanagedentity.go b/generated/twdmchannelmanagedentity.go
index b0b0ce5..0b38dac 100644
--- a/generated/twdmchannelmanagedentity.go
+++ b/generated/twdmchannelmanagedentity.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -72,20 +72,27 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const TwdmChannelManagedEntity_ActiveChannelIndication = "ActiveChannelIndication"
+const TwdmChannelManagedEntity_OperationalChannelIndication = "OperationalChannelIndication"
+const TwdmChannelManagedEntity_DownstreamWavelengthChannel = "DownstreamWavelengthChannel"
+const TwdmChannelManagedEntity_UpstreamWavelengthChannel = "UpstreamWavelengthChannel"
+
 func init() {
 	twdmchannelmanagedentityBME = &ManagedEntityDefinition{
 		Name:    "TwdmChannelManagedEntity",
-		ClassID: 443,
+		ClassID: TwdmChannelManagedEntityClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 		),
 		AllowedAttributeMask: 0xf000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: ByteField("ActiveChannelIndication", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: ByteField("OperationalChannelIndication", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
-			3: ByteField("DownstreamWavelengthChannel", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4: ByteField("UpstreamWavelengthChannel", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: ByteField(TwdmChannelManagedEntity_ActiveChannelIndication, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: ByteField(TwdmChannelManagedEntity_OperationalChannelIndication, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
+			3: ByteField(TwdmChannelManagedEntity_DownstreamWavelengthChannel, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4: ByteField(TwdmChannelManagedEntity_UpstreamWavelengthChannel, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/twdmchannelomciperformancemonitoringhistorydata.go b/generated/twdmchannelomciperformancemonitoringhistorydata.go
index fb1f97d..1392a58 100644
--- a/generated/twdmchannelomciperformancemonitoringhistorydata.go
+++ b/generated/twdmchannelomciperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -69,10 +69,18 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const TwdmChannelOmciPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const TwdmChannelOmciPerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const TwdmChannelOmciPerformanceMonitoringHistoryData_OmciBaselineMessageCount = "OmciBaselineMessageCount"
+const TwdmChannelOmciPerformanceMonitoringHistoryData_OmciExtendedMessageCount = "OmciExtendedMessageCount"
+const TwdmChannelOmciPerformanceMonitoringHistoryData_OmciMicErrorCount = "OmciMicErrorCount"
+
 func init() {
 	twdmchannelomciperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "TwdmChannelOmciPerformanceMonitoringHistoryData",
-		ClassID: 452,
+		ClassID: TwdmChannelOmciPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -82,12 +90,12 @@
 		),
 		AllowedAttributeMask: 0xf800,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint32Field("OmciBaselineMessageCount", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4: Uint32Field("OmciExtendedMessageCount", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5: Uint32Field("OmciMicErrorCount", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(TwdmChannelOmciPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: Uint16Field(TwdmChannelOmciPerformanceMonitoringHistoryData_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint32Field(TwdmChannelOmciPerformanceMonitoringHistoryData_OmciBaselineMessageCount, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4: Uint32Field(TwdmChannelOmciPerformanceMonitoringHistoryData_OmciExtendedMessageCount, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5: Uint32Field(TwdmChannelOmciPerformanceMonitoringHistoryData_OmciMicErrorCount, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/twdmchannelphylodsperformancemonitoringhistorydata.go b/generated/twdmchannelphylodsperformancemonitoringhistorydata.go
index 93fa9d0..fd79582 100644
--- a/generated/twdmchannelphylodsperformancemonitoringhistorydata.go
+++ b/generated/twdmchannelphylodsperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -117,10 +117,28 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const TwdmChannelPhyLodsPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const TwdmChannelPhyLodsPerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const TwdmChannelPhyLodsPerformanceMonitoringHistoryData_TotalReceivedWordsProtectedByBitInterleavedParity32Bip32 = "TotalReceivedWordsProtectedByBitInterleavedParity32Bip32"
+const TwdmChannelPhyLodsPerformanceMonitoringHistoryData_Bip32BitErrorCount = "Bip32BitErrorCount"
+const TwdmChannelPhyLodsPerformanceMonitoringHistoryData_CorrectedPsbdHecErrorCount = "CorrectedPsbdHecErrorCount"
+const TwdmChannelPhyLodsPerformanceMonitoringHistoryData_UncorrectablePsbdHecErrorCount = "UncorrectablePsbdHecErrorCount"
+const TwdmChannelPhyLodsPerformanceMonitoringHistoryData_CorrectedDownstreamFsHeaderHecErrorCount = "CorrectedDownstreamFsHeaderHecErrorCount"
+const TwdmChannelPhyLodsPerformanceMonitoringHistoryData_UncorrectableDownstreamFsHeaderHecErrorCount = "UncorrectableDownstreamFsHeaderHecErrorCount"
+const TwdmChannelPhyLodsPerformanceMonitoringHistoryData_TotalNumberOfLodsEvents = "TotalNumberOfLodsEvents"
+const TwdmChannelPhyLodsPerformanceMonitoringHistoryData_LodsEventsRestoredInOperatingTwdmChannel = "LodsEventsRestoredInOperatingTwdmChannel"
+const TwdmChannelPhyLodsPerformanceMonitoringHistoryData_LodsEventsRestoredInProtectionTwdmChannel = "LodsEventsRestoredInProtectionTwdmChannel"
+const TwdmChannelPhyLodsPerformanceMonitoringHistoryData_LodsEventsRestoredInDiscretionaryTwdmChannel = "LodsEventsRestoredInDiscretionaryTwdmChannel"
+const TwdmChannelPhyLodsPerformanceMonitoringHistoryData_LodsEventsResultingInReactivation = "LodsEventsResultingInReactivation"
+const TwdmChannelPhyLodsPerformanceMonitoringHistoryData_LodsEventsResultingInReactivationAfterRetuningToProtectionTwdmChannel = "LodsEventsResultingInReactivationAfterRetuningToProtectionTwdmChannel"
+const TwdmChannelPhyLodsPerformanceMonitoringHistoryData_LodsEventsResultingInReactivationAfterRetuningToDiscretionaryTwdmChannel = "LodsEventsResultingInReactivationAfterRetuningToDiscretionaryTwdmChannel"
+
 func init() {
 	twdmchannelphylodsperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "TwdmChannelPhyLodsPerformanceMonitoringHistoryData",
-		ClassID: 444,
+		ClassID: TwdmChannelPhyLodsPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -130,22 +148,22 @@
 		),
 		AllowedAttributeMask: 0xfffe,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint64Field("TotalReceivedWordsProtectedByBitInterleavedParity32Bip32", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4:  Uint32Field("Bip32BitErrorCount", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  Uint32Field("CorrectedPsbdHecErrorCount", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6:  Uint32Field("UncorrectablePsbdHecErrorCount", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  Uint32Field("CorrectedDownstreamFsHeaderHecErrorCount", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8:  Uint32Field("UncorrectableDownstreamFsHeaderHecErrorCount", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
-			9:  Uint32Field("TotalNumberOfLodsEvents", CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
-			10: Uint32Field("LodsEventsRestoredInOperatingTwdmChannel", CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
-			11: Uint32Field("LodsEventsRestoredInProtectionTwdmChannel", CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
-			12: Uint32Field("LodsEventsRestoredInDiscretionaryTwdmChannel", CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
-			13: Uint32Field("LodsEventsResultingInReactivation", CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
-			14: Uint32Field("LodsEventsResultingInReactivationAfterRetuningToProtectionTwdmChannel", CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
-			15: Uint32Field("LodsEventsResultingInReactivationAfterRetuningToDiscretionaryTwdmChannel", CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, false, false, 15),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(TwdmChannelPhyLodsPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  Uint16Field(TwdmChannelPhyLodsPerformanceMonitoringHistoryData_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint64Field(TwdmChannelPhyLodsPerformanceMonitoringHistoryData_TotalReceivedWordsProtectedByBitInterleavedParity32Bip32, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4:  Uint32Field(TwdmChannelPhyLodsPerformanceMonitoringHistoryData_Bip32BitErrorCount, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  Uint32Field(TwdmChannelPhyLodsPerformanceMonitoringHistoryData_CorrectedPsbdHecErrorCount, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6:  Uint32Field(TwdmChannelPhyLodsPerformanceMonitoringHistoryData_UncorrectablePsbdHecErrorCount, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  Uint32Field(TwdmChannelPhyLodsPerformanceMonitoringHistoryData_CorrectedDownstreamFsHeaderHecErrorCount, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8:  Uint32Field(TwdmChannelPhyLodsPerformanceMonitoringHistoryData_UncorrectableDownstreamFsHeaderHecErrorCount, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			9:  Uint32Field(TwdmChannelPhyLodsPerformanceMonitoringHistoryData_TotalNumberOfLodsEvents, CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
+			10: Uint32Field(TwdmChannelPhyLodsPerformanceMonitoringHistoryData_LodsEventsRestoredInOperatingTwdmChannel, CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
+			11: Uint32Field(TwdmChannelPhyLodsPerformanceMonitoringHistoryData_LodsEventsRestoredInProtectionTwdmChannel, CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
+			12: Uint32Field(TwdmChannelPhyLodsPerformanceMonitoringHistoryData_LodsEventsRestoredInDiscretionaryTwdmChannel, CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
+			13: Uint32Field(TwdmChannelPhyLodsPerformanceMonitoringHistoryData_LodsEventsResultingInReactivation, CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
+			14: Uint32Field(TwdmChannelPhyLodsPerformanceMonitoringHistoryData_LodsEventsResultingInReactivationAfterRetuningToProtectionTwdmChannel, CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
+			15: Uint32Field(TwdmChannelPhyLodsPerformanceMonitoringHistoryData_LodsEventsResultingInReactivationAfterRetuningToDiscretionaryTwdmChannel, CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, false, false, 15),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/twdmchannelploamperformancemonitoringhistorydatapart1.go b/generated/twdmchannelploamperformancemonitoringhistorydatapart1.go
index df4499f..9e7a608 100644
--- a/generated/twdmchannelploamperformancemonitoringhistorydatapart1.go
+++ b/generated/twdmchannelploamperformancemonitoringhistorydatapart1.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -91,10 +91,21 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart1_IntervalEndTime = "IntervalEndTime"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart1_ThresholdData12Id = "ThresholdData12Id"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart1_PloamMicErrors = "PloamMicErrors"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart1_DownstreamPloamMessageCount = "DownstreamPloamMessageCount"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart1_RangingTimeMessageCount = "RangingTimeMessageCount"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart1_ProtectionControlMessageCount = "ProtectionControlMessageCount"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart1_AdjustTxWavelengthMessageCount = "AdjustTxWavelengthMessageCount"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart1_AdjustTxWavelengthAdjustmentAmplitude = "AdjustTxWavelengthAdjustmentAmplitude"
+
 func init() {
 	twdmchannelploamperformancemonitoringhistorydatapart1BME = &ManagedEntityDefinition{
 		Name:    "TwdmChannelPloamPerformanceMonitoringHistoryDataPart1",
-		ClassID: 446,
+		ClassID: TwdmChannelPloamPerformanceMonitoringHistoryDataPart1ClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -104,15 +115,15 @@
 		),
 		AllowedAttributeMask: 0xff00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint32Field("PloamMicErrors", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4: Uint32Field("DownstreamPloamMessageCount", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5: Uint32Field("RangingTimeMessageCount", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6: Uint32Field("ProtectionControlMessageCount", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7: Uint32Field("AdjustTxWavelengthMessageCount", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8: Uint32Field("AdjustTxWavelengthAdjustmentAmplitude", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(TwdmChannelPloamPerformanceMonitoringHistoryDataPart1_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: Uint16Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart1_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint32Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart1_PloamMicErrors, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4: Uint32Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart1_DownstreamPloamMessageCount, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5: Uint32Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart1_RangingTimeMessageCount, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6: Uint32Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart1_ProtectionControlMessageCount, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7: Uint32Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart1_AdjustTxWavelengthMessageCount, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8: Uint32Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart1_AdjustTxWavelengthAdjustmentAmplitude, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/twdmchannelploamperformancemonitoringhistorydatapart2.go b/generated/twdmchannelploamperformancemonitoringhistorydatapart2.go
index 8aa8f0a..3a33214 100644
--- a/generated/twdmchannelploamperformancemonitoringhistorydatapart2.go
+++ b/generated/twdmchannelploamperformancemonitoringhistorydatapart2.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -117,10 +117,29 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart2_IntervalEndTime = "IntervalEndTime"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart2_ThresholdData12Id = "ThresholdData12Id"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart2_SystemProfileMessageCount = "SystemProfileMessageCount"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart2_ChannelProfileMessageCount = "ChannelProfileMessageCount"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart2_BurstProfileMessageCount = "BurstProfileMessageCount"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart2_AssignOnuIdMessageCount = "AssignOnuIdMessageCount"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart2_UnsatisfiedAdjustTxWavelengthRequests = "UnsatisfiedAdjustTxWavelengthRequests"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart2_DeactivateOnuIdMessageCount = "DeactivateOnuIdMessageCount"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart2_DisableSerialNumberMessageCount = "DisableSerialNumberMessageCount"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart2_RequestRegistrationMessageCount = "RequestRegistrationMessageCount"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart2_AssignAllocIdMessageCount = "AssignAllocIdMessageCount"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart2_KeyControlMessageCount = "KeyControlMessageCount"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart2_SleepAllowMessageCount = "SleepAllowMessageCount"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart2_TuningControlRequestMessageCount = "TuningControlRequestMessageCount"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart2_TuningControlCompleteDMessageCount = "TuningControlCompleteDMessageCount"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart2_CalibrationRequestMessageCount = "CalibrationRequestMessageCount"
+
 func init() {
 	twdmchannelploamperformancemonitoringhistorydatapart2BME = &ManagedEntityDefinition{
 		Name:    "TwdmChannelPloamPerformanceMonitoringHistoryDataPart2",
-		ClassID: 447,
+		ClassID: TwdmChannelPloamPerformanceMonitoringHistoryDataPart2ClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -130,23 +149,23 @@
 		),
 		AllowedAttributeMask: 0xffff,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint32Field("SystemProfileMessageCount", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4:  Uint32Field("ChannelProfileMessageCount", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  Uint32Field("BurstProfileMessageCount", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6:  Uint32Field("AssignOnuIdMessageCount", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  Uint32Field("UnsatisfiedAdjustTxWavelengthRequests", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8:  Uint32Field("DeactivateOnuIdMessageCount", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
-			9:  Uint32Field("DisableSerialNumberMessageCount", CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
-			10: Uint32Field("RequestRegistrationMessageCount", CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
-			11: Uint32Field("AssignAllocIdMessageCount", CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
-			12: Uint32Field("KeyControlMessageCount", CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
-			13: Uint32Field("SleepAllowMessageCount", CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
-			14: Uint32Field("TuningControlRequestMessageCount", CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
-			15: Uint32Field("TuningControlCompleteDMessageCount", CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, false, false, 15),
-			16: Uint32Field("CalibrationRequestMessageCount", CounterAttributeType, 0x0001, 0, mapset.NewSetWith(Read), false, false, false, 16),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(TwdmChannelPloamPerformanceMonitoringHistoryDataPart2_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  Uint16Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart2_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint32Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart2_SystemProfileMessageCount, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4:  Uint32Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart2_ChannelProfileMessageCount, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  Uint32Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart2_BurstProfileMessageCount, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6:  Uint32Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart2_AssignOnuIdMessageCount, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  Uint32Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart2_UnsatisfiedAdjustTxWavelengthRequests, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8:  Uint32Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart2_DeactivateOnuIdMessageCount, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			9:  Uint32Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart2_DisableSerialNumberMessageCount, CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
+			10: Uint32Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart2_RequestRegistrationMessageCount, CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
+			11: Uint32Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart2_AssignAllocIdMessageCount, CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
+			12: Uint32Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart2_KeyControlMessageCount, CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
+			13: Uint32Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart2_SleepAllowMessageCount, CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
+			14: Uint32Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart2_TuningControlRequestMessageCount, CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
+			15: Uint32Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart2_TuningControlCompleteDMessageCount, CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, false, false, 15),
+			16: Uint32Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart2_CalibrationRequestMessageCount, CounterAttributeType, 0x0001, 0, mapset.NewSetWith(Read), false, false, false, 16),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/twdmchannelploamperformancemonitoringhistorydatapart3.go b/generated/twdmchannelploamperformancemonitoringhistorydatapart3.go
index 99dbe51..45c976e 100644
--- a/generated/twdmchannelploamperformancemonitoringhistorydatapart3.go
+++ b/generated/twdmchannelploamperformancemonitoringhistorydatapart3.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -100,10 +100,26 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart3_IntervalEndTime = "IntervalEndTime"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart3_ThresholdData12Id = "ThresholdData12Id"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart3_UpstreamPloamMessageCount = "UpstreamPloamMessageCount"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart3_SerialNumberOnuInBandMessageCount = "SerialNumberOnuInBandMessageCount"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart3_SerialNumberOnuAmccMessageCount = "SerialNumberOnuAmccMessageCount"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart3_RegistrationMessageCount = "RegistrationMessageCount"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart3_KeyReportMessageCount = "KeyReportMessageCount"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart3_AcknowledgementMessageCount = "AcknowledgementMessageCount"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart3_SleepRequestMessageCount = "SleepRequestMessageCount"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart3_TuningResponseAckNackMessageCount = "TuningResponseAckNackMessageCount"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart3_TuningResponseCompleteURollbackMessageCount = "TuningResponseCompleteURollbackMessageCount"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart3_PowerConsumptionReportMessageCount = "PowerConsumptionReportMessageCount"
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart3_ChangePowerLevelParameterErrorCount = "ChangePowerLevelParameterErrorCount"
+
 func init() {
 	twdmchannelploamperformancemonitoringhistorydatapart3BME = &ManagedEntityDefinition{
 		Name:    "TwdmChannelPloamPerformanceMonitoringHistoryDataPart3",
-		ClassID: 448,
+		ClassID: TwdmChannelPloamPerformanceMonitoringHistoryDataPart3ClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -113,20 +129,20 @@
 		),
 		AllowedAttributeMask: 0xfff8,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint32Field("UpstreamPloamMessageCount", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4:  Uint32Field("SerialNumberOnuInBandMessageCount", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  Uint32Field("SerialNumberOnuAmccMessageCount", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6:  Uint32Field("RegistrationMessageCount", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  Uint32Field("KeyReportMessageCount", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8:  Uint32Field("AcknowledgementMessageCount", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
-			9:  Uint32Field("SleepRequestMessageCount", CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
-			10: Uint32Field("TuningResponseAckNackMessageCount", CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
-			11: Uint32Field("TuningResponseCompleteURollbackMessageCount", CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
-			12: Uint32Field("PowerConsumptionReportMessageCount", CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
-			13: Uint32Field("ChangePowerLevelParameterErrorCount", CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(TwdmChannelPloamPerformanceMonitoringHistoryDataPart3_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  Uint16Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart3_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint32Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart3_UpstreamPloamMessageCount, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4:  Uint32Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart3_SerialNumberOnuInBandMessageCount, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  Uint32Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart3_SerialNumberOnuAmccMessageCount, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6:  Uint32Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart3_RegistrationMessageCount, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  Uint32Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart3_KeyReportMessageCount, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8:  Uint32Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart3_AcknowledgementMessageCount, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			9:  Uint32Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart3_SleepRequestMessageCount, CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
+			10: Uint32Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart3_TuningResponseAckNackMessageCount, CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
+			11: Uint32Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart3_TuningResponseCompleteURollbackMessageCount, CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
+			12: Uint32Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart3_PowerConsumptionReportMessageCount, CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
+			13: Uint32Field(TwdmChannelPloamPerformanceMonitoringHistoryDataPart3_ChangePowerLevelParameterErrorCount, CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/twdmchanneltuningperformancemonitoringhistorydatapart1.go b/generated/twdmchanneltuningperformancemonitoringhistorydatapart1.go
index bc14a28..3aac486 100644
--- a/generated/twdmchanneltuningperformancemonitoringhistorydatapart1.go
+++ b/generated/twdmchanneltuningperformancemonitoringhistorydatapart1.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -124,10 +124,28 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart1_IntervalEndTime = "IntervalEndTime"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart1_ThresholdData12Id = "ThresholdData12Id"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart1_TuningControlRequestsForRxOnlyOrRxAndTx = "TuningControlRequestsForRxOnlyOrRxAndTx"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart1_TuningControlRequestsForTxOnly = "TuningControlRequestsForTxOnly"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart1_TuningControlRequestsRejectedIntSfc = "TuningControlRequestsRejectedIntSfc"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart1_TuningControlRequestsRejectedDsXxx = "TuningControlRequestsRejectedDsXxx"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart1_TuningControlRequestsRejectedUsXxx = "TuningControlRequestsRejectedUsXxx"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart1_TuningControlRequestsFulfilledWithOnuReacquiredAtTargetChannel = "TuningControlRequestsFulfilledWithOnuReacquiredAtTargetChannel"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart1_TuningControlRequestsFailedDueToTargetDsWavelengthChannelNotFound = "TuningControlRequestsFailedDueToTargetDsWavelengthChannelNotFound"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart1_TuningControlRequestsFailedDueToNoFeedbackInTargetDsWavelengthChannel = "TuningControlRequestsFailedDueToNoFeedbackInTargetDsWavelengthChannel"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart1_TuningControlRequestsResolvedWithOnuReacquiredAtDiscretionaryChannel = "TuningControlRequestsResolvedWithOnuReacquiredAtDiscretionaryChannel"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart1_TuningControlRequestsRollbackComDs = "TuningControlRequestsRollbackComDs"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart1_TuningControlRequestsRollbackDsXxx = "TuningControlRequestsRollbackDsXxx"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart1_TuningControlRequestsRollbackUsXxx = "TuningControlRequestsRollbackUsXxx"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart1_TuningControlRequestsFailedWithOnuReactivation = "TuningControlRequestsFailedWithOnuReactivation"
+
 func init() {
 	twdmchanneltuningperformancemonitoringhistorydatapart1BME = &ManagedEntityDefinition{
 		Name:    "TwdmChannelTuningPerformanceMonitoringHistoryDataPart1",
-		ClassID: 449,
+		ClassID: TwdmChannelTuningPerformanceMonitoringHistoryDataPart1ClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -136,22 +154,22 @@
 		),
 		AllowedAttributeMask: 0xfffe,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint32Field("TuningControlRequestsForRxOnlyOrRxAndTx", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4:  Uint32Field("TuningControlRequestsForTxOnly", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  Uint32Field("TuningControlRequestsRejectedIntSfc", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6:  Uint32Field("TuningControlRequestsRejectedDsXxx", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  Uint32Field("TuningControlRequestsRejectedUsXxx", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8:  Uint32Field("TuningControlRequestsFulfilledWithOnuReacquiredAtTargetChannel", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
-			9:  Uint32Field("TuningControlRequestsFailedDueToTargetDsWavelengthChannelNotFound", CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
-			10: Uint32Field("TuningControlRequestsFailedDueToNoFeedbackInTargetDsWavelengthChannel", CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
-			11: Uint32Field("TuningControlRequestsResolvedWithOnuReacquiredAtDiscretionaryChannel", CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
-			12: Uint32Field("TuningControlRequestsRollbackComDs", CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
-			13: Uint32Field("TuningControlRequestsRollbackDsXxx", CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
-			14: Uint32Field("TuningControlRequestsRollbackUsXxx", CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
-			15: Uint32Field("TuningControlRequestsFailedWithOnuReactivation", CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, false, false, 15),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(TwdmChannelTuningPerformanceMonitoringHistoryDataPart1_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  Uint16Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart1_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart1_TuningControlRequestsForRxOnlyOrRxAndTx, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4:  Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart1_TuningControlRequestsForTxOnly, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart1_TuningControlRequestsRejectedIntSfc, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6:  Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart1_TuningControlRequestsRejectedDsXxx, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart1_TuningControlRequestsRejectedUsXxx, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8:  Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart1_TuningControlRequestsFulfilledWithOnuReacquiredAtTargetChannel, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			9:  Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart1_TuningControlRequestsFailedDueToTargetDsWavelengthChannelNotFound, CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
+			10: Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart1_TuningControlRequestsFailedDueToNoFeedbackInTargetDsWavelengthChannel, CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
+			11: Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart1_TuningControlRequestsResolvedWithOnuReacquiredAtDiscretionaryChannel, CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
+			12: Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart1_TuningControlRequestsRollbackComDs, CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
+			13: Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart1_TuningControlRequestsRollbackDsXxx, CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
+			14: Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart1_TuningControlRequestsRollbackUsXxx, CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
+			15: Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart1_TuningControlRequestsFailedWithOnuReactivation, CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, false, false, 15),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/twdmchanneltuningperformancemonitoringhistorydatapart2.go b/generated/twdmchanneltuningperformancemonitoringhistorydatapart2.go
index 6dd4ca6..9ed820b 100644
--- a/generated/twdmchanneltuningperformancemonitoringhistorydatapart2.go
+++ b/generated/twdmchanneltuningperformancemonitoringhistorydatapart2.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -127,10 +127,28 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart2_IntervalEndTime = "IntervalEndTime"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart2_ThresholdData12Id = "ThresholdData12Id"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart2_TuningControlRequestsRejectedDsAlbl = "TuningControlRequestsRejectedDsAlbl"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart2_TuningControlRequestsRejectedDsVoid = "TuningControlRequestsRejectedDsVoid"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart2_TuningControlRequestsRejectedDsPart = "TuningControlRequestsRejectedDsPart"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart2_TuningControlRequestsRejectedDsTunr = "TuningControlRequestsRejectedDsTunr"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart2_TuningControlRequestsRejectedDsLnrt = "TuningControlRequestsRejectedDsLnrt"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart2_TuningControlRequestsRejectedDsLncd = "TuningControlRequestsRejectedDsLncd"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart2_TuningControlRequestsRejectedUsAlbl = "TuningControlRequestsRejectedUsAlbl"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart2_TuningControlRequestsRejectedUsVoid = "TuningControlRequestsRejectedUsVoid"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart2_TuningControlRequestsRejectedUsTunr = "TuningControlRequestsRejectedUsTunr"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart2_TuningControlRequestsRejectedUsClbr = "TuningControlRequestsRejectedUsClbr"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart2_TuningControlRequestsRejectedUsLktp = "TuningControlRequestsRejectedUsLktp"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart2_TuningControlRequestsRejectedUsLnrt = "TuningControlRequestsRejectedUsLnrt"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart2_TuningControlRequestsRejectedUsLncd = "TuningControlRequestsRejectedUsLncd"
+
 func init() {
 	twdmchanneltuningperformancemonitoringhistorydatapart2BME = &ManagedEntityDefinition{
 		Name:    "TwdmChannelTuningPerformanceMonitoringHistoryDataPart2",
-		ClassID: 450,
+		ClassID: TwdmChannelTuningPerformanceMonitoringHistoryDataPart2ClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -140,22 +158,22 @@
 		),
 		AllowedAttributeMask: 0xfffe,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint32Field("TuningControlRequestsRejectedDsAlbl", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4:  Uint32Field("TuningControlRequestsRejectedDsVoid", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  Uint32Field("TuningControlRequestsRejectedDsPart", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6:  Uint32Field("TuningControlRequestsRejectedDsTunr", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  Uint32Field("TuningControlRequestsRejectedDsLnrt", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8:  Uint32Field("TuningControlRequestsRejectedDsLncd", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
-			9:  Uint32Field("TuningControlRequestsRejectedUsAlbl", CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
-			10: Uint32Field("TuningControlRequestsRejectedUsVoid", CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
-			11: Uint32Field("TuningControlRequestsRejectedUsTunr", CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
-			12: Uint32Field("TuningControlRequestsRejectedUsClbr", CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
-			13: Uint32Field("TuningControlRequestsRejectedUsLktp", CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
-			14: Uint32Field("TuningControlRequestsRejectedUsLnrt", CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
-			15: Uint32Field("TuningControlRequestsRejectedUsLncd", CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, false, false, 15),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(TwdmChannelTuningPerformanceMonitoringHistoryDataPart2_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  Uint16Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart2_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart2_TuningControlRequestsRejectedDsAlbl, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4:  Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart2_TuningControlRequestsRejectedDsVoid, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart2_TuningControlRequestsRejectedDsPart, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6:  Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart2_TuningControlRequestsRejectedDsTunr, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart2_TuningControlRequestsRejectedDsLnrt, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8:  Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart2_TuningControlRequestsRejectedDsLncd, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			9:  Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart2_TuningControlRequestsRejectedUsAlbl, CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
+			10: Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart2_TuningControlRequestsRejectedUsVoid, CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
+			11: Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart2_TuningControlRequestsRejectedUsTunr, CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
+			12: Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart2_TuningControlRequestsRejectedUsClbr, CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
+			13: Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart2_TuningControlRequestsRejectedUsLktp, CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
+			14: Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart2_TuningControlRequestsRejectedUsLnrt, CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
+			15: Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart2_TuningControlRequestsRejectedUsLncd, CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, false, false, 15),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/twdmchanneltuningperformancemonitoringhistorydatapart3.go b/generated/twdmchanneltuningperformancemonitoringhistorydatapart3.go
index 284f476..991d592 100644
--- a/generated/twdmchanneltuningperformancemonitoringhistorydatapart3.go
+++ b/generated/twdmchanneltuningperformancemonitoringhistorydatapart3.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -103,10 +103,23 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart3_IntervalEndTime = "IntervalEndTime"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart3_ThresholdData12Id = "ThresholdData12Id"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart3_TuningControlRequestsRollbackDsAlbl = "TuningControlRequestsRollbackDsAlbl"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart3_TuningControlRequestsRollbackDsLktp = "TuningControlRequestsRollbackDsLktp"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart3_TuningControlRequestsRollbackUsAlbl = "TuningControlRequestsRollbackUsAlbl"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart3_TuningControlRequestsRollbackUsVoid = "TuningControlRequestsRollbackUsVoid"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart3_TuningControlRequestsRollbackUsTunr = "TuningControlRequestsRollbackUsTunr"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart3_TuningControlRequestsRollbackUsLktp = "TuningControlRequestsRollbackUsLktp"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart3_TuningControlRequestsRollbackUsLnrt = "TuningControlRequestsRollbackUsLnrt"
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart3_TuningControlRequestsRollbackUsLncd = "TuningControlRequestsRollbackUsLncd"
+
 func init() {
 	twdmchanneltuningperformancemonitoringhistorydatapart3BME = &ManagedEntityDefinition{
 		Name:    "TwdmChannelTuningPerformanceMonitoringHistoryDataPart3",
-		ClassID: 451,
+		ClassID: TwdmChannelTuningPerformanceMonitoringHistoryDataPart3ClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -116,17 +129,17 @@
 		),
 		AllowedAttributeMask: 0xffc0,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint32Field("TuningControlRequestsRollbackDsAlbl", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4:  Uint32Field("TuningControlRequestsRollbackDsLktp", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  Uint32Field("TuningControlRequestsRollbackUsAlbl", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6:  Uint32Field("TuningControlRequestsRollbackUsVoid", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  Uint32Field("TuningControlRequestsRollbackUsTunr", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8:  Uint32Field("TuningControlRequestsRollbackUsLktp", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
-			9:  Uint32Field("TuningControlRequestsRollbackUsLnrt", CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
-			10: Uint32Field("TuningControlRequestsRollbackUsLncd", CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(TwdmChannelTuningPerformanceMonitoringHistoryDataPart3_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  Uint16Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart3_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart3_TuningControlRequestsRollbackDsAlbl, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4:  Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart3_TuningControlRequestsRollbackDsLktp, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart3_TuningControlRequestsRollbackUsAlbl, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6:  Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart3_TuningControlRequestsRollbackUsVoid, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart3_TuningControlRequestsRollbackUsTunr, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8:  Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart3_TuningControlRequestsRollbackUsLktp, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			9:  Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart3_TuningControlRequestsRollbackUsLnrt, CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
+			10: Uint32Field(TwdmChannelTuningPerformanceMonitoringHistoryDataPart3_TuningControlRequestsRollbackUsLncd, CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/twdmchannelxgemperformancemonitoringhistorydata.go b/generated/twdmchannelxgemperformancemonitoringhistorydata.go
index 5b2311a..8e21ecf 100644
--- a/generated/twdmchannelxgemperformancemonitoringhistorydata.go
+++ b/generated/twdmchannelxgemperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -89,10 +89,23 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const TwdmChannelXgemPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const TwdmChannelXgemPerformanceMonitoringHistoryData_ThresholdData64BitId = "ThresholdData64BitId"
+const TwdmChannelXgemPerformanceMonitoringHistoryData_TotalTransmittedXgemFrames = "TotalTransmittedXgemFrames"
+const TwdmChannelXgemPerformanceMonitoringHistoryData_TransmittedXgemFramesWithLfBitNotSet = "TransmittedXgemFramesWithLfBitNotSet"
+const TwdmChannelXgemPerformanceMonitoringHistoryData_TotalReceivedXgemFrames = "TotalReceivedXgemFrames"
+const TwdmChannelXgemPerformanceMonitoringHistoryData_ReceivedXgemFramesWithXgemHeaderHecErrors = "ReceivedXgemFramesWithXgemHeaderHecErrors"
+const TwdmChannelXgemPerformanceMonitoringHistoryData_FsWordsLostToXgemHeaderHecErrors = "FsWordsLostToXgemHeaderHecErrors"
+const TwdmChannelXgemPerformanceMonitoringHistoryData_XgemEncryptionKeyErrors = "XgemEncryptionKeyErrors"
+const TwdmChannelXgemPerformanceMonitoringHistoryData_TotalTransmittedBytesInNonIdleXgemFrames = "TotalTransmittedBytesInNonIdleXgemFrames"
+const TwdmChannelXgemPerformanceMonitoringHistoryData_TotalReceivedBytesInNonIdleXgemFrames = "TotalReceivedBytesInNonIdleXgemFrames"
+
 func init() {
 	twdmchannelxgemperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "TwdmChannelXgemPerformanceMonitoringHistoryData",
-		ClassID: 445,
+		ClassID: TwdmChannelXgemPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -102,17 +115,17 @@
 		),
 		AllowedAttributeMask: 0xffc0,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  Uint16Field("ThresholdData64BitId", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint64Field("TotalTransmittedXgemFrames", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4:  Uint64Field("TransmittedXgemFramesWithLfBitNotSet", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  Uint64Field("TotalReceivedXgemFrames", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6:  Uint64Field("ReceivedXgemFramesWithXgemHeaderHecErrors", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  Uint64Field("FsWordsLostToXgemHeaderHecErrors", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8:  Uint64Field("XgemEncryptionKeyErrors", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
-			9:  Uint64Field("TotalTransmittedBytesInNonIdleXgemFrames", CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
-			10: Uint64Field("TotalReceivedBytesInNonIdleXgemFrames", CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(TwdmChannelXgemPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  Uint16Field(TwdmChannelXgemPerformanceMonitoringHistoryData_ThresholdData64BitId, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint64Field(TwdmChannelXgemPerformanceMonitoringHistoryData_TotalTransmittedXgemFrames, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4:  Uint64Field(TwdmChannelXgemPerformanceMonitoringHistoryData_TransmittedXgemFramesWithLfBitNotSet, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  Uint64Field(TwdmChannelXgemPerformanceMonitoringHistoryData_TotalReceivedXgemFrames, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6:  Uint64Field(TwdmChannelXgemPerformanceMonitoringHistoryData_ReceivedXgemFramesWithXgemHeaderHecErrors, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  Uint64Field(TwdmChannelXgemPerformanceMonitoringHistoryData_FsWordsLostToXgemHeaderHecErrors, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8:  Uint64Field(TwdmChannelXgemPerformanceMonitoringHistoryData_XgemEncryptionKeyErrors, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			9:  Uint64Field(TwdmChannelXgemPerformanceMonitoringHistoryData_TotalTransmittedBytesInNonIdleXgemFrames, CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
+			10: Uint64Field(TwdmChannelXgemPerformanceMonitoringHistoryData_TotalReceivedBytesInNonIdleXgemFrames, CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/uni-g.go b/generated/uni-g.go
index e7485fe..ef0f712 100644
--- a/generated/uni-g.go
+++ b/generated/uni-g.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -148,22 +148,30 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const UniG_Deprecated = "Deprecated"
+const UniG_AdministrativeState = "AdministrativeState"
+const UniG_ManagementCapability = "ManagementCapability"
+const UniG_NonOmciManagementIdentifier = "NonOmciManagementIdentifier"
+const UniG_RelayAgentOptions = "RelayAgentOptions"
+
 func init() {
 	unigBME = &ManagedEntityDefinition{
 		Name:    "UniG",
-		ClassID: 264,
+		ClassID: UniGClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
 		),
 		AllowedAttributeMask: 0xf800,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: Uint16Field("Deprecated", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, true, 1),
-			2: ByteField("AdministrativeState", EnumerationAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
-			3: ByteField("ManagementCapability", EnumerationAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, true, false, 3),
-			4: Uint16Field("NonOmciManagementIdentifier", PointerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, true, false, 4),
-			5: Uint16Field("RelayAgentOptions", PointerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, true, false, 5),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: Uint16Field(UniG_Deprecated, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, true, 1),
+			2: ByteField(UniG_AdministrativeState, EnumerationAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
+			3: ByteField(UniG_ManagementCapability, EnumerationAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, true, false, 3),
+			4: Uint16Field(UniG_NonOmciManagementIdentifier, PointerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, true, false, 4),
+			5: Uint16Field(UniG_RelayAgentOptions, PointerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, true, false, 5),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/unknowng988me.go b/generated/unknowng988me.go
index aac283e..b69253a 100644
--- a/generated/unknowng988me.go
+++ b/generated/unknowng988me.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
diff --git a/generated/unknownvendorspecificme.go b/generated/unknownvendorspecificme.go
index 757b306..973cf6b 100644
--- a/generated/unknownvendorspecificme.go
+++ b/generated/unknownvendorspecificme.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
diff --git a/generated/vdsl2lineconfigurationextensions.go b/generated/vdsl2lineconfigurationextensions.go
index ebac5a1..e9ecf05 100644
--- a/generated/vdsl2lineconfigurationextensions.go
+++ b/generated/vdsl2lineconfigurationextensions.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -319,7 +319,7 @@
 //			of 0.1 dB, i.e., with values 18..635. The special value 0 is also allowed, with semantics as
 //			defined in clause 7.2.1.3.2 of [ITUT G.993.2]. (R,-W) (optional) (2-bytes * 5 upstream bands)
 //
-//		Upboshaped Aele_Mode, Upboelmt
+//		Upboshaped Aele_Mode Upboelmt
 //			UPBOSHAPED (AELE-MODE, UPBOELMT): This attribute defines the UPBO electrical length estimation
 //			mode (AELE-MODE) and UPBO electrical length minimum threshold percentile (UPBOELMT) to be used
 //			in the alternative electrical length estimation method (ELE-M1). The format of this attribute is
@@ -330,10 +330,29 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const Vdsl2LineConfigurationExtensions_Vdsl2ProfilesEnabling = "Vdsl2ProfilesEnabling"
+const Vdsl2LineConfigurationExtensions_Vdsl2PsdMaskClassSelectionClassmask = "Vdsl2PsdMaskClassSelectionClassmask"
+const Vdsl2LineConfigurationExtensions_Vdsl2LimitPsdMasks = "Vdsl2LimitPsdMasks"
+const Vdsl2LineConfigurationExtensions_Vdsl2Us0Disabling = "Vdsl2Us0Disabling"
+const Vdsl2LineConfigurationExtensions_Vdsl2Us0PsdMasks = "Vdsl2Us0PsdMasks"
+const Vdsl2LineConfigurationExtensions_Vdsl2CarmaskTable = "Vdsl2CarmaskTable"
+const Vdsl2LineConfigurationExtensions_CarmaskValid = "CarmaskValid"
+const Vdsl2LineConfigurationExtensions_Upboshaped = "Upboshaped"
+const Vdsl2LineConfigurationExtensions_CyclicExtension = "CyclicExtension"
+const Vdsl2LineConfigurationExtensions_DownstreamSignalToNoiseRatioSnrMode = "DownstreamSignalToNoiseRatioSnrMode"
+const Vdsl2LineConfigurationExtensions_UpstreamSnrMode = "UpstreamSnrMode"
+const Vdsl2LineConfigurationExtensions_TransmitterReferredVirtualNoiseDownstreamTable = "TransmitterReferredVirtualNoiseDownstreamTable"
+const Vdsl2LineConfigurationExtensions_TransmitterReferredVirtualNoiseUpstreamTable = "TransmitterReferredVirtualNoiseUpstreamTable"
+const Vdsl2LineConfigurationExtensions_Dpboshaped = "Dpboshaped"
+const Vdsl2LineConfigurationExtensions_UpboklrefPb = "UpboklrefPb"
+const Vdsl2LineConfigurationExtensions_UpboshapedAeleModeUpboelmt = "UpboshapedAeleModeUpboelmt"
+
 func init() {
 	vdsl2lineconfigurationextensionsBME = &ManagedEntityDefinition{
 		Name:    "Vdsl2LineConfigurationExtensions",
-		ClassID: 165,
+		ClassID: Vdsl2LineConfigurationExtensionsClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -344,23 +363,23 @@
 		),
 		AllowedAttributeMask: 0xffff,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("Vdsl2ProfilesEnabling", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2:  ByteField("Vdsl2PsdMaskClassSelectionClassmask", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint64Field("Vdsl2LimitPsdMasks", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
-			4:  Uint64Field("Vdsl2Us0Disabling", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
-			5:  Uint32Field("Vdsl2Us0PsdMasks", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
-			6:  TableField("Vdsl2CarmaskTable", TableAttributeType, 0x0400, TableInfo{nil, 5}, mapset.NewSetWith(Read, Write), false, false, false, 6),
-			7:  ByteField("CarmaskValid", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
-			8:  MultiByteField("Upboshaped", OctetsAttributeType, 0x0100, 23, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="), mapset.NewSetWith(Read, Write), false, false, false, 8),
-			9:  ByteField("CyclicExtension", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, false, false, 9),
-			10: ByteField("DownstreamSignalToNoiseRatioSnrMode", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, false, false, 10),
-			11: ByteField("UpstreamSnrMode", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, false, false, 11),
-			12: TableField("TransmitterReferredVirtualNoiseDownstreamTable", TableAttributeType, 0x0010, TableInfo{nil, 3}, mapset.NewSetWith(Read, Write), false, true, false, 12),
-			13: TableField("TransmitterReferredVirtualNoiseUpstreamTable", TableAttributeType, 0x0008, TableInfo{nil, 3}, mapset.NewSetWith(Read, Write), false, true, false, 13),
-			14: MultiByteField("Dpboshaped", OctetsAttributeType, 0x0004, 15, toOctets("AAAAAAAAAAAAAAAAAAAA"), mapset.NewSetWith(Read, Write), false, true, false, 14),
-			15: Uint16Field("UpboklrefPb", UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read, Write), false, true, false, 15),
-			16: ByteField("UpboshapedAeleMode,Upboelmt", UnsignedIntegerAttributeType, 0x0001, 0, mapset.NewSetWith(Read, Write), false, true, false, 16),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(Vdsl2LineConfigurationExtensions_Vdsl2ProfilesEnabling, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2:  ByteField(Vdsl2LineConfigurationExtensions_Vdsl2PsdMaskClassSelectionClassmask, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint64Field(Vdsl2LineConfigurationExtensions_Vdsl2LimitPsdMasks, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
+			4:  Uint64Field(Vdsl2LineConfigurationExtensions_Vdsl2Us0Disabling, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
+			5:  Uint32Field(Vdsl2LineConfigurationExtensions_Vdsl2Us0PsdMasks, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
+			6:  TableField(Vdsl2LineConfigurationExtensions_Vdsl2CarmaskTable, TableAttributeType, 0x0400, TableInfo{nil, 5}, mapset.NewSetWith(Read, Write), false, false, false, 6),
+			7:  ByteField(Vdsl2LineConfigurationExtensions_CarmaskValid, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
+			8:  MultiByteField(Vdsl2LineConfigurationExtensions_Upboshaped, OctetsAttributeType, 0x0100, 23, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="), mapset.NewSetWith(Read, Write), false, false, false, 8),
+			9:  ByteField(Vdsl2LineConfigurationExtensions_CyclicExtension, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, false, false, 9),
+			10: ByteField(Vdsl2LineConfigurationExtensions_DownstreamSignalToNoiseRatioSnrMode, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, false, false, 10),
+			11: ByteField(Vdsl2LineConfigurationExtensions_UpstreamSnrMode, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, false, false, 11),
+			12: TableField(Vdsl2LineConfigurationExtensions_TransmitterReferredVirtualNoiseDownstreamTable, TableAttributeType, 0x0010, TableInfo{nil, 3}, mapset.NewSetWith(Read, Write), false, true, false, 12),
+			13: TableField(Vdsl2LineConfigurationExtensions_TransmitterReferredVirtualNoiseUpstreamTable, TableAttributeType, 0x0008, TableInfo{nil, 3}, mapset.NewSetWith(Read, Write), false, true, false, 13),
+			14: MultiByteField(Vdsl2LineConfigurationExtensions_Dpboshaped, OctetsAttributeType, 0x0004, 15, toOctets("AAAAAAAAAAAAAAAAAAAA"), mapset.NewSetWith(Read, Write), false, true, false, 14),
+			15: Uint16Field(Vdsl2LineConfigurationExtensions_UpboklrefPb, UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read, Write), false, true, false, 15),
+			16: ByteField(Vdsl2LineConfigurationExtensions_UpboshapedAeleModeUpboelmt, UnsignedIntegerAttributeType, 0x0001, 0, mapset.NewSetWith(Read, Write), false, true, false, 16),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/vdsl2lineconfigurationextensions2.go b/generated/vdsl2lineconfigurationextensions2.go
index 86f2383..40fc2e6 100644
--- a/generated/vdsl2lineconfigurationextensions2.go
+++ b/generated/vdsl2lineconfigurationextensions2.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -156,10 +156,27 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const Vdsl2LineConfigurationExtensions2_SosTimeDownstream = "SosTimeDownstream"
+const Vdsl2LineConfigurationExtensions2_SosTimeUpstream = "SosTimeUpstream"
+const Vdsl2LineConfigurationExtensions2_SosDegradedTonesThresholdDownstream = "SosDegradedTonesThresholdDownstream"
+const Vdsl2LineConfigurationExtensions2_SosDegradedTonesThresholdUpstream = "SosDegradedTonesThresholdUpstream"
+const Vdsl2LineConfigurationExtensions2_SosCrcThresholdDownstream = "SosCrcThresholdDownstream"
+const Vdsl2LineConfigurationExtensions2_SosCrcThresholdUpstream = "SosCrcThresholdUpstream"
+const Vdsl2LineConfigurationExtensions2_MaxSosDownstream = "MaxSosDownstream"
+const Vdsl2LineConfigurationExtensions2_MaxSosUpstream = "MaxSosUpstream"
+const Vdsl2LineConfigurationExtensions2_SnrMaxOffsetDownstream = "SnrMaxOffsetDownstream"
+const Vdsl2LineConfigurationExtensions2_SnrMaxOffsetUpstream = "SnrMaxOffsetUpstream"
+const Vdsl2LineConfigurationExtensions2_RocMinimumImpulseNoiseProtectionDownstream = "RocMinimumImpulseNoiseProtectionDownstream"
+const Vdsl2LineConfigurationExtensions2_RocMinimumImpulseNoiseProtectionUpstream = "RocMinimumImpulseNoiseProtectionUpstream"
+const Vdsl2LineConfigurationExtensions2_FextDownstreamTransmitterReferredVirtualNoiseTable = "FextDownstreamTransmitterReferredVirtualNoiseTable"
+const Vdsl2LineConfigurationExtensions2_NextDownstreamTransmitterReferredVirtualNoiseTable = "NextDownstreamTransmitterReferredVirtualNoiseTable"
+
 func init() {
 	vdsl2lineconfigurationextensions2BME = &ManagedEntityDefinition{
 		Name:    "Vdsl2LineConfigurationExtensions2",
-		ClassID: 323,
+		ClassID: Vdsl2LineConfigurationExtensions2ClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -170,21 +187,21 @@
 		),
 		AllowedAttributeMask: 0xfffc,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("SosTimeDownstream", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 1),
-			2:  ByteField("SosTimeUpstream", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 2),
-			3:  ByteField("SosDegradedTonesThresholdDownstream", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 3),
-			4:  ByteField("SosDegradedTonesThresholdUpstream", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 4),
-			5:  Uint16Field("SosCrcThresholdDownstream", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 5),
-			6:  Uint16Field("SosCrcThresholdUpstream", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 6),
-			7:  ByteField("MaxSosDownstream", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 7),
-			8:  ByteField("MaxSosUpstream", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 8),
-			9:  Uint16Field("SnrMaxOffsetDownstream", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 9),
-			10: Uint16Field("SnrMaxOffsetUpstream", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 10),
-			11: ByteField("RocMinimumImpulseNoiseProtectionDownstream", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 11),
-			12: ByteField("RocMinimumImpulseNoiseProtectionUpstream", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 12),
-			13: TableField("FextDownstreamTransmitterReferredVirtualNoiseTable", TableAttributeType, 0x0008, TableInfo{nil, 3}, mapset.NewSetWith(Read, Write), false, false, false, 13),
-			14: TableField("NextDownstreamTransmitterReferredVirtualNoiseTable", TableAttributeType, 0x0004, TableInfo{nil, 3}, mapset.NewSetWith(Read, Write), false, false, false, 14),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(Vdsl2LineConfigurationExtensions2_SosTimeDownstream, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 1),
+			2:  ByteField(Vdsl2LineConfigurationExtensions2_SosTimeUpstream, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 2),
+			3:  ByteField(Vdsl2LineConfigurationExtensions2_SosDegradedTonesThresholdDownstream, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 3),
+			4:  ByteField(Vdsl2LineConfigurationExtensions2_SosDegradedTonesThresholdUpstream, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 4),
+			5:  Uint16Field(Vdsl2LineConfigurationExtensions2_SosCrcThresholdDownstream, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 5),
+			6:  Uint16Field(Vdsl2LineConfigurationExtensions2_SosCrcThresholdUpstream, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 6),
+			7:  ByteField(Vdsl2LineConfigurationExtensions2_MaxSosDownstream, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 7),
+			8:  ByteField(Vdsl2LineConfigurationExtensions2_MaxSosUpstream, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 8),
+			9:  Uint16Field(Vdsl2LineConfigurationExtensions2_SnrMaxOffsetDownstream, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 9),
+			10: Uint16Field(Vdsl2LineConfigurationExtensions2_SnrMaxOffsetUpstream, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 10),
+			11: ByteField(Vdsl2LineConfigurationExtensions2_RocMinimumImpulseNoiseProtectionDownstream, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 11),
+			12: ByteField(Vdsl2LineConfigurationExtensions2_RocMinimumImpulseNoiseProtectionUpstream, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 12),
+			13: TableField(Vdsl2LineConfigurationExtensions2_FextDownstreamTransmitterReferredVirtualNoiseTable, TableAttributeType, 0x0008, TableInfo{nil, 3}, mapset.NewSetWith(Read, Write), false, false, false, 13),
+			14: TableField(Vdsl2LineConfigurationExtensions2_NextDownstreamTransmitterReferredVirtualNoiseTable, TableAttributeType, 0x0004, TableInfo{nil, 3}, mapset.NewSetWith(Read, Write), false, false, false, 14),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/vdsl2lineconfigurationextensions3.go b/generated/vdsl2lineconfigurationextensions3.go
index fd642d2..9ce5c64 100644
--- a/generated/vdsl2lineconfigurationextensions3.go
+++ b/generated/vdsl2lineconfigurationextensions3.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -117,10 +117,25 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const Vdsl2LineConfigurationExtensions3_Ripolicyds = "Ripolicyds"
+const Vdsl2LineConfigurationExtensions3_Ripolicyus = "Ripolicyus"
+const Vdsl2LineConfigurationExtensions3_ReinitTimeThresholdds = "ReinitTimeThresholdds"
+const Vdsl2LineConfigurationExtensions3_ReinitTimeThresholdus = "ReinitTimeThresholdus"
+const Vdsl2LineConfigurationExtensions3_Rxrefvnsfus = "Rxrefvnsfus"
+const Vdsl2LineConfigurationExtensions3_Txrefvnsfds = "Txrefvnsfds"
+const Vdsl2LineConfigurationExtensions3_RtxModeds = "RtxModeds"
+const Vdsl2LineConfigurationExtensions3_RtxModeus = "RtxModeus"
+const Vdsl2LineConfigurationExtensions3_LeftrThresh = "LeftrThresh"
+const Vdsl2LineConfigurationExtensions3_MaxdelayoctetSplitParameterMdosplit = "MaxdelayoctetSplitParameterMdosplit"
+const Vdsl2LineConfigurationExtensions3_AttndrMethodAttndrMethod = "AttndrMethodAttndrMethod"
+const Vdsl2LineConfigurationExtensions3_AttndrMaxdelayoctetSplitParameterAttndrMdosplit = "AttndrMaxdelayoctetSplitParameterAttndrMdosplit"
+
 func init() {
 	vdsl2lineconfigurationextensions3BME = &ManagedEntityDefinition{
 		Name:    "Vdsl2LineConfigurationExtensions3",
-		ClassID: 410,
+		ClassID: Vdsl2LineConfigurationExtensions3ClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -129,19 +144,19 @@
 		),
 		AllowedAttributeMask: 0xfff0,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("Ripolicyds", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, true, false, 1),
-			2:  ByteField("Ripolicyus", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, true, false, 2),
-			3:  ByteField("ReinitTimeThresholdds", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, true, false, 3),
-			4:  ByteField("ReinitTimeThresholdus", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, true, false, 4),
-			5:  ByteField("Rxrefvnsfus", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, true, false, 5),
-			6:  ByteField("Txrefvnsfds", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, true, false, 6),
-			7:  ByteField("RtxModeds", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
-			8:  ByteField("RtxModeus", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, false, false, 8),
-			9:  ByteField("LeftrThresh", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, false, false, 9),
-			10: ByteField("MaxdelayoctetSplitParameterMdosplit", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, true, false, 10),
-			11: ByteField("AttndrMethodAttndrMethod", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, true, false, 11),
-			12: ByteField("AttndrMaxdelayoctetSplitParameterAttndrMdosplit", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, true, false, 12),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(Vdsl2LineConfigurationExtensions3_Ripolicyds, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, true, false, 1),
+			2:  ByteField(Vdsl2LineConfigurationExtensions3_Ripolicyus, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, true, false, 2),
+			3:  ByteField(Vdsl2LineConfigurationExtensions3_ReinitTimeThresholdds, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, true, false, 3),
+			4:  ByteField(Vdsl2LineConfigurationExtensions3_ReinitTimeThresholdus, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, true, false, 4),
+			5:  ByteField(Vdsl2LineConfigurationExtensions3_Rxrefvnsfus, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, true, false, 5),
+			6:  ByteField(Vdsl2LineConfigurationExtensions3_Txrefvnsfds, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, true, false, 6),
+			7:  ByteField(Vdsl2LineConfigurationExtensions3_RtxModeds, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
+			8:  ByteField(Vdsl2LineConfigurationExtensions3_RtxModeus, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, false, false, 8),
+			9:  ByteField(Vdsl2LineConfigurationExtensions3_LeftrThresh, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, false, false, 9),
+			10: ByteField(Vdsl2LineConfigurationExtensions3_MaxdelayoctetSplitParameterMdosplit, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, true, false, 10),
+			11: ByteField(Vdsl2LineConfigurationExtensions3_AttndrMethodAttndrMethod, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, true, false, 11),
+			12: ByteField(Vdsl2LineConfigurationExtensions3_AttndrMaxdelayoctetSplitParameterAttndrMdosplit, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, true, false, 12),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/vdsl2lineinventoryandstatusdatapart1.go b/generated/vdsl2lineinventoryandstatusdatapart1.go
index 241073c..fb2ceb4 100644
--- a/generated/vdsl2lineinventoryandstatusdatapart1.go
+++ b/generated/vdsl2lineinventoryandstatusdatapart1.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -173,32 +173,50 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const Vdsl2LineInventoryAndStatusDataPart1_Vdsl2TransmissionSystemCapabilityXtuC = "Vdsl2TransmissionSystemCapabilityXtuC"
+const Vdsl2LineInventoryAndStatusDataPart1_Vdsl2TransmissionSystem = "Vdsl2TransmissionSystem"
+const Vdsl2LineInventoryAndStatusDataPart1_Vdsl2Profile = "Vdsl2Profile"
+const Vdsl2LineInventoryAndStatusDataPart1_Vdsl2LimitPsdMaskAndBandplan = "Vdsl2LimitPsdMaskAndBandplan"
+const Vdsl2LineInventoryAndStatusDataPart1_Vdsl2Us0PsdMask = "Vdsl2Us0PsdMask"
+const Vdsl2LineInventoryAndStatusDataPart1_Actsnrmodeds = "Actsnrmodeds"
+const Vdsl2LineInventoryAndStatusDataPart1_Hlingds = "Hlingds"
+const Vdsl2LineInventoryAndStatusDataPart1_Hloggds = "Hloggds"
+const Vdsl2LineInventoryAndStatusDataPart1_Qlngds = "Qlngds"
+const Vdsl2LineInventoryAndStatusDataPart1_Snrgds = "Snrgds"
+const Vdsl2LineInventoryAndStatusDataPart1_MrefpsddsTable = "MrefpsddsTable"
+const Vdsl2LineInventoryAndStatusDataPart1_Trellisds = "Trellisds"
+const Vdsl2LineInventoryAndStatusDataPart1_ActualRateAdaptationModeDownstream = "ActualRateAdaptationModeDownstream"
+const Vdsl2LineInventoryAndStatusDataPart1_ActualImpulseNoiseProtectionRobustOperationsChannelRocDownstream = "ActualImpulseNoiseProtectionRobustOperationsChannelRocDownstream"
+const Vdsl2LineInventoryAndStatusDataPart1_SnrMarginRocDownstream = "SnrMarginRocDownstream"
+
 func init() {
 	vdsl2lineinventoryandstatusdatapart1BME = &ManagedEntityDefinition{
 		Name:    "Vdsl2LineInventoryAndStatusDataPart1",
-		ClassID: 168,
+		ClassID: Vdsl2LineInventoryAndStatusDataPart1ClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			GetNext,
 		),
 		AllowedAttributeMask: 0xfffe,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  ByteField("Vdsl2TransmissionSystemCapabilityXtuC", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  ByteField("Vdsl2TransmissionSystem", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
-			3:  ByteField("Vdsl2Profile", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4:  Uint64Field("Vdsl2LimitPsdMaskAndBandplan", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  Uint32Field("Vdsl2Us0PsdMask", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6:  ByteField("Actsnrmodeds", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  ByteField("Hlingds", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8:  ByteField("Hloggds", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
-			9:  ByteField("Qlngds", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
-			10: ByteField("Snrgds", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
-			11: TableField("MrefpsddsTable", TableAttributeType, 0x0020, TableInfo{nil, 3}, mapset.NewSetWith(Read), false, false, false, 11),
-			12: ByteField("Trellisds", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
-			13: ByteField("ActualRateAdaptationModeDownstream", UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, true, false, 13),
-			14: ByteField("ActualImpulseNoiseProtectionRobustOperationsChannelRocDownstream", UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, true, false, 14),
-			15: Uint16Field("SnrMarginRocDownstream", UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, true, false, 15),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  ByteField(Vdsl2LineInventoryAndStatusDataPart1_Vdsl2TransmissionSystemCapabilityXtuC, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  ByteField(Vdsl2LineInventoryAndStatusDataPart1_Vdsl2TransmissionSystem, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
+			3:  ByteField(Vdsl2LineInventoryAndStatusDataPart1_Vdsl2Profile, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4:  Uint64Field(Vdsl2LineInventoryAndStatusDataPart1_Vdsl2LimitPsdMaskAndBandplan, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  Uint32Field(Vdsl2LineInventoryAndStatusDataPart1_Vdsl2Us0PsdMask, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6:  ByteField(Vdsl2LineInventoryAndStatusDataPart1_Actsnrmodeds, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  ByteField(Vdsl2LineInventoryAndStatusDataPart1_Hlingds, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8:  ByteField(Vdsl2LineInventoryAndStatusDataPart1_Hloggds, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			9:  ByteField(Vdsl2LineInventoryAndStatusDataPart1_Qlngds, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
+			10: ByteField(Vdsl2LineInventoryAndStatusDataPart1_Snrgds, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
+			11: TableField(Vdsl2LineInventoryAndStatusDataPart1_MrefpsddsTable, TableAttributeType, 0x0020, TableInfo{nil, 3}, mapset.NewSetWith(Read), false, false, false, 11),
+			12: ByteField(Vdsl2LineInventoryAndStatusDataPart1_Trellisds, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
+			13: ByteField(Vdsl2LineInventoryAndStatusDataPart1_ActualRateAdaptationModeDownstream, UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, true, false, 13),
+			14: ByteField(Vdsl2LineInventoryAndStatusDataPart1_ActualImpulseNoiseProtectionRobustOperationsChannelRocDownstream, UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, true, false, 14),
+			15: Uint16Field(Vdsl2LineInventoryAndStatusDataPart1_SnrMarginRocDownstream, UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, true, false, 15),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/vdsl2lineinventoryandstatusdatapart2.go b/generated/vdsl2lineinventoryandstatusdatapart2.go
index e4cba76..a2b7b6b 100644
--- a/generated/vdsl2lineinventoryandstatusdatapart2.go
+++ b/generated/vdsl2lineinventoryandstatusdatapart2.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -152,31 +152,48 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const Vdsl2LineInventoryAndStatusDataPart2_Vdsl2TransmissionSystemCapabilityXtuR = "Vdsl2TransmissionSystemCapabilityXtuR"
+const Vdsl2LineInventoryAndStatusDataPart2_Actsnrmodeus = "Actsnrmodeus"
+const Vdsl2LineInventoryAndStatusDataPart2_Upbokle = "Upbokle"
+const Vdsl2LineInventoryAndStatusDataPart2_Hlingus = "Hlingus"
+const Vdsl2LineInventoryAndStatusDataPart2_Hloggus = "Hloggus"
+const Vdsl2LineInventoryAndStatusDataPart2_Qlngus = "Qlngus"
+const Vdsl2LineInventoryAndStatusDataPart2_Snrgus = "Snrgus"
+const Vdsl2LineInventoryAndStatusDataPart2_MrefpsdusTable = "MrefpsdusTable"
+const Vdsl2LineInventoryAndStatusDataPart2_Trellisus = "Trellisus"
+const Vdsl2LineInventoryAndStatusDataPart2_Actualce = "Actualce"
+const Vdsl2LineInventoryAndStatusDataPart2_UpbokleR = "UpbokleR"
+const Vdsl2LineInventoryAndStatusDataPart2_ActualRateAdaptationModeUpstream = "ActualRateAdaptationModeUpstream"
+const Vdsl2LineInventoryAndStatusDataPart2_ActualImpulseNoiseProtectionRocUpstream = "ActualImpulseNoiseProtectionRocUpstream"
+const Vdsl2LineInventoryAndStatusDataPart2_SnrMarginRocUpstream = "SnrMarginRocUpstream"
+
 func init() {
 	vdsl2lineinventoryandstatusdatapart2BME = &ManagedEntityDefinition{
 		Name:    "Vdsl2LineInventoryAndStatusDataPart2",
-		ClassID: 169,
+		ClassID: Vdsl2LineInventoryAndStatusDataPart2ClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			GetNext,
 		),
 		AllowedAttributeMask: 0xfffc,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  ByteField("Vdsl2TransmissionSystemCapabilityXtuR", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  ByteField("Actsnrmodeus", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
-			3:  Uint16Field("Upbokle", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4:  ByteField("Hlingus", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  ByteField("Hloggus", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6:  ByteField("Qlngus", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  ByteField("Snrgus", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8:  TableField("MrefpsdusTable", TableAttributeType, 0x0100, TableInfo{nil, 3}, mapset.NewSetWith(Read), false, false, false, 8),
-			9:  ByteField("Trellisus", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
-			10: ByteField("Actualce", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
-			11: Uint16Field("UpbokleR", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, true, false, 11),
-			12: ByteField("ActualRateAdaptationModeUpstream", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, true, false, 12),
-			13: ByteField("ActualImpulseNoiseProtectionRocUpstream", UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, true, false, 13),
-			14: Uint16Field("SnrMarginRocUpstream", UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, true, false, 14),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  ByteField(Vdsl2LineInventoryAndStatusDataPart2_Vdsl2TransmissionSystemCapabilityXtuR, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  ByteField(Vdsl2LineInventoryAndStatusDataPart2_Actsnrmodeus, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
+			3:  Uint16Field(Vdsl2LineInventoryAndStatusDataPart2_Upbokle, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4:  ByteField(Vdsl2LineInventoryAndStatusDataPart2_Hlingus, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  ByteField(Vdsl2LineInventoryAndStatusDataPart2_Hloggus, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6:  ByteField(Vdsl2LineInventoryAndStatusDataPart2_Qlngus, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  ByteField(Vdsl2LineInventoryAndStatusDataPart2_Snrgus, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8:  TableField(Vdsl2LineInventoryAndStatusDataPart2_MrefpsdusTable, TableAttributeType, 0x0100, TableInfo{nil, 3}, mapset.NewSetWith(Read), false, false, false, 8),
+			9:  ByteField(Vdsl2LineInventoryAndStatusDataPart2_Trellisus, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
+			10: ByteField(Vdsl2LineInventoryAndStatusDataPart2_Actualce, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
+			11: Uint16Field(Vdsl2LineInventoryAndStatusDataPart2_UpbokleR, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, true, false, 11),
+			12: ByteField(Vdsl2LineInventoryAndStatusDataPart2_ActualRateAdaptationModeUpstream, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, true, false, 12),
+			13: ByteField(Vdsl2LineInventoryAndStatusDataPart2_ActualImpulseNoiseProtectionRocUpstream, UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, true, false, 13),
+			14: Uint16Field(Vdsl2LineInventoryAndStatusDataPart2_SnrMarginRocUpstream, UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, true, false, 14),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/vdsl2lineinventoryandstatusdatapart3.go b/generated/vdsl2lineinventoryandstatusdatapart3.go
index 64102aa..442c23e 100644
--- a/generated/vdsl2lineinventoryandstatusdatapart3.go
+++ b/generated/vdsl2lineinventoryandstatusdatapart3.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -155,30 +155,47 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const Vdsl2LineInventoryAndStatusDataPart3_UpstreamBandsCount = "UpstreamBandsCount"
+const Vdsl2LineInventoryAndStatusDataPart3_DownstreamBandsCount = "DownstreamBandsCount"
+const Vdsl2LineInventoryAndStatusDataPart3_DownstreamLineAttenuationPerBand = "DownstreamLineAttenuationPerBand"
+const Vdsl2LineInventoryAndStatusDataPart3_UpstreamLineAttenuationPerBand = "UpstreamLineAttenuationPerBand"
+const Vdsl2LineInventoryAndStatusDataPart3_DownstreamSignalAttenuationPerBand = "DownstreamSignalAttenuationPerBand"
+const Vdsl2LineInventoryAndStatusDataPart3_UpstreamSignalAttenuationPerBand = "UpstreamSignalAttenuationPerBand"
+const Vdsl2LineInventoryAndStatusDataPart3_DownstreamSnrMarginPerBand = "DownstreamSnrMarginPerBand"
+const Vdsl2LineInventoryAndStatusDataPart3_UpstreamSnrMarginPerBand = "UpstreamSnrMarginPerBand"
+const Vdsl2LineInventoryAndStatusDataPart3_DownstreamLineAttenuationExtension = "DownstreamLineAttenuationExtension"
+const Vdsl2LineInventoryAndStatusDataPart3_UpstreamLineAttenuationExtension = "UpstreamLineAttenuationExtension"
+const Vdsl2LineInventoryAndStatusDataPart3_DownstreamSignalAttenuationExtension = "DownstreamSignalAttenuationExtension"
+const Vdsl2LineInventoryAndStatusDataPart3_UpstreamSignalAttenuationExtension = "UpstreamSignalAttenuationExtension"
+const Vdsl2LineInventoryAndStatusDataPart3_DownstreamSnrMarginExtension = "DownstreamSnrMarginExtension"
+const Vdsl2LineInventoryAndStatusDataPart3_UpstreamSnrMarginExtension = "UpstreamSnrMarginExtension"
+
 func init() {
 	vdsl2lineinventoryandstatusdatapart3BME = &ManagedEntityDefinition{
 		Name:    "Vdsl2LineInventoryAndStatusDataPart3",
-		ClassID: 170,
+		ClassID: Vdsl2LineInventoryAndStatusDataPart3ClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 		),
 		AllowedAttributeMask: 0xfffc,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  ByteField("UpstreamBandsCount", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  ByteField("DownstreamBandsCount", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
-			3:  MultiByteField("DownstreamLineAttenuationPerBand", OctetsAttributeType, 0x2000, 3, toOctets("AAAA"), mapset.NewSetWith(Read), false, false, false, 3),
-			4:  Uint32Field("UpstreamLineAttenuationPerBand", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  MultiByteField("DownstreamSignalAttenuationPerBand", OctetsAttributeType, 0x0800, 3, toOctets("AAAA"), mapset.NewSetWith(Read), false, false, false, 5),
-			6:  Uint32Field("UpstreamSignalAttenuationPerBand", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  MultiByteField("DownstreamSnrMarginPerBand", OctetsAttributeType, 0x0200, 3, toOctets("AAAA"), mapset.NewSetWith(Read), false, false, false, 7),
-			8:  Uint32Field("UpstreamSnrMarginPerBand", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
-			9:  Uint16Field("DownstreamLineAttenuationExtension", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, true, false, 9),
-			10: ByteField("UpstreamLineAttenuationExtension", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, true, false, 10),
-			11: Uint16Field("DownstreamSignalAttenuationExtension", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, true, false, 11),
-			12: ByteField("UpstreamSignalAttenuationExtension", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, true, false, 12),
-			13: Uint16Field("DownstreamSnrMarginExtension", UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, true, false, 13),
-			14: ByteField("UpstreamSnrMarginExtension", UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, true, false, 14),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  ByteField(Vdsl2LineInventoryAndStatusDataPart3_UpstreamBandsCount, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  ByteField(Vdsl2LineInventoryAndStatusDataPart3_DownstreamBandsCount, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
+			3:  MultiByteField(Vdsl2LineInventoryAndStatusDataPart3_DownstreamLineAttenuationPerBand, OctetsAttributeType, 0x2000, 3, toOctets("AAAA"), mapset.NewSetWith(Read), false, false, false, 3),
+			4:  Uint32Field(Vdsl2LineInventoryAndStatusDataPart3_UpstreamLineAttenuationPerBand, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  MultiByteField(Vdsl2LineInventoryAndStatusDataPart3_DownstreamSignalAttenuationPerBand, OctetsAttributeType, 0x0800, 3, toOctets("AAAA"), mapset.NewSetWith(Read), false, false, false, 5),
+			6:  Uint32Field(Vdsl2LineInventoryAndStatusDataPart3_UpstreamSignalAttenuationPerBand, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  MultiByteField(Vdsl2LineInventoryAndStatusDataPart3_DownstreamSnrMarginPerBand, OctetsAttributeType, 0x0200, 3, toOctets("AAAA"), mapset.NewSetWith(Read), false, false, false, 7),
+			8:  Uint32Field(Vdsl2LineInventoryAndStatusDataPart3_UpstreamSnrMarginPerBand, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			9:  Uint16Field(Vdsl2LineInventoryAndStatusDataPart3_DownstreamLineAttenuationExtension, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, true, false, 9),
+			10: ByteField(Vdsl2LineInventoryAndStatusDataPart3_UpstreamLineAttenuationExtension, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, true, false, 10),
+			11: Uint16Field(Vdsl2LineInventoryAndStatusDataPart3_DownstreamSignalAttenuationExtension, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, true, false, 11),
+			12: ByteField(Vdsl2LineInventoryAndStatusDataPart3_UpstreamSignalAttenuationExtension, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, true, false, 12),
+			13: Uint16Field(Vdsl2LineInventoryAndStatusDataPart3_DownstreamSnrMarginExtension, UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, true, false, 13),
+			14: ByteField(Vdsl2LineInventoryAndStatusDataPart3_UpstreamSnrMarginExtension, UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, true, false, 14),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/vdsl2lineinventoryandstatusdatapart4.go b/generated/vdsl2lineinventoryandstatusdatapart4.go
index 107c9c6..bbd645d 100644
--- a/generated/vdsl2lineinventoryandstatusdatapart4.go
+++ b/generated/vdsl2lineinventoryandstatusdatapart4.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -154,32 +154,51 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const Vdsl2LineInventoryAndStatusDataPart4_VtuOEstimatedUpstreamPowerBackOffElectricalLengthPerBandUpboklePb = "VtuOEstimatedUpstreamPowerBackOffElectricalLengthPerBandUpboklePb"
+const Vdsl2LineInventoryAndStatusDataPart4_VtuREstimatedUpstreamPowerBackOffElectricalLengthPerBandUpbokleRPb = "VtuREstimatedUpstreamPowerBackOffElectricalLengthPerBandUpbokleRPb"
+const Vdsl2LineInventoryAndStatusDataPart4_UpboDownstreamReceiverSignalLevelThresholdRxthrshds = "UpboDownstreamReceiverSignalLevelThresholdRxthrshds"
+const Vdsl2LineInventoryAndStatusDataPart4_UpboUpstreamReceiverSignalLevelThresholdRxthrshus = "UpboUpstreamReceiverSignalLevelThresholdRxthrshus"
+const Vdsl2LineInventoryAndStatusDataPart4_ActualAlternativeElectricalLengthEstimationModEActAeleMode = "ActualAlternativeElectricalLengthEstimationModEActAeleMode"
+const Vdsl2LineInventoryAndStatusDataPart4_ActualDownstreamRipolicyActripolicyds = "ActualDownstreamRipolicyActripolicyds"
+const Vdsl2LineInventoryAndStatusDataPart4_ActualUpstreamRipolicyActripolicyus = "ActualUpstreamRipolicyActripolicyus"
+const Vdsl2LineInventoryAndStatusDataPart4_AttndrActualMEthodAttndrActmethod = "AttndrActualMEthodAttndrActmethod"
+const Vdsl2LineInventoryAndStatusDataPart4_AttndrDownstreamACtualImpulseNoiseProtectionAttndrActinpds = "AttndrDownstreamACtualImpulseNoiseProtectionAttndrActinpds"
+const Vdsl2LineInventoryAndStatusDataPart4_AttndrUpstreamACtualImpulseNoiseProtectionAttndrActinpus = "AttndrUpstreamACtualImpulseNoiseProtectionAttndrActinpus"
+const Vdsl2LineInventoryAndStatusDataPart4_AttndrDownstreamACtualImpulseNoiseProtectionAgainstReinAttndrActinpReinds = "AttndrDownstreamACtualImpulseNoiseProtectionAgainstReinAttndrActinpReinds"
+const Vdsl2LineInventoryAndStatusDataPart4_AttndrUpstreamACtualImpulseNoiseProtectionAgainstReinAttndrActinpReinus = "AttndrUpstreamACtualImpulseNoiseProtectionAgainstReinAttndrActinpReinus"
+const Vdsl2LineInventoryAndStatusDataPart4_AttndrDownstreamActualDelayAttndrActdelayds = "AttndrDownstreamActualDelayAttndrActdelayds"
+const Vdsl2LineInventoryAndStatusDataPart4_AttndrUpstreamACtualDelayAttndrActdelayus = "AttndrUpstreamACtualDelayAttndrActdelayus"
+const Vdsl2LineInventoryAndStatusDataPart4_NearEndAGgregateAchievableNetDataRateAggachndrNe = "NearEndAGgregateAchievableNetDataRateAggachndrNe"
+const Vdsl2LineInventoryAndStatusDataPart4_FarEndAggregateAchievableNetDataRateAggachndrFe = "FarEndAggregateAchievableNetDataRateAggachndrFe"
+
 func init() {
 	vdsl2lineinventoryandstatusdatapart4BME = &ManagedEntityDefinition{
 		Name:    "Vdsl2LineInventoryAndStatusDataPart4",
-		ClassID: 415,
+		ClassID: Vdsl2LineInventoryAndStatusDataPart4ClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 		),
 		AllowedAttributeMask: 0xffff,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  Uint32Field("VtuOEstimatedUpstreamPowerBackOffElectricalLengthPerBandUpboklePb", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, true, false, 1),
-			2:  MultiByteField("VtuREstimatedUpstreamPowerBackOffElectricalLengthPerBandUpbokleRPb", OctetsAttributeType, 0x4000, 3, toOctets("AAAA"), mapset.NewSetWith(Read), false, true, false, 2),
-			3:  ByteField("UpboDownstreamReceiverSignalLevelThresholdRxthrshds", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, true, false, 3),
-			4:  ByteField("UpboUpstreamReceiverSignalLevelThresholdRxthrshus", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, true, false, 4),
-			5:  ByteField("ActualAlternativeElectricalLengthEstimationModEActAeleMode", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, true, false, 5),
-			6:  ByteField("ActualDownstreamRipolicyActripolicyds", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, true, false, 6),
-			7:  ByteField("ActualUpstreamRipolicyActripolicyus", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, true, false, 7),
-			8:  ByteField("AttndrActualMEthodAttndrActmethod", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, true, false, 8),
-			9:  ByteField("AttndrDownstreamACtualImpulseNoiseProtectionAttndrActinpds", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, true, false, 9),
-			10: ByteField("AttndrUpstreamACtualImpulseNoiseProtectionAttndrActinpus", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, true, false, 10),
-			11: ByteField("AttndrDownstreamACtualImpulseNoiseProtectionAgainstReinAttndrActinpReinds", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, true, false, 11),
-			12: ByteField("AttndrUpstreamACtualImpulseNoiseProtectionAgainstReinAttndrActinpReinus", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, true, false, 12),
-			13: ByteField("AttndrDownstreamActualDelayAttndrActdelayds", UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, true, false, 13),
-			14: ByteField("AttndrUpstreamACtualDelayAttndrActdelayus", UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, true, false, 14),
-			15: Uint32Field("NearEndAGgregateAchievableNetDataRateAggachndrNe", UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, true, false, 15),
-			16: Uint32Field("FarEndAggregateAchievableNetDataRateAggachndrFe", UnsignedIntegerAttributeType, 0x0001, 0, mapset.NewSetWith(Read), false, true, false, 16),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  Uint32Field(Vdsl2LineInventoryAndStatusDataPart4_VtuOEstimatedUpstreamPowerBackOffElectricalLengthPerBandUpboklePb, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, true, false, 1),
+			2:  MultiByteField(Vdsl2LineInventoryAndStatusDataPart4_VtuREstimatedUpstreamPowerBackOffElectricalLengthPerBandUpbokleRPb, OctetsAttributeType, 0x4000, 3, toOctets("AAAA"), mapset.NewSetWith(Read), false, true, false, 2),
+			3:  ByteField(Vdsl2LineInventoryAndStatusDataPart4_UpboDownstreamReceiverSignalLevelThresholdRxthrshds, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, true, false, 3),
+			4:  ByteField(Vdsl2LineInventoryAndStatusDataPart4_UpboUpstreamReceiverSignalLevelThresholdRxthrshus, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, true, false, 4),
+			5:  ByteField(Vdsl2LineInventoryAndStatusDataPart4_ActualAlternativeElectricalLengthEstimationModEActAeleMode, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, true, false, 5),
+			6:  ByteField(Vdsl2LineInventoryAndStatusDataPart4_ActualDownstreamRipolicyActripolicyds, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, true, false, 6),
+			7:  ByteField(Vdsl2LineInventoryAndStatusDataPart4_ActualUpstreamRipolicyActripolicyus, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, true, false, 7),
+			8:  ByteField(Vdsl2LineInventoryAndStatusDataPart4_AttndrActualMEthodAttndrActmethod, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, true, false, 8),
+			9:  ByteField(Vdsl2LineInventoryAndStatusDataPart4_AttndrDownstreamACtualImpulseNoiseProtectionAttndrActinpds, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, true, false, 9),
+			10: ByteField(Vdsl2LineInventoryAndStatusDataPart4_AttndrUpstreamACtualImpulseNoiseProtectionAttndrActinpus, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, true, false, 10),
+			11: ByteField(Vdsl2LineInventoryAndStatusDataPart4_AttndrDownstreamACtualImpulseNoiseProtectionAgainstReinAttndrActinpReinds, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, true, false, 11),
+			12: ByteField(Vdsl2LineInventoryAndStatusDataPart4_AttndrUpstreamACtualImpulseNoiseProtectionAgainstReinAttndrActinpReinus, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, true, false, 12),
+			13: ByteField(Vdsl2LineInventoryAndStatusDataPart4_AttndrDownstreamActualDelayAttndrActdelayds, UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, true, false, 13),
+			14: ByteField(Vdsl2LineInventoryAndStatusDataPart4_AttndrUpstreamACtualDelayAttndrActdelayus, UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, true, false, 14),
+			15: Uint32Field(Vdsl2LineInventoryAndStatusDataPart4_NearEndAGgregateAchievableNetDataRateAggachndrNe, UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, true, false, 15),
+			16: Uint32Field(Vdsl2LineInventoryAndStatusDataPart4_FarEndAggregateAchievableNetDataRateAggachndrFe, UnsignedIntegerAttributeType, 0x0001, 0, mapset.NewSetWith(Read), false, true, false, 16),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/version.go b/generated/version.go
index fae36b0..185e191 100644
--- a/generated/version.go
+++ b/generated/version.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -46,8 +46,8 @@
 	Versions = append(Versions,
 		VersionInfo{
 			Name:       "parser",
-			Version:    "0.15.14",
-			CreateTime: 1643133630.3761945,
+			Version:    "0.16.0",
+			CreateTime: 1643293483.072271,
 			ItuDocName: "T-REC-G.988-202003-I!Amd3!MSW-E.docx",
 			SHA256:     "084f5265bc090ca882fe45f6844d1ce368c218e52c77795060b7643240885469",
 		})
@@ -64,8 +64,8 @@
 	Versions = append(Versions,
 		VersionInfo{
 			Name:       "code-generator",
-			Version:    "0.15.14",
-			CreateTime: 1643133640.51205,
+			Version:    "0.16.0",
+			CreateTime: 1643293492.5641377,
 			ItuDocName: "T-REC-G.988-202003-I!Amd3!MSW-E.docx",
 			SHA256:     "084f5265bc090ca882fe45f6844d1ce368c218e52c77795060b7643240885469",
 		})
diff --git a/generated/virtualethernetinterfacepoint.go b/generated/virtualethernetinterfacepoint.go
index eb15fd2..e0da86f 100644
--- a/generated/virtualethernetinterfacepoint.go
+++ b/generated/virtualethernetinterfacepoint.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -89,22 +89,30 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const VirtualEthernetInterfacePoint_AdministrativeState = "AdministrativeState"
+const VirtualEthernetInterfacePoint_OperationalState = "OperationalState"
+const VirtualEthernetInterfacePoint_InterdomainName = "InterdomainName"
+const VirtualEthernetInterfacePoint_TcpUdpPointer = "TcpUdpPointer"
+const VirtualEthernetInterfacePoint_IanaAssignedPort = "IanaAssignedPort"
+
 func init() {
 	virtualethernetinterfacepointBME = &ManagedEntityDefinition{
 		Name:    "VirtualEthernetInterfacePoint",
-		ClassID: 329,
+		ClassID: VirtualEthernetInterfacePointClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
 		),
 		AllowedAttributeMask: 0xf800,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: ByteField("AdministrativeState", EnumerationAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
-			2: ByteField("OperationalState", EnumerationAttributeType, 0x4000, 0, mapset.NewSetWith(Read), true, true, false, 2),
-			3: MultiByteField("InterdomainName", StringAttributeType, 0x2000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 3),
-			4: Uint16Field("TcpUdpPointer", PointerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, true, false, 4),
-			5: Uint16Field("IanaAssignedPort", UnsignedIntegerAttributeType, 0x0800, 65535, mapset.NewSetWith(Read), false, false, false, 5),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: ByteField(VirtualEthernetInterfacePoint_AdministrativeState, EnumerationAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			2: ByteField(VirtualEthernetInterfacePoint_OperationalState, EnumerationAttributeType, 0x4000, 0, mapset.NewSetWith(Read), true, true, false, 2),
+			3: MultiByteField(VirtualEthernetInterfacePoint_InterdomainName, StringAttributeType, 0x2000, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, true, false, 3),
+			4: Uint16Field(VirtualEthernetInterfacePoint_TcpUdpPointer, PointerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, true, false, 4),
+			5: Uint16Field(VirtualEthernetInterfacePoint_IanaAssignedPort, UnsignedIntegerAttributeType, 0x0800, 65535, mapset.NewSetWith(Read), false, false, false, 5),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/vlantaggingfilterdata.go b/generated/vlantaggingfilterdata.go
index 28d2443..17836a4 100644
--- a/generated/vlantaggingfilterdata.go
+++ b/generated/vlantaggingfilterdata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -74,10 +74,16 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const VlanTaggingFilterData_VlanFilterList = "VlanFilterList"
+const VlanTaggingFilterData_ForwardOperation = "ForwardOperation"
+const VlanTaggingFilterData_NumberOfEntries = "NumberOfEntries"
+
 func init() {
 	vlantaggingfilterdataBME = &ManagedEntityDefinition{
 		Name:    "VlanTaggingFilterData",
-		ClassID: 84,
+		ClassID: VlanTaggingFilterDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -86,10 +92,10 @@
 		),
 		AllowedAttributeMask: 0xe000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: MultiByteField("VlanFilterList", OctetsAttributeType, 0x8000, 24, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2: ByteField("ForwardOperation", EnumerationAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: ByteField("NumberOfEntries", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: MultiByteField(VlanTaggingFilterData_VlanFilterList, OctetsAttributeType, 0x8000, 24, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2: ByteField(VlanTaggingFilterData_ForwardOperation, EnumerationAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: ByteField(VlanTaggingFilterData_NumberOfEntries, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/vlantaggingoperationconfigurationdata.go b/generated/vlantaggingoperationconfigurationdata.go
index b13a398..5f1189a 100644
--- a/generated/vlantaggingoperationconfigurationdata.go
+++ b/generated/vlantaggingoperationconfigurationdata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -142,10 +142,18 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const VlanTaggingOperationConfigurationData_UpstreamVlanTaggingOperationMode = "UpstreamVlanTaggingOperationMode"
+const VlanTaggingOperationConfigurationData_UpstreamVlanTagTciValue = "UpstreamVlanTagTciValue"
+const VlanTaggingOperationConfigurationData_DownstreamVlanTaggingOperationMode = "DownstreamVlanTaggingOperationMode"
+const VlanTaggingOperationConfigurationData_AssociationType = "AssociationType"
+const VlanTaggingOperationConfigurationData_AssociatedMePointer = "AssociatedMePointer"
+
 func init() {
 	vlantaggingoperationconfigurationdataBME = &ManagedEntityDefinition{
 		Name:    "VlanTaggingOperationConfigurationData",
-		ClassID: 78,
+		ClassID: VlanTaggingOperationConfigurationDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -154,12 +162,12 @@
 		),
 		AllowedAttributeMask: 0xf800,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("UpstreamVlanTaggingOperationMode", EnumerationAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2: Uint16Field("UpstreamVlanTagTciValue", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: ByteField("DownstreamVlanTaggingOperationMode", EnumerationAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
-			4: ByteField("AssociationType", EnumerationAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 4),
-			5: Uint16Field("AssociatedMePointer", PointerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 5),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(VlanTaggingOperationConfigurationData_UpstreamVlanTaggingOperationMode, EnumerationAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2: Uint16Field(VlanTaggingOperationConfigurationData_UpstreamVlanTagTciValue, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: ByteField(VlanTaggingOperationConfigurationData_DownstreamVlanTaggingOperationMode, EnumerationAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
+			4: ByteField(VlanTaggingOperationConfigurationData_AssociationType, EnumerationAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 4),
+			5: Uint16Field(VlanTaggingOperationConfigurationData_AssociatedMePointer, PointerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 5),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/voiceserviceprofile.go b/generated/voiceserviceprofile.go
index d9827ed..db021d7 100644
--- a/generated/voiceserviceprofile.go
+++ b/generated/voiceserviceprofile.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -242,10 +242,27 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const VoiceServiceProfile_AnnouncementType = "AnnouncementType"
+const VoiceServiceProfile_JitterTarget = "JitterTarget"
+const VoiceServiceProfile_JitterBufferMax = "JitterBufferMax"
+const VoiceServiceProfile_EchoCancelInd = "EchoCancelInd"
+const VoiceServiceProfile_PstnProtocolVariant = "PstnProtocolVariant"
+const VoiceServiceProfile_DtmfDigitLevels = "DtmfDigitLevels"
+const VoiceServiceProfile_DtmfDigitDuration = "DtmfDigitDuration"
+const VoiceServiceProfile_HookFlashMinimumTime = "HookFlashMinimumTime"
+const VoiceServiceProfile_HookFlashMaximumTime = "HookFlashMaximumTime"
+const VoiceServiceProfile_TonePatternTable = "TonePatternTable"
+const VoiceServiceProfile_ToneEventTable = "ToneEventTable"
+const VoiceServiceProfile_RingingPatternTable = "RingingPatternTable"
+const VoiceServiceProfile_RingingEventTable = "RingingEventTable"
+const VoiceServiceProfile_NetworkSpecificExtensionsPointer = "NetworkSpecificExtensionsPointer"
+
 func init() {
 	voiceserviceprofileBME = &ManagedEntityDefinition{
 		Name:    "VoiceServiceProfile",
-		ClassID: 58,
+		ClassID: VoiceServiceProfileClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -256,21 +273,21 @@
 		),
 		AllowedAttributeMask: 0xfffc,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("AnnouncementType", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2:  Uint16Field("JitterTarget", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 2),
-			3:  Uint16Field("JitterBufferMax", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 3),
-			4:  ByteField("EchoCancelInd", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
-			5:  Uint16Field("PstnProtocolVariant", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 5),
-			6:  Uint16Field("DtmfDigitLevels", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 6),
-			7:  Uint16Field("DtmfDigitDuration", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 7),
-			8:  Uint16Field("HookFlashMinimumTime", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 8),
-			9:  Uint16Field("HookFlashMaximumTime", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 9),
-			10: TableField("TonePatternTable", TableAttributeType, 0x0040, TableInfo{nil, 20}, mapset.NewSetWith(Read, Write), false, true, false, 10),
-			11: TableField("ToneEventTable", TableAttributeType, 0x0020, TableInfo{nil, 7}, mapset.NewSetWith(Read, Write), false, true, false, 11),
-			12: TableField("RingingPatternTable", TableAttributeType, 0x0010, TableInfo{nil, 5}, mapset.NewSetWith(Read, Write), false, true, false, 12),
-			13: TableField("RingingEventTable", TableAttributeType, 0x0008, TableInfo{nil, 7}, mapset.NewSetWith(Read, Write), false, true, false, 13),
-			14: Uint16Field("NetworkSpecificExtensionsPointer", UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 14),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(VoiceServiceProfile_AnnouncementType, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2:  Uint16Field(VoiceServiceProfile_JitterTarget, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 2),
+			3:  Uint16Field(VoiceServiceProfile_JitterBufferMax, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 3),
+			4:  ByteField(VoiceServiceProfile_EchoCancelInd, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
+			5:  Uint16Field(VoiceServiceProfile_PstnProtocolVariant, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 5),
+			6:  Uint16Field(VoiceServiceProfile_DtmfDigitLevels, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 6),
+			7:  Uint16Field(VoiceServiceProfile_DtmfDigitDuration, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 7),
+			8:  Uint16Field(VoiceServiceProfile_HookFlashMinimumTime, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 8),
+			9:  Uint16Field(VoiceServiceProfile_HookFlashMaximumTime, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 9),
+			10: TableField(VoiceServiceProfile_TonePatternTable, TableAttributeType, 0x0040, TableInfo{nil, 20}, mapset.NewSetWith(Read, Write), false, true, false, 10),
+			11: TableField(VoiceServiceProfile_ToneEventTable, TableAttributeType, 0x0020, TableInfo{nil, 7}, mapset.NewSetWith(Read, Write), false, true, false, 11),
+			12: TableField(VoiceServiceProfile_RingingPatternTable, TableAttributeType, 0x0010, TableInfo{nil, 5}, mapset.NewSetWith(Read, Write), false, true, false, 12),
+			13: TableField(VoiceServiceProfile_RingingEventTable, TableAttributeType, 0x0008, TableInfo{nil, 7}, mapset.NewSetWith(Read, Write), false, true, false, 13),
+			14: Uint16Field(VoiceServiceProfile_NetworkSpecificExtensionsPointer, UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 14),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/voipapplicationserviceprofile.go b/generated/voipapplicationserviceprofile.go
index 2eb1fec..213eb5e 100644
--- a/generated/voipapplicationserviceprofile.go
+++ b/generated/voipapplicationserviceprofile.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -169,10 +169,23 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const VoipApplicationServiceProfile_CidFeatures = "CidFeatures"
+const VoipApplicationServiceProfile_CallWaitingFeatures = "CallWaitingFeatures"
+const VoipApplicationServiceProfile_CallProgressOrTransferFeatures = "CallProgressOrTransferFeatures"
+const VoipApplicationServiceProfile_CallPresentationFeatures = "CallPresentationFeatures"
+const VoipApplicationServiceProfile_DirectConnectFeature = "DirectConnectFeature"
+const VoipApplicationServiceProfile_DirectConnectUriPointer = "DirectConnectUriPointer"
+const VoipApplicationServiceProfile_BridgedLineAgentUriPointer = "BridgedLineAgentUriPointer"
+const VoipApplicationServiceProfile_ConferenceFactoryUriPointer = "ConferenceFactoryUriPointer"
+const VoipApplicationServiceProfile_DialToneFeatureDelayWarmlineTimerNew = "DialToneFeatureDelayWarmlineTimerNew"
+const VoipApplicationServiceProfile_IpHostPointer = "IpHostPointer"
+
 func init() {
 	voipapplicationserviceprofileBME = &ManagedEntityDefinition{
 		Name:    "VoipApplicationServiceProfile",
-		ClassID: 146,
+		ClassID: VoipApplicationServiceProfileClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -181,17 +194,17 @@
 		),
 		AllowedAttributeMask: 0xffc0,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("CidFeatures", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2:  ByteField("CallWaitingFeatures", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint16Field("CallProgressOrTransferFeatures", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
-			4:  Uint16Field("CallPresentationFeatures", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
-			5:  ByteField("DirectConnectFeature", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
-			6:  Uint16Field("DirectConnectUriPointer", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 6),
-			7:  Uint16Field("BridgedLineAgentUriPointer", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
-			8:  Uint16Field("ConferenceFactoryUriPointer", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 8),
-			9:  Uint16Field("DialToneFeatureDelayWarmlineTimerNew", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, true, false, 9),
-			10: Uint16Field("IpHostPointer", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, true, false, 10),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(VoipApplicationServiceProfile_CidFeatures, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2:  ByteField(VoipApplicationServiceProfile_CallWaitingFeatures, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint16Field(VoipApplicationServiceProfile_CallProgressOrTransferFeatures, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
+			4:  Uint16Field(VoipApplicationServiceProfile_CallPresentationFeatures, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
+			5:  ByteField(VoipApplicationServiceProfile_DirectConnectFeature, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
+			6:  Uint16Field(VoipApplicationServiceProfile_DirectConnectUriPointer, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 6),
+			7:  Uint16Field(VoipApplicationServiceProfile_BridgedLineAgentUriPointer, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
+			8:  Uint16Field(VoipApplicationServiceProfile_ConferenceFactoryUriPointer, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 8),
+			9:  Uint16Field(VoipApplicationServiceProfile_DialToneFeatureDelayWarmlineTimerNew, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, true, false, 9),
+			10: Uint16Field(VoipApplicationServiceProfile_IpHostPointer, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, true, false, 10),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/voipconfigdata.go b/generated/voipconfigdata.go
index 0e8f60e..c65416e 100644
--- a/generated/voipconfigdata.go
+++ b/generated/voipconfigdata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -151,25 +151,36 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const VoipConfigData_AvailableSignallingProtocols = "AvailableSignallingProtocols"
+const VoipConfigData_SignallingProtocolUsed = "SignallingProtocolUsed"
+const VoipConfigData_AvailableVoipConfigurationMethods = "AvailableVoipConfigurationMethods"
+const VoipConfigData_VoipConfigurationMethodUsed = "VoipConfigurationMethodUsed"
+const VoipConfigData_VoipConfigurationAddressPointer = "VoipConfigurationAddressPointer"
+const VoipConfigData_VoipConfigurationState = "VoipConfigurationState"
+const VoipConfigData_RetrieveProfile = "RetrieveProfile"
+const VoipConfigData_ProfileVersion = "ProfileVersion"
+
 func init() {
 	voipconfigdataBME = &ManagedEntityDefinition{
 		Name:    "VoipConfigData",
-		ClassID: 138,
+		ClassID: VoipConfigDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 			Set,
 		),
 		AllowedAttributeMask: 0xff00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: ByteField("AvailableSignallingProtocols", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: ByteField("SignallingProtocolUsed", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
-			3: Uint32Field("AvailableVoipConfigurationMethods", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4: ByteField("VoipConfigurationMethodUsed", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, false, false, 4),
-			5: Uint16Field("VoipConfigurationAddressPointer", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
-			6: ByteField("VoipConfigurationState", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7: ByteField("RetrieveProfile", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Write), false, false, false, 7),
-			8: MultiByteField("ProfileVersion", OctetsAttributeType, 0x0100, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), true, false, false, 8),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: ByteField(VoipConfigData_AvailableSignallingProtocols, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: ByteField(VoipConfigData_SignallingProtocolUsed, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
+			3: Uint32Field(VoipConfigData_AvailableVoipConfigurationMethods, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4: ByteField(VoipConfigData_VoipConfigurationMethodUsed, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, false, false, 4),
+			5: Uint16Field(VoipConfigData_VoipConfigurationAddressPointer, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
+			6: ByteField(VoipConfigData_VoipConfigurationState, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7: ByteField(VoipConfigData_RetrieveProfile, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Write), false, false, false, 7),
+			8: MultiByteField(VoipConfigData_ProfileVersion, OctetsAttributeType, 0x0100, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), true, false, false, 8),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/voipfeatureaccesscodes.go b/generated/voipfeatureaccesscodes.go
index 1b8f0ac..b0cce32 100644
--- a/generated/voipfeatureaccesscodes.go
+++ b/generated/voipfeatureaccesscodes.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -91,10 +91,25 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const VoipFeatureAccessCodes_CancelCallWaiting = "CancelCallWaiting"
+const VoipFeatureAccessCodes_CallHold = "CallHold"
+const VoipFeatureAccessCodes_CallPark = "CallPark"
+const VoipFeatureAccessCodes_CallerIdActivate = "CallerIdActivate"
+const VoipFeatureAccessCodes_CallerIdDeactivate = "CallerIdDeactivate"
+const VoipFeatureAccessCodes_DoNotDisturbActivation = "DoNotDisturbActivation"
+const VoipFeatureAccessCodes_DoNotDisturbDeactivation = "DoNotDisturbDeactivation"
+const VoipFeatureAccessCodes_DoNotDisturbPinChange = "DoNotDisturbPinChange"
+const VoipFeatureAccessCodes_EmergencyServiceNumber = "EmergencyServiceNumber"
+const VoipFeatureAccessCodes_IntercomService = "IntercomService"
+const VoipFeatureAccessCodes_UnattendedBlindCallTransfer = "UnattendedBlindCallTransfer"
+const VoipFeatureAccessCodes_AttendedCallTransfer = "AttendedCallTransfer"
+
 func init() {
 	voipfeatureaccesscodesBME = &ManagedEntityDefinition{
 		Name:    "VoipFeatureAccessCodes",
-		ClassID: 147,
+		ClassID: VoipFeatureAccessCodesClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -103,19 +118,19 @@
 		),
 		AllowedAttributeMask: 0xfff0,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  MultiByteField("CancelCallWaiting", OctetsAttributeType, 0x8000, 5, toOctets("AAAAAAA="), mapset.NewSetWith(Read, Write), false, true, false, 1),
-			2:  MultiByteField("CallHold", OctetsAttributeType, 0x4000, 5, toOctets("AAAAAAA="), mapset.NewSetWith(Read, Write), false, true, false, 2),
-			3:  MultiByteField("CallPark", OctetsAttributeType, 0x2000, 5, toOctets("AAAAAAA="), mapset.NewSetWith(Read, Write), false, true, false, 3),
-			4:  MultiByteField("CallerIdActivate", OctetsAttributeType, 0x1000, 5, toOctets("AAAAAAA="), mapset.NewSetWith(Read, Write), false, true, false, 4),
-			5:  MultiByteField("CallerIdDeactivate", OctetsAttributeType, 0x0800, 5, toOctets("AAAAAAA="), mapset.NewSetWith(Read, Write), false, true, false, 5),
-			6:  MultiByteField("DoNotDisturbActivation", OctetsAttributeType, 0x0400, 5, toOctets("AAAAAAA="), mapset.NewSetWith(Read, Write), false, true, false, 6),
-			7:  MultiByteField("DoNotDisturbDeactivation", OctetsAttributeType, 0x0200, 5, toOctets("AAAAAAA="), mapset.NewSetWith(Read, Write), false, true, false, 7),
-			8:  MultiByteField("DoNotDisturbPinChange", OctetsAttributeType, 0x0100, 5, toOctets("AAAAAAA="), mapset.NewSetWith(Read, Write), false, true, false, 8),
-			9:  MultiByteField("EmergencyServiceNumber", OctetsAttributeType, 0x0080, 5, toOctets("AAAAAAA="), mapset.NewSetWith(Read, Write), false, true, false, 9),
-			10: MultiByteField("IntercomService", OctetsAttributeType, 0x0040, 5, toOctets("AAAAAAA="), mapset.NewSetWith(Read, Write), false, true, false, 10),
-			11: MultiByteField("UnattendedBlindCallTransfer", OctetsAttributeType, 0x0020, 5, toOctets("AAAAAAA="), mapset.NewSetWith(Read, Write), false, true, false, 11),
-			12: MultiByteField("AttendedCallTransfer", OctetsAttributeType, 0x0010, 5, toOctets("AAAAAAA="), mapset.NewSetWith(Read, Write), false, true, false, 12),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  MultiByteField(VoipFeatureAccessCodes_CancelCallWaiting, OctetsAttributeType, 0x8000, 5, toOctets("AAAAAAA="), mapset.NewSetWith(Read, Write), false, true, false, 1),
+			2:  MultiByteField(VoipFeatureAccessCodes_CallHold, OctetsAttributeType, 0x4000, 5, toOctets("AAAAAAA="), mapset.NewSetWith(Read, Write), false, true, false, 2),
+			3:  MultiByteField(VoipFeatureAccessCodes_CallPark, OctetsAttributeType, 0x2000, 5, toOctets("AAAAAAA="), mapset.NewSetWith(Read, Write), false, true, false, 3),
+			4:  MultiByteField(VoipFeatureAccessCodes_CallerIdActivate, OctetsAttributeType, 0x1000, 5, toOctets("AAAAAAA="), mapset.NewSetWith(Read, Write), false, true, false, 4),
+			5:  MultiByteField(VoipFeatureAccessCodes_CallerIdDeactivate, OctetsAttributeType, 0x0800, 5, toOctets("AAAAAAA="), mapset.NewSetWith(Read, Write), false, true, false, 5),
+			6:  MultiByteField(VoipFeatureAccessCodes_DoNotDisturbActivation, OctetsAttributeType, 0x0400, 5, toOctets("AAAAAAA="), mapset.NewSetWith(Read, Write), false, true, false, 6),
+			7:  MultiByteField(VoipFeatureAccessCodes_DoNotDisturbDeactivation, OctetsAttributeType, 0x0200, 5, toOctets("AAAAAAA="), mapset.NewSetWith(Read, Write), false, true, false, 7),
+			8:  MultiByteField(VoipFeatureAccessCodes_DoNotDisturbPinChange, OctetsAttributeType, 0x0100, 5, toOctets("AAAAAAA="), mapset.NewSetWith(Read, Write), false, true, false, 8),
+			9:  MultiByteField(VoipFeatureAccessCodes_EmergencyServiceNumber, OctetsAttributeType, 0x0080, 5, toOctets("AAAAAAA="), mapset.NewSetWith(Read, Write), false, true, false, 9),
+			10: MultiByteField(VoipFeatureAccessCodes_IntercomService, OctetsAttributeType, 0x0040, 5, toOctets("AAAAAAA="), mapset.NewSetWith(Read, Write), false, true, false, 10),
+			11: MultiByteField(VoipFeatureAccessCodes_UnattendedBlindCallTransfer, OctetsAttributeType, 0x0020, 5, toOctets("AAAAAAA="), mapset.NewSetWith(Read, Write), false, true, false, 11),
+			12: MultiByteField(VoipFeatureAccessCodes_AttendedCallTransfer, OctetsAttributeType, 0x0010, 5, toOctets("AAAAAAA="), mapset.NewSetWith(Read, Write), false, true, false, 12),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/voiplinestatus.go b/generated/voiplinestatus.go
index 623b83e..4f1320c 100644
--- a/generated/voiplinestatus.go
+++ b/generated/voiplinestatus.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -207,25 +207,37 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const VoipLineStatus_VoipCodecUsed = "VoipCodecUsed"
+const VoipLineStatus_VoipVoiceServerStatus = "VoipVoiceServerStatus"
+const VoipLineStatus_VoipPortSessionType = "VoipPortSessionType"
+const VoipLineStatus_VoipCall1PacketPeriod = "VoipCall1PacketPeriod"
+const VoipLineStatus_VoipCall2PacketPeriod = "VoipCall2PacketPeriod"
+const VoipLineStatus_VoipCall1DestAddr = "VoipCall1DestAddr"
+const VoipLineStatus_VoipCall2DestAddr = "VoipCall2DestAddr"
+const VoipLineStatus_VoipLineState = "VoipLineState"
+const VoipLineStatus_EmergencyCallStatus = "EmergencyCallStatus"
+
 func init() {
 	voiplinestatusBME = &ManagedEntityDefinition{
 		Name:    "VoipLineStatus",
-		ClassID: 141,
+		ClassID: VoipLineStatusClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 		),
 		AllowedAttributeMask: 0xff80,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: Uint16Field("VoipCodecUsed", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: ByteField("VoipVoiceServerStatus", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
-			3: ByteField("VoipPortSessionType", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4: Uint16Field("VoipCall1PacketPeriod", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5: Uint16Field("VoipCall2PacketPeriod", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6: MultiByteField("VoipCall1DestAddr", OctetsAttributeType, 0x0400, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 6),
-			7: MultiByteField("VoipCall2DestAddr", OctetsAttributeType, 0x0200, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 7),
-			8: ByteField("VoipLineState", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, true, false, 8),
-			9: ByteField("EmergencyCallStatus", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), true, true, false, 9),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: Uint16Field(VoipLineStatus_VoipCodecUsed, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: ByteField(VoipLineStatus_VoipVoiceServerStatus, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
+			3: ByteField(VoipLineStatus_VoipPortSessionType, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4: Uint16Field(VoipLineStatus_VoipCall1PacketPeriod, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5: Uint16Field(VoipLineStatus_VoipCall2PacketPeriod, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6: MultiByteField(VoipLineStatus_VoipCall1DestAddr, OctetsAttributeType, 0x0400, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 6),
+			7: MultiByteField(VoipLineStatus_VoipCall2DestAddr, OctetsAttributeType, 0x0200, 25, toOctets("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 7),
+			8: ByteField(VoipLineStatus_VoipLineState, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, true, false, 8),
+			9: ByteField(VoipLineStatus_EmergencyCallStatus, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), true, true, false, 9),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/voipmediaprofile.go b/generated/voipmediaprofile.go
index e450946..77728a6 100644
--- a/generated/voipmediaprofile.go
+++ b/generated/voipmediaprofile.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -119,10 +119,29 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const VoipMediaProfile_FaxMode = "FaxMode"
+const VoipMediaProfile_VoiceServiceProfilePointer = "VoiceServiceProfilePointer"
+const VoipMediaProfile_CodecSelection1StOrder = "CodecSelection1StOrder"
+const VoipMediaProfile_PacketPeriodSelection1StOrder = "PacketPeriodSelection1StOrder"
+const VoipMediaProfile_SilenceSuppression1StOrder = "SilenceSuppression1StOrder"
+const VoipMediaProfile_CodecSelection2NdOrder = "CodecSelection2NdOrder"
+const VoipMediaProfile_PacketPeriodSelection2NdOrder = "PacketPeriodSelection2NdOrder"
+const VoipMediaProfile_SilenceSuppression2NdOrder = "SilenceSuppression2NdOrder"
+const VoipMediaProfile_CodecSelection3RdOrder = "CodecSelection3RdOrder"
+const VoipMediaProfile_PacketPeriodSelection3RdOrder = "PacketPeriodSelection3RdOrder"
+const VoipMediaProfile_SilenceSuppression3RdOrder = "SilenceSuppression3RdOrder"
+const VoipMediaProfile_CodecSelection4ThOrder = "CodecSelection4ThOrder"
+const VoipMediaProfile_PacketPeriodSelection4ThOrder = "PacketPeriodSelection4ThOrder"
+const VoipMediaProfile_SilenceSuppression4ThOrder = "SilenceSuppression4ThOrder"
+const VoipMediaProfile_OobDtmf = "OobDtmf"
+const VoipMediaProfile_RtpProfilePointer = "RtpProfilePointer"
+
 func init() {
 	voipmediaprofileBME = &ManagedEntityDefinition{
 		Name:    "VoipMediaProfile",
-		ClassID: 142,
+		ClassID: VoipMediaProfileClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -131,23 +150,23 @@
 		),
 		AllowedAttributeMask: 0xffff,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("FaxMode", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2:  Uint16Field("VoiceServiceProfilePointer", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  ByteField("CodecSelection1StOrder", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
-			4:  ByteField("PacketPeriodSelection1StOrder", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
-			5:  ByteField("SilenceSuppression1StOrder", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
-			6:  ByteField("CodecSelection2NdOrder", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 6),
-			7:  ByteField("PacketPeriodSelection2NdOrder", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
-			8:  ByteField("SilenceSuppression2NdOrder", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 8),
-			9:  ByteField("CodecSelection3RdOrder", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 9),
-			10: ByteField("PacketPeriodSelection3RdOrder", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 10),
-			11: ByteField("SilenceSuppression3RdOrder", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 11),
-			12: ByteField("CodecSelection4ThOrder", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 12),
-			13: ByteField("PacketPeriodSelection4ThOrder", UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 13),
-			14: ByteField("SilenceSuppression4ThOrder", UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 14),
-			15: ByteField("OobDtmf", UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 15),
-			16: Uint16Field("RtpProfilePointer", UnsignedIntegerAttributeType, 0x0001, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 16),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(VoipMediaProfile_FaxMode, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2:  Uint16Field(VoipMediaProfile_VoiceServiceProfilePointer, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  ByteField(VoipMediaProfile_CodecSelection1StOrder, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
+			4:  ByteField(VoipMediaProfile_PacketPeriodSelection1StOrder, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
+			5:  ByteField(VoipMediaProfile_SilenceSuppression1StOrder, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
+			6:  ByteField(VoipMediaProfile_CodecSelection2NdOrder, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 6),
+			7:  ByteField(VoipMediaProfile_PacketPeriodSelection2NdOrder, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 7),
+			8:  ByteField(VoipMediaProfile_SilenceSuppression2NdOrder, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 8),
+			9:  ByteField(VoipMediaProfile_CodecSelection3RdOrder, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 9),
+			10: ByteField(VoipMediaProfile_PacketPeriodSelection3RdOrder, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 10),
+			11: ByteField(VoipMediaProfile_SilenceSuppression3RdOrder, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 11),
+			12: ByteField(VoipMediaProfile_CodecSelection4ThOrder, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 12),
+			13: ByteField(VoipMediaProfile_PacketPeriodSelection4ThOrder, UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 13),
+			14: ByteField(VoipMediaProfile_SilenceSuppression4ThOrder, UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 14),
+			15: ByteField(VoipMediaProfile_OobDtmf, UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 15),
+			16: Uint16Field(VoipMediaProfile_RtpProfilePointer, UnsignedIntegerAttributeType, 0x0001, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 16),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/voipvoicectp.go b/generated/voipvoicectp.go
index 3dbb0c9..6809659 100644
--- a/generated/voipvoicectp.go
+++ b/generated/voipvoicectp.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -85,10 +85,17 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const VoipVoiceCtp_UserProtocolPointer = "UserProtocolPointer"
+const VoipVoiceCtp_PptpPointer = "PptpPointer"
+const VoipVoiceCtp_VOIpMediaProfilePointer = "VOIpMediaProfilePointer"
+const VoipVoiceCtp_SignallingCode = "SignallingCode"
+
 func init() {
 	voipvoicectpBME = &ManagedEntityDefinition{
 		Name:    "VoipVoiceCtp",
-		ClassID: 139,
+		ClassID: VoipVoiceCtpClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -97,11 +104,11 @@
 		),
 		AllowedAttributeMask: 0xf000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: Uint16Field("UserProtocolPointer", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2: Uint16Field("PptpPointer", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint16Field("VOIpMediaProfilePointer", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
-			4: ByteField("SignallingCode", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: Uint16Field(VoipVoiceCtp_UserProtocolPointer, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2: Uint16Field(VoipVoiceCtp_PptpPointer, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint16Field(VoipVoiceCtp_VOIpMediaProfilePointer, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
+			4: ByteField(VoipVoiceCtp_SignallingCode, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/vpnetworkctp.go b/generated/vpnetworkctp.go
index 37964fb..fbf3540 100644
--- a/generated/vpnetworkctp.go
+++ b/generated/vpnetworkctp.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -78,10 +78,20 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const VpNetworkCtp_VpiValue = "VpiValue"
+const VpNetworkCtp_UniPointer = "UniPointer"
+const VpNetworkCtp_Direction = "Direction"
+const VpNetworkCtp_Deprecated1 = "Deprecated1"
+const VpNetworkCtp_Deprecated2 = "Deprecated2"
+const VpNetworkCtp_Deprecated3 = "Deprecated3"
+const VpNetworkCtp_Deprecated4 = "Deprecated4"
+
 func init() {
 	vpnetworkctpBME = &ManagedEntityDefinition{
 		Name:    "VpNetworkCtp",
-		ClassID: 269,
+		ClassID: VpNetworkCtpClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -90,14 +100,14 @@
 		),
 		AllowedAttributeMask: 0xfe00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: Uint16Field("VpiValue", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2: Uint16Field("UniPointer", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: ByteField("Direction", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
-			4: Uint16Field("Deprecated1", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, true, 4),
-			5: Uint16Field("Deprecated2", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, true, 5),
-			6: Uint16Field("Deprecated3", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, true, 6),
-			7: ByteField("Deprecated4", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, true, true, 7),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: Uint16Field(VpNetworkCtp_VpiValue, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2: Uint16Field(VpNetworkCtp_UniPointer, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: ByteField(VpNetworkCtp_Direction, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
+			4: Uint16Field(VpNetworkCtp_Deprecated1, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, true, 4),
+			5: Uint16Field(VpNetworkCtp_Deprecated2, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, true, 5),
+			6: Uint16Field(VpNetworkCtp_Deprecated3, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, true, 6),
+			7: ByteField(VpNetworkCtp_Deprecated4, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, true, true, 7),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/vpperformancemonitoringhistorydata.go b/generated/vpperformancemonitoringhistorydata.go
index aaf21f0..4f09012 100644
--- a/generated/vpperformancemonitoringhistorydata.go
+++ b/generated/vpperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -58,7 +58,7 @@
 //			It records only loss of information, independent of the priority of the cell. (R) (mandatory)
 //			(2-bytes)
 //
-//		Lost C_= 0 Cells
+//		Lost C0 Cells
 //			Lost C-= 0 cells: This attribute counts loss of high priority cells. It cannot distinguish
 //			between cells lost because of header bit errors, ATM-level header errors, cell policing, or
 //			buffer overflows. It records only loss of high priority cells. (R) (mandatory) (2-bytes)
@@ -66,11 +66,11 @@
 //		Misinserted Cells
 //			This attribute counts cells that are misrouted to a monitored VP. (R) (mandatory) (2-bytes)
 //
-//		Transmitted C_= 0 _ 1 Cells
+//		Transmitted C0 _ 1 Cells
 //			Transmitted C-= 0-+ 1 cells: This attribute counts cells originated by the transmitting end
 //			point (i.e., backward reporting is assumed). (R) (mandatory) (5-bytes)
 //
-//		Transmitted C_= 0 Cells
+//		Transmitted C0 Cells
 //			Transmitted C-= 0 cells: This attribute counts high priority cells originated by the
 //			transmitting end point (i.e., backward reporting is assumed). (R) (mandatory) (5-bytes)
 //
@@ -85,10 +85,21 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const VpPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const VpPerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const VpPerformanceMonitoringHistoryData_LostC01Cells = "LostC01Cells"
+const VpPerformanceMonitoringHistoryData_LostC0Cells = "LostC0Cells"
+const VpPerformanceMonitoringHistoryData_MisinsertedCells = "MisinsertedCells"
+const VpPerformanceMonitoringHistoryData_TransmittedC01Cells = "TransmittedC01Cells"
+const VpPerformanceMonitoringHistoryData_TransmittedC0Cells = "TransmittedC0Cells"
+const VpPerformanceMonitoringHistoryData_ImpairedBlock = "ImpairedBlock"
+
 func init() {
 	vpperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "VpPerformanceMonitoringHistoryData",
-		ClassID: 62,
+		ClassID: VpPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -98,15 +109,15 @@
 		),
 		AllowedAttributeMask: 0xff00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint16Field("LostC01Cells", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4: Uint16Field("LostC=0Cells", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5: Uint16Field("MisinsertedCells", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6: MultiByteField("TransmittedC=01Cells", CounterAttributeType, 0x0400, 5, toOctets("AAAAAAA="), mapset.NewSetWith(Read), false, false, false, 6),
-			7: MultiByteField("TransmittedC=0Cells", CounterAttributeType, 0x0200, 5, toOctets("AAAAAAA="), mapset.NewSetWith(Read), false, false, false, 7),
-			8: Uint16Field("ImpairedBlock", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(VpPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: Uint16Field(VpPerformanceMonitoringHistoryData_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint16Field(VpPerformanceMonitoringHistoryData_LostC01Cells, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4: Uint16Field(VpPerformanceMonitoringHistoryData_LostC0Cells, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5: Uint16Field(VpPerformanceMonitoringHistoryData_MisinsertedCells, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6: MultiByteField(VpPerformanceMonitoringHistoryData_TransmittedC01Cells, CounterAttributeType, 0x0400, 5, toOctets("AAAAAAA="), mapset.NewSetWith(Read), false, false, false, 6),
+			7: MultiByteField(VpPerformanceMonitoringHistoryData_TransmittedC0Cells, CounterAttributeType, 0x0200, 5, toOctets("AAAAAAA="), mapset.NewSetWith(Read), false, false, false, 7),
+			8: Uint16Field(VpPerformanceMonitoringHistoryData_ImpairedBlock, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/xdslchannelconfigurationprofile.go b/generated/xdslchannelconfigurationprofile.go
index a11f3da..07dd47f 100644
--- a/generated/xdslchannelconfigurationprofile.go
+++ b/generated/xdslchannelconfigurationprofile.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -170,10 +170,28 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const XdslChannelConfigurationProfile_MinimumDataRate = "MinimumDataRate"
+const XdslChannelConfigurationProfile_MaximumDataRate = "MaximumDataRate"
+const XdslChannelConfigurationProfile_RateAdaptationRatio = "RateAdaptationRatio"
+const XdslChannelConfigurationProfile_MaximumInterleavingDelay = "MaximumInterleavingDelay"
+const XdslChannelConfigurationProfile_DataRateThresholdUpshift = "DataRateThresholdUpshift"
+const XdslChannelConfigurationProfile_DataRateThresholdDownshift = "DataRateThresholdDownshift"
+const XdslChannelConfigurationProfile_MinimumReservedDataRate = "MinimumReservedDataRate"
+const XdslChannelConfigurationProfile_MinimumDataRateInLowPowerState = "MinimumDataRateInLowPowerState"
+const XdslChannelConfigurationProfile_MinimumImpulseNoiseProtection = "MinimumImpulseNoiseProtection"
+const XdslChannelConfigurationProfile_MaximumBitErrorRatio = "MaximumBitErrorRatio"
+const XdslChannelConfigurationProfile_MinimumImpulseNoiseProtection8Khz = "MinimumImpulseNoiseProtection8Khz"
+const XdslChannelConfigurationProfile_MaximumDelayVariation = "MaximumDelayVariation"
+const XdslChannelConfigurationProfile_ChannelInitializationPolicySelection = "ChannelInitializationPolicySelection"
+const XdslChannelConfigurationProfile_MinimumSosBitRateDownstream = "MinimumSosBitRateDownstream"
+const XdslChannelConfigurationProfile_MinimumSosBitRateUpstream = "MinimumSosBitRateUpstream"
+
 func init() {
 	xdslchannelconfigurationprofileBME = &ManagedEntityDefinition{
 		Name:    "XdslChannelConfigurationProfile",
-		ClassID: 107,
+		ClassID: XdslChannelConfigurationProfileClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -182,22 +200,22 @@
 		),
 		AllowedAttributeMask: 0xfffe,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  Uint32Field("MinimumDataRate", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2:  Uint32Field("MaximumDataRate", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  ByteField("RateAdaptationRatio", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 3),
-			4:  ByteField("MaximumInterleavingDelay", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
-			5:  Uint32Field("DataRateThresholdUpshift", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
-			6:  Uint32Field("DataRateThresholdDownshift", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 6),
-			7:  Uint32Field("MinimumReservedDataRate", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 7),
-			8:  Uint32Field("MinimumDataRateInLowPowerState", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 8),
-			9:  ByteField("MinimumImpulseNoiseProtection", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 9),
-			10: ByteField("MaximumBitErrorRatio", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 10),
-			11: ByteField("MinimumImpulseNoiseProtection8Khz", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, false, false, 11),
-			12: ByteField("MaximumDelayVariation", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, false, false, 12),
-			13: ByteField("ChannelInitializationPolicySelection", UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, Write), false, true, false, 13),
-			14: Uint32Field("MinimumSosBitRateDownstream", UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read, Write), false, true, false, 14),
-			15: Uint32Field("MinimumSosBitRateUpstream", UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read, Write), false, true, false, 15),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  Uint32Field(XdslChannelConfigurationProfile_MinimumDataRate, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2:  Uint32Field(XdslChannelConfigurationProfile_MaximumDataRate, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  ByteField(XdslChannelConfigurationProfile_RateAdaptationRatio, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 3),
+			4:  ByteField(XdslChannelConfigurationProfile_MaximumInterleavingDelay, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
+			5:  Uint32Field(XdslChannelConfigurationProfile_DataRateThresholdUpshift, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 5),
+			6:  Uint32Field(XdslChannelConfigurationProfile_DataRateThresholdDownshift, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 6),
+			7:  Uint32Field(XdslChannelConfigurationProfile_MinimumReservedDataRate, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 7),
+			8:  Uint32Field(XdslChannelConfigurationProfile_MinimumDataRateInLowPowerState, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 8),
+			9:  ByteField(XdslChannelConfigurationProfile_MinimumImpulseNoiseProtection, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 9),
+			10: ByteField(XdslChannelConfigurationProfile_MaximumBitErrorRatio, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 10),
+			11: ByteField(XdslChannelConfigurationProfile_MinimumImpulseNoiseProtection8Khz, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, false, false, 11),
+			12: ByteField(XdslChannelConfigurationProfile_MaximumDelayVariation, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, false, false, 12),
+			13: ByteField(XdslChannelConfigurationProfile_ChannelInitializationPolicySelection, UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, Write), false, true, false, 13),
+			14: Uint32Field(XdslChannelConfigurationProfile_MinimumSosBitRateDownstream, UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read, Write), false, true, false, 14),
+			15: Uint32Field(XdslChannelConfigurationProfile_MinimumSosBitRateUpstream, UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read, Write), false, true, false, 15),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/xdslchannelconfigurationprofilepart2.go b/generated/xdslchannelconfigurationprofilepart2.go
index 851b056..2f78a1a 100644
--- a/generated/xdslchannelconfigurationprofilepart2.go
+++ b/generated/xdslchannelconfigurationprofilepart2.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -136,10 +136,26 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const XdslChannelConfigurationProfilePart2_MinimumExpectedThroughputForRetransmissionMinetrRtx = "MinimumExpectedThroughputForRetransmissionMinetrRtx"
+const XdslChannelConfigurationProfilePart2_MaximumExpectedThroughputForRetransmissionMaxetrRtx = "MaximumExpectedThroughputForRetransmissionMaxetrRtx"
+const XdslChannelConfigurationProfilePart2_MaximumNetDataRateForRetransmissionMaxndrRtx = "MaximumNetDataRateForRetransmissionMaxndrRtx"
+const XdslChannelConfigurationProfilePart2_MaximumDelayForRetransmissionDelaymaxRtx = "MaximumDelayForRetransmissionDelaymaxRtx"
+const XdslChannelConfigurationProfilePart2_MinimumDelayForRetransmissionDelayminRtx = "MinimumDelayForRetransmissionDelayminRtx"
+const XdslChannelConfigurationProfilePart2_MinimumImpulseNoiseProtectionAgainstSingleHighImpulseNoiseEventShineForRetransmissionInpminShineRtx = "MinimumImpulseNoiseProtectionAgainstSingleHighImpulseNoiseEventShineForRetransmissionInpminShineRtx"
+const XdslChannelConfigurationProfilePart2_MinimumImpulseNoiseProtectionAgainstShineForRetransmissionForSystemsUsing8625KhzSubcarrierSpacingInpmin8ShineRtx = "MinimumImpulseNoiseProtectionAgainstShineForRetransmissionForSystemsUsing8625KhzSubcarrierSpacingInpmin8ShineRtx"
+const XdslChannelConfigurationProfilePart2_ShineratioRtx = "ShineratioRtx"
+const XdslChannelConfigurationProfilePart2_MinimumImpulseNoiseProtectionAgainstReinForRetransmissionInpminReinRtx = "MinimumImpulseNoiseProtectionAgainstReinForRetransmissionInpminReinRtx"
+const XdslChannelConfigurationProfilePart2_MinimumImpulseNoiseProtectionAgainstReinForRetransmissionForSystemsUsing8625KhzSubcarrierSpacingInpmin8ReinRtx = "MinimumImpulseNoiseProtectionAgainstReinForRetransmissionForSystemsUsing8625KhzSubcarrierSpacingInpmin8ReinRtx"
+const XdslChannelConfigurationProfilePart2_ReinInterArrivalTimeForRetransmissionIatReinRtx = "ReinInterArrivalTimeForRetransmissionIatReinRtx"
+const XdslChannelConfigurationProfilePart2_TargetNetDataRateTargetNdr = "TargetNetDataRateTargetNdr"
+const XdslChannelConfigurationProfilePart2_TargetExpectedThroughputForRetransmissionTargetEtr = "TargetExpectedThroughputForRetransmissionTargetEtr"
+
 func init() {
 	xdslchannelconfigurationprofilepart2BME = &ManagedEntityDefinition{
 		Name:    "XdslChannelConfigurationProfilePart2",
-		ClassID: 412,
+		ClassID: XdslChannelConfigurationProfilePart2ClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -148,20 +164,20 @@
 		),
 		AllowedAttributeMask: 0xfff8,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  Uint32Field("MinimumExpectedThroughputForRetransmissionMinetrRtx", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
-			2:  Uint32Field("MaximumExpectedThroughputForRetransmissionMaxetrRtx", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
-			3:  Uint32Field("MaximumNetDataRateForRetransmissionMaxndrRtx", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
-			4:  ByteField("MaximumDelayForRetransmissionDelaymaxRtx", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, false, false, 4),
-			5:  ByteField("MinimumDelayForRetransmissionDelayminRtx", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
-			6:  ByteField("MinimumImpulseNoiseProtectionAgainstSingleHighImpulseNoiseEventShineForRetransmissionInpminShineRtx", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
-			7:  ByteField("MinimumImpulseNoiseProtectionAgainstShineForRetransmissionForSystemsUsing8625KhzSubcarrierSpacingInpmin8ShineRtx", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
-			8:  ByteField("ShineratioRtx", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, false, false, 8),
-			9:  ByteField("MinimumImpulseNoiseProtectionAgainstReinForRetransmissionInpminReinRtx", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, false, false, 9),
-			10: ByteField("MinimumImpulseNoiseProtectionAgainstReinForRetransmissionForSystemsUsing8625KhzSubcarrierSpacingInpmin8ReinRtx", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, false, false, 10),
-			11: ByteField("ReinInterArrivalTimeForRetransmissionIatReinRtx", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, false, false, 11),
-			12: Uint32Field("TargetNetDataRateTargetNdr", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, false, false, 12),
-			13: Uint32Field("TargetExpectedThroughputForRetransmissionTargetEtr", UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, Write), false, false, false, 13),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  Uint32Field(XdslChannelConfigurationProfilePart2_MinimumExpectedThroughputForRetransmissionMinetrRtx, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			2:  Uint32Field(XdslChannelConfigurationProfilePart2_MaximumExpectedThroughputForRetransmissionMaxetrRtx, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
+			3:  Uint32Field(XdslChannelConfigurationProfilePart2_MaximumNetDataRateForRetransmissionMaxndrRtx, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
+			4:  ByteField(XdslChannelConfigurationProfilePart2_MaximumDelayForRetransmissionDelaymaxRtx, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, false, false, 4),
+			5:  ByteField(XdslChannelConfigurationProfilePart2_MinimumDelayForRetransmissionDelayminRtx, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
+			6:  ByteField(XdslChannelConfigurationProfilePart2_MinimumImpulseNoiseProtectionAgainstSingleHighImpulseNoiseEventShineForRetransmissionInpminShineRtx, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
+			7:  ByteField(XdslChannelConfigurationProfilePart2_MinimumImpulseNoiseProtectionAgainstShineForRetransmissionForSystemsUsing8625KhzSubcarrierSpacingInpmin8ShineRtx, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
+			8:  ByteField(XdslChannelConfigurationProfilePart2_ShineratioRtx, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, false, false, 8),
+			9:  ByteField(XdslChannelConfigurationProfilePart2_MinimumImpulseNoiseProtectionAgainstReinForRetransmissionInpminReinRtx, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, false, false, 9),
+			10: ByteField(XdslChannelConfigurationProfilePart2_MinimumImpulseNoiseProtectionAgainstReinForRetransmissionForSystemsUsing8625KhzSubcarrierSpacingInpmin8ReinRtx, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, false, false, 10),
+			11: ByteField(XdslChannelConfigurationProfilePart2_ReinInterArrivalTimeForRetransmissionIatReinRtx, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, false, false, 11),
+			12: Uint32Field(XdslChannelConfigurationProfilePart2_TargetNetDataRateTargetNdr, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, false, false, 12),
+			13: Uint32Field(XdslChannelConfigurationProfilePart2_TargetExpectedThroughputForRetransmissionTargetEtr, UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, Write), false, false, false, 13),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/xdslchanneldownstreamstatusdata.go b/generated/xdslchanneldownstreamstatusdata.go
index 172ab1a..87f8707 100644
--- a/generated/xdslchanneldownstreamstatusdata.go
+++ b/generated/xdslchanneldownstreamstatusdata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -123,27 +123,41 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const XdslChannelDownstreamStatusData_ActualInterleavingDelay = "ActualInterleavingDelay"
+const XdslChannelDownstreamStatusData_ActualDataRate = "ActualDataRate"
+const XdslChannelDownstreamStatusData_PreviousDataRate = "PreviousDataRate"
+const XdslChannelDownstreamStatusData_ActualImpulseNoiseProtection = "ActualImpulseNoiseProtection"
+const XdslChannelDownstreamStatusData_ActualSizeOfReedSolomonCodeword = "ActualSizeOfReedSolomonCodeword"
+const XdslChannelDownstreamStatusData_ActualNumberOfReedSolomonRedundancyBytes = "ActualNumberOfReedSolomonRedundancyBytes"
+const XdslChannelDownstreamStatusData_ActualNumberOfBitsPerSymbol = "ActualNumberOfBitsPerSymbol"
+const XdslChannelDownstreamStatusData_ActualInterleavingDepth = "ActualInterleavingDepth"
+const XdslChannelDownstreamStatusData_ActualInterleavingBlockLength = "ActualInterleavingBlockLength"
+const XdslChannelDownstreamStatusData_ActualLatencyPath = "ActualLatencyPath"
+const XdslChannelDownstreamStatusData_ActualImpulseNoiseProtectionAgainstRepetitiveElectricalImpulseNoiseActinpRein = "ActualImpulseNoiseProtectionAgainstRepetitiveElectricalImpulseNoiseActinpRein"
+
 func init() {
 	xdslchanneldownstreamstatusdataBME = &ManagedEntityDefinition{
 		Name:    "XdslChannelDownstreamStatusData",
-		ClassID: 102,
+		ClassID: XdslChannelDownstreamStatusDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 		),
 		AllowedAttributeMask: 0xffe0,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  ByteField("ActualInterleavingDelay", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  Uint32Field("ActualDataRate", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
-			3:  Uint32Field("PreviousDataRate", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4:  ByteField("ActualImpulseNoiseProtection", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  ByteField("ActualSizeOfReedSolomonCodeword", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6:  ByteField("ActualNumberOfReedSolomonRedundancyBytes", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  Uint16Field("ActualNumberOfBitsPerSymbol", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8:  Uint16Field("ActualInterleavingDepth", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
-			9:  ByteField("ActualInterleavingBlockLength", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
-			10: ByteField("ActualLatencyPath", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
-			11: ByteField("ActualImpulseNoiseProtectionAgainstRepetitiveElectricalImpulseNoiseActinpRein", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, true, false, 11),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  ByteField(XdslChannelDownstreamStatusData_ActualInterleavingDelay, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  Uint32Field(XdslChannelDownstreamStatusData_ActualDataRate, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
+			3:  Uint32Field(XdslChannelDownstreamStatusData_PreviousDataRate, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4:  ByteField(XdslChannelDownstreamStatusData_ActualImpulseNoiseProtection, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  ByteField(XdslChannelDownstreamStatusData_ActualSizeOfReedSolomonCodeword, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6:  ByteField(XdslChannelDownstreamStatusData_ActualNumberOfReedSolomonRedundancyBytes, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  Uint16Field(XdslChannelDownstreamStatusData_ActualNumberOfBitsPerSymbol, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8:  Uint16Field(XdslChannelDownstreamStatusData_ActualInterleavingDepth, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			9:  ByteField(XdslChannelDownstreamStatusData_ActualInterleavingBlockLength, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
+			10: ByteField(XdslChannelDownstreamStatusData_ActualLatencyPath, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
+			11: ByteField(XdslChannelDownstreamStatusData_ActualImpulseNoiseProtectionAgainstRepetitiveElectricalImpulseNoiseActinpRein, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, true, false, 11),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/xdslchannelupstreamstatusdata.go b/generated/xdslchannelupstreamstatusdata.go
index 58970a7..9c932fe 100644
--- a/generated/xdslchannelupstreamstatusdata.go
+++ b/generated/xdslchannelupstreamstatusdata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -118,27 +118,41 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const XdslChannelUpstreamStatusData_ActualInterleavingDelay = "ActualInterleavingDelay"
+const XdslChannelUpstreamStatusData_ActualDataRate = "ActualDataRate"
+const XdslChannelUpstreamStatusData_PreviousDataRate = "PreviousDataRate"
+const XdslChannelUpstreamStatusData_ActualImpulseNoiseProtection = "ActualImpulseNoiseProtection"
+const XdslChannelUpstreamStatusData_ImpulseNoiseProtectionReportingMode = "ImpulseNoiseProtectionReportingMode"
+const XdslChannelUpstreamStatusData_ActualSizeOfReedSolomonCodeword = "ActualSizeOfReedSolomonCodeword"
+const XdslChannelUpstreamStatusData_ActualNumberOfReedSolomonRedundancyBytes = "ActualNumberOfReedSolomonRedundancyBytes"
+const XdslChannelUpstreamStatusData_ActualNumberOfBitsPerSymbol = "ActualNumberOfBitsPerSymbol"
+const XdslChannelUpstreamStatusData_ActualInterleavingDepth = "ActualInterleavingDepth"
+const XdslChannelUpstreamStatusData_ActualInterleavingBlockLength = "ActualInterleavingBlockLength"
+const XdslChannelUpstreamStatusData_ActualLatencyPath = "ActualLatencyPath"
+
 func init() {
 	xdslchannelupstreamstatusdataBME = &ManagedEntityDefinition{
 		Name:    "XdslChannelUpstreamStatusData",
-		ClassID: 103,
+		ClassID: XdslChannelUpstreamStatusDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 		),
 		AllowedAttributeMask: 0xffe0,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  ByteField("ActualInterleavingDelay", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  Uint32Field("ActualDataRate", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
-			3:  Uint32Field("PreviousDataRate", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4:  ByteField("ActualImpulseNoiseProtection", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  ByteField("ImpulseNoiseProtectionReportingMode", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6:  ByteField("ActualSizeOfReedSolomonCodeword", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  ByteField("ActualNumberOfReedSolomonRedundancyBytes", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8:  Uint16Field("ActualNumberOfBitsPerSymbol", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
-			9:  Uint16Field("ActualInterleavingDepth", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
-			10: ByteField("ActualInterleavingBlockLength", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
-			11: ByteField("ActualLatencyPath", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  ByteField(XdslChannelUpstreamStatusData_ActualInterleavingDelay, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  Uint32Field(XdslChannelUpstreamStatusData_ActualDataRate, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
+			3:  Uint32Field(XdslChannelUpstreamStatusData_PreviousDataRate, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4:  ByteField(XdslChannelUpstreamStatusData_ActualImpulseNoiseProtection, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  ByteField(XdslChannelUpstreamStatusData_ImpulseNoiseProtectionReportingMode, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6:  ByteField(XdslChannelUpstreamStatusData_ActualSizeOfReedSolomonCodeword, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  ByteField(XdslChannelUpstreamStatusData_ActualNumberOfReedSolomonRedundancyBytes, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8:  Uint16Field(XdslChannelUpstreamStatusData_ActualNumberOfBitsPerSymbol, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			9:  Uint16Field(XdslChannelUpstreamStatusData_ActualInterleavingDepth, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
+			10: ByteField(XdslChannelUpstreamStatusData_ActualInterleavingBlockLength, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
+			11: ByteField(XdslChannelUpstreamStatusData_ActualLatencyPath, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/xdsldownstreamrfibandsprofile.go b/generated/xdsldownstreamrfibandsprofile.go
index bd31bb0..55aee0d 100644
--- a/generated/xdsldownstreamrfibandsprofile.go
+++ b/generated/xdsldownstreamrfibandsprofile.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -97,10 +97,15 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const XdslDownstreamRfiBandsProfile_DownstreamRfiBandsTable = "DownstreamRfiBandsTable"
+const XdslDownstreamRfiBandsProfile_BandsValid = "BandsValid"
+
 func init() {
 	xdsldownstreamrfibandsprofileBME = &ManagedEntityDefinition{
 		Name:    "XdslDownstreamRfiBandsProfile",
-		ClassID: 111,
+		ClassID: XdslDownstreamRfiBandsProfileClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -111,9 +116,9 @@
 		),
 		AllowedAttributeMask: 0xc000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: TableField("DownstreamRfiBandsTable", TableAttributeType, 0x8000, TableInfo{nil, 5}, mapset.NewSetWith(Read, Write), false, false, false, 1),
-			2: ByteField("BandsValid", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: TableField(XdslDownstreamRfiBandsProfile_DownstreamRfiBandsTable, TableAttributeType, 0x8000, TableInfo{nil, 5}, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			2: ByteField(XdslDownstreamRfiBandsProfile_BandsValid, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/xdslimpulsenoisemonitorperformancemonitoringhistorydata.go b/generated/xdslimpulsenoisemonitorperformancemonitoringhistorydata.go
index 75125b3..bbb3980 100644
--- a/generated/xdslimpulsenoisemonitorperformancemonitoringhistorydata.go
+++ b/generated/xdslimpulsenoisemonitorperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -91,10 +91,21 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const XdslImpulseNoiseMonitorPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const XdslImpulseNoiseMonitorPerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const XdslImpulseNoiseMonitorPerformanceMonitoringHistoryData_InmInpeqHistogramTable = "InmInpeqHistogramTable"
+const XdslImpulseNoiseMonitorPerformanceMonitoringHistoryData_InmTotalMeasurement = "InmTotalMeasurement"
+const XdslImpulseNoiseMonitorPerformanceMonitoringHistoryData_InmIatHistogram = "InmIatHistogram"
+const XdslImpulseNoiseMonitorPerformanceMonitoringHistoryData_InmInpeqHistogramLfeTable = "InmInpeqHistogramLfeTable"
+const XdslImpulseNoiseMonitorPerformanceMonitoringHistoryData_InmTotalMeasurementLfe = "InmTotalMeasurementLfe"
+const XdslImpulseNoiseMonitorPerformanceMonitoringHistoryData_InmIatHistogramLfe = "InmIatHistogramLfe"
+
 func init() {
 	xdslimpulsenoisemonitorperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "XdslImpulseNoiseMonitorPerformanceMonitoringHistoryData",
-		ClassID: 324,
+		ClassID: XdslImpulseNoiseMonitorPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -105,15 +116,15 @@
 		),
 		AllowedAttributeMask: 0xff00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: TableField("InmInpeqHistogramTable", TableAttributeType, 0x2000, TableInfo{nil, 2}, mapset.NewSetWith(Read), false, true, false, 3),
-			4: Uint16Field("InmTotalMeasurement", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, true, false, 4),
-			5: Uint16Field("InmIatHistogram", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, true, false, 5),
-			6: TableField("InmInpeqHistogramLfeTable", TableAttributeType, 0x0400, TableInfo{nil, 2}, mapset.NewSetWith(Read), false, true, false, 6),
-			7: Uint16Field("InmTotalMeasurementLfe", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, true, false, 7),
-			8: Uint16Field("InmIatHistogramLfe", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, true, false, 8),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(XdslImpulseNoiseMonitorPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: Uint16Field(XdslImpulseNoiseMonitorPerformanceMonitoringHistoryData_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: TableField(XdslImpulseNoiseMonitorPerformanceMonitoringHistoryData_InmInpeqHistogramTable, TableAttributeType, 0x2000, TableInfo{nil, 2}, mapset.NewSetWith(Read), false, true, false, 3),
+			4: Uint16Field(XdslImpulseNoiseMonitorPerformanceMonitoringHistoryData_InmTotalMeasurement, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, true, false, 4),
+			5: Uint16Field(XdslImpulseNoiseMonitorPerformanceMonitoringHistoryData_InmIatHistogram, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, true, false, 5),
+			6: TableField(XdslImpulseNoiseMonitorPerformanceMonitoringHistoryData_InmInpeqHistogramLfeTable, TableAttributeType, 0x0400, TableInfo{nil, 2}, mapset.NewSetWith(Read), false, true, false, 6),
+			7: Uint16Field(XdslImpulseNoiseMonitorPerformanceMonitoringHistoryData_InmTotalMeasurementLfe, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, true, false, 7),
+			8: Uint16Field(XdslImpulseNoiseMonitorPerformanceMonitoringHistoryData_InmIatHistogramLfe, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, true, false, 8),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/xdsllineconfigurationprofilepart2.go b/generated/xdsllineconfigurationprofilepart2.go
index dfdd42c..54c573a 100644
--- a/generated/xdsllineconfigurationprofilepart2.go
+++ b/generated/xdsllineconfigurationprofilepart2.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -147,10 +147,28 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const XdslLineConfigurationProfilePart2_DownstreamMinimumTimeIntervalForUpshiftRateAdaptation = "DownstreamMinimumTimeIntervalForUpshiftRateAdaptation"
+const XdslLineConfigurationProfilePart2_UpstreamMinimumTimeIntervalForUpshiftRateAdaptation = "UpstreamMinimumTimeIntervalForUpshiftRateAdaptation"
+const XdslLineConfigurationProfilePart2_DownstreamDownshiftNoiseMargin = "DownstreamDownshiftNoiseMargin"
+const XdslLineConfigurationProfilePart2_UpstreamDownshiftNoiseMargin = "UpstreamDownshiftNoiseMargin"
+const XdslLineConfigurationProfilePart2_DownstreamMinimumTimeIntervalForDownshiftRateAdaptation = "DownstreamMinimumTimeIntervalForDownshiftRateAdaptation"
+const XdslLineConfigurationProfilePart2_UpstreamMinimumTimeIntervalForDownshiftRateAdaptation = "UpstreamMinimumTimeIntervalForDownshiftRateAdaptation"
+const XdslLineConfigurationProfilePart2_XtuImpedanceStateForced = "XtuImpedanceStateForced"
+const XdslLineConfigurationProfilePart2_L0Time = "L0Time"
+const XdslLineConfigurationProfilePart2_L2Time = "L2Time"
+const XdslLineConfigurationProfilePart2_DownstreamMaximumNominalPowerSpectralDensity = "DownstreamMaximumNominalPowerSpectralDensity"
+const XdslLineConfigurationProfilePart2_UpstreamMaximumNominalPowerSpectralDensity = "UpstreamMaximumNominalPowerSpectralDensity"
+const XdslLineConfigurationProfilePart2_DownstreamMaximumNominalAggregateTransmitPower = "DownstreamMaximumNominalAggregateTransmitPower"
+const XdslLineConfigurationProfilePart2_UpstreamMaximumNominalAggregateTransmitPower = "UpstreamMaximumNominalAggregateTransmitPower"
+const XdslLineConfigurationProfilePart2_UpstreamMaximumAggregateReceivePower = "UpstreamMaximumAggregateReceivePower"
+const XdslLineConfigurationProfilePart2_Vdsl2TransmissionSystemEnabling = "Vdsl2TransmissionSystemEnabling"
+
 func init() {
 	xdsllineconfigurationprofilepart2BME = &ManagedEntityDefinition{
 		Name:    "XdslLineConfigurationProfilePart2",
-		ClassID: 105,
+		ClassID: XdslLineConfigurationProfilePart2ClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -159,22 +177,22 @@
 		),
 		AllowedAttributeMask: 0xfffe,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  Uint16Field("DownstreamMinimumTimeIntervalForUpshiftRateAdaptation", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 1),
-			2:  Uint16Field("UpstreamMinimumTimeIntervalForUpshiftRateAdaptation", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 2),
-			3:  Uint16Field("DownstreamDownshiftNoiseMargin", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 3),
-			4:  Uint16Field("UpstreamDownshiftNoiseMargin", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 4),
-			5:  Uint16Field("DownstreamMinimumTimeIntervalForDownshiftRateAdaptation", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 5),
-			6:  Uint16Field("UpstreamMinimumTimeIntervalForDownshiftRateAdaptation", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 6),
-			7:  ByteField("XtuImpedanceStateForced", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 7),
-			8:  ByteField("L0Time", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 8),
-			9:  ByteField("L2Time", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 9),
-			10: Uint16Field("DownstreamMaximumNominalPowerSpectralDensity", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 10),
-			11: Uint16Field("UpstreamMaximumNominalPowerSpectralDensity", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 11),
-			12: ByteField("DownstreamMaximumNominalAggregateTransmitPower", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 12),
-			13: ByteField("UpstreamMaximumNominalAggregateTransmitPower", UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 13),
-			14: Uint16Field("UpstreamMaximumAggregateReceivePower", UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 14),
-			15: ByteField("Vdsl2TransmissionSystemEnabling", UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 15),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  Uint16Field(XdslLineConfigurationProfilePart2_DownstreamMinimumTimeIntervalForUpshiftRateAdaptation, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 1),
+			2:  Uint16Field(XdslLineConfigurationProfilePart2_UpstreamMinimumTimeIntervalForUpshiftRateAdaptation, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 2),
+			3:  Uint16Field(XdslLineConfigurationProfilePart2_DownstreamDownshiftNoiseMargin, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 3),
+			4:  Uint16Field(XdslLineConfigurationProfilePart2_UpstreamDownshiftNoiseMargin, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 4),
+			5:  Uint16Field(XdslLineConfigurationProfilePart2_DownstreamMinimumTimeIntervalForDownshiftRateAdaptation, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 5),
+			6:  Uint16Field(XdslLineConfigurationProfilePart2_UpstreamMinimumTimeIntervalForDownshiftRateAdaptation, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 6),
+			7:  ByteField(XdslLineConfigurationProfilePart2_XtuImpedanceStateForced, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 7),
+			8:  ByteField(XdslLineConfigurationProfilePart2_L0Time, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 8),
+			9:  ByteField(XdslLineConfigurationProfilePart2_L2Time, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 9),
+			10: Uint16Field(XdslLineConfigurationProfilePart2_DownstreamMaximumNominalPowerSpectralDensity, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 10),
+			11: Uint16Field(XdslLineConfigurationProfilePart2_UpstreamMaximumNominalPowerSpectralDensity, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 11),
+			12: ByteField(XdslLineConfigurationProfilePart2_DownstreamMaximumNominalAggregateTransmitPower, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 12),
+			13: ByteField(XdslLineConfigurationProfilePart2_UpstreamMaximumNominalAggregateTransmitPower, UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 13),
+			14: Uint16Field(XdslLineConfigurationProfilePart2_UpstreamMaximumAggregateReceivePower, UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 14),
+			15: ByteField(XdslLineConfigurationProfilePart2_Vdsl2TransmissionSystemEnabling, UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, true, false, 15),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/xdsllineconfigurationprofilepart3.go b/generated/xdsllineconfigurationprofilepart3.go
index 48981e9..20a69a9 100644
--- a/generated/xdsllineconfigurationprofilepart3.go
+++ b/generated/xdsllineconfigurationprofilepart3.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -175,10 +175,29 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const XdslLineConfigurationProfilePart3_LoopDiagnosticsModeForcedLdsf = "LoopDiagnosticsModeForcedLdsf"
+const XdslLineConfigurationProfilePart3_AutomodeColdStartForced = "AutomodeColdStartForced"
+const XdslLineConfigurationProfilePart3_L2Atpr = "L2Atpr"
+const XdslLineConfigurationProfilePart3_L2Atprt = "L2Atprt"
+const XdslLineConfigurationProfilePart3_ForceInpDownstream = "ForceInpDownstream"
+const XdslLineConfigurationProfilePart3_ForceInpUpstream = "ForceInpUpstream"
+const XdslLineConfigurationProfilePart3_UpdateRequestFlagForNearEndTestParameters = "UpdateRequestFlagForNearEndTestParameters"
+const XdslLineConfigurationProfilePart3_UpdateRequestFlagForFarEndTestParameters = "UpdateRequestFlagForFarEndTestParameters"
+const XdslLineConfigurationProfilePart3_InmInterArrivalTimeOffsetUpstream = "InmInterArrivalTimeOffsetUpstream"
+const XdslLineConfigurationProfilePart3_InmInterArrivalTimeStepUpstream = "InmInterArrivalTimeStepUpstream"
+const XdslLineConfigurationProfilePart3_InmClusterContinuationValueUpstream = "InmClusterContinuationValueUpstream"
+const XdslLineConfigurationProfilePart3_InmEquivalentInpModeUpstream = "InmEquivalentInpModeUpstream"
+const XdslLineConfigurationProfilePart3_InmInterArrivalTimeOffsetDownstream = "InmInterArrivalTimeOffsetDownstream"
+const XdslLineConfigurationProfilePart3_InmInterArrivalTimeStepDownstream = "InmInterArrivalTimeStepDownstream"
+const XdslLineConfigurationProfilePart3_InmClusterContinuationValueDownstream = "InmClusterContinuationValueDownstream"
+const XdslLineConfigurationProfilePart3_InmEquivalentInpModeDownstream = "InmEquivalentInpModeDownstream"
+
 func init() {
 	xdsllineconfigurationprofilepart3BME = &ManagedEntityDefinition{
 		Name:    "XdslLineConfigurationProfilePart3",
-		ClassID: 106,
+		ClassID: XdslLineConfigurationProfilePart3ClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -187,23 +206,23 @@
 		),
 		AllowedAttributeMask: 0xffff,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("LoopDiagnosticsModeForcedLdsf", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2:  ByteField("AutomodeColdStartForced", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  ByteField("L2Atpr", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
-			4:  ByteField("L2Atprt", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
-			5:  ByteField("ForceInpDownstream", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
-			6:  ByteField("ForceInpUpstream", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
-			7:  ByteField("UpdateRequestFlagForNearEndTestParameters", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), true, true, false, 7),
-			8:  ByteField("UpdateRequestFlagForFarEndTestParameters", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), true, true, false, 8),
-			9:  Uint16Field("InmInterArrivalTimeOffsetUpstream", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, true, false, 9),
-			10: ByteField("InmInterArrivalTimeStepUpstream", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, true, false, 10),
-			11: ByteField("InmClusterContinuationValueUpstream", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, true, false, 11),
-			12: ByteField("InmEquivalentInpModeUpstream", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, true, false, 12),
-			13: Uint16Field("InmInterArrivalTimeOffsetDownstream", UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, Write), false, true, false, 13),
-			14: ByteField("InmInterArrivalTimeStepDownstream", UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read, Write), false, true, false, 14),
-			15: ByteField("InmClusterContinuationValueDownstream", UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read, Write), false, true, false, 15),
-			16: ByteField("InmEquivalentInpModeDownstream", UnsignedIntegerAttributeType, 0x0001, 0, mapset.NewSetWith(Read, Write), false, true, false, 16),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(XdslLineConfigurationProfilePart3_LoopDiagnosticsModeForcedLdsf, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2:  ByteField(XdslLineConfigurationProfilePart3_AutomodeColdStartForced, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  ByteField(XdslLineConfigurationProfilePart3_L2Atpr, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 3),
+			4:  ByteField(XdslLineConfigurationProfilePart3_L2Atprt, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 4),
+			5:  ByteField(XdslLineConfigurationProfilePart3_ForceInpDownstream, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
+			6:  ByteField(XdslLineConfigurationProfilePart3_ForceInpUpstream, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
+			7:  ByteField(XdslLineConfigurationProfilePart3_UpdateRequestFlagForNearEndTestParameters, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), true, true, false, 7),
+			8:  ByteField(XdslLineConfigurationProfilePart3_UpdateRequestFlagForFarEndTestParameters, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), true, true, false, 8),
+			9:  Uint16Field(XdslLineConfigurationProfilePart3_InmInterArrivalTimeOffsetUpstream, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, true, false, 9),
+			10: ByteField(XdslLineConfigurationProfilePart3_InmInterArrivalTimeStepUpstream, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, true, false, 10),
+			11: ByteField(XdslLineConfigurationProfilePart3_InmClusterContinuationValueUpstream, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read, Write), false, true, false, 11),
+			12: ByteField(XdslLineConfigurationProfilePart3_InmEquivalentInpModeUpstream, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read, Write), false, true, false, 12),
+			13: Uint16Field(XdslLineConfigurationProfilePart3_InmInterArrivalTimeOffsetDownstream, UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read, Write), false, true, false, 13),
+			14: ByteField(XdslLineConfigurationProfilePart3_InmInterArrivalTimeStepDownstream, UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read, Write), false, true, false, 14),
+			15: ByteField(XdslLineConfigurationProfilePart3_InmClusterContinuationValueDownstream, UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read, Write), false, true, false, 15),
+			16: ByteField(XdslLineConfigurationProfilePart3_InmEquivalentInpModeDownstream, UnsignedIntegerAttributeType, 0x0001, 0, mapset.NewSetWith(Read, Write), false, true, false, 16),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/xdsllineinventoryandstatusdatapart1.go b/generated/xdsllineinventoryandstatusdatapart1.go
index 92dbed6..393ae25 100644
--- a/generated/xdsllineinventoryandstatusdatapart1.go
+++ b/generated/xdsllineinventoryandstatusdatapart1.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -167,31 +167,49 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const XdslLineInventoryAndStatusDataPart1_XtuCG9941VendorId = "XtuCG9941VendorId"
+const XdslLineInventoryAndStatusDataPart1_XtuRG9941VendorId = "XtuRG9941VendorId"
+const XdslLineInventoryAndStatusDataPart1_XtuCSystemVendorId = "XtuCSystemVendorId"
+const XdslLineInventoryAndStatusDataPart1_XtuRSystemVendorId = "XtuRSystemVendorId"
+const XdslLineInventoryAndStatusDataPart1_XtuCVersionNumber = "XtuCVersionNumber"
+const XdslLineInventoryAndStatusDataPart1_XtuRVersionNumber = "XtuRVersionNumber"
+const XdslLineInventoryAndStatusDataPart1_XtuCSerialNumberPart1 = "XtuCSerialNumberPart1"
+const XdslLineInventoryAndStatusDataPart1_XtuCSerialNumberPart2 = "XtuCSerialNumberPart2"
+const XdslLineInventoryAndStatusDataPart1_XtuRSerialNumberPart1 = "XtuRSerialNumberPart1"
+const XdslLineInventoryAndStatusDataPart1_XtuRSerialNumberPart2 = "XtuRSerialNumberPart2"
+const XdslLineInventoryAndStatusDataPart1_XtuCSelfTestResults = "XtuCSelfTestResults"
+const XdslLineInventoryAndStatusDataPart1_XtuRSelfTestResults = "XtuRSelfTestResults"
+const XdslLineInventoryAndStatusDataPart1_XtuCTransmissionSystemCapability = "XtuCTransmissionSystemCapability"
+const XdslLineInventoryAndStatusDataPart1_XtuRTransmissionSystemCapability = "XtuRTransmissionSystemCapability"
+const XdslLineInventoryAndStatusDataPart1_InitializationSuccessFailureCause = "InitializationSuccessFailureCause"
+
 func init() {
 	xdsllineinventoryandstatusdatapart1BME = &ManagedEntityDefinition{
 		Name:    "XdslLineInventoryAndStatusDataPart1",
-		ClassID: 100,
+		ClassID: XdslLineInventoryAndStatusDataPart1ClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 		),
 		AllowedAttributeMask: 0xfffe,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  Uint64Field("XtuCG9941VendorId", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  Uint64Field("XtuRG9941VendorId", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
-			3:  Uint64Field("XtuCSystemVendorId", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4:  Uint64Field("XtuRSystemVendorId", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  MultiByteField("XtuCVersionNumber", OctetsAttributeType, 0x0800, 16, toOctets("AAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 5),
-			6:  MultiByteField("XtuRVersionNumber", OctetsAttributeType, 0x0400, 16, toOctets("AAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 6),
-			7:  MultiByteField("XtuCSerialNumberPart1", OctetsAttributeType, 0x0200, 16, toOctets("AAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 7),
-			8:  MultiByteField("XtuCSerialNumberPart2", OctetsAttributeType, 0x0100, 16, toOctets("AAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 8),
-			9:  MultiByteField("XtuRSerialNumberPart1", OctetsAttributeType, 0x0080, 16, toOctets("AAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 9),
-			10: MultiByteField("XtuRSerialNumberPart2", OctetsAttributeType, 0x0040, 16, toOctets("AAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 10),
-			11: Uint32Field("XtuCSelfTestResults", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
-			12: Uint32Field("XtuRSelfTestResults", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
-			13: MultiByteField("XtuCTransmissionSystemCapability", OctetsAttributeType, 0x0008, 7, toOctets("AAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 13),
-			14: MultiByteField("XtuRTransmissionSystemCapability", OctetsAttributeType, 0x0004, 7, toOctets("AAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 14),
-			15: ByteField("InitializationSuccessFailureCause", UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, false, false, 15),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  Uint64Field(XdslLineInventoryAndStatusDataPart1_XtuCG9941VendorId, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  Uint64Field(XdslLineInventoryAndStatusDataPart1_XtuRG9941VendorId, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
+			3:  Uint64Field(XdslLineInventoryAndStatusDataPart1_XtuCSystemVendorId, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4:  Uint64Field(XdslLineInventoryAndStatusDataPart1_XtuRSystemVendorId, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  MultiByteField(XdslLineInventoryAndStatusDataPart1_XtuCVersionNumber, OctetsAttributeType, 0x0800, 16, toOctets("AAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 5),
+			6:  MultiByteField(XdslLineInventoryAndStatusDataPart1_XtuRVersionNumber, OctetsAttributeType, 0x0400, 16, toOctets("AAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 6),
+			7:  MultiByteField(XdslLineInventoryAndStatusDataPart1_XtuCSerialNumberPart1, OctetsAttributeType, 0x0200, 16, toOctets("AAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 7),
+			8:  MultiByteField(XdslLineInventoryAndStatusDataPart1_XtuCSerialNumberPart2, OctetsAttributeType, 0x0100, 16, toOctets("AAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 8),
+			9:  MultiByteField(XdslLineInventoryAndStatusDataPart1_XtuRSerialNumberPart1, OctetsAttributeType, 0x0080, 16, toOctets("AAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 9),
+			10: MultiByteField(XdslLineInventoryAndStatusDataPart1_XtuRSerialNumberPart2, OctetsAttributeType, 0x0040, 16, toOctets("AAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 10),
+			11: Uint32Field(XdslLineInventoryAndStatusDataPart1_XtuCSelfTestResults, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
+			12: Uint32Field(XdslLineInventoryAndStatusDataPart1_XtuRSelfTestResults, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
+			13: MultiByteField(XdslLineInventoryAndStatusDataPart1_XtuCTransmissionSystemCapability, OctetsAttributeType, 0x0008, 7, toOctets("AAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 13),
+			14: MultiByteField(XdslLineInventoryAndStatusDataPart1_XtuRTransmissionSystemCapability, OctetsAttributeType, 0x0004, 7, toOctets("AAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 14),
+			15: ByteField(XdslLineInventoryAndStatusDataPart1_InitializationSuccessFailureCause, UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, false, false, 15),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/xdsllineinventoryandstatusdatapart2.go b/generated/xdsllineinventoryandstatusdatapart2.go
index 6385cfd..0172ef9 100644
--- a/generated/xdsllineinventoryandstatusdatapart2.go
+++ b/generated/xdsllineinventoryandstatusdatapart2.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -217,32 +217,51 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const XdslLineInventoryAndStatusDataPart2_XdslTransmissionSystem = "XdslTransmissionSystem"
+const XdslLineInventoryAndStatusDataPart2_LinePowerManagementState = "LinePowerManagementState"
+const XdslLineInventoryAndStatusDataPart2_DownstreamLineAttenuation = "DownstreamLineAttenuation"
+const XdslLineInventoryAndStatusDataPart2_UpstreamLineAttenuation = "UpstreamLineAttenuation"
+const XdslLineInventoryAndStatusDataPart2_DownstreamSignalAttenuation = "DownstreamSignalAttenuation"
+const XdslLineInventoryAndStatusDataPart2_UpstreamSignalAttenuation = "UpstreamSignalAttenuation"
+const XdslLineInventoryAndStatusDataPart2_DownstreamSnrRatioMargin = "DownstreamSnrRatioMargin"
+const XdslLineInventoryAndStatusDataPart2_UpstreamSnrMargin = "UpstreamSnrMargin"
+const XdslLineInventoryAndStatusDataPart2_DownstreamMaximumAttainableDataRate = "DownstreamMaximumAttainableDataRate"
+const XdslLineInventoryAndStatusDataPart2_UpstreamMaximumAttainableDataRate = "UpstreamMaximumAttainableDataRate"
+const XdslLineInventoryAndStatusDataPart2_DownstreamActualPowerSpectrumDensity = "DownstreamActualPowerSpectrumDensity"
+const XdslLineInventoryAndStatusDataPart2_UpstreamActualPowerSpectrumDensity = "UpstreamActualPowerSpectrumDensity"
+const XdslLineInventoryAndStatusDataPart2_DownstreamActualAggregateTransmitPower = "DownstreamActualAggregateTransmitPower"
+const XdslLineInventoryAndStatusDataPart2_UpstreamActualAggregateTransmitPower = "UpstreamActualAggregateTransmitPower"
+const XdslLineInventoryAndStatusDataPart2_InitializationLastStateTransmittedDownstream = "InitializationLastStateTransmittedDownstream"
+const XdslLineInventoryAndStatusDataPart2_InitializationLastStateTransmittedUpstream = "InitializationLastStateTransmittedUpstream"
+
 func init() {
 	xdsllineinventoryandstatusdatapart2BME = &ManagedEntityDefinition{
 		Name:    "XdslLineInventoryAndStatusDataPart2",
-		ClassID: 101,
+		ClassID: XdslLineInventoryAndStatusDataPart2ClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 		),
 		AllowedAttributeMask: 0xffff,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  MultiByteField("XdslTransmissionSystem", OctetsAttributeType, 0x8000, 7, toOctets("AAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 1),
-			2:  ByteField("LinePowerManagementState", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
-			3:  Uint16Field("DownstreamLineAttenuation", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4:  Uint16Field("UpstreamLineAttenuation", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  Uint16Field("DownstreamSignalAttenuation", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6:  Uint16Field("UpstreamSignalAttenuation", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  Uint16Field("DownstreamSnrRatioMargin", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8:  Uint16Field("UpstreamSnrMargin", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
-			9:  Uint32Field("DownstreamMaximumAttainableDataRate", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
-			10: Uint32Field("UpstreamMaximumAttainableDataRate", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
-			11: Uint16Field("DownstreamActualPowerSpectrumDensity", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
-			12: Uint16Field("UpstreamActualPowerSpectrumDensity", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
-			13: Uint16Field("DownstreamActualAggregateTransmitPower", UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
-			14: Uint16Field("UpstreamActualAggregateTransmitPower", UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
-			15: ByteField("InitializationLastStateTransmittedDownstream", UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, false, false, 15),
-			16: ByteField("InitializationLastStateTransmittedUpstream", UnsignedIntegerAttributeType, 0x0001, 0, mapset.NewSetWith(Read), false, false, false, 16),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  MultiByteField(XdslLineInventoryAndStatusDataPart2_XdslTransmissionSystem, OctetsAttributeType, 0x8000, 7, toOctets("AAAAAAAAAA=="), mapset.NewSetWith(Read), false, false, false, 1),
+			2:  ByteField(XdslLineInventoryAndStatusDataPart2_LinePowerManagementState, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
+			3:  Uint16Field(XdslLineInventoryAndStatusDataPart2_DownstreamLineAttenuation, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4:  Uint16Field(XdslLineInventoryAndStatusDataPart2_UpstreamLineAttenuation, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  Uint16Field(XdslLineInventoryAndStatusDataPart2_DownstreamSignalAttenuation, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6:  Uint16Field(XdslLineInventoryAndStatusDataPart2_UpstreamSignalAttenuation, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  Uint16Field(XdslLineInventoryAndStatusDataPart2_DownstreamSnrRatioMargin, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8:  Uint16Field(XdslLineInventoryAndStatusDataPart2_UpstreamSnrMargin, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			9:  Uint32Field(XdslLineInventoryAndStatusDataPart2_DownstreamMaximumAttainableDataRate, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
+			10: Uint32Field(XdslLineInventoryAndStatusDataPart2_UpstreamMaximumAttainableDataRate, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
+			11: Uint16Field(XdslLineInventoryAndStatusDataPart2_DownstreamActualPowerSpectrumDensity, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
+			12: Uint16Field(XdslLineInventoryAndStatusDataPart2_UpstreamActualPowerSpectrumDensity, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
+			13: Uint16Field(XdslLineInventoryAndStatusDataPart2_DownstreamActualAggregateTransmitPower, UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
+			14: Uint16Field(XdslLineInventoryAndStatusDataPart2_UpstreamActualAggregateTransmitPower, UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
+			15: ByteField(XdslLineInventoryAndStatusDataPart2_InitializationLastStateTransmittedDownstream, UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, false, false, 15),
+			16: ByteField(XdslLineInventoryAndStatusDataPart2_InitializationLastStateTransmittedUpstream, UnsignedIntegerAttributeType, 0x0001, 0, mapset.NewSetWith(Read), false, false, false, 16),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/xdsllineinventoryandstatusdatapart5.go b/generated/xdsllineinventoryandstatusdatapart5.go
index 4e0cf45..6f3f39a 100644
--- a/generated/xdsllineinventoryandstatusdatapart5.go
+++ b/generated/xdsllineinventoryandstatusdatapart5.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -141,32 +141,51 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const XdslLineInventoryAndStatusDataPart5_FextDownstreamSnrMargin = "FextDownstreamSnrMargin"
+const XdslLineInventoryAndStatusDataPart5_NextDownstreamSnrMargin = "NextDownstreamSnrMargin"
+const XdslLineInventoryAndStatusDataPart5_FextUpstreamSnrMargin = "FextUpstreamSnrMargin"
+const XdslLineInventoryAndStatusDataPart5_NextUpstreamSnrMargin = "NextUpstreamSnrMargin"
+const XdslLineInventoryAndStatusDataPart5_FextDownstreamMaximumAttainableDataRate = "FextDownstreamMaximumAttainableDataRate"
+const XdslLineInventoryAndStatusDataPart5_NextDownstreamMaximumAttainableDataRate = "NextDownstreamMaximumAttainableDataRate"
+const XdslLineInventoryAndStatusDataPart5_FextUpstreamMaximumAttainableDataRate = "FextUpstreamMaximumAttainableDataRate"
+const XdslLineInventoryAndStatusDataPart5_NextUpstreamMaximumAttainableDataRate = "NextUpstreamMaximumAttainableDataRate"
+const XdslLineInventoryAndStatusDataPart5_FextDownstreamActualPowerSpectralDensity = "FextDownstreamActualPowerSpectralDensity"
+const XdslLineInventoryAndStatusDataPart5_NextDownstreamActualPowerSpectralDensity = "NextDownstreamActualPowerSpectralDensity"
+const XdslLineInventoryAndStatusDataPart5_FextUpstreamActualPowerSpectralDensity = "FextUpstreamActualPowerSpectralDensity"
+const XdslLineInventoryAndStatusDataPart5_NextUpstreamActualPowerSpectralDensity = "NextUpstreamActualPowerSpectralDensity"
+const XdslLineInventoryAndStatusDataPart5_FextDownstreamActualAggregateTransmitPower = "FextDownstreamActualAggregateTransmitPower"
+const XdslLineInventoryAndStatusDataPart5_NextDownstreamActualAggregateTransmitPower = "NextDownstreamActualAggregateTransmitPower"
+const XdslLineInventoryAndStatusDataPart5_FextUpstreamActualAggregateTransmitPower = "FextUpstreamActualAggregateTransmitPower"
+const XdslLineInventoryAndStatusDataPart5_NextUpstreamActualAggregateTransmitPower = "NextUpstreamActualAggregateTransmitPower"
+
 func init() {
 	xdsllineinventoryandstatusdatapart5BME = &ManagedEntityDefinition{
 		Name:    "XdslLineInventoryAndStatusDataPart5",
-		ClassID: 325,
+		ClassID: XdslLineInventoryAndStatusDataPart5ClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 		),
 		AllowedAttributeMask: 0xffff,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1:  Uint16Field("FextDownstreamSnrMargin", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  Uint16Field("NextDownstreamSnrMargin", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
-			3:  Uint16Field("FextUpstreamSnrMargin", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4:  Uint16Field("NextUpstreamSnrMargin", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  Uint32Field("FextDownstreamMaximumAttainableDataRate", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6:  Uint32Field("NextDownstreamMaximumAttainableDataRate", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  Uint32Field("FextUpstreamMaximumAttainableDataRate", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8:  Uint32Field("NextUpstreamMaximumAttainableDataRate", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
-			9:  Uint16Field("FextDownstreamActualPowerSpectralDensity", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
-			10: Uint16Field("NextDownstreamActualPowerSpectralDensity", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
-			11: Uint16Field("FextUpstreamActualPowerSpectralDensity", UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
-			12: Uint16Field("NextUpstreamActualPowerSpectralDensity", UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
-			13: Uint16Field("FextDownstreamActualAggregateTransmitPower", UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
-			14: Uint16Field("NextDownstreamActualAggregateTransmitPower", UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
-			15: Uint16Field("FextUpstreamActualAggregateTransmitPower", UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, false, false, 15),
-			16: Uint16Field("NextUpstreamActualAggregateTransmitPower", UnsignedIntegerAttributeType, 0x0001, 0, mapset.NewSetWith(Read), false, false, false, 16),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  Uint16Field(XdslLineInventoryAndStatusDataPart5_FextDownstreamSnrMargin, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  Uint16Field(XdslLineInventoryAndStatusDataPart5_NextDownstreamSnrMargin, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
+			3:  Uint16Field(XdslLineInventoryAndStatusDataPart5_FextUpstreamSnrMargin, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4:  Uint16Field(XdslLineInventoryAndStatusDataPart5_NextUpstreamSnrMargin, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  Uint32Field(XdslLineInventoryAndStatusDataPart5_FextDownstreamMaximumAttainableDataRate, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6:  Uint32Field(XdslLineInventoryAndStatusDataPart5_NextDownstreamMaximumAttainableDataRate, UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  Uint32Field(XdslLineInventoryAndStatusDataPart5_FextUpstreamMaximumAttainableDataRate, UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8:  Uint32Field(XdslLineInventoryAndStatusDataPart5_NextUpstreamMaximumAttainableDataRate, UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			9:  Uint16Field(XdslLineInventoryAndStatusDataPart5_FextDownstreamActualPowerSpectralDensity, UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
+			10: Uint16Field(XdslLineInventoryAndStatusDataPart5_NextDownstreamActualPowerSpectralDensity, UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
+			11: Uint16Field(XdslLineInventoryAndStatusDataPart5_FextUpstreamActualPowerSpectralDensity, UnsignedIntegerAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
+			12: Uint16Field(XdslLineInventoryAndStatusDataPart5_NextUpstreamActualPowerSpectralDensity, UnsignedIntegerAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, false, false, 12),
+			13: Uint16Field(XdslLineInventoryAndStatusDataPart5_FextDownstreamActualAggregateTransmitPower, UnsignedIntegerAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
+			14: Uint16Field(XdslLineInventoryAndStatusDataPart5_NextDownstreamActualAggregateTransmitPower, UnsignedIntegerAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
+			15: Uint16Field(XdslLineInventoryAndStatusDataPart5_FextUpstreamActualAggregateTransmitPower, UnsignedIntegerAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, false, false, 15),
+			16: Uint16Field(XdslLineInventoryAndStatusDataPart5_NextUpstreamActualAggregateTransmitPower, UnsignedIntegerAttributeType, 0x0001, 0, mapset.NewSetWith(Read), false, false, false, 16),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/xdsllineinventoryandstatusdatapart8.go b/generated/xdsllineinventoryandstatusdatapart8.go
index ad1a629..892c00b 100644
--- a/generated/xdsllineinventoryandstatusdatapart8.go
+++ b/generated/xdsllineinventoryandstatusdatapart8.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -84,22 +84,31 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const XdslLineInventoryAndStatusDataPart8_RetransmissionUsedDownstreamRtxUsedds = "RetransmissionUsedDownstreamRtxUsedds"
+const XdslLineInventoryAndStatusDataPart8_RetransmissionUsedUpstreamRtxUsedus = "RetransmissionUsedUpstreamRtxUsedus"
+const XdslLineInventoryAndStatusDataPart8_DateTimeStampingOfNearEndTestParametersStampTestNe = "DateTimeStampingOfNearEndTestParametersStampTestNe"
+const XdslLineInventoryAndStatusDataPart8_DateTimeStampingOfFarEndTestParametersStampTestFe = "DateTimeStampingOfFarEndTestParametersStampTestFe"
+const XdslLineInventoryAndStatusDataPart8_DateTimeStampingOfLastSuccessfulDownstreamOlrOperationStampOlrDs = "DateTimeStampingOfLastSuccessfulDownstreamOlrOperationStampOlrDs"
+const XdslLineInventoryAndStatusDataPart8_DateTimeStampingOfLastSuccessfulUpstreamOlrOperationStampOlrUs = "DateTimeStampingOfLastSuccessfulUpstreamOlrOperationStampOlrUs"
+
 func init() {
 	xdsllineinventoryandstatusdatapart8BME = &ManagedEntityDefinition{
 		Name:    "XdslLineInventoryAndStatusDataPart8",
-		ClassID: 414,
+		ClassID: XdslLineInventoryAndStatusDataPart8ClassID,
 		MessageTypes: mapset.NewSetWith(
 			Get,
 		),
 		AllowedAttributeMask: 0xfc00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
-			1: ByteField("RetransmissionUsedDownstreamRtxUsedds", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: ByteField("RetransmissionUsedUpstreamRtxUsedus", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
-			3: MultiByteField("DateTimeStampingOfNearEndTestParametersStampTestNe", OctetsAttributeType, 0x2000, 7, toOctets("AAAAAAAAAA=="), mapset.NewSetWith(Read), false, true, false, 3),
-			4: MultiByteField("DateTimeStampingOfFarEndTestParametersStampTestFe", OctetsAttributeType, 0x1000, 7, toOctets("AAAAAAAAAA=="), mapset.NewSetWith(Read), false, true, false, 4),
-			5: MultiByteField("DateTimeStampingOfLastSuccessfulDownstreamOlrOperationStampOlrDs", OctetsAttributeType, 0x0800, 7, toOctets("AAAAAAAAAA=="), mapset.NewSetWith(Read), false, true, false, 5),
-			6: MultiByteField("DateTimeStampingOfLastSuccessfulUpstreamOlrOperationStampOlrUs", OctetsAttributeType, 0x0400, 7, toOctets("AAAAAAAAAA=="), mapset.NewSetWith(Read), false, true, false, 6),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1: ByteField(XdslLineInventoryAndStatusDataPart8_RetransmissionUsedDownstreamRtxUsedds, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: ByteField(XdslLineInventoryAndStatusDataPart8_RetransmissionUsedUpstreamRtxUsedus, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read), false, false, false, 2),
+			3: MultiByteField(XdslLineInventoryAndStatusDataPart8_DateTimeStampingOfNearEndTestParametersStampTestNe, OctetsAttributeType, 0x2000, 7, toOctets("AAAAAAAAAA=="), mapset.NewSetWith(Read), false, true, false, 3),
+			4: MultiByteField(XdslLineInventoryAndStatusDataPart8_DateTimeStampingOfFarEndTestParametersStampTestFe, OctetsAttributeType, 0x1000, 7, toOctets("AAAAAAAAAA=="), mapset.NewSetWith(Read), false, true, false, 4),
+			5: MultiByteField(XdslLineInventoryAndStatusDataPart8_DateTimeStampingOfLastSuccessfulDownstreamOlrOperationStampOlrDs, OctetsAttributeType, 0x0800, 7, toOctets("AAAAAAAAAA=="), mapset.NewSetWith(Read), false, true, false, 5),
+			6: MultiByteField(XdslLineInventoryAndStatusDataPart8_DateTimeStampingOfLastSuccessfulUpstreamOlrOperationStampOlrUs, OctetsAttributeType, 0x0400, 7, toOctets("AAAAAAAAAA=="), mapset.NewSetWith(Read), false, true, false, 6),
 		},
 		Access:  CreatedByOnu,
 		Support: UnknownSupport,
diff --git a/generated/xdslpsdmaskprofile.go b/generated/xdslpsdmaskprofile.go
index 9b455a3..3b31ff8 100644
--- a/generated/xdslpsdmaskprofile.go
+++ b/generated/xdslpsdmaskprofile.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -101,10 +101,15 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const XdslPsdMaskProfile_PsdMaskTable = "PsdMaskTable"
+const XdslPsdMaskProfile_MaskValid = "MaskValid"
+
 func init() {
 	xdslpsdmaskprofileBME = &ManagedEntityDefinition{
 		Name:    "XdslPsdMaskProfile",
-		ClassID: 110,
+		ClassID: XdslPsdMaskProfileClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -115,9 +120,9 @@
 		),
 		AllowedAttributeMask: 0xc000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: TableField("PsdMaskTable", TableAttributeType, 0x8000, TableInfo{nil, 4}, mapset.NewSetWith(Read, Write), false, false, false, 1),
-			2: ByteField("MaskValid", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: TableField(XdslPsdMaskProfile_PsdMaskTable, TableAttributeType, 0x8000, TableInfo{nil, 4}, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			2: ByteField(XdslPsdMaskProfile_MaskValid, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/xdslsubcarriermaskingdownstreamprofile.go b/generated/xdslsubcarriermaskingdownstreamprofile.go
index 05e7d55..05390c1 100644
--- a/generated/xdslsubcarriermaskingdownstreamprofile.go
+++ b/generated/xdslsubcarriermaskingdownstreamprofile.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -91,10 +91,18 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const XdslSubcarrierMaskingDownstreamProfile_DownstreamSubcarrierMask1 = "DownstreamSubcarrierMask1"
+const XdslSubcarrierMaskingDownstreamProfile_DownstreamSubcarrierMask2 = "DownstreamSubcarrierMask2"
+const XdslSubcarrierMaskingDownstreamProfile_DownstreamSubcarrierMask3 = "DownstreamSubcarrierMask3"
+const XdslSubcarrierMaskingDownstreamProfile_DownstreamSubcarrierMask4 = "DownstreamSubcarrierMask4"
+const XdslSubcarrierMaskingDownstreamProfile_MaskValid = "MaskValid"
+
 func init() {
 	xdslsubcarriermaskingdownstreamprofileBME = &ManagedEntityDefinition{
 		Name:    "XdslSubcarrierMaskingDownstreamProfile",
-		ClassID: 108,
+		ClassID: XdslSubcarrierMaskingDownstreamProfileClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -103,12 +111,12 @@
 		),
 		AllowedAttributeMask: 0xf800,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: MultiByteField("DownstreamSubcarrierMask1", OctetsAttributeType, 0x8000, 16, toOctets("AAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
-			2: MultiByteField("DownstreamSubcarrierMask2", OctetsAttributeType, 0x4000, 16, toOctets("AAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 2),
-			3: MultiByteField("DownstreamSubcarrierMask3", OctetsAttributeType, 0x2000, 16, toOctets("AAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 3),
-			4: MultiByteField("DownstreamSubcarrierMask4", OctetsAttributeType, 0x1000, 16, toOctets("AAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 4),
-			5: ByteField("MaskValid", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: MultiByteField(XdslSubcarrierMaskingDownstreamProfile_DownstreamSubcarrierMask1, OctetsAttributeType, 0x8000, 16, toOctets("AAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			2: MultiByteField(XdslSubcarrierMaskingDownstreamProfile_DownstreamSubcarrierMask2, OctetsAttributeType, 0x4000, 16, toOctets("AAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 2),
+			3: MultiByteField(XdslSubcarrierMaskingDownstreamProfile_DownstreamSubcarrierMask3, OctetsAttributeType, 0x2000, 16, toOctets("AAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 3),
+			4: MultiByteField(XdslSubcarrierMaskingDownstreamProfile_DownstreamSubcarrierMask4, OctetsAttributeType, 0x1000, 16, toOctets("AAAAAAAAAAAAAAAAAAAAAA=="), mapset.NewSetWith(Read, Write), false, false, false, 4),
+			5: ByteField(XdslSubcarrierMaskingDownstreamProfile_MaskValid, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/xdslsubcarriermaskingupstreamprofile.go b/generated/xdslsubcarriermaskingupstreamprofile.go
index 0e02784..037d7b0 100644
--- a/generated/xdslsubcarriermaskingupstreamprofile.go
+++ b/generated/xdslsubcarriermaskingupstreamprofile.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -61,10 +61,14 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const XdslSubcarrierMaskingUpstreamProfile_UpstreamSubcarrierMask = "UpstreamSubcarrierMask"
+
 func init() {
 	xdslsubcarriermaskingupstreamprofileBME = &ManagedEntityDefinition{
 		Name:    "XdslSubcarrierMaskingUpstreamProfile",
-		ClassID: 109,
+		ClassID: XdslSubcarrierMaskingUpstreamProfileClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -73,8 +77,8 @@
 		),
 		AllowedAttributeMask: 0x8000,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: Uint64Field("UpstreamSubcarrierMask", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: Uint64Field(XdslSubcarrierMaskingUpstreamProfile_UpstreamSubcarrierMask, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 1),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/xdslxtu-cchannelperformancemonitoringhistorydata.go b/generated/xdslxtu-cchannelperformancemonitoringhistorydata.go
index 00e0827..64e1ec9 100644
--- a/generated/xdslxtu-cchannelperformancemonitoringhistorydata.go
+++ b/generated/xdslxtu-cchannelperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -81,10 +81,21 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const XdslXtuCChannelPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const XdslXtuCChannelPerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const XdslXtuCChannelPerformanceMonitoringHistoryData_CorrectedBlocks = "CorrectedBlocks"
+const XdslXtuCChannelPerformanceMonitoringHistoryData_UncorrectedBlocks = "UncorrectedBlocks"
+const XdslXtuCChannelPerformanceMonitoringHistoryData_TransmittedBlocks = "TransmittedBlocks"
+const XdslXtuCChannelPerformanceMonitoringHistoryData_ReceivedBlocks = "ReceivedBlocks"
+const XdslXtuCChannelPerformanceMonitoringHistoryData_CodeViolations = "CodeViolations"
+const XdslXtuCChannelPerformanceMonitoringHistoryData_ForwardErrorCorrections = "ForwardErrorCorrections"
+
 func init() {
 	xdslxtucchannelperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "XdslXtuCChannelPerformanceMonitoringHistoryData",
-		ClassID: 114,
+		ClassID: XdslXtuCChannelPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -94,15 +105,15 @@
 		),
 		AllowedAttributeMask: 0xff00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint32Field("CorrectedBlocks", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4: Uint32Field("UncorrectedBlocks", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5: Uint32Field("TransmittedBlocks", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6: Uint32Field("ReceivedBlocks", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7: Uint16Field("CodeViolations", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8: Uint16Field("ForwardErrorCorrections", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(XdslXtuCChannelPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: Uint16Field(XdslXtuCChannelPerformanceMonitoringHistoryData_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint32Field(XdslXtuCChannelPerformanceMonitoringHistoryData_CorrectedBlocks, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4: Uint32Field(XdslXtuCChannelPerformanceMonitoringHistoryData_UncorrectedBlocks, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5: Uint32Field(XdslXtuCChannelPerformanceMonitoringHistoryData_TransmittedBlocks, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6: Uint32Field(XdslXtuCChannelPerformanceMonitoringHistoryData_ReceivedBlocks, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7: Uint16Field(XdslXtuCChannelPerformanceMonitoringHistoryData_CodeViolations, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8: Uint16Field(XdslXtuCChannelPerformanceMonitoringHistoryData_ForwardErrorCorrections, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/xdslxtu-cperformancemonitoringhistorydata.go b/generated/xdslxtu-cperformancemonitoringhistorydata.go
index caa6f42..3436761 100644
--- a/generated/xdslxtu-cperformancemonitoringhistorydata.go
+++ b/generated/xdslxtu-cperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -121,25 +121,44 @@
 //			attribute counts are inhibited during unavailability - see clause 7.2.7.13 of [ITUT G.997.1].
 //			(R) (mandatory) (2-bytes)
 //
-//		Sos Success Count, Near End
-//			The SOS-SUCCESS-NE attribute is a count of the total number of successful SOS procedures
-//			initiated by the near-end xTU on the line during the accumulation period. Successful SOS is
-//			defined in clause-12.1.4 of [ITUT G.993.2]. (R) (optional) (2-bytes)
+//		Sos Success Count Near End
+//			SOS success count, near end: The SOS-SUCCESS-NE attribute is a count of the total number of
+//			successful SOS procedures initiated by the near-end xTU on the line during the accumulation
+//			period. Successful SOS is defined in clause-12.1.4 of [ITUT G.993.2]. (R) (optional) (2-bytes)
 //
-//		Sos Success Count, Far End
-//			The SOS-SUCCESS-FE attribute is a count of the total number of successful SOS procedures
-//			initiated by the far-end xTU on the line during the accumulation period. Successful SOS is
-//			defined in clause 12.1.4 of [ITUT-G.993.2]. (R) (optional) (2-bytes)
+//		Sos Success Count Far End
+//			SOS success count, far end: The SOS-SUCCESS-FE attribute is a count of the total number of
+//			successful SOS procedures initiated by the far-end xTU on the line during the accumulation
+//			period. Successful SOS is defined in clause 12.1.4 of [ITUT-G.993.2]. (R) (optional) (2-bytes)
 //
 type XdslXtuCPerformanceMonitoringHistoryData struct {
 	ManagedEntityDefinition
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const XdslXtuCPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const XdslXtuCPerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const XdslXtuCPerformanceMonitoringHistoryData_LossOfFrameSeconds = "LossOfFrameSeconds"
+const XdslXtuCPerformanceMonitoringHistoryData_LossOfSignalSeconds = "LossOfSignalSeconds"
+const XdslXtuCPerformanceMonitoringHistoryData_LossOfLinkSeconds = "LossOfLinkSeconds"
+const XdslXtuCPerformanceMonitoringHistoryData_LossOfPowerSeconds = "LossOfPowerSeconds"
+const XdslXtuCPerformanceMonitoringHistoryData_ErroredSecondsEs = "ErroredSecondsEs"
+const XdslXtuCPerformanceMonitoringHistoryData_SeverelyErroredSeconds = "SeverelyErroredSeconds"
+const XdslXtuCPerformanceMonitoringHistoryData_LineInitializations = "LineInitializations"
+const XdslXtuCPerformanceMonitoringHistoryData_FailedLineInitializations = "FailedLineInitializations"
+const XdslXtuCPerformanceMonitoringHistoryData_ShortInitializations = "ShortInitializations"
+const XdslXtuCPerformanceMonitoringHistoryData_FailedShortInitializations = "FailedShortInitializations"
+const XdslXtuCPerformanceMonitoringHistoryData_FecSeconds = "FecSeconds"
+const XdslXtuCPerformanceMonitoringHistoryData_UnavailableSeconds = "UnavailableSeconds"
+const XdslXtuCPerformanceMonitoringHistoryData_SosSuccessCountNearEnd = "SosSuccessCountNearEnd"
+const XdslXtuCPerformanceMonitoringHistoryData_SosSuccessCountFarEnd = "SosSuccessCountFarEnd"
+
 func init() {
 	xdslxtucperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "XdslXtuCPerformanceMonitoringHistoryData",
-		ClassID: 112,
+		ClassID: XdslXtuCPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -149,23 +168,23 @@
 		),
 		AllowedAttributeMask: 0xffff,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint16Field("LossOfFrameSeconds", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4:  Uint16Field("LossOfSignalSeconds", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  Uint16Field("LossOfLinkSeconds", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6:  Uint16Field("LossOfPowerSeconds", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  Uint16Field("ErroredSecondsEs", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8:  Uint16Field("SeverelyErroredSeconds", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
-			9:  Uint16Field("LineInitializations", CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
-			10: Uint16Field("FailedLineInitializations", CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
-			11: Uint16Field("ShortInitializations", CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, true, false, 11),
-			12: Uint16Field("FailedShortInitializations", CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, true, false, 12),
-			13: Uint16Field("FecSeconds", CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
-			14: Uint16Field("UnavailableSeconds", CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
-			15: Uint16Field("SosSuccessCount,NearEnd", CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, true, false, 15),
-			16: Uint16Field("SosSuccessCount,FarEnd", CounterAttributeType, 0x0001, 0, mapset.NewSetWith(Read), false, true, false, 16),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(XdslXtuCPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  Uint16Field(XdslXtuCPerformanceMonitoringHistoryData_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint16Field(XdslXtuCPerformanceMonitoringHistoryData_LossOfFrameSeconds, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4:  Uint16Field(XdslXtuCPerformanceMonitoringHistoryData_LossOfSignalSeconds, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  Uint16Field(XdslXtuCPerformanceMonitoringHistoryData_LossOfLinkSeconds, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6:  Uint16Field(XdslXtuCPerformanceMonitoringHistoryData_LossOfPowerSeconds, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  Uint16Field(XdslXtuCPerformanceMonitoringHistoryData_ErroredSecondsEs, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8:  Uint16Field(XdslXtuCPerformanceMonitoringHistoryData_SeverelyErroredSeconds, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			9:  Uint16Field(XdslXtuCPerformanceMonitoringHistoryData_LineInitializations, CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
+			10: Uint16Field(XdslXtuCPerformanceMonitoringHistoryData_FailedLineInitializations, CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
+			11: Uint16Field(XdslXtuCPerformanceMonitoringHistoryData_ShortInitializations, CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, true, false, 11),
+			12: Uint16Field(XdslXtuCPerformanceMonitoringHistoryData_FailedShortInitializations, CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, true, false, 12),
+			13: Uint16Field(XdslXtuCPerformanceMonitoringHistoryData_FecSeconds, CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, false, false, 13),
+			14: Uint16Field(XdslXtuCPerformanceMonitoringHistoryData_UnavailableSeconds, CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, false, false, 14),
+			15: Uint16Field(XdslXtuCPerformanceMonitoringHistoryData_SosSuccessCountNearEnd, CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, true, false, 15),
+			16: Uint16Field(XdslXtuCPerformanceMonitoringHistoryData_SosSuccessCountFarEnd, CounterAttributeType, 0x0001, 0, mapset.NewSetWith(Read), false, true, false, 16),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/xdslxtu-cperformancemonitoringhistorydatapart2.go b/generated/xdslxtu-cperformancemonitoringhistorydatapart2.go
index bc65164..1523591 100644
--- a/generated/xdslxtu-cperformancemonitoringhistorydatapart2.go
+++ b/generated/xdslxtu-cperformancemonitoringhistorydatapart2.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -73,10 +73,18 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const XdslXtuCPerformanceMonitoringHistoryDataPart2_IntervalEndTime = "IntervalEndTime"
+const XdslXtuCPerformanceMonitoringHistoryDataPart2_ThresholdData12Id = "ThresholdData12Id"
+const XdslXtuCPerformanceMonitoringHistoryDataPart2_LeftrDefectSeconds = "LeftrDefectSeconds"
+const XdslXtuCPerformanceMonitoringHistoryDataPart2_ErrorFreeBitsCounter = "ErrorFreeBitsCounter"
+const XdslXtuCPerformanceMonitoringHistoryDataPart2_MinimumErrorFreeThroughputMineftr = "MinimumErrorFreeThroughputMineftr"
+
 func init() {
 	xdslxtucperformancemonitoringhistorydatapart2BME = &ManagedEntityDefinition{
 		Name:    "XdslXtuCPerformanceMonitoringHistoryDataPart2",
-		ClassID: 408,
+		ClassID: XdslXtuCPerformanceMonitoringHistoryDataPart2ClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -86,12 +94,12 @@
 		),
 		AllowedAttributeMask: 0xf800,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint16Field("LeftrDefectSeconds", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4: Uint32Field("ErrorFreeBitsCounter", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5: Uint32Field("MinimumErrorFreeThroughputMineftr", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(XdslXtuCPerformanceMonitoringHistoryDataPart2_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: Uint16Field(XdslXtuCPerformanceMonitoringHistoryDataPart2_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint16Field(XdslXtuCPerformanceMonitoringHistoryDataPart2_LeftrDefectSeconds, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4: Uint32Field(XdslXtuCPerformanceMonitoringHistoryDataPart2_ErrorFreeBitsCounter, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5: Uint32Field(XdslXtuCPerformanceMonitoringHistoryDataPart2_MinimumErrorFreeThroughputMineftr, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/xdslxtu-rchannelperformancemonitoringhistorydata.go b/generated/xdslxtu-rchannelperformancemonitoringhistorydata.go
index d9602df..46f31f8 100644
--- a/generated/xdslxtu-rchannelperformancemonitoringhistorydata.go
+++ b/generated/xdslxtu-rchannelperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -85,10 +85,21 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const XdslXtuRChannelPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const XdslXtuRChannelPerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const XdslXtuRChannelPerformanceMonitoringHistoryData_CorrectedBlocks = "CorrectedBlocks"
+const XdslXtuRChannelPerformanceMonitoringHistoryData_UncorrectedBlocks = "UncorrectedBlocks"
+const XdslXtuRChannelPerformanceMonitoringHistoryData_TransmittedBlocks = "TransmittedBlocks"
+const XdslXtuRChannelPerformanceMonitoringHistoryData_ReceivedBlocks = "ReceivedBlocks"
+const XdslXtuRChannelPerformanceMonitoringHistoryData_CodeViolations = "CodeViolations"
+const XdslXtuRChannelPerformanceMonitoringHistoryData_ForwardErrorCorrections = "ForwardErrorCorrections"
+
 func init() {
 	xdslxturchannelperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "XdslXtuRChannelPerformanceMonitoringHistoryData",
-		ClassID: 115,
+		ClassID: XdslXtuRChannelPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -98,15 +109,15 @@
 		),
 		AllowedAttributeMask: 0xff00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint32Field("CorrectedBlocks", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4: Uint32Field("UncorrectedBlocks", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5: Uint32Field("TransmittedBlocks", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6: Uint32Field("ReceivedBlocks", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7: Uint16Field("CodeViolations", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8: Uint16Field("ForwardErrorCorrections", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(XdslXtuRChannelPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: Uint16Field(XdslXtuRChannelPerformanceMonitoringHistoryData_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint32Field(XdslXtuRChannelPerformanceMonitoringHistoryData_CorrectedBlocks, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4: Uint32Field(XdslXtuRChannelPerformanceMonitoringHistoryData_UncorrectedBlocks, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5: Uint32Field(XdslXtuRChannelPerformanceMonitoringHistoryData_TransmittedBlocks, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6: Uint32Field(XdslXtuRChannelPerformanceMonitoringHistoryData_ReceivedBlocks, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7: Uint16Field(XdslXtuRChannelPerformanceMonitoringHistoryData_CodeViolations, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8: Uint16Field(XdslXtuRChannelPerformanceMonitoringHistoryData_ForwardErrorCorrections, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/xdslxtu-rperformancemonitoringhistorydata.go b/generated/xdslxtu-rperformancemonitoringhistorydata.go
index a649da5..4a9266a 100644
--- a/generated/xdslxtu-rperformancemonitoringhistorydata.go
+++ b/generated/xdslxtu-rperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -117,10 +117,25 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const XdslXtuRPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const XdslXtuRPerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const XdslXtuRPerformanceMonitoringHistoryData_LossOfFrameSeconds = "LossOfFrameSeconds"
+const XdslXtuRPerformanceMonitoringHistoryData_LossOfSignalSeconds = "LossOfSignalSeconds"
+const XdslXtuRPerformanceMonitoringHistoryData_LossOfPowerSeconds = "LossOfPowerSeconds"
+const XdslXtuRPerformanceMonitoringHistoryData_ErroredSeconds = "ErroredSeconds"
+const XdslXtuRPerformanceMonitoringHistoryData_SeverelyErroredSeconds = "SeverelyErroredSeconds"
+const XdslXtuRPerformanceMonitoringHistoryData_FecSeconds = "FecSeconds"
+const XdslXtuRPerformanceMonitoringHistoryData_UnavailableSeconds = "UnavailableSeconds"
+const XdslXtuRPerformanceMonitoringHistoryData_LeftrDefectSeconds = "LeftrDefectSeconds"
+const XdslXtuRPerformanceMonitoringHistoryData_ErrorFreeBitsCounter = "ErrorFreeBitsCounter"
+const XdslXtuRPerformanceMonitoringHistoryData_MinimumErrorFreeThroughputMineftr = "MinimumErrorFreeThroughputMineftr"
+
 func init() {
 	xdslxturperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "XdslXtuRPerformanceMonitoringHistoryData",
-		ClassID: 113,
+		ClassID: XdslXtuRPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -130,19 +145,19 @@
 		),
 		AllowedAttributeMask: 0xfff0,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  Uint16Field("ThresholdData12Id", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint16Field("LossOfFrameSeconds", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
-			4:  Uint16Field("LossOfSignalSeconds", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
-			5:  Uint16Field("LossOfPowerSeconds", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
-			6:  Uint16Field("ErroredSeconds", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  Uint16Field("SeverelyErroredSeconds", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
-			8:  Uint16Field("FecSeconds", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
-			9:  Uint16Field("UnavailableSeconds", CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
-			10: Uint16Field("LeftrDefectSeconds", CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, true, false, 10),
-			11: Uint32Field("ErrorFreeBitsCounter", CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, true, false, 11),
-			12: Uint32Field("MinimumErrorFreeThroughputMineftr", CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, true, false, 12),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(XdslXtuRPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  Uint16Field(XdslXtuRPerformanceMonitoringHistoryData_ThresholdData12Id, UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint16Field(XdslXtuRPerformanceMonitoringHistoryData_LossOfFrameSeconds, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, false, false, 3),
+			4:  Uint16Field(XdslXtuRPerformanceMonitoringHistoryData_LossOfSignalSeconds, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, false, false, 4),
+			5:  Uint16Field(XdslXtuRPerformanceMonitoringHistoryData_LossOfPowerSeconds, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, false, false, 5),
+			6:  Uint16Field(XdslXtuRPerformanceMonitoringHistoryData_ErroredSeconds, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  Uint16Field(XdslXtuRPerformanceMonitoringHistoryData_SeverelyErroredSeconds, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, false, false, 7),
+			8:  Uint16Field(XdslXtuRPerformanceMonitoringHistoryData_FecSeconds, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, false, false, 8),
+			9:  Uint16Field(XdslXtuRPerformanceMonitoringHistoryData_UnavailableSeconds, CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
+			10: Uint16Field(XdslXtuRPerformanceMonitoringHistoryData_LeftrDefectSeconds, CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, true, false, 10),
+			11: Uint32Field(XdslXtuRPerformanceMonitoringHistoryData_ErrorFreeBitsCounter, CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, true, false, 11),
+			12: Uint32Field(XdslXtuRPerformanceMonitoringHistoryData_MinimumErrorFreeThroughputMineftr, CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, true, false, 12),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/xg-pondownstreammanagementperformancemonitoringhistorydata.go b/generated/xg-pondownstreammanagementperformancemonitoringhistorydata.go
index 3245441..56c4b26 100644
--- a/generated/xg-pondownstreammanagementperformancemonitoringhistorydata.go
+++ b/generated/xg-pondownstreammanagementperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -117,10 +117,29 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const XgPonDownstreamManagementPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const XgPonDownstreamManagementPerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const XgPonDownstreamManagementPerformanceMonitoringHistoryData_PloamMessageIntegrityCheckMicErrorCount = "PloamMessageIntegrityCheckMicErrorCount"
+const XgPonDownstreamManagementPerformanceMonitoringHistoryData_DownstreamPloamMessagesCount = "DownstreamPloamMessagesCount"
+const XgPonDownstreamManagementPerformanceMonitoringHistoryData_ProfileMessagesReceived = "ProfileMessagesReceived"
+const XgPonDownstreamManagementPerformanceMonitoringHistoryData_RangingTimeMessagesReceived = "RangingTimeMessagesReceived"
+const XgPonDownstreamManagementPerformanceMonitoringHistoryData_DeactivateOnuIdMessagesReceived = "DeactivateOnuIdMessagesReceived"
+const XgPonDownstreamManagementPerformanceMonitoringHistoryData_DisableSerialNumberMessagesReceived = "DisableSerialNumberMessagesReceived"
+const XgPonDownstreamManagementPerformanceMonitoringHistoryData_RequestRegistrationMessagesReceived = "RequestRegistrationMessagesReceived"
+const XgPonDownstreamManagementPerformanceMonitoringHistoryData_AssignAllocIdMessagesReceived = "AssignAllocIdMessagesReceived"
+const XgPonDownstreamManagementPerformanceMonitoringHistoryData_KeyControlMessagesReceived = "KeyControlMessagesReceived"
+const XgPonDownstreamManagementPerformanceMonitoringHistoryData_SleepAllowMessagesReceived = "SleepAllowMessagesReceived"
+const XgPonDownstreamManagementPerformanceMonitoringHistoryData_BaselineOmciMessagesReceivedCount = "BaselineOmciMessagesReceivedCount"
+const XgPonDownstreamManagementPerformanceMonitoringHistoryData_ExtendedOmciMessagesReceivedCount = "ExtendedOmciMessagesReceivedCount"
+const XgPonDownstreamManagementPerformanceMonitoringHistoryData_AssignOnuIdMessagesReceived = "AssignOnuIdMessagesReceived"
+const XgPonDownstreamManagementPerformanceMonitoringHistoryData_OmciMicErrorCount = "OmciMicErrorCount"
+
 func init() {
 	xgpondownstreammanagementperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "XgPonDownstreamManagementPerformanceMonitoringHistoryData",
-		ClassID: 345,
+		ClassID: XgPonDownstreamManagementPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -130,23 +149,23 @@
 		),
 		AllowedAttributeMask: 0xffff,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  Uint16Field("ThresholdData12Id", PointerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint32Field("PloamMessageIntegrityCheckMicErrorCount", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, true, false, 3),
-			4:  Uint32Field("DownstreamPloamMessagesCount", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, true, false, 4),
-			5:  Uint32Field("ProfileMessagesReceived", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, true, false, 5),
-			6:  Uint32Field("RangingTimeMessagesReceived", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  Uint32Field("DeactivateOnuIdMessagesReceived", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, true, false, 7),
-			8:  Uint32Field("DisableSerialNumberMessagesReceived", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, true, false, 8),
-			9:  Uint32Field("RequestRegistrationMessagesReceived", CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, true, false, 9),
-			10: Uint32Field("AssignAllocIdMessagesReceived", CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, true, false, 10),
-			11: Uint32Field("KeyControlMessagesReceived", CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, true, false, 11),
-			12: Uint32Field("SleepAllowMessagesReceived", CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, true, false, 12),
-			13: Uint32Field("BaselineOmciMessagesReceivedCount", CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, true, false, 13),
-			14: Uint32Field("ExtendedOmciMessagesReceivedCount", CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, true, false, 14),
-			15: Uint32Field("AssignOnuIdMessagesReceived", CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, true, false, 15),
-			16: Uint32Field("OmciMicErrorCount", CounterAttributeType, 0x0001, 0, mapset.NewSetWith(Read), false, true, false, 16),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(XgPonDownstreamManagementPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  Uint16Field(XgPonDownstreamManagementPerformanceMonitoringHistoryData_ThresholdData12Id, PointerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint32Field(XgPonDownstreamManagementPerformanceMonitoringHistoryData_PloamMessageIntegrityCheckMicErrorCount, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, true, false, 3),
+			4:  Uint32Field(XgPonDownstreamManagementPerformanceMonitoringHistoryData_DownstreamPloamMessagesCount, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, true, false, 4),
+			5:  Uint32Field(XgPonDownstreamManagementPerformanceMonitoringHistoryData_ProfileMessagesReceived, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, true, false, 5),
+			6:  Uint32Field(XgPonDownstreamManagementPerformanceMonitoringHistoryData_RangingTimeMessagesReceived, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  Uint32Field(XgPonDownstreamManagementPerformanceMonitoringHistoryData_DeactivateOnuIdMessagesReceived, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, true, false, 7),
+			8:  Uint32Field(XgPonDownstreamManagementPerformanceMonitoringHistoryData_DisableSerialNumberMessagesReceived, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, true, false, 8),
+			9:  Uint32Field(XgPonDownstreamManagementPerformanceMonitoringHistoryData_RequestRegistrationMessagesReceived, CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, true, false, 9),
+			10: Uint32Field(XgPonDownstreamManagementPerformanceMonitoringHistoryData_AssignAllocIdMessagesReceived, CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, true, false, 10),
+			11: Uint32Field(XgPonDownstreamManagementPerformanceMonitoringHistoryData_KeyControlMessagesReceived, CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, true, false, 11),
+			12: Uint32Field(XgPonDownstreamManagementPerformanceMonitoringHistoryData_SleepAllowMessagesReceived, CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, true, false, 12),
+			13: Uint32Field(XgPonDownstreamManagementPerformanceMonitoringHistoryData_BaselineOmciMessagesReceivedCount, CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, true, false, 13),
+			14: Uint32Field(XgPonDownstreamManagementPerformanceMonitoringHistoryData_ExtendedOmciMessagesReceivedCount, CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, true, false, 14),
+			15: Uint32Field(XgPonDownstreamManagementPerformanceMonitoringHistoryData_AssignOnuIdMessagesReceived, CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, true, false, 15),
+			16: Uint32Field(XgPonDownstreamManagementPerformanceMonitoringHistoryData_OmciMicErrorCount, CounterAttributeType, 0x0001, 0, mapset.NewSetWith(Read), false, true, false, 16),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/xg-pontcperformancemonitoringhistorydata.go b/generated/xg-pontcperformancemonitoringhistorydata.go
index 4c7a0f9..ba08f36 100644
--- a/generated/xg-pontcperformancemonitoringhistorydata.go
+++ b/generated/xg-pontcperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -123,10 +123,28 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const XgPonTcPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const XgPonTcPerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const XgPonTcPerformanceMonitoringHistoryData_PsbdHecErrorCount = "PsbdHecErrorCount"
+const XgPonTcPerformanceMonitoringHistoryData_XgtcHecErrorCount = "XgtcHecErrorCount"
+const XgPonTcPerformanceMonitoringHistoryData_UnknownProfileCount = "UnknownProfileCount"
+const XgPonTcPerformanceMonitoringHistoryData_TransmittedXgPonEncapsulationMethodXgemFrames = "TransmittedXgPonEncapsulationMethodXgemFrames"
+const XgPonTcPerformanceMonitoringHistoryData_FragmentXgemFrames = "FragmentXgemFrames"
+const XgPonTcPerformanceMonitoringHistoryData_XgemHecLostWordsCount = "XgemHecLostWordsCount"
+const XgPonTcPerformanceMonitoringHistoryData_XgemKeyErrors = "XgemKeyErrors"
+const XgPonTcPerformanceMonitoringHistoryData_XgemHecErrorCount = "XgemHecErrorCount"
+const XgPonTcPerformanceMonitoringHistoryData_TransmittedBytesInNonIdleXgemFrames = "TransmittedBytesInNonIdleXgemFrames"
+const XgPonTcPerformanceMonitoringHistoryData_ReceivedBytesInNonIdleXgemFrames = "ReceivedBytesInNonIdleXgemFrames"
+const XgPonTcPerformanceMonitoringHistoryData_LossOfDownstreamSynchronizationLodsEventCount = "LossOfDownstreamSynchronizationLodsEventCount"
+const XgPonTcPerformanceMonitoringHistoryData_LodsEventRestoredCount = "LodsEventRestoredCount"
+const XgPonTcPerformanceMonitoringHistoryData_OnuReactivationByLodsEvents = "OnuReactivationByLodsEvents"
+
 func init() {
 	xgpontcperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "XgPonTcPerformanceMonitoringHistoryData",
-		ClassID: 344,
+		ClassID: XgPonTcPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -136,22 +154,22 @@
 		),
 		AllowedAttributeMask: 0xfffe,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1:  ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2:  Uint16Field("ThresholdData12Id", PointerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3:  Uint32Field("PsbdHecErrorCount", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, true, false, 3),
-			4:  Uint32Field("XgtcHecErrorCount", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, true, false, 4),
-			5:  Uint32Field("UnknownProfileCount", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, true, false, 5),
-			6:  Uint32Field("TransmittedXgPonEncapsulationMethodXgemFrames", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
-			7:  Uint32Field("FragmentXgemFrames", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, true, false, 7),
-			8:  Uint32Field("XgemHecLostWordsCount", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, true, false, 8),
-			9:  Uint32Field("XgemKeyErrors", CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
-			10: Uint32Field("XgemHecErrorCount", CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
-			11: Uint64Field("TransmittedBytesInNonIdleXgemFrames", CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
-			12: Uint64Field("ReceivedBytesInNonIdleXgemFrames", CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, true, false, 12),
-			13: Uint32Field("LossOfDownstreamSynchronizationLodsEventCount", CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, true, false, 13),
-			14: Uint32Field("LodsEventRestoredCount", CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, true, false, 14),
-			15: Uint32Field("OnuReactivationByLodsEvents", CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, true, false, 15),
+			0:  Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1:  ByteField(XgPonTcPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2:  Uint16Field(XgPonTcPerformanceMonitoringHistoryData_ThresholdData12Id, PointerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3:  Uint32Field(XgPonTcPerformanceMonitoringHistoryData_PsbdHecErrorCount, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, true, false, 3),
+			4:  Uint32Field(XgPonTcPerformanceMonitoringHistoryData_XgtcHecErrorCount, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, true, false, 4),
+			5:  Uint32Field(XgPonTcPerformanceMonitoringHistoryData_UnknownProfileCount, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, true, false, 5),
+			6:  Uint32Field(XgPonTcPerformanceMonitoringHistoryData_TransmittedXgPonEncapsulationMethodXgemFrames, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, false, false, 6),
+			7:  Uint32Field(XgPonTcPerformanceMonitoringHistoryData_FragmentXgemFrames, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, true, false, 7),
+			8:  Uint32Field(XgPonTcPerformanceMonitoringHistoryData_XgemHecLostWordsCount, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, true, false, 8),
+			9:  Uint32Field(XgPonTcPerformanceMonitoringHistoryData_XgemKeyErrors, CounterAttributeType, 0x0080, 0, mapset.NewSetWith(Read), false, false, false, 9),
+			10: Uint32Field(XgPonTcPerformanceMonitoringHistoryData_XgemHecErrorCount, CounterAttributeType, 0x0040, 0, mapset.NewSetWith(Read), false, false, false, 10),
+			11: Uint64Field(XgPonTcPerformanceMonitoringHistoryData_TransmittedBytesInNonIdleXgemFrames, CounterAttributeType, 0x0020, 0, mapset.NewSetWith(Read), false, false, false, 11),
+			12: Uint64Field(XgPonTcPerformanceMonitoringHistoryData_ReceivedBytesInNonIdleXgemFrames, CounterAttributeType, 0x0010, 0, mapset.NewSetWith(Read), false, true, false, 12),
+			13: Uint32Field(XgPonTcPerformanceMonitoringHistoryData_LossOfDownstreamSynchronizationLodsEventCount, CounterAttributeType, 0x0008, 0, mapset.NewSetWith(Read), false, true, false, 13),
+			14: Uint32Field(XgPonTcPerformanceMonitoringHistoryData_LodsEventRestoredCount, CounterAttributeType, 0x0004, 0, mapset.NewSetWith(Read), false, true, false, 14),
+			15: Uint32Field(XgPonTcPerformanceMonitoringHistoryData_OnuReactivationByLodsEvents, CounterAttributeType, 0x0002, 0, mapset.NewSetWith(Read), false, true, false, 15),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/xg-ponupstreammanagementperformancemonitoringhistorydata.go b/generated/xg-ponupstreammanagementperformancemonitoringhistorydata.go
index 6b44c68..7f178d3 100644
--- a/generated/xg-ponupstreammanagementperformancemonitoringhistorydata.go
+++ b/generated/xg-ponupstreammanagementperformancemonitoringhistorydata.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -79,10 +79,21 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const XgPonUpstreamManagementPerformanceMonitoringHistoryData_IntervalEndTime = "IntervalEndTime"
+const XgPonUpstreamManagementPerformanceMonitoringHistoryData_ThresholdData12Id = "ThresholdData12Id"
+const XgPonUpstreamManagementPerformanceMonitoringHistoryData_UpstreamPloamMessageCount = "UpstreamPloamMessageCount"
+const XgPonUpstreamManagementPerformanceMonitoringHistoryData_SerialNumberOnuMessageCount = "SerialNumberOnuMessageCount"
+const XgPonUpstreamManagementPerformanceMonitoringHistoryData_RegistrationMessageCount = "RegistrationMessageCount"
+const XgPonUpstreamManagementPerformanceMonitoringHistoryData_KeyReportMessageCount = "KeyReportMessageCount"
+const XgPonUpstreamManagementPerformanceMonitoringHistoryData_AcknowledgeMessageCount = "AcknowledgeMessageCount"
+const XgPonUpstreamManagementPerformanceMonitoringHistoryData_SleepRequestMessageCount = "SleepRequestMessageCount"
+
 func init() {
 	xgponupstreammanagementperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
 		Name:    "XgPonUpstreamManagementPerformanceMonitoringHistoryData",
-		ClassID: 346,
+		ClassID: XgPonUpstreamManagementPerformanceMonitoringHistoryDataClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -92,15 +103,15 @@
 		),
 		AllowedAttributeMask: 0xff00,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: ByteField("IntervalEndTime", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
-			2: Uint16Field("ThresholdData12Id", PointerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
-			3: Uint32Field("UpstreamPloamMessageCount", CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, true, false, 3),
-			4: Uint32Field("SerialNumberOnuMessageCount", CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, true, false, 4),
-			5: Uint32Field("RegistrationMessageCount", CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, true, false, 5),
-			6: Uint32Field("KeyReportMessageCount", CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, true, false, 6),
-			7: Uint32Field("AcknowledgeMessageCount", CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, true, false, 7),
-			8: Uint32Field("SleepRequestMessageCount", CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, true, false, 8),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: ByteField(XgPonUpstreamManagementPerformanceMonitoringHistoryData_IntervalEndTime, UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read), false, false, false, 1),
+			2: Uint16Field(XgPonUpstreamManagementPerformanceMonitoringHistoryData_ThresholdData12Id, PointerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, SetByCreate, Write), false, false, false, 2),
+			3: Uint32Field(XgPonUpstreamManagementPerformanceMonitoringHistoryData_UpstreamPloamMessageCount, CounterAttributeType, 0x2000, 0, mapset.NewSetWith(Read), false, true, false, 3),
+			4: Uint32Field(XgPonUpstreamManagementPerformanceMonitoringHistoryData_SerialNumberOnuMessageCount, CounterAttributeType, 0x1000, 0, mapset.NewSetWith(Read), false, true, false, 4),
+			5: Uint32Field(XgPonUpstreamManagementPerformanceMonitoringHistoryData_RegistrationMessageCount, CounterAttributeType, 0x0800, 0, mapset.NewSetWith(Read), false, true, false, 5),
+			6: Uint32Field(XgPonUpstreamManagementPerformanceMonitoringHistoryData_KeyReportMessageCount, CounterAttributeType, 0x0400, 0, mapset.NewSetWith(Read), false, true, false, 6),
+			7: Uint32Field(XgPonUpstreamManagementPerformanceMonitoringHistoryData_AcknowledgeMessageCount, CounterAttributeType, 0x0200, 0, mapset.NewSetWith(Read), false, true, false, 7),
+			8: Uint32Field(XgPonUpstreamManagementPerformanceMonitoringHistoryData_SleepRequestMessageCount, CounterAttributeType, 0x0100, 0, mapset.NewSetWith(Read), false, true, false, 8),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
diff --git a/generated/xtudatagatheringconfiguration.go b/generated/xtudatagatheringconfiguration.go
index 33e78c5..154b288 100644
--- a/generated/xtudatagatheringconfiguration.go
+++ b/generated/xtudatagatheringconfiguration.go
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2018 - present.  Boling Consulting Solutions (bcsw.net)
  * Copyright 2020-present Open Networking Foundation
-
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
-
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
-
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -83,10 +83,18 @@
 	Attributes AttributeValueMap
 }
 
+// Attribute name constants
+
+const XtuDataGatheringConfiguration_LoggingDepthEventPercentagePerEventVtuOLoggingDepthEventPercentageOiTable = "LoggingDepthEventPercentagePerEventVtuOLoggingDepthEventPercentageOiTable"
+const XtuDataGatheringConfiguration_LoggingDepthEventPercentagePerEventVtuRLoggingDepthEventPercentageRiTable = "LoggingDepthEventPercentagePerEventVtuRLoggingDepthEventPercentageRiTable"
+const XtuDataGatheringConfiguration_LoggingDepthForVtuOReportingVtuRLoggingDepthReportingO = "LoggingDepthForVtuOReportingVtuRLoggingDepthReportingO"
+const XtuDataGatheringConfiguration_LoggingDepthForVtuRReportingVtuRLoggingDepthReportingR = "LoggingDepthForVtuRReportingVtuRLoggingDepthReportingR"
+const XtuDataGatheringConfiguration_LoggingDataReportNewerEventsFirstVtuRLoggingReportNewerFirst = "LoggingDataReportNewerEventsFirstVtuRLoggingReportNewerFirst"
+
 func init() {
 	xtudatagatheringconfigurationBME = &ManagedEntityDefinition{
 		Name:    "XtuDataGatheringConfiguration",
-		ClassID: 413,
+		ClassID: XtuDataGatheringConfigurationClassID,
 		MessageTypes: mapset.NewSetWith(
 			Create,
 			Delete,
@@ -97,12 +105,12 @@
 		),
 		AllowedAttributeMask: 0xf800,
 		AttributeDefinitions: AttributeDefinitionMap{
-			0: Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
-			1: TableField("LoggingDepthEventPercentagePerEventVtuOLoggingDepthEventPercentageOiTable", TableAttributeType, 0x8000, TableInfo{nil, 2}, mapset.NewSetWith(Read, Write), false, true, false, 1),
-			2: TableField("LoggingDepthEventPercentagePerEventVtuRLoggingDepthEventPercentageRiTable", TableAttributeType, 0x4000, TableInfo{nil, 2}, mapset.NewSetWith(Read, Write), false, true, false, 2),
-			3: Uint16Field("LoggingDepthForVtuOReportingVtuRLoggingDepthReportingO", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, true, false, 3),
-			4: Uint16Field("LoggingDepthForVtuRReportingVtuRLoggingDepthReportingR", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, true, false, 4),
-			5: ByteField("LoggingDataReportNewerEventsFirstVtuRLoggingReportNewerFirst", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, true, false, 5),
+			0: Uint16Field(ManagedEntityID, PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read, SetByCreate), false, false, false, 0),
+			1: TableField(XtuDataGatheringConfiguration_LoggingDepthEventPercentagePerEventVtuOLoggingDepthEventPercentageOiTable, TableAttributeType, 0x8000, TableInfo{nil, 2}, mapset.NewSetWith(Read, Write), false, true, false, 1),
+			2: TableField(XtuDataGatheringConfiguration_LoggingDepthEventPercentagePerEventVtuRLoggingDepthEventPercentageRiTable, TableAttributeType, 0x4000, TableInfo{nil, 2}, mapset.NewSetWith(Read, Write), false, true, false, 2),
+			3: Uint16Field(XtuDataGatheringConfiguration_LoggingDepthForVtuOReportingVtuRLoggingDepthReportingO, UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, true, false, 3),
+			4: Uint16Field(XtuDataGatheringConfiguration_LoggingDepthForVtuRReportingVtuRLoggingDepthReportingR, UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, true, false, 4),
+			5: ByteField(XtuDataGatheringConfiguration_LoggingDataReportNewerEventsFirstVtuRLoggingReportNewerFirst, UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, true, false, 5),
 		},
 		Access:  CreatedByOlt,
 		Support: UnknownSupport,
