[VOL-4397] Updating omci-lib-go to 2.1.2

Change-Id: I702e34440c96ae65d3cdf3f5f63a08b977ac1bc0
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/aal5performancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/aal5performancemonitoringhistorydata.go
new file mode 100644
index 0000000..50dd54a
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/aal5performancemonitoringhistorydata.go
@@ -0,0 +1,123 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// Aal5PerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity AAL5 performance monitoring history data
+const Aal5PerformanceMonitoringHistoryDataClassID = ClassID(18) // 0x0012
+
+var aal5performancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// Aal5PerformanceMonitoringHistoryData (Class ID: #18 / 0x0012)
+//	This ME collects PM data as a result of performing segmentation and reassembly (SAR) and
+//	convergence sublayer (CS) level protocol monitoring. Instances of this ME are created and
+//	deleted by the OLT.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of an IW VCC TP that represents AAL5
+//		functions.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the IW VCC TP. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 ME that
+//			contains PM threshold values. Since no threshold value attribute number exceeds 7, a threshold
+//			data 2 ME is optional. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Sum Of Invalid Cs Field Errors
+//			This attribute counts the sum of invalid CS field errors. For AAL type 5, this attribute is a
+//			single count of the number of CS PDUs discarded due to one of the following error conditions:
+//			invalid common part indicator (CPI), oversized received SDU, or length violation. (R)
+//			(mandatory) (4-bytes)
+//
+//		Crc Violations
+//			This attribute counts CRC violations detected on incoming SAR PDUs. (R) (mandatory) (4-bytes)
+//
+//		Reassembly Timer Expirations
+//			This attribute counts reassembly timer expirations. (R) (mandatory if reassembly timer is
+//			implemented) (4-bytes)
+//
+//		Buffer Overflows
+//			This attribute counts the number of times where there was not enough buffer space for a
+//			reassembled packet. (R) (mandatory) (4-bytes)
+//
+//		Encap Protocol Errors
+//			This attribute counts the number of times that [IETF RFC 2684] encapsulation protocol detected a
+//			bad header. (R) (mandatory) (4-bytes)
+//
+type Aal5PerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	aal5performancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "Aal5PerformanceMonitoringHistoryData",
+		ClassID: 18,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Invalid fields",
+			1: "CRC violation",
+			2: "Reassembly timer expirations",
+			3: "Buffer overflows",
+			4: "Encap protocol errors",
+		},
+	}
+}
+
+// NewAal5PerformanceMonitoringHistoryData (class ID 18) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewAal5PerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*aal5performancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/aal5profile.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/aal5profile.go
new file mode 100644
index 0000000..bbade42
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/aal5profile.go
@@ -0,0 +1,110 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// Aal5ProfileClassID is the 16-bit ID for the OMCI
+// Managed entity AAL5 profile
+const Aal5ProfileClassID = ClassID(16) // 0x0010
+
+var aal5profileBME *ManagedEntityDefinition
+
+// Aal5Profile (Class ID: #16 / 0x0010)
+//	This ME organizes data that describe the AAL type 5 processing functions of the ONU. It is used
+//	with the IW VCC TP ME.
+//
+//	This ME is created and deleted by the OLT.
+//
+//	Relationships
+//		An instance of this ME may be associated with zero or more instances of the IW VCC TP.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Max Cpcs Pdu Size
+//			This attribute specifies the maximum CPCS PDU size to be transmitted over the connection in both
+//			upstream and downstream directions. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Aal Mode
+//			This attribute specifies the AAL mode as follows.
+//
+//			0	Message assured
+//
+//			1	Message unassured
+//
+//			2	Streaming assured
+//
+//			3	Streaming non assured
+//
+//			(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Sscs Type
+//			This attribute specifies the SSCS type for the AAL. Valid values are as follows.
+//
+//			0	Null
+//
+//			1	Data SSCS based on SSCOP, assured operation
+//
+//			2	Data SSCS based on SSCOP, non-assured operation
+//
+//			3	Frame relay SSCS
+//
+//			(R,-W, setbycreate) (mandatory) (1-byte)
+//
+type Aal5Profile struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	aal5profileBME = &ManagedEntityDefinition{
+		Name:    "Aal5Profile",
+		ClassID: 16,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewAal5Profile (class ID 16) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewAal5Profile(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*aal5profileBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/ani-g.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/ani-g.go
new file mode 100644
index 0000000..0e13c5c
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/ani-g.go
@@ -0,0 +1,206 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// AniGClassID is the 16-bit ID for the OMCI
+// Managed entity ANI-G
+const AniGClassID = ClassID(263) // 0x0107
+
+var anigBME *ManagedEntityDefinition
+
+// AniG (Class ID: #263 / 0x0107)
+//	This ME organizes data associated with each access network interface supported by a GPON ONU.
+//	The ONU automatically creates one instance of this ME for each PON physical port.
+//
+//	Relationships
+//		An instance of this ME is associated with each instance of a physical PON interface.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Its value indicates the physical
+//			position of the PON interface. The first byte is the slot ID, defined in clause 9.1.5. The
+//			second byte is the port ID. (R) (mandatory) (2-bytes)
+//
+//		Sr Indication
+//			This Boolean attribute indicates the ONU's capability to report queue status for DBA. The value
+//			true means that status reporting is available for all TCONTs that are associated with the ANI.
+//			(R) (mandatory) (1-byte)
+//
+//		Total TCont Number
+//			This attribute indicates the total number of T-CONTs that can be supported on this ANI. (R)
+//			(mandatory) (2-bytes)
+//
+//		Gem Block Length
+//			This attribute specifies the queue occupancy reporting granularity for DBA, expressed in bytes.
+//			This attribute is meaningful only in ITUT G.984.x systems. (R, W) (mandatory) (2 bytes)
+//
+//			In ITU-T G.984 systems, the value set by the OLT is used by all TCONTs on this ANI. Upon ME
+//			instantiation, the ONU sets this attribute to 48. See [ITUT G.984.3] for further details.
+//
+//			In all other ITU-T PON systems, the unit for queue occupancy reporting is fixed in at 4-bytes by
+//			the respective TC layer specification.
+//
+//		Piggyback Dba Reporting
+//			This attribute indicates the ONU's piggyback DBA reporting format capabilities. [ITUT G.984.3]
+//			defines two possible piggyback reporting modes. For reporting mode 0, the single field is the
+//			entire report. For reporting mode 1, the DBA report is two fields long. Mode 0 is mandatory for
+//			ITU-T G.984 ONUs that support piggyback DBA reporting; mode 1 is optional. Subsequent PON
+//			specifications allows only one mode, which should be reported in this attribute as code point 0.
+//
+//			The following coding indicates the ONU's piggyback DBA reporting mode capabilities:
+//
+//			0	Mode 0 only
+//
+//			1	Modes 0 and 1
+//
+//			2	Deprecated
+//
+//			3	Deprecated
+//
+//			4	Piggyback DBA reporting not supported
+//
+//			(R) (mandatory) (1-byte)
+//
+//		Deprecated
+//			This attribute should be set to 0 by the ONU and ignored by the OLT. (R) (mandatory) (1-byte)
+//
+//		Signal Fail Threshold
+//			Signal fail (SF) threshold: This attribute specifies the downstream bit error rate (BER)
+//			threshold to detect the SF alarm. When this value is y, the BER threshold is 10-y. Valid values
+//			are 3..8. Upon ME instantiation, the ONU sets this attribute to 5. (R,-W) (mandatory) (1-byte)
+//
+//		Signal Degrade Threshold
+//			Signal degrade (SD) threshold: This attribute specifies the downstream BER threshold to detect
+//			the SD alarm. When this value is x, the BER threshold for SD is 10-x. Valid values are 4..10.
+//			The SD threshold must be lower than the SF threshold; i.e., x-> y. Upon ME instantiation, the
+//			ONU sets this attribute to 9. (R,-W) (mandatory) (1-byte)
+//
+//		Arc
+//			See clause A.1.4.3. (R,-W) (optional) (1-byte)
+//
+//		Arc Interval
+//			See clause A.1.4.3. (R,-W) (optional) (1-byte)
+//
+//		Optical Signal Level
+//			This attribute reports the current measurement of the total downstream optical signal level. Its
+//			value is a 2s complement integer referred to 1- mW (i.e., 1-dBm), with 0.002 dB granularity. (R)
+//			(optional) (2-bytes)
+//
+//		Lower Optical Threshold
+//			This attribute specifies the optical level the ONU uses to declare the downstream low received
+//			optical power alarm. Valid values are  -127 dBm (coded as 254) to 0 dBm (coded as 0) in 0.5 dB
+//			increments. The default value 0xFF selects the ONU's internal policy. (R,-W) (optional) (1-byte)
+//
+//		Upper Optical Threshold
+//			This attribute specifies the optical level the ONU uses to declare the downstream high received
+//			optical power alarm. Valid values are  -127 dBm (coded as 254) to 0 dBm (coded as 0) in 0.5 dB
+//			increments. The default value 0xFF selects the ONU's internal policy. (R,-W) (optional) (1-byte)
+//
+//		Onu Response Time
+//			This attribute indicates the ONU's actual response time. This attribute is in the range
+//			34..36-us. Although this attribute is expressed in nanoseconds, its accuracy is likely to be
+//			more coarse. Furthermore, the value may change from one activation cycle to the next. Valid
+//			values are:
+//
+//			0 (Null, function not supported)
+//
+//			34000 to 36000 (response time in nanoseconds)
+//
+//			All other values reserved
+//
+//			(R) (optional) (2-bytes)
+//
+//		Transmit Optical Level
+//			This attribute reports the current measurement of mean optical launch power. Its value is a 2s
+//			complement integer referred to 1-mW (i.e., 1-dBm), with 0.002 dB granularity. (R) (optional)
+//			(2-bytes)
+//
+//		Lower Transmit Power Threshold
+//			This attribute specifies the minimum mean optical launch power that the ONU uses to declare the
+//			low transmit optical power alarm. Its value is a 2s complement integer referred to 1-mW (i.e.,
+//			dBm), with 0.5-dB granularity. The default value -63.5 (0x81) selects the ONU's internal policy.
+//			(R,-W) (optional) (1-byte)
+//
+//		Upper Transmit Power Threshold
+//			This attribute specifies the maximum mean optical launch power that the ONU uses to declare the
+//			high transmit optical power alarm. Its value is a 2s complement integer referred to 1-mW (i.e.,
+//			dBm), with 0.5-dB granularity. The default value -63.5 (0x81) selects the ONU's internal policy.
+//			(R,-W) (optional) (1-byte)
+//
+type AniG struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	anigBME = &ManagedEntityDefinition{
+		Name:    "AniG",
+		ClassID: 263,
+		MessageTypes: mapset.NewSetWith(
+			Get,
+			Set,
+			Test,
+		),
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Low received optical power",
+			1: "High received optical power",
+			2: "SF",
+			3: "SD",
+			4: "Low transmit optical power",
+			5: "High transmit optical power",
+			6: "Laser bias current",
+		},
+	}
+}
+
+// NewAniG (class ID 263) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewAniG(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*anigBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/attribute.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/attribute.go
new file mode 100644
index 0000000..de20130
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/attribute.go
@@ -0,0 +1,836 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import (
+	"encoding/base64"
+	"encoding/binary"
+	"errors"
+	"fmt"
+	"reflect"
+	"sort"
+	"strings"
+
+	mapset "github.com/deckarep/golang-set"
+	"github.com/google/gopacket"
+)
+
+// Attribute types
+type AttributeType uint8
+
+const (
+	UnknownAttributeType         AttributeType = iota // Not known
+	OctetsAttributeType                               // Series of zero or more octets
+	StringAttributeType                               // Readable String
+	UnsignedIntegerAttributeType                      // Integer (0..max)
+	TableAttributeType                                // Table (of Octets)
+	SignedIntegerAttributeType                        // Signed integer, often expressed as 2's complement
+	PointerAttributeType                              // Managed Entity ID or pointer to a Managed instance
+	BitFieldAttributeType                             // Bitfield
+	EnumerationAttributeType                          // Fixed number of values (Unsigned Integers)
+	CounterAttributeType                              // Incrementing counter
+)
+
+// AttributeDefinitionMap is a map of attribute definitions with the attribute index (0..16)
+// as the key
+type AttributeDefinitionMap map[uint]AttributeDefinition
+
+// AttributeDefinition defines a single specific Managed Entity's attributes
+type AttributeDefinition struct {
+	Name          string
+	AttributeType AttributeType
+	Index         uint
+	Mask          uint16
+	DefValue      interface{}
+	Size          int        // Size of attribute in bytes. 0 indicates variable/unknown
+	Access        mapset.Set // AttributeAccess...
+	Constraint    func(interface{}) *ParamError
+	Avc           bool // If true, an AVC notification can occur for the attribute
+	Tca           bool // If true, a threshold crossing alert alarm notification can occur for the attribute
+	Optional      bool // If true, attribute is option, else mandatory
+	Deprecated    bool // If true, attribute is deprecated
+}
+
+// TableRows is used by the SetTable request/response
+type TableRows struct {
+	NumRows int    // Number of rows of 'AttributeDefinition.Size' length
+	Rows    []byte // 0..NumRows rows of attribute data of size 'AttributeDefinition.Size'
+}
+
+func (attr *AttributeDefinition) String() string {
+	return fmt.Sprintf("AttributeDefinition: %v (%v/%v): Size: %v, Default: %v, Access: %v",
+		attr.GetName(), attr.AttributeType, attr.GetIndex(), attr.GetSize(), attr.GetDefault(), attr.GetAccess())
+}
+
+// GetName returns the attribute's name
+func (attr AttributeDefinition) GetName() string { return attr.Name }
+
+// GetIndex returns the attribute index )0..16)
+func (attr AttributeDefinition) GetIndex() uint { return attr.Index }
+
+// GetDefault provides the default value for an attribute if not specified
+// during its creation
+func (attr AttributeDefinition) GetDefault() interface{} { return attr.DefValue }
+
+// GetSize returns the size of the attribute. For table attributes, the size is
+// the size of a single table.
+func (attr AttributeDefinition) GetSize() int { return attr.Size }
+
+// GetAccess provides the access information (Read, Write, ...)
+func (attr AttributeDefinition) GetAccess() mapset.Set { return attr.Access }
+
+// GetConstraints returns a function that can be called for the attribute
+// that will validate the value. An appropriate error is returned if the
+// constraint fails, otherwise nil is returned to indicate that the value
+// is valid.
+func (attr AttributeDefinition) GetConstraints() func(interface{}) *ParamError {
+	return attr.Constraint
+}
+
+// IsTableAttribute returns true if the attribute is a table
+func (attr AttributeDefinition) IsTableAttribute() bool {
+	return attr.AttributeType == TableAttributeType
+}
+
+// IsCounter returns true if the attribute is a counter (usually expressed as an
+// unsigned integer)
+func (attr AttributeDefinition) IsCounter() bool {
+	return attr.AttributeType == CounterAttributeType
+}
+
+// IsBitField returns true if the attribute is a bitfield
+func (attr AttributeDefinition) IsBitField() bool {
+	return attr.AttributeType == BitFieldAttributeType
+}
+
+// IsString returns true if the attribute is a string. Strings are typically encoded
+// into fixed length files and padded with 0's
+func (attr AttributeDefinition) IsString() bool {
+	return attr.AttributeType == StringAttributeType
+}
+
+// Decode takes a slice of bytes and converts them into a value appropriate for
+// the attribute, or returns an error on failure
+func (attr *AttributeDefinition) Decode(data []byte, df gopacket.DecodeFeedback, msgType byte) (interface{}, error) {
+	if attr.IsTableAttribute() {
+		value, err := attr.tableAttributeDecode(data, df, msgType)
+		if err != nil {
+			return nil, err
+		}
+		if attr.GetConstraints() != nil {
+			if omciErr := attr.GetConstraints()(value); omciErr != nil {
+				return nil, omciErr.GetError()
+			}
+		}
+		return value, nil
+	}
+	size := attr.GetSize()
+
+	if len(data) < size {
+		df.SetTruncated()
+		return nil, NewMessageTruncatedError("packet too small for field")
+	}
+	switch attr.AttributeType {
+	case StringAttributeType, OctetsAttributeType, UnknownAttributeType:
+		value := make([]byte, size)
+		copy(value, data[:size])
+		if attr.GetConstraints() != nil {
+			if omciErr := attr.GetConstraints()(value); omciErr != nil {
+				return nil, omciErr.GetError()
+			}
+		}
+		return value, nil
+
+	default:
+		switch attr.GetSize() {
+		default:
+			value := make([]byte, size)
+			copy(value, data[:size])
+			if attr.GetConstraints() != nil {
+				if omciErr := attr.GetConstraints()(value); omciErr != nil {
+					return nil, omciErr.GetError()
+				}
+			}
+			return value, nil
+		case 1:
+			value := data[0]
+			if attr.GetConstraints() != nil {
+				if omciErr := attr.GetConstraints()(value); omciErr != nil {
+					return nil, omciErr.GetError()
+				}
+			}
+			return value, nil
+		case 2:
+			value := binary.BigEndian.Uint16(data[0:2])
+			if attr.GetConstraints() != nil {
+				if omciErr := attr.GetConstraints()(value); omciErr != nil {
+					return nil, omciErr.GetError()
+				}
+			}
+			return value, nil
+		case 4:
+			value := binary.BigEndian.Uint32(data[0:4])
+			if attr.GetConstraints() != nil {
+				if omciErr := attr.GetConstraints()(value); omciErr != nil {
+					return nil, omciErr.GetError()
+				}
+			}
+			return value, nil
+		case 8:
+			value := binary.BigEndian.Uint64(data[0:8])
+			if attr.GetConstraints() != nil {
+				omciErr := attr.GetConstraints()(value)
+				if omciErr != nil {
+					return nil, omciErr.GetError()
+				}
+			}
+			return value, nil
+		}
+	}
+}
+
+// IOctetStream interface defines a way to convert a custom type to/from an octet
+// stream.
+type IOctetStream interface {
+	ToOctetString() ([]byte, error)
+	FromOctetString([]byte) (interface{}, error)
+}
+
+// InterfaceToOctets converts an attribute value to a string of octets
+func InterfaceToOctets(input interface{}) ([]byte, error) {
+	switch values := input.(type) {
+	case []byte:
+		return values, nil
+
+	case []uint16:
+		stream := make([]byte, 2*len(values))
+		for index, value := range values {
+			binary.BigEndian.PutUint16(stream[index*2:], value)
+		}
+		return stream, nil
+
+	case []uint32:
+		stream := make([]byte, 4*len(values))
+		for index, value := range values {
+			binary.BigEndian.PutUint32(stream[index*4:], value)
+		}
+		return stream, nil
+
+	case []uint64:
+		stream := make([]byte, 8*len(values))
+		for index, value := range values {
+			binary.BigEndian.PutUint64(stream[index*8:], value)
+		}
+		return stream, nil
+
+	case IOctetStream:
+		return values.ToOctetString()
+
+	default:
+		var typeName string
+		if t := reflect.TypeOf(input); t.Kind() == reflect.Ptr {
+			typeName = "*" + t.Elem().Name()
+		} else {
+			typeName = t.Name()
+		}
+		return nil, fmt.Errorf("unable to convert input to octet string: %v", typeName)
+	}
+}
+
+// SerializeTo takes an attribute value and converts it to a slice of bytes ready
+// for transmission
+func (attr *AttributeDefinition) SerializeTo(value interface{}, b gopacket.SerializeBuffer,
+	msgType byte, bytesAvailable int) (int, error) {
+	if attr.IsTableAttribute() {
+		return attr.tableAttributeSerializeTo(value, b, msgType, bytesAvailable)
+	}
+	if value == nil {
+		return 0, fmt.Errorf("attribute: %v is nil", attr.Name)
+	}
+	size := attr.GetSize()
+	if bytesAvailable < size {
+		return 0, NewMessageTruncatedError(fmt.Sprintf("not enough space for attribute: %v", attr.Name))
+	}
+	bytes, err := b.AppendBytes(size)
+	if err != nil {
+		return 0, err
+	}
+	switch attr.AttributeType {
+	case StringAttributeType, OctetsAttributeType, UnknownAttributeType:
+		byteStream, err := InterfaceToOctets(value)
+		if err != nil {
+			return 0, err
+		}
+		copy(bytes, byteStream)
+
+	default:
+		switch size {
+		default:
+			byteStream, err := InterfaceToOctets(value)
+			if err != nil {
+				return 0, err
+			}
+			copy(bytes, byteStream)
+		case 1:
+			switch value.(type) {
+			case int:
+				bytes[0] = byte(value.(int))
+			default:
+				bytes[0] = value.(byte)
+			}
+		case 2:
+			switch value.(type) {
+			case int:
+				binary.BigEndian.PutUint16(bytes, uint16(value.(int)))
+			default:
+				binary.BigEndian.PutUint16(bytes, value.(uint16))
+			}
+		case 4:
+			switch value.(type) {
+			case int:
+				binary.BigEndian.PutUint32(bytes, uint32(value.(int)))
+			default:
+				binary.BigEndian.PutUint32(bytes, value.(uint32))
+			}
+		case 8:
+			switch value.(type) {
+			case int:
+				binary.BigEndian.PutUint64(bytes, uint64(value.(int)))
+			default:
+				binary.BigEndian.PutUint64(bytes, value.(uint64))
+			}
+		}
+	}
+	return size, nil
+}
+
+// BufferToTableAttributes takes the reconstructed octet buffer transmitted for
+// a table attribute (over many GetNextResponses) and converts it into the desired
+// format for each table row
+func (attr *AttributeDefinition) BufferToTableAttributes(data []byte) (interface{}, error) {
+	// Source is network byte order octets. Convert to proper array of slices
+	rowSize := attr.GetSize()
+	dataSize := len(data)
+	index := 0
+
+	switch rowSize {
+	default:
+		value := make([][]byte, dataSize/rowSize)
+		for offset := 0; offset < dataSize; offset += rowSize {
+			value[index] = make([]byte, rowSize)
+			copy(value[index], data[offset:])
+			index++
+		}
+		return value, nil
+	case 1:
+		value := make([]byte, dataSize)
+		copy(value, data)
+		return value, nil
+	case 2:
+		value := make([]uint16, dataSize/2)
+		for offset := 0; offset < dataSize; offset += rowSize {
+			value[offset] = binary.BigEndian.Uint16(data[offset:])
+			index++
+		}
+		return value, nil
+	case 4:
+		value := make([]uint32, dataSize/4)
+		for offset := 0; offset < dataSize; offset += rowSize {
+			value[offset] = binary.BigEndian.Uint32(data[offset:])
+			index++
+		}
+		return value, nil
+	case 8:
+		value := make([]uint64, dataSize/8)
+		for offset := 0; offset < dataSize; offset += rowSize {
+			value[offset] = binary.BigEndian.Uint64(data[offset:])
+			index++
+		}
+		return value, nil
+	}
+}
+
+func (attr *AttributeDefinition) tableAttributeDecode(data []byte, df gopacket.DecodeFeedback, msgType byte) (interface{}, error) {
+	// Serialization of a table depends on the type of message. A
+	// Review of ITU-T G.988 shows that access on tables are
+	// either Read and/or Write, never Set-by-Create
+	switch msgType {
+	default:
+		return nil, fmt.Errorf("unsupported Message Type '%v' for table serialization", msgType)
+
+	case byte(Get) | AK: // Get Response
+		// Size
+		value := binary.BigEndian.Uint32(data[0:4])
+		return value, nil
+
+	case byte(Set) | AR: // Set Request
+		fallthrough
+
+	case byte(GetNext) | AK: // Get Next Response
+		// Block of data (octets) that need to be reassembled before conversion
+		// to table/row-data.  If table attribute is not explicitly given a value
+		// we have to assume the entire data buffer is the value. The receiver of
+		// this frame will need to trim off any addtional information at the end
+		// of the last frame sequence since they (and the ONU) are the only ones
+		// who know how long the data really is.
+		size := attr.GetSize()
+		if size != 0 && len(data) < attr.GetSize() {
+			df.SetTruncated()
+			return nil, NewMessageTruncatedError("packet too small for field")
+		}
+		if size == 0 {
+			return nil, NewProcessingError("table attributes with no size are not supported: %v", attr.Name)
+		}
+		return data, nil
+
+	case byte(SetTable) | AR: // Set Table Request
+		// SetTableRequestType will be composed of zero or more row of a fixed size (based on ME)
+		// and will be saved to a TableRow struct for the consumer's use
+		size := attr.GetSize()
+		if size == 0 {
+			return nil, NewProcessingError("table attributes with no size are not supported: %v", attr.Name)
+		}
+		if len(data)%size != 0 {
+			df.SetTruncated()
+			return nil, NewMessageTruncatedError("packet does not contain an integral number of rows")
+		}
+		if len(data) == 0 {
+			return TableRows{}, nil
+		}
+		rows := TableRows{
+			NumRows: len(data) / size,
+			Rows:    make([]byte, len(data)),
+		}
+		copy(rows.Rows, data)
+		return rows, nil
+	}
+}
+
+func (attr *AttributeDefinition) tableAttributeSerializeTo(value interface{}, b gopacket.SerializeBuffer, msgType byte,
+	bytesAvailable int) (int, error) {
+	// Serialization of a table depends on the type of message. A
+	// Review of ITU-T G.988 shows that access on tables are
+	// either Read and/or Write, never Set-by-Create
+	switch msgType {
+	default:
+		return 0, fmt.Errorf("unsupported Message Type '%v' for table serialization", msgType)
+
+	case byte(Get) | AK: // Get Response
+		// Size
+		if bytesAvailable < 4 {
+			return 0, NewMessageTruncatedError(fmt.Sprintf("not enough space for attribute: %v", attr.Name))
+		}
+		if dwordSize, ok := value.(uint32); ok {
+			bytes, err := b.AppendBytes(4)
+			if err != nil {
+				return 0, err
+			}
+			binary.BigEndian.PutUint32(bytes, dwordSize)
+			return 4, nil
+		}
+		return 0, errors.New("unexpected type for table serialization")
+
+	case byte(GetNext) | AK: // Get Next Response
+		// Values are already in network by order form
+		if data, ok := value.([]byte); ok {
+			if bytesAvailable < len(data) {
+				return 0, NewMessageTruncatedError(fmt.Sprintf("not enough space for attribute: %v", attr.Name))
+			}
+			bytes, err := b.AppendBytes(len(data))
+			if err != nil {
+				return 0, err
+			}
+			copy(bytes, data)
+			return len(data), nil
+		}
+		return 0, errors.New("unexpected type for table serialization")
+
+	case byte(Set) | AR: // Set Request
+		// TODO: For complex table types (such as extended vlan tagging config) create an
+		//       interface definition. Provide a switch type to look for that as well as for
+		//       value being a byte slice...  For now, just byte slice provided
+		break
+
+	case byte(SetTable) | AR: // Set Table Request
+		if rows, ok := value.(TableRows); ok {
+			size := attr.GetSize()
+			if size != 0 && len(rows.Rows)%size != 0 {
+				return 0, NewMessageTruncatedError("packet does not contain an integral number of rows")
+			}
+			if bytesAvailable < len(rows.Rows) {
+				return 0, NewMessageTruncatedError(fmt.Sprintf("not enough space for attribute: %v", attr.Name))
+			}
+			bytes, err := b.AppendBytes(len(rows.Rows))
+			if err != nil {
+				return 0, err
+			}
+			copy(bytes, rows.Rows)
+			return len(rows.Rows), nil
+		}
+		return 0, errors.New("unexpected type for table serialization")
+	}
+	size := attr.GetSize()
+	if bytesAvailable < size {
+		return 0, NewMessageTruncatedError(fmt.Sprintf("not enough space for attribute: %v", attr.Name))
+	}
+	bytes, err := b.AppendBytes(size)
+	if err != nil {
+		return 0, err
+	}
+	switch attr.GetSize() {
+	default:
+		copy(bytes, value.([]byte))
+	case 1:
+		switch value.(type) {
+		case int:
+			bytes[0] = byte(value.(int))
+		default:
+			bytes[0] = value.(byte)
+		}
+	case 2:
+		switch value.(type) {
+		case int:
+			binary.BigEndian.PutUint16(bytes, uint16(value.(int)))
+		default:
+			binary.BigEndian.PutUint16(bytes, value.(uint16))
+		}
+	case 4:
+		switch value.(type) {
+		case int:
+			binary.BigEndian.PutUint32(bytes, uint32(value.(int)))
+		default:
+			binary.BigEndian.PutUint32(bytes, value.(uint32))
+		}
+	case 8:
+		switch value.(type) {
+		case int:
+			binary.BigEndian.PutUint64(bytes, uint64(value.(int)))
+		default:
+			binary.BigEndian.PutUint64(bytes, value.(uint64))
+		}
+	}
+	return size, nil
+}
+
+// GetAttributeDefinitionByName searches the attribute definition map for the
+// attribute with the specified name (case insensitive)
+func GetAttributeDefinitionByName(attrMap AttributeDefinitionMap, name string) (*AttributeDefinition, error) {
+	nameLower := strings.ToLower(name)
+	for _, attrVal := range attrMap {
+		if nameLower == strings.ToLower(attrVal.GetName()) {
+			return &attrVal, nil
+		}
+	}
+	return nil, errors.New(fmt.Sprintf("attribute '%s' not found", name))
+}
+
+// GetAttributeDefinitionMapKeys is a convenience functions since we may need to
+// iterate a map in key index order. Maps in Go since v1.0 the iteration order
+// of maps have been randomized.
+func GetAttributeDefinitionMapKeys(attrMap AttributeDefinitionMap) []uint {
+	var keys []uint
+	for k := range attrMap {
+		keys = append(keys, k)
+	}
+	sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
+	return keys
+}
+
+// GetAttributeBitmap returns the attribute bitmask for a single attribute
+func GetAttributeBitmap(attrMap AttributeDefinitionMap, name string) (uint16, error) {
+	attrDef, err := GetAttributeDefinitionByName(attrMap, name)
+	if err != nil {
+		return 0, err
+	}
+	index := attrDef.GetIndex()
+	if index == 0 {
+		return 0, errors.New("managed entity ID should not be used in an attribute bitmask")
+	}
+	return uint16(1 << (16 - index)), nil
+}
+
+// GetAttributesBitmap is a convenience functions to scan a list of attributes
+// and return the bitmask that represents them
+func GetAttributesBitmap(attrMap AttributeDefinitionMap, attributes mapset.Set) (uint16, error) {
+	var mask uint16
+	for _, def := range attrMap {
+		if attributes.Contains(def.Name) {
+			mask |= def.Mask
+			attributes.Remove(def.Name)
+		}
+	}
+	if attributes.Cardinality() > 0 {
+		return 0, fmt.Errorf("unsupported attributes: %v", attributes)
+	}
+	return mask, nil
+}
+
+// GetAttributesValueMap returns the attribute value map with uninitialized values based
+// on the attribute bitmask
+func GetAttributesValueMap(attrDefs AttributeDefinitionMap, mask uint16, access mapset.Set) (AttributeValueMap, OmciErrors) {
+	attrMap := make(AttributeValueMap, 0)
+	for index, def := range attrDefs {
+		if index == 0 {
+			continue
+		}
+		checkMask := def.Mask
+		accessOk := access == nil || def.GetAccess().Intersect(access).Cardinality() > 0
+
+		if (mask&checkMask) != 0 && accessOk {
+			attrMap[def.GetName()] = nil
+			mask &= ^checkMask
+		}
+	}
+	if mask != 0 {
+		// Return map, but signaled failed attributes
+		return attrMap, NewParameterError(mask)
+	}
+	return attrMap, NewOmciSuccess()
+}
+
+///////////////////////////////////////////////////////////////////////
+// Packet definitions for attributes of various types/sizes
+func toOctets(str string) []byte {
+	data, err := base64.StdEncoding.DecodeString(str)
+	if err != nil {
+		panic(fmt.Sprintf("Invalid Base-64 string: '%v'", str))
+	}
+	return data
+}
+
+///////////////////////////////////////////////////////////////////////
+// Packet definitions for attributes of various types/sizes
+
+// ByteField returns an AttributeDefinition for an attribute that is encoded as a single
+// octet (8-bits).
+func ByteField(name string, attrType AttributeType, mask uint16, defVal uint8, access mapset.Set, avc bool,
+	optional bool, deprecated bool, index uint) AttributeDefinition {
+	return AttributeDefinition{
+		Name:          name,
+		AttributeType: attrType,
+		Mask:          mask,
+		Index:         index,
+		DefValue:      defVal,
+		Size:          1,
+		Access:        access,
+		Avc:           avc,
+		Optional:      optional,
+		Deprecated:    deprecated,
+	}
+}
+
+// Uint16Field returns an AttributeDefinition for an attribute that is encoded as two
+// octet (16-bits).
+func Uint16Field(name string, attrType AttributeType, mask uint16, defVal uint16, access mapset.Set, avc bool,
+	optional bool, deprecated bool, index uint) AttributeDefinition {
+	return AttributeDefinition{
+		Name:          name,
+		AttributeType: attrType,
+		Mask:          mask,
+		Index:         index,
+		DefValue:      defVal,
+		Size:          2,
+		Access:        access,
+		Avc:           avc,
+		Optional:      optional,
+		Deprecated:    deprecated,
+	}
+}
+
+// Uint32Field returns an AttributeDefinition for an attribute that is encoded as four
+// octet (32-bits).
+func Uint32Field(name string, attrType AttributeType, mask uint16, defVal uint32, access mapset.Set, avc bool,
+	optional bool, deprecated bool, index uint) AttributeDefinition {
+	return AttributeDefinition{
+		Name:          name,
+		AttributeType: attrType,
+		Mask:          mask,
+		Index:         index,
+		DefValue:      defVal,
+		Size:          4,
+		Access:        access,
+		Avc:           avc,
+		Optional:      optional,
+		Deprecated:    deprecated,
+	}
+}
+
+// Uint64Field returns an AttributeDefinition for an attribute that is encoded as eight
+// octet (64-bits).
+func Uint64Field(name string, attrType AttributeType, mask uint16, defVal uint64, access mapset.Set, avc bool,
+	optional bool, deprecated bool, index uint) AttributeDefinition {
+	return AttributeDefinition{
+		Name:          name,
+		AttributeType: attrType,
+		Mask:          mask,
+		Index:         index,
+		DefValue:      defVal,
+		Size:          8,
+		Access:        access,
+		Avc:           avc,
+		Optional:      optional,
+		Deprecated:    deprecated,
+	}
+}
+
+// MultiByteField returns an AttributeDefinition for an attribute that is encoded as multiple
+// octets that do not map into fields with a length that is 1, 2, 4, or 8 octets.
+func MultiByteField(name string, attrType AttributeType, mask uint16, size uint, defVal []byte, access mapset.Set, avc bool,
+	optional bool, deprecated bool, index uint) AttributeDefinition {
+	return AttributeDefinition{
+		Name:          name,
+		AttributeType: attrType,
+		Mask:          mask,
+		Index:         index,
+		DefValue:      defVal,
+		Size:          int(size),
+		Access:        access,
+		Avc:           avc,
+		Optional:      optional,
+		Deprecated:    deprecated,
+	}
+}
+
+// Notes on various OMCI ME Table attribute fields.  This comment will eventually be
+// removed once a good table solution is implemented.  These are not all the MEs with
+// table attributes, but probably ones I care about to support initially.
+//
+//   ME                     Notes
+//  --------------------------------------------------------------------------------------------
+//	Port-mapping package -> Combined Port table -> N * 25 sized rows (port (1) + ME(2) * 12)
+//  ONU Remote Debug     -> Reply table (N bytes)
+//  ONU3-G               -> Status snapshot recordtable M x N bytes
+//  MCAST Gem interworkTP-> IPv4 multicast adress table (12*n) (two 2 byte fields, two 4 byte fields)
+//                          IPv6 multicast adress table (24*n) (various sub-fields)
+//  L2 mcast gem TP      -> MCAST MAC addr filtering table (11 * n) (various sub-fields)
+//  MAC Bridge Port Filt -> MAC Filter table (8 * n) (3 fields, some are bits)      *** BITS ***
+//  MAC Bridge Port data -> Bridge Table (8*M) (vaius fields, some are bits)        *** BITS ***
+//  VLAN tagging filter  -> Rx Vlan tag op table (16 * n) Lots of bit fields        *** BITS ***
+//  MCAST operations profile
+//  MCAST Subscriber config info
+//  MCAST subscriber monitor
+//  OMCI                -> Two tables (N bytes and 2*N bytes)
+//  General pupose buffer   -> N bytes
+//  Enhanced security control (17 * N bytes), (16 * P Bytes) , (16 * Q bytes), and more...
+//
+// An early example of info to track
+
+// TableInfo is an early prototype of how to better model some tables that are
+// difficult to code.
+//
+// The Value member may be one of the following:
+//   nil    : Empty, no default, ...
+//   value  : A specific value that equates to one row, ie) 6  or toOctets("base64")
+//   array  : One or more rows of values.  [2]uint16{2, 3}
+type TableInfo struct {
+	Value interface{} // See comment above
+	Size  int         // Table Row Size
+}
+
+func (t *TableInfo) String() string {
+	return fmt.Sprintf("TableInfo: Size: %d, Value(s): %v", t.Size, t.Value)
+}
+
+// TableField is used to define an attribute that is a table
+func TableField(name string, attrType AttributeType, mask uint16, tableInfo TableInfo, access mapset.Set,
+	avc bool, optional bool, deprecated bool, index uint) AttributeDefinition {
+	return AttributeDefinition{
+		Name:          name,
+		AttributeType: attrType,
+		Mask:          mask,
+		Index:         index,
+		DefValue:      tableInfo.Value,
+		Size:          tableInfo.Size, //Number of elements
+		Access:        access,
+		Avc:           avc,
+		Optional:      optional,
+		Deprecated:    deprecated,
+	}
+}
+
+// UnknownField is currently not used and may be deprecated. Its original intent
+// was to be a placeholder during table attribute development
+func UnknownField(name string, mask uint16, size int, index uint) AttributeDefinition {
+	return AttributeDefinition{
+		Name:          name,
+		AttributeType: UnknownAttributeType, // Stored as octet string
+		Mask:          mask,
+		Index:         index,
+		DefValue:      nil,
+		Size:          size,
+		Access:        mapset.NewSet(Read, Write),
+		Avc:           false,
+		Optional:      false,
+		Deprecated:    false,
+	}
+}
+
+// AttributeValueMap maps an attribute (by name) to its value
+type AttributeValueMap map[string]interface{}
+
+// MergeInDefaultValues will examine the Manage Entity defaults (for non-SetByCreate attributes). This
+// function is called on a MIB Create request but is provide for external use in case it is needed
+// before the MIB entry is created
+func MergeInDefaultValues(classID ClassID, attributes AttributeValueMap) OmciErrors {
+	// Get default values for non-SetByCreate attributes
+	attrDefs, err := GetAttributesDefinitions(classID)
+	if err.StatusCode() != Success {
+		return err
+	} else if attributes == nil {
+		return NewProcessingError("Invalid (nil) Attribute Value Map referenced")
+	}
+	nilAllowed := mapset.NewSet(StringAttributeType, OctetsAttributeType, TableAttributeType)
+	for index, attrDef := range attrDefs {
+		if !attrDef.Access.Contains(SetByCreate) && index != 0 &&
+			(attrDef.DefValue != nil || nilAllowed.Contains(attrDef.AttributeType)) {
+			name := attrDef.GetName()
+			if existing, found := attributes[name]; !found || existing == nil {
+				attributes[name] = attrDef.DefValue
+			}
+		}
+	}
+	return err
+}
+
+// AttributeValueMapBufferSize will determine how much space is needed to encode all
+// of the attributes
+func AttributeValueMapBufferSize(classID ClassID, attributes AttributeValueMap, msgType uint8) (int, error) {
+	attrDefs, err := GetAttributesDefinitions(classID)
+	if err.StatusCode() != Success {
+		return 0, err
+	} else if attributes == nil {
+		return 0, NewProcessingError("Invalid (nil) Attribute Value Map referenced")
+	}
+	bufferSize := 0
+	isGetResponse := msgType == 0x29
+
+	for _, attrDef := range attrDefs {
+		if isGetResponse && attrDef.IsTableAttribute() {
+			bufferSize += 4
+		} else {
+			bufferSize += attrDef.GetSize()
+		}
+	}
+	return bufferSize, nil
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/attributeme.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/attributeme.go
new file mode 100644
index 0000000..43d73da
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/attributeme.go
@@ -0,0 +1,166 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// AttributeMeClassID is the 16-bit ID for the OMCI
+// Managed entity Attribute ME
+const AttributeMeClassID = ClassID(289) // 0x0121
+
+var attributemeBME *ManagedEntityDefinition
+
+// AttributeMe (Class ID: #289 / 0x0121)
+//	This ME describes a particular attribute type that is supported by the ONU. This ME is not
+//	included in an MIB upload.
+//
+//	Relationships
+//		One or more attribute entities are related to each ME entity. More than one ME entity can refer
+//		to a given attribute entity.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. This number is the same as the one
+//			that appears in the attributes table in the ME. Only one instance of each unique attribute need
+//			be created. The ONU can assign attribute numbering as it pleases, out of the pool of 64K IDs;
+//			however, it is suggested that the numbering follow a rational scheme to aid human readability.
+//			(R) (mandatory) (2-bytes)
+//
+//		Name
+//			This attribute contains a 25-byte mnemonic tag for the attribute. Strings shorter than 25-bytes
+//			are padded with null characters. (R) (mandatory) (25-bytes)
+//
+//		Size
+//			This attribute contains the size of the attribute, in bytes. The value 0 indicates that the
+//			attribute can have a variable/unknown size. (R) (mandatory) (2-bytes)
+//
+//		Access
+//			This attribute represents the OMCI access characteristics of the attribute. The following code
+//			points are defined.
+//
+//			1	Read
+//
+//			2	Write
+//
+//			3	Read, write
+//
+//			5	Read, setbycreate
+//
+//			6	Write, setbycreate
+//
+//			7	Read, write, setbycreate
+//
+//			(R) (mandatory) (1-byte)
+//
+//		Format
+//			This attribute represents the format of the attribute. The following code points are defined.
+//
+//			1	Pointer
+//
+//			2	Bit field
+//
+//			3	Signed integer
+//
+//			4	Unsigned integer
+//
+//			5	String
+//
+//			6	Enumeration (that is, a set of defined code points)
+//
+//			7	Table
+//
+//			(R) (mandatory) (1-byte)
+//
+//		Lower Limit
+//			This attribute provides the lowest value for the attribute. Valid for numeric types (pointer,
+//			signed integer, unsigned integer) only. For attributes smaller than 4-bytes, the desired numeric
+//			value is expressed in 4-byte representation (for example, the 2s complement 1-byte integer 0xFE
+//			is expressed as 0xFFFF-FFFE; the unsigned 1-byte integer 0xFE is expressed as 0x0000-00FE). (R)
+//			(mandatory) (4-bytes)
+//
+//		Upper Limit
+//			This attribute provides the highest value for the attribute. It has the same validity and format
+//			as the lower limit attribute. (R) (mandatory) (4-bytes)
+//
+//		Bit Field
+//			This attribute is a mask of the supported bits in a bit field attribute, valid for bit field
+//			type only. A 1 in any position signifies that its code point is supported, while 0 indicates
+//			that it is not supported. For bit fields smaller than 4-bytes, the attribute is aligned at the
+//			least significant end of the mask. (R) (mandatory) (4-bytes)
+//
+//		Code Points Table
+//			This attribute lists the code points supported by an enumerated attribute. (R) (mandatory) (2 *
+//			Q bytes, where Q is the number of entries in the table.)
+//
+//		Support
+//			This attribute represents the level of support of the attribute (same notation as the attribute
+//			of the same name in the ME). The following code points are defined.
+//
+//			1	Fully supported (supported as defined in this object)
+//
+//			2	Unsupported (OMCI returns an error code if accessed)
+//
+//			3	Partially supported (some aspects of attribute supported)
+//
+//			4	Ignored (OMCI supported, but underlying function is not)
+//
+//			(R) (mandatory) (1-byte)
+//
+type AttributeMe struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	attributemeBME = &ManagedEntityDefinition{
+		Name:    "AttributeMe",
+		ClassID: 289,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewAttributeMe (class ID 289) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewAttributeMe(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*attributemeBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/authenticationsecuritymethod.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/authenticationsecuritymethod.go
new file mode 100644
index 0000000..fd1eb1b
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/authenticationsecuritymethod.go
@@ -0,0 +1,116 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// AuthenticationSecurityMethodClassID is the 16-bit ID for the OMCI
+// Managed entity Authentication security method
+const AuthenticationSecurityMethodClassID = ClassID(148) // 0x0094
+
+var authenticationsecuritymethodBME *ManagedEntityDefinition
+
+// AuthenticationSecurityMethod (Class ID: #148 / 0x0094)
+//	The authentication security method defines the user ID and password configuration to establish a
+//	session between a client and a server. This object may be used in the role of the client or
+//	server. An instance of this ME is created by the OLT if authenticated communication is
+//	necessary.
+//
+//	Relationships
+//		One instance of this management entity may be associated with a network address ME. This ME may
+//		also be cited by other MEs that require authentication parameter management.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. The value 0xFFFF is reserved. (R,
+//			setbycreate) (mandatory) (2-bytes)
+//
+//		Validation Scheme
+//			This attribute specifies the validation scheme used when the ONU validates a challenge.
+//			Validation schemes are defined as follows.
+//
+//			0	Validation disabled
+//
+//			1	Validate using MD5 digest authentication as defined in [IETF-RFC-2617] (recommended)
+//
+//			3	Validate using basic authentication as defined in [IETF RFC 2617]
+//
+//			(R,-W) (mandatory) (1-byte)
+//
+//		Username 1
+//			This string attribute is the user name. If the string is shorter than 25-bytes, it must be null
+//			terminated (Note). (R,-W) (mandatory) (25-bytes)
+//
+//		Password
+//			This string attribute is the password. If the string is shorter than 25-bytes, it must be null
+//			terminated. (R,-W) (mandatory) (25-bytes)
+//
+//		Realm
+//			This string attribute specifies the realm used in digest authentication. If the string is
+//			shorter than 25-bytes, it must be null terminated. (R,-W) (mandatory) (25-bytes)
+//
+//		Username 2
+//			This string attribute allows for continuation of the user name beyond 25-characters (Note). Its
+//			default value is a null string. (R,-W) (optional) (25-bytes)
+//
+//			NOTE - The total username is the concatenation of the username 1 and username 2 attributes if
+//			and only if: a) username 1 comprises 25 non-null characters; b) username 2 is supported by the
+//			ONU; and c) username 2 contains a leading non-null character string. Otherwise, the total
+//			username is simply the value of the username 1 attribute.
+//
+type AuthenticationSecurityMethod struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	authenticationsecuritymethodBME = &ManagedEntityDefinition{
+		Name:    "AuthenticationSecurityMethod",
+		ClassID: 148,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewAuthenticationSecurityMethod (class ID 148) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewAuthenticationSecurityMethod(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*authenticationsecuritymethodBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/bbftr-069managementserver.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/bbftr-069managementserver.go
new file mode 100644
index 0000000..6aab0a9
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/bbftr-069managementserver.go
@@ -0,0 +1,100 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// BbfTr069ManagementServerClassID is the 16-bit ID for the OMCI
+// Managed entity BBF TR-069 management server
+const BbfTr069ManagementServerClassID = ClassID(340) // 0x0154
+
+var bbftr069managementserverBME *ManagedEntityDefinition
+
+// BbfTr069ManagementServer (Class ID: #340 / 0x0154)
+//	If functions within the ONU are managed by [BBF TR-069], this ME allows OMCI configuration of
+//	the autoconfiguration server (ACS) URL and related authentication information for an ACS
+//	connection initiated by the ONU. [BBF TR-069] supports other means to discover its ACS, so not
+//	all BBF-TR069-compatible ONUs necessarily support this ME. Furthermore, even if the ONU does
+//	support this ME, some operators may choose not to use it.
+//
+//	An ONU that supports OMCI configuration of ACS information automatically creates instances of
+//	this ME.
+//
+//	Relationships
+//		An instance of the BBF TR-069 management server ME exists for each instance of a BBF TR-069
+//		management domain within the ONU.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of a VEIP that links to the BBF TR-069 management domain. (R)
+//			(mandatory) (2-bytes)
+//
+//		Administrative State
+//			This attribute locks (1) and unlocks (0) the functions performed by this ME. When the
+//			administrative state is locked, the functions of this ME are disabled. BBF TR-069 connectivity
+//			to an ACS may be possible through means that do not depend on this ME. The default value of this
+//			attribute is locked. (R,W) (mandatory) (1-byte)
+//
+//		Acs Network Address
+//			This attribute points to an instance of a network address ME that contains URL and
+//			authentication information associated with the ACS URL. (R, W) (mandatory) (2 bytes)
+//
+//		Associated Tag
+//			This attribute is a TCI value for BBF TR-069 management traffic passing through the VEIP. A TCI,
+//			comprising user priority, CFI and VID, is represented by 2-bytes. The value 0xFFFF specifies
+//			that BBF TR-069 management traffic passes through the VEIP with neither a VLAN nor a priority
+//			tag. (R, W) (mandatory) (2-bytes)
+//
+type BbfTr069ManagementServer struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	bbftr069managementserverBME = &ManagedEntityDefinition{
+		Name:    "BbfTr069ManagementServer",
+		ClassID: 340,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewBbfTr069ManagementServer (class ID 340) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewBbfTr069ManagementServer(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*bbftr069managementserverBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/callcontrolperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/callcontrolperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..d901177
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/callcontrolperformancemonitoringhistorydata.go
@@ -0,0 +1,122 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// CallControlPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity Call control performance monitoring history data
+const CallControlPerformanceMonitoringHistoryDataClassID = ClassID(140) // 0x008c
+
+var callcontrolperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// CallControlPerformanceMonitoringHistoryData (Class ID: #140 / 0x008c)
+//	This ME collects PM data related to the call control channel. Instances of this ME are created
+//	and deleted by the OLT.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of the PPTP POTS UNI ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the PPTP POTS UNI. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 ME that
+//			contains PM threshold values. Since no threshold value attribute number exceeds 7, a threshold
+//			data 2 ME is optional. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Call Setup Failures
+//			This attribute counts call set-up failures. (R) (mandatory) (4-bytes)
+//
+//		Call Setup Timer
+//			This attribute is a high water-mark that records the longest duration of a single call set-up
+//			detected during this interval. Time is measured in milliseconds from the time an initial set-up
+//			was requested by the subscriber until the time at which a response was provided to the
+//			subscriber in the form of busy tone, audible ring tone, etc. (R) (mandatory) (4-bytes)
+//
+//		Call Terminate Failures
+//			This attribute counts the number of calls that were terminated with cause. (R) (mandatory)
+//			(4-bytes)
+//
+//		Analog Port Releases
+//			This attribute counts the number of analogue port releases without dialling detected (abandoned
+//			calls). (R) (mandatory) (4-bytes)
+//
+//		Analog Port Off_Hook Timer
+//			Analog port off-hook timer: This attribute is a high water-mark that records the longest period
+//			of a single off-hook detected on the analogue port. Time is measured in milliseconds. (R)
+//			(mandatory) (4-bytes)
+//
+type CallControlPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	callcontrolperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "CallControlPerformanceMonitoringHistoryData",
+		ClassID: 140,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "CCPM call set-up fail",
+			1: "CCPM set-up timeout",
+			2: "CCPM call terminate",
+			3: "CCPM port release with no dialling",
+			4: "CCPM port offhook timeout",
+		},
+	}
+}
+
+// NewCallControlPerformanceMonitoringHistoryData (class ID 140) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewCallControlPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*callcontrolperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/cardholder.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/cardholder.go
new file mode 100644
index 0000000..5b996c6
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/cardholder.go
@@ -0,0 +1,205 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// CardholderClassID is the 16-bit ID for the OMCI
+// Managed entity Cardholder
+const CardholderClassID = ClassID(5) // 0x0005
+
+var cardholderBME *ManagedEntityDefinition
+
+// Cardholder (Class ID: #5 / 0x0005)
+//	The cardholder represents the fixed equipment slot configuration of the ONU. Each cardholder can
+//	contain 0 or 1 circuit packs; the circuit pack models equipment information that can change over
+//	the lifetime of the ONU, e.g., through replacement.
+//
+//	One instance of this ME exists for each physical slot in an ONU that has pluggable circuit
+//	packs. One or more instances of this ME may also exist in an integrated ONU, to represent
+//	virtual slots. Instances of this ME are created automatically by the ONU, and the status
+//	attributes are populated according to data within the ONU itself.
+//
+//	Slot 0 is intended to be used only in an integrated ONU. If an integrated ONU is modelled with a
+//	universal slot 0, it is recommended that it does not contain additional (non-zero) virtual
+//	slots. A cardholder for virtual slot 0 is recommended.
+//
+//	There is potential for conflict in the semantics of the expected plug-in unit type, the expected
+//	port count and the expected equipment ID, both when the slot is not populated and when a new
+//	circuit pack is inserted. The expected plug-in unit type and the plug-in type mismatch alarm are
+//	mandatory, although plug-and-play/unknown (circuit pack type 255) may be used as a way to
+//	minimize their significance. It is recommended that an ONU deny the provisioning of inconsistent
+//	combinations of expected equipment attributes.
+//
+//	When a circuit pack is plugged into a cardholder or when a cardholder is pre-provisioned to
+//	expect a circuit pack of a given type, it may trigger the ONU to instantiate a number of MEs and
+//	update the values of others, depending on the circuit pack type. The ONU may also delete a
+//	variety of other MEs when a circuit pack is reprovisioned to not expect a circuit pack or to
+//	expect a circuit pack of a different type. These actions are described in the definitions of the
+//	various MEs.
+//
+//	Expected equipment ID and expected port count are alternate ways to trigger the same
+//	preprovisioning effects. These tools may be useful if an ONU is prepared to accept more than one
+//	circuit pack of a given type but with different port counts, or if a circuit pack is a hybrid
+//	that matches none of the types in Table 9.1.5-1, but whose identification (e.g., part number) is
+//	known.
+//
+//	Relationships
+//		An ONU may contain zero or more instances of the cardholder, each of which may contain an
+//		instance of the circuit pack ME. The slot ID, real or virtual, is a fundamental identification
+//		mechanism for MEs that bear some relationship to a physical location.
+//
+//	Attributes
+//		Managed Entity Id
+//			NOTE 1 - Some xDSL MEs use the two MSBs of the slot number for other purposes. An ONU that
+//			supports these services may have slot limitations or restrictions.
+//
+//			This attribute uniquely identifies each instance of this ME. The ONU sets the first byte of this
+//			2-byte identifier to:
+//
+//			0	if the ONU contains pluggable equipment modules
+//
+//			1	if the ONU is a single piece of integrated equipment.
+//
+//			The second byte of this identifier is the slot number. In integrated ONUs, this byte may be used
+//			as a virtual slot or set to 0 to indicate a universal pseudoslot.
+//
+//			Slot numbering schemes differ among vendors. It is only required that slot numbers be unique
+//			across the ONU. Up to 254 equipment slots are supported in the range 1..254 (Note 1). The value
+//			0 is reserved for possible use in an integrated ONU to indicate a universal pseudo-slot. The
+//			value 255 is also reserved. (R) (mandatory) (2-bytes)
+//
+//		Actual Plug In Unit Type
+//			Actual plugin unit type: This attribute is equal to the type of the circuit pack in the
+//			cardholder, or 0 if the cardholder is empty. When the cardholder is populated, this attribute is
+//			the same as the type attribute of the corresponding circuit pack ME. Circuit pack types are
+//			defined in Table 9.1.5-1. (R) (mandatory) (1-byte)
+//
+//			The three following attributes permit the OLT to specify its intentions for any future equipped
+//			configuration of a slot. Once some or all of these are set, the ONU can proceed to instantiate
+//			circuit pack and PPTP MEs, along with other predeterminable MEs, and allow the OLT to create
+//			related discretionary MEs, thereby supporting service pre-provisioning.
+//
+//		Expected Plug_In Unit Type
+//			Expected plug-in unit type: This attribute provisions the type of circuit pack for the slot. For
+//			type coding, see Table 9.1.5-1. The value 0 means that the cardholder is not provisioned to
+//			contain a circuit pack. The value 255 means that the cardholder is configured for plug-and-play.
+//			Upon ME instantiation, the ONU sets this attribute to 0. For integrated interfaces, this
+//			attribute may be used to represent the type of interface. (R,-W) (mandatory) (1-byte)
+//
+//		Expected Port Count
+//			This attribute permits the OLT to specify the number of ports it expects in a circuit pack.
+//			Prior to provisioning by the OLT, the ONU initializes this attribute to 0. (R,-W) (optional)
+//			(1-byte)
+//
+//		Expected Equipment Id
+//			This attribute provisions the specific type of expected circuit pack. This attribute applies
+//			only to ONUs that do not have integrated interfaces. In some environments, this may contain the
+//			expected CLEI code. Upon ME instantiation, the ONU sets this attribute to all spaces. (R,-W)
+//			(optional) (20-bytes)
+//
+//		Actual Equipment Id
+//			This attribute identifies the specific type of circuit pack, once it is installed. This
+//			attribute applies only to ONUs that do not have integrated interfaces. In some environments,
+//			this may include the CLEI code. When the slot is empty or the equipment ID is not known, this
+//			attribute should be set to all spaces. (R) (optional) (20-bytes)
+//
+//		Protection Profile Pointer
+//			This attribute specifies an equipment protection profile that may be associated with the
+//			cardholder. Its value is the least significant byte of the ME ID of the equipment protection
+//			profile with which it is associated, or 0 if equipment protection is not used. (R) (optional)
+//			(1-byte)
+//
+//		Invoke Protection Switch
+//			The OLT may use this attribute to control equipment protection switching. Code points have the
+//			following meaning when set by the OLT:
+//
+//			0	Release protection switch
+//
+//			1	Operate protection switch, protect cardholder unspecified
+//
+//			2	Operate protection switch, use first protect cardholder
+//
+//			3	Operate protection switch, use second protect cardholder
+//
+//			The ONU should deny attempts to switch to an unequipped, defective or already active protection
+//			cardholder.
+//
+//			Upon the get action from the OLT, this attribute should return the current value of the actual
+//			protection configuration. Code points are as defined above; the value 1 is never returned.
+//
+//			When circuit packs that support a PON interface (IF) function are switched, the response should
+//			be returned on the same PON that received the command. However, the OLT should also be prepared
+//			to accept a response on the redundant PON. (R,-W) (optional) (1-byte)
+//
+//		Alarm _ Reporting Control
+//			Alarm-reporting control (ARC): See clause A.1.4.3. (R,-W) (optional) (1-byte)
+//
+//		Arc Interval
+//			See clause A.1.4.3. (R,-W) (optional) (1-byte)
+//
+type Cardholder struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	cardholderBME = &ManagedEntityDefinition{
+		Name:    "Cardholder",
+		ClassID: 5,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Plug-in circuit pack missing",
+			1: "Plug-in type mismatch alarm",
+			2: "Improper card removal",
+			3: "Plug-in equipment ID mismatch alarm",
+			4: "Protection switch",
+		},
+	}
+}
+
+// NewCardholder (class ID 5) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewCardholder(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*cardholderBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/cesserviceprofile.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/cesserviceprofile.go
new file mode 100644
index 0000000..ad20760
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/cesserviceprofile.go
@@ -0,0 +1,101 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// CesServiceProfileClassID is the 16-bit ID for the OMCI
+// Managed entity CES service profile
+const CesServiceProfileClassID = ClassID(21) // 0x0015
+
+var cesserviceprofileBME *ManagedEntityDefinition
+
+// CesServiceProfile (Class ID: #21 / 0x0015)
+//	NOTE - In [ITU-T G.984.4], this ME is called a CES service profile-G.
+//
+//	An instance of this ME organizes data that describe the CES service functions of the ONU.
+//	Instances of this ME are created and deleted by the OLT.
+//
+//	Relationships
+//		An instance of this ME may be associated with zero or more instances of a GEM IW TP.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Ces Buffered Cdv Tolerance
+//			This attribute represents the duration of user data that must be buffered by the CES IW entity
+//			to offset packet delay variation. It is expressed in 10-us increments. 75 (750-vs) is suggested
+//			as a default value. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Channel Associated Signalling Cas
+//			Channel associated signalling (CAS): This attribute selects the signalling format. It applies to
+//			structured interfaces only. For unstructured interfaces, this value, if present, must be set to
+//			the default 0. Valid values are as follows.
+//
+//			0	Basic
+//
+//			1	E1 CAS
+//
+//			2	SF CAS
+//
+//			3	DS1 ESF CAS
+//
+//			4	J2 CAS
+//
+//			(R,-W, setbycreate) (optional) (1-byte)
+//
+type CesServiceProfile struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	cesserviceprofileBME = &ManagedEntityDefinition{
+		Name:    "CesServiceProfile",
+		ClassID: 21,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewCesServiceProfile (class ID 21) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewCesServiceProfile(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*cesserviceprofileBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/circuitpack.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/circuitpack.go
new file mode 100644
index 0000000..0fa6a4e
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/circuitpack.go
@@ -0,0 +1,212 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// CircuitPackClassID is the 16-bit ID for the OMCI
+// Managed entity Circuit pack
+const CircuitPackClassID = ClassID(6) // 0x0006
+
+var circuitpackBME *ManagedEntityDefinition
+
+// CircuitPack (Class ID: #6 / 0x0006)
+//	This ME models a real or virtual circuit pack that is equipped in a real or virtual ONU slot.
+//	For ONUs with integrated interfaces, this ME may be used to distinguish available types of
+//	interfaces (the port-mapping package is another way).
+//
+//	For ONUs with integrated interfaces, the ONU automatically creates an instance of this ME for
+//	each instance of the virtual cardholder ME. The ONU also creates an instance of this ME when the
+//	OLT provisions the cardholder to expect a circuit pack, i.e., when the OLT sets the expected
+//	plug-in unit type or equipment ID of the cardholder to a circuit pack type, as defined in Table
+//	9.1.5-1. The ONU also creates an instance of this ME when a circuit pack is installed in a
+//	cardholder whose expected plug-in unit type is 255-= plugandplay, and whose equipment ID is not
+//	provisioned. Finally, when the cardholder is provisioned for plug-and-play, an instance of this
+//	ME can be created at the request of the OLT.
+//
+//	The ONU deletes an instance of this ME when the OLT de-provisions the circuit pack (i.e., when
+//	the OLT sets the expected plug-in unit type or equipment ID of the cardholder to 0-= no LIM).
+//	The ONU also deletes an instance of this ME on request of the OLT if the expected plug-in unit
+//	type attribute of the corresponding cardholder is equal to 255, plug-and-play, and the expected
+//	equipment ID is blank (a string of all spaces). ONUs with integrated interfaces do not delete
+//	circuit pack instances.
+//
+//	NOTE - Creation and deletion by the OLT is retained for backward compatibility.
+//
+//	Relationships
+//		An instance of this ME is contained by an instance of the cardholder ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Its value is the same as that of
+//			the cardholder ME containing this circuit pack instance. (R, setbycreate if applicable)
+//			(mandatory) (2-bytes)
+//
+//		Type
+//			This attribute identifies the circuit pack type. This attribute is a code as defined in Table
+//			9.1.5-1. The value 255 means unknown or undefined, i.e., the inserted circuit pack is not
+//			recognized by the ONU or is not mapped to an entry in Table 9.1.5-1. In the latter case, the
+//			equipment ID attribute may contain inventory information. Upon autonomous ME instantiation, the
+//			ONU sets this attribute to 0 or to the type of the circuit pack that is physically present. (R,
+//			setbycreate if applicable) (mandatory) (1-byte)
+//
+//		Number Of Ports
+//			This attribute is the number of access ports on the circuit pack. If the port-mapping package is
+//			supported for this circuit pack, this attribute should be set to the total number of ports of
+//			all types. (R) (optional) (1-byte)
+//
+//		Serial Number
+//			The serial number is expected to be unique for each circuit pack, at least within the scope of
+//			the given vendor. Note that the serial number may contain the vendor ID or version number. For
+//			integrated ONUs, this value is identical to the value of the serial number attribute of the
+//			ONU-G ME. Upon creation in the absence of a physical circuit pack, this attribute comprises all
+//			spaces. (R) (mandatory) (8-bytes)
+//
+//		Version
+//			This attribute is a string that identifies the version of the circuit pack as defined by the
+//			vendor. The value 0 indicates that version information is not available or applicable. For
+//			integrated ONUs, this value is identical to the value of the version attribute of the ONU-G ME.
+//			Upon creation in the absence of a physical circuit pack, this attribute comprises all spaces.
+//			(R) (mandatory) (14-bytes)
+//
+//		Vendor Id
+//			This attribute identifies the vendor of the circuit pack. For ONUs with integrated interfaces,
+//			this value is identical to the value of the vendor ID attribute of the ONU-G ME. Upon creation
+//			in the absence of a physical circuit pack, this attribute comprises all spaces. (R) (optional)
+//			(4-bytes)
+//
+//		Administrative State
+//			This attribute locks (1) and unlocks (0) the functions performed by this ME. Administrative
+//			state is further described in clause A.1.6. (R,-W) (mandatory) (1-byte)
+//
+//		Operational State
+//			This attribute indicates whether the circuit pack is capable of performing its function. Valid
+//			values are enabled (0), disabled (1) and unknown (2). Pending completion of initialization and
+//			self-test on an installed circuit pack, the ONU sets this attribute to 2. (R) (optional)
+//			(1-byte)
+//
+//		Bridged Or Ip Ind
+//			This attribute specifies whether an Ethernet interface is bridged or derived from an IP router
+//			function.
+//
+//			0	Bridged
+//
+//			1	IP router
+//
+//			2	Both bridged and IP router functions
+//
+//			(R,-W) (optional, only applicable for circuit packs with Ethernet interfaces) (1-byte)
+//
+//		Equipment Id
+//			This attribute may be used to identify the vendor's specific type of circuit pack. In some
+//			environments, this attribute may include the CLEI code. Upon ME instantiation, the ONU sets this
+//			attribute to all spaces or to the equipment ID of the circuit pack that is physically present.
+//			(R) (optional) (20-bytes)
+//
+//		Card Configuration
+//			This attribute selects the appropriate configuration of configurable circuit packs. Table
+//			9.1.5-1 specifies two configurable card types: C-DS1/E1 (code 16), and C-DS1/E1/J1 (code 17).
+//			Values are indicated below for the allowed card types and configurations.
+//
+//			Upon autonomous instantiation, this attribute is set to 0. (R,-W, setbycreate if applicable)
+//			(mandatory for configurable circuit packs) (1-byte)
+//
+//		Total T_Cont Buffer Number
+//			Total T-CONT buffer number: This attribute reports the total number of T-CONT buffers associated
+//			with the circuit pack. Upon ME instantiation, the ONU sets this attribute to 0 or to the value
+//			supported by the physical circuit pack. (R) (mandatory for circuit packs that provide a traffic
+//			scheduler function) (1-byte)
+//
+//		Total Priority Queue Number
+//			This value reports the total number of priority queues associated with the circuit pack. Upon ME
+//			instantiation, the ONU sets the attribute to 0 or to the value supported by the physical circuit
+//			pack. (R) (mandatory for circuit packs that provide a traffic scheduler function) (1-byte)
+//
+//		Total Traffic Scheduler Number
+//			This value reports the total number of traffic schedulers associated with the circuit pack. The
+//			ONU supports null function, strict priority scheduling and WRR from the priority control, and
+//			guarantee of minimum rate control points of view. If the circuit pack has no traffic scheduler,
+//			this attribute should be absent or have the value 0. Upon ME instantiation, the ONU sets the
+//			attribute to 0 or to the value supported by the physical circuit pack. (R) (mandatory for
+//			circuit packs that provide a traffic scheduler function) (1-byte)
+//
+//		Power Shed Override
+//			This attribute allows ports to be excluded from the power shed control defined in clause 9.1.7.
+//			It is a bit mask that takes port 1 as the MSB; a bit value of 1 marks the corresponding port to
+//			override the power shed timer. For hardware that cannot shed power per port, this attribute is a
+//			slot override rather than a port override, with any non-zero port value causing the entire
+//			circuit pack to override power shedding. (R,-W) (optional) (4-bytes)
+//
+type CircuitPack struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	circuitpackBME = &ManagedEntityDefinition{
+		Name:    "CircuitPack",
+		ClassID: 6,
+		MessageTypes: mapset.NewSetWith(
+			Get,
+			Set,
+			Create,
+			Delete,
+		),
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Equipment alarm",
+			1: "Powering alarm",
+			2: "Self-test failure",
+			3: "Laser end of life",
+			4: "Temperature yellow",
+			5: "Temperature red",
+		},
+	}
+}
+
+// NewCircuitPack (class ID 6) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewCircuitPack(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*circuitpackBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/classaccess.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/classaccess.go
new file mode 100644
index 0000000..e38986f
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/classaccess.go
@@ -0,0 +1,39 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+// ClassAccess specifies whether the ONU, OLT, or both are responsible for creating
+// this Managed Entity
+type ClassAccess int
+
+const (
+	UnknownAccess = iota
+	CreatedByOnu
+	CreatedByOlt
+	CreatedByBoth
+)
+
+func (ca ClassAccess) String() string {
+	return [...]string{"Unknown", "Created by ONU", "Created by OLT", "Created by both OLT & ONU"}[ca]
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/classidmap.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/classidmap.go
new file mode 100644
index 0000000..eef38d7
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/classidmap.go
@@ -0,0 +1,299 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+// ManagedEntityInfo provides ManagedEntity information
+type ManagedEntityInfo struct {
+	New func(params ...ParamData) (*ManagedEntity, error)
+}
+
+// ParamData can be passed to the 'New' function to dictate how the returned
+// Managed Entity is created. You should supply either zero or one ParamData
+// structure to 'New'.
+//
+// If No ParamData is passed, the returned Managed Entity can only be used for
+// providing validation of other structures. This is commonly done in a packet
+// encoder/decoder to assist in that process.
+//
+// If One ParamData is passed, the returned Managed Entity will be initialized
+// with the given values/attributes and then validated. This is commonly done
+// when you wish to create an ME for transmission, storage or removal from a
+// persistent database, or some other similar purpose.
+//
+type ParamData struct {
+	EntityID   uint16
+	Attributes AttributeValueMap
+}
+
+// CreateME wraps a function that makes it a creator of a Managed Entity
+type CreateME func(params ...ParamData) (*ManagedEntity, OmciErrors)
+
+var classToManagedEntityMap map[ClassID]CreateME
+
+func init() {
+	// Create mapping of 16-bit managed entity class IDs to ME-type
+	classToManagedEntityMap = make(map[ClassID]CreateME, 193)
+
+	classToManagedEntityMap[2] = NewOnuData
+	classToManagedEntityMap[5] = NewCardholder
+	classToManagedEntityMap[6] = NewCircuitPack
+	classToManagedEntityMap[7] = NewSoftwareImage
+	classToManagedEntityMap[11] = NewPhysicalPathTerminationPointEthernetUni
+	classToManagedEntityMap[12] = NewPhysicalPathTerminationPointCesUni
+	classToManagedEntityMap[14] = NewInterworkingVccTerminationPoint
+	classToManagedEntityMap[16] = NewAal5Profile
+	classToManagedEntityMap[18] = NewAal5PerformanceMonitoringHistoryData
+	classToManagedEntityMap[21] = NewCesServiceProfile
+	classToManagedEntityMap[24] = NewEthernetPerformanceMonitoringHistoryData
+	classToManagedEntityMap[45] = NewMacBridgeServiceProfile
+	classToManagedEntityMap[46] = NewMacBridgeConfigurationData
+	classToManagedEntityMap[47] = NewMacBridgePortConfigurationData
+	classToManagedEntityMap[48] = NewMacBridgePortDesignationData
+	classToManagedEntityMap[49] = NewMacBridgePortFilterTableData
+	classToManagedEntityMap[50] = NewMacBridgePortBridgeTableData
+	classToManagedEntityMap[51] = NewMacBridgePerformanceMonitoringHistoryData
+	classToManagedEntityMap[52] = NewMacBridgePortPerformanceMonitoringHistoryData
+	classToManagedEntityMap[53] = NewPhysicalPathTerminationPointPotsUni
+	classToManagedEntityMap[58] = NewVoiceServiceProfile
+	classToManagedEntityMap[62] = NewVpPerformanceMonitoringHistoryData
+	classToManagedEntityMap[78] = NewVlanTaggingOperationConfigurationData
+	classToManagedEntityMap[79] = NewMacBridgePortFilterPreAssignTable
+	classToManagedEntityMap[82] = NewPhysicalPathTerminationPointVideoUni
+	classToManagedEntityMap[83] = NewPhysicalPathTerminationPointLctUni
+	classToManagedEntityMap[84] = NewVlanTaggingFilterData
+	classToManagedEntityMap[89] = NewEthernetPerformanceMonitoringHistoryData2
+	classToManagedEntityMap[90] = NewPhysicalPathTerminationPointVideoAni
+	classToManagedEntityMap[98] = NewPhysicalPathTerminationPointXdslUniPart1
+	classToManagedEntityMap[99] = NewPhysicalPathTerminationPointXdslUniPart2
+	classToManagedEntityMap[100] = NewXdslLineInventoryAndStatusDataPart1
+	classToManagedEntityMap[101] = NewXdslLineInventoryAndStatusDataPart2
+	classToManagedEntityMap[102] = NewXdslChannelDownstreamStatusData
+	classToManagedEntityMap[103] = NewXdslChannelUpstreamStatusData
+	classToManagedEntityMap[105] = NewXdslLineConfigurationProfilePart2
+	classToManagedEntityMap[106] = NewXdslLineConfigurationProfilePart3
+	classToManagedEntityMap[107] = NewXdslChannelConfigurationProfile
+	classToManagedEntityMap[108] = NewXdslSubcarrierMaskingDownstreamProfile
+	classToManagedEntityMap[109] = NewXdslSubcarrierMaskingUpstreamProfile
+	classToManagedEntityMap[110] = NewXdslPsdMaskProfile
+	classToManagedEntityMap[111] = NewXdslDownstreamRfiBandsProfile
+	classToManagedEntityMap[112] = NewXdslXtuCPerformanceMonitoringHistoryData
+	classToManagedEntityMap[113] = NewXdslXtuRPerformanceMonitoringHistoryData
+	classToManagedEntityMap[114] = NewXdslXtuCChannelPerformanceMonitoringHistoryData
+	classToManagedEntityMap[115] = NewXdslXtuRChannelPerformanceMonitoringHistoryData
+	classToManagedEntityMap[116] = NewTcAdaptorPerformanceMonitoringHistoryDataXdsl
+	classToManagedEntityMap[130] = NewIeee8021PMapperServiceProfile
+	classToManagedEntityMap[131] = NewOltG
+	classToManagedEntityMap[133] = NewOnuPowerShedding
+	classToManagedEntityMap[134] = NewIpHostConfigData
+	classToManagedEntityMap[135] = NewIpHostPerformanceMonitoringHistoryData
+	classToManagedEntityMap[136] = NewTcpUdpConfigData
+	classToManagedEntityMap[137] = NewNetworkAddress
+	classToManagedEntityMap[138] = NewVoipConfigData
+	classToManagedEntityMap[139] = NewVoipVoiceCtp
+	classToManagedEntityMap[140] = NewCallControlPerformanceMonitoringHistoryData
+	classToManagedEntityMap[141] = NewVoipLineStatus
+	classToManagedEntityMap[142] = NewVoipMediaProfile
+	classToManagedEntityMap[143] = NewRtpProfileData
+	classToManagedEntityMap[144] = NewRtpPerformanceMonitoringHistoryData
+	classToManagedEntityMap[145] = NewNetworkDialPlanTable
+	classToManagedEntityMap[146] = NewVoipApplicationServiceProfile
+	classToManagedEntityMap[147] = NewVoipFeatureAccessCodes
+	classToManagedEntityMap[148] = NewAuthenticationSecurityMethod
+	classToManagedEntityMap[149] = NewSipConfigPortal
+	classToManagedEntityMap[150] = NewSipAgentConfigData
+	classToManagedEntityMap[151] = NewSipAgentPerformanceMonitoringHistoryData
+	classToManagedEntityMap[152] = NewSipCallInitiationPerformanceMonitoringHistoryData
+	classToManagedEntityMap[153] = NewSipUserData
+	classToManagedEntityMap[154] = NewMgcConfigPortal
+	classToManagedEntityMap[155] = NewMgcConfigData
+	classToManagedEntityMap[156] = NewMgcPerformanceMonitoringHistoryData
+	classToManagedEntityMap[157] = NewLargeString
+	classToManagedEntityMap[158] = NewOnuRemoteDebug
+	classToManagedEntityMap[160] = NewEquipmentExtensionPackage
+	classToManagedEntityMap[162] = NewPhysicalPathTerminationPointMocaUni
+	classToManagedEntityMap[163] = NewMocaEthernetPerformanceMonitoringHistoryData
+	classToManagedEntityMap[164] = NewMocaInterfacePerformanceMonitoringHistoryData
+	classToManagedEntityMap[165] = NewVdsl2LineConfigurationExtensions
+	classToManagedEntityMap[168] = NewVdsl2LineInventoryAndStatusDataPart1
+	classToManagedEntityMap[169] = NewVdsl2LineInventoryAndStatusDataPart2
+	classToManagedEntityMap[170] = NewVdsl2LineInventoryAndStatusDataPart3
+	classToManagedEntityMap[171] = NewExtendedVlanTaggingOperationConfigurationData
+	classToManagedEntityMap[256] = NewOnuG
+	classToManagedEntityMap[257] = NewOnu2G
+	classToManagedEntityMap[262] = NewTCont
+	classToManagedEntityMap[263] = NewAniG
+	classToManagedEntityMap[264] = NewUniG
+	classToManagedEntityMap[266] = NewGemInterworkingTerminationPoint
+	classToManagedEntityMap[268] = NewGemPortNetworkCtp
+	classToManagedEntityMap[269] = NewVpNetworkCtp
+	classToManagedEntityMap[272] = NewGalEthernetProfile
+	classToManagedEntityMap[273] = NewThresholdData1
+	classToManagedEntityMap[274] = NewThresholdData2
+	classToManagedEntityMap[276] = NewGalEthernetPerformanceMonitoringHistoryData
+	classToManagedEntityMap[277] = NewPriorityQueue
+	classToManagedEntityMap[278] = NewTrafficScheduler
+	classToManagedEntityMap[280] = NewTrafficDescriptor
+	classToManagedEntityMap[281] = NewMulticastGemInterworkingTerminationPoint
+	classToManagedEntityMap[282] = NewPseudowireTerminationPoint
+	classToManagedEntityMap[283] = NewRtpPseudowireParameters
+	classToManagedEntityMap[284] = NewPseudowireMaintenanceProfile
+	classToManagedEntityMap[285] = NewPseudowirePerformanceMonitoringHistoryData
+	classToManagedEntityMap[286] = NewEthernetFlowTerminationPoint
+	classToManagedEntityMap[287] = NewOmci
+	classToManagedEntityMap[288] = NewManagedEntityMe
+	classToManagedEntityMap[289] = NewAttributeMe
+	classToManagedEntityMap[290] = NewDot1XPortExtensionPackage
+	classToManagedEntityMap[291] = NewDot1XConfigurationProfile
+	classToManagedEntityMap[292] = NewDot1XPerformanceMonitoringHistoryData
+	classToManagedEntityMap[293] = NewRadiusPerformanceMonitoringHistoryData
+	classToManagedEntityMap[296] = NewEthernetPerformanceMonitoringHistoryData3
+	classToManagedEntityMap[298] = NewDot1RateLimiter
+	classToManagedEntityMap[299] = NewDot1AgMaintenanceDomain
+	classToManagedEntityMap[300] = NewDot1AgMaintenanceAssociation
+	classToManagedEntityMap[301] = NewDot1AgDefaultMdLevel
+	classToManagedEntityMap[302] = NewDot1AgMep
+	classToManagedEntityMap[305] = NewDot1AgCfmStack
+	classToManagedEntityMap[306] = NewDot1AgChassisManagementInfo
+	classToManagedEntityMap[307] = NewOctetString
+	classToManagedEntityMap[308] = NewGeneralPurposeBuffer
+	classToManagedEntityMap[309] = NewMulticastOperationsProfile
+	classToManagedEntityMap[310] = NewMulticastSubscriberConfigInfo
+	classToManagedEntityMap[311] = NewMulticastSubscriberMonitor
+	classToManagedEntityMap[312] = NewFecPerformanceMonitoringHistoryData
+	classToManagedEntityMap[313] = NewReAniG
+	classToManagedEntityMap[314] = NewPhysicalPathTerminationPointReUni
+	classToManagedEntityMap[315] = NewReUpstreamAmplifier
+	classToManagedEntityMap[316] = NewReDownstreamAmplifier
+	classToManagedEntityMap[321] = NewEthernetFramePerformanceMonitoringHistoryDataDownstream
+	classToManagedEntityMap[322] = NewEthernetFramePerformanceMonitoringHistoryDataUpstream
+	classToManagedEntityMap[323] = NewVdsl2LineConfigurationExtensions2
+	classToManagedEntityMap[324] = NewXdslImpulseNoiseMonitorPerformanceMonitoringHistoryData
+	classToManagedEntityMap[325] = NewXdslLineInventoryAndStatusDataPart5
+	classToManagedEntityMap[328] = NewReCommonAmplifierParameters
+	classToManagedEntityMap[329] = NewVirtualEthernetInterfacePoint
+	classToManagedEntityMap[332] = NewEnhancedSecurityControl
+	classToManagedEntityMap[333] = NewMplsPseudowireTerminationPoint
+	classToManagedEntityMap[334] = NewEthernetFrameExtendedPm
+	classToManagedEntityMap[335] = NewSnmpConfigurationData
+	classToManagedEntityMap[336] = NewOnuDynamicPowerManagementControl
+	classToManagedEntityMap[337] = NewPwAtmConfigurationData
+	classToManagedEntityMap[338] = NewPwAtmPerformanceMonitoringHistoryData
+	classToManagedEntityMap[339] = NewPwEthernetConfigurationData
+	classToManagedEntityMap[340] = NewBbfTr069ManagementServer
+	classToManagedEntityMap[341] = NewGemPortNetworkCtpPerformanceMonitoringHistoryData
+	classToManagedEntityMap[342] = NewTcpUdpPerformanceMonitoringHistoryData
+	classToManagedEntityMap[343] = NewEnergyConsumptionPerformanceMonitoringHistoryData
+	classToManagedEntityMap[344] = NewXgPonTcPerformanceMonitoringHistoryData
+	classToManagedEntityMap[345] = NewXgPonDownstreamManagementPerformanceMonitoringHistoryData
+	classToManagedEntityMap[346] = NewXgPonUpstreamManagementPerformanceMonitoringHistoryData
+	classToManagedEntityMap[348] = NewMacBridgePortIcmpv6ProcessPreAssignTable
+	classToManagedEntityMap[400] = NewEthernetPseudowireParameters
+	classToManagedEntityMap[406] = NewEponDownstreamPerformanceMonitoringConfiguration
+	classToManagedEntityMap[407] = NewSipAgentConfigData2
+	classToManagedEntityMap[408] = NewXdslXtuCPerformanceMonitoringHistoryDataPart2
+	classToManagedEntityMap[410] = NewVdsl2LineConfigurationExtensions3
+	classToManagedEntityMap[412] = NewXdslChannelConfigurationProfilePart2
+	classToManagedEntityMap[413] = NewXtuDataGatheringConfiguration
+	classToManagedEntityMap[414] = NewXdslLineInventoryAndStatusDataPart8
+	classToManagedEntityMap[415] = NewVdsl2LineInventoryAndStatusDataPart4
+	classToManagedEntityMap[418] = NewEfmBondingGroup
+	classToManagedEntityMap[419] = NewEfmBondingLink
+	classToManagedEntityMap[420] = NewEfmBondingGroupPerformanceMonitoringHistoryData
+	classToManagedEntityMap[421] = NewEfmBondingGroupPerformanceMonitoringHistoryDataPart2
+	classToManagedEntityMap[422] = NewEfmBondingLinkPerformanceMonitoringHistoryData
+	classToManagedEntityMap[423] = NewEfmBondingPortPerformanceMonitoringHistoryData
+	classToManagedEntityMap[424] = NewEfmBondingPortPerformanceMonitoringHistoryDataPart2
+	classToManagedEntityMap[425] = NewEthernetFrameExtendedPm64Bit
+	classToManagedEntityMap[427] = NewPhysicalPathTerminationPointXdslUniPart3
+	classToManagedEntityMap[432] = NewFastChannelConfigurationProfile
+	classToManagedEntityMap[433] = NewFastDataPathConfigurationProfile
+	classToManagedEntityMap[434] = NewFastVectoringLineConfigurationExtensions
+	classToManagedEntityMap[436] = NewFastLineInventoryAndStatusDataPart2
+	classToManagedEntityMap[437] = NewFastXtuCPerformanceMonitoringHistoryData
+	classToManagedEntityMap[438] = NewFastXtuRPerformanceMonitoringHistoryData
+	classToManagedEntityMap[440] = NewTimeStatusMessage
+	classToManagedEntityMap[441] = NewOnu3G
+	classToManagedEntityMap[443] = NewTwdmChannelManagedEntity
+	classToManagedEntityMap[444] = NewTwdmChannelPhyLodsPerformanceMonitoringHistoryData
+	classToManagedEntityMap[445] = NewTwdmChannelXgemPerformanceMonitoringHistoryData
+	classToManagedEntityMap[446] = NewTwdmChannelPloamPerformanceMonitoringHistoryDataPart1
+	classToManagedEntityMap[447] = NewTwdmChannelPloamPerformanceMonitoringHistoryDataPart2
+	classToManagedEntityMap[448] = NewTwdmChannelPloamPerformanceMonitoringHistoryDataPart3
+	classToManagedEntityMap[449] = NewTwdmChannelTuningPerformanceMonitoringHistoryDataPart1
+	classToManagedEntityMap[450] = NewTwdmChannelTuningPerformanceMonitoringHistoryDataPart2
+	classToManagedEntityMap[451] = NewTwdmChannelTuningPerformanceMonitoringHistoryDataPart3
+	classToManagedEntityMap[452] = NewTwdmChannelOmciPerformanceMonitoringHistoryData
+	classToManagedEntityMap[453] = NewEnhancedFecPerformanceMonitoringHistoryData
+	classToManagedEntityMap[454] = NewEnhancedTcPerformanceMonitoringHistoryData
+	classToManagedEntityMap[456] = NewOnuManufacturingData
+	classToManagedEntityMap[457] = NewOnuTimeConfiguration
+}
+
+// LoadManagedEntityDefinition returns a function to create a Managed Entity for a specific
+// Managed Entity class ID
+func LoadManagedEntityDefinition(classID ClassID, params ...ParamData) (*ManagedEntity, OmciErrors) {
+	if newFunc, ok := classToManagedEntityMap[classID]; ok {
+		return newFunc(params...)
+	}
+	if IsVendorSpecificClassID(classID) {
+		return NewUnknownVendorSpecificME(classID, params...)
+	}
+	return NewUnknownG988ME(classID, params...)
+}
+
+// GetSupportedClassIDs returns an array of Managed Entity Class IDs supported
+func GetSupportedClassIDs() []ClassID {
+	supported := make([]ClassID, 0, len(classToManagedEntityMap))
+	for k := range classToManagedEntityMap {
+		supported = append(supported, k)
+	}
+	return supported
+}
+
+// GetAttributesDefinitions returns the attribute definition map for a specific class
+func GetAttributesDefinitions(classID ClassID) (AttributeDefinitionMap, OmciErrors) {
+	medef, err := LoadManagedEntityDefinition(classID)
+	if err.StatusCode() != Success {
+		return nil, err
+	}
+	return medef.GetAttributeDefinitions(), err
+}
+
+// IsVendorSpecificClassID returns true if the provided class ID is reserved in ITU-T G.988
+// for vendor specific functionality
+func IsVendorSpecificClassID(classID ClassID) bool {
+	// Values below are from Table 11.2.4-1 of ITU-T G.988 (11/2017)
+	return (ClassID(240) <= classID && classID <= ClassID(255)) ||
+		(ClassID(350) <= classID && classID <= ClassID(399)) ||
+		(ClassID(65280) <= classID && classID <= ClassID(65535))
+}
+
+// IsUnknownClassID returns true if the provided class ID is reserved in ITU-T G.988
+// for vendor specific functionality or is not decoded/supported by this library
+func IsUnknownClassID(classID ClassID) bool {
+	if _, err := LoadManagedEntityDefinition(classID); err != nil {
+		return false
+	}
+	return true
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/classsupport.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/classsupport.go
new file mode 100644
index 0000000..90b85d9
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/classsupport.go
@@ -0,0 +1,44 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+// ClassSupport specifies the support for this Managed Entity by the ONU
+type ClassSupport int
+
+const (
+	UnknownSupport     = iota
+	Supported          // Supported as defined by this object
+	Unsupported        // OMCI returns error code if accessed
+	PartiallySupported // some aspects of ME supported
+	Ignored            // OMCI supported, but underlying function is now
+
+	// The following two are specific unsupported Managed Entity Definitions
+	UnsupportedManagedEntity               // Unsupported ITU G.988 Class ID
+	UnsupportedVendorSpecificManagedEntity // Unsupported Vendor Specific Class ID
+)
+
+func (cs ClassSupport) String() string {
+	return [...]string{"Unknown", "Supported", "Unsupported", "Partially Supported", "Ignored",
+		"Unsupported", "Vendor Specific"}[cs]
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/decodeerror.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/decodeerror.go
new file mode 100644
index 0000000..4358c0c
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/decodeerror.go
@@ -0,0 +1,104 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import (
+	"errors"
+)
+
+// Custom Go Error messages for relaxed decode error signaling.
+//
+//   gopacket does not provide a way to easily perform relaxed decoding calls
+//   during the 'DecodeFromBytes' decoding of a layer. It does allow for an error
+//   code returned and this will be used to allow for relaxed decoding. If a
+//   particular message type decode can be relaxed, process it as relax and
+//   return an error derived from the RelaxedDecodeError below and check for
+//   it as appropriate.
+
+// IRelaxedDecodeError provides a base interface that can be used to derive
+// other decode specific errors that can be relaxed at the application's
+// discretion
+type IRelaxedDecodeError interface {
+	// Error interface, so if relaxed decode is not supported, this behaves as
+	// a normal error
+	Error() string
+	GetError() error
+
+	////////////////////////////////
+	// Relaxed error specific
+
+	// GetContents returns the octet payload specific to the error if it can be
+	// determined. Derived relaxed decode errors may provide more specific control
+	// and information
+	GetContents() []byte
+}
+
+type RelaxedDecodeError struct {
+	err      string
+	Contents []byte
+}
+
+func (e *RelaxedDecodeError) GetError() error {
+	return errors.New(e.err)
+}
+
+func (e *RelaxedDecodeError) Error() string {
+	return e.err
+}
+
+func (e *RelaxedDecodeError) GetContents() []byte {
+	return e.Contents
+}
+
+// UnknownAttributeDecodeError is used to convey unknown attributes found in
+// a received packet undergoing decode. These will always be trailing attributes
+// in packets and are often due to:
+//     o New versions of ITU G.988 being issued with an existing ME getting new
+//       attributes,
+//
+//     o An error in the code generated classes in this library where one or more
+//       attributes were missed, or
+//
+//     o An error in the OLT/ONU that serialized the message
+type UnknownAttributeDecodeError struct {
+	RelaxedDecodeError
+	AttributeMask uint16
+
+	EntityClass    ClassID // Set by first level handler of the error
+	EntityInstance uint16  // Set by first level handler of the error
+}
+
+func NewUnknownAttributeDecodeError(msg string, mask uint16, contents []byte) *UnknownAttributeDecodeError {
+	err := &UnknownAttributeDecodeError{
+		RelaxedDecodeError: RelaxedDecodeError{
+			err: msg,
+		},
+		AttributeMask: mask,
+	}
+	if contents != nil {
+		err.Contents = make([]byte, len(contents))
+		copy(err.Contents, contents)
+	}
+	return err
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/dot1agcfmstack.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/dot1agcfmstack.go
new file mode 100644
index 0000000..08dda58
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/dot1agcfmstack.go
@@ -0,0 +1,156 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// Dot1AgCfmStackClassID is the 16-bit ID for the OMCI
+// Managed entity Dot1ag CFM stack
+const Dot1AgCfmStackClassID = ClassID(305) // 0x0131
+
+var dot1agcfmstackBME *ManagedEntityDefinition
+
+// Dot1AgCfmStack (Class ID: #305 / 0x0131)
+//	This ME reports the maintenance status of a bridge port at any given time. An ONU that supports
+//	[IEEE 802.1ag] functionality automatically creates an instance of the dot1ag CFM stack ME for
+//	each MAC bridge or IEEE 802.1p mapper, depending on its provisioning model.
+//
+//	The dot1ag CFM stack also lists any VLANs and bridge ports against which configuration errors
+//	are currently identified. The ONU should reject operations that create configuration errors.
+//	However, these errors can arise because of operations on other MEs that are not necessarily
+//	possible to detect during CFM configuration.
+//
+//	Relationships
+//		An ONU that supports [IEEE 802.1ag] creates one instance of this ME for each MAC bridge or IEEE
+//		802.1p mapper, depending on its provisioning model. It should not create an instance for an
+//		IEEE-802.1p mapper that is associated with a MAC bridge.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies an instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the MAC bridge service profile ME or an IEEE 802.1p mapper
+//			ME. It is expected that an ONU will implement CFM on bridges or on IEEE-802.1p mappers, but not
+//			both. For precision, the reference is disambiguated by the value of the layer 2 type pointer
+//			attribute. (R) (mandatory) (2-bytes)
+//
+//		Layer 2 Type
+//			This attribute specifies whether the dot1ag CFM stack is associated with a MAC bridge service
+//			profile (value 0) or an IEEE 802.1p mapper (value 1). (R) (mandatory) (1-byte)
+//
+//		Mp Status Table
+//			This attribute is a list of entries, each entry reporting one aspect of the maintenance status
+//			of one port. If a port is associated with more than one CFM maintenance entity, each is
+//			represented as a separate item in this table attribute; a port that has no current maintenance
+//			functions is not represented in the table (so the table may be empty). Each entry is defined as
+//			follows.
+//
+//			Port ID: The ME ID of the MAC bridge port config data whose information is reported in this
+//			entry. If the layer 2 parent is an IEEE 802.1p mapper, a null pointer. (2-bytes)
+//
+//			Level: The level at which the reported maintenance function exists, 0..7. (1-byte)
+//
+//			Direction: The value 1 (down) or 2 (up). (1-byte)
+//
+//			VLAN ID: If this table entry reports a maintenance function associated with a VLAN, this field
+//			contains the value of the primary VLAN ID. If no VLAN is associated with this entry, this field
+//			contains the value 0. (2-bytes)
+//
+//			MD: A pointer to the associated dot1ag maintenance domain ME. If no MD is associated with this
+//			entry, a null pointer. (2-bytes)
+//
+//			MA: A pointer to the associated dot1ag maintenance association ME. If no MA is associated with
+//			this entry, a null pointer. (2-bytes)
+//
+//			MEP ID: If this table entry reports an MEP, this field contains the value of its MEP ID (range
+//			1..8191). If this table entry reports an MHF, this field contains the value 0. (2-bytes)
+//
+//			MAC address: The MAC address of the MP. (6-bytes)
+//
+//			(R) (mandatory) (18N bytes)
+//
+//		Configuration Error List Table
+//			This attribute is based on the [IEEE 802.1ag] configuration error list. It is a list of entries,
+//			each entry reporting a VLAN and a bridge port against which a configuration error has been
+//			detected. The table may be empty at any given time. Entries are defined as follows:
+//
+//			VLAN ID: If this table entry reports a maintenance function associated with a VLAN, this field
+//			contains the value of the VLAN ID in error. If no VLAN is associated with this entry, this field
+//			contains the value 0. (2-bytes)
+//
+//			Port ID: A pointer to the MAC bridge port config data whose information is reported in this
+//			entry. If the layer 2 parent is an IEEE 802.1p mapper, a null pointer. (2-bytes)
+//
+//			Detected configuration error: A bit mask with the following meanings. A list entry exists if and
+//			only if at least one of these bits is set. Definitions appear in clause 22.2.4 of [IEEE
+//			802.1ag]: (1-byte)
+//
+//			0x01	CFM leak. MA x is associated with a specific VID list, one or more of the VIDs in MA x can
+//			pass through the bridge port, no up MEP is configured for MA x on the bridge port, no down MEP
+//			is configured on any bridge port for MA x, and another MA y, at a higher MD level than MA x, and
+//			associated with at least one of the VID(s) also in MA x, does have an MEP configured on the
+//			bridge port.
+//
+//			0x02	Conflicting VIDs. MA x is associated with a specific VID list, an up MEP is configured on
+//			MA x on the bridge port, and another MA y, associated with at least one of the VID(s) also in MA
+//			x, and at the same MD level as MA x, also has an up MEP configured on some bridge port.
+//
+//			0x04	Excessive levels. The number of different MD levels at which maintenance domain
+//			intermediate points (MIPs) are to be created on this port exceeds the bridge's capabilities.
+//
+//			0x08	Overlapped levels. An MEP is created for one VID at one MD level, but an MEP is also
+//			configured on another VID at that MD level or higher, exceeding the bridge's capabilities.
+//
+//			(R) (mandatory) (5N bytes)
+//
+type Dot1AgCfmStack struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	dot1agcfmstackBME = &ManagedEntityDefinition{
+		Name:    "Dot1AgCfmStack",
+		ClassID: 305,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewDot1AgCfmStack (class ID 305) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewDot1AgCfmStack(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*dot1agcfmstackBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/dot1agchassis-managementinfo.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/dot1agchassis-managementinfo.go
new file mode 100644
index 0000000..75d0106
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/dot1agchassis-managementinfo.go
@@ -0,0 +1,148 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// Dot1AgChassisManagementInfoClassID is the 16-bit ID for the OMCI
+// Managed entity Dot1ag chassis-management info
+const Dot1AgChassisManagementInfoClassID = ClassID(306) // 0x0132
+
+var dot1agchassismanagementinfoBME *ManagedEntityDefinition
+
+// Dot1AgChassisManagementInfo (Class ID: #306 / 0x0132)
+//	This ME represents the system-level chassis ID or management address for [IEEE-802.1ag] CFM
+//	messages, and potentially for other IEEE 802-based functions. Although [IEEE-802.1AB] allows for
+//	several management addresses (synonyms in different formats or with granularity to the component
+//	level), [IEEE-802.1ag] does not provide for more than one. Nor is it expected that an ONU would
+//	require more than one format. Accordingly, this ME provides for only one.
+//
+//	According to sender ID permission attributes in several dot1ag MEs, transmitted IEEE-802.1ag CFM
+//	messages may include either or both of the chassis ID or management address
+//	fields.[IEEE-802.1ag] requires that CCMs do not exceed 128-bytes, of which 74 are separately
+//	allocated to other purposes; the sender ID TLV, if present, must accommodate this requirement.
+//	The chassis info and management info must fit, with a minimum of 4 additional overhead bytes,
+//	into the remaining 54-bytes. This limit is exploited in defining the maximum size of the ME's
+//	attributes.
+//
+//	Relationships
+//		If an ONU supports [IEEE 802.1ag] functionality, it automatically creates an instance of this
+//		ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies this ME. There is at most one instance, whose value is 0. (R)
+//			(mandatory) (2-bytes)
+//
+//		Chassis Id Length
+//			The length of the chassis ID attribute (not including the chassis ID subtype attribute), default
+//			value 0. (R,-W) (mandatory) (1-byte)
+//
+//		Chassis Id Subtype
+//			The format of the chassis ID attribute, default value 7, as defined in [IEEE 802.1AB]:
+//
+//			(R,-W) (mandatory) (1-byte)
+//
+//		Chassis ID Part 1
+//			These two attributes may be regarded as an octet string of up to 50-bytes whose length is given
+//			by the chassis ID length attribute and whose value is the left-justified chassis ID. (R,-W)
+//			(mandatory) (25-bytes-*-2 attributes)
+//
+//		Chassis ID Part 2
+//			These two attributes may be regarded as an octet string of up to 50-bytes whose length is given
+//			by the chassis ID length attribute and whose value is the left-justified chassis ID. (R,-W)
+//			(mandatory) (25-bytes-*-2 attributes)
+//
+//		Management Address Domain Length
+//			The length of the management address domain attribute, default value 0. If this attribute has
+//			the value 0, all of the other management address attributes are undefined. (R,-W) (mandatory)
+//			(1-byte)
+//
+//		Management Address Domain 1
+//			These two attributes may be regarded as an octet string of up to 50-bytes whose length is given
+//			by the management address domain length attribute and whose value is the left-justified
+//			management address domain. The attribute is coded as an object identifier (OID) as per [ITUT
+//			X.690], referring to a TDomain as defined in [IETF RFC 2579]. Typical domain values include
+//			snmpUDPDomain (from SNMPv2-TM [IETF RFC 3417]) and snmpIeee802Domain (from SNMP-IEEE 802-TM-MIB
+//			[IETF RFC 4789]). (R,-W) (mandatory) (25-bytes * 2 attributes)
+//
+//		Management Address Domain 2
+//			These two attributes may be regarded as an octet string of up to 50-bytes whose length is given
+//			by the management address domain length attribute and whose value is the left-justified
+//			management address domain. The attribute is coded as an object identifier (OID) as per [ITUT
+//			X.690], referring to a TDomain as defined in [IETF RFC 2579]. Typical domain values include
+//			snmpUDPDomain (from SNMPv2-TM [IETF RFC 3417]) and snmpIeee802Domain (from SNMP-IEEE 802-TM-MIB
+//			[IETF RFC 4789]). (R,-W) (mandatory) (25-bytes * 2 attributes)
+//
+//		Management Address Length
+//			The length of the management address attribute, default value 0. (R,-W) (mandatory) (1-byte)
+//
+//		Management Address 1
+//			These two attributes may be regarded as an octet string of up to 50-bytes whose length is given
+//			by the management address length attribute and whose value is the left-justified management
+//			address. (R,-W) (mandatory) (25-bytes * 2 attributes)
+//
+//		Management Address 2
+//			These two attributes may be regarded as an octet string of up to 50-bytes whose length is given
+//			by the management address length attribute and whose value is the left-justified management
+//			address. (R,-W) (mandatory) (25-bytes * 2 attributes)
+//
+type Dot1AgChassisManagementInfo struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	dot1agchassismanagementinfoBME = &ManagedEntityDefinition{
+		Name:    "Dot1AgChassisManagementInfo",
+		ClassID: 306,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewDot1AgChassisManagementInfo (class ID 306) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewDot1AgChassisManagementInfo(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*dot1agchassismanagementinfoBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/dot1agdefaultmdlevel.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/dot1agdefaultmdlevel.go
new file mode 100644
index 0000000..0d1e13e
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/dot1agdefaultmdlevel.go
@@ -0,0 +1,184 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// Dot1AgDefaultMdLevelClassID is the 16-bit ID for the OMCI
+// Managed entity Dot1ag default MD level
+const Dot1AgDefaultMdLevelClassID = ClassID(301) // 0x012d
+
+var dot1agdefaultmdlevelBME *ManagedEntityDefinition
+
+// Dot1AgDefaultMdLevel (Class ID: #301 / 0x012d)
+//	The collection of the functionality called a maintenance half-function (MHF) is not explicitly
+//	modelled as a ME by either [IEEE 802.1ag] or the OMCI. The ONU automatically creates MHFs
+//	according to parameters specified in a dot1ag MD or a dot1ag MA ME; the dot1ag default MD level
+//	ME catches the corner cases not covered by other MEs, specifically VLANs not included by any
+//	defined MA.
+//
+//	The dot1ag default MD level comprises a configurable table, each entry of which specifies
+//	default MHF functionality for some set of VLANs. Once a set of VLANs is defined, operations to
+//	different table entries or to dot1ag MAs that conflict with the set membership should be denied.
+//	In addition, catch-all attributes are defined to specify MHF functionality when there is no
+//	match to either a table entry or an MA.
+//
+//	Relationships
+//		An ONU that supports [IEEE 802.1ag] automatically creates one instance of this ME for each MAC
+//		bridge or IEEE 802.1p mapper, depending on the ONU's provisioning model. It should not create an
+//		instance for an IEEE 802.1p mapper that is associated with a MAC bridge.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies an instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the MAC bridge service profile ME or an IEEE 802.1p mapper
+//			ME. It is expected that an ONU will implement CFM on bridges or on IEEE-802.1p mappers, but not
+//			both, depending on its provisioning model. For precision, the reference is disambiguated by the
+//			value of the layer 2 type pointer attribute. (R) (mandatory) (2-bytes)
+//
+//		Layer 2 Type
+//			This attribute specifies whether the dot1ag default MD level ME is associated with a MAC bridge
+//			service profile (value 0) or an IEEE 802.1p mapper (value-1). (R) (mandatory) (1-byte)
+//
+//		Catchall Level
+//			This attribute ranges from 0..7 and specifies the MD level of MHFs created when no specific
+//			match is found. (R,-W) (mandatory) (1-byte)
+//
+//		Catchall Mhf Creation
+//			This attribute determines whether, when no more specific match is found, the bridge creates an
+//			MHF or not. This attribute is an enumeration with the following values:
+//
+//			1	None. The bridge does not create any MHFs. This is the default value.
+//
+//			2	Default. The bridge can create MHFs on this VID on any port through which the VID can pass.
+//
+//			3	Explicit. The bridge can create MHFs on this VID on any port through which the VID can pass,
+//			but only if an MEP exists at some lower maintenance level.
+//
+//			(R,-W) (mandatory) (1-byte)
+//
+//		Catchall Sender Id Permission
+//			This attribute determines the contents of the sender ID TLV included in CFM messages transmitted
+//			by MPs when no more specific match is found. This attribute is identical to that defined in the
+//			description of the dot1ag MD ME (i.e., excluding code point 5, defer). (R,-W) (mandatory)
+//			(1-byte)
+//
+//		Default Md Level Table
+//			Each entry is a vector of fields, indexed by primary VLAN ID.
+//
+//			Primary VLAN ID (2-bytes)
+//
+//			Table control: This field controls the meaning of a set operation. The 1-byte size of this field
+//			is included in get/get-next operations, but its value is undefined under get-next and should be
+//			ignored by the OLT. (1-byte)
+//
+//			1	Add record to table; overwrite existing record, if any.
+//
+//			2	Delete record from table.
+//
+//			3	Clear all entries from table. This action may affect service and should be used judiciously.
+//
+//			Other values are reserved.
+//
+//			Status: This Boolean field indicates whether this table entry is in effect (true) or whether
+//			(false) it has been overridden by the existence of an MA for the same VID and MD level as this
+//			table's entry, and on which an up MEP is defined. This attribute is read-only. Space should be
+//			allocated for it during set operations, but the value is not used. (1-byte)
+//
+//			Level: This field ranges from 0..7 and specifies the MD level of MHFs under the control of this
+//			instance of the dot1ag default MD level. The additional value 0xFF instructs the bridge to use
+//			the value in the catch-all level attribute. (1-byte)
+//
+//			MHF creation: This attribute determines whether the bridge creates an MHF or not, under
+//			circumstances defined in clause 22.2.3 of [IEEE 802.1ag]. This attribute is an enumeration with
+//			the following values. (1-byte)
+//
+//			1	None. No MHFs are created on this bridge for this MA.
+//
+//			2	Default. The bridge can create MHFs on this VID on any port through which the VID can pass.
+//
+//			3	Explicit. The bridge can create MHFs on this VID on any port through which the VID can pass,
+//			but only if an MEP exists at some lower maintenance level.
+//
+//			4	Defer. This value causes the ONU to use the setting of the catch-all MHF creation attribute.
+//			This is recommended to be the default value.
+//
+//			Sender ID permission: This attribute determines the contents of the sender ID TLV included in
+//			CFM messages transmitted by MPs controlled by this MA. (1-byte)
+//
+//			1	None: the sender ID TLV is not to be sent, default.
+//
+//			2	Chassis: the chassis ID length, chassis ID subtype, and chassis ID fields of the sender ID TLV
+//			are to be sent, but not the management address fields.
+//
+//			3	Manage: the management address fields of the sender ID TLV are to be sent, but the chassis ID
+//			length is to be transmitted with a 0 value, and the chassis ID subtype, and chassis ID fields
+//			are not to be sent.
+//
+//			4	ChassisManage: all chassis ID and management address fields are to be sent.
+//
+//			5	Defer: the contents of the sender ID TLV is determined by the catch-all sender ID permission
+//			attribute.
+//
+//			Associated VLANs list: This field comprises a list of up to 11 additional VLAN IDs associated
+//			with the primary VLAN, 2-bytes each. Unused placeholders, possibly including the entire field,
+//			are set to 0. (22-bytes)
+//
+//			(R,-W) (mandatory) (29-bytes * N entries)
+//
+type Dot1AgDefaultMdLevel struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	dot1agdefaultmdlevelBME = &ManagedEntityDefinition{
+		Name:    "Dot1AgDefaultMdLevel",
+		ClassID: 301,
+		MessageTypes: mapset.NewSetWith(
+			Get,
+			GetNext,
+			Set,
+			SetTable,
+		),
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewDot1AgDefaultMdLevel (class ID 301) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewDot1AgDefaultMdLevel(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*dot1agdefaultmdlevelBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/dot1agmaintenanceassociation.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/dot1agmaintenanceassociation.go
new file mode 100644
index 0000000..b898665
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/dot1agmaintenanceassociation.go
@@ -0,0 +1,169 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// Dot1AgMaintenanceAssociationClassID is the 16-bit ID for the OMCI
+// Managed entity Dot1ag maintenance association
+const Dot1AgMaintenanceAssociationClassID = ClassID(300) // 0x012c
+
+var dot1agmaintenanceassociationBME *ManagedEntityDefinition
+
+// Dot1AgMaintenanceAssociation (Class ID: #300 / 0x012c)
+//	This ME models an [IEEE 802.1ag] service defined on a bridge port. An MA is a set of endpoints
+//	on opposite sides of a network, all existing at a defined maintenance level. One of the
+//	endpoints resides on the local ONU; the others are understood to be configured in a consistent
+//	way on external equipment. [ITUT Y.1731] refers to the MA as a maintenance entity group (MEG).
+//
+//	An MA is created and deleted by the OLT.
+//
+//	Relationships
+//		Any number of MAs may be associated with a given MD, or may stand on their own without an MD.
+//		One or more MAs may be associated with a MAC bridge or an IEEE 802.1p mapper. An MA exists at
+//		one of eight possible maintenance levels.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies an instance of this ME. The values 0 and 0xFFFF are reserved.
+//			(R, setbycreate) (mandatory) (2-bytes)
+//
+//		Md Pointer
+//			This pointer specifies the dot1ag maintenance domain with which this MA is associated. A null
+//			pointer specifies that the MA is not associated with an MD. (R,-W, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Short Ma Name Format
+//			This attribute specifies one of several possible formats for the short MA name attribute. Value
+//			1, the primary VLAN ID, is recommended to be the default. (R,-W, setbycreate) (mandatory)
+//			(1-byte)
+//
+//		Short MA Name 1
+//			These two attributes may be regarded as an octet string whose value is the left-justified MA
+//			name. Because the MA name may or may not be a printable character string, an octet string is the
+//			appropriate representation. If the short MA name format specifies a character string, the string
+//			is null-terminated; otherwise, its length is determined by the short MA name format. Note that
+//			binary comparisons of the short MA name are made in other CFM state machines, so blanks,
+//			alphabetic case, etc., are significant. Also, note that the MD name and the MA short name must
+//			be packed (with additional bytes) into 48-byte CFM message headers. (R,-W) (mandatory) (25-bytes
+//			* 2 attributes)
+//
+//		Short MA Name 2
+//			These two attributes may be regarded as an octet string whose value is the left-justified MA
+//			name. Because the MA name may or may not be a printable character string, an octet string is the
+//			appropriate representation. If the short MA name format specifies a character string, the string
+//			is null-terminated; otherwise, its length is determined by the short MA name format. Note that
+//			binary comparisons of the short MA name are made in other CFM state machines, so blanks,
+//			alphabetic case, etc., are significant. Also, note that the MD name and the MA short name must
+//			be packed (with additional bytes) into 48-byte CFM message headers. (R,-W) (mandatory) (25-bytes
+//			* 2 attributes)
+//
+//		Continuity Check Message Ccm Interval
+//			3:	100 ms
+//
+//			4:	1 s
+//
+//			5:	10 s
+//
+//			6:	1 min
+//
+//			7:	10 min
+//
+//			Short intervals should be used judiciously, as they can interfere with the network's ability to
+//			handle subscriber traffic. The recommended value is 1-s. (R,-W, setbycreate) (mandatory)
+//			(1-byte)
+//
+//			Continuity check message (CCM) interval: If CCMs are enabled on an MEP, the CCM interval
+//			attribute specifies the rate at which they are generated. The MEP also expects to receive CCMs
+//			from each of the other MEPs in its CC database at this rate.
+//
+//			0:	CCM transmission disabled
+//
+//			1:	3.33 ms
+//
+//			2:	10 ms
+//
+//		Associated Vlans
+//			This attribute is a list of up to 12 VLAN IDs with which this MA is associated. Once a set of
+//			VLANs is defined, the ONU should deny operations to other dot1ag MAs or dot1ag default MD level
+//			entries that conflict with the set membership. The all-zeros value indicates that this MA is not
+//			associated with any VLANs. Assuming that the attribute is not 0, the first entry is understood
+//			to be the primary VLAN. Except forwarded linktrace messages (LTMs), CFM messages emitted by MPs
+//			in this MA are tagged with the primary VLAN ID. (R,-W) (mandatory) (2-bytes/entry *
+//			12-entries-=-24-bytes)
+//
+//		Mhf Creation
+//			This attribute determines whether the bridge creates an MHF, under circumstances defined in
+//			clause 22.2.3 of [IEEE 802.1ag]. This attribute is an enumeration with the following values:
+//
+//			1	None. No MHFs are created on this bridge for this MA.
+//
+//			2	Default (IEEE 802.1ag term). The bridge can create MHFs on this VID on any port through which
+//			the VID can pass.
+//
+//			3	Explicit. The bridge can create MHFs on this VID on any port through which the VID can pass,
+//			but only if an MEP exists at some lower maintenance level.
+//
+//			4	Defer. This value causes the ONU to use the setting of the parent MD. This is recommended to
+//			be the default value.
+//
+//			(R,-W, setbycreate) (mandatory) (1-byte)
+//
+type Dot1AgMaintenanceAssociation struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	dot1agmaintenanceassociationBME = &ManagedEntityDefinition{
+		Name:    "Dot1AgMaintenanceAssociation",
+		ClassID: 300,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewDot1AgMaintenanceAssociation (class ID 300) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewDot1AgMaintenanceAssociation(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*dot1agmaintenanceassociationBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/dot1agmaintenancedomain.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/dot1agmaintenancedomain.go
new file mode 100644
index 0000000..5f191a5
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/dot1agmaintenancedomain.go
@@ -0,0 +1,151 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// Dot1AgMaintenanceDomainClassID is the 16-bit ID for the OMCI
+// Managed entity Dot1ag maintenance domain
+const Dot1AgMaintenanceDomainClassID = ClassID(299) // 0x012b
+
+var dot1agmaintenancedomainBME *ManagedEntityDefinition
+
+// Dot1AgMaintenanceDomain (Class ID: #299 / 0x012b)
+//	In [IEEE 802.1ag], a maintenance domain (MD) is a context within which configuration fault
+//	management (CFM) connectivity verification can occur. Individual services (maintenance
+//	associations, MAs) exist within an MD. An MD is created and deleted by the OLT. The MD ME is
+//	specified by [IEEE 802.1ag] in such a way that the same provisioning can be used for all
+//	associated systems in a network; the OMCI definition accordingly avoids ONU-specific information
+//	such as pointers.
+//
+//	Relationships
+//		Several MDs may be associated with a given bridge, at various MD levels, and a given MD may be
+//		associated with any number of bridges.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies an instance of this ME. The values 0 and 0xFFFF are reserved.
+//			(R, setbycreate) (mandatory) (2-bytes)
+//
+//		Md Level
+//			This attribute ranges from 0..7 and specifies the maintenance level of this MD. Higher numbers
+//			have wider geographic scope. (R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Md Name Format
+//			This attribute specifies one of several possible formats for the MD name attribute. (R,-W,
+//			setbycreate) (mandatory) (1-byte)
+//
+//		MD Name 1
+//			These two attributes may be regarded as a 50-byte octet string whose value is the left-justified
+//			maintenance domain name. The MD name may or may not be a printable character string, so an octet
+//			string is the appropriate representation. If the MD name format specifies a DNS-like name or a
+//			character string, the string is null-terminated; otherwise, its length is determined by the MD
+//			name format. If the MD has no name (MD name format-=-0), this attribute is undefined. Note that
+//			binary comparisons of the MD name are made in other CFM state machines, so blanks, alphabetic
+//			case, etc., are significant. Also, note that the MD name and the MA name must be packed (with
+//			additional bytes) into 48-byte CFM message headers. (R,-W) (mandatory if MD name format is not
+//			1) (25-bytes * 2 attributes)
+//
+//		MD Name 2
+//			These two attributes may be regarded as a 50-byte octet string whose value is the left-justified
+//			maintenance domain name. The MD name may or may not be a printable character string, so an octet
+//			string is the appropriate representation. If the MD name format specifies a DNS-like name or a
+//			character string, the string is null-terminated; otherwise, its length is determined by the MD
+//			name format. If the MD has no name (MD name format-=-0), this attribute is undefined. Note that
+//			binary comparisons of the MD name are made in other CFM state machines, so blanks, alphabetic
+//			case, etc., are significant. Also, note that the MD name and the MA name must be packed (with
+//			additional bytes) into 48-byte CFM message headers. (R,-W) (mandatory if MD name format is not
+//			1) (25-bytes * 2 attributes)
+//
+//		Maintenance Domain Intermediate Point Half Function Mhf Creation
+//			Maintenance domain intermediate point half function (MHF) creation: This attribute determines
+//			whether an associated bridge creates an MHF for this MD, under circumstances defined in
+//			clause-22.2.3 of [IEEE 802.1ag]. This attribute is an enumeration with the following values.
+//
+//			1	None
+//
+//			2	Default (IEEE 802.1ag term). The bridge can create MHFs on an associated VID on any port
+//			through which the VID can pass, where: i) there are no lower active MD levels or ii) there is a
+//			maintenance association end point (MEP) at the next lower active MD level on the port.
+//
+//			3	Explicit. The bridge can create MHFs on an associated VID on any port through which the VID
+//			can pass, but only if an MEP exists at some lower maintenance level.
+//
+//			(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Sender Id Permission
+//			This attribute determines the contents of the sender ID type-length-value (TLV) included in CFM
+//			messages transmitted by maintenance points (MPs) controlled by this MD. Chassis ID and
+//			management address information is available from the dot1ag chassismanagement info ME. The
+//			attribute is an enumeration with the following values.
+//
+//			1	None: the sender ID TLV is not to be sent.
+//
+//			2	Chassis: the chassis ID length, chassis ID subtype, and chassis ID fields of the sender ID TLV
+//			are to be sent, but not the management address fields.
+//
+//			3	Manage: the management address fields of the sender ID TLV are to be sent, but the chassis ID
+//			length is to be transmitted with the value 0, and the chassis ID subtype, and chassis ID fields
+//			are not to be sent.
+//
+//			4	ChassisManage: all chassis ID and management address fields are to be sent.
+//
+//			(R,-W, setbycreate) (mandatory) (1-byte)
+//
+type Dot1AgMaintenanceDomain struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	dot1agmaintenancedomainBME = &ManagedEntityDefinition{
+		Name:    "Dot1AgMaintenanceDomain",
+		ClassID: 299,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewDot1AgMaintenanceDomain (class ID 299) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewDot1AgMaintenanceDomain(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*dot1agmaintenancedomainBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/dot1agmep.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/dot1agmep.go
new file mode 100644
index 0000000..44cce8c
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/dot1agmep.go
@@ -0,0 +1,191 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// Dot1AgMepClassID is the 16-bit ID for the OMCI
+// Managed entity Dot1ag MEP
+const Dot1AgMepClassID = ClassID(302) // 0x012e
+
+var dot1agmepBME *ManagedEntityDefinition
+
+// Dot1AgMep (Class ID: #302 / 0x012e)
+//	This ME models an MEP as defined primarily in [IEEE 802.1ag] and secondarily in [ITUT Y.1731].
+//	It is created and deleted by the OLT. An MEP exists at one of eight possible maintenance levels,
+//	and resides at the boundary of a MD. It inherits a name, and optionally a set of associated
+//	VLANs, from its associated MA.
+//
+//	Relationships
+//		One or more MEPs may be associated with a MAC bridge port or an IEEE 802.1p mapper in the
+//		absence of a MAC bridge. An MEP is also associated with zero or more VLANs and an MA.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Layer 2 Entity Pointer
+//			Depending on the value of the layer 2 type attribute, this pointer specifies the MAC bridge port
+//			configuration data ME or the IEEE 802.1p mapper service profile ME with which this MEP is
+//			associated. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Layer 2 Type
+//			This attribute specifies whether the MA is associated with a MAC bridge port (value 0) or an
+//			IEEE 802.1p mapper (value 1). (R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Ma Pointer
+//			This pointer specifies the maintenance association with which this MEP is associated. (R,-W,
+//			setbycreate) (mandatory) (2-bytes)
+//
+//		Mep Id
+//			This attribute specifies the MEP's own identity in the MA. For a given MA, the MEP ID must be
+//			unique throughout the network defined by the MD. The MEP ID is defined in the range 1..8191. The
+//			value 0 indicates that no MEP ID is (yet) configured. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Mep Control
+//			This attribute specifies some of the overall behavioural aspects of the MEP. It is interpreted
+//			as follows.
+//
+//			(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Primary Vlan
+//			This attribute is a 12-bit VLAN ID. The value 0 indicates that the MEP inherits its primary VLAN
+//			from its parent MA. CFM messages, except forwarded LTMs, are tagged with the primary VLAN ID. If
+//			explicitly specified, the value of this attribute must be one of the VLANs associated with the
+//			parent MA. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Administrative State
+//			This attribute locks (1) and unlocks (0) the functions performed by this ME. Administrative
+//			state is further described in clause A.1.6. (R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Ccm And Ltm Priority
+//			Ranging from 0..7, this attribute permits CCM and LTM frames to be explicitly prioritized, which
+//			may be needed if flows are separated, e.g., by 802.1p priority. The priority specified in this
+//			attribute is also used in linktrace reply (LTR) frames originated by this MEP. The value 0xFF
+//			selects the IEEE 802.1ag default, whereby CCM and LTM frames are transmitted with the highest
+//			Ethernet priority available. (R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Egress Identifier
+//			This attribute comprises 8-bytes to be included in LTMs. They allow received LTRs to be directed
+//			to the correct originator. The attribute includes the originator MAC address and a locally
+//			defined identifier. If this field is 0, the ONU uses the MEP's MAC address, with 0 as the
+//			locally defined identifier. (R,-W, setbycreate) (mandatory) (8-bytes)
+//
+//		Peer Mep Ids
+//			This attribute lists the expected peer MEPs for CCMs, 2-bytes per MEP ID. [IEEE 802.1ag] allows
+//			for multipoint networks, and therefore a list of peer MEPs. This attribute allows for up to 12
+//			peers for a given MEP, though GPON applications are expected to need only a single peer. Missing
+//			or unexpected messages trigger alarm declaration after a soak interval. Unused peer MEP slots
+//			should be set to 0. (R,-W) (mandatory) (24-bytes)
+//
+//		Eth Ais Control
+//			This attribute controls the generation of Ethernet alarm indication signal (AIS) frames when
+//			they are enabled through the MEP control attribute. It is interpreted as follows:
+//
+//			(R,-W, setbycreate) (mandatory if ETH AIS is enabled) (1-byte)
+//
+//		Fault Alarm Threshold
+//			This attribute specifies the lowest priority alarm that is allowed to generate a fault alarm.
+//			The value 0 specifies that the ONU uses its internal default. It is defined as follows.
+//
+//			1	All defects generate alarms after suitable soaking, including AIS and RDICCM.
+//
+//			2	Alarm generated only by one of: MACstatus, RemoteCCM, ErrorCCM, XconCCM. This value is
+//			recommended as the default in [IEEE 802.1ag].
+//
+//			3	Alarm generated only by one of: RemoteCCM, ErrorCCM, XconCCM.
+//
+//			4	Alarm generated only by one of: ErrorCCM, XconCCM.
+//
+//			5	Alarm generated only by: XconCCM.
+//
+//			6	No alarms are to be reported. This setting may be useful during configuration of services
+//			across the network when spurious alarms could otherwise be generated.
+//
+//			(R,-W, setbycreate) (optional) (1-byte)
+//
+//		Alarm Declaration Soak Time
+//			This attribute defines the defect soak time that must elapse before the MEP declares an alarm.
+//			It is expressed in 10-ms units with a range of 250 to 1000, i.e., 2.5-s to 10-s. The default is
+//			recommended to be 2.5 seconds. (R,-W) (mandatory) (2-bytes)
+//
+//		Alarm Clear Soak Time
+//			This attribute defines the defect-free soak time that must elapse before the MEP clears an
+//			alarm. It is expressed in intervals of 10-ms with a range of 250 to 1-000, i.e., 2.5-s to 10-s.
+//			The default is recommended to be 10-s. (R,-W) (mandatory) (2-bytes)
+//
+type Dot1AgMep struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	dot1agmepBME = &ManagedEntityDefinition{
+		Name:    "Dot1AgMep",
+		ClassID: 302,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "RDI CCM",
+			1: "MAC status",
+			2: "Remote CCM",
+			3: "Error CCM",
+			4: "Xcon CCM",
+			5: "Unexpected period",
+			6: "AIS",
+		},
+	}
+}
+
+// NewDot1AgMep (class ID 302) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewDot1AgMep(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*dot1agmepBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/dot1ratelimiter.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/dot1ratelimiter.go
new file mode 100644
index 0000000..71c88c5
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/dot1ratelimiter.go
@@ -0,0 +1,110 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// Dot1RateLimiterClassID is the 16-bit ID for the OMCI
+// Managed entity Dot1 rate limiter
+const Dot1RateLimiterClassID = ClassID(298) // 0x012a
+
+var dot1ratelimiterBME *ManagedEntityDefinition
+
+// Dot1RateLimiter (Class ID: #298 / 0x012a)
+//	This ME allows rate limits to be defined for various types of upstream traffic that are
+//	processed by IEEE 802.1 bridges or related structures.
+//
+//	Relationships
+//		An instance of this ME may be linked to an instance of a MAC bridge service profile or an IEEE
+//		802.1p mapper.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Parent Me Pointer
+//			This attribute points to an instance of a ME. The type of ME is determined by the TP type
+//			attribute. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Tp Type
+//			(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//			This attribute identifies the type of TP associated with this dot1 rate limiter. Valid values
+//			are:
+//
+//			1	MAC bridge service profile
+//
+//			2	IEEE 802.1p mapper service profile
+//
+//		Upstream Unicast Flood Rate Pointer
+//			This attribute points to an instance of the traffic descriptor that governs the rate of upstream
+//			unicast packets whose DA is unknown to the bridge. A null pointer specifies that no
+//			administrative limit is to be imposed. (R,-W, setbycreate) (optional) (2-bytes)
+//
+//		Upstream Broadcast Rate Pointer
+//			This attribute points to an instance of the traffic descriptor that governs the rate of upstream
+//			broadcast packets. A null pointer specifies that no administrative limit is to be imposed.
+//			(R,-W, setbycreate) (optional) (2-bytes)
+//
+//		Upstream Multicast Payload Rate Pointer
+//			This attribute points to an instance of the traffic descriptor that governs the rate of upstream
+//			multicast payload packets. A null pointer specifies that no administrative limit is to be
+//			imposed. (R,-W, setbycreate) (optional) (2-bytes)
+//
+type Dot1RateLimiter struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	dot1ratelimiterBME = &ManagedEntityDefinition{
+		Name:    "Dot1RateLimiter",
+		ClassID: 298,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewDot1RateLimiter (class ID 298) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewDot1RateLimiter(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*dot1ratelimiterBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/dot1xconfigurationprofile.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/dot1xconfigurationprofile.go
new file mode 100644
index 0000000..ad53d44
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/dot1xconfigurationprofile.go
@@ -0,0 +1,145 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// Dot1XConfigurationProfileClassID is the 16-bit ID for the OMCI
+// Managed entity Dot1X configuration profile
+const Dot1XConfigurationProfileClassID = ClassID(291) // 0x0123
+
+var dot1xconfigurationprofileBME *ManagedEntityDefinition
+
+// Dot1XConfigurationProfile (Class ID: #291 / 0x0123)
+//	An instance of this ME represents a set of attributes that control an ONU's 802.1X operation
+//	with regard to IEEE 802 services. An instance of this ME is created by the ONU if it is capable
+//	of supporting [IEEE 802.1X] authentication of CPE.
+//
+//	Relationships
+//		One instance of this ME governs the ONU's 802.1X CPE authentication behaviour.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute provides a unique number for each instance of this ME. There is at most one
+//			instance, number 0. (R) (mandatory) (2-bytes)
+//
+//		Circuit Id Prefix
+//			This attribute is a pointer to a large string ME whose content appears as the prefix of the NAS
+//			port ID in radius access-request messages. The remainder of the NAS port ID field is local
+//			information (for example, slot-port, appended by the ONU itself). The default value of this
+//			attribute is the null pointer 0. (R,-W) (mandatory) (2-bytes)
+//
+//		Fallback Policy
+//			When set to 1 (deny), this attribute causes IEEE-802.1X conversations to fail when no external
+//			authentication server is accessible, such that no Ethernet service is provided. The default
+//			value 0 causes IEEE-802.1X conversations to succeed when no external authentication server is
+//			accessible. (R,-W) (mandatory) (1-byte)
+//
+//		Auth Server 1
+//			This attribute is a pointer to a large string ME that contains the URI of the first choice
+//			radius authentication server. The value 0 indicates that no radius authentication server is
+//			specified. (R,-W) (mandatory) (2-bytes)
+//
+//		Shared Secret Auth1
+//			This attribute is the shared secret for the first radius authentication server. It is a null-
+//			terminated character string. (R,-W) (mandatory) (25-bytes)
+//
+//			The following two pairs of attributes are defined in the same way:
+//
+//		Auth Server 2
+//			(R,-W) (optional) (2-bytes)
+//
+//		Shared Secret Auth2
+//			(R,-W) (optional) (25-bytes)
+//
+//		Auth Server 3
+//			(R,-W) (optional) (2-bytes)
+//
+//		Shared Secret Auth3
+//			(R,-W) (optional) (25-bytes)
+//
+//		Olt Proxy Address
+//			This attribute indicates the IP address of a possible proxy at the OLT for IEEE-802.1X radius
+//			messages. The default value 0.0.0.0 indicates that no proxy is required. (R,-W) (optional)
+//			(4-bytes)
+//
+//		Calling Station Id Format
+//			Radius messages initiated by the ONU contain a calling-station-ID field that is specified to be
+//			the supplicant's MAC address in upper-case ASCII form, with bytes separated by a delimiter. This
+//			attribute permits specification of the delimiter. (R,-W) (optional) (2-bytes)
+//
+//			Value	Meaning
+//
+//			0	ONU's internal default
+//
+//			1	Hyphen (-) delimiter
+//
+//			2	Colon (:) delimiter
+//
+//			3	No delimiter
+//
+//			0x20 - 0x7E	Use this value as the delimiter
+//
+//			0xF0 - 0xFE	Vendor-specific use
+//
+//			Other values are reserved.
+//
+type Dot1XConfigurationProfile struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	dot1xconfigurationprofileBME = &ManagedEntityDefinition{
+		Name:    "Dot1XConfigurationProfile",
+		ClassID: 291,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewDot1XConfigurationProfile (class ID 291) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewDot1XConfigurationProfile(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*dot1xconfigurationprofileBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/dot1xperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/dot1xperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..e9d2177
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/dot1xperformancemonitoringhistorydata.go
@@ -0,0 +1,148 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// Dot1XPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity Dot1X performance monitoring history data
+const Dot1XPerformanceMonitoringHistoryDataClassID = ClassID(292) // 0x0124
+
+var dot1xperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// Dot1XPerformanceMonitoringHistoryData (Class ID: #292 / 0x0124)
+//	This ME collects performance statistics on an ONU's IEEE 802.1X CPE authentication operation.
+//	Instances of this ME are created and deleted by the OLT.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME may be associated with each UNI that can perform IEEE-802.1X
+//		authentication of CPE.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of a PPTP. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 and 2 MEs
+//			that contains PM threshold values. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Eapol Frames Received
+//			This attribute counts received valid EAPOL frames of any type. (R) (mandatory) (4-bytes)
+//
+//		Eapol Frames Transmitted
+//			This attribute counts transmitted EAPOL frames of any type. (R) (mandatory) (4-bytes)
+//
+//		Eapol Start Frames Received
+//			This attribute counts received EAPOL start frames. (R) (mandatory) (4-bytes)
+//
+//		Eapol Logoff Frames Received
+//			This attribute counts received EAPOL logoff frames. (R) (mandatory) (4-bytes)
+//
+//		Invalid Eapol Frames Received
+//			This attribute counts received EAPOL frames in which the frame type was not recognized. (R)
+//			(mandatory) (4-bytes)
+//
+//		Eap Resp_Id Frames Received
+//			EAP resp/id frames received: This attribute counts received EAP response frames containing an
+//			identifier type field. (R) (mandatory) (4-bytes)
+//
+//		Eap Response Frames Received
+//			This attribute counts received EAP response frames, other than resp/id frames. (R) (mandatory)
+//			(4-bytes)
+//
+//		Eap Initial Request Frames Transmitted
+//			This attribute counts transmitted request frames containing an identifier type field. In [IEEE
+//			802.1X], this is also called ReqId. (R) (mandatory) (4-bytes)
+//
+//		Eap Request Frames Transmitted
+//			This attribute counts transmitted request frames, other than request/id frames. (R) (mandatory)
+//			(4-bytes)
+//
+//		Eap Length Error Frames Received
+//			This attribute counts received EAPOL frames whose packet body length field was invalid. (R)
+//			(mandatory) (4-bytes)
+//
+//		Eap Success Frames Generated Autonomously
+//			This attribute counts EAPOL success frames generated according to the local fallback policy
+//			because no radius server was available. (R) (mandatory) (4-bytes)
+//
+//		Eap Failure Frames Generated Autonomously
+//			This attribute counts EAPOL failure frames generated according to the local fallback policy
+//			because no radius server was available. (R) (mandatory) (4-bytes)
+//
+type Dot1XPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	dot1xperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "Dot1XPerformanceMonitoringHistoryData",
+		ClassID: 292,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			4: "Invalid EAPOL frames received",
+			9: "EAP length error frames received",
+		},
+	}
+}
+
+// NewDot1XPerformanceMonitoringHistoryData (class ID 292) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewDot1XPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*dot1xperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/dot1xportextensionpackage.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/dot1xportextensionpackage.go
new file mode 100644
index 0000000..8970c4a
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/dot1xportextensionpackage.go
@@ -0,0 +1,208 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// Dot1XPortExtensionPackageClassID is the 16-bit ID for the OMCI
+// Managed entity Dot1X port extension package
+const Dot1XPortExtensionPackageClassID = ClassID(290) // 0x0122
+
+var dot1xportextensionpackageBME *ManagedEntityDefinition
+
+// Dot1XPortExtensionPackage (Class ID: #290 / 0x0122)
+//	An instance of this ME represents a set of attributes that control a port's IEEE 802.1X
+//	operation. It is created and deleted autonomously by the ONU upon the creation or deletion of a
+//	PPTP that supports [IEEE 802.1X] authentication of customer premises equipment (CPE).
+//
+//	Relationships
+//		An instance of this ME is associated with a PPTP that performs IEEE 802.1X authentication of CPE
+//		(e.g., Ethernet or DSL).
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute provides a unique number for each instance of this ME. Its value is the same as
+//			that of its associated PPTP (i.e., slot and port number). (R) (mandatory) (2-bytes)
+//
+//		Dot1X Enable
+//			If true, this Boolean attribute forces the associated port to authenticate via [IEEE 802.1X] as
+//			a precondition of normal service. The default value false does not impose IEEE 802.1X
+//			authentication on the associated port. (R,-W) (mandatory) (1-byte)
+//
+//		Action Register
+//			This attribute defines a set of actions that can be performed on the associated port. The act of
+//			writing to the register causes the specified action.
+//
+//			1	Force re-authentication - this opcode initiates an IEEE-802.1X reauthentication conversation
+//			with the associated port. The port remains in its current authorization state until the
+//			conversation concludes.
+//
+//			2	Force unauthenticated - this opcode initiates an IEEE-802.1X authentication conversation whose
+//			outcome is predestined to fail, thereby disabling normal Ethernet service on the port. The
+//			port's provisioning is not changed, such that upon re-initialization, a new IEEE-802.1X
+//			conversation may restore service without prejudice.
+//
+//			3	Force authenticated - this opcode initiates an IEEE-802.1X authentication conversation whose
+//			outcome is predestined to succeed, thereby unconditionally enabling normal Ethernet service on
+//			the port. The port's provisioning is not changed, such that upon re-initialization, a new
+//			IEEE-802.1X conversation is required.
+//
+//			(W) (mandatory) (1-byte)
+//
+//		Authenticator Pae State
+//			4	Authenticated
+//
+//			5	Aborting
+//
+//			6	Held
+//
+//			7	Force auth
+//
+//			8	Force unauth
+//
+//			9	Restart
+//
+//			(R) (optional) (1-byte)
+//
+//			This attribute returns the value of the port's PAE state. States are further described in [IEEE
+//			802.1X]. Values are coded as follows.
+//
+//			0	Initialize
+//
+//			1	Disconnected
+//
+//			2	Connecting
+//
+//			3	Authenticating
+//
+//		Backend Authentication State
+//			This attribute returns the value of the port's back-end authentication state. States are further
+//			described in [IEEE 802.1X]. Values are coded as follows.
+//
+//			0	Request
+//
+//			1	Response
+//
+//			2	Success
+//
+//			3	Fail
+//
+//			4	Timeout
+//
+//			5	Idle
+//
+//			6	Initialize
+//
+//			7	Ignore
+//
+//			(R) (optional) (1-byte)
+//
+//		Admin Controlled Directions
+//			This attribute controls the directionality of the port's authentication requirement. The default
+//			value 0 indicates that control is imposed in both directions. The value 1 indicates that control
+//			is imposed only on traffic from the subscriber towards the network. (R,-W) (optional) (1-byte)
+//
+//		Operational Controlled Directions
+//			This attribute indicates the directionality of the port's current authentication state. The
+//			value 0 indicates that control is imposed in both directions. The value 1 indicates that control
+//			is imposed only on traffic from the subscriber towards the network. (R) (optional) (1-byte)
+//
+//		Authenticator Controlled Port Status
+//			This attribute indicates whether the controlled port is currently authorized (1) or unauthorized
+//			(2). (R) (optional) (1-byte)
+//
+//		Quiet Period
+//			This attribute specifies the interval between EAP request/identity invitations sent to the peer.
+//			Other events such as carrier present or EAPOL start frames from the peer may trigger an EAP
+//			request/identity frame from the ONU at any time; this attribute controls the ONU's periodic
+//			behaviour in the absence of these other inputs. It is expressed in seconds. (R,-W) (optional)
+//			(2-bytes)
+//
+//		Server Timeout Period
+//			This attribute specifies the time the ONU will wait for a response from the radius server before
+//			timing out. Within this maximum interval, the ONU may initiate several retransmissions with
+//			exponentially increasing delay. Upon timeout, the ONU may try another radius server if there is
+//			one, or invoke the fallback policy, if no alternate radius servers are available. Server timeout
+//			is expressed in seconds, with a default value of 30 and a maximum value of 65535. (R,-W)
+//			(optional) (2-bytes)
+//
+//		Re_Authentication Period
+//			Re-authentication period: This attribute records the re-authentication interval specified by the
+//			radius authentication server. It is expressed in seconds. The attribute is only meaningful after
+//			a port has been authenticated. (R) (optional) (2-bytes)
+//
+//		Re_Authentication Enabled
+//			Re-authentication enabled: This Boolean attribute records whether the radius authentication
+//			server has enabled re-authentication on this service (true) or not (false). The attribute is
+//			only meaningful after a port has been authenticated. (R) (optional) (1-byte)
+//
+//		Key Transmission Enabled
+//			This Boolean attribute indicates whether key transmission is enabled (true) or not (false). This
+//			feature is not required; the parameter is listed here for completeness vis-`a-vis [IEEE 802.1X].
+//			(R,-W) (optional) (1-byte)
+//
+type Dot1XPortExtensionPackage struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	dot1xportextensionpackageBME = &ManagedEntityDefinition{
+		Name:    "Dot1XPortExtensionPackage",
+		ClassID: 290,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "dot1x local authentication - allowed",
+			1: "dot1x local authentication - denied",
+		},
+	}
+}
+
+// NewDot1XPortExtensionPackage (class ID 290) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewDot1XPortExtensionPackage(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*dot1xportextensionpackageBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/efmbondinggroup.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/efmbondinggroup.go
new file mode 100644
index 0000000..b569180
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/efmbondinggroup.go
@@ -0,0 +1,124 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// EfmBondingGroupClassID is the 16-bit ID for the OMCI
+// Managed entity EFM bonding group
+const EfmBondingGroupClassID = ClassID(418) // 0x01a2
+
+var efmbondinggroupBME *ManagedEntityDefinition
+
+// EfmBondingGroup (Class ID: #418 / 0x01a2)
+//	The EFM bonding group represents a group of links that are bonded. In [IEEE 802.3], a bonding
+//	group is known as a PAF [physical medium entity (PME) aggregation function] and a link is known
+//	as a PME instance of this ME are created and deleted by the OLT.
+//
+//	Relationships
+//		An instance of this ME may be associated with zero or more instances of an EFM bonding link.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. The value 0 is reserved. (R,
+//			setbycreate) (mandatory) (2-bytes)
+//
+//		Group Id
+//			This attribute is the unique number representing this bonding group. See clause C.3.1.1 of
+//			[ITU-T G.998.2]. (R,-W, setbycreate) (mandatory) (6-bytes)
+//
+//		Minimum Upstream Group Rate
+//			This attribute sets the minimum upstream group rate, in bits per second, for this EFM Group.
+//			This attribute is used to determine the group US rate low alarm status. The group US rate low
+//			alarm means that the aggregate upstream rate of all active links associated with this group is
+//			less than the minimum upstream group rate. The default value for this rate is zero. (R,-W)
+//			(mandatory, setbycreate) (4-bytes)
+//
+//		Minimum Downstream Group Rate
+//			This attribute sets the minimum downstream group rate, in bits per second, for this EFM Group.
+//			This attribute is used to determine the group DS rate low alarm status. The group DS rate low
+//			alarm means that the aggregate downstream rate of all active links associated with this group is
+//			less than the minimum downstream group rate. The default value for this rate is zero. (R,-W)
+//			(mandatory) (4-bytes, setbycreate)
+//
+//		Group Alarm Enable
+//			This bit mapped attribute enables the various group alarms. A bit value of 1 means "enable".
+//
+//			Bit	Meaning
+//
+//			1 (LSB)	Group down
+//
+//			2	Group partial
+//
+//			3	Group US rate low
+//
+//			4	Group DS rate low
+//
+//			5	4x rate ratio
+//
+//			6-8	Reserved
+//
+//			(R,-W, setbycreate) (mandatory) (1-byte)
+//
+type EfmBondingGroup struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	efmbondinggroupBME = &ManagedEntityDefinition{
+		Name:    "EfmBondingGroup",
+		ClassID: 418,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Group down",
+			1: "Group partial",
+			2: "Group US rate low",
+			3: "Group DS rate low",
+			4: "4x rate ratio",
+		},
+	}
+}
+
+// NewEfmBondingGroup (class ID 418) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewEfmBondingGroup(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*efmbondinggroupBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/efmbondinggroupperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/efmbondinggroupperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..55a24c3
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/efmbondinggroupperformancemonitoringhistorydata.go
@@ -0,0 +1,135 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// EfmBondingGroupPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity EFM bonding group performance monitoring history data
+const EfmBondingGroupPerformanceMonitoringHistoryDataClassID = ClassID(420) // 0x01a4
+
+var efmbondinggroupperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// EfmBondingGroupPerformanceMonitoringHistoryData (Class ID: #420 / 0x01a4)
+//	This ME collects PM data as seen at the xTU-C. Instances of this ME are created and deleted by
+//	the OLT.
+//
+//	Relationships
+//		An instance of this ME is associated with an xDSL UNI.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the EFM bonding group. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 and 2 MEs
+//			that contain PM threshold values. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Rx Bad Fragments
+//			Clause 45.2.3.33 of [IEEE 802.3]. (R) (mandatory) (4-bytes)
+//
+//		Rx Lost Fragments
+//			Clause 45.2.3.34 of [IEEE 802.3]. (R) (mandatory) (4-bytes)
+//
+//		Rx Lost Starts
+//			Clause 45.2.3.35 of [IEEE 802.3]. (R) (mandatory) (4-bytes)
+//
+//		Rx Lost Ends
+//			Clause 45.2.3.36 of [IEEE 802.3]. (R) (mandatory) (4-bytes)
+//
+//		Rx Frames
+//			Number of Ethernet frames received over this group. (R) (mandatory) (4-bytes)
+//
+//		Tx Frames
+//			Number of Ethernet frames transmitted over this group. (R) (mandatory) (4-bytes)
+//
+//		Rx Bytes
+//			Number of bytes contained in the Ethernet frames received over this group. (R) (mandatory)
+//			(8-bytes)
+//
+//		Tx Bytes
+//			Number of bytes contained in the Ethernet frames transmitted over this group. (R) (mandatory)
+//			(8-bytes)
+//
+//		Tx Discarded Frames
+//			Number of Ethernet frames discarded by the group transmit function. (R) (mandatory) (4-bytes)
+//
+//		Tx Discarded Bytes
+//			Number of bytes contained in the Ethernet frames discarded by the group transmit function. (R)
+//			(mandatory) (4-bytes)
+//
+type EfmBondingGroupPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	efmbondinggroupperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "EfmBondingGroupPerformanceMonitoringHistoryData",
+		ClassID: 420,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Rx bad fragments",
+			1: "Rx lost fragments",
+			2: "Rx lost starts",
+			3: "Rx lost ends",
+		},
+	}
+}
+
+// NewEfmBondingGroupPerformanceMonitoringHistoryData (class ID 420) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewEfmBondingGroupPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*efmbondinggroupperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/efmbondinggroupperformancemonitoringhistorydatapart2.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/efmbondinggroupperformancemonitoringhistorydatapart2.go
new file mode 100644
index 0000000..ed3a34c
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/efmbondinggroupperformancemonitoringhistorydatapart2.go
@@ -0,0 +1,140 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// EfmBondingGroupPerformanceMonitoringHistoryDataPart2ClassID is the 16-bit ID for the OMCI
+// Managed entity EFM bonding group performance monitoring history data part 2
+const EfmBondingGroupPerformanceMonitoringHistoryDataPart2ClassID = ClassID(421) // 0x01a5
+
+var efmbondinggroupperformancemonitoringhistorydatapart2BME *ManagedEntityDefinition
+
+// EfmBondingGroupPerformanceMonitoringHistoryDataPart2 (Class ID: #421 / 0x01a5)
+//	This ME collects PM data as seen at the xTU-C. Instances of this ME are created and deleted by
+//	the OLT.
+//
+//	Relationships
+//		An instance of this ME is associated with an xDSL UNI.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the EFM bonding group. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 and 2 MEs
+//			that contain PM threshold values. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Rx Unicast Frames
+//			Number of unicast Ethernet frames received over this group. (R) (mandatory) (4-bytes)
+//
+//		Tx Unicast Frames
+//			Number of unicast Ethernet frames transmitted over this group. (R) (mandatory) (4-bytes)
+//
+//		Rx Unicast Bytes
+//			Number of bytes contained in the unicast Ethernet frames received over this group. (R)
+//			(mandatory) (8-bytes)
+//
+//		Tx Unicast Bytes
+//			Number of bytes contained in the unicast Ethernet frames transmitted over this group. (R)
+//			(mandatory) (8-bytes)
+//
+//		Rx Broadcast Frames
+//			Number of broadcast Ethernet frames received over this group. (R) (mandatory) (4-bytes)
+//
+//		Tx Broadcast Frames
+//			Number of broadcast Ethernet frames transmitted over this group. (R) (mandatory) (4-bytes)
+//
+//		Rx Broadcast Bytes
+//			Number of bytes contained in the broadcast Ethernet frames received over this group. (R)
+//			(mandatory) (8-bytes)
+//
+//		Tx Broadcast Bytes
+//			Number of bytes contained in the broadcast Ethernet frames transmitted over this group. (R)
+//			(mandatory) (8-bytes)
+//
+//		Rx Multicast Frames
+//			Number of multicast Ethernet frames received over this group. (R) (mandatory) (4-bytes)
+//
+//		Tx Multicast Frames
+//			Number of multicast Ethernet frames transmitted over this group. (R) (mandatory) (4-bytes)
+//
+//		Rx Multicast Bytes
+//			Number of bytes contained in the multicast Ethernet frames received over this group. (R)
+//			(mandatory) (8-bytes)
+//
+//		Tx Multicast Bytes
+//			Number of bytes contained in the multicast Ethernet frames transmitted over this group. (R)
+//			(mandatory) (8-bytes)
+//
+type EfmBondingGroupPerformanceMonitoringHistoryDataPart2 struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	efmbondinggroupperformancemonitoringhistorydatapart2BME = &ManagedEntityDefinition{
+		Name:    "EfmBondingGroupPerformanceMonitoringHistoryDataPart2",
+		ClassID: 421,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewEfmBondingGroupPerformanceMonitoringHistoryDataPart2 (class ID 421) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewEfmBondingGroupPerformanceMonitoringHistoryDataPart2(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*efmbondinggroupperformancemonitoringhistorydatapart2BME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/efmbondinglink.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/efmbondinglink.go
new file mode 100644
index 0000000..4df2d36
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/efmbondinglink.go
@@ -0,0 +1,104 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// EfmBondingLinkClassID is the 16-bit ID for the OMCI
+// Managed entity EFM bonding link
+const EfmBondingLinkClassID = ClassID(419) // 0x01a3
+
+var efmbondinglinkBME *ManagedEntityDefinition
+
+// EfmBondingLink (Class ID: #419 / 0x01a3)
+//	The EFM bonding link represents a link that can be bonded with other links to form a group. In
+//	[IEEE 802.3], a bonding group is known as a PAF and a link is known as a PME. Instances of this
+//	ME are created and deleted by the OLT.
+//
+//	Relationships
+//		An instance of this ME may be associated with zero or one instance of an EFM bonding group.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. The two MSBs of the first byte are
+//			the bearer channel ID. Excluding the first 2-bits of the first byte, the remaining part of the
+//			ME ID is identical to that of this ME's parent PPTP xDSL UNI part 1.
+//
+//			NOTE - This attribute has the same meaning as the Stream ID in clause C.3.1.2 of [ITU-T
+//			G.998.2], except that it cannot be changed. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Associated Group Me Id
+//			This attribute is the ME ID of the bonding group to which this link is associated. Changing this
+//			attribute moves the link from one group to another. Setting this attribute to an ME ID that has
+//			not yet been provisioned will result in this link being placed in a single-link group that
+//			contains only this link. The default value for this attribute is the null pointer, 0xFFFF.
+//			(R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Link Alarm Enable
+//			This bit mapped attribute enables the group down and group partial alarms. A bit value of 1
+//			means "enable".
+//
+//			Bit	Meaning
+//
+//			1 (LSB)	Link down
+//
+//			2-8	Reserved
+//
+//			(R,-W, setbycreate) (mandatory) (1-bytes)
+//
+type EfmBondingLink struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	efmbondinglinkBME = &ManagedEntityDefinition{
+		Name:    "EfmBondingLink",
+		ClassID: 419,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Link down",
+		},
+	}
+}
+
+// NewEfmBondingLink (class ID 419) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewEfmBondingLink(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*efmbondinglinkBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/efmbondinglinkperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/efmbondinglinkperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..2ef9f2a
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/efmbondinglinkperformancemonitoringhistorydata.go
@@ -0,0 +1,117 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// EfmBondingLinkPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity EFM bonding link performance monitoring history data
+const EfmBondingLinkPerformanceMonitoringHistoryDataClassID = ClassID(422) // 0x01a6
+
+var efmbondinglinkperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// EfmBondingLinkPerformanceMonitoringHistoryData (Class ID: #422 / 0x01a6)
+//	This ME collects PM data as seen at the xTU-C. Instances of this ME are created and deleted by
+//	the OLT.
+//
+//	Relationships
+//		An instance of this ME is associated with an xDSL UNI.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the EFM bonding link. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 and 2 MEs
+//			that contain PM threshold values. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Rx Errored Fragments
+//			Clause 45.2.3.29 of [IEEE 802.3]. (R) (mandatory) (4-bytes)
+//
+//		Rx Small Fragments
+//			Clause 45.2.3.30 of [IEEE 802.3]. (R) (mandatory) (4-bytes)
+//
+//		Rx Large Fragments
+//			Clause 45.2.3.31 of [IEEE 802.3]. (R) (mandatory) (4-bytes)
+//
+//		Rx Discarded Fragments
+//			Clause 45.2.3.32 of [IEEE 802.3]. (R) (mandatory) (4-bytes)
+//
+//		Rx Fcs Errors
+//			Clause 45.2.6.11 of [IEEE 802.3]. (R) (mandatory) (4-bytes)
+//
+//		Rx Coding Errors
+//			Clause 45.2.6.12 of [IEEE 802.3]. (R) (mandatory) (4-bytes)
+//
+//		Rx Fragments
+//			Number of fragments received over this link. (R) (mandatory) (4-bytes)
+//
+//		Tx Fragments
+//			Number of fragments transmitted over this link. (R) (mandatory) (4-bytes)
+//
+type EfmBondingLinkPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	efmbondinglinkperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "EfmBondingLinkPerformanceMonitoringHistoryData",
+		ClassID: 422,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewEfmBondingLinkPerformanceMonitoringHistoryData (class ID 422) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewEfmBondingLinkPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*efmbondinglinkperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/efmbondingportperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/efmbondingportperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..6585ce3
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/efmbondingportperformancemonitoringhistorydata.go
@@ -0,0 +1,114 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// EfmBondingPortPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity EFM bonding port performance monitoring history data
+const EfmBondingPortPerformanceMonitoringHistoryDataClassID = ClassID(423) // 0x01a7
+
+var efmbondingportperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// EfmBondingPortPerformanceMonitoringHistoryData (Class ID: #423 / 0x01a7)
+//	This ME collects PM data as seen at the xTU-C. Instances of this ME are created and deleted by
+//	the OLT.
+//
+//	Relationships
+//		An instance of this ME is associated with an xDSL UNI.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. The two MSBs of the first byte are
+//			the bearer channel ID. Excluding the first 2-bits of the first byte, the remaining part of the
+//			ME ID is identical to that of this ME's parent PPTP xDSL UNI part 1. (R, setbycreate)
+//			(mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 and 2 MEs
+//			that contain PM threshold values. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Rx Frames
+//			Number of Ethernet frames received over this port. (R) (mandatory) (4-bytes)
+//
+//		Tx Frames
+//			Number of Ethernet frames transmitted over this port. (R) (mandatory) (4-bytes)
+//
+//		Rx Bytes
+//			Number of bytes contained in the Ethernet frames received over this port. (R) (mandatory)
+//			(4-bytes)
+//
+//		Tx Bytes
+//			Number of bytes contained in the Ethernet frames transmitted over this port. (R) (mandatory)
+//			(4-bytes)
+//
+//		Tx Discarded Frames
+//			Number of Ethernet frames discarded by the port transmit function. (R) (mandatory) (4-bytes)
+//
+//		Tx Discarded Bytes
+//			Number of bytes contained in the Ethernet frames discarded by the port transmit function. (R)
+//			(mandatory) (4-bytes)
+//
+type EfmBondingPortPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	efmbondingportperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "EfmBondingPortPerformanceMonitoringHistoryData",
+		ClassID: 423,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewEfmBondingPortPerformanceMonitoringHistoryData (class ID 423) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewEfmBondingPortPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*efmbondingportperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/efmbondingportperformancemonitoringhistorydatapart2.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/efmbondingportperformancemonitoringhistorydatapart2.go
new file mode 100644
index 0000000..f2a1f15
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/efmbondingportperformancemonitoringhistorydatapart2.go
@@ -0,0 +1,141 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// EfmBondingPortPerformanceMonitoringHistoryDataPart2ClassID is the 16-bit ID for the OMCI
+// Managed entity EFM bonding port performance monitoring history data part 2
+const EfmBondingPortPerformanceMonitoringHistoryDataPart2ClassID = ClassID(424) // 0x01a8
+
+var efmbondingportperformancemonitoringhistorydatapart2BME *ManagedEntityDefinition
+
+// EfmBondingPortPerformanceMonitoringHistoryDataPart2 (Class ID: #424 / 0x01a8)
+//	This ME collects PM data as seen at the xTU-C. Instances of this ME are created and deleted by
+//	the OLT.
+//
+//	Relationships
+//		An instance of this ME is associated with an xDSL UNI.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. The two MSBs of the first byte are
+//			the bearer channel ID. Excluding the first 2-bits of the first byte, the remaining part of the
+//			ME ID is identical to that of this ME's parent PPTP xDSL UNI part 1. (R, setbycreate)
+//			(mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 and 2 MEs
+//			that contain PM threshold values. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Rx Unicast Frames
+//			Number of unicast Ethernet frames received over this port. (R) (mandatory) (4-bytes)
+//
+//		Tx Unicast Frames
+//			Number of unicast Ethernet frames transmitted over this port. (R) (mandatory) (4-bytes)
+//
+//		Rx Unicast Bytes
+//			Number of bytes contained in the unicast Ethernet frames received over this port. (R)
+//			(mandatory) (4-bytes)
+//
+//		Tx Unicast Bytes
+//			Number of bytes contained in the unicast Ethernet frames transmitted over this port. (R)
+//			(mandatory) (4-bytes)
+//
+//		Rx Broadcast Frames
+//			Number of broadcast Ethernet frames received over this port. (R) (mandatory) (4-bytes)
+//
+//		Tx Broadcast Frames
+//			Number of broadcast Ethernet frames transmitted over this port. (R) (mandatory) (4-bytes)
+//
+//		Rx Broadcast Bytes
+//			Number of bytes contained in the broadcast Ethernet frames received over this port. (R)
+//			(mandatory) (4-bytes)
+//
+//		Tx Broadcast Bytes
+//			Number of bytes contained in the broadcast Ethernet frames transmitted over this port. (R)
+//			(mandatory) (4-bytes)
+//
+//		Rx Multicast Frames
+//			Number of multicast Ethernet frames received over this port. (R) (mandatory) (4-bytes)
+//
+//		Tx Multicast Frames
+//			Number of multicast Ethernet frames transmitted over this port. (R) (mandatory) (4-bytes)
+//
+//		Rx Multicast Bytes
+//			Number of bytes contained in the multicast Ethernet frames received over this port. (R)
+//			(mandatory) (4-bytes)
+//
+//		Tx Multicast Bytes
+//			Number of bytes contained in the multicast Ethernet frames transmitted over this port. (R)
+//			(mandatory) (4-bytes)
+//
+type EfmBondingPortPerformanceMonitoringHistoryDataPart2 struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	efmbondingportperformancemonitoringhistorydatapart2BME = &ManagedEntityDefinition{
+		Name:    "EfmBondingPortPerformanceMonitoringHistoryDataPart2",
+		ClassID: 424,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewEfmBondingPortPerformanceMonitoringHistoryDataPart2 (class ID 424) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewEfmBondingPortPerformanceMonitoringHistoryDataPart2(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*efmbondingportperformancemonitoringhistorydatapart2BME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/energyconsumptionperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/energyconsumptionperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..d831e3e
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/energyconsumptionperformancemonitoringhistorydata.go
@@ -0,0 +1,112 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// EnergyConsumptionPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity Energy consumption performance monitoring history data
+const EnergyConsumptionPerformanceMonitoringHistoryDataClassID = ClassID(343) // 0x0157
+
+var energyconsumptionperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// EnergyConsumptionPerformanceMonitoringHistoryData (Class ID: #343 / 0x0157)
+//	This ME collects PM data associated with the ONU's energy consumption. The time spent in various
+//	low-power states is recorded as a measure of their utility. Furthermore, the ONU may also
+//	include the equivalent of a watt-hour meter, which can be sampled from time to time to measure
+//	actual power consumed.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with the ONU in its entirety.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. The ME ID must be 0. (R, set-by-
+//			create) (mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: No thresholds are defined for this ME. For uniformity with other PMs, the
+//			attribute is retained and shown as mandatory, but it should be set to a null pointer. (R,-W,
+//			set-by-create) (mandatory) (2-bytes)
+//
+//		Doze Time
+//			This attribute records the time during which the ONU was in doze energy conservation mode,
+//			measured in microseconds. If watchful sleep is enabled in the ONU dynamic power management
+//			control ME, the ONU ignores this attribute. (R) (mandatory) (4-bytes)
+//
+//		Cyclic Sleep Time
+//			This attribute records the time during which the ONU was in cyclic sleep energy conservation
+//			mode, measured in microseconds. If watchful sleep is enabled in the ONU dynamic power management
+//			control ME, the ONU ignores this attribute. (R) (mandatory) (4-bytes)
+//
+//		Watchful Sleep Time
+//			This attribute records the time during which the ONU was in watchful sleep energy conservation
+//			mode, measured in microseconds. (R) (mandatory) (4-bytes)
+//
+//		Energy Consumed
+//			This attribute records the energy consumed by the ONU, measured in millijoules. (R) (optional)
+//			(4-bytes)
+//
+type EnergyConsumptionPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	energyconsumptionperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "EnergyConsumptionPerformanceMonitoringHistoryData",
+		ClassID: 343,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewEnergyConsumptionPerformanceMonitoringHistoryData (class ID 343) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewEnergyConsumptionPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*energyconsumptionperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/enhancedfecperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/enhancedfecperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..b3da774
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/enhancedfecperformancemonitoringhistorydata.go
@@ -0,0 +1,118 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// EnhancedFecPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity Enhanced FEC performance monitoring history data
+const EnhancedFecPerformanceMonitoringHistoryDataClassID = ClassID(453) // 0x01c5
+
+var enhancedfecperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// EnhancedFecPerformanceMonitoringHistoryData (Class ID: #453 / 0x01c5)
+//	This ME collects PM data associated with PON downstream FEC counters for XGS-PON and subsequent
+//	ITU-T PON systems. Instances of this ME are created and deleted by the OLT.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of the ANI-G ME or an instance of the TWDM
+//		channel ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the ANI-G or a TWDM channel. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 64 Bit Id
+//			Threshold data 64-bit ID: This attribute points to an instance of the threshold data 64-bit ME
+//			that contains PM threshold values. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Corrected Bytes
+//			This attribute counts the number of bytes that were corrected by the FEC function. (R)
+//			(mandatory) (8-bytes)
+//
+//		Corrected Code Words
+//			This attribute counts the code words that were corrected by the FEC function. (R) (mandatory)
+//			(8-bytes)
+//
+//		Uncorrectable Code Words
+//			This attribute counts errored code words that could not be corrected by the FEC function. (R)
+//			(mandatory) (8-bytes)
+//
+//		Total Code Words
+//			This attribute counts the total received code words. (R) (mandatory) (8-bytes)
+//
+//		Fec Seconds
+//			This attribute counts seconds during which there was an FEC anomaly. (R) (mandatory) (2-bytes)
+//
+type EnhancedFecPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	enhancedfecperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "EnhancedFecPerformanceMonitoringHistoryData",
+		ClassID: 453,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Corrected bytes",
+			1: "Corrected code words",
+			2: "Uncorrectable code words",
+			4: "FEC seconds",
+		},
+	}
+}
+
+// NewEnhancedFecPerformanceMonitoringHistoryData (class ID 453) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewEnhancedFecPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*enhancedfecperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/enhancedsecuritycontrol.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/enhancedsecuritycontrol.go
new file mode 100644
index 0000000..7c2948a
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/enhancedsecuritycontrol.go
@@ -0,0 +1,276 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// EnhancedSecurityControlClassID is the 16-bit ID for the OMCI
+// Managed entity Enhanced security control
+const EnhancedSecurityControlClassID = ClassID(332) // 0x014c
+
+var enhancedsecuritycontrolBME *ManagedEntityDefinition
+
+// EnhancedSecurityControl (Class ID: #332 / 0x014c)
+//	This ME contains the capabilities, parameters and controls of enhanced GPON security features
+//	when they are negotiated via the OMCI (Note). The attributes in this ME are intended to be used
+//	to implement a symmetric-key-based three step authentication process as described in the
+//	supplemental information section in the following.
+//
+//	NOTE - If an ITU-T G.987 system uses 802.1X authentication as defined in [ITU-T G.987.3], the
+//	only applicable attribute of this ME is the broadcast key table.
+//
+//	Relationships
+//		One instance of this ME is associated with the ONU ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. There is only one instance, number
+//			0. (R) (mandatory) (2 bytes)
+//
+//		Olt Crypto Capabilities
+//			This attribute specifies the cryptographic mechanisms available at the OLT. It is written by the
+//			OLT during authentication step 1. It is formatted as a bit map, where a 1 bit indicates that the
+//			particular algorithm is supported, and a 0 bit indicates it is not supported.
+//
+//			Bit position	Algorithm
+//
+//			1 (LSB)	AES-CMAC-128 (support is mandatory)
+//
+//			2 	HMAC-SHA-256
+//
+//			3 	HMAC-SHA-512
+//
+//			4-128 	Reserved
+//
+//			(W) (mandatory) (16 bytes)
+//
+//		Olt Random Challenge Table
+//			This attribute specifies the random challenge OLT_challenge issued by the OLT during
+//			authentication step 1. It is structured as a table, with each entry being 17 bytes. The first
+//			byte is the table row number, starting at 1, and the remaining 16 bytes are the contents of the
+//			entry. OLT_challenge is the concatenation of all 16-byte content fields. In normal use, the OLT
+//			will write all the entries in the table, and then trigger the ONU's processing of the entire
+//			table using the OLT challenge status attribute. The table size is known by the maximum index set
+//			by the OLT. The OLT can clear the table with a set operation to row 0. (R, W) (mandatory) (17 *
+//			N-bytes)
+//
+//			NOTE - It is assumed that the length of OLT_challenge is always an integer multiple of 16-bytes.
+//
+//		Olt Challenge Status
+//			This Boolean attribute controls the completion of authentication step 1. This attribute behaves
+//			as follows.
+//
+//			When the OLT performs the first of possibly several set operations to the OLT crypto
+//			capabilities or the OLT random challenge table attributes, a side effect of the set operation is
+//			that the ONU sets the OLT challenge status attribute to false.
+//
+//			When the OLT completes the set operation(s) to the OLT crypto capabilities and the OLT random
+//			challenge table attributes, then it sets the OLT challenge status attribute to true. This
+//			triggers the ONU to process the OLT random challenge table, using its choice of the OLT's
+//			candidate cryptographic hash algorithms.
+//
+//			The ONU initializes this attribute to the value false. (R, W) (mandatory) (1-byte)
+//
+//		Onu Selected Crypto Capabilities
+//			This attribute specifies the cryptographic capability selected by the ONU in authentication step
+//			2. Its value specifies one of the bit positions that has the value 1 in the OLT crypto
+//			capabilities attribute. (R) (mandatory) (1 byte)
+//
+//		Onu Random Challenge Table
+//			This attribute specifies the random challenge ONU_challenge issued by the ONU during
+//			authentication step 2. It is structured as a table, with each entry being 16-bytes of content.
+//			ONU_challenge is the concatenation of all 16-byte content fields in the table. Once the OLT
+//			triggers a response to be generated using the OLT challenge status attribute, the ONU generates
+//			the response and writes the table (in a single operation). The AVC generated by this attribute
+//			signals to the OLT that the challenge is ready, so that the OLT can commence a get/get-next
+//			sequence to obtain the table's contents. (R) (mandatory) (16 * P-bytes)
+//
+//		Onu Authentication Result Table
+//			(authentication step 2). This attribute contains the result of the authentication computation
+//			from the ONU (ONU_result), according to the ONU's selected crypto capabilities attribute.
+//
+//			ONU_result-= SelectedHashFunction (PSK, (ONU_selected_crypto capabilities | OLT_challenge |
+//			ONU_challenge | 0x0000 0000 0000 0000)),
+//
+//			where "|" denotes concatenation.
+//
+//			This attribute is structured as a table, with each entry being 16 bytes of content. The number
+//			of rows Q is implicit in the choice of hash algorithm.
+//
+//			Once the OLT triggers a response to be generated using the OLT challenge status attribute, the
+//			ONU generates ONU_result and writes the table (in a single operation). The AVC generated by this
+//			attribute signals to the OLT that the response is ready, so that the OLT can commence a get/get-
+//			next sequence to obtain the table's contents. (R) (mandatory) (16 * Q-bytes)
+//
+//		Olt Authentication Result Table
+//			This attribute is structured as a table, with each entry being 17 bytes. The first byte is the
+//			table row number, starting at 1; the remaining 16 bytes are content. OLT_result is the
+//			concatenation of all 16-byte content fields. The OLT writes all entries into the table, and then
+//			triggers the ONU's processing of the table using the OLT result status attribute. The number of
+//			rows R is implicit in the choice of hash algorithm. The OLT can clear the table with a set
+//			operation to row 0. (W) (mandatory) (17 * R-bytes)
+//
+//			This attribute is used in authentication step 3. It contains OLT_result, the result of the
+//			authentication computation from the OLT.
+//
+//			OLT_result-= SelectedHashFunction (PSK, (ONU_selected_crypto capabilities | ONU_challenge |
+//			OLT_challenge | ONU_serial_number)).
+//
+//			The ONU_serial_number is the serial number attribute of the ONU-G ME, 8 bytes.
+//
+//		Olt Result Status
+//			(authentication step 3). This Boolean attribute controls and reports the status of the OLT
+//			authentication result table attribute. This attribute behaves as follows.
+//
+//			When the OLT performs the first of possibly several set operations to the OLT authentication
+//			result table attribute, a side effect of the set operation is that the ONU sets the OLT result
+//			status attribute to false.
+//
+//			When the OLT completes the set operation(s) to the OLT authentication result table, then it sets
+//			the OLT result status attribute to true. This triggers the ONU to process the OLT authentication
+//			result table.
+//
+//			(R, W) (mandatory) (1 byte)
+//
+//		Onu Authentication Status
+//			This attribute indicates the status of the authentication relationship from the perspective of
+//			the ONU. It has the following values.
+//
+//			0	Indeterminate. This initial value indicates that the OMCI authentication process has not yet
+//			completed, and may not even have been started.
+//
+//			1	Reserved.
+//
+//			2	Reserved.
+//
+//			3	Authentication success: the procedure has completed at least once since the latest ONU
+//			activation and in its most recent execution, the ONU has authenticated the OLT.
+//
+//			4	Authentication failure: the procedure has completed at least once since the latest ONU
+//			activation, and either its most recent execution resulted in an error or the ONU has failed to
+//			authenticate the OLT.
+//
+//			5	Reserved.
+//
+//			Upon ONU activation, the ONU sets the attribute to the initial value. When the ONU
+//			authentication status has the value 3, encryption keys exchanged in the TC layer will be
+//			encrypted using the master session key (ITUT G.984 systems) or the key encryption key (KEK,
+//			ITU-T G.987 systems). The OLT should check the value of this attribute before initiating a key
+//			switch.
+//
+//			(R) (mandatory) (1 byte)
+//
+//		Master Session Key Name
+//			Following successful authentication, this register contains the "name," or the hash signature,
+//			of the current master session key. The master session key is defined as:
+//
+//			MSK-= SelectedHashFunction (PSK, (OLT_challenge | ONU_challenge)).
+//
+//			The master session key name is defined as:
+//
+//			MSKname-= SelectedHashFunction (PSK, (ONU_challenge | OLT_challenge | 0x 3141 5926 5358 9793
+//			3141 5926 5358 9793)).
+//
+//			If the selected hash function generates more than 128 bits, the result is truncated to the
+//			leftmost (most significant) 128 bits.
+//
+//			Upon the invalidation of a master session key (e.g., due to an ONU reset or deactivation, or due
+//			to an ONU-local decision that the master session key has expired), the ONU sets the master
+//			session key name to all zeros. (R) (mandatory) (16 bytes)
+//
+//		Broadcast Key Table
+//			10	Clear the entire table.
+//
+//			11	Reserved.
+//
+//			The four MSBs specify the length of the fragment, which is left-justified in the key fragment
+//			field. The value 0 indicates 16-bytes of key fragment.
+//
+//			The other two bits are reserved.
+//
+//			Row identifier (1 byte): The two MSBs of this field are the key index, which appears in the
+//			header of encrypted multicast GEM frames. Key index 0 always indicates cleartext, and should
+//			therefore not appear in the identifier. The four LSBs identify the key fragment number, starting
+//			with 0. The other two bits are reserved.
+//
+//			Key fragment (16 bytes): This field contains the specified fragment of the key (encrypted with
+//			AES-ECB using the KEK).
+//
+//			(R, W) (optional) (18N bytes)
+//
+//			This attribute is defined only in ITU-T G.987 systems. It contains the broadcast key generated
+//			by the OLT. It is a table, each of whose rows is structured as follows.
+//
+//			Row control (1 byte): The two LSBs of this byte determine the attribute's behaviour under the
+//			set action. They always read back as 0 under the get next action.
+//
+//			00	Set the specified row.
+//
+//			01	Clear the specified row.
+//
+//		Effective Key Length
+//			This attribute specifies the maximum effective length, in bits, of keys generated by the ONU.
+//			(R) (optional) (2 bytes)
+//
+type EnhancedSecurityControl struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	enhancedsecuritycontrolBME = &ManagedEntityDefinition{
+		Name:    "EnhancedSecurityControl",
+		ClassID: 332,
+		MessageTypes: mapset.NewSetWith(
+			Get,
+			GetNext,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewEnhancedSecurityControl (class ID 332) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewEnhancedSecurityControl(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*enhancedsecuritycontrolBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/enhancedtcperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/enhancedtcperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..ddc1605
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/enhancedtcperformancemonitoringhistorydata.go
@@ -0,0 +1,172 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// EnhancedTcPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity Enhanced TC performance monitoring history data
+const EnhancedTcPerformanceMonitoringHistoryDataClassID = ClassID(454) // 0x01c6
+
+var enhancedtcperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// EnhancedTcPerformanceMonitoringHistoryData (Class ID: #454 / 0x01c6)
+//	This ME collects PM data associated with the XGS-PON and subsequent ITU-T PON systems' TC layer.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an ANI-G.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the ANI-G. (R, set-by-create) (mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 64 Bit Id
+//			Threshold data 64-bit ID: This attribute points to an instance of the threshold data 64-bit ME
+//			that contains PM threshold values. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Psbd Hec Error Count
+//			This attribute counts HEC errors in any of the fields of the downstream physical sync block. (R)
+//			(optional) (4-bytes)
+//
+//		Xgtc Hec Error Count
+//			This attribute counts HEC errors detected in the XGTC header. In [ITU-T G.9807.1], this
+//			attribute is used for FS HEC error count management. (R) (optional) (4-bytes)
+//
+//		Unknown Profile Count
+//			This attribute counts the number of grants received whose specified profile was not known to the
+//			ONU. (R) (optional) (4-bytes)
+//
+//		Transmitted Xgem Frames
+//			This attribute counts the number of non-idle XGEM frames transmitted. If an SDU is fragmented,
+//			each fragment is an XGEM frame and is counted as such. (R) (mandatory) (8 bytes)
+//
+//		Fragment Xgem Frames
+//			This attribute counts the number of XGEM frames that represent fragmented SDUs, as indicated by
+//			the LF bit = 0. (R) (optional) (8-bytes)
+//
+//		Xgem Hec Lost Words Count
+//			This attribute counts the number of 4-byte words lost because of an XGEM frame HEC error. In
+//			general, all XGTC payload following the error is lost, until the next PSBd event. (R) (optional)
+//			(8 bytes)
+//
+//		Xgem Key Errors
+//			This attribute counts the number of downstream XGEM frames received with an invalid key
+//			specification. The key may be invalid for several reasons, among which are:
+//
+//			a)	GEM port provisioned for clear text and key index not equal to 00;
+//
+//			b)	no multicast key of the specified key index has been provided via the OMCI for a multicast
+//			GEM port;
+//
+//			c)	no unicast key of the specified key index has been successfully negotiated (see clause 15.5
+//			of [ITU-T G.987.3] or clause C.15.5 of [ITU-T G.9807.1] for key negotiation state machine);
+//
+//			d)	GEM port specified to be encrypted and key index = 00;
+//
+//			e)	key index = 11, a reserved value.
+//
+//			(R) (mandatory) (8 bytes)
+//
+//		Xgem Hec Error Count
+//			This attribute counts the number of instances of an XGEM frame HEC error. (R) (mandatory) (8
+//			bytes)
+//
+//		Transmitted Bytes In Non_Idle Xgem Frames
+//			Transmitted bytes in non-idle XGEM frames: This attribute counts the number of transmitted bytes
+//			in non-idle XGEM frames. (R) (mandatory) (8 bytes)
+//
+//		Received Bytes In Non_Idle Xgem Frames
+//			Received bytes in non-idle XGEM frames: This attribute counts the number of received bytes in
+//			non-idle XGEM frames. (R) (optional) (8 bytes)
+//
+//		Lods Event Count
+//			This attribute counts the number of state transitions from O5.1 to O6. (R) (optional) (4-bytes)
+//
+//		Lods Event Restored Count
+//			This attribute counts the number of LODS cleared events. (R) (optional) (4-bytes)
+//
+//		Onu Reactivation By Lods Events
+//			This attribute counts the number of LODS events resulting in ONU reactivation without
+//			synchronization being reacquired. (R) (optional) (4-bytes)
+//
+type EnhancedTcPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	enhancedtcperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "EnhancedTcPerformanceMonitoringHistoryData",
+		ClassID: 454,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			1: "PSBd HEC error count",
+			2: "XGTC HEC error count",
+			3: "Unknown profile count",
+			4: "XGEM HEC loss count",
+			5: "XGEM key errors",
+			6: "XGEM HEC error count",
+		},
+	}
+}
+
+// NewEnhancedTcPerformanceMonitoringHistoryData (class ID 454) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewEnhancedTcPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*enhancedtcperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/epondownstreamperformancemonitoringconfiguration.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/epondownstreamperformancemonitoringconfiguration.go
new file mode 100644
index 0000000..8ee5afc
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/epondownstreamperformancemonitoringconfiguration.go
@@ -0,0 +1,116 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// EponDownstreamPerformanceMonitoringConfigurationClassID is the 16-bit ID for the OMCI
+// Managed entity EPON downstream performance monitoring configuration
+const EponDownstreamPerformanceMonitoringConfigurationClassID = ClassID(406) // 0x0196
+
+var epondownstreamperformancemonitoringconfigurationBME *ManagedEntityDefinition
+
+// EponDownstreamPerformanceMonitoringConfiguration (Class ID: #406 / 0x0196)
+//	This ME represents window sizes and threshold values for EPON downstream PM operations which are
+//	defined in [IEEE 802.3] as: errored symbol period, errored frame, errored frame period and
+//	errored frame seconds summary.
+//
+//	The EPON ONU automatically instantiates an instance of this ME for each ANI-E.
+//
+//	Relationships
+//		An instance of this ME is associated with an ANI-E.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the ANI-E. (R, set-by-create) (mandatory) (2-bytes)
+//
+//		Errored Symbol Period Window
+//			This attribute specifies the number of symbols in the measurement period, as defined in clause
+//			57.5.3.1 of [IEEE 802.3]. (R, W) (optional) (8-bytes)
+//
+//		Errored Symbol Period Threshold
+//			This attribute specifies the threshold of errored symbols for generating an event report, as
+//			defined in clause 57.5.3.1 of [IEEE 802.3]. (R, W) (optional) (8-bytes)
+//
+//		Errored Frame Window
+//			This attribute specifies the duration in units of 100-ms of the measurement period, as defined
+//			in clause 57.5.3.2 of [IEEE 802.3]. (R, W) (optional) (2-bytes)
+//
+//		Errored Frame Threshold
+//			This attribute specifies the threshold of errored frames for generating an event report, as
+//			defined in clause 57.5.3.2 of [IEEE 802.3]. (R, W) (optional) (4-bytes)
+//
+//		Errored Frame Period Window
+//			This attribute specifies the duration in terms of frames of the measurement period, as defined
+//			in clause 57.5.3.3 of [IEEE 802.3]. (R, W) (optional) (4-bytes)
+//
+//		Errored Frame Period Threshold
+//			This attribute specifies the threshold of errored frames for generating an event report, as
+//			defined in clause 57.5.3.3 of [IEEE 802.3]. (R, W) (optional) (4-bytes)
+//
+//		Errored Frame Seconds Summary Window
+//			This attribute specifies the duration in units of 100ms of the measurement period, as defined in
+//			clause-57.5.3.4 of [IEEE-802.3]. (R, W) (optional) (2-bytes)
+//
+//		Errored Frame Seconds Summary Threshold
+//			This attribute specifies the threshold of errored frame seconds for generating an event report,
+//			as defined in clause 57.5.3.4 of [IEEE 802.3]. (R, W) (optional) (2-bytes)
+//
+type EponDownstreamPerformanceMonitoringConfiguration struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	epondownstreamperformancemonitoringconfigurationBME = &ManagedEntityDefinition{
+		Name:    "EponDownstreamPerformanceMonitoringConfiguration",
+		ClassID: 406,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewEponDownstreamPerformanceMonitoringConfiguration (class ID 406) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewEponDownstreamPerformanceMonitoringConfiguration(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*epondownstreamperformancemonitoringconfigurationBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/equipmentextensionpackage.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/equipmentextensionpackage.go
new file mode 100644
index 0000000..22bca67
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/equipmentextensionpackage.go
@@ -0,0 +1,128 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// EquipmentExtensionPackageClassID is the 16-bit ID for the OMCI
+// Managed entity Equipment extension package
+const EquipmentExtensionPackageClassID = ClassID(160) // 0x00a0
+
+var equipmentextensionpackageBME *ManagedEntityDefinition
+
+// EquipmentExtensionPackage (Class ID: #160 / 0x00a0)
+//	This ME supports optional extensions to circuit pack MEs. If the circuit pack supports these
+//	features, the ONU creates and deletes this ME along with its associated real or virtual circuit
+//	pack.
+//
+//	Relationships
+//		An equipment extension package may be contained by an ONU-G or cardholder.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the ONU-G or cardholder. (R) (mandatory) (2-bytes)
+//
+//		Environmental Sense
+//			This attribute provisions an ONU that supports external sense points, e.g., physical security
+//			detectors at an enclosure. Each pair of bits is defined as follows.
+//
+//			00	Sense point disabled (default)
+//
+//			01	Report contact closure
+//
+//			10	Report contact open
+//
+//			11	Sense point disabled (same as 00)
+//
+//			If the byte is represented in binary as 0B hhgg ffee ddcc bbaa, bits hh correspond to sense
+//			point 1, while bits aa correspond to sense point 8. (R,-W) (optional) (2-bytes)
+//
+//			NOTE - Some specific sense point applications are already defined on the ONU-G ME. It is the
+//			vendor's choice how to configure and report sense points that appear both generically and
+//			specifically.
+//
+//		Contact Closure Output
+//			This attribute provisions an ONU that supports external contact closure outputs, e.g., sump pump
+//			or air conditioner activation at an ONU enclosure. A contact point is said to be released when
+//			it is not energized. Whether this corresponds to an open or a closed electrical circuit depends
+//			on the ONU's wiring options. Upon ONU initialization, all contact points should go to the
+//			released state.
+//
+//			If the byte is represented in binary as 0B hhgg ffee ddcc bbaa, bits hh correspond to contact
+//			output point 1, while bits aa correspond to contact output point 8.
+//
+//			On write, the bits of this attribute have the following meaning.
+//
+//			0x	No change to contact output point state
+//
+//			10	Release contact output point
+//
+//			11	Operate contact output point
+//
+//			On read, the left bit in each pair should be set to 0 at the ONU and ignored at the OLT. The
+//			right bit indicates a released output point with 0 and an operated contact point with 1. (R,-W)
+//			(optional) (2-bytes)
+//
+type EquipmentExtensionPackage struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	equipmentextensionpackageBME = &ManagedEntityDefinition{
+		Name:    "EquipmentExtensionPackage",
+		ClassID: 160,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Reserved",
+			1: "Sense point 1",
+			2: "Sense point 2",
+			3: "Sense point 3",
+			4: "Sense point 4",
+			5: "Sense point 5",
+			6: "Sense point 6",
+			7: "Sense point 7",
+			8: "Sense point 8",
+		},
+	}
+}
+
+// NewEquipmentExtensionPackage (class ID 160) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewEquipmentExtensionPackage(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*equipmentextensionpackageBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/ethernetflowterminationpoint.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/ethernetflowterminationpoint.go
new file mode 100644
index 0000000..d2401d8
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/ethernetflowterminationpoint.go
@@ -0,0 +1,114 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// EthernetFlowTerminationPointClassID is the 16-bit ID for the OMCI
+// Managed entity Ethernet flow termination point
+const EthernetFlowTerminationPointClassID = ClassID(286) // 0x011e
+
+var ethernetflowterminationpointBME *ManagedEntityDefinition
+
+// EthernetFlowTerminationPoint (Class ID: #286 / 0x011e)
+//	The Ethernet flow TP contains the attributes necessary to originate and terminate Ethernet
+//	frames in the ONU. It is appropriate when transporting pseudowire services via layer-2.
+//	Instances of this ME are created and deleted by the OLT.
+//
+//	Relationships
+//		One Ethernet flow TP ME exists for each distinct pseudowire service that is transported via
+//		layer 2.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to a pseudowire TP ME. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Destination Mac
+//			This attribute specifies the destination MAC address of upstream Ethernet frames. (R,-W,
+//			setbycreate) (mandatory) (6-bytes)
+//
+//		Source Mac
+//			This attribute specifies the near-end MAC address. It is established by nonOMCI means (e.g.,
+//			factory programmed into ONU flash memory) and is included here for information only. (R)
+//			(mandatory) (6-bytes)
+//
+//		Tag Policy
+//			0	untagged frame
+//
+//			1	tagged frame
+//
+//			(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//			This attribute specifies the tagging policy to be applied to upstream Ethernet frames.
+//
+//		Tci
+//			If the tag policy calls for tagging of upstream Ethernet frames, this attribute specifies the
+//			tag control information, which includes the VLAN tag, P bits and CFI bit. (R,-W) (optional)
+//			(2-bytes)
+//
+//		Loopback
+//			This attribute sets the loopback configuration as follows.
+//
+//			0	No loopback
+//
+//			1	Loopback of downstream traffic at MAC client
+//
+//			(R,-W) (mandatory) (1-byte)
+//
+type EthernetFlowTerminationPoint struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	ethernetflowterminationpointBME = &ManagedEntityDefinition{
+		Name:    "EthernetFlowTerminationPoint",
+		ClassID: 286,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewEthernetFlowTerminationPoint (class ID 286) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewEthernetFlowTerminationPoint(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*ethernetflowterminationpointBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/ethernetframeextendedpm.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/ethernetframeextendedpm.go
new file mode 100644
index 0000000..bad6912
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/ethernetframeextendedpm.go
@@ -0,0 +1,253 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// EthernetFrameExtendedPmClassID is the 16-bit ID for the OMCI
+// Managed entity Ethernet frame extended PM
+const EthernetFrameExtendedPmClassID = ClassID(334) // 0x014e
+
+var ethernetframeextendedpmBME *ManagedEntityDefinition
+
+// EthernetFrameExtendedPm (Class ID: #334 / 0x014e)
+//	This ME collects some of the PM data at a point where an Ethernet flow can be observed. It is
+//	based on the Etherstats group of [IETF RFC 2819]. Instances of this ME are created and deleted
+//	by the OLT. References to received frames are to be interpreted as the number of frames entering
+//	the monitoring point in the direction specified by the control block.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME may be associated with an instance of an ME at any Ethernet interface
+//		within the ONU. The specific ME is identified in the control block attribute.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. To facilitate discovery, the
+//			identification of instances sequentially starting with 1 is encouraged. (R, setbycreate)
+//			(mandatory) (2 bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. If continuous accumulation
+//			is enabled in the control block, this attribute is not used and has the fixed value 0. (R)
+//			(mandatory) (1 byte)
+//
+//		Control Block
+//			This attribute contains fields defined as follows.+
+//
+//			Threshold data 1/2 ID: (2 bytes) This attribute points to an instance of the threshold data 1 ME
+//			that contains PM threshold values. Since no threshold value attribute number exceeds 7, a
+//			threshold data 2 ME is optional. When PM is collected on a continuously running basis, rather
+//			than in 15-min intervals, counter thresholds should not be established. There is no mechanism to
+//			clear a TCA, and any counter parameter may eventually be expected to cross any given threshold
+//			value.
+//
+//			Parent ME class: (2 bytes) This field contains the enumerated value of the ME class of the PM
+//			ME's parent. Together with the parent ME instance field, this permits a given PM ME to be
+//			associated with any OMCI ME. The supported ME classes are as follows.
+//
+//			46	MAC bridge configuration data
+//
+//			47	MAC bridge port configuration data
+//
+//			11	Physical path termination point Ethernet UNI
+//
+//			98	Physical path termination point xDSL UNI part 1
+//
+//			266	GEM IW termination point
+//
+//			281	Multicast GEM IW termination point
+//
+//			329	Virtual Ethernet interface point
+//
+//			162	Physical path termination point MoCA UNI
+//
+//			Parent ME instance: (2 bytes) This field identifies the specific parent ME instance to which the
+//			PM ME is attached.
+//
+//			Accumulation disable: (2 bytes) This bit field allows PM accumulation to be disabled; refer to
+//			Table 9.3.32-1. The default value 0 enables PM collection. If bit 15 is set to 1, no PM is
+//			collected by this ME instance. If bit 15-=-0 and any of bits 14..1 are set to 1, PM collection
+//			is inhibited for the attributes indicated by the 1 bits. Inhibiting PM collection does not
+//			change the value of a PM attribute, but if PM is accumulated in 15-min intervals, the value is
+//			lost at the next 15-min interval boundary.
+//
+//			Bit 16 is an action bit that always reads back as 0. When written to 1, it resets all PM
+//			attributes in the ME, and clears any TCAs that may be outstanding.
+//
+//			TCA disable: (2 bytes). Also clarified in Table 9.3.32-1, this field permits TCAs to be
+//			inhibited, either individually or for the complete ME instance. As with the accumulation disable
+//			field, the default value 0 enables TCAs, and setting the global disable bit overrides the
+//			settings of the individual thresholds. Unlike the accumulation disable field, the bits are
+//			mapped to the thresholds defined in the associated threshold data 1 and 2 ME instances. When the
+//			global or attribute-specific value changes from 0 to 1, outstanding TCAs are cleared, either for
+//			the ME instance globally or for the individual disabled threshold. These bits affect only
+//			notifications, not the underlying parameter accumulation or storage.
+//
+//			If the threshold data 1/2 ID attribute does not contain a valid pointer, this field is not
+//			meaningful.
+//
+//			Thresholds should be used with caution if PM attributes are accumulated continuously.
+//
+//			Control fields: (2 bytes). This field is a bit map whose values govern the behaviour of the PM
+//			ME. Bits are assigned as follows.
+//
+//			Bit 1 (LSB)	The value 1 specifies continuous accumulation, regardless of 15-min intervals. There
+//			is no concept of current and historical accumulators; get and get current data (if supported)
+//			both return current values. The value 0 specifies 15-min accumulators exactly like those of
+//			classical PM.
+//
+//			Bit 2	This bit indicates directionality for the collection of data. The value 0 indicates that
+//			data are to be collected for upstream traffic. The value 1 indicates that data are to be
+//			collected for downstream traffic.
+//
+//			Bits 3..14	Reserved, should be set to 0 by the OLT and ignored by the ONU.
+//
+//			Bit 15	When this bit is 1, the P bits of the TCI field are used to filter the PM data collected.
+//			The value 0 indicates that PM is collected without regard to P bits.
+//
+//			Bit 16	When this bit is 1, the VID bits of the TCI field are used to filter the PM data
+//			collected. The value 0 indicates that PM is collected without regard to VID.
+//
+//			TCI: (2 bytes). This field contains the value optionally used as a filter for the PM data
+//			collected, under the control of bits 15..16 of the control fields. This value is matched to the
+//			outer tag of a frame. Untagged frames are not counted when this field is used.
+//
+//			Reserved: (2 bytes). Not used; should be set to 0 by the OLT and ignored by the ONU.
+//
+//			(R, W, setbycreate) (mandatory) (16 bytes)
+//
+//		Drop Events
+//			The total number of events in which frames were dropped due to a lack of resources. This is not
+//			necessarily the number of frames dropped; it is the number of times this event was detected. (R)
+//			(mandatory) (4 bytes)
+//
+//		Octets
+//			The total number of octets received, including those in bad frames, excluding framing bits, but
+//			including FCS. (R) (mandatory) (4 bytes)
+//
+//		Frames
+//			The total number of frames received, including bad frames, broadcast frames and multicast
+//			frames. (R) (mandatory) (4 bytes)
+//
+//		Broadcast Frames
+//			The total number of received good frames directed to the broadcast address. This does not
+//			include multicast frames. (R) (mandatory) (4 bytes)
+//
+//		Multicast Frames
+//			The total number of received good frames directed to a multicast address. This does not include
+//			broadcast frames. (R) (mandatory) (4 bytes)
+//
+//		Crc Errored Frames
+//			The total number of frames received that had a length (excluding framing bits, but including FCS
+//			octets) of between 64 and 1518 octets, inclusive, but had either a bad FCS with an integral
+//			number of octets (FCS error) or a bad FCS with a non-integral number of octets (alignment
+//			error). (R) (mandatory) (4 bytes)
+//
+//		Undersize Frames
+//			The total number of frames received that were less than 64 octets long but were otherwise well
+//			formed (excluding framing bits, but including FCS octets). (R) (mandatory) (4 bytes)
+//
+//		Oversize Frames
+//			The total number of frames received that were longer than 1518 octets (excluding framing bits,
+//			but including FCS octets) and were otherwise well formed. (R) (mandatory) (4 bytes)
+//
+//		Frames 64 Octets
+//			The total number of received frames (including bad frames) that were 64-octets long, excluding
+//			framing bits but including FCS. (R) (mandatory) (4-bytes)
+//
+//		Frames 65 To 127 Octets
+//			The total number of received frames (including bad frames) that were 65..127 octets long,
+//			excluding framing bits but including FCS. (R) (mandatory) (4 bytes)
+//
+//		Frames 128 To 255 Octets
+//			The total number of frames (including bad frames) received that were 128..255 octets long,
+//			excluding framing bits but including FCS. (R) (mandatory) (4 bytes)
+//
+//		Frames 256 To 511 Octets
+//			The total number of frames (including bad frames) received that were 256..511 octets long,
+//			excluding framing bits but including FCS. (R) (mandatory) (4 bytes)
+//
+//		Frames 512 To 1 023 Octets
+//			Frames 512 to 1-023 octets: The total number of frames (including bad frames) received that were
+//			512..1-023 octets long, excluding framing bits but including FCS. (R) (mandatory) (4 bytes)
+//
+//		Frames 1024 To 1518 Octets
+//			The total number of frames (including bad frames) received that were 1024..1518 octets long,
+//			excluding framing bits but including FCS. (R) (mandatory) (4 bytes)
+//
+type EthernetFrameExtendedPm struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	ethernetframeextendedpmBME = &ManagedEntityDefinition{
+		Name:    "EthernetFrameExtendedPm",
+		ClassID: 334,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			1: "Drop events",
+			2: "CRC errored frames",
+			3: "Undersize frames",
+			4: "Oversize frames",
+		},
+	}
+}
+
+// NewEthernetFrameExtendedPm (class ID 334) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewEthernetFrameExtendedPm(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*ethernetframeextendedpmBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/ethernetframeextendedpm64-bit.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/ethernetframeextendedpm64-bit.go
new file mode 100644
index 0000000..4d3eb90
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/ethernetframeextendedpm64-bit.go
@@ -0,0 +1,252 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// EthernetFrameExtendedPm64BitClassID is the 16-bit ID for the OMCI
+// Managed entity Ethernet frame extended PM 64-bit
+const EthernetFrameExtendedPm64BitClassID = ClassID(425) // 0x01a9
+
+var ethernetframeextendedpm64bitBME *ManagedEntityDefinition
+
+// EthernetFrameExtendedPm64Bit (Class ID: #425 / 0x01a9)
+//	This ME collects some of the PM data at a point where an Ethernet flow can be observed. It is
+//	based on the Etherstats group of [IETF RFC 2819] and [IETF RFC 2863]. Instances of this ME are
+//	created and deleted by the OLT. References to received frames are to be interpreted as the
+//	number of frames entering the monitoring point in the direction specified by the control block.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME may be associated with an instance of an ME at any Ethernet interface
+//		within the ONU. The specific ME is identified in the control block attribute.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. To facilitate discovery, it is
+//			encouraged to identify instances sequentially starting with 1. (R, set-by-create) (mandatory) (2
+//			bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. If continuous accumulation
+//			is enabled in the control block, this attribute is not used and has the fixed value 0. (R)
+//			(mandatory) (1 byte)
+//
+//		Control Block
+//			This attribute contains fields defined as follows.
+//
+//			Threshold data 64-bit ID: (2 bytes). This attribute points to an instance of the threshold data
+//			64-bit ME that contains PM threshold values. When PM is collected on a continuously running
+//			basis, rather than in 15-min intervals, counter thresholds should not be established. There is
+//			no mechanism to clear a TCA, and any counter parameter may eventually be expected to cross any
+//			given threshold value.
+//
+//			Parent ME class: (2 bytes). This field contains the enumerated value of the ME class of the PM
+//			ME's parent. Together with the parent ME instance field, this permits a given PM ME to be
+//			associated with any OMCI ME. The supported ME classes are as follows.
+//
+//			46	MAC bridge configuration data
+//
+//			47	MAC bridge port configuration data
+//
+//			11	Physical path termination point Ethernet UNI
+//
+//			98	Physical path termination point xDSL UNI part 1
+//
+//			266	GEM IW termination point
+//
+//			281	Multicast GEM IW termination point
+//
+//			329	Virtual Ethernet interface point
+//
+//			162	Physical path termination point MoCA UNI
+//
+//			Parent ME instance: (2 bytes). This field identifies the specific parent ME instance to which
+//			the PM ME is attached.
+//
+//			Accumulation disable: (2 bytes). This bit field allows PM accumulation to be disabled; refer to
+//			Table 9.3.32-1. The default value 0 enables PM collection. If bit 15 is set to 1, no PM is
+//			collected by this ME instance. If bit 15 = 0 and any of bits 14..1 are set to 1, PM collection
+//			is inhibited for the attributes indicated by the 1 bits. Inhibiting PM collection does not
+//			change the value of a PM attribute, but if PM is accumulated in 15-min intervals, the value is
+//			lost at the next 15-min interval boundary.
+//
+//			Bit 16 is an action bit that always reads back as 0. When written to 1, it resets all PM
+//			attributes in the ME, and clears any TCAs that may be outstanding.
+//
+//			TCA disable: (2 bytes). Also clarified in Table 9.3.32-1, this field permits TCAs to be
+//			inhibited, either individually or for the complete ME instance. As with the accumulation disable
+//			field, the default value 0 enables TCAs, and setting the global disable bit overrides the
+//			settings of the individual thresholds. Unlike the accumulation disable field, the bits are
+//			mapped to the thresholds defined in the associated threshold data 1 and 2 ME instances. When the
+//			global or attribute-specific value changes from 0 to 1, outstanding TCAs are cleared, either for
+//			the ME instance globally or for the individual disabled threshold. These bits affect only
+//			notifications, not the underlying parameter accumulation or storage.
+//
+//			If the threshold data 1/2 ID attribute does not contain a valid pointer, this field is not
+//			meaningful.
+//
+//			Thresholds should be used with caution if PM attributes are accumulated continuously.
+//
+//			Control fields: (2 bytes). This field is a bit map whose values govern the behaviour of the PM
+//			ME. Bits are assigned as follows:
+//
+//			Bit 1 (LSB)	The value 1 specifies continuous accumulation, regardless of 15-min intervals. There
+//			is no concept of current and historic accumulators; get and get current data (if supported) both
+//			return current values. The value 0 specifies 15-min accumulators exactly like those of classical
+//			PM.
+//
+//			Bit 2	This bit indicates directionality for the collection of data. The value 0 indicates that
+//			data are to be collected for upstream traffic. The value 1 indicates that data are to be
+//			collected for downstream traffic.
+//
+//			Bits 3..14	Reserved, should be set to 0 by the OLT and ignored by the ONU.
+//
+//			Bit 15	When this bit is 1, the P bits of the TCI field are used to filter the PM data collected.
+//			The value 0 indicates that PM is collected without regard to P bits.
+//
+//			Bit 16	When this bit is 1, the VID bits of the TCI field are used to filter the PM data
+//			collected. The value 0 indicates that PM is collected without regard to VID.
+//
+//			TCI: (2 bytes). This field contains the value optionally used as a filter for the PM data
+//			collected, under the control of bits 15..16 of the control fields. This value is matched to the
+//			outer tag of a frame. Untagged frames are not counted when this field is used.
+//
+//			Reserved: (2 bytes). Not used; should be set to 0 by the OLT and ignored by the ONU.
+//
+//			(R, W, set-by-create) (mandatory) (16 bytes)
+//
+//		Drop Events
+//			The total number of events in which frames were dropped due to lack of resources. This is not
+//			necessarily the number of frames dropped; it is the number of times this event was detected. (R)
+//			(mandatory) (8 bytes)
+//
+//		Octets
+//			The total number of octets received, including those in bad frames, excluding framing bits, but
+//			including FCS. (R) (mandatory) (8 bytes)
+//
+//		Frames
+//			The total number of frames received, including bad frames, broadcast frames and multicast
+//			frames. (R) (mandatory) (8 bytes)
+//
+//		Broadcast Frames
+//			The total number of received good frames directed to the broadcast address. This does not
+//			include multicast frames. (R) (mandatory) (8 bytes)
+//
+//		Multicast Frames
+//			The total number of received good frames directed to a multicast address. This does not include
+//			broadcast frames. (R) (mandatory) (8 bytes)
+//
+//		Crc Errored Frames
+//			The total number of frames received that had a length (excluding framing bits, but including FCS
+//			octets) of between 64 and 1518 octets, inclusive, but had either a bad FCS with an integral
+//			number of octets (FCS error) or a bad FCS with a non-integral number of octets (alignment
+//			error). (R) (mandatory) (8 bytes)
+//
+//		Undersize Frames
+//			The total number of frames received that were less than 64 octets long, but were otherwise well
+//			formed (excluding framing bits, but including FCS octets). (R) (mandatory) (8 bytes)
+//
+//		Oversize Frames
+//			The total number of frames received that were longer than 1518 octets (excluding framing bits,
+//			but including FCS octets) and were otherwise well formed. (R) (mandatory) (8 bytes)
+//
+//		Frames 64 Octets
+//			The total number of received frames (including bad frames) that were 64-octets long, excluding
+//			framing bits, but including FCS. (R) (mandatory) (8-bytes)
+//
+//		Frames 65 To 127 Octets
+//			The total number of received frames (including bad frames) that were 65..127 octets long,
+//			excluding framing bits but including FCS. (R) (mandatory) (8 bytes)
+//
+//		Frames 128 To 255 Octets
+//			The total number of frames (including bad frames) received that were 128..255 octets long,
+//			excluding framing bits but including FCS. (R) (mandatory) (8 bytes)
+//
+//		Frames 256 To 511 Octets
+//			The total number of frames (including bad frames) received that were 256..511 octets long,
+//			excluding framing bits but including FCS. (R) (mandatory) (8 bytes)
+//
+//		Frames 512 To 1023 Octets
+//			The total number of frames (including bad frames) received that were 512..1023 octets long,
+//			excluding framing bits but including FCS. (R) (mandatory) (8 bytes)
+//
+//		Frames 1024 To 1518 Octets
+//			The total number of frames (including bad frames) received that were 1024..1518 octets long,
+//			excluding framing bits but including FCS. (R) (mandatory) (8 bytes)
+//
+type EthernetFrameExtendedPm64Bit struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	ethernetframeextendedpm64bitBME = &ManagedEntityDefinition{
+		Name:    "EthernetFrameExtendedPm64Bit",
+		ClassID: 425,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			1: "Drop events",
+			2: "CRC errored frames",
+			3: "Undersize frames",
+			4: "Oversize frames",
+		},
+	}
+}
+
+// NewEthernetFrameExtendedPm64Bit (class ID 425) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewEthernetFrameExtendedPm64Bit(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*ethernetframeextendedpm64bitBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/ethernetframeperformancemonitoringhistorydatadownstream.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/ethernetframeperformancemonitoringhistorydatadownstream.go
new file mode 100644
index 0000000..de3bb40
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/ethernetframeperformancemonitoringhistorydatadownstream.go
@@ -0,0 +1,166 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// EthernetFramePerformanceMonitoringHistoryDataDownstreamClassID is the 16-bit ID for the OMCI
+// Managed entity Ethernet frame performance monitoring history data downstream
+const EthernetFramePerformanceMonitoringHistoryDataDownstreamClassID = ClassID(321) // 0x0141
+
+var ethernetframeperformancemonitoringhistorydatadownstreamBME *ManagedEntityDefinition
+
+// EthernetFramePerformanceMonitoringHistoryDataDownstream (Class ID: #321 / 0x0141)
+//	This ME is identical to the Ethernet frame PM history data upstream ME, with the exception that
+//	it monitors downstream traffic.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of a MAC bridge port configuration data. (R, setbycreate)
+//			(mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 ME that
+//			contains PM threshold values. Since no threshold value attribute number exceeds 7, a threshold
+//			data 2 ME is optional. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Drop Events
+//			The total number of events in which packets were dropped due to a lack of resources. This is not
+//			necessarily the number of packets dropped; it is the number of times this event was detected.
+//			(R) (mandatory) (4-bytes)
+//
+//		Octets
+//			The total number of upstream octets received, including those in bad packets, excluding framing
+//			bits, but including FCS. (R) (mandatory) (4-bytes)
+//
+//		Packets
+//			The total number of upstream packets received, including bad packets, broadcast packets and
+//			multicast packets. (R) (mandatory) (4-bytes)
+//
+//		Broadcast Packets
+//			The total number of upstream good packets received that were directed to the broadcast address.
+//			This does not include multicast packets. (R) (mandatory) (4-bytes)
+//
+//		Multicast Packets
+//			The total number of upstream good packets received that were directed to a multicast address.
+//			This does not include broadcast packets. (R) (mandatory) (4-bytes)
+//
+//		Crc Errored Packets
+//			The total number of upstream packets received that had a length (excluding framing bits, but
+//			including FCS octets) of between 64-octets and 1518-octets, inclusive, but had either a bad FCS
+//			with an integral number of octets (FCS error) or a bad FCS with a non-integral number of octets
+//			(alignment error). (R) (mandatory) (4-bytes)
+//
+//		Undersize Packets
+//			The total number of upstream packets received that were less than 64-octets long, but were
+//			otherwise well formed (excluding framing bits, but including FCS). (R) (mandatory) (4-bytes)
+//
+//		Oversize Packets
+//			NOTE 2 - If 2-000-byte Ethernet frames are supported, counts in this performance parameter are
+//			not necessarily errors.
+//
+//			The total number of upstream packets received that were longer than 1518-octets (excluding
+//			framing bits, but including FCS) and were otherwise well formed. (R) (mandatory) (4-bytes)
+//
+//		Packets 64 Octets
+//			The total number of upstream received packets (including bad packets) that were 64-octets long,
+//			excluding framing bits but including FCS. (R) (mandatory) (4-bytes)
+//
+//		Packets 65 To 127 Octets
+//			The total number of upstream received packets (including bad packets) that were 65..127 octets
+//			long, excluding framing bits but including FCS. (R) (mandatory) (4-bytes)
+//
+//		Packets 128 To 255 Octets
+//			The total number of upstream packets (including bad packets) received that were 128..255 octets
+//			long, excluding framing bits but including FCS. (R) (mandatory) (4-bytes)
+//
+//		Packets 256 To 511 Octets
+//			The total number of upstream packets (including bad packets) received that were 256..511 octets
+//			long, excluding framing bits but including FCS. (R) (mandatory) (4-bytes)
+//
+//		Packets 512 To 1023 Octets
+//			The total number of upstream packets (including bad packets) received that were 512..1-023
+//			octets long, excluding framing bits but including FCS. (R) (mandatory) (4-bytes)
+//
+//		Packets 1024 To 1518 Octets
+//			The total number of upstream packets (including bad packets) received that were 1024..1518
+//			octets long, excluding framing bits, but including FCS. (R) (mandatory) (4-bytes)
+//
+type EthernetFramePerformanceMonitoringHistoryDataDownstream struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	ethernetframeperformancemonitoringhistorydatadownstreamBME = &ManagedEntityDefinition{
+		Name:    "EthernetFramePerformanceMonitoringHistoryDataDownstream",
+		ClassID: 321,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Drop events",
+			1: "CRC errored packets",
+			2: "Undersize packets",
+			3: "Oversize packets",
+		},
+	}
+}
+
+// NewEthernetFramePerformanceMonitoringHistoryDataDownstream (class ID 321) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewEthernetFramePerformanceMonitoringHistoryDataDownstream(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*ethernetframeperformancemonitoringhistorydatadownstreamBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/ethernetframeperformancemonitoringhistorydataupstream.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/ethernetframeperformancemonitoringhistorydataupstream.go
new file mode 100644
index 0000000..6970c10
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/ethernetframeperformancemonitoringhistorydataupstream.go
@@ -0,0 +1,174 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// EthernetFramePerformanceMonitoringHistoryDataUpstreamClassID is the 16-bit ID for the OMCI
+// Managed entity Ethernet frame performance monitoring history data upstream
+const EthernetFramePerformanceMonitoringHistoryDataUpstreamClassID = ClassID(322) // 0x0142
+
+var ethernetframeperformancemonitoringhistorydataupstreamBME *ManagedEntityDefinition
+
+// EthernetFramePerformanceMonitoringHistoryDataUpstream (Class ID: #322 / 0x0142)
+//	This ME collects PM data associated with upstream Ethernet frame delivery. It is based on the
+//	Etherstats group of [IETF RFC 2819]. Instances of this ME are created and deleted by the OLT.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	NOTE 1 - Implementers are encouraged to consider the Ethernet frame extended PM ME defined in
+//	clause-9.3.32, which collects the same counters in a more generalized way.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of a MAC bridge port configuration data.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of a MAC bridge port configuration data. (R, setbycreate)
+//			(mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 ME that
+//			contains PM threshold values. Since no threshold value attribute number exceeds 7, a threshold
+//			data 2 ME is optional. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Drop Events
+//			The total number of events in which packets were dropped due to a lack of resources. This is not
+//			necessarily the number of packets dropped; it is the number of times this event was detected.
+//			(R) (mandatory) (4-bytes)
+//
+//		Octets
+//			The total number of upstream octets received, including those in bad packets, excluding framing
+//			bits, but including FCS. (R) (mandatory) (4-bytes)
+//
+//		Packets
+//			The total number of upstream packets received, including bad packets, broadcast packets and
+//			multicast packets. (R) (mandatory) (4-bytes)
+//
+//		Broadcast Packets
+//			The total number of upstream good packets received that were directed to the broadcast address.
+//			This does not include multicast packets. (R) (mandatory) (4-bytes)
+//
+//		Multicast Packets
+//			The total number of upstream good packets received that were directed to a multicast address.
+//			This does not include broadcast packets. (R) (mandatory) (4-bytes)
+//
+//		Crc Errored Packets
+//			The total number of upstream packets received that had a length (excluding framing bits, but
+//			including FCS octets) of between 64-octets and 1518-octets, inclusive, but had either a bad FCS
+//			with an integral number of octets (FCS error) or a bad FCS with a non-integral number of octets
+//			(alignment error). (R) (mandatory) (4-bytes)
+//
+//		Undersize Packets
+//			The total number of upstream packets received that were less than 64-octets long, but were
+//			otherwise well formed (excluding framing bits, but including FCS). (R) (mandatory) (4-bytes)
+//
+//		Oversize Packets
+//			NOTE 2 - If 2-000-byte Ethernet frames are supported, counts in this performance parameter are
+//			not necessarily errors.
+//
+//			The total number of upstream packets received that were longer than 1518-octets (excluding
+//			framing bits, but including FCS) and were otherwise well formed. (R) (mandatory) (4-bytes)
+//
+//		Packets 64 Octets
+//			The total number of upstream received packets (including bad packets) that were 64-octets long,
+//			excluding framing bits but including FCS. (R) (mandatory) (4-bytes)
+//
+//		Packets 65 To 127 Octets
+//			The total number of upstream received packets (including bad packets) that were 65..127 octets
+//			long, excluding framing bits but including FCS. (R) (mandatory) (4-bytes)
+//
+//		Packets 128 To 255 Octets
+//			The total number of upstream packets (including bad packets) received that were 128..255 octets
+//			long, excluding framing bits but including FCS. (R) (mandatory) (4-bytes)
+//
+//		Packets 256 To 511 Octets
+//			The total number of upstream packets (including bad packets) received that were 256..511 octets
+//			long, excluding framing bits but including FCS. (R) (mandatory) (4-bytes)
+//
+//		Packets 512 To 1023 Octets
+//			The total number of upstream packets (including bad packets) received that were 512..1-023
+//			octets long, excluding framing bits but including FCS. (R) (mandatory) (4-bytes)
+//
+//		Packets 1024 To 1518 Octets
+//			The total number of upstream packets (including bad packets) received that were 1024..1518
+//			octets long, excluding framing bits, but including FCS. (R) (mandatory) (4-bytes)
+//
+type EthernetFramePerformanceMonitoringHistoryDataUpstream struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	ethernetframeperformancemonitoringhistorydataupstreamBME = &ManagedEntityDefinition{
+		Name:    "EthernetFramePerformanceMonitoringHistoryDataUpstream",
+		ClassID: 322,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Drop events",
+			1: "CRC errored packets",
+			2: "Undersize packets",
+			3: "Oversize packets",
+		},
+	}
+}
+
+// NewEthernetFramePerformanceMonitoringHistoryDataUpstream (class ID 322) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewEthernetFramePerformanceMonitoringHistoryDataUpstream(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*ethernetframeperformancemonitoringhistorydataupstreamBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/ethernetperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/ethernetperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..37e2876
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/ethernetperformancemonitoringhistorydata.go
@@ -0,0 +1,178 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// EthernetPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity Ethernet performance monitoring history data
+const EthernetPerformanceMonitoringHistoryDataClassID = ClassID(24) // 0x0018
+
+var ethernetperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// EthernetPerformanceMonitoringHistoryData (Class ID: #24 / 0x0018)
+//	This ME collects some of the PM data for a physical Ethernet interface. Instances of this ME are
+//	created and deleted by the OLT.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of the PPTP Ethernet UNI.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the PPTP Ethernet UNI. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 and 2 MEs
+//			that contains PM threshold values. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Fcs Errors
+//			This attribute counts frames received on a particular interface that were an integral number of
+//			octets in length but failed the FCS check. The count is incremented when the MAC service returns
+//			the frameCheckError status to the link layer control (LLC) or other MAC user. Received frames
+//			for which multiple error conditions are obtained are counted according to the error status
+//			presented to the LLC. (R) (mandatory) (4-bytes)
+//
+//		Excessive Collision Counter
+//			This attribute counts frames whose transmission failed due to excessive collisions.-(R)
+//			(mandatory) (4-bytes)
+//
+//		Late Collision Counter
+//			This attribute counts the number of times that a collision was detected later than 512 bit times
+//			into the transmission of a packet. (R) (mandatory) (4-bytes)
+//
+//		Frames Too Long
+//			This attribute counts received frames that exceeded the maximum permitted frame size. The count
+//			is incremented when the MAC service returns the frameTooLong status to the LLC. (R) (mandatory)
+//			(4-bytes)
+//
+//		Buffer Overflows On Receive
+//			This attribute counts the number of times that the receive buffer overflowed. (R) (mandatory)
+//			(4-bytes)
+//
+//		Buffer Overflows On Transmit
+//			This attribute counts the number of times that the transmit buffer overflowed. (R) (mandatory)
+//			(4-bytes)
+//
+//		Single Collision Frame Counter
+//			This attribute counts successfully transmitted frames whose transmission was delayed by exactly
+//			one collision. (R) (mandatory) (4-bytes)
+//
+//		Multiple Collisions Frame Counter
+//			This attribute counts successfully transmitted frames whose transmission was delayed by more
+//			than one collision. (R) (mandatory) (4-bytes)
+//
+//		Sqe Counter
+//			This attribute counts the number of times that the SQE test error message was generated by the
+//			PLS sublayer. (R) (mandatory) (4-bytes)
+//
+//		Deferred Transmission Counter
+//			This attribute counts frames whose first transmission attempt was delayed because the medium was
+//			busy. The count does not include frames involved in collisions. (R) (mandatory) (4-bytes)
+//
+//		Internal Mac Transmit Error Counter
+//			This attribute counts frames whose transmission failed due to an internal MAC sublayer transmit
+//			error. (R) (mandatory) (4-bytes)
+//
+//		Carrier Sense Error Counter
+//			This attribute counts the number of times that carrier sense was lost or never asserted when
+//			attempting to transmit a frame. (R) (mandatory) (4-bytes)
+//
+//		Alignment Error Counter
+//			This attribute counts received frames that were not an integral number of octets in length and
+//			did not pass the FCS check. (R) (mandatory) (4-bytes)
+//
+//		Internal Mac Receive Error Counter
+//			This attribute counts frames whose reception failed due to an internal MAC sublayer receive
+//			error. (R) (mandatory) (4-bytes)
+//
+type EthernetPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	ethernetperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "EthernetPerformanceMonitoringHistoryData",
+		ClassID: 24,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0:  "FCS errors",
+			1:  "Excessive collision counter",
+			2:  "Late collision counter",
+			3:  "Frames too long",
+			4:  "Buffer overflows on receive",
+			5:  "Buffer overflows on transmit",
+			6:  "Single collision frame counter",
+			7:  "Multiple collisions frame counter",
+			8:  "SQE counter",
+			9:  "Deferred transmission counter",
+			10: "Internal MAC transmit error counter",
+			11: "Carrier sense error counter",
+			12: "Alignment error counter",
+			13: "Internal MAC receive error counter",
+		},
+	}
+}
+
+// NewEthernetPerformanceMonitoringHistoryData (class ID 24) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewEthernetPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*ethernetperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/ethernetperformancemonitoringhistorydata2.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/ethernetperformancemonitoringhistorydata2.go
new file mode 100644
index 0000000..6bb6fa1
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/ethernetperformancemonitoringhistorydata2.go
@@ -0,0 +1,98 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// EthernetPerformanceMonitoringHistoryData2ClassID is the 16-bit ID for the OMCI
+// Managed entity Ethernet performance monitoring history data 2
+const EthernetPerformanceMonitoringHistoryData2ClassID = ClassID(89) // 0x0059
+
+var ethernetperformancemonitoringhistorydata2BME *ManagedEntityDefinition
+
+// EthernetPerformanceMonitoringHistoryData2 (Class ID: #89 / 0x0059)
+//	This ME collects additional PM data for a physical Ethernet interface. Instances of this ME are
+//	created and deleted by the OLT.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this Ethernet PM history data 2 ME is associated with an instance of the PPTP
+//		Ethernet UNI.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the PPTP Ethernet UNI. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 ME that
+//			contains PM threshold values. Since no threshold value attribute number exceeds 7, a threshold
+//			data 2 ME is optional. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Pppoe Filtered Frame Counter
+//			This attribute counts the number of frames discarded due to PPPoE filtering. (R) (mandatory)
+//			(4-bytes)
+//
+type EthernetPerformanceMonitoringHistoryData2 struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	ethernetperformancemonitoringhistorydata2BME = &ManagedEntityDefinition{
+		Name:    "EthernetPerformanceMonitoringHistoryData2",
+		ClassID: 89,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "PPPoE filtered frame counter",
+		},
+	}
+}
+
+// NewEthernetPerformanceMonitoringHistoryData2 (class ID 89) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewEthernetPerformanceMonitoringHistoryData2(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*ethernetperformancemonitoringhistorydata2BME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/ethernetperformancemonitoringhistorydata3.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/ethernetperformancemonitoringhistorydata3.go
new file mode 100644
index 0000000..8149d84
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/ethernetperformancemonitoringhistorydata3.go
@@ -0,0 +1,183 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// EthernetPerformanceMonitoringHistoryData3ClassID is the 16-bit ID for the OMCI
+// Managed entity Ethernet performance monitoring history data 3
+const EthernetPerformanceMonitoringHistoryData3ClassID = ClassID(296) // 0x0128
+
+var ethernetperformancemonitoringhistorydata3BME *ManagedEntityDefinition
+
+// EthernetPerformanceMonitoringHistoryData3 (Class ID: #296 / 0x0128)
+//	This ME collects PM data associated with an Ethernet interface. It includes parameters defined
+//	in the Ethernet statistics group of [IETF RFC 2819] that are not already covered by previously
+//	defined Ethernet monitoring MEs. The received direction is from the CPE towards the network
+//	(upstream).
+//
+//	NOTE 1 - Several of the same counters are available from the Ethernet frame PM history data MEs,
+//	which are associated with MAC bridge ports. MAC bridge port association allows those MEs to be
+//	used for any Ethernet flow, in both upstream and downstream directions, while the Ethernet PM
+//	history data 3 ME can only be used on a physical IEEE 802.3 port.
+//
+//	Instances of this ME are created and deleted by the OLT.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	NOTE 2 - Implementers are encouraged to consider the Ethernet frame extended PM ME defined in
+//	clause-9.3.32, which collects the same counters in a more generalized way.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of the PPTP Ethernet UNI.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the PPTP Ethernet UNI. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 ME that
+//			contains PM threshold values. Since no threshold value attribute number exceeds 7, a threshold
+//			data 2 ME is optional. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Drop Events
+//			The total number of events in which packets were dropped due to a lack of resources. This is not
+//			necessarily the number of packets dropped; it is the number of times this event was detected.
+//			(R) (mandatory) (4-bytes)
+//
+//		Octets
+//			The total number of octets received from the CPE, including those in bad packets, excluding
+//			framing bytes, but including FCS. (R) (mandatory) (4-bytes)
+//
+//		Packets
+//			The total number of packets received, including bad packets, broadcast packets and multicast
+//			packets. (R) (mandatory) (4-bytes)
+//
+//		Broadcast Packets
+//			The total number of received good packets directed to the broadcast address. This does not
+//			include multicast packets. (R) (mandatory) (4-bytes)
+//
+//		Multicast Packets
+//			The total number of received good packets directed to a multicast address. This does not include
+//			broadcast packets. (R) (mandatory) (4-bytes)
+//
+//		Undersize Packets
+//			The total number of packets received that were less than 64 octets long, but were otherwise well
+//			formed (excluding framing bits, but including FCS). (R) (mandatory) (4-bytes)
+//
+//		Fragments
+//			The total number of packets received that were less than 64 octets long, excluding framing bits
+//			but including FCS octets, and had either a bad FCS with an integral number of octets (FCS error)
+//			or a bad FCS with a non-integral number of octets (alignment error). It is entirely normal for
+//			this attribute to increment. This is because it counts both runts (which are normal occurrences
+//			due to collisions) and noise hits. (R) (mandatory) (4-bytes)
+//
+//		Jabbers
+//			The total number of packets received that were longer than 1518 octets, excluding framing bits
+//			but including FCS octets, and had either a bad FCS with an integral number of octets (FCS error)
+//			or a bad FCS with a non-integral number of octets (alignment error). The range to detect jabber
+//			is between 20 ms and 150 ms. (R) (mandatory) (4-bytes)
+//
+//		Packets 64 Octets
+//			The total number of received packets (including bad packets) that were 64-octets long, excluding
+//			framing bits but including FCS. (R) (mandatory) (4-bytes)
+//
+//		Packets 65 To 127 Octets
+//			The total number of received packets (including bad packets) that were 65..127 octets long,
+//			excluding framing bits but including FCS. (R) (mandatory) (4-bytes)
+//
+//		Packets 128 To 255 Octets
+//			The total number of packets (including bad packets) received that were 128..255 octets long,
+//			excluding framing bits but including FCS. (R) (mandatory) (4-bytes)
+//
+//		Packets 256 To 511 Octets
+//			The total number of packets (including bad packets) received that were 256..511 octets long,
+//			excluding framing bits but including FCS. (R) (mandatory) (4-bytes)
+//
+//		Packets 512 To 1023 Octets
+//			The total number of packets (including bad packets) received that were 512..1023 octets long,
+//			excluding framing bits but including FCS. (R) (mandatory) (4-bytes)
+//
+//		Packets 1024 To 1518 Octets
+//			The total number of packets (including bad packets) received that were 1024..1518 octets long,
+//			excluding framing bits but including FCS. (R) (mandatory) (4-bytes)
+//
+type EthernetPerformanceMonitoringHistoryData3 struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	ethernetperformancemonitoringhistorydata3BME = &ManagedEntityDefinition{
+		Name:    "EthernetPerformanceMonitoringHistoryData3",
+		ClassID: 296,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Drop events",
+			1: "Undersize packets",
+			2: "Fragments",
+			3: "Jabbers",
+		},
+	}
+}
+
+// NewEthernetPerformanceMonitoringHistoryData3 (class ID 296) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewEthernetPerformanceMonitoringHistoryData3(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*ethernetperformancemonitoringhistorydata3BME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/ethernetpseudowireparameters.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/ethernetpseudowireparameters.go
new file mode 100644
index 0000000..cd64e28
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/ethernetpseudowireparameters.go
@@ -0,0 +1,82 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// EthernetPseudowireParametersClassID is the 16-bit ID for the OMCI
+// Managed entity Ethernet pseudowire parameters
+const EthernetPseudowireParametersClassID = ClassID(400) // 0x0190
+
+var ethernetpseudowireparametersBME *ManagedEntityDefinition
+
+// EthernetPseudowireParameters (Class ID: #400 / 0x0190)
+//	This ME contains the Ethernet pseudowire parameters. Instances of this ME are created and
+//	deleted by the OLT.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of the PW Ethernet configuration data ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the PW Ethernet configuration data ME. (R, set-by-create)
+//			(mandatory) (2 bytes)
+//
+//		Mtu
+//			This attribute identifies the maximum transmission unit (bytes) that can be received from the
+//			CPE in the upstream direction. Larger frames are discarded. (R, W, set-by-create) (mandatory) (2
+//			bytes)
+//
+type EthernetPseudowireParameters struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	ethernetpseudowireparametersBME = &ManagedEntityDefinition{
+		Name:    "EthernetPseudowireParameters",
+		ClassID: 400,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewEthernetPseudowireParameters (class ID 400) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewEthernetPseudowireParameters(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*ethernetpseudowireparametersBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/extendedvlantaggingoperationconfigurationdata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/extendedvlantaggingoperationconfigurationdata.go
new file mode 100644
index 0000000..0487c71
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/extendedvlantaggingoperationconfigurationdata.go
@@ -0,0 +1,593 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// ExtendedVlanTaggingOperationConfigurationDataClassID is the 16-bit ID for the OMCI
+// Managed entity Extended VLAN tagging operation configuration data
+const ExtendedVlanTaggingOperationConfigurationDataClassID = ClassID(171) // 0x00ab
+
+var extendedvlantaggingoperationconfigurationdataBME *ManagedEntityDefinition
+
+// ExtendedVlanTaggingOperationConfigurationData (Class ID: #171 / 0x00ab)
+//	This ME organizes data associated with VLAN classification and tagging operations. Regardless of
+//	its point of attachment, the specified tagging operations refer to the upstream direction.
+//	Instances of this ME are created and deleted by the OLT.
+//
+//	Through separate attributes, this ME supports either a Received frame VLAN tagging operation
+//	table attribute in its backward compatible form, or an enhanced frame classification and
+//	processing capability. The OLT can determine whether the ONU supports the enhanced capability
+//	through the Enhanced mode attribute of the ONU3-G ME.
+//
+//	Relationships
+//		Zero or one instance of this ME may exist for an instance of any ME that can terminate or modify
+//		an Ethernet stream.////		When this ME is associated with a UNI-side TP, it performs its upstream classification and
+//		tagging operations before offering the upstream frame to other filtering, bridging or switching
+//		functions. In the downstream direction, the defined inverse operation is the last operation
+//		performed on the frame before offering it to the UNI-side termination.////		When this ME is associated with an ANI-side TP, it performs its upstream classification and
+//		tagging operations as the last step before transmission to the OLT, after having received the
+//		upstream frame from other filtering, bridging or switching functions. In the downstream
+//		direction, the defined inverse operation is the first operation performed on the frame before
+//		offering it to possible filter, bridge or switch functions.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute provides a unique number for each instance of this ME. (R, setbycreate)
+//			(mandatory) (2-bytes)
+//
+//		Association Type
+//			This attribute identifies the type of the ME associated with this extended VLAN tagging ME.
+//			Values are assigned as follows.
+//
+//			0	MAC bridge port configuration data
+//
+//			1	IEEE 802.1p mapper service profile
+//
+//			2	Physical path termination point Ethernet UNI
+//
+//			3	IP host config data or IPv6 host config data
+//
+//			4	Physical path termination point xDSL UNI
+//
+//			5	GEM IW termination point
+//
+//			6	Multicast GEM IW termination point
+//
+//			7	Physical path termination point MoCA UNI
+//
+//			8	Reserved
+//
+//			9	Ethernet flow termination point
+//
+//			10	Virtual Ethernet interface point
+//
+//			11	MPLS pseudowire termination point
+//
+//			12	EFM bonding group
+//
+//			(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//			NOTE 1 - If a MAC bridge is configured, code points 1, 5, 6 and 11 are associated with the ANI
+//			side of the MAC bridge. Code point 0 is associated with the ANI or UNI side, depending on the
+//			location of the MAC bridge port. The other code points are associated with the UNI side.
+//
+//			When the extended VLAN tagging ME is associated with the ANI side, it behaves as an upstream
+//			egress rule, and as a downstream ingress rule when the downstream mode attribute is equal to 0.
+//			When the extended VLAN tagging ME is associated with the UNI side, the extended VLAN tagging ME
+//			behaves as an upstream ingress rule, and as a downstream egress rule when the downstream mode
+//			attribute is equal to 0.
+//
+//		Received Frame Vlan Tagging Operation Table Max Size
+//			This attribute indicates the maximum number of entries that can be set in the received frame
+//			VLAN tagging operation table. (R) (mandatory) (2-bytes)
+//
+//		Input Tpid
+//			This attribute gives the special TPID value for operations on the input (filtering) side of the
+//			table. Typical values include 0x88A8 and 0x9100. (R,-W) (mandatory) (2-bytes)
+//
+//		Output Tpid
+//			This attribute gives the special TPID value for operations on the output (tagging) side of the
+//			table. Typical values include 0x88A8 and 0x9100. (R,-W) (mandatory) (2-bytes)
+//
+//		Downstream Mode
+//			Regardless of its association, the rules of the received frame VLAN tagging operation table
+//			attribute pertain to upstream traffic. The downstream mode attribute defines the tagging action
+//			to be applied to downstream frames.
+//
+//			The received frame VLAN tagging operation table installs defaults upstream rules. In the
+//			downstream direction, the upstream default rules with the default treatment do not apply. It
+//			should be noted that downstream frame treatment is defined by the downstream mode attribute and
+//			is not affected by the upstream default rules.
+//
+//			The received frame VLAN tagging operation table can result in two types of rule mappings:
+//
+//			o	One to one mapping: A table contains one or more rules that result in unique mappings between
+//			the ingress and egress flows.
+//
+//			o	Many to one mapping: A table contains more than one rule that results in the same ANI-side tag
+//			configuration.
+//
+//			For one-to-one  mappings, the inverse operation to apply in the downstream direction (in the
+//			case of bidirectional flows) is the inverse operation of the upstream rule.
+//
+//			Many-to-one mappings are possible however, and these are treated as follows.
+//
+//			o	If an upstream many-to-one mapping results from multiple operation rules producing the same
+//			ANI-side tag configuration, then the first matching rule in the list defines the inverse
+//			operation. The meaning of match depends on the value of the downstream mode attribute.
+//
+//			o	If the many-to-one mapping results from "don't care" fields in the filter being replaced with
+//			provisioned fields in the ANI side tags, then the inverse is defined to set the corresponding
+//			fields on the ANI side to their lowest legal value.
+//
+//			If the upstream rule merely copies (i.e., no explicit value is specified in the filter field) an
+//			inbound tag value to an outbound tag value, the comparison in the downstream direction applies
+//			to all tag values. This applies separately to the VID and P-bit fields. For example, with a
+//			downstream mode of 2 and an upstream rule that translates the VID while carrying forward the
+//			P-bit value, downstream frames that match the specified WAN-side VID will match any P-bit value
+//			and will translate the VID.
+//
+//			0	The operation performed in the downstream direction is the inverse of that performed in the
+//			upstream direction. Which treatment and filter fields are used for downstream filtering and the
+//			handling of unmatched frames are left to the implementation of the ONU.
+//
+//			1	Regardless of the filter rules, no operation is performed in the downstream direction. All
+//			downstream frames are forwarded unmodified.
+//
+//			2	Filter on VID and P-bit value. On a match, perform the inverse operation on both the VID and
+//			P-bit value. If no match is found, forward the frame unmodified.
+//
+//			3	Filter on VID only. On a match, perform the inverse VID operation only; pass the P bits
+//			through. If no match is found, forward the frame unmodified.
+//
+//			4	Filter on P-bit only. On a match, perform the inverse P-bit operation only; pass the VID
+//			through. If no match is found, forward the frame unmodified.
+//
+//			5	Filter on VID and P-bit value. On a match, perform the inverse operation on both the VID and
+//			P-bit value. If no match is found, discard the frame.
+//
+//			6	Filter on VID. On a match, perform the inverse operation on the VID only; pass the P bits
+//			through. If no match is found, discard the frame.
+//
+//			7	Filter on P-bit only. On a match, perform the inverse P-bit operation only; pass the VID
+//			through. If no match is found, discard the frame.
+//
+//			8	Regardless of the filter rules, discard all downstream traffic.
+//
+//			Please refer to Table 9.3.13-2 for example downstream mode use cases.
+//
+//			All other values are reserved. (R, W) (mandatory) (1 byte)
+//
+//		Received Frame Vlan Tagging Operation Table
+//			Padding: (8 bits)
+//
+//			Filter Ethertype: (4 bits) the Ethertype value on which to filter received frames, as follows.
+//
+//			NOTE 3 - This filter is recommended for use on untagged frames or frames with priority tags
+//			only.
+//
+//			0	Do not filter on Ethertype.
+//
+//			1	Ethertype = 0x0800 (filter IPoE frames)
+//
+//			2	Ethertype = 0x8863 or 0x8864 (filter PPPoE frames)
+//
+//			3	Ethertype = 0x0806 (filter ARP frames)
+//
+//			4	Ethertype = 0x86DD (filter IPv6 IpoE frames)
+//
+//			5	Ethertype = 0x888E (filter EAPOL frames)
+//
+//			Other values: reserved.
+//
+//			Filter on extended criteria: (8 bits) filter on key upper level protocols:
+//
+//			0	Do not filter on extended criteria
+//
+//			1	DHCPv4 - frames matching the well-known DHCPv4 UDP ports (67, 68) will be filtered by this
+//			criteria code point.
+//
+//			2	DHCPv6 - frames matching the well-known DHCPv6 UDP ports (546, 547) will be filtered by this
+//			criteria code point.
+//
+//			NOTE 4 - This filter is recommended for use on untagged frames or priority framed tags only.
+//
+//			Treatment tags to remove: (2 bits) Defines the tag treatment. The following values are
+//			supported:
+//
+//			0..2	Remove 0, 1 or 2 tags, respectively. If one tag is specified, then the outer tag is
+//			stripped from double-tagged frames.
+//
+//			3	Discard the frame. No symmetric downstream operation exists; i.e., this rule is ignored in the
+//			downstream direction.
+//
+//			Padding: (10 bits)
+//
+//			Treatment outer priority: (4 bits): Defines the outer VLAN priority treatment. The following
+//			values are supported:
+//
+//			0..7	Add an outer tag, and insert this value as the priority in the outer VLAN tag.
+//
+//			8	Add an outer tag, and copy the outer priority from the inner priority of the received frame.
+//
+//			9	Add an outer tag, and copy the outer priority from the outer priority of the received frame.
+//
+//			10	Add an outer tag, and derive P bits from the DSCP field of the incoming frame according to
+//			the Extended VLAN tagging operation configuration data ME DSCP to P-bit mapping attribute.
+//
+//			15	Do not add an outer tag.
+//
+//			Other values: reserved.
+//
+//			Treatment outer VID: (13 bits). Defines the outer VID treatment. The following values are
+//			supported:
+//
+//			0..4094	Use this value as the VID in the outer VLAN tag.
+//
+//			4096	Copy the outer VID from the inner VID of the received frame.
+//
+//			4097	Copy the outer VID from the outer VID of the received frame.
+//
+//			Other values: reserved.
+//
+//			Treatment outer TPID/DEI: (3 bits). Defines the outer VLAN TPID/DEI treatment. The following
+//			values are supported:
+//
+//			000	Copy TPID (and DEI, if present) from the inner tag of the received frame.
+//
+//			001	Copy TPID (and DEI, if present) from the outer tag of the received frame.
+//
+//			010	Set TPID = output TPID attribute value of the Extended VLAN tagging operation configuration
+//			data ME and copy DEI bit from the inner tag of the received frame
+//
+//			011	Set TPID = output TPID attribute value of the Extended VLAN tagging operation configuration
+//			data ME and copy DEI from the outer tag of the received frame
+//
+//			100	Set TPID = 0x8100
+//
+//			101	Reserved
+//
+//			110	Set TPID = output TPID attribute value of the Extended VLAN tagging operation configuration
+//			data ME and set DEI = 0
+//
+//			111	Set TPID = output TPID attribute value of the Extended VLAN tagging operation configuration
+//			data ME and set DEI = 1
+//
+//			Padding: (12 bits)
+//
+//			Treatment inner priority: (4 bits). Defines the inner VLAN priority treatment. The following
+//			values are supported:
+//
+//			0..7	Add an inner tag, and insert this value as the priority to insert in the inner VLAN tag.
+//
+//			8	Add an inner tag, and copy the inner priority from the inner priority of the received frame.
+//
+//			9	Add an inner tag, and copy the inner priority from the outer priority of the received frame.
+//
+//			10	Add an inner tag, and derive P bits from the DSCP field of the incoming frame according to
+//			the Extended VLAN tagging operation configuration data ME DSCP to P-bit mapping attribute.
+//
+//			15	Do not add an inner tag.
+//
+//			Other values: reserved.
+//
+//			Treatment inner VID: (13 bits): Defines the inner VLAN VID treatment.  The following values are
+//			supported:
+//
+//			0..4094	Use this value as the VID in the inner VLAN tag.
+//
+//			4096	Copy the inner VID from the inner VID of the received frame.
+//
+//			4097	Copy the inner VID from the outer VID of the received frame.
+//
+//			Other values: reserved.
+//
+//			Treatment inner TPID/DEI: (3 bits). Defines the inner VLAN TPID/DEI treatment. The following
+//			values are supported:
+//
+//			000	Copy TPID (and DEI, if present) from the inner tag of the received frame.
+//
+//			001	Copy TPID (and DEI, if present) from the outer tag of the received frame.
+//
+//			010	Set TPID = output TPID attribute value of the Extended VLAN tagging operation configuration
+//			data ME and copy the DEI bit from the inner tag of the received frame.
+//
+//			011	Set TPID = output TPID attribute value of the Extended VLAN tagging operation configuration
+//			data ME and, copy the DEI from the outer tag of the received frame.
+//
+//			100	Set TPID = 0x8100
+//
+//			101	Reserved
+//
+//			110	Set TPID = output TPID attribute value of the Extended VLAN tagging operation configuration
+//			data ME and set DEI = 0
+//
+//			111	Set TPID = output TPID attribute value of the Extended VLAN tagging operation configuration
+//			data ME and set DEI = 1
+//
+//			This attribute is a table that filters and tags upstream frames. Each entry represents a tagging
+//			rule, comprising a filtering part (the first eight fields) and a treatment part (the last seven
+//			fields). Each incoming upstream packet is matched against each rule in list order. The first
+//			rule that matches the packet is selected as the active rule, and the packet is then treated
+//			according to that rule.
+//
+//			There are three categories of rules: zero-tag, single-tag, and double-tag rules. Logically,
+//			these categories are separate, and apply to their respective incoming frame types. In other
+//			words, a single-tag rule should not apply to a double-tagged frame, even though the single-tag
+//			rule might match the outer tag of the double-tagged frame.
+//
+//			Single-tag rules have a filter outer priority field-= 15 (indicating no external tag), zero-tag
+//			rules have both filter priority fields-= 15 (indicating no tags), and double-tag rules have both
+//			filter priority fields set to a value that differs from 15 (indicating two tags).
+//
+//			Each tagging rule is based on a remove or an add operation, where up to two tags can be removed
+//			or added. A modify operation is applied by the combination of remove and add.
+//
+//			By convention, when a single tag is added, the treatments use the inner tag data fields. This is
+//			true even for treatments where a single tag is added to a frame that already has a tag, i.e.,
+//			added as a second tag. The outer tag data fields are used only when two tags are added by the
+//			same rule.
+//
+//			The terms inner and outer only have meaning with respect to the tags that are being filtered or
+//			added.
+//
+//			The first 8-bytes of each entry are guaranteed to be unique, and are used to identify table
+//			entries (list order, above, refers to a sort on the first 8-bytes). The OLT deletes a table
+//			entry by setting all of its last 8-bytes to 0xFF.
+//
+//			When the table is created, the ONU should autonomously predefine three entries that list the
+//			default treatment (normal forwarding without filtering or modification) for untagged, single
+//			tagged, and double tagged frames. As an exception to the rule on ordered processing, these
+//			default rules are always considered as a last resort for frames that do not match any other
+//			rule. Best practice dictates that these entries not be deleted by the OLT; however, they can be
+//			modified to produce the desired default behaviour.
+//
+//			It should be noted that downstream frame treatment is defined by the downstream mode attribute
+//			and is not affected by the upstream default rules.
+//
+//			15, 4096, x, 15, 4096, x, 0, (0, 15, x, x, 15, x, x) - no tags
+//
+//			15, 4096, x, 14, 4096, x, 0, (0, 15, x, x, 15, x, x) - 1 tag
+//
+//			14, 4096, x, 14, 4096, x, 0, (0, 15, x, x, 15, x, x) - 2 tags
+//
+//			NOTE 2 - x is a "don't care" field and should be set to zero.
+//
+//			See Figure 9.3.13-1.
+//
+//			(R,-W) (mandatory) (16N bytes, where N is the number of VLAN tagging rules)
+//
+//			Filter outer priority: (4 bits) Defines the outer VLAN priority filtering operation. The
+//			following values are supported:
+//
+//			0..7	Filter received frames on this outer priority (P bit) value.
+//
+//			8	Do not filter on outer priority.
+//
+//			14	This is the default filter when no other two-tag rule applies.
+//
+//			15	This entry is not a double-tag rule; ignore all other outer tag filter fields.
+//
+//			Other values: reserved.
+//
+//			Filter outer VID: (13 bits) Defines the outer VLAN VID filtering operation.  The following
+//			values are supported:
+//
+//			0..4094	Filter received frames on this outer VID value.
+//
+//			4096	Do not filter on the outer VID.
+//
+//			Other values: reserved.
+//
+//			Filter outer TPID/DEI: (3 bits) Defines the outer VLAN TPID/DEI filtering operation. The
+//			following values are supported:
+//
+//			000	Do not filter on outer TPID field.
+//
+//			100	Outer TPID = 0x8100. Filter on frames with the outer TPID set to 0x8100.
+//
+//			101	Outer TPID = input TPID attribute value, don't care about DEI bit. Filter on frames with the
+//			outer TPID set to match the Extended VLAN tagging operation configuration data Input TPID
+//			attribute value and ignore the DEI bit.
+//
+//			110	Outer TPID = input TPID, DEI = 0. Filter on frames with the outer TPID set to match the
+//			Extended VLAN tagging operation configuration data Input TPID attribute value and DEI set to the
+//			value 0.
+//
+//			111	Outer TPID = input TPID, DEI = 1. Filter on frames with the outer TPID set to match the
+//			Extended VLAN tagging operation configuration data Input TPID attribute value and DEI set to the
+//			value 1
+//
+//			Padding: (12 bits)
+//
+//			Filter inner priority: (4 bits) Defines the inner VLAN priority filtering operation.  The
+//			following values are supported:
+//
+//			0..7	Filter received frames on this inner priority value.
+//
+//			8	Do not filter on inner priority.
+//
+//			14	This is the default filter when no other one-tag rule applies.
+//
+//			15	This entry is a no-tag rule; ignore all other VLAN tag filter fields.
+//
+//			Other values: reserved.
+//
+//			Filter inner VID: (13 bits) Defines the inner VLAN VID filtering operation.  The following
+//			values are supported:
+//
+//			0..4094	Filter received frames on this inner VID value.
+//
+//			4096	Do not filter on the inner VID.
+//
+//			Other values: reserved.
+//
+//			Filter inner TPID/DEI: (3 bits) Defines the inner VLAN TPID/DEI filtering operation. The
+//			following values are supported:
+//
+//			000	Do not filter on inner TPID field.
+//
+//			100	Inner TPID = 0x8100. Filter on frames with the inner TPID set to 0x8100.
+//
+//			101	Inner TPID = input TPID attribute value, don't care about DEI bit. Filter on frames with the
+//			inner TPID set to match the Extended VLAN tagging operation configuration data Input TPID
+//			attribute value and ignore the DEI bit.
+//
+//			110	Inner TPID = input TPID, DEI = 0. Filter on frames with the inner TPID set to match the
+//			Extended VLAN tagging operation configuration data Input TPID attribute value and DEI set to the
+//			value 0.
+//
+//			111	Inner TPID = input TPID, DEI = 1. Filter on frames with the inner TPID set to match the
+//			Extended VLAN tagging operation configuration data Input TPID attribute value and DEI set to the
+//			value 1.
+//
+//		Associated Me Pointer
+//			This attribute points to the ME with which this extended VLAN tagging operation configuration
+//			data ME is associated. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//			NOTE 5 - When the association type is xDSL, the two MSBs may be used to indicate a bearer
+//			channel.
+//
+//		Dscp To P Bit Mapping
+//			DSCP to P-bit mapping: This attribute specifies mapping from DSCP to P bits. The attribute can
+//			be considered a bit string sequence of 64 3-bit groups. The 64 sequence entries represent the
+//			possible values of the 6-bit DSCP field. Each 3-bit group specifies the P-bit value to which the
+//			associated DSCP value should be mapped. (R,-W) (optional) (24-bytes)
+//
+//			NOTE 6 - If certain bits in the DSCP field are to be ignored in the mapping process, the
+//			attribute should be provisioned such that all possible values of those bits produce the same
+//			P-bit mapping. This can be applied to the case where instead of full DSCP, the operator wishes
+//			to adopt the priority mechanism based on IP precedence, which needs only the three MSBs of the
+//			DSCP field.
+//
+//		Enhanced Mode
+//			The Boolean value true specifies that the Enhanced received frame classification and processing
+//			table is used, and the Received frame VLAN tagging operation table is ignored. The value false
+//			indicates the Enhanced received frame classification and processing table is not used. It is
+//			strongly recommended that the OLT uses the same value for all Extended VLAN tagging operation
+//			configuration data instances created on an ONU. (R, Setbycreate) (optional) (1-byte)
+//
+//		Enhanced Received Frame Classification And Processing Table
+//			This attribute is a table that provides enhanced capability for frame classification and
+//			processing. It extends the Received frame VLAN tagging operation table attribute with a set
+//			control field, a row key and direction. Each incoming packet is matched against each rule in row
+//			key order (smaller value row key has higher precedence) and direction. The first rule that
+//			matches the packet is selected as the active rule, and the packet is then treated according to
+//			that rule.
+//
+//			When the table is empty, the ONU discards all received frames. The OLT may choose to create
+//			three entries that list the default treatment (normal forwarding without filtering or
+//			modification) for untagged, single tagged, and double tagged frames, with the direction field
+//			set to 0.
+//
+//			NOTE 7 - Where no change is noted, the definitions in the Received frame VLAN tagging operation
+//			table attribute remain applicable.
+//
+//			(R,-W) (optional) (28N bytes, where N is the number of entries in the table).
+//
+//			Set ctrl: (2 bits)
+//
+//			This field determines the meaning of a set operation. These bits are returned as 00 during get
+//			next operations.
+//
+//			1	Write this entry into the table. Overwrite any existing entry with the same row key.
+//
+//			2	Delete this entry from the table. The remaining fields are not meaningful.
+//
+//			NOTE 8 - unlike the delete operation in the Received frame VLAN tagging operation table, the OLT
+//			does not need to set all eight bytes in Word 4 and Word 5 to 0xFF.
+//
+//			3	Clear all entries from the table. The remaining fields are not meaningful.
+//
+//			Other values: reserved.
+//
+//			Dir: (2 bits)
+//
+//			This field determines the direction of the classification and processing rule.
+//
+//			0	This is an upstream rule. In the downstream direction, the inverse classification and
+//			operation is defined based on the downstream mode code point. All downstream mode codepoints are
+//			considered valid to be used when dir=0 is used (including downstream  mode 8).
+//
+//			1	This is an upstream-only rule. This rule is ignored in the downstream direction.
+//
+//			2	This is a downstream-only rule. This rule is ignored in the upstream direction.
+//
+//			Other values: reserved.
+//
+//			Row key: (16 bits)
+//
+//			The row key distinguishes rows in the table. It is the responsibility of the OLT to assign and
+//			track row keys and content, and to ensure the classification rules are not duplicated and in the
+//			correct ordering.
+//
+//			For Filter outer priority, Filter outer VID, Filter outer TPID/DEI, Filter inner priority,
+//			Filter inner VID, Filter inner TPID/DEI, Filter on Extended Criteria, Filter Ethertype,
+//			Treatment outer priority, Treatment outer VID, Treatment outer TPID/DEI, Treatment inner
+//			priority, Treatment inner VID, and Treatment inner TPID/DEI values please refer to Received
+//			frame VLAN tagging operation table in this ME.
+//
+type ExtendedVlanTaggingOperationConfigurationData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	extendedvlantaggingoperationconfigurationdataBME = &ManagedEntityDefinition{
+		Name:    "ExtendedVlanTaggingOperationConfigurationData",
+		ClassID: 171,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			GetNext,
+			Set,
+			SetTable,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewExtendedVlanTaggingOperationConfigurationData (class ID 171) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewExtendedVlanTaggingOperationConfigurationData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*extendedvlantaggingoperationconfigurationdataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/fastchannelconfigurationprofile.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/fastchannelconfigurationprofile.go
new file mode 100644
index 0000000..72d15d6
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/fastchannelconfigurationprofile.go
@@ -0,0 +1,163 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// FastChannelConfigurationProfileClassID is the 16-bit ID for the OMCI
+// Managed entity FAST channel configuration profile
+const FastChannelConfigurationProfileClassID = ClassID(432) // 0x01b0
+
+var fastchannelconfigurationprofileBME *ManagedEntityDefinition
+
+// FastChannelConfigurationProfile (Class ID: #432 / 0x01b0)
+//	This ME contains the FAST channel configuration profile for an xDSL UNI. An instance of this ME
+//	is created and deleted by the OLT.
+//
+//	Relationships
+//		An instance of this ME may be associated with zero or more instances of the PPTP xDSL UNI part
+//		1.
+//
+//	Attributes
+//		Maximum Net Data Rate Maxndr
+//			Maximum net data rate (MAXNDR): This attribute specifies the value of the maximum net data rate.
+//			See clause 11.4.2.2 of [ITU-T G.9701]. Valid values range from 0 (0-kbit/s) to 4294967295
+//			(2^32-1-kbit/s). See clause 7.2.1.1 of [ITUT-G.997.2]. (R, W) (mandatory) (4 bytes)
+//
+//		Minimum Expected Throughput Minetr
+//			Minimum expected throughput (MINETR): This attribute specifies the value of the minimum expected
+//			throughput. See clause 11.4.2.1 of [ITU-T G.9701]. Valid values range from 0 (0-kbit/s) to
+//			4294967295 (2^32-1-kbit/s). See clause-7.2.1.2 of [ITU-T G.997.2]. (R, W) (mandatory) (4 bytes)
+//
+//		Maximum Gamma Data Rate Maxgdr
+//			Maximum gamma data rate (MAXGDR): This attribute specifies the maximum value of the GDR (see
+//			clause 7.11.1.3). The GDR shall not exceed MAXGDR at the start of showtime and during showtime.
+//			Valid values range from 0 (0-kbit/s) to 4294967295 (2^32-1-kbit/s). See clause 7.2.1.3 of [ITU-T
+//			G.997.2]. (R, W) (mandatory) (4 bytes)
+//
+//		Minimum Gamma Data Rate Mingdr
+//			Minimum gamma data rate (MINGDR): This attribute specifies the minimum value of the GDR (see
+//			clause 7.11.1.3). The GDR may be lower than MINGDR. If the GDR is lower than MINGDR at
+//			initialization or when GDR becomes lower than MINGDR during showtime, a TCA occurs. Valid values
+//			range from 0 (0-kbit/s) to 4294967295 (2^32-1-kbit/s). See clause 7.2.1.4 of [ITU-T G.997.2].
+//			(R, W) (mandatory) (4 bytes)
+//
+//		Maximum Delay Delaymax
+//			Maximum delay (DELAYMAX): This attribute specifies the maximum allowed delay for retransmission.
+//			See clause 9.8 of [ITU-T G.9701]. The ITUT-G.9701 control parameter delay_max is set to the same
+//			value as the maximum delay. See clause 11.4.2.3 of [ITU-T G.9701]. Valid values range from 4
+//			(1-ms) to 252 (63-ms) in steps of 0.25-ms. See clause 7.2.2.1 of [ITUT-G.997.2]. (R, W)
+//			(mandatory) (4 bytes)
+//
+//		Minimum Impulse Noise Protection Against Shine Inpmin_Shine
+//			Minimum impulse noise protection against SHINE (INPMIN_SHINE): This attribute specifies the
+//			minimum INP against SHINE. See clause 9.8 of [ITU-T G.9701]. The ITU-T G.9701 control parameter
+//			INP_min_shine is set to the same value as the minimum INP against SHINE. See clause 11.4.2.4 of
+//			[ITU-T G.9701]. Valid values range from 0 to 520 (520 symbol periods). See clause 7.2.2.2 of
+//			[ITUT G.997.2]. (R, W) (mandatory) (2-bytes)
+//
+//		Shine Ratio Shineratio
+//			SHINE ratio (SHINERATIO): This attribute specifies the SHINE ratio that is used in the
+//			definition of the expected throughput rate (ETR). See clause 9.8 of [ITUT-G.9701]. The ITU-T
+//			G.9701 control parameter SHINEratio is set to the same value as the SHINE ratio. See clause
+//			11.4.2.5 of [ITU-T G.9701]. The value is expressed in units of 0.001, Valid values range from 0
+//			to 100 (0.01) in steps of 0.001. See clause 7.2.2.3 of [ITU-T G.997.2]. (R, W) (mandatory)
+//			(1-byte)
+//
+//		Minimum Impulse Noise Protection Against Rein Inpmin_Rein
+//			Minimum impulse noise protection against REIN (INPMIN_REIN): This attribute specifies the
+//			minimum INP against REIN. See clause 9.8 of [ITU-T G.9701]. The ITU-T G.9701 control parameter
+//			INP_min_rein is set to the same value as the minimum INP against REIN. See clause 11.4.2.6 of
+//			[ITU-T G.9701]. Valid values range from 0 to 63 (63-symbol periods). See clause 7.2.2.4 of
+//			[ITU-T G.997.2]. (R, W) (mandatory) (1 byte)
+//
+//		Rein Inter_Arrival Time Iat_Rein
+//			REIN Inter-arrival time (IAT_REIN): This attribute specifies the REIN IAT. See clause 9.8 of
+//			[ITU-T G.9701]. The ITU-T G.9701 control parameter iat_rein_flag is set to the same value as the
+//			REIN IAT. See clause 11.4.2.7 of [ITU-T G.9701].
+//
+//			The REIN IAT is specified via the following values:
+//
+//			1	100 Hz;
+//
+//			2	120 Hz;
+//
+//			3	360 Hz.
+//
+//			See clause 7.2.2.5 of [ITU-T G.997.2].
+//
+//			(R, W) (mandatory) (1 byte)
+//
+//		Minimum Reed_Solomon Rfec_Nfec Ratio Rnratio
+//			Minimum Reed-Solomon RFEC/NFEC ratio (RNRATIO): This attribute specifies the minimal required
+//			ratio, RFEC/NFEC, of Reed-Solomon code parameters. The ITU-T G.9701 control parameter rnratio is
+//			set to the same value as the minimum Reed-Solomon RFEC/NFEC ratio. See clause 11.4.2.8 of
+//			[ITUT-G.9701]. The value is expressed in units of 1/32, Valid values range from 0 to 8 (1/4).
+//			See clause 7.2.2.6 of [ITU-T G.997.2]. (R, W) (mandatory) (1 byte)
+//
+//		Rtx_Tc Testmode Rtx_Testmode
+//			RTX-TC testmode (RTX_TESTMODE): This Boolean attribute specifies whether the retransmission test
+//			mode defined in clause 9.8.3.1.2 [ITU-T G.9701] is enabled-(true) or disabled (disabled). See
+//			clause 7.2.2.7 of [ITU-T G.997.2]. (R,-W) (optional) (1 byte)
+//
+type FastChannelConfigurationProfile struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	fastchannelconfigurationprofileBME = &ManagedEntityDefinition{
+		Name:    "FastChannelConfigurationProfile",
+		ClassID: 432,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		AllowedAttributeMask: 0xffc0,
+		AttributeDefinitions: AttributeDefinitionMap{
+			0:  Uint32Field("MaximumNetDataRateMaxndr", UnknownAttributeType, 0x0000, 0, mapset.NewSetWith(Read, Write), false, false, false, 0),
+			1:  Uint32Field("MinimumExpectedThroughputMinetr", UnsignedIntegerAttributeType, 0x8000, 0, mapset.NewSetWith(Read, Write), false, false, false, 1),
+			2:  Uint32Field("MaximumGammaDataRateMaxgdr", UnsignedIntegerAttributeType, 0x4000, 0, mapset.NewSetWith(Read, Write), false, false, false, 2),
+			3:  Uint32Field("MinimumGammaDataRateMingdr", UnsignedIntegerAttributeType, 0x2000, 0, mapset.NewSetWith(Read, Write), false, false, false, 3),
+			4:  Uint32Field("MaximumDelayDelaymax", UnsignedIntegerAttributeType, 0x1000, 0, mapset.NewSetWith(Read, Write), false, false, false, 4),
+			5:  Uint16Field("MinimumImpulseNoiseProtectionAgainstShineInpminShine", UnsignedIntegerAttributeType, 0x0800, 0, mapset.NewSetWith(Read, Write), false, false, false, 5),
+			6:  ByteField("ShineRatioShineratio", UnsignedIntegerAttributeType, 0x0400, 0, mapset.NewSetWith(Read, Write), false, false, false, 6),
+			7:  ByteField("MinimumImpulseNoiseProtectionAgainstReinInpminRein", UnsignedIntegerAttributeType, 0x0200, 0, mapset.NewSetWith(Read, Write), false, false, false, 7),
+			8:  ByteField("ReinInterArrivalTimeIatRein", UnsignedIntegerAttributeType, 0x0100, 0, mapset.NewSetWith(Read, Write), false, false, false, 8),
+			9:  ByteField("MinimumReedSolomonRfecNfecRatioRnratio", UnsignedIntegerAttributeType, 0x0080, 0, mapset.NewSetWith(Read, Write), false, false, false, 9),
+			10: ByteField("RtxTcTestmodeRtxTestmode", UnsignedIntegerAttributeType, 0x0040, 0, mapset.NewSetWith(Read, Write), false, true, false, 10),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewFastChannelConfigurationProfile (class ID 432) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewFastChannelConfigurationProfile(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*fastchannelconfigurationprofileBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/fastdatapathconfigurationprofile.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/fastdatapathconfigurationprofile.go
new file mode 100644
index 0000000..f7d9546
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/fastdatapathconfigurationprofile.go
@@ -0,0 +1,82 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// FastDataPathConfigurationProfileClassID is the 16-bit ID for the OMCI
+// Managed entity FAST data path configuration profile
+const FastDataPathConfigurationProfileClassID = ClassID(433) // 0x01b1
+
+var fastdatapathconfigurationprofileBME *ManagedEntityDefinition
+
+// FastDataPathConfigurationProfile (Class ID: #433 / 0x01b1)
+//	This ME contains FAST the data path configuration profile for an xDSL UNI. An instance of this
+//	ME is created and deleted by the OLT.
+//
+//	Relationships
+//		An instance of this ME may be associated with zero or more instances of the PPTP xDSL UNI part
+//		1.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. The value 0 is reserved. (R, set-
+//			by-create) (mandatory) (2 bytes)
+//
+//		Tps_Tc Testmode Tps_Testmode
+//			TPS-TC testmode (TPS_TESTMODE): This Boolean attribute specifies whether the TPSTC test mode
+//			defined in clause 8.3.1 [ITU-T G.9701] is enabled (true) or disabled (disabled). See clause
+//			7.3.1 of [ITUT-G.997.2]. (R,-W) (mandatory) (1 byte)
+//
+type FastDataPathConfigurationProfile struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	fastdatapathconfigurationprofileBME = &ManagedEntityDefinition{
+		Name:    "FastDataPathConfigurationProfile",
+		ClassID: 433,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewFastDataPathConfigurationProfile (class ID 433) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewFastDataPathConfigurationProfile(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*fastdatapathconfigurationprofileBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/fastlineinventoryandstatusdatapart2.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/fastlineinventoryandstatusdatapart2.go
new file mode 100644
index 0000000..ae25b7f
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/fastlineinventoryandstatusdatapart2.go
@@ -0,0 +1,112 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// FastLineInventoryAndStatusDataPart2ClassID is the 16-bit ID for the OMCI
+// Managed entity FAST line inventory and status data part 2
+const FastLineInventoryAndStatusDataPart2ClassID = ClassID(436) // 0x01b4
+
+var fastlineinventoryandstatusdatapart2BME *ManagedEntityDefinition
+
+// FastLineInventoryAndStatusDataPart2 (Class ID: #436 / 0x01b4)
+//	This ME contains part 3 of the FAST line inventory and status data with attributes specific to
+//	[ITU T G.997.2]. The ONU automatically creates or deletes an instance of this ME upon the
+//	creation or deletion of a PPTP xDSL UNI part 1.
+//
+//	Relationships
+//		This is one of the status data MEs associated with an xDSL UNI. It is required only if FAST is
+//		supported by the PPTP. The ONU automatically creates or deletes an instance of this ME upon
+//		creation or deletion of a PPTP xDSL UNI part 1 that supports these attributes.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the PPTP xDSL UNI part 1. (R) (mandatory) (2-bytes)
+//
+//		Date_Time_Stamping Of Last Successful Downstream Fra Operation Stamp_Frads
+//			Date/time-stamping of last successful downstream FRA operation (STAMP-FRAds): This attribute
+//			reports the date/time of the last successful FTU-R initiated FRA execution that has modified the
+//			bits allocation. See clause 7.10.14.5 of [ITUT-G.997.2]. The format of this parameter is as
+//			follows:
+//
+//			(R) (optional) (7 bytes)
+//
+//		Date_Time_Stamping Of Last Successful Upstream Fra Operation Stamp_Fraus
+//			Date/time-stamping of last successful upstream FRA operation (STAMP-FRAus): This parameter
+//			reports the date/time of the last successful FTU-O initiated FRA execution that has modified the
+//			bits allocation. See clause 7.10.14.6 of [ITUT-G.997.2]. The format of this parameter is the
+//			same as STAMPTESTNE. (R) (optional) (7 bytes)
+//
+//		Date_Time_Stamping Of Last Successful Downstream Rpa Operation Stamp_Rpads
+//			Date/time-stamping of last successful downstream RPA operation (STAMP-RPAds): This parameter
+//			reports the date/time of the last successful FTU-R initiated RPA execution that has modified the
+//			bits allocation for the RMC. See clause-7.10.14.7 of [ITU-T G.997.2]. The format of this
+//			parameter is the same as STAMP-TEST-NE. (R) (optional) (7 bytes)
+//
+//		Date_Time_Stamping Of Last Successful Upstream Rpa Operation Stamp_Rpaus
+//			Date/time-stamping of last successful upstream RPA operation (STAMP-RPAus): This parameter
+//			reports the date/time of the last successful FTU-O initiated RPA execution that has modified the
+//			bits allocation for the RMC. See clause-7.10.14.8 of [ITU-T G.997.2]. The format of this
+//			parameter is the same as STAMP-TEST-NE. (R) (optional) (7 bytes)
+//
+//		Date_Time_Stamping Of Last Successful Downstream Tiga Operation Stamp_Tiga
+//			Date/time-stamping of last successful downstream TIGA operation (STAMP-TIGA): This parameter
+//			reports the date/time of the last successful FTU-O initiated TIGA execution. See clause
+//			7.10.14.9 of [ITU-T G.997.2]. The format of this parameter is the same as STAMP-TEST-NE. (R)
+//			(optional) (7 bytes)
+//
+type FastLineInventoryAndStatusDataPart2 struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	fastlineinventoryandstatusdatapart2BME = &ManagedEntityDefinition{
+		Name:    "FastLineInventoryAndStatusDataPart2",
+		ClassID: 436,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewFastLineInventoryAndStatusDataPart2 (class ID 436) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewFastLineInventoryAndStatusDataPart2(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*fastlineinventoryandstatusdatapart2BME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/fastvectoringlineconfigurationextensions.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/fastvectoringlineconfigurationextensions.go
new file mode 100644
index 0000000..acbe8d3
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/fastvectoringlineconfigurationextensions.go
@@ -0,0 +1,91 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// FastVectoringLineConfigurationExtensionsClassID is the 16-bit ID for the OMCI
+// Managed entity FAST vectoring line configuration extensions
+const FastVectoringLineConfigurationExtensionsClassID = ClassID(434) // 0x01b2
+
+var fastvectoringlineconfigurationextensionsBME *ManagedEntityDefinition
+
+// FastVectoringLineConfigurationExtensions (Class ID: #434 / 0x01b2)
+//	This ME extends FAST line configuration MEs with attributes that are specific to vectoring. An
+//	instance of this ME is created and deleted by the OLT.
+//
+//	Relationships
+//		An instance of this ME may be associated with zero or more instances of an xDSL UNI.////		The overall FAST line configuration MEs is modelled in several parts, all of which are
+//		associated together through a common ME ID (the client PPTP xDSL UNI part 3 has a single
+//		pointer, which refers to the entire set of line configuration parts).
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. The value 0 is reserved. (R, set-
+//			by-create) (mandatory) (2 bytes)
+//
+//		Fext Cancellation Enabling_Disabling Upstream Fext_To_Cancel_Enableus
+//			FEXT cancellation enabling/disabling upstream (FEXT_TO_CANCEL_ENABLEus): A value of 1 enables
+//			and a value of 0 disables FEXT cancellation in the upstream direction from all the other
+//			vectored lines into the line in the vectored group. See clause 7.1.7.2 of [ITU-T G.997.2].
+//			(R,-W) (mandatory) (1-byte)
+//
+//		Fext Cancellation Enabling_Disabling Downstream Fext_To_Cancel_Enableds
+//			FEXT cancellation enabling/disabling downstream (FEXT_TO_CANCEL_ENABLEds): A value of 1 enables
+//			and a value of 0 disables FEXT cancellation in the downstream direction from all the other
+//			vectored lines into the line in the vectored group. See clause 7.1.7.1 of [ITUT-G.997.2]. (R,-W)
+//			(mandatory) (1-byte)
+//
+type FastVectoringLineConfigurationExtensions struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	fastvectoringlineconfigurationextensionsBME = &ManagedEntityDefinition{
+		Name:    "FastVectoringLineConfigurationExtensions",
+		ClassID: 434,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewFastVectoringLineConfigurationExtensions (class ID 434) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewFastVectoringLineConfigurationExtensions(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*fastvectoringlineconfigurationextensionsBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/fastxtu-cperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/fastxtu-cperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..0c2d554
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/fastxtu-cperformancemonitoringhistorydata.go
@@ -0,0 +1,104 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// FastXtuCPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity FAST xTU-C performance monitoring history data
+const FastXtuCPerformanceMonitoringHistoryDataClassID = ClassID(437) // 0x01b5
+
+var fastxtucperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// FastXtuCPerformanceMonitoringHistoryData (Class ID: #437 / 0x01b5)
+//	This ME collects PM data on the xTU C to xTU R path as seen from the xTU-C. Instances of this ME
+//	are created and deleted by the OLT.
+//
+//	Relationships
+//		An instance of this ME is associated with an xDSL UNI.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the PPTP xDSL UNI part 1. (R, set-by-create) (mandatory) (2
+//			bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1 byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 and 2 MEs
+//			that contain PM threshold values. (R, W, set-by-create) (mandatory) (2 bytes)
+//
+//		Successful Fra Counter
+//			This attribute counts the successful FRA primitives (success_FRA). The successful FRA primitive
+//			(success_FRA) is defined in clause 11.3.1.6 of [ITU-T G.9701]. See clause 7.7.22 of [ITU-T
+//			G.997.2]. (R) (mandatory) (4-bytes)
+//
+//		Successful Rpa Counter
+//			This attribute counts the successful RPA primitives (success_RPA). The successful RPA primitive
+//			(success_RPA) is defined in clause 11.3.1.6 of [ITU-T G.9701]. See clause 7.7.23 of [ITU-T
+//			G.997.2] (R) (optional) (4 bytes)
+//
+//		Successful Tiga Counter
+//			This attribute counts the successful TIGA primitives (success_TIGA). The successful TIGA
+//			primitive (success_TIGA) is defined in clause 11.3.1.6 of [ITU-T G.9701]. Reported only with the
+//			near-end measured time, invalid data flag and timestamp. See clause 7.7.24 of [ITUT-G.997.2] (R)
+//			(optional) (4 bytes)
+//
+type FastXtuCPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	fastxtucperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "FastXtuCPerformanceMonitoringHistoryData",
+		ClassID: 437,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewFastXtuCPerformanceMonitoringHistoryData (class ID 437) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewFastXtuCPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*fastxtucperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/fastxtu-rperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/fastxtu-rperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..579f46f
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/fastxtu-rperformancemonitoringhistorydata.go
@@ -0,0 +1,98 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// FastXtuRPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity FAST xTU-R performance monitoring history data
+const FastXtuRPerformanceMonitoringHistoryDataClassID = ClassID(438) // 0x01b6
+
+var fastxturperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// FastXtuRPerformanceMonitoringHistoryData (Class ID: #438 / 0x01b6)
+//	This ME collects PM data of the xTU C to xTU R path as seen from the xTU-R. Instances of this ME
+//	are created and deleted by the OLT. For a complete discussion of generic PM architecture, refer
+//	to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an xDSL UNI.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the PPTP xDSL UNI part 1. (R, set-by-create) (mandatory) (2
+//			bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1 byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 and 2 MEs
+//			that contain PM threshold values. (R, W, set-by-create) (mandatory) (2 bytes)
+//
+//		Successful Fra Counter
+//			This attribute counts the successful FRA primitives (success_FRA). The successful FRA primitive
+//			(success_FRA) is defined in clause 11.3.1.6 of [ITU-T G.9701]. See clause 7.7.22 of [ITU-T
+//			G.997.2] (R) (mandatory) (4-bytes)
+//
+//		Successful Rpa Counter
+//			This attribute counts the successful RPA primitives (success_RPA). The successful RPA primitive
+//			(success_RPA) is defined in clause 11.3.1.6 of [ITU-T G.9701]. See clause 7.7.23 of [ITU-T
+//			G.997.2] (R) (optional) (4 bytes)
+//
+type FastXtuRPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	fastxturperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "FastXtuRPerformanceMonitoringHistoryData",
+		ClassID: 438,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewFastXtuRPerformanceMonitoringHistoryData (class ID 438) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewFastXtuRPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*fastxturperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/fecperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/fecperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..1633e36
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/fecperformancemonitoringhistorydata.go
@@ -0,0 +1,119 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// FecPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity FEC performance monitoring history data
+const FecPerformanceMonitoringHistoryDataClassID = ClassID(312) // 0x0138
+
+var fecperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// FecPerformanceMonitoringHistoryData (Class ID: #312 / 0x0138)
+//	This ME collects PM data associated with PON downstream forward error correction (FEC) counters.
+//	Instances of this ME are created and deleted by the OLT.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of the ANI-G ME or an instance of the time
+//		and wavelength division multiplexing (TWDM) channel ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the ANI-G or a TWDM channel. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 ME that
+//			contains PM threshold values. Since no threshold value attribute number exceeds 7, a threshold
+//			data 2 ME is optional. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Corrected Bytes
+//			This attribute counts the number of bytes that were corrected by the FEC function. (R)
+//			(mandatory) (4-bytes)
+//
+//		Corrected Code Words
+//			This attribute counts the code words that were corrected by the FEC function. (R) (mandatory)
+//			(4-bytes)
+//
+//		Uncorrectable Code Words
+//			This attribute counts errored code words that could not be corrected by the FEC function. (R)
+//			(mandatory) (4-bytes)
+//
+//		Total Code Words
+//			This attribute counts the total received code words. (R) (mandatory) (4-bytes)
+//
+//		Fec Seconds
+//			This attribute counts seconds during which there was an FEC anomaly. (R) (mandatory) (2-bytes)
+//
+type FecPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	fecperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "FecPerformanceMonitoringHistoryData",
+		ClassID: 312,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Corrected bytes",
+			1: "Corrected code words",
+			2: "Uncorrectable code words",
+			4: "FEC seconds",
+		},
+	}
+}
+
+// NewFecPerformanceMonitoringHistoryData (class ID 312) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewFecPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*fecperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/galethernetperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/galethernetperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..808da29
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/galethernetperformancemonitoringhistorydata.go
@@ -0,0 +1,96 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// GalEthernetPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity GAL Ethernet performance monitoring history data
+const GalEthernetPerformanceMonitoringHistoryDataClassID = ClassID(276) // 0x0114
+
+var galethernetperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// GalEthernetPerformanceMonitoringHistoryData (Class ID: #276 / 0x0114)
+//	This ME collects PM data associated with a GEM IW TP when the GEM layer supports an Ethernet
+//	service. Instances of this ME are created and deleted by the OLT.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of the GEM IW TP ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the GEM IW TP. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 ME that
+//			contains PM threshold values. Since no threshold value attribute number exceeds 7, a threshold
+//			data 2 ME is optional. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Discarded Frames
+//			This attribute counts the number of downstream GEM frames discarded for any reason [erroneous
+//			frame check sequence (FCS), too long length, buffer overflow, etc.]. (R) (mandatory) (4-bytes)
+//
+type GalEthernetPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	galethernetperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "GalEthernetPerformanceMonitoringHistoryData",
+		ClassID: 276,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Discarded frames",
+		},
+	}
+}
+
+// NewGalEthernetPerformanceMonitoringHistoryData (class ID 276) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewGalEthernetPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*galethernetperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/galethernetprofile.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/galethernetprofile.go
new file mode 100644
index 0000000..9521dc6
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/galethernetprofile.go
@@ -0,0 +1,83 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// GalEthernetProfileClassID is the 16-bit ID for the OMCI
+// Managed entity GAL Ethernet profile
+const GalEthernetProfileClassID = ClassID(272) // 0x0110
+
+var galethernetprofileBME *ManagedEntityDefinition
+
+// GalEthernetProfile (Class ID: #272 / 0x0110)
+//	This ME organizes data that describe the gigabit-capable passive optical network transmission
+//	convergence layer (GTC) adaptation layer processing functions of the ONU for Ethernet services.
+//	It is used with the GEM IW TP ME.
+//
+//	Instances of this ME are created and deleted on request of the OLT.
+//
+//	Relationships
+//		An instance of this ME may be associated with zero or more instances of the GEM IW TP ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Maximum Gem Payload Size
+//			This attribute defines the maximum payload size generated in the associated GEM IW TP ME. (R,-W,
+//			setbycreate) (mandatory) (2-bytes)
+//
+type GalEthernetProfile struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	galethernetprofileBME = &ManagedEntityDefinition{
+		Name:    "GalEthernetProfile",
+		ClassID: 272,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewGalEthernetProfile (class ID 272) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewGalEthernetProfile(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*galethernetprofileBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/geminterworkingterminationpoint.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/geminterworkingterminationpoint.go
new file mode 100644
index 0000000..575d6f9
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/geminterworkingterminationpoint.go
@@ -0,0 +1,189 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// GemInterworkingTerminationPointClassID is the 16-bit ID for the OMCI
+// Managed entity GEM interworking termination point
+const GemInterworkingTerminationPointClassID = ClassID(266) // 0x010a
+
+var geminterworkingterminationpointBME *ManagedEntityDefinition
+
+// GemInterworkingTerminationPoint (Class ID: #266 / 0x010a)
+//	An instance of this ME represents a point in the ONU where the IW of a bearer service (usually
+//	Ethernet) to the GEM layer takes place. At this point, GEM packets are generated from the bearer
+//	bit stream (e.g., Ethernet) or the bearer bit stream is reconstructed from GEM packets.
+//
+//	Instances of this ME are created and deleted by the OLT.
+//
+//	Relationships
+//		One instance of this ME exists for each transformation of a data stream into GEM frames and vice
+//		versa.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Gem Port Network Ctp Connectivity Pointer
+//			This attribute points to an instance of the GEM port network CTP. (R,-W, setbycreate)
+//			(mandatory) (2-bytes)
+//
+//		Interworking Option
+//			This attribute identifies the type of non-GEM function that is being interworked. The options
+//			are as follows.
+//
+//			0	Circuit-emulated TDM
+//
+//			1	MAC bridged LAN
+//
+//			2	Reserved
+//
+//			3	Reserved
+//
+//			4	Video return path
+//
+//			5	IEEE 802.1p mapper
+//
+//			6	Downstream broadcast
+//
+//			7	MPLS PW TDM service
+//
+//			(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Service Profile Pointer
+//			This attribute points to an instance of a service profile:
+//
+//			CES service profile	if IW option-=-0
+//
+//			MAC bridge service profile	if IW option-=-1
+//
+//			Video return path service profile	if IW option-=-4
+//
+//			IEEE 802.1p mapper service profile	if IW option-=-5
+//
+//			Null pointer	if IW option-=-6
+//
+//			CES service profile	if IW option-=-7
+//
+//			(R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//			NOTE - The video return path (VRP) service profile is defined in [ITU-T G.984.4].
+//
+//		Interworking Termination Point Pointer
+//			This attribute is used for the CES and IEEE 802.1p mapper service without a MAC bridge.
+//			Depending on the service provided, it points to the associated instance of the following MEs:
+//
+//			PPTP CES UNI
+//
+//			Logical N * 64 kbit/s sub-port CTP
+//
+//			PPTP Ethernet UNI
+//
+//			In all other GEM services, the relationship between the related service TP and this GEM IW TP is
+//			derived from other ME relations; this attribute is set to a null pointer and not used. (R,-W,
+//			setbycreate) (mandatory) (2-bytes)
+//
+//		Pptp Counter
+//			This value reports the number of PPTP ME instances associated with this GEM IW TP. (R)
+//			(optional) (1-byte)
+//
+//		Operational State
+//			This attribute indicates whether the ME is capable of performing its function. Valid values are
+//			enabled (0) and disabled (1). (R) (optional) (1-byte)
+//
+//		Gal Profile Pointer
+//			5	GAL Ethernet profile for IEEE 802.1p mapper
+//
+//			6	Null pointer
+//
+//			7	Null pointer
+//
+//			(R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//			This attribute points to an instance of the GAL profile. The relationship between the IW option
+//			and the related GAL profile is as follows.
+//
+//			Interworking option	GAL profile type
+//
+//			0	Null pointer
+//
+//			1	GAL Ethernet profile
+//
+//			3	GAL Ethernet profile for data service
+//
+//			4	GAL Ethernet profile for video return path
+//
+//		Gal Loopback Configuration
+//			This attribute sets the loopback configuration when using GEM mode:
+//
+//			0	No loopback
+//
+//			1	Loopback of downstream traffic after GAL
+//
+//			The default value of this attribute is 0. When the IW option is 6 (downstream broadcast), this
+//			attribute is not used. (R,-W) (mandatory) (1-byte)
+//
+type GemInterworkingTerminationPoint struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	geminterworkingterminationpointBME = &ManagedEntityDefinition{
+		Name:    "GemInterworkingTerminationPoint",
+		ClassID: 266,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Deprecated",
+		},
+	}
+}
+
+// NewGemInterworkingTerminationPoint (class ID 266) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewGemInterworkingTerminationPoint(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*geminterworkingterminationpointBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/gemportnetworkctp.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/gemportnetworkctp.go
new file mode 100644
index 0000000..627e052
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/gemportnetworkctp.go
@@ -0,0 +1,187 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// GemPortNetworkCtpClassID is the 16-bit ID for the OMCI
+// Managed entity GEM port network CTP
+const GemPortNetworkCtpClassID = ClassID(268) // 0x010c
+
+var gemportnetworkctpBME *ManagedEntityDefinition
+
+// GemPortNetworkCtp (Class ID: #268 / 0x010c)
+//	This ME represents the termination of a GEM port on an ONU. This ME aggregates connectivity
+//	functionality from the network view and alarms from the network element view as well as
+//	artefacts from trails.
+//
+//	Instances of the GEM port network CTP ME are created and deleted by the OLT. An instance of GEM
+//	port network CTP can be deleted only when no GEM IW TP or GEM port network CTP PM history data
+//	are associated with it. It is the responsibility of the OLT to make sure that the ONU
+//	configuration meets this condition.
+//
+//	In ITU-T G.984 systems, when a GEM port network CTP is created, its encryption state is by
+//	default not encrypted. If the OLT wishes to configure the GEM port to use encryption, it must
+//	send the appropriate PLOAM message. This applies equally to new CTPs and to CTPs that are re-
+//	created after an MIB reset.
+//
+//	In ITU-T G.987 systems, GEM ports are dynamically encrypted. If it is intended to encrypt the
+//	GEM port, the OLT must configure a key ring to be used, and the key must be known to the ONU at
+//	run time.
+//
+//	Relationships
+//		An instance of the GEM port network CTP ME may be associated with an instance of the T-CONT and
+//		GEM IW TP MEs.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Port_Id
+//			Port-ID:	This attribute is the port-ID of the GEM port associated with this CTP. (RWSC)
+//			(mandatory) (2-bytes)
+//
+//			NOTE 1 - While nothing forbids the existence of several GEM port network CTPs with the same
+//			port-ID value, downstream traffic is modelled as being delivered to all such GEM port network
+//			CTPs. Be aware of potential difficulties associated with defining downstream flows and
+//			aggregating PM statistics.
+//
+//		T_Cont Pointer
+//			T-CONT pointer: This attribute points to a T-CONT instance. (R,-W, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Direction
+//			This attribute specifies whether the GEM port is used for UNI-to-ANI (1), ANI-to-UNI (2), or
+//			bidirectional (3) connection. (R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Traffic Management Pointer For Upstream
+//			If the traffic management option attribute in the ONU-G ME is 0 (priority controlled) or 2
+//			(priority and rate controlled), this pointer specifies the priority queue ME serving this GEM
+//			port network CTP. If the traffic management option attribute is 1 (rate controlled), this
+//			attribute redundantly points to the TCONT serving this GEM port network CTP. (R,-W, setbycreate)
+//			(mandatory) (2-bytes)
+//
+//		Traffic Descriptor Profile Pointer For Upstream
+//			See also Appendix II.
+//
+//			This attribute points to the instance of the traffic descriptor ME that contains the upstream
+//			traffic parameters for this GEM port network CTP. This attribute is used when the traffic
+//			management option attribute in the ONU-G ME is 1 (rate controlled), specifying the PIR/PBS to
+//			which the upstream traffic is shaped. This attribute is also used when the traffic management
+//			option attribute in the ONU-G ME is 2 (priority and rate controlled), specifying the
+//			CIR/CBS/PIR/PBS to which the upstream traffic is policed. (R,-W, setbycreate) (optional)
+//			(2-bytes)
+//
+//		Uni Counter
+//			This attribute reports the number of instances of UNI-G ME associated with this GEM port network
+//			CTP. (R) (optional) (1-byte)
+//
+//		Priority Queue Pointer For Down Stream
+//			Priority queue pointer for downstream: This attribute points to the instance of the priority
+//			queue used for this GEM port network CTP in the downstream direction. It is the responsibility
+//			of the OLT to provision the downstream pointer in a way that is consistent with the bridge and
+//			mapper connectivity. If the pointer is null, downstream queueing is determined by other
+//			mechanisms in the ONU. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//			NOTE 2 - If the GEM port network CTP is associated with more than one UNI (downstream
+//			multicast), the downstream priority queue pointer defines a pattern (e.g., queue number 3 for a
+//			given UNI) to be replicated (i.e., to queue number 3) at the other affected UNIs.
+//
+//		Encryption State
+//			This attribute indicates the current state of the GEM port network CTP's encryption. Legal
+//			values are defined to be the same as those of the security mode attribute of the ONU2-G, with
+//			the exception that attribute value 0 indicates an unencrypted GEM port. (R) (optional) (1-byte)
+//
+//		Traffic Descriptor Profile Pointer For Downstream
+//			This attribute points to the instance of the traffic descriptor ME that contains the downstream
+//			traffic parameters for this GEM port network CTP. This attribute is used when the traffic
+//			management option attribute in the ONU-G ME is 1 (rate controlled), specifying the PIR/PBS to
+//			which the downstream traffic is shaped. This attribute is also used when the traffic management
+//			option attribute in the ONU-G ME is 2 (priority and rate controlled), specifying the
+//			CIR/CBS/PIR/PBS to which the downstream traffic is policed. (R,-W, setbycreate) (optional)
+//			(2-bytes)
+//
+//			See also Appendix II.
+//
+//		Encryption Key Ring
+//			This attribute is defined in ITU-T G.987 systems only. It specifies whether the associated GEM
+//			port is encrypted, and if so, which key ring it uses. (R, W, setbycreate) (optional) (1 byte)
+//
+//			0	(default) No encryption. The downstream key index is ignored, and upstream traffic is
+//			transmitted with key index 0.
+//
+//			1	Unicast payload encryption in both directions. Keys are generated by the ONU and transmitted
+//			to the OLT via the PLOAM channel.
+//
+//			2	Broadcast (multicast) encryption. Keys are generated by the OLT and distributed via the OMCI.
+//
+//			3	Unicast encryption, downstream only. Keys are generated by the ONU and transmitted to the OLT
+//			via the PLOAM channel.
+//
+//			Other values are reserved.
+//
+type GemPortNetworkCtp struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	gemportnetworkctpBME = &ManagedEntityDefinition{
+		Name:    "GemPortNetworkCtp",
+		ClassID: 268,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			5: "End-to-end loss of continuity",
+		},
+	}
+}
+
+// NewGemPortNetworkCtp (class ID 268) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewGemPortNetworkCtp(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*gemportnetworkctpBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/gemportnetworkctpperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/gemportnetworkctpperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..ec04ef9
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/gemportnetworkctpperformancemonitoringhistorydata.go
@@ -0,0 +1,134 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// GemPortNetworkCtpPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity GEM port network CTP performance monitoring history data
+const GemPortNetworkCtpPerformanceMonitoringHistoryDataClassID = ClassID(341) // 0x0155
+
+var gemportnetworkctpperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// GemPortNetworkCtpPerformanceMonitoringHistoryData (Class ID: #341 / 0x0155)
+//	This ME collects GEM frame PM data associated with a GEM port network CTP. Instances of this ME
+//	are created and deleted by the OLT.
+//
+//	NOTE 1 - One might expect to find some form of impaired or discarded frame count associated with
+//	a GEM port. However, the only impairment that might be detected at the GEM frame level would be
+//	a corrupted GEM frame header. In this case, no part of the header could be considered reliable
+//	including the port ID. For this reason, there is no impaired or discarded frame count in this
+//	ME.
+//
+//	NOTE 2 - This ME replaces the GEM port performance history data ME and is preferred for new
+//	implementations.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of the GEM port network CTP ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the GEM port network CTP. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 ME that
+//			contains PM threshold values. Since no threshold value attribute number exceeds 7, a threshold
+//			data 2 ME is optional. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Transmitted Gem Frames
+//			This attribute counts GEM frames transmitted on the monitored GEM port. (R) (mandatory)
+//			(4-bytes)
+//
+//		Received Gem Frames
+//			This attribute counts GEM frames received correctly on the monitored GEM port. A correctly
+//			received GEM frame is one that does not contain uncorrectable errors and has a valid header
+//			error check (HEC). (R) (mandatory) (4-bytes)
+//
+//		Received Payload Bytes
+//			This attribute counts user payload bytes received on the monitored GEM port. (R) (mandatory)
+//			(8-bytes)
+//
+//		Transmitted Payload Bytes
+//			This attribute counts user payload bytes transmitted on the monitored GEM port. (R) (mandatory)
+//			(8-bytes)
+//
+//		Encryption Key Errors
+//			NOTE 3 - GEM PM ignores idle GEM frames.
+//
+//			NOTE 4 - GEM PM counts each non-idle GEM frame, whether it contains an entire user frame or only
+//			a fragment of a user frame.
+//
+//			This attribute is defined in ITU-T G.987 systems only. It counts GEM frames with erroneous
+//			encryption key indexes. If the GEM port is not encrypted, this attribute counts any frame with a
+//			key index not equal to 0. If the GEM port is encrypted, this attribute counts any frame whose
+//			key index specifies a key that is not known to the ONU. (R) (optional) (4-bytes)
+//
+type GemPortNetworkCtpPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	gemportnetworkctpperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "GemPortNetworkCtpPerformanceMonitoringHistoryData",
+		ClassID: 341,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			1: "Encryption key errors",
+		},
+	}
+}
+
+// NewGemPortNetworkCtpPerformanceMonitoringHistoryData (class ID 341) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewGemPortNetworkCtpPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*gemportnetworkctpperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/generalpurposebuffer.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/generalpurposebuffer.go
new file mode 100644
index 0000000..90cd13e
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/generalpurposebuffer.go
@@ -0,0 +1,102 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// GeneralPurposeBufferClassID is the 16-bit ID for the OMCI
+// Managed entity General purpose buffer
+const GeneralPurposeBufferClassID = ClassID(308) // 0x0134
+
+var generalpurposebufferBME *ManagedEntityDefinition
+
+// GeneralPurposeBuffer (Class ID: #308 / 0x0134)
+//	This ME is created by the OLT when needed to store the results of an operation, such as a test
+//	command, that needs to return a block of data of indeterminate size. The buffer is retrieved
+//	with get next operations, since its size is not known a priori. An instance of this ME is
+//	created and deleted by the OLT, and typically made known to an ONU ME or to an action through a
+//	pointer.
+//
+//	The ME is defined as generically as possible, such that it can be used for other applications
+//	that may not initially be apparent, such as logging. The format of its content is specific to
+//	each application, and is documented there.
+//
+//	The general purpose buffer is neither captured in an MIB upload, nor retained in a non-volatile
+//	ONU memory.
+//
+//	Relationships
+//		Through a pointer, the OLT may associate a general purpose buffer with an ME or an operation
+//		that has a need to create large or indeterminate blocks of data for subsequent upload.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Maximum Size
+//			The ONU determines the actual size of the buffer table in the process of capturing the data
+//			directed to it. The maximum size attribute permits the OLT to restrict the maximum size of the
+//			buffer table. The value 0 indicates that the OLT imposes no limit on the size; it is recognized
+//			that ONU implementations will impose their own limits. The ONU will not create a buffer table
+//			larger than the value of this attribute. If the ONU cannot allocate enough memory to accommodate
+//			this size, it should deny the ME create action or a write operation that attempts to expand an
+//			existing ME. (R,-W, setbycreate) (optional) (4-bytes)
+//
+//		Buffer Table
+//			This attribute is an octet string that contains the result of some operation performed on the
+//			ONU. The exact content depends on the operation, and is documented with the definition of each
+//			operation. (R) (mandatory) (N bytes)
+//
+type GeneralPurposeBuffer struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	generalpurposebufferBME = &ManagedEntityDefinition{
+		Name:    "GeneralPurposeBuffer",
+		ClassID: 308,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			GetNext,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewGeneralPurposeBuffer (class ID 308) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewGeneralPurposeBuffer(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*generalpurposebufferBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/ieee802.1pmapperserviceprofile.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/ieee802.1pmapperserviceprofile.go
new file mode 100644
index 0000000..989c783
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/ieee802.1pmapperserviceprofile.go
@@ -0,0 +1,194 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// Ieee8021PMapperServiceProfileClassID is the 16-bit ID for the OMCI
+// Managed entity IEEE 802.1p mapper service profile
+const Ieee8021PMapperServiceProfileClassID = ClassID(130) // 0x0082
+
+var ieee8021pmapperserviceprofileBME *ManagedEntityDefinition
+
+// Ieee8021PMapperServiceProfile (Class ID: #130 / 0x0082)
+//	This ME associates the priorities of IEEE 802.1p [IEEE 802.1D] priority tagged frames with
+//	specific connections. This ME directs upstream traffic to the designated GEM ports. Downstream
+//	traffic arriving on any of the IEEE 802.1p mapper's GEM ports is directed to the mapper's root
+//	TP. Other mechanisms exist to direct downstream traffic, specifically a direct pointer to a
+//	downstream queue from the GEM port network CTP. If such an alternative is used, it should be
+//	provisioned to be consistent with the flow model of the mapper.
+//
+//	Instances of this ME are created and deleted by the OLT.
+//
+//	Relationships
+//		At its root, an instance of this ME may be associated with zero or one instance of a PPTP UNI,
+//		MAC bridge port configuration data, or any type of IW TP ME that carries IEEE 802 traffic. Each
+//		of its eight branches is associated with zero or one GEM IW TP.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Tp Pointer
+//			This attribute points to an instance of the associated TP.
+//
+//			If the optional TP type attribute is not supported, the TP pointer indicates bridging mapping
+//			with the value 0xFFFF; the TP pointer may also point to a PPTP Ethernet UNI.
+//
+//			The TP type value 0 also indicates bridging mapping, and the TP pointer should be set to 0xFFFF.
+//
+//			In all other cases, the TP type is determined by the TP type attribute.
+//
+//			(R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//			Each of the following eight attributes points to the GEM IW TP associated with the stated P-bit
+//			value. The null pointer 0xFFFF specifies that frames with the associated priority are to be
+//			discarded.
+//
+//		Interwork Tp Pointer For P_Bit Priority 0
+//			Interwork TP pointer for P-bit priority 0:	(R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Interwork Tp Pointer For P_Bit Priority 1
+//			Interwork TP pointer for P-bit priority 1:	(R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Interwork Tp Pointer For P_Bit Priority 2
+//			Interwork TP pointer for P-bit priority 2:	(R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Interwork Tp Pointer For P_Bit Priority 3
+//			Interwork TP pointer for P-bit priority 3:	(R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Interwork Tp Pointer For P_Bit Priority 4
+//			Interwork TP pointer for P-bit priority 4:	(R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Interwork Tp Pointer For P_Bit Priority 5
+//			Interwork TP pointer for P-bit priority 5:	(R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Interwork Tp Pointer For P_Bit Priority 6
+//			Interwork TP pointer for P-bit priority 6:	(R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Interwork Tp Pointer For P_Bit Priority 7
+//			Interwork TP pointer for P-bit priority 7:	(R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Unmarked Frame Option
+//			This attribute specifies how the ONU should handle untagged Ethernet frames received across the
+//			associated interface. Although it does not alter the frame in any way, the ONU routes the frame
+//			as if it were tagged with P bits (PCP field) according to the following code points.
+//
+//			0	Derive implied PCP field from DSCP bits of received frame
+//
+//			1	Set implied PCP field to a fixed value specified by the default P-bit assumption attribute
+//
+//			(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//			Untagged downstream frames are passed through the mapper transparently.
+//
+//		Dscp To P Bit Mapping
+//			NOTE - If certain bits in the DSCP field are to be ignored in the mapping process, the attribute
+//			should be provisioned such that all possible values of those bits produce the same P-bit
+//			mapping. This can be applied to the case where instead of full DSCP, the operator wishes to
+//			adopt the priority mechanism based on IP precedence, which needs only the three MSBs of the DSCP
+//			field.
+//
+//			DSCP to P-bit mapping: This attribute is valid when the unmarked frame option attribute is set
+//			to 0. The DSCP to P-bit attribute can be considered a bit string sequence of 64 3-bit groupings.
+//			The 64 sequence entries represent the possible values of the 6-bit DSCP field. Each 3-bit
+//			grouping specifies the P-bit value to which the associated DSCP value should be mapped. The
+//			unmarked frame is then directed to the GEM IW TP indicated by the interwork TP pointer mappings.
+//			(R,-W) (mandatory) (24-bytes)
+//
+//		Default P Bit Assumption
+//			Default P-bit assumption: This attribute is valid when the unmarked frame option attribute is
+//			set to 1. In its LSBs, the default Pbit assumption attribute contains the default PCP field to
+//			be assumed. The unmodified frame is then directed to the GEM IW TP indicated by the interwork TP
+//			pointer mappings. (R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Tp Type
+//			This attribute identifies the type of TP associated with the mapper.
+//
+//			0	Mapper used for bridging-mapping
+//
+//			1	Mapper directly associated with a PPTP Ethernet UNI
+//
+//			2	Mapper directly associated with an IP host config data or IPv6 host config data ME
+//
+//			3	Mapper directly associated with an Ethernet flow termination point
+//
+//			4	Mapper directly associated with a PPTP xDSL UNI
+//
+//			5	Reserved
+//
+//			6	Mapper directly associated with a PPTP MoCA UNI
+//
+//			7	Mapper directly associated with a virtual Ethernet interface point
+//
+//			8	Mapper directly associated with an IW VCC termination point
+//
+//			9	Mapper directly associated with an EFM bonding group
+//
+//			(R,-W, setbycreate) (optional) (1-byte)
+//
+type Ieee8021PMapperServiceProfile struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	ieee8021pmapperserviceprofileBME = &ManagedEntityDefinition{
+		Name:    "Ieee8021PMapperServiceProfile",
+		ClassID: 130,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewIeee8021PMapperServiceProfile (class ID 130) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewIeee8021PMapperServiceProfile(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*ieee8021pmapperserviceprofileBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/interworkingvccterminationpoint.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/interworkingvccterminationpoint.go
new file mode 100644
index 0000000..0b1e18a
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/interworkingvccterminationpoint.go
@@ -0,0 +1,141 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// InterworkingVccTerminationPointClassID is the 16-bit ID for the OMCI
+// Managed entity Interworking VCC termination point
+const InterworkingVccTerminationPointClassID = ClassID(14) // 0x000e
+
+var interworkingvccterminationpointBME *ManagedEntityDefinition
+
+// InterworkingVccTerminationPoint (Class ID: #14 / 0x000e)
+//	An instance of this ME represents a point in the ONU where the IW of a service or underlying
+//	physical infrastructure (e.g., ADSL) to an ATM layer takes place. At this point, ATM cells are
+//	generated from a bit stream (e.g., Ethernet) or a bit stream is reconstructed from ATM cells.
+//
+//	Instances of this ME are created and deleted by the OLT.
+//
+//	Relationships
+//		One instance of this ME exists for each occurrence of transformation of a data stream into ATM
+//		cells and vice versa.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. (R,-setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Vci Value
+//			This attribute identifies the VCI value associated with this IW VCC TP. (R,-W, setbycreate)
+//			(mandatory) (2-bytes)
+//
+//		Vp Network Ctp Connectivity Pointer
+//			This attribute points to the VP network CTP associated with this IW VCC TP. (R,-W, setbycreate)
+//			(mandatory) (2-bytes)
+//
+//		Deprecated 1
+//			Not used; should be set to 0. (R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Deprecated 2
+//			Not used; should be set to 0. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Aal5 Profile Pointer
+//			This attribute points to an instance of the AAL5 profile. (R,-W, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Deprecated 3
+//			Not used; should be set to 0. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Aal Loopback Configuration
+//			This attribute sets the ATM loopback configuration. All code points are retained for backward
+//			compatibility, but some are not expected to be needed in current and future applications.
+//
+//			0	No loopback
+//
+//			1	Loopback 1, loopback of downstream traffic before FEC of AAL1
+//
+//			2	Loopback 2, loopback of downstream traffic after FEC of AAL1
+//
+//			3	Loopback after AAL, loopback of downstream traffic after any AAL. Loopback after AAL is
+//			depicted in Figure 9.13.4-1.
+//
+//			The default value of this attribute is 0. (R,-W) (mandatory) (1-byte)
+//
+//		Pptp Counter
+//			This value is the number of instances of PPTP MEs associated with this instance of the IW VCC
+//			TP. (R) (optional) (1-byte)
+//
+//		Operational State
+//			This attribute indicates whether the ME is capable of performing its function. Valid values are
+//			enabled (0) and disabled (1). (R) (optional) (1-byte)
+//
+type InterworkingVccTerminationPoint struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	interworkingvccterminationpointBME = &ManagedEntityDefinition{
+		Name:    "InterworkingVccTerminationPoint",
+		ClassID: 14,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "End-to-end VC AIS layer management indication receiving (LMIR)",
+			1: "End-to-end VC RDI LMIR",
+			2: "End-to-end VC AIS layer management indication generation (LMIG)",
+			3: "End-to-end VC RDI LMIG",
+			4: "Segment loss of continuity",
+			5: "End-to-end loss of continuity",
+			6: "CSA",
+		},
+	}
+}
+
+// NewInterworkingVccTerminationPoint (class ID 14) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewInterworkingVccTerminationPoint(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*interworkingvccterminationpointBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/iphostconfigdata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/iphostconfigdata.go
new file mode 100644
index 0000000..7786d91
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/iphostconfigdata.go
@@ -0,0 +1,240 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// IpHostConfigDataClassID is the 16-bit ID for the OMCI
+// Managed entity IP host config data
+const IpHostConfigDataClassID = ClassID(134) // 0x0086
+
+var iphostconfigdataBME *ManagedEntityDefinition
+
+// IpHostConfigData (Class ID: #134 / 0x0086)
+//	The IP host config data configures IPv4 based services offered on the ONU. The ONU automatically
+//	creates instances of this ME if IP host services are available. A possible IPv6 stack is
+//	supported through the IPv6 host config data ME. In this clause, references to IP addresses are
+//	understood to mean IPv4.
+//
+//	Relationships
+//		An instance of this ME is associated with the ONU ME. Any number of TCP/UDP config data MEs can
+//		point to the IP host config data, to model any number of ports and protocols. Performance may be
+//		monitored through an implicitly linked IP host PM history data ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. The ONU creates as many instances
+//			as there are independent IPv4 stacks on the ONU. To facilitate discovery, IP host config data
+//			MEs should be numbered from 0 upwards. The ONU should create IP(v4) and IPv6 host config data
+//			MEs with separate ME IDs, such that other MEs can use a single TP type attribute to link with
+//			either. (R) (mandatory) (2 bytes)
+//
+//		Ip Options
+//			This attribute is a bit map that enables or disables IP-related options. The value 1 enables the
+//			option while 0 disables it. The default value of this attribute is 0.
+//
+//			0x01	Enable DHCP
+//
+//			0x02	Respond to pings
+//
+//			0x04	Respond to traceroute messages
+//
+//			0x08	Enable IP stack
+//
+//			0x10..0x80	Reserved
+//
+//			(R,-W) (mandatory) (1-byte)
+//
+//		Mac Address
+//			This attribute indicates the MAC address used by the IP node. (R) (mandatory) (6-bytes)
+//
+//		Onu Identifier
+//			A unique ONU identifier string. If set to a non-null value, this string is used instead of the
+//			MAC address in retrieving dynamic host configuration protocol (DHCP) parameters. If the string
+//			is shorter than 25 characters, it must be null terminated. Its default value is 25 null bytes.
+//			(R,-W) (mandatory) (25-bytes)
+//
+//			Several attributes of this ME may be paired together into two categories, manual settings and
+//			current values.
+//
+//			While the IP stack is disabled, there is no IP connectivity to the external world from this ME
+//			instance.
+//
+//			While DHCP is disabled, the current values are always the same as the manual settings. While
+//			DHCP is enabled, the current values are those assigned by DHCP, or undefined (0) if DHCP has
+//			never assigned values.
+//
+//		Ip Address
+//			The address used for IP host services; this attribute has the default value 0. (R,-W)
+//			(mandatory) (4-bytes)
+//
+//		Mask
+//			The subnet mask for IP host services; this attribute has the default value 0. (R,-W) (mandatory)
+//			(4-bytes)
+//
+//		Gateway
+//			The default gateway address used for IP host services; this attribute has the default value 0.
+//			(R,-W) (mandatory) (4-bytes)
+//
+//		Primary Dns
+//			The address of the primary DNS server; this attribute has the default value 0. (R,-W)
+//			(mandatory) (4-bytes)
+//
+//		Secondary Dns
+//			The address of the secondary DNS server; this attribute has the default value 0. (R,-W)
+//			(mandatory) (4-bytes)
+//
+//		Current Address
+//			Current address of the IP host service. (R) (optional) (4-bytes)
+//
+//		Current Mask
+//			Current subnet mask for the IP host service. (R) (optional) (4-bytes)
+//
+//		Current Gateway
+//			Current default gateway address for the IP host service. (R) (optional) (4-bytes)
+//
+//		Current Primary Dns
+//			Current primary DNS server address. (R) (optional) (4-bytes)
+//
+//		Current Secondary Dns
+//			Current secondary DNS server address. (R) (optional) (4-bytes)
+//
+//		Domain Name
+//			If DHCP indicates a domain name, it is presented here. If no domain name is indicated, this
+//			attribute is set to a null string. If the string is shorter than 25-bytes, it must be null
+//			terminated. The default value is 25 null bytes. (R) (mandatory) (25-bytes)
+//
+//		Host Name
+//			If DHCP indicates a host name, it is presented here. If no host name is indicated, this
+//			attribute is set to a null string. If the string is shorter than 25-bytes, it must be null
+//			terminated. The default value is 25 null bytes. (R) (mandatory) (25-bytes)
+//
+//		Relay Agent Options
+//			This attribute is a pointer to a large string ME whose content specifies one or more DHCP relay
+//			agent options. (R, W) (optional) (2-bytes)
+//
+//			The contents of the large string are parsed by the ONU and converted into text strings. Variable
+//			substitution is based on defined three-character groups, each of which begins with the '%'
+//			character. The string '%%' is an escape mechanism whose output is a single '%' character. When
+//			the ONU cannot perform variable substitution on a substring of the large string, it generates
+//			the specified option as an exact quotation of the provisioned substring value.
+//
+//			Provisioning of the large string is separate from the operation of setting the pointer in this
+//			attribute. It is the responsibility of the OLT to ensure that the large string contents are
+//			correct and meaningful.
+//
+//			Three-character variable definitions are as follows. The first variable in the large string must
+//			specify one of the option types. Both options for a given IP version may be present if desired,
+//			each introduced by its option identifier. Terminology is taken from clause 3.9.3 of [b-BBF
+//			TR-101].
+//
+//			%01, %18 Specifies that the following string is for option 82 sub-option 1, agent circuit-ID
+//			(IPv4) or option 18, interface-ID (IPv6). The equivalence permits the same large string to be
+//			used in both IP environments.
+//
+//			%02, %37 Specifies that the following string is for option 82 sub-option 2, relay agent remote-
+//			ID (IPv4) or option 37, relay agent remote-ID (IPv6). The equivalence permits the same large
+//			string to be used in both IP environments.
+//
+//			%SL	In [b-BBF TR-101], this is called a slot. In an ONU, this variable refers to a shelf. It
+//			would be meaningful if the ONU has multiple shelves internally or is daisy-chained to multiple
+//			equipment modules. The range of this variable is "0".. "99"
+//
+//			%SU	In TR-101, this is called a sub-slot. In fact, it represents a cardholder. The range of this
+//			variable is "0".. "99"
+//
+//			%PO	UNI port number. The range of this variable is "0".. "999"
+//
+//			%AE	ATM or Ethernet. This variable can take on the values "atm" or "eth".
+//
+//			%SV	S-VID for Ethernet UNI, or ATM virtual path identifier (VPI) for ATM UNI, as it exists on
+//			the DHCP request received upstream across the UNI. Range "0".. "4096" for S-VID; range "0"..
+//			"255" for VPI. The value "4096" indicates no S-VID tag.
+//
+//			%CV	C-VID (Q-VID) for Ethernet UNI, or ATM virtual circuit identifier (VCI) for ATM UNI, as it
+//			exists on the DHCP request received upstream across the UNI. Range "0".. "4096" for C-VID; range
+//			"0".."65535" for VCI. The value "4096" indicates no C-VID tag.
+//
+//			Spaces in the provisioned string are significant.
+//
+//			Example: if the large string were provisioned with the value
+//
+//			%01%SL/%SU/%PO:%AE/%SV.%CV<null>,
+//
+//			then the ONU would generate the following DHCP option 82 agent circuit-ID string for an Ethernet
+//			UNI that sent a DHCP request with no S tag and C tag = 3210 on shelf 2, slot 3, port 4.
+//
+//			2/3/4:eth/4096.3210
+//
+//			With the same provisioning, the ONU would generate the following DHCP option 82 agent circuit-ID
+//			string for an ATM UNI that sent a DHCP request on VPI = 123 and VCI = 4567 on shelf 2, slot 3,
+//			port 4.
+//
+//			2/3/4:atm/123.4567
+//
+type IpHostConfigData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	iphostconfigdataBME = &ManagedEntityDefinition{
+		Name:    "IpHostConfigData",
+		ClassID: 134,
+		MessageTypes: mapset.NewSetWith(
+			Get,
+			Set,
+			Test,
+		),
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewIpHostConfigData (class ID 134) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewIpHostConfigData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*iphostconfigdataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/iphostperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/iphostperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..0622bf5
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/iphostperformancemonitoringhistorydata.go
@@ -0,0 +1,126 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// IpHostPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity IP host performance monitoring history data
+const IpHostPerformanceMonitoringHistoryDataClassID = ClassID(135) // 0x0087
+
+var iphostperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// IpHostPerformanceMonitoringHistoryData (Class ID: #135 / 0x0087)
+//	This ME collects PM data related to an IP host. Instances of this ME are created and deleted by
+//	the OLT.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of the IP host config data or IPv6 host
+//		config data ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the IP host configuration data or IPv6 host configuration
+//			data ME. (R, set-by-create) (mandatory) (2 bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 ME that
+//			contains PM threshold values. Since no threshold value attribute number exceeds 7, a threshold
+//			data 2 ME is optional. (R,-W, set-by-create) (mandatory) (2-bytes)
+//
+//		Icmp Errors
+//			This attribute counts ICMP errors received. (R) (mandatory) (4-bytes)
+//
+//		Dns Errors
+//			This attribute counts DNS errors received. (R) (mandatory) (4-bytes)
+//
+//		Dhcp Timeouts
+//			This attribute counts DHCP timeouts. (R) (optional) (2 bytes)
+//
+//		Ip Address Conflict
+//			This attribute is incremented whenever the ONU detects a conflicting IP address on the network.
+//			A conflicting IP address is one that has the same value as the one currently assigned to the
+//			ONU. (R) (optional) (2 bytes)
+//
+//		Out Of Memory
+//			This attribute is incremented whenever the ONU encounters an out of memory condition in the IP
+//			stack. (R) (optional) (2 bytes)
+//
+//		Internal Error
+//			This attribute is incremented whenever the ONU encounters an internal error condition such as a
+//			driver interface failure in the IP stack. (R) (optional) (2-bytes)
+//
+type IpHostPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	iphostperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "IpHostPerformanceMonitoringHistoryData",
+		ClassID: 135,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			1: "IPNPM ICMP error",
+			2: "IPNPM DNS error",
+			3: "DHCP timeout",
+			4: "IP address conflict",
+			5: "Out of memory",
+			6: "Internal error",
+		},
+	}
+}
+
+// NewIpHostPerformanceMonitoringHistoryData (class ID 135) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewIpHostPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*iphostperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/largestring.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/largestring.go
new file mode 100644
index 0000000..668ec03
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/largestring.go
@@ -0,0 +1,171 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// LargeStringClassID is the 16-bit ID for the OMCI
+// Managed entity Large string
+const LargeStringClassID = ClassID(157) // 0x009d
+
+var largestringBME *ManagedEntityDefinition
+
+// LargeString (Class ID: #157 / 0x009d)
+//	The large string ME holds character strings longer than 25-bytes, up to 375-bytes. It is
+//	maintained in up to 15 parts, each part containing 25-bytes. If the final part contains fewer
+//	than 25-bytes, it is terminated by at least one null byte. For example:
+//
+//	Or
+//
+//	Instances of this ME are created and deleted by the OLT. Under some circumstances, they may also
+//	be created by the ONU. To use this ME, the OLT or ONU instantiates the large string ME and then
+//	points to the created ME from other ME instances. Systems that maintain the large string should
+//	ensure that the large string ME is not deleted while it is still linked.
+//
+//	Relationships
+//		An instance of this ME may be cited by any ME that requires a text string longer than 25-bytes.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. The value 0xFFFF is reserved. When
+//			the large string is to be used as an IPv6 address, the value 0 is also reserved. The OLT should
+//			create large string MEs starting at 1 (or 0), and numbering upwards. The ONU should create large
+//			string MEs starting at 65534 (0xFFFE) and numbering downwards. (R,-setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Number Of Parts
+//			This attribute specifies the number of non-empty parts that form the large string. This
+//			attribute defaults to 0 to indicate no large string content is defined.(R,-W) (mandatory)
+//			(1-byte)
+//
+//			Fifteen additional attributes are defined in the following; they are identical. The large string
+//			is simply divided into as many parts as necessary, starting at part 1. If the end of the string
+//			does not lie at a part boundary, it is marked with a null byte.
+//
+//		Part 1
+//			Part 1, Part 2, Part 3, Part 4, Part 5, Part 6, Part 7, Part 8, Part 9,  Part 10, Part 11, Part
+//			12, Part 13, Part 14, Part 15: (R,-W) (mandatory) (25-bytes * 15 attributes)
+//
+//		Part 2
+//			Part 1, Part 2, Part 3, Part 4, Part 5, Part 6, Part 7, Part 8, Part 9,  Part 10, Part 11, Part
+//			12, Part 13, Part 14, Part 15: (R,-W) (mandatory) (25-bytes * 15 attributes)
+//
+//		Part 3
+//			Part 1, Part 2, Part 3, Part 4, Part 5, Part 6, Part 7, Part 8, Part 9,  Part 10, Part 11, Part
+//			12, Part 13, Part 14, Part 15: (R,-W) (mandatory) (25-bytes * 15 attributes)
+//
+//		Part 4
+//			Part 1, Part 2, Part 3, Part 4, Part 5, Part 6, Part 7, Part 8, Part 9,  Part 10, Part 11, Part
+//			12, Part 13, Part 14, Part 15: (R,-W) (mandatory) (25-bytes * 15 attributes)
+//
+//		Part 5
+//			Part 1, Part 2, Part 3, Part 4, Part 5, Part 6, Part 7, Part 8, Part 9,  Part 10, Part 11, Part
+//			12, Part 13, Part 14, Part 15: (R,-W) (mandatory) (25-bytes * 15 attributes)
+//
+//		Part 6
+//			Part 1, Part 2, Part 3, Part 4, Part 5, Part 6, Part 7, Part 8, Part 9,  Part 10, Part 11, Part
+//			12, Part 13, Part 14, Part 15: (R,-W) (mandatory) (25-bytes * 15 attributes)
+//
+//		Part 7
+//			Part 1, Part 2, Part 3, Part 4, Part 5, Part 6, Part 7, Part 8, Part 9,  Part 10, Part 11, Part
+//			12, Part 13, Part 14, Part 15: (R,-W) (mandatory) (25-bytes * 15 attributes)
+//
+//		Part 8
+//			Part 1, Part 2, Part 3, Part 4, Part 5, Part 6, Part 7, Part 8, Part 9,  Part 10, Part 11, Part
+//			12, Part 13, Part 14, Part 15: (R,-W) (mandatory) (25-bytes * 15 attributes)
+//
+//		Part 9
+//			Part 1, Part 2, Part 3, Part 4, Part 5, Part 6, Part 7, Part 8, Part 9,  Part 10, Part 11, Part
+//			12, Part 13, Part 14, Part 15: (R,-W) (mandatory) (25-bytes * 15 attributes)
+//
+//		Part 10
+//			Part 1, Part 2, Part 3, Part 4, Part 5, Part 6, Part 7, Part 8, Part 9,  Part 10, Part 11, Part
+//			12, Part 13, Part 14, Part 15: (R,-W) (mandatory) (25-bytes * 15 attributes)
+//
+//		Part 11
+//			Part 1, Part 2, Part 3, Part 4, Part 5, Part 6, Part 7, Part 8, Part 9,  Part 10, Part 11, Part
+//			12, Part 13, Part 14, Part 15: (R,-W) (mandatory) (25-bytes * 15 attributes)
+//
+//		Part 12
+//			Part 1, Part 2, Part 3, Part 4, Part 5, Part 6, Part 7, Part 8, Part 9,  Part 10, Part 11, Part
+//			12, Part 13, Part 14, Part 15: (R,-W) (mandatory) (25-bytes * 15 attributes)
+//
+//		Part 13
+//			Part 1, Part 2, Part 3, Part 4, Part 5, Part 6, Part 7, Part 8, Part 9,  Part 10, Part 11, Part
+//			12, Part 13, Part 14, Part 15: (R,-W) (mandatory) (25-bytes * 15 attributes)
+//
+//		Part 14
+//			Part 1, Part 2, Part 3, Part 4, Part 5, Part 6, Part 7, Part 8, Part 9,  Part 10, Part 11, Part
+//			12, Part 13, Part 14, Part 15: (R,-W) (mandatory) (25-bytes * 15 attributes)
+//
+//		Part 15
+//			Part 1, Part 2, Part 3, Part 4, Part 5, Part 6, Part 7, Part 8, Part 9,  Part 10, Part 11, Part
+//			12, Part 13, Part 14, Part 15: (R,-W) (mandatory) (25-bytes * 15 attributes)
+//
+type LargeString struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	largestringBME = &ManagedEntityDefinition{
+		Name:    "LargeString",
+		ClassID: 157,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewLargeString (class ID 157) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewLargeString(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*largestringBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/macbridgeconfigurationdata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/macbridgeconfigurationdata.go
new file mode 100644
index 0000000..0431803
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/macbridgeconfigurationdata.go
@@ -0,0 +1,118 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// MacBridgeConfigurationDataClassID is the 16-bit ID for the OMCI
+// Managed entity MAC bridge configuration data
+const MacBridgeConfigurationDataClassID = ClassID(46) // 0x002e
+
+var macbridgeconfigurationdataBME *ManagedEntityDefinition
+
+// MacBridgeConfigurationData (Class ID: #46 / 0x002e)
+//	This ME organizes status data associated with a MAC bridge. The ONU automatically creates or
+//	deletes an instance of this ME upon the creation or deletion of a MAC bridge service profile.
+//
+//	Relationships
+//		This ME is associated with one instance of a MAC bridge service profile.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the MAC bridge service profile. (R) (mandatory) (2-bytes)
+//
+//		Bridge Mac Address
+//			This attribute indicates the MAC address used by the bridge. The ONU sets this attribute to a
+//			value based on criteria beyond the scope of this Recommendation, e.g., factory settings. (R)
+//			(mandatory) (6-bytes)
+//
+//		Bridge Priority
+//			This attribute reports the priority of the bridge. The ONU copies this attribute from the
+//			priority attribute of the associated MAC bridge service profile. The value of this attribute
+//			changes with updates to the MAC bridge service profile priority attribute. (R) (mandatory)
+//			(2-bytes)
+//
+//		Designated Root
+//			This attribute identifies the bridge at the root of the spanning tree. It comprises bridge
+//			priority (2-bytes) and MAC address (6-bytes). (R) (mandatory) (8-bytes)
+//
+//		Root Path Cost
+//			This attribute reports the cost of the best path to the root as seen from this bridge. Upon ME
+//			instantiation, the ONU sets this attribute to 0. (R) (mandatory) (4-bytes)
+//
+//		Bridge Port Count
+//			This attribute records the number of ports linked to this bridge. (R) (mandatory) (1-byte)
+//
+//		Root Port Num
+//			This attribute contains the port number that has the lowest cost from the bridge to the root
+//			bridge. The value 0 means that this bridge is itself the root. Upon ME instantiation, the ONU
+//			sets this attribute to 0. (R) (mandatory) (2-bytes)
+//
+//		Hello Time
+//			NOTE - [IEEE 802.1D] specifies the compatibility range for hello time to be 1..2-s.
+//
+//			This attribute is the hello time received from the designated root, the interval (in 256ths of a
+//			second) between HELLO packets. Its range is 0x0100 to 0x0A00 (1..10-s). (R) (optional) (2-bytes)
+//
+//		Forward Delay
+//			This attribute is the forwarding delay time received from the designated root (in 256ths of a
+//			second). Its range is 0x0400 to 0x1E00 (4..30-s) in accordance with [IEEE 802.1D]. (R)
+//			(optional) (2-bytes)
+//
+type MacBridgeConfigurationData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	macbridgeconfigurationdataBME = &ManagedEntityDefinition{
+		Name:    "MacBridgeConfigurationData",
+		ClassID: 46,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewMacBridgeConfigurationData (class ID 46) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewMacBridgeConfigurationData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*macbridgeconfigurationdataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/macbridgeperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/macbridgeperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..c80f91f
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/macbridgeperformancemonitoringhistorydata.go
@@ -0,0 +1,100 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// MacBridgePerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity MAC bridge performance monitoring history data
+const MacBridgePerformanceMonitoringHistoryDataClassID = ClassID(51) // 0x0033
+
+var macbridgeperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// MacBridgePerformanceMonitoringHistoryData (Class ID: #51 / 0x0033)
+//	This ME collects PM data associated with a MAC bridge. Instances of this ME are created and
+//	deleted by the OLT.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		This ME is associated with an instance of a MAC bridge service profile.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the MAC bridge service profile. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 ME that
+//			contains PM threshold values. Since no threshold value attribute number exceeds 7, a threshold
+//			data 2 ME is optional. Since no threshold value attribute number exceeds 7, a threshold data 2
+//			ME is optional. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Bridge Learning Entry Discard Count
+//			This attribute counts forwarding database entries that have been or would have been learned, but
+//			were discarded or replaced due to a lack of space in the database table. When used with the MAC
+//			learning depth attribute of the MAC bridge service profile, the bridge learning entry discard
+//			count may be particularly useful in detecting MAC spoofing attempts. (R) (mandatory) (4-bytes)
+//
+type MacBridgePerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	macbridgeperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "MacBridgePerformanceMonitoringHistoryData",
+		ClassID: 51,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Bridge learning entry discard",
+		},
+	}
+}
+
+// NewMacBridgePerformanceMonitoringHistoryData (class ID 51) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewMacBridgePerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*macbridgeperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/macbridgeportbridgetabledata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/macbridgeportbridgetabledata.go
new file mode 100644
index 0000000..50e8610
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/macbridgeportbridgetabledata.go
@@ -0,0 +1,106 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// MacBridgePortBridgeTableDataClassID is the 16-bit ID for the OMCI
+// Managed entity MAC bridge port bridge table data
+const MacBridgePortBridgeTableDataClassID = ClassID(50) // 0x0032
+
+var macbridgeportbridgetabledataBME *ManagedEntityDefinition
+
+// MacBridgePortBridgeTableData (Class ID: #50 / 0x0032)
+//	This ME reports status data associated with a bridge port. The ONU automatically creates or
+//	deletes an instance of this ME upon the creation or deletion of a MAC bridge port configuration
+//	data.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of a MAC bridge port configuration data
+//		ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the MAC bridge port configuration data ME. (R) (mandatory)
+//			(2-bytes)
+//
+//		Bridge Table
+//			This attribute lists known MAC DAs, whether they are learned or statically assigned, whether
+//			packets that have them as DAs are filtered or forwarded, and their ages. Each entry contains:
+//
+//			-	Information (2-bytes);
+//
+//			-	MAC address (6-bytes).
+//
+//			The information bits are assigned as described as follows.
+//
+//			Bit	Name	Setting
+//
+//			1 (LSB)	Filter/forward	0: forward
+//
+//			1: filter
+//
+//			2	Reserved	0
+//
+//			3	Dynamic/static	0: this entry is statically assigned
+//
+//			1: this entry is dynamically learned
+//
+//			4	Reserved	0
+//
+//			16..5	Age	Age in seconds (1..4095)
+//
+//			Upon ME instantiation, this attribute is an empty list. (R) (mandatory) (8-*-M-bytes, where M is
+//			the number of entries in the list.)
+//
+type MacBridgePortBridgeTableData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	macbridgeportbridgetabledataBME = &ManagedEntityDefinition{
+		Name:    "MacBridgePortBridgeTableData",
+		ClassID: 50,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewMacBridgePortBridgeTableData (class ID 50) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewMacBridgePortBridgeTableData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*macbridgeportbridgetabledataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/macbridgeportconfigurationdata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/macbridgeportconfigurationdata.go
new file mode 100644
index 0000000..24e245d
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/macbridgeportconfigurationdata.go
@@ -0,0 +1,183 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// MacBridgePortConfigurationDataClassID is the 16-bit ID for the OMCI
+// Managed entity MAC bridge port configuration data
+const MacBridgePortConfigurationDataClassID = ClassID(47) // 0x002f
+
+var macbridgeportconfigurationdataBME *ManagedEntityDefinition
+
+// MacBridgePortConfigurationData (Class ID: #47 / 0x002f)
+//	This ME models a port on a MAC bridge. Instances of this ME are created and deleted by the OLT.
+//
+//	Relationships
+//		An instance of this ME is linked to an instance of the MAC bridge service profile. Additional
+//		bridge port control capabilities are provided by implicitly linked instances of some or all of:////		o	MAC bridge port filter table data;////		o	MAC bridge port filter pre-assign table;////		o	VLAN tagging filter data;////		o	Dot1 rate limiter.////		Real-time status of the bridge port is provided by implicitly linked instances of:////		o	MAC bridge port designation data;////		o	MAC bridge port bridge table data;////		o	Multicast subscriber monitor.////		Bridge port PM collection is provided by implicitly linked instances of:////		o	MAC bridge port PM history data;////		o	Ethernet frame PM history data upstream and downstream;////		o	Ethernet frame extended PM (preferred).
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Bridge Id Pointer
+//			This attribute points to an instance of the MAC bridge service profile. (R,-W, setbycreate)
+//			(mandatory) (2-bytes)
+//
+//		Port Num
+//			This attribute is the bridge port number. It must be unique among all ports associated with a
+//			particular MAC bridge service profile. (R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Tp Type
+//			This attribute identifies the type of TP associated with this MAC bridge port. Valid values are
+//			as follows.
+//
+//			1	Physical path termination point Ethernet UNI
+//
+//			2	Interworking virtual circuit connection (VCC) termination point
+//
+//			3	IEEE 802.1p mapper service profile
+//
+//			4	IP host config data or IPv6 host config data
+//
+//			5	GEM interworking termination point
+//
+//			6	Multicast GEM interworking termination point
+//
+//			7	Physical path termination point xDSL UNI part 1
+//
+//			8	Physical path termination point VDSL UNI
+//
+//			9	Ethernet flow termination point
+//
+//			10	Reserved
+//
+//			11	Virtual Ethernet interface point
+//
+//			12	Physical path termination point MoCA UNI
+//
+//			13	Ethernet in the first mile (EFM) bonding group
+//
+//			(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Tp Pointer
+//			NOTE 1 - When the TP type is very high-speed digital subscriber line (VDSL) or xDSL, the two
+//			MSBs may be used to indicate a bearer channel.
+//
+//			This attribute points to the TP associated with this MAC bridge port. The TP type attribute
+//			indicates the type of the TP; this attribute contains its instance identifier (ME ID). (R,-W,
+//			setbycreate) (mandatory) (2-bytes)
+//
+//		Port Priority
+//			This attribute denotes the priority of the port for use in (rapid) spanning tree algorithms. The
+//			range is 0..255. (R,-W, setbycreate) (optional) (2-bytes)
+//
+//		Port Path Cost
+//			This attribute specifies the contribution of the port to the path cost towards the spanning tree
+//			root bridge. The range is 1..65535. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Port Spanning Tree Ind
+//			The Boolean value true enables (R)STP LAN topology change detection at this port. The value
+//			false disables topology change detection. (R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Deprecated 1
+//			This attribute is not used. If present, it should be ignored by both the ONU and the OLT, except
+//			as necessary to comply with OMCI message definitions. (R,-W, setbycreate) (optional) (1-byte)
+//
+//		Deprecated 2
+//			This attribute is not used. If present, it should be ignored by both the ONU and the OLT, except
+//			as necessary to comply with OMCI message definitions. (R,-W, setbycreate) (1-byte) (optional)
+//
+//		Port Mac Address
+//			If the TP associated with this port has a MAC address, this attribute specifies it. (R)
+//			(optional) (6-bytes)
+//
+//		Outbound Td Pointer
+//			This attribute points to a traffic descriptor that limits the traffic rate leaving the MAC
+//			bridge. (R,-W) (optional) (2-byte)
+//
+//		Inbound Td Pointer
+//			This attribute points to a traffic descriptor that limits the traffic rate entering the MAC
+//			bridge. (R,-W) (optional) (2-byte)
+//
+//		Mac Learning Depth
+//			This attribute specifies the maximum number of MAC addresses to be learned by this MAC bridge
+//			port. The default value 0 specifies that there is no administratively imposed limit. (R,-W,
+//			setbycreate) (optional) (1-byte)
+//
+//			NOTE 2 - If this attribute is not zero, its value overrides the value set in the MAC learning
+//			depth attribute of the MAC bridge service profile.
+//
+//		Lasp Id Pointer
+//			This attribute points to an instance of the LASP ME. (R,W, setbycreate) (optional) (2 bytes)
+//
+type MacBridgePortConfigurationData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	macbridgeportconfigurationdataBME = &ManagedEntityDefinition{
+		Name:    "MacBridgePortConfigurationData",
+		ClassID: 47,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Port blocking",
+		},
+	}
+}
+
+// NewMacBridgePortConfigurationData (class ID 47) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewMacBridgePortConfigurationData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*macbridgeportconfigurationdataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/macbridgeportdesignationdata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/macbridgeportdesignationdata.go
new file mode 100644
index 0000000..df0da16
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/macbridgeportdesignationdata.go
@@ -0,0 +1,122 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// MacBridgePortDesignationDataClassID is the 16-bit ID for the OMCI
+// Managed entity MAC bridge port designation data
+const MacBridgePortDesignationDataClassID = ClassID(48) // 0x0030
+
+var macbridgeportdesignationdataBME *ManagedEntityDefinition
+
+// MacBridgePortDesignationData (Class ID: #48 / 0x0030)
+//	This ME records data associated with a bridge port. The ONU automatically creates or deletes an
+//	instance of this managed entity upon the creation or deletion of a MAC bridge port configuration
+//	data ME.
+//
+//	Relationships
+//		An instance of this managed entity is associated with one MAC bridge port configuration data ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the MAC bridge port configuration data. (R) (mandatory)
+//			(2-bytes)
+//
+//		Designated Bridge Root Cost Port
+//			This attribute contains the designated root, designated cost, designated bridge and designated
+//			port, which are some of the outputs of the read port parameters operation defined in clause
+//			14.8.2.1 of [IEEE-802.1D]:
+//
+//			o	identifier of the designated bridge for the port's segment (8-bytes);
+//
+//			o	bridge identifier of the root transmitted by the designated bridge for the segment (8-bytes);
+//
+//			o	port number of the designated port on the designated bridge considered to be part of this
+//			port's segment (4-bytes);
+//
+//			o	path cost contribution of the designated port to this port's segment (4-bytes).
+//
+//			Upon ME instantiation, the ONU sets this attribute to 0. (R) (mandatory) (24-bytes)
+//
+//		Port State
+//			This attribute provides status information on the port. Valid values include the following.
+//
+//			0	Disabled
+//
+//			1	Listening
+//
+//			2	Learning
+//
+//			3	Forwarding
+//
+//			4	Blocking
+//
+//			5	Linkdown
+//
+//			6	(R)Stp_off
+//
+//			in accordance with [IEEE 802.1D]. (R) (mandatory) (1-byte)
+//
+//			NOTE - The value linkdown is introduced to denote the port status when the Ethernet link state
+//			is down. This value distinguishes the case where Ethernet is physically down from the case where
+//			Ethernet is administratively locked, the latter being denoted by disabled. Be aware that this
+//			terminology violates the ITUT convention that disabled is an operational state, not
+//			administrative.
+//
+//			The value (R)stp_off is introduced to denote the port status where the (rapid) spanning tree
+//			protocol has been disabled by setting the port spanning tree ind attribute of the MAC bridge
+//			port configuration data to false, and the Ethernet link state is up. This value distinguishes
+//			whether frame forwarding is under the control of (R)STP.
+//
+type MacBridgePortDesignationData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	macbridgeportdesignationdataBME = &ManagedEntityDefinition{
+		Name:    "MacBridgePortDesignationData",
+		ClassID: 48,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewMacBridgePortDesignationData (class ID 48) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewMacBridgePortDesignationData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*macbridgeportdesignationdataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/macbridgeportfilterpre-assigntable.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/macbridgeportfilterpre-assigntable.go
new file mode 100644
index 0000000..604af06
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/macbridgeportfilterpre-assigntable.go
@@ -0,0 +1,131 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// MacBridgePortFilterPreAssignTableClassID is the 16-bit ID for the OMCI
+// Managed entity MAC bridge port filter pre-assign table
+const MacBridgePortFilterPreAssignTableClassID = ClassID(79) // 0x004f
+
+var macbridgeportfilterpreassigntableBME *ManagedEntityDefinition
+
+// MacBridgePortFilterPreAssignTable (Class ID: #79 / 0x004f)
+//	This ME provides an alternate approach to DA filtering from that supported through the MAC
+//	bridge port filter table data ME. This alternate approach is useful when all groups of addresses
+//	are stored beforehand in the ONU, and the MAC bridge port filter pre-assign table ME designates
+//	which groups are valid or invalid for filtering. On a circuit pack in which all groups of
+//	addresses are pre-assigned and stored locally, the ONU creates or deletes an instance of this ME
+//	automatically upon creation or deletion of a MAC bridge port configuration data ME.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of a MAC bridge port configuration data
+//		ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			The following 10 attributes have similar definitions. Each permits the OLT to specify whether
+//			MAC DAs or Ethertypes of the named type are forwarded (0) or filtered (1). In each case, the
+//			initial value of the attribute is 0.
+//
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the MAC bridge port configuration data ME. (R) (mandatory)
+//			(2-bytes)
+//
+//		Ipv4 Multicast Filtering
+//			(R,-W) (mandatory) (1-byte)
+//
+//		Ipv6 Multicast Filtering
+//			(R,-W) (mandatory) (1-byte)
+//
+//		Ipv4 Broadcast Filtering
+//			(R,-W) (mandatory) (1-byte)
+//
+//		Rarp Filtering
+//			(R,-W) (mandatory) (1-byte)
+//
+//		Ipx Filtering
+//				(R,-W) (mandatory) (1-byte)
+//
+//		Netbeui Filtering
+//			(R,-W) (mandatory) (1-byte)
+//
+//		Appletalk Filtering
+//			(R,-W) (mandatory) (1-byte)
+//
+//		Bridge Management Information Filtering
+//			(R,-W) (mandatory) (1-byte)
+//
+//			Note that some destination MAC addresses should never be forwarded, considering the following
+//			rules of [IEEE 802.1D].
+//
+//			1	Addresses from 01.80.C2.00.00.00 to 01.80.C2.00.00.0F are reserved.
+//
+//			2	Addresses from 01.80.C2.00.00.20 to 01.80.C2.00.00.2F are used for generic attribute
+//			registration protocol (GARP) applications.
+//
+//		Arp Filtering
+//			(R,-W) (mandatory) (1-byte)
+//
+//		Point_To_Point Protocol Over Ethernet Pppoe Broadcast Filtering
+//			Point-to-point protocol over Ethernet (PPPoE) broadcast filtering:	(R,-W) (mandatory) (1-byte)
+//
+type MacBridgePortFilterPreAssignTable struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	macbridgeportfilterpreassigntableBME = &ManagedEntityDefinition{
+		Name:    "MacBridgePortFilterPreAssignTable",
+		ClassID: 79,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewMacBridgePortFilterPreAssignTable (class ID 79) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewMacBridgePortFilterPreAssignTable(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*macbridgeportfilterpreassigntableBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/macbridgeportfiltertabledata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/macbridgeportfiltertabledata.go
new file mode 100644
index 0000000..9d7cace
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/macbridgeportfiltertabledata.go
@@ -0,0 +1,122 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// MacBridgePortFilterTableDataClassID is the 16-bit ID for the OMCI
+// Managed entity MAC bridge port filter table data
+const MacBridgePortFilterTableDataClassID = ClassID(49) // 0x0031
+
+var macbridgeportfiltertabledataBME *ManagedEntityDefinition
+
+// MacBridgePortFilterTableData (Class ID: #49 / 0x0031)
+//	This ME organizes data associated with a bridge port. The ONU automatically creates or deletes
+//	an instance of this ME upon the creation or deletion of a MAC bridge port configuration data ME.
+//
+//	NOTE - The OLT should disable the learning mode in the MAC bridge service profile before writing
+//	to the MAC filter table.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of a MAC bridge port configuration data
+//		ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the MAC bridge port configuration data ME. (R) (mandatory)
+//			(2-bytes)
+//
+//		Mac Filter Table
+//			This attribute lists MAC addresses associated with the bridge port, each with an allow/disallow
+//			forwarding indicator for traffic flowing out of the bridge port. Additionally, the forwarding
+//			action may be based on a MAC source or DA. In this way, upstream traffic is filtered on ANI-side
+//			bridge ports, and downstream traffic is filtered on UNI-side bridge ports. The setting of an
+//			entry with a forward action implies that all other addresses are filtered. Conversely, the
+//			setting of an entry with a filter action implies that all other addresses are forwarded. The
+//			behaviour is unspecified if forward and filter actions are mixed.
+//
+//			Each entry contains:
+//
+//			-	the entry number, an index into this attribute list (1-byte);
+//
+//			-	filter byte (1-byte);
+//
+//			-	MAC address (6-bytes).
+//
+//			The bits of the filter byte are assigned as follows.
+//
+//			Bit	Name	Setting
+//
+//			1 (LSB)	Filter/forward	0: forward
+//
+//			1: filter
+//
+//			2		0: MAC DAs
+//
+//			1: MAC source addresses
+//
+//			3..6	Reserved	0
+//
+//			7..8	Add/remove	10: Clear entire table (set operation)
+//
+//			00: Remove this entry (set operation)
+//
+//			01: Add this entry
+//
+//			Upon ME instantiation, the ONU sets this attribute to an empty table.
+//
+//			(R,-W) (Mandatory) (8N bytes, where N is the number of entries in the list)
+//
+type MacBridgePortFilterTableData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	macbridgeportfiltertabledataBME = &ManagedEntityDefinition{
+		Name:    "MacBridgePortFilterTableData",
+		ClassID: 49,
+		MessageTypes: mapset.NewSetWith(
+			Get,
+			GetNext,
+			Set,
+			SetTable,
+		),
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewMacBridgePortFilterTableData (class ID 49) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewMacBridgePortFilterTableData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*macbridgeportfiltertabledataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/macbridgeporticmpv6processpre-assigntable.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/macbridgeporticmpv6processpre-assigntable.go
new file mode 100644
index 0000000..8131599
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/macbridgeporticmpv6processpre-assigntable.go
@@ -0,0 +1,128 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// MacBridgePortIcmpv6ProcessPreAssignTableClassID is the 16-bit ID for the OMCI
+// Managed entity MAC bridge port ICMPv6 process pre-assign table
+const MacBridgePortIcmpv6ProcessPreAssignTableClassID = ClassID(348) // 0x015c
+
+var macbridgeporticmpv6processpreassigntableBME *ManagedEntityDefinition
+
+// MacBridgePortIcmpv6ProcessPreAssignTable (Class ID: #348 / 0x015c)
+//	This ME provides an approach to ICMPv6 message processing configuration to those ONUs that
+//	support IPv6 awareness. For every message, the MAC bridge port ICMPv6 process pre-assign table
+//	can designate a forward, discard or snoop operation. The ONU creates or deletes an instance of
+//	this ME automatically upon creation or deletion of a MAC bridge port configuration data ME.
+//
+//	The MAC bridge port ICMPv6 process pre-assign table ME filters layer 2 traffic between the UNI
+//	and ANI. The operation of this ME is completely independent of the operation and traffic
+//	generated or received by a possible IPv6 host config data ME.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of a MAC bridge port configuration data
+//		ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the MAC bridge port configuration data ME. (R) (mandatory)
+//			(2-bytes)
+//
+//			The following nine attributes have similar definitions. Each permits the OLT to specify ICMPv6
+//			as the next header in the IPv6 header and various types in the ICMPv6 header, and whether
+//			traffic of the specified type is forwarded, discarded or snooped, in upstream and downstream
+//			directions separately. The bits of each attribute are assigned as follows.
+//
+//			The initial value of each attribute is given in the last column of the table.
+//
+//		Icmpv6 Error Messages Processing
+//			(R,-W) (mandatory) (1-byte)
+//
+//		Icmpv6 Informational Messages Processing
+//			(R,-W) (mandatory) (1-byte)
+//
+//		Router Solicitation Processing
+//			(R,-W) (mandatory) (1-byte)
+//
+//		Router Advertisement Processing
+//			(R,-W) (mandatory) (1-byte)
+//
+//		Neighbour Solicitation Processing
+//			(R,-W) (mandatory) (1-byte)
+//
+//		Neighbour Advertisement Processing
+//			(R,-W) (mandatory) (1-byte)
+//
+//		Redirect Processing
+//			(R,-W) (mandatory) (1-byte)
+//
+//		Multicast Listener Query Processing
+//			(R,-W) (mandatory) (1-byte)
+//
+//			NOTE - If the ONU participates in multicast services, MLD queries should be controlled through
+//			the multicast operations profile ME. In such a case, it is strongly recommended not to provision
+//			the downstream direction of the multicast listener query processing attribute to any value other
+//			than forwarding.
+//
+//		Unknown Icmpv6 Processing
+//			(R,-W) (mandatory) (1-byte)
+//
+type MacBridgePortIcmpv6ProcessPreAssignTable struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	macbridgeporticmpv6processpreassigntableBME = &ManagedEntityDefinition{
+		Name:    "MacBridgePortIcmpv6ProcessPreAssignTable",
+		ClassID: 348,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewMacBridgePortIcmpv6ProcessPreAssignTable (class ID 348) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewMacBridgePortIcmpv6ProcessPreAssignTable(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*macbridgeporticmpv6processpreassigntableBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/macbridgeportperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/macbridgeportperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..97b0e16
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/macbridgeportperformancemonitoringhistorydata.go
@@ -0,0 +1,118 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// MacBridgePortPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity MAC bridge port performance monitoring history data
+const MacBridgePortPerformanceMonitoringHistoryDataClassID = ClassID(52) // 0x0034
+
+var macbridgeportperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// MacBridgePortPerformanceMonitoringHistoryData (Class ID: #52 / 0x0034)
+//	This ME collects PM data associated with a MAC bridge port. Instances of this ME are created and
+//	deleted by the OLT.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of a MAC bridge port configuration data
+//		ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the MAC bridge port configuration data ME. (R, setbycreate)
+//			(mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 ME that
+//			contains PM threshold values. Since no threshold value attribute number exceeds 7, a threshold
+//			data 2 ME is optional. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Forwarded Frame Counter
+//			This attribute counts frames transmitted successfully on this port. (R) (mandatory) (4-bytes)
+//
+//		Delay Exceeded Discard Counter
+//			This attribute counts frames discarded on this port because transmission was delayed. (R)
+//			(mandatory) (4-bytes)
+//
+//		Maximum Transmission Unit Mtu Exceeded Discard Counter
+//			Maximum transmission unit (MTU) exceeded discard counter: This attribute counts frames discarded
+//			on this port because the MTU was exceeded. (R) (mandatory) (4-bytes)
+//
+//		Received Frame Counter
+//			This attribute counts frames received on this port. (R) (mandatory) (4-bytes)
+//
+//		Received And Discarded Counter
+//			This attribute counts frames received on this port that were discarded due to errors. (R)
+//			(mandatory) (4-bytes)
+//
+type MacBridgePortPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	macbridgeportperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "MacBridgePortPerformanceMonitoringHistoryData",
+		ClassID: 52,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			1: "Delay exceeded discard",
+			2: "MTU exceeded discard",
+			4: "Received and discarded",
+		},
+	}
+}
+
+// NewMacBridgePortPerformanceMonitoringHistoryData (class ID 52) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewMacBridgePortPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*macbridgeportperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/macbridgeserviceprofile.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/macbridgeserviceprofile.go
new file mode 100644
index 0000000..c05d948
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/macbridgeserviceprofile.go
@@ -0,0 +1,140 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// MacBridgeServiceProfileClassID is the 16-bit ID for the OMCI
+// Managed entity MAC bridge service profile
+const MacBridgeServiceProfileClassID = ClassID(45) // 0x002d
+
+var macbridgeserviceprofileBME *ManagedEntityDefinition
+
+// MacBridgeServiceProfile (Class ID: #45 / 0x002d)
+//	This ME models a MAC bridge in its entirety; any number of ports may be associated with the
+//	bridge through pointers to the MAC bridge service profile ME. Instances of this ME are created
+//	and deleted by the OLT.
+//
+//	Relationships
+//		Bridge ports are modelled by MAC bridge port configuration data MEs, any number of which can
+//		point to a MAC bridge service profile. The real-time status of the bridge is available from an
+//		implicitly linked MAC bridge configuration data ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. The first byte is the slot ID. In
+//			an integrated ONU, this value is 0. The second byte is the bridge group ID. (R, setbycreate)
+//			(mandatory) (2-bytes)
+//
+//		Spanning Tree Ind
+//			The Boolean value true specifies that a spanning tree algorithm is enabled. The value false
+//			disables (rapid) spanning tree. (R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Learning Ind
+//			The Boolean value true specifies that bridge learning functions are enabled. The value false
+//			disables bridge learning. (R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Port Bridging Ind
+//			The Boolean value true specifies that bridging between UNI ports is enabled. The value false
+//			disables local bridging. (R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Priority
+//			This attribute specifies the bridge priority in the range 0..65535. The value of this attribute
+//			is copied to the bridge priority attribute of the associated MAC bridge configuration data ME.
+//			(R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Max Age
+//			This attribute specifies the maximum age (in 256ths of a second) of received protocol
+//			information before its entry in the spanning tree listing is discarded. The range is 0x0600 to
+//			0x2800 (6..40-s) in accordance with [IEEE-802.1D]. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Hello Time
+//			This attribute specifies how often (in 256ths of a second) the bridge advertises its presence
+//			via hello packets, while acting as a root or attempting to become a root. The range is 0x0100 to
+//			0x0A00 (1..10-s). (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//			NOTE - [IEEE 802.1D] specifies the compatibility range for hello time to be 1..2-s.
+//
+//		Forward Delay
+//			This attribute specifies the forwarding delay (in 256ths of a second) when the bridge acts as
+//			the root. The range is 0x0400 to 0x1E00 (4..30-s) in accordance with [IEEE 802.1D]. (R,-W, set-
+//			by-create) (mandatory) (2-bytes)
+//
+//		Unknown Mac Address Discard
+//			The Boolean value true specifies that MAC frames with unknown DAs be discarded. The value false
+//			specifies that such frames be forwarded to all allowed ports. (R,-W, setbycreate) (mandatory)
+//			(1-byte)
+//
+//		Mac Learning Depth
+//			This attribute specifies the maximum number of UNI MAC addresses to be learned by the bridge.
+//			The default value 0 specifies that there is no administratively imposed limit. (R,-W,
+//			setbycreate) (optional) (1-byte)
+//
+//		Dynamic Filtering Ageing Time
+//			This attribute specifies the age of dynamic filtering entries in the bridge database, after
+//			which unrefreshed entries are discarded. In accordance with clause 7.9.2 of [IEEE 802.1D] and
+//			clause 8.8.3 of [IEEE 802.1Q], the range is 10..1 000 000-s, with a resolution of 1-s and a
+//			default of 300-s. The value 0 specifies that the ONU uses its internal default. (R, W, set-by-
+//			create) (optional) (4 bytes)
+//
+type MacBridgeServiceProfile struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	macbridgeserviceprofileBME = &ManagedEntityDefinition{
+		Name:    "MacBridgeServiceProfile",
+		ClassID: 45,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewMacBridgeServiceProfile (class ID 45) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewMacBridgeServiceProfile(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*macbridgeserviceprofileBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/managedentityme.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/managedentityme.go
new file mode 100644
index 0000000..91354b5
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/managedentityme.go
@@ -0,0 +1,136 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// ManagedEntityMeClassID is the 16-bit ID for the OMCI
+// Managed entity Managed entity ME
+const ManagedEntityMeClassID = ClassID(288) // 0x0120
+
+var managedentitymeBME *ManagedEntityDefinition
+
+// ManagedEntityMe (Class ID: #288 / 0x0120)
+//	The ME describes the details of each ME that is supported by the ONU. This ME is not included in
+//	an MIB upload.
+//
+//	Relationships
+//		One or more MEs are related to the OMCI object entity.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Its value is equal to the ME type
+//			value, and is the same as the code found in the ME type table attribute of the OMCI ME and
+//			Table-11.2.41. (R) (mandatory) (2-bytes)
+//
+//		Name
+//			This attribute contains a 25-byte ASCII coded mnemonic tag for the ME type. Strings shorter than
+//			25-bytes are padded with null characters. (R) (mandatory) (25-bytes)
+//
+//		Attributes Table
+//			This table contains pointers to the attribute MEs that describe each of this ME's attributes.
+//			(R) (mandatory) (2 * X bytes, where X is the number of entries in the table.)
+//
+//			NOTE - The ME ID attribute is not included in the list, since the type of this attribute is
+//			fixed.
+//
+//		Access
+//			This attribute represents who creates this ME. The following code points are defined.
+//
+//			1	Created by the ONU
+//
+//			2	Created by the OLT
+//
+//			3	Created by both the ONU and OLT
+//
+//			(R) (mandatory) (1-byte)
+//
+//		Alarms Table
+//			This attribute lists the alarm codes that are supported. (R) (mandatory) (Y bytes, where Y is
+//			the number of entries in the table.)
+//
+//		Avcs Table
+//			This attribute lists the AVCs that are supported. (R) (mandatory) (Z bytes, where Z is the
+//			number of entries in the table.)
+//
+//		Actions
+//			This attribute lists the action codes supported on this object, formatted as a bit map. The
+//			action codes are the MTs from Table-11.2.2-1. The LSB represents action 0, and so on. (R)
+//			(mandatory) (4-bytes)
+//
+//		Instances Table
+//			This attribute is a list of pointers to all instances of this ME. (R) (mandatory) (2 * V bytes,
+//			where V is the number of entries in the table.)
+//
+//		Support
+//			This attribute represents the support capability of this ME in the ONU's implementation. This
+//			attribute does not declare whether the OMCI implementation complies with the Recommendations,
+//			but whether it complies with the OMCI declaration itself. The following code points are defined.
+//
+//			1	Supported (supported as defined in this object)
+//
+//			2	Unsupported (OMCI returns error code if accessed)
+//
+//			3	Partially supported (some aspects of ME supported)
+//
+//			4	Ignored (OMCI supported, but underlying function is not)
+//
+//			(R) (mandatory) (1-byte)
+//
+type ManagedEntityMe struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	managedentitymeBME = &ManagedEntityDefinition{
+		Name:    "ManagedEntityMe",
+		ClassID: 288,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewManagedEntityMe (class ID 288) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewManagedEntityMe(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*managedentitymeBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/me.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/me.go
new file mode 100644
index 0000000..2d83255
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/me.go
@@ -0,0 +1,327 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import (
+	"encoding/binary"
+	"errors"
+	"fmt"
+	"github.com/deckarep/golang-set"
+	"github.com/google/gopacket"
+)
+
+// ManagedEntity provides a complete instance of a Managed Entity
+type ManagedEntity struct {
+	definition             ManagedEntityDefinition
+	attributeMask          uint16
+	requestedAttributeMask uint16
+	attributes             AttributeValueMap
+}
+
+// String provides a simple string that describes this struct
+func (entity *ManagedEntity) String() string {
+	return fmt.Sprintf("ManagedEntity: %v, EntityID: (%d/%#x): Attributes: %v",
+		entity.GetClassID(), entity.GetEntityID(), entity.GetEntityID(), entity.attributes)
+}
+
+// NewManagedEntity creates a ManagedEntity given an ME Definition and parameter/attribute data
+func NewManagedEntity(definition ManagedEntityDefinition, params ...ParamData) (*ManagedEntity, OmciErrors) {
+	entity := &ManagedEntity{
+		definition: definition,
+		attributes: make(map[string]interface{}),
+	}
+	if params != nil {
+		if err := entity.setAttributes(params...); err.StatusCode() != Success {
+			return nil, err
+		}
+	}
+	return entity, NewOmciSuccess()
+}
+
+// GetManagedEntityDefinition provides the ME definition of a Managed Entity
+func (entity *ManagedEntity) GetManagedEntityDefinition() ManagedEntityDefinition {
+	return entity.definition
+}
+
+// GetName provides the ME Name of a Managed Entity
+func (entity ManagedEntity) GetName() string {
+	return entity.definition.GetName()
+}
+
+// GetClassID returns the 16-bit class ID of a Managed Entity
+func (entity ManagedEntity) GetClassID() ClassID {
+	return entity.definition.GetClassID()
+}
+
+// SetClassID assigns the 16-bit class ID of a Managed Entity
+func (entity *ManagedEntity) SetClassID(classID ClassID) {
+	entity.definition.SetClassID(classID)
+}
+
+// GetMessageTypes returns the OMCI message types that a Managed Entity supports
+func (entity ManagedEntity) GetMessageTypes() mapset.Set {
+	return entity.definition.GetMessageTypes()
+}
+
+// GetAllowedAttributeMask returns the 16-bit bitmask of attributes a Managed Entity supports
+func (entity ManagedEntity) GetAllowedAttributeMask() uint16 {
+	return entity.definition.GetAllowedAttributeMask()
+}
+
+// GetAttributeDefinitions returns the attribute definition map for a Managed Entity
+func (entity ManagedEntity) GetAttributeDefinitions() AttributeDefinitionMap {
+	return entity.definition.GetAttributeDefinitions()
+}
+
+// DecodeAttributes will decode the attributes portion of a Managed Entity frame/packet
+func (entity *ManagedEntity) DecodeAttributes(mask uint16, data []byte, p gopacket.PacketBuilder, msgType byte) (AttributeValueMap, error) {
+	return entity.definition.DecodeAttributes(mask, data, p, msgType)
+}
+
+// SerializeAttributes will serialize the attributes of a Managed Entity type
+func (entity *ManagedEntity) SerializeAttributes(attr AttributeValueMap, mask uint16,
+	b gopacket.SerializeBuffer, msgType byte, bytesAvailable int, packData bool) (error, uint16) {
+	return entity.definition.SerializeAttributes(attr, mask, b, msgType, bytesAvailable, packData)
+}
+
+// GetEntityID will return the Entity/Instance ID for a Managed Entity
+func (entity *ManagedEntity) GetEntityID() uint16 {
+	if eid, err := entity.GetAttributeByIndex(0); err == nil {
+		return eid.(uint16)
+	}
+	return 0
+}
+
+// SetEntityID will set the Entity/Instance ID for a Managed Entity
+func (entity *ManagedEntity) SetEntityID(eid uint16) error {
+	return entity.SetAttributeByIndex(0, eid)
+}
+
+// GetAttributeMask will return the 16-bit attribute mask of a Managed Entity
+func (entity *ManagedEntity) GetAttributeMask() uint16 {
+	return entity.attributeMask
+}
+
+// SetRequestedAttributeMask is used to initialize the requested attribute mask to a specific
+// value. This should only be done on "Get" type operations that need to fetch and attribute
+// and store it in the entity. For other operations (create, set, ...) you should specify
+// the attributes and values in the Params initialization or use the SetAttribute
+func (entity *ManagedEntity) SetRequestedAttributeMask(mask uint16) {
+	entity.requestedAttributeMask = mask
+}
+
+// GetRequestedAttributeMask will return the 16-bit requested attribute mask of a Managed Entity.
+// This is only specified for requests that perform a Get operation
+func (entity *ManagedEntity) GetRequestedAttributeMask() uint16 {
+	return entity.requestedAttributeMask
+}
+
+// GetAttributeValueMap will return the map of attributes of a Managed Entity
+func (entity *ManagedEntity) GetAttributeValueMap() AttributeValueMap {
+	return entity.attributes
+}
+
+// GetAttribute will return the value of a specific attribute for the specified attribute by name
+func (entity *ManagedEntity) GetAttribute(name string) (interface{}, error) {
+	value, ok := entity.attributes[name]
+	if !ok {
+		return 0, fmt.Errorf("attribute '%v' not found", name)
+	}
+	return value, nil
+}
+
+// GetAttributeByIndex will return the value of a specific attribute for the specified attribute by index
+func (entity *ManagedEntity) GetAttributeByIndex(index uint) (interface{}, error) {
+	if len(entity.attributes) == 0 {
+		return nil, errors.New("attributes have already been set")
+	}
+	if _, ok := entity.definition.AttributeDefinitions[index]; !ok {
+		return nil, fmt.Errorf("invalid attribute index: %d, should be 0..%d",
+			index, len(entity.definition.AttributeDefinitions)-1)
+	}
+	return entity.GetAttribute(entity.definition.AttributeDefinitions[index].Name)
+}
+
+func (entity *ManagedEntity) setAttributes(params ...ParamData) OmciErrors {
+	if entity.attributes == nil {
+		entity.attributes = make(map[string]interface{})
+	} else if len(entity.attributes) > 0 {
+		return NewNonStatusError("attributes have already been set")
+	}
+	eidName := entity.definition.AttributeDefinitions[0].Name
+	if len(params) == 0 {
+		entity.attributes[eidName] = uint16(0)
+		return NewOmciSuccess()
+	}
+	entity.attributes[eidName] = params[0].EntityID
+
+	for name, value := range params[0].Attributes {
+		if name == eidName {
+			continue
+		}
+		if err := entity.SetAttribute(name, value); err.StatusCode() != Success {
+			return err
+		}
+	}
+	return NewOmciSuccess()
+}
+
+// SetAttribute can be uses to set the value of a specific attribute by name
+func (entity *ManagedEntity) SetAttribute(name string, value interface{}) OmciErrors {
+	attrDef, err := GetAttributeDefinitionByName(entity.definition.GetAttributeDefinitions(), name)
+	if err != nil {
+		// Not found, which means not in the attribute definition map
+		return NewProcessingError(err.Error())
+	} else if entity.attributes == nil {
+		entity.attributes = make(map[string]interface{})
+	}
+	mask := attrDef.Mask
+	// check any constraints
+	if constraintCheck := attrDef.GetConstraints(); constraintCheck != nil {
+		err = constraintCheck(value)
+		if err != nil {
+			return NewParameterError(mask, entity.GetAttributeDefinitions(), err)
+		}
+	}
+	entity.attributes[name] = value
+	entity.attributeMask |= mask
+	return NewOmciSuccess()
+}
+
+// SetAttributeByIndex can be uses to set the value of a specific attribute by attribute index (0..15)
+func (entity *ManagedEntity) SetAttributeByIndex(index uint, value interface{}) error {
+	attrDef, ok := entity.definition.AttributeDefinitions[index]
+	if !ok {
+		return fmt.Errorf("invalid attribute index: %d, should be 0..%d",
+			index, len(entity.definition.AttributeDefinitions)-1)
+	} else if entity.attributes == nil {
+		entity.attributes = make(map[string]interface{})
+	}
+	mask := attrDef.Mask
+	// check any constraints
+	if constraintCheck := attrDef.GetConstraints(); constraintCheck != nil {
+		err := constraintCheck(value)
+		if err != nil {
+			return NewParameterError(mask, entity.GetAttributeDefinitions(), err)
+		}
+	}
+	entity.attributes[attrDef.Name] = value
+	entity.attributeMask |= mask
+	return nil
+}
+
+// DeleteAttribute is used to remove a specific attribute from a Managed Index by name
+func (entity *ManagedEntity) DeleteAttribute(name string) error {
+	attrDef, err := GetAttributeDefinitionByName(entity.definition.GetAttributeDefinitions(), name)
+	if err != nil {
+		return err
+	}
+	if entity.attributes != nil {
+		delete(entity.attributes, name)
+		entity.attributeMask &= ^attrDef.Mask
+	}
+	return nil
+}
+
+// DeleteAttributeByIndex is used to remove a specific attribute from a Managed Index by attribute index (0..15)
+func (entity *ManagedEntity) DeleteAttributeByIndex(index uint) error {
+	attrDef, ok := entity.definition.AttributeDefinitions[index]
+	if !ok {
+		return fmt.Errorf("invalid attribute index: %d, should be 0..%d",
+			index, len(entity.definition.AttributeDefinitions)-1)
+	}
+	if entity.attributes != nil {
+		delete(entity.attributes, attrDef.Name)
+		entity.attributeMask &= ^attrDef.Mask
+	}
+	return nil
+}
+
+// GetClassSupport returns the ONU support for this managed entity
+func (entity *ManagedEntity) GetClassSupport() ClassSupport {
+	return entity.definition.GetClassSupport()
+}
+
+// GetAlarmMap returns the Alarm Bit Number to Alarm Name (string) mapping.  Nil is returned if
+// the managed entity does not support alarms
+func (entity *ManagedEntity) GetAlarmMap() AlarmMap {
+	return entity.definition.GetAlarmMap()
+}
+
+// DecodeFromBytes decodes a Managed Entity give an octet stream pointing to the ME within a frame
+func (entity *ManagedEntity) DecodeFromBytes(data []byte, p gopacket.PacketBuilder, msgType byte) error {
+	if len(data) < 6 {
+		p.SetTruncated()
+		return errors.New("frame too small")
+	}
+	classID := ClassID(binary.BigEndian.Uint16(data[0:2]))
+	entityID := binary.BigEndian.Uint16(data[2:4])
+	parameters := ParamData{EntityID: entityID}
+
+	meDefinition, omciErr := LoadManagedEntityDefinition(classID, parameters)
+	if omciErr.StatusCode() != Success {
+		return omciErr.GetError()
+	}
+	entity.definition = meDefinition.definition
+	entity.attributeMask = binary.BigEndian.Uint16(data[4:6])
+	entity.attributes = make(map[string]interface{})
+	setErr := entity.SetEntityID(entityID)
+	if setErr != nil {
+		return setErr
+	}
+	packetAttributes, err := entity.DecodeAttributes(entity.GetAttributeMask(), data[6:], p, msgType)
+
+	// Decode packet attributes even if present in case relaxed attribute decoding is enabled.
+	if packetAttributes != nil {
+		for name, value := range packetAttributes {
+			entity.attributes[name] = value
+		}
+	}
+	if err != nil {
+		if attrError, ok := err.(*UnknownAttributeDecodeError); ok && GetRelaxedDecodeByOctetType(msgType) {
+			// Subtract off bad mask from what we computed
+			badMask := attrError.AttributeMask
+			entity.attributeMask &= ^badMask
+		}
+	}
+	return err
+}
+
+// SerializeTo serializes a Managed Entity into an octet stream
+func (entity *ManagedEntity) SerializeTo(b gopacket.SerializeBuffer, msgType byte, bytesAvailable int, opts gopacket.SerializeOptions) error {
+	// Add class ID and entity ID
+	bytes, err := b.AppendBytes(6)
+	if err != nil {
+		return err
+	}
+	binary.BigEndian.PutUint16(bytes, uint16(entity.GetClassID()))
+	binary.BigEndian.PutUint16(bytes[2:], entity.GetEntityID())
+	binary.BigEndian.PutUint16(bytes[4:], entity.GetAttributeMask())
+
+	// TODO: Need to limit number of bytes appended to not exceed packet size
+	// Is there space/metadata info in 'b' parameter to allow this?
+	err, _ = entity.SerializeAttributes(entity.attributes, entity.GetAttributeMask(), b,
+		msgType, bytesAvailable, opts.FixLengths)
+	return err
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/medef.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/medef.go
new file mode 100644
index 0000000..6d2c2dd
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/medef.go
@@ -0,0 +1,206 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import (
+	"errors"
+	"fmt"
+	"github.com/deckarep/golang-set"
+	"github.com/google/gopacket"
+	"math/bits"
+)
+
+// ManagedEntityDefinition defines a Manage Entity
+type ManagedEntityDefinition struct {
+	Name                 string
+	ClassID              ClassID
+	MessageTypes         mapset.Set // Mandatory
+	AllowedAttributeMask uint16
+	AttributeDefinitions AttributeDefinitionMap
+	Access               ClassAccess
+	Support              ClassSupport
+	Alarms               AlarmMap // AlarmBit -> AlarmName
+}
+
+func (bme *ManagedEntityDefinition) String() string {
+	return fmt.Sprintf("Definition: %s: CID: %v, Attributes: %v",
+		bme.Name, bme.ClassID, bme.AttributeDefinitions)
+}
+
+// GetName retrieves the name of a managed entity from a ME Definition
+func (bme ManagedEntityDefinition) GetName() string {
+	return bme.Name
+}
+
+// GetClassID retrieves the 16-bit class ID of a managed entity from a ME Definition
+func (bme ManagedEntityDefinition) GetClassID() ClassID {
+	return bme.ClassID
+}
+
+// SetClassID assigns the 16-bit class ID of a managed entity from a ME Definition
+func (bme *ManagedEntityDefinition) SetClassID(classID ClassID) {
+	bme.ClassID = classID
+}
+
+// GetMessageTypes retrieves the OMCI Message Types supporte3d by a managed entity from a ME Definition
+func (bme ManagedEntityDefinition) GetMessageTypes() mapset.Set {
+	return bme.MessageTypes
+}
+
+// GetAllowedAttributeMask retrieves the allowed/valid 16-bit attribute mask of a managed entity
+// from a ME Definition
+func (bme ManagedEntityDefinition) GetAllowedAttributeMask() uint16 {
+	return bme.AllowedAttributeMask
+}
+
+// GetAttributeDefinitions retrieves the attribute definitions of a managed entity from a ME Definition
+func (bme ManagedEntityDefinition) GetAttributeDefinitions() AttributeDefinitionMap {
+	return bme.AttributeDefinitions
+}
+
+// GetClassSupport returns ONUs support of this class
+func (bme ManagedEntityDefinition) GetClassSupport() ClassSupport {
+	return bme.Support
+}
+
+// GetAlarmMap returns the Alarm bit number to name map
+func (bme ManagedEntityDefinition) GetAlarmMap() AlarmMap {
+	return bme.Alarms
+}
+
+func (bme ManagedEntityDefinition) DecodeAttributes(mask uint16, data []byte, p gopacket.PacketBuilder, msgType byte) (AttributeValueMap, error) {
+	badMask := (mask | bme.GetAllowedAttributeMask()) ^ bme.GetAllowedAttributeMask()
+
+	var maskErr error
+	if badMask != 0 {
+		maskErr = fmt.Errorf("unsupported attribute mask %#x, valid: %#x for ME %v (Class ID: %d)",
+			mask, bme.GetAllowedAttributeMask(), bme.GetName(), bme.ClassID)
+		mask &= bme.GetAllowedAttributeMask()
+	}
+	// Process known attributes
+	keyList := GetAttributeDefinitionMapKeys(bme.AttributeDefinitions)
+
+	attrMap := make(AttributeValueMap, bits.OnesCount16(mask))
+	for _, index := range keyList {
+		if index == 0 {
+			continue // Skip Entity ID
+		}
+		attrDef := bme.AttributeDefinitions[index]
+		name := attrDef.GetName()
+
+		if mask&attrDef.Mask != 0 {
+			value, err := attrDef.Decode(data, p, msgType)
+			if err != nil {
+				return nil, err
+			}
+			if attrDef.IsTableAttribute() {
+				switch msgType {
+				default:
+					return nil, fmt.Errorf("unsupported Message Type '%v' for table serialization", msgType)
+
+				case byte(Get) | AK: // Get Response
+					attrMap[name] = value
+					data = data[4:]
+
+				case byte(GetNext) | AK: // Get Next Response
+					// Value is a partial octet buffer we need to collect and at
+					// the end (last segment) pull it up into more appropriate table
+					// rows
+					valueBuffer, ok := value.([]byte)
+					if !ok {
+						panic("unexpected type already returned as get-next-response attribute data")
+					}
+					if existing, found := attrMap[name]; found {
+						prev, ok := existing.([]byte)
+						if !ok {
+							panic("unexpected type already in attribute value map")
+						}
+						attrMap[name] = append(prev, valueBuffer...)
+					} else {
+						attrMap[name] = valueBuffer
+					}
+					if size := attrDef.GetSize(); size != 0 && size > len(valueBuffer) {
+						panic("unexpected size difference")
+					}
+					data = data[len(valueBuffer):]
+
+				case byte(Set) | AR: // Set Request
+					// TODO: No support at this time
+
+				case byte(SetTable) | AR: // Set Table Request
+					attrMap[name] = value
+					data = data[len(data):]
+				}
+			} else {
+				attrMap[name] = value
+				data = data[attrDef.GetSize():]
+			}
+		}
+	}
+	// If badMask is non-zero.  Handle it by re-encoding the error as a custom relaxed
+	// decode error that the caller of this decode can process if they wish to relax
+	// the decoding
+	if badMask != 0 {
+		maskErr = NewUnknownAttributeDecodeError(maskErr.Error(), badMask, data)
+	}
+	return attrMap, maskErr
+}
+
+func (bme ManagedEntityDefinition) SerializeAttributes(attr AttributeValueMap, mask uint16,
+	b gopacket.SerializeBuffer, msgType byte, bytesAvailable int, packData bool) (error, uint16) {
+
+	if (mask | bme.GetAllowedAttributeMask()) != bme.GetAllowedAttributeMask() {
+		// TODO: Provide custom error code so a response 'result' can properly be coded
+		return errors.New("unsupported attribute mask"), 0
+	}
+	// TODO: Need to limit number of bytes appended to not exceed packet size
+	// Is there space/metadata info in 'b' parameter to allow this?
+	keyList := GetAttributeDefinitionMapKeys(bme.AttributeDefinitions)
+	var failedMask uint16
+
+	for _, index := range keyList {
+		if index == 0 {
+			continue // Skip Entity ID
+		}
+		attrDef := bme.AttributeDefinitions[index]
+
+		if mask&attrDef.Mask != 0 {
+			value, ok := attr[attrDef.GetName()]
+			if !ok {
+				msg := fmt.Sprintf("attribute not found: '%v'", attrDef.GetName())
+				return errors.New(msg), failedMask
+			}
+			size, err := attrDef.SerializeTo(value, b, msgType, bytesAvailable)
+			if err != nil {
+				failedMask |= attrDef.Mask
+				if packData {
+					continue
+				}
+				return err, failedMask
+			}
+			bytesAvailable -= size
+		}
+	}
+	return nil, failedMask
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/mgcconfigdata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/mgcconfigdata.go
new file mode 100644
index 0000000..4b97077
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/mgcconfigdata.go
@@ -0,0 +1,153 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// MgcConfigDataClassID is the 16-bit ID for the OMCI
+// Managed entity MGC config data
+const MgcConfigDataClassID = ClassID(155) // 0x009b
+
+var mgcconfigdataBME *ManagedEntityDefinition
+
+// MgcConfigData (Class ID: #155 / 0x009b)
+//	The MGC config data ME defines the MGC configuration associated with an MG subscriber. It is
+//	conditionally required for ONUs that support ITU-T H.248 VoIP services. If a non-OMCI interface
+//	is used to manage VoIP signalling, this ME is unnecessary.
+//
+//	Instances of this ME are created and deleted by the OLT.
+//
+//	Relationships
+//		An instance of this ME may be associated with one or more VoIP voice CTP MEs.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Primary Mgc
+//			This attribute points to a network address ME that contains the name (IP-address or resolved
+//			name) of the primary MGC that controls the signalling messages. The port is optional and
+//			defaults to 2944 for text message formats and 2955 for binary message formats. (R,-W,
+//			setbycreate) (mandatory) (2-bytes)
+//
+//		Secondary Mgc
+//			This attribute points to a network address ME that contains the name (IP-address or resolved
+//			name) of the secondary or backup MGC that controls the signalling messages. The port is optional
+//			and defaults to 2944 for text message formats and 2955 for binary message formats. (R,-W,
+//			setbycreate) (mandatory) (2-bytes)
+//
+//		Tcp_Udp Pointer
+//			TCP/UDP pointer: This attribute points to the TCP/UDP config data ME to be used for
+//			communication with the MGC. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Version
+//			This integer attribute reports the version of the Megaco protocol in use. The ONU should deny an
+//			attempt by the OLT to set or create a value that it does not support. The value 0 indicates that
+//			no particular version is specified. (R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Message Format
+//			This attribute defines the message format. Valid values are as follows.
+//
+//			0	Text long
+//
+//			1	Text short
+//
+//			2	Binary
+//
+//			The default value is recommended to be 0. (R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Maximum Retry Time
+//			This attribute specifies the maximum retry time for MGC transactions, in seconds. The default
+//			value 0 specifies vendor-specific implementation. (R,-W) (optional) (2-bytes)
+//
+//		Maximum Retry Attempts
+//			This attribute specifies the maximum number of times a message is retransmitted to the MGC. The
+//			recommended default value 0 specifies vendor-specific implementation. (R,-W, setbycreate)
+//			(optional) (2-bytes)
+//
+//		Service Change Delay
+//			This attribute specifies the service status delay time for changes in line service status. This
+//			attribute is specified in seconds. The default value 0 specifies no delay. (R,-W) (optional)
+//			(2-bytes)
+//
+//		Termination Id Base
+//			This attribute specifies the base string for the ITU-T H.248 physical termination ID(s) for this
+//			ONU. This string is intended to uniquely identify an ONU. Vendor-specific termination
+//			identifiers (port IDs) are optionally added to this string to uniquely identify a termination on
+//			a specific ONU. (R,-W) (optional) (25-bytes)
+//
+//		Softswitch
+//			This attribute identifies the gateway softswitch vendor. The format is four ASCII coded
+//			alphabetic characters [A..Z] as defined in [ATIS0300220]. A value of four null bytes indicates
+//			an unknown or unspecified vendor. (R,-W, setbycreate) (mandatory) (4-bytes)
+//
+//		Message Id Pointer
+//			This attribute points to a large string whose value specifies the message identifier string for
+//			ITU-T H.248 messages originated by the ONU. (R, W, setbycreate) (optional) (2 bytes)
+//
+type MgcConfigData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	mgcconfigdataBME = &ManagedEntityDefinition{
+		Name:    "MgcConfigData",
+		ClassID: 155,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Timeout",
+		},
+	}
+}
+
+// NewMgcConfigData (class ID 155) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewMgcConfigData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*mgcconfigdataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/mgcconfigportal.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/mgcconfigportal.go
new file mode 100644
index 0000000..46167fa
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/mgcconfigportal.go
@@ -0,0 +1,85 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// MgcConfigPortalClassID is the 16-bit ID for the OMCI
+// Managed entity MGC config portal
+const MgcConfigPortalClassID = ClassID(154) // 0x009a
+
+var mgcconfigportalBME *ManagedEntityDefinition
+
+// MgcConfigPortal (Class ID: #154 / 0x009a)
+//	The MGC config portal ME provides a way for the OLT to discover the configuration text delivered
+//	to an ONU by a non-OMCI ITU-T H.248 VoIP configuration method. Text retrieved from this ME is
+//	not required to be understood by the OLT or EMS, but it may be useful for human or vendor-
+//	specific analysis tools. See also the SIP config portal ME.
+//
+//	An instance of this ME may be created by an ONU that supports non-OMCI ITUT-H.248 configuration.
+//	It is not reported during an MIB upload.
+//
+//	Relationships
+//		One instance of this ME is associated with the ONU.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. There is one instance, number 0.
+//			(R, setbycreate) (mandatory) (2-bytes)
+//
+//		Configuration Text Table
+//			This attribute is used to pass a textual representation of the VoIP configuration back to the
+//			OLT. The contents are vendor-specific. The get, get next sequence must be used with this
+//			attribute since its size is unspecified. Upon ME instantiation, the ONU sets this attribute to
+//			0. (R) (mandatory) (x bytes)
+//
+type MgcConfigPortal struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	mgcconfigportalBME = &ManagedEntityDefinition{
+		Name:    "MgcConfigPortal",
+		ClassID: 154,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewMgcConfigPortal (class ID 154) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewMgcConfigPortal(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*mgcconfigportalBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/mgcperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/mgcperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..082de74
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/mgcperformancemonitoringhistorydata.go
@@ -0,0 +1,166 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// MgcPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity MGC performance monitoring history data
+const MgcPerformanceMonitoringHistoryDataClassID = ClassID(156) // 0x009c
+
+var mgcperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// MgcPerformanceMonitoringHistoryData (Class ID: #156 / 0x009c)
+//	The MGC monitoring data ME provides run-time statistics for an active MGC association. Instances
+//	of this ME are created and deleted by the OLT.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of the MGC config data or MGC config
+//		portal ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the associated MGC config data or to the MGC config portal
+//			ME. If a non-OMCI configuration method is used for VoIP, there can be only one live ME instance,
+//			associated with the MGC config portal, and with ME ID 0. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 ME that
+//			contains PM threshold values. Since no threshold value attribute number exceeds 7, a threshold
+//			data 2 ME is optional. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Received Messages
+//			This attribute counts the number of received Megaco messages on this association, as defined by
+//			[ITUT H.341]. (R) (mandatory) (4-bytes)
+//
+//		Received Octets
+//			This attribute counts the total number of octets received on this association, as defined by
+//			[ITU-T H.341]. (R) (mandatory) (4-bytes)
+//
+//		Sent Messages
+//			This attribute counts the total number of Megaco messages sent over this association, as defined
+//			by [ITU-T H.341]. (R) (mandatory) (4-bytes)
+//
+//		Sent Octets
+//			This attribute counts the total number of octets sent over this association, as defined by
+//			[ITU-T H.341]. (R) (mandatory) (4-bytes)
+//
+//		Protocol Errors
+//			This attribute counts the total number of errors detected on this association, as defined by
+//			[ITU-T H.341]. This includes:
+//
+//			o	syntax errors detected in a given received message;
+//
+//			o	outgoing transactions that failed for protocol reasons.
+//
+//			(R) (mandatory) (4-bytes)
+//
+//		Transport Losses
+//			This attribute counts the total number of transport losses (e.g., socket problems) detected on
+//			this association. A link loss is defined as loss of communication with the remote entity due to
+//			hardware/transient problems, or problems in related software. (R) (mandatory) (4-bytes)
+//
+//		Last Detected Event
+//			This attribute reports the last event detected on this association. This includes events such as
+//			the link failing or being set up. Under normal circumstances, a get action on this attribute
+//			would return 0 to indicate no abnormal activity. This field is an enumeration as follows.
+//
+//			0	No event - No event has yet been detected during this PM interval.
+//
+//			1	Link up - The transport link underpinning the association came up.
+//
+//			2	Link down - The transport link underpinning the association went down.
+//
+//			3	Persistent error - A persistent error was detected on the link (such as the socket/TCP
+//			connection to the remote node could not be set up).
+//
+//			4	Local shutdown - The association was brought down intentionally by the local application.
+//
+//			5	Failover down - The association was brought down as part of failover processing.
+//
+//			255	Other event - The latest event does not match any in the list.
+//
+//			(R) (mandatory) (1-byte)
+//
+//		Last Detected Event Time
+//			This attribute reports the time in seconds since the last event on this association was
+//			detected, as defined by [ITU-T H.341]. (R) (mandatory) (4-bytes)
+//
+//		Last Detected Reset Time
+//			This attribute reports the time in seconds since these statistics were last reset, as defined by
+//			[ITU-T H.341]. Under normal circumstances, a get action on this attribute would return 900-s to
+//			indicate a completed 15-min interval. (R) (mandatory) (4-bytes)
+//
+type MgcPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	mgcperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "MgcPerformanceMonitoringHistoryData",
+		ClassID: 156,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "MGCP protocol errors",
+			1: "MGCP transport losses",
+		},
+	}
+}
+
+// NewMgcPerformanceMonitoringHistoryData (class ID 156) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewMgcPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*mgcperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/mocaethernetperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/mocaethernetperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..c69d00b
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/mocaethernetperformancemonitoringhistorydata.go
@@ -0,0 +1,161 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// MocaEthernetPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity MoCA Ethernet performance monitoring history data
+const MocaEthernetPerformanceMonitoringHistoryDataClassID = ClassID(163) // 0x00a3
+
+var mocaethernetperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// MocaEthernetPerformanceMonitoringHistoryData (Class ID: #163 / 0x00a3)
+//	This ME collects PM data for an MoCA Ethernet interface. Instances of this ME are created and
+//	deleted by the OLT.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of the PPTP MoCA UNI ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the PPTP MoCA UNI. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 and 2 MEs
+//			that contains PM threshold values. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//			Incoming PM refers to upstream traffic received on the UNI; outgoing PM refers to downstream
+//			traffic transmitted on the UNI.
+//
+//		Incoming Unicast Packets
+//			(R) (optional) (4-bytes)
+//
+//		Incoming Discarded Packets
+//			(R) (optional) (4-bytes)
+//
+//		Incoming Errored Packets
+//			(R) (optional) (4-bytes)
+//
+//		Incoming Unknown Packets
+//			(R) (optional) (4-bytes)
+//
+//		Incoming Multicast Packets
+//			(R) (optional) (4-bytes)
+//
+//		Incoming Broadcast Packets
+//			(R) (optional) (4-bytes)
+//
+//		Incoming Octets
+//			(R) (optional) (4-bytes)
+//
+//		Outgoing Unicast Packets
+//			(R) (optional) (4-bytes)
+//
+//		Outgoing Discarded Packets
+//			(R) (optional) (4-bytes)
+//
+//		Outgoing Errored Packets
+//			(R) (optional) (4-bytes)
+//
+//		Outgoing Unknown Packets
+//			(R) (optional) (4-bytes)
+//
+//		Outgoing Multicast Packets
+//			(R) (optional) (4-bytes)
+//
+//		Outgoing Broadcast Packets
+//			(R) (optional) (4-bytes)
+//
+//		Outgoing Octets
+//			(R) (optional) (4-bytes)
+//
+type MocaEthernetPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	mocaethernetperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "MocaEthernetPerformanceMonitoringHistoryData",
+		ClassID: 163,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0:  "Incoming unicast packets",
+			1:  "Incoming discarded packets",
+			2:  "Incoming errored packets",
+			3:  "Incoming unknown packets",
+			4:  "Incoming multicast packets",
+			5:  "Incoming broadcast packets",
+			6:  "Incoming octets",
+			7:  "Outgoing unicast packets",
+			8:  "Outgoing discarded packets",
+			9:  "Outgoing errored packets",
+			10: "Outgoing unknown packets",
+			11: "Outgoing multicast packets",
+			12: "Outgoing broadcast packets",
+			13: "Outgoing octets",
+		},
+	}
+}
+
+// NewMocaEthernetPerformanceMonitoringHistoryData (class ID 163) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewMocaEthernetPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*mocaethernetperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/mocainterfaceperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/mocainterfaceperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..41b3aa1
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/mocainterfaceperformancemonitoringhistorydata.go
@@ -0,0 +1,142 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// MocaInterfacePerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity MoCA interface performance monitoring history data
+const MocaInterfacePerformanceMonitoringHistoryDataClassID = ClassID(164) // 0x00a4
+
+var mocainterfaceperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// MocaInterfacePerformanceMonitoringHistoryData (Class ID: #164 / 0x00a4)
+//	This ME collects PM data for an MoCA interface. Instances of this ME are created and deleted by
+//	the OLT.
+//
+//	NOTE - The structure of this ME is an exception to the normal definition of PM MEs and normal PM
+//	behaviour (clause I.4). It should not be used as a guide for the definition of future MEs. Among
+//	other exceptions, this ME contains only current values, which are retrievable by get and get
+//	next operations; no history is retained.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of the PPTP MoCA UNI ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the PPTP MoCA UNI. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 ME that
+//			contains PM threshold values. Since no threshold value attribute number exceeds 7, a threshold
+//			data 2 ME is optional. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Phy T X Broadcast Rate
+//			PHY Tx broadcast rate: This attribute indicates the MoCA PHY broadcast transmit rate from the
+//			ONU MoCA interface to all the nodes in bits per second. (R) (optional) (4-bytes)
+//
+//		Node Table
+//			Rx packet: Number of packets received from the node. (4-bytes)
+//
+//			Rx errored and missed: Number of errored and missed packets received from the node. The sum of
+//			this field across all entries in the node table contributes to the Rx errored and missed TCA.
+//			This field is reset to 0 on 15-min boundaries. (4-bytes)
+//
+//			Rx errored: Number of errored packets received from the node. The sum of this field across all
+//			entries in the node table contributes to the Rx errored TCA. This field is reset to 0 on 15-min
+//			boundaries. (optional) (4-bytes)
+//
+//			(R) (mandatory) (37 * N bytes, where N is the number of nodes in the node table)
+//
+//			This attribute lists current nodes in the node table. The table contains MAC addresses and
+//			statistics for those nodes. These table attributes are further described in the following. Space
+//			for nonsupported optional fields must be allocated in table records, and filled with zero bytes.
+//
+//			MAC address: A unique identifier of a node within the table. (6-bytes)
+//
+//			PHY Tx rate: MoCA PHY unicast transmit rate from the ONU MoCA interface to the node identified
+//			by the MAC address, in bits per second. (4-bytes)
+//
+//			Tx power control reduction: The reduction in transmitter level due to power control, in
+//			decibels. Valid values range from 0 (full power) to 60. (1-byte)
+//
+//			PHY Rx rate: MoCA PHY unicast receive rate to the ONU MoCA interface from the node identified by
+//			the MAC address, in bits per second. (optional) (4-bytes)
+//
+//			Rx power level: The power level received at the ONU MoCA interface from the node identified by
+//			the MAC address, in decibel-milliwatts, represented as a 2s complement integer. Valid values
+//			range from +10 (0x0A) to -80 (0xB0). (1-byte)
+//
+//			PHY Rx broadcast rate: MoCA PHY broadcast receive rate to the ONU MoCA interface from the node
+//			identified by MAC address, in bits per second. (optional) (4-bytes)
+//
+//			Rx broadcast power level: The power level received at the ONU MoCA interface from the node
+//			identified by the MAC address, in decibel-milliwatts, represented as a 2s complement integer.
+//			Valid values range from +10-(0x0A) to -80 (0xB0). (1-byte)
+//
+//			Tx packet: Number of packets transmitted to the node. (4-bytes)
+//
+type MocaInterfacePerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	mocainterfaceperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "MocaInterfacePerformanceMonitoringHistoryData",
+		ClassID: 164,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			GetNext,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Total rx errored and missed",
+			1: "Total rx errored",
+		},
+	}
+}
+
+// NewMocaInterfacePerformanceMonitoringHistoryData (class ID 164) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewMocaInterfacePerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*mocainterfaceperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/mplspseudowireterminationpoint.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/mplspseudowireterminationpoint.go
new file mode 100644
index 0000000..ed2ec34
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/mplspseudowireterminationpoint.go
@@ -0,0 +1,213 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// MplsPseudowireTerminationPointClassID is the 16-bit ID for the OMCI
+// Managed entity MPLS pseudowire termination point
+const MplsPseudowireTerminationPointClassID = ClassID(333) // 0x014d
+
+var mplspseudowireterminationpointBME *ManagedEntityDefinition
+
+// MplsPseudowireTerminationPoint (Class ID: #333 / 0x014d)
+//	This ME contains the configuration data of a pseudowire whose underlying transport method is
+//	MPLS. Instances of this ME are created and deleted by the OLT.
+//
+//	Relationships
+//		Zero or one instance of this ME is associated with each instance of the pseudowire TP ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. (R, setbycreate)-(mandatory) (2
+//			bytes)
+//
+//		Tp Type
+//			This attribute specifies the type of ANI-side TP associated with this-ME.
+//
+//			1	Ethernet flow termination point
+//
+//			2	GEM IW TP
+//
+//			3	TCP/UDP config data
+//
+//			4	MPLS pseudowire termination point
+//
+//			NOTE - If this instance of the MPLS PW TP is pointed to by another instance of the MPLS PW TP
+//			(i.e., whose TP type-= 4), this instance represents a tunnelled MPLS flow, and the following
+//			attributes are not meaningful: MPLS PW direction; MPLS PW uplink label; MPLS PW downlink label;
+//			and MPLS PW TC. These attributes should be set to the proper number of 0x00 bytes by the OLT and
+//			ignored by the ONU.
+//
+//			(R, W, setbycreate) (mandatory) (1 byte)
+//
+//		Tp Pointer
+//			This attribute points to the instance of the TP associated with this MPLS PW TP. The type of the
+//			associated TP is determined by the TP type attribute. (R, W, setbycreate) (mandatory) (2 bytes)
+//
+//		Mpls Label Indicator
+//			This attribute specifies the MPLS label stacking situation.
+//
+//			0	Single MPLS labelled
+//
+//			1	Double MPLS labelled
+//
+//			(R, W, setbycreate) (mandatory) (1 byte)
+//
+//		Mpls Pw Direction
+//			This attribute specifies the inner MPLS direction.
+//
+//			0	Upstream only
+//
+//			1	Downstream only
+//
+//			2	Bidirectional
+//
+//			(R, W, setbycreate) (mandatory) (1 byte)
+//
+//		Mpls Pw Uplink Label
+//			This attribute specifies the label of the inner MPLS pseudowire upstream. The attribute is not
+//			meaningful for unidirectional downstream PWs. (R, W, setbycreate) (mandatory) (4 bytes)
+//
+//		Mpls Pw Downlink Label
+//			This attribute specifies the label of the inner MPLS pseudowire downstream. The attribute is not
+//			meaningful for unidirectional upstream PWs. (R, W, setbycreate) (mandatory) (4 bytes)
+//
+//		Mpls Pw Tc
+//			NOTE 1 - The TC field was previously known as EXP. Refer to [bIETF-RFC-5462].
+//
+//			This attribute specifies the inner MPLS TC value in the upstream direction. The attribute is not
+//			meaningful for unidirectional downstream PWs. (R, W, setbycreate) (mandatory) (1 byte)
+//
+//		Mpls Tunnel Direction
+//			This attribute specifies the direction of the (outer) MPLS tunnel.
+//
+//			0	Upstream only
+//
+//			1	Downstream only
+//
+//			2	Bidirectional
+//
+//			(R, W, setbycreate) (mandatory for double-labelled case) (1 byte)
+//
+//		Mpls Tunnel Uplink Label
+//			This attribute specifies the (outer) label for the upstream MPLS tunnel. If the MPLS tunnel is
+//			downstream only, this attribute should be set to 0. (R, W, setbycreate) (mandatory for double-
+//			labelled case) (4 bytes)
+//
+//		Mpls Tunnel Downlink Label
+//			This attribute specifies the (outer) label for the downstream MPLS tunnel. If the MPLS tunnel is
+//			upstream only, this attribute should be set to 0. (R, W, setbycreate) (mandatory for double-
+//			labelled case) (4 bytes)
+//
+//		Mpls Tunnel Tc
+//			This attribute specifies the TC value of the upstream MPLS tunnel. If the MPLS tunnel is
+//			downstream only, this attribute should be set to 0. (R, W, setbycreate) (mandatory for double
+//			MPLS labelled case) (1 byte)
+//
+//			NOTE 2 - The TC field was previously known as EXP. Refer to [bIETF-RFC-5462].
+//
+//		Pseudowire Type
+//			This attribute specifies the emulated service to be carried over this PW. The values are from
+//			[IETF RFC 4446].
+//
+//			2	ATM AAL5 SDU VCC transport
+//
+//			3	ATM transparent cell transport
+//
+//			5	Ethernet
+//
+//			9	ATM n-to-one VCC cell transport
+//
+//			10	ATM n-to-one VPC cell transport
+//
+//			12	ATM one-to-one VCC cell mode
+//
+//			13	ATM one-to-one VPC cell mode
+//
+//			14	ATM AAL5 PDU VCC transport
+//
+//			All other values are reserved.
+//
+//			(R, W, setbycreate) (mandatory) (2 bytes)
+//
+//		Pseudowire Control Word Preference
+//			When set to true, this Boolean attribute specifies that a control word is to be sent with each
+//			packet. Some PW types mandate the use of a control word in any event. In such cases, the value
+//			configured for this attribute has no effect on the presence of the control word. (R, W,
+//			setbycreate) (optional) (1 byte)
+//
+//		Administrative State
+//			This attribute locks (1) and unlocks (0) the functions performed by the MPLS pseudowire TP.
+//			Administrative state is further described in clause-A.1.6. (R,-W) (optional) (1-byte)
+//
+//		Operational State
+//			This attribute reports whether the ME is currently capable of performing its function. Valid
+//			values are enabled (0) and disabled (1). (R) (optional) (1-byte)
+//
+type MplsPseudowireTerminationPoint struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	mplspseudowireterminationpointBME = &ManagedEntityDefinition{
+		Name:    "MplsPseudowireTerminationPoint",
+		ClassID: 333,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewMplsPseudowireTerminationPoint (class ID 333) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewMplsPseudowireTerminationPoint(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*mplspseudowireterminationpointBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/multicastgeminterworkingterminationpoint.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/multicastgeminterworkingterminationpoint.go
new file mode 100644
index 0000000..fd85a10
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/multicastgeminterworkingterminationpoint.go
@@ -0,0 +1,229 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// MulticastGemInterworkingTerminationPointClassID is the 16-bit ID for the OMCI
+// Managed entity Multicast GEM interworking termination point
+const MulticastGemInterworkingTerminationPointClassID = ClassID(281) // 0x0119
+
+var multicastgeminterworkingterminationpointBME *ManagedEntityDefinition
+
+// MulticastGemInterworkingTerminationPoint (Class ID: #281 / 0x0119)
+//	An instance of this ME represents a point in a G-PON ONU where a multicast service interworks
+//	with the GEM layer. At this point, a multicast bit stream is reconstructed from GEM packets.
+//
+//	Instances of this ME are created and deleted by the OLT.
+//
+//	Multicast interworking GEM modes of operation
+//
+//	The default multicast operation of the PON is where all the multicast content streams are
+//	carried in one PON layer connection (GEM port). This connection is then specified in the first
+//	entry of the IPv4 or IPv6 multicast address table, as the case may be. This single entry also
+//	specifies an all-inclusive IP multicast destination address (DA) range (e.g., 224.0.0.0 to
+//	239.255.255.255 in the case of IPv4). The ONU then filters the traffic based on either Ethernet
+//	MAC addresses or IP addresses. The associated GEM port network CTP ME specifies the GEM port-ID
+//	that supports all multicast connections.
+//
+//	In the default multicast operation, all multicast content streams are placed in one PON layer
+//	connection (GEM port). The OLT sets up a completely conventional model, a pointer from the
+//	multicast GEM IW termination to a GEM port network CTP. The OLT configures the GEM port-ID of
+//	the GEM port network CTP into the appropriate multicast address table attribute(s), along with
+//	the other table fields that specify the range of IP multicast DAs. The ONU accepts the entire
+//	multicast stream through the designated GEM port, then filters the traffic based on either the
+//	Ethernet MAC address or IP DA.
+//
+//	An optional multicast configuration supports separate multicast streams carried over separate
+//	PON layer connections, i.e., on separate GEM ports. This permits the ONU to filter multicast
+//	streams at the GEM level, which is efficient in hardware, while ignoring other multicast streams
+//	that may be of interest to other ONUs on the PON.
+//
+//	After configuring the explicit model for the first multicast GEM port, the OLT supports multiple
+//	multicast GEM ports by then configuring additional entries into the multicast address table(s),
+//	entries with different GEM port-IDs. The OMCI model is defined such that these ports are
+//	implicitly grouped together and served by the single explicit GEM port network CTP. No
+//	additional GEM network CTPs need be created or linked for the additional GEM ports.
+//
+//	Several multicast GEM IW TPs can exist, each linked to separate bridge ports or mappers to serve
+//	different communities of interest in a complex ONU.
+//
+//	Discovery of multicast support
+//
+//	The OLT uses the multicast GEM IW TP entity as the means to discover the ONU's multicast
+//	capability. This entity is mandatory if multicast is supported by the ONU. If the OLT attempts
+//	to create this entity on an ONU that does not support multicast, the create command fails. The
+//	create or set command also fails if the OLT attempts to exploit optional features that the ONU
+//	does not support, e.g., in attempting to write a multicast address table with more than a single
+//	entry or to create multiple multicast GEM IW TPs.
+//
+//	This ME is defined by a similarity to the unicast GEM IW TP, and a number of its attributes are
+//	not meaningful in a multicast context. These attributes are set to 0 and not used, as indicated
+//	in the following.
+//
+//	Relationships
+//		An instance of this ME exists for each occurrence of transformation of GEM packets into a
+//		multicast data stream.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. The value 0xFFFF is reserved. (R,
+//			setbycreate) (mandatory) (2-bytes)
+//
+//		Gem Port Network Ctp Connectivity Pointer
+//			This attribute points to an instance of the GEM port network CTP that is associated with this
+//			multicast GEM IW TP. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Interworking Option
+//			3	Reserved
+//
+//			5	IEEE 802.1p mapper
+//
+//			(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//			This attribute identifies the type of non-GEM function that is being interworked. The option can
+//			be as follows.
+//
+//			0	This value is a "no-op" or "don't care". It should be used when the multicast GEM IW TP is
+//			associated with several functions of different types. It can optionally be used in all cases,
+//			since the necessary information is available elsewhere. The previous code points are retained
+//			for backward compatibility:
+//
+//			1	MAC bridged LAN
+//
+//		Service Profile Pointer
+//			This attribute is set to 0 and not used. For backward compatibility, it may also be set to point
+//			to a MAC bridge service profile or IEEE 802.1p mapper service profile. (R,-W, setbycreate)
+//			(mandatory) (2-bytes)
+//
+//		Not Used 1
+//			This attribute is set to 0 and not used. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Pptp Counter
+//			This attribute represents the number of instances of PPTP MEs associated with this instance of
+//			the multicast GEM IW TP. This attribute conveys no information that is not available elsewhere;
+//			it may be set to 0xFF and not used. (R) (optional) (1-byte)
+//
+//		Operational State
+//			This attribute indicates whether the ME is capable of performing its function. Valid values are
+//			enabled (0) and disabled (1). (R) (optional) (1-byte)
+//
+//		Gal Profile Pointer
+//			This attribute is set to 0 and not used. For backward compatibility, it may also be set to point
+//			to a GAL Ethernet profile. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Not Used 2
+//			This attribute is set to 0 and not used. (R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Ipv4 Multicast Address Table
+//			This attribute maps IP multicast addresses to PON layer addresses. Each entry contains the
+//			following.
+//
+//			GEM port-ID		2-bytes
+//
+//			Secondary key		2-bytes
+//
+//			IP multicast DA range start		4-bytes
+//
+//			IP multicast DA range stop		4-bytes
+//
+//			The first four bytes of each entry are treated as a key into the list. The secondary key allows
+//			the table to contain more than a single range for a given GEM port.
+//
+//			A set action to a particular value overwrites any existing entry with the same first four bytes.
+//			If the last eight bytes of a set command are all zero, that entry is deleted from the list, as
+//			the IP address 0.0.0.0 is not valid.
+//
+//			(R,-W) (mandatory) (12N bytes, where N is the number of entries in the list.)
+//
+//		Ipv6 Multicast Address Table
+//			This attribute maps IPv6 multicast DAs to PON layer addresses. Each entry contains:
+//
+//			GEM port-ID	2-bytes
+//
+//			Secondary key	2-bytes
+//
+//			Least significant bytes,
+//
+//			IP multicast DA range start	4-bytes
+//
+//			Least significant bytes,
+//
+//			IP multicast DA range stop	4-bytes
+//
+//			Most significant bytes, IP DA	12-bytes
+//
+//			The first four bytes of each entry are treated as a key into the list. The secondary key allows
+//			the table to contain more than a single range for a given GEM port.
+//
+//			A set action to a particular value overwrites any existing entry with the same first four bytes.
+//			If the last 20 bytes of a set command are all zero, that entry is deleted from the list.
+//
+//			(R,-W) (optional) (24N bytes, where N is the number of entries in the list.)
+//
+type MulticastGemInterworkingTerminationPoint struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	multicastgeminterworkingterminationpointBME = &ManagedEntityDefinition{
+		Name:    "MulticastGemInterworkingTerminationPoint",
+		ClassID: 281,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			GetNext,
+			Set,
+			SetTable,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Deprecated",
+		},
+	}
+}
+
+// NewMulticastGemInterworkingTerminationPoint (class ID 281) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewMulticastGemInterworkingTerminationPoint(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*multicastgeminterworkingterminationpointBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/multicastoperationsprofile.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/multicastoperationsprofile.go
new file mode 100644
index 0000000..9db7284
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/multicastoperationsprofile.go
@@ -0,0 +1,280 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// MulticastOperationsProfileClassID is the 16-bit ID for the OMCI
+// Managed entity Multicast operations profile
+const MulticastOperationsProfileClassID = ClassID(309) // 0x0135
+
+var multicastoperationsprofileBME *ManagedEntityDefinition
+
+// MulticastOperationsProfile (Class ID: #309 / 0x0135)
+//	This ME expresses multicast policy. A multi-dwelling unit ONU may have several such policies,
+//	which are linked to subscribers as required. Some of the attributes configure IGMP snooping and
+//	proxy parameters if the defaults do not suffice, as described in [IETF-RFC-2236], [IETF-RFC
+//	3376], [IETF RFC 3810] and [IETF RFC 5519]. Instances of this ME are created and deleted by the
+//	OLT.
+//
+//	Relationships
+//		An instance of this ME may be associated with zero or more instances of the multicast subscriber
+//		config info ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. The values 0 and 0xFFFF are
+//			reserved. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Igmp Version
+//			This attribute specifies the version of IGMP to be supported. Support of a given version implies
+//			compatible support of previous versions. If the ONU cannot support the version requested, it
+//			should deny an attempt to set the attribute. (R,W, set-by-create) (mandatory) (1 byte)
+//
+//			1	IGMP version 1 (deprecated)
+//
+//			2	IGMP version 2
+//
+//			3	IGMP version 3
+//
+//			16	MLD version 1
+//
+//			17	MLD version 2
+//
+//			Other values are reserved.
+//
+//		Igmp Function
+//			This attribute enables an IGMP function. The value 0 specifies transparent IGMP snooping only.
+//			The value 1 specifies snooping with proxy reporting (SPR); the value 2 specifies IGMP proxy. The
+//			function must be consistent with the capabilities specified by the other IGMP configuration
+//			attributes. (R,W, setbycreate) (mandatory) (1-byte)
+//
+//		Immediate Leave
+//			This Boolean attribute controls the immediate leave function. The value false disables immediate
+//			leave; true enables immediate leave. (R,W, setbycreate) (mandatory) (1-byte)
+//
+//		Upstream Igmp Tci
+//			Under control of the upstream IGMP tag control attribute, the upstream IGMP TCI attribute
+//			defines a VLAN ID and P-bits to add to upstream IGMP messages. (R,-W, setbycreate) (optional)
+//			(2-bytes)
+//
+//		Upstream Igmp Tag Control
+//			2	Replace the entire TCI (VLAN ID plus P bits) on upstream IGMP/MLD traffic. The new tag is
+//			specified by the upstream IGMP/MLD TCI attribute. If the received IGMP/MLD traffic is untagged,
+//			an add operation is performed.
+//
+//			3	Replace only the VLAN ID on upstream IGMP/MLD traffic, retaining the original DEI and P bits.
+//			The new VLAN ID is specified by the VLAN ID field of the upstream IGMP TCI attribute. If the
+//			received IGMP/MLD traffic is untagged, an add operation is performed, with DEI and P bits also
+//			taken from the upstream IGMP TCI attribute.
+//
+//			Other values are reserved.
+//
+//			This attribute controls the upstream IGMP TCI attribute. If this attribute is non-zero, a
+//			possible extended VLAN tagging operation ME is ignored for upstream frames containing IGMP/MLD
+//			packets. (R,-W, setbycreate) (optional) (1-byte)
+//
+//			Value	Meaning
+//
+//			0	Pass upstream IGMP/MLD traffic transparently, neither adding, stripping nor modifying tags
+//			that may be present.
+//
+//			1	Add a VLAN tag (including P bits) to upstream IGMP/MLD traffic. The tag is specified by the
+//			upstream IGMP TCI attribute.
+//
+//		Upstream Igmp Rate
+//			This attribute limits the maximum rate of upstream IGMP traffic. Traffic in excess of this limit
+//			is silently discarded. The attribute value is specified in messages/second. The recommended
+//			default value 0 imposes no rate limit on this traffic. (R,-W, setbycreate) (optional) (4-bytes)
+//
+//		Dynamic Access Control List Table
+//			This attribute is a list that specifies one or more multicast group address ranges. Each row in
+//			the list comprises up to three row parts, where each row part is 24-bytes long. Each entry must
+//			include row part 0. The ONU may also support row parts 1-2, thus allowing the table to contain
+//			logical rows that exceed the 24-byte definition of row part 0.
+//
+//		Static Access Control List Table
+//			This attribute is a list that specifies one or more multicast group address ranges. Groups
+//			defined in this list are multicast on the associated UNI(s) unconditionally, i.e., without the
+//			need for an IGMP join. The bandwidth of static multicast groups is not included in the current
+//			multicast bandwidth measurement maintained by the multicast subscriber monitor ME. If a join
+//			message is always expected, this table may be empty. Table entries have the same format as those
+//			in the dynamic access control list table. The preview fields are not meaningful. (R,-W)
+//			(mandatory) (each row part: 24 bytes)
+//
+//		Lost Groups List Table
+//			This attribute is a list of groups from the dynamic access control list table for which there is
+//			an active join, but no downstream flow is present, possibly because of source failure, but also
+//			possibly because of misconfiguration somewhere upstream. Be aware of possible ambiguity between
+//			overlapping service providers and IPv4/IPv6 addresses. After a join, the ONU should wait a
+//			reasonable time for upstream processing before declaring a group to be lost. Each entry is a
+//			vector of the following components:
+//
+//			-	VLAN ID, 0 if not used (2-bytes)
+//
+//			-	Source IP address, 0.0.0.0 if not used. In IPv6, this field captures only the four least
+//			significant bytes. (4-bytes)
+//
+//			-	Multicast destination IP address. In IPv6, this field captures only the four least significant
+//			bytes. (4-bytes)
+//
+//			(R) (optional) (10N bytes)
+//
+//		Robustness
+//			This attribute allows tuning for possible packet loss in the network. The recommended default
+//			value 0 causes the ONU to follow [IETF RFC 3376] to copy the robustness value from query
+//			messages originating further upstream. (R,-W, setbycreate) (optional) (1-byte)
+//
+//		Querier Ip Address
+//			This attribute specifies the IP address to be used by a proxy querier. Although it is not a
+//			legitimate IP address, the recommended default value 0.0.0.0 is legal in this case (see [b-IETF
+//			RFC 4541]). (R,-W, setbycreate) (optional) (4-bytes)
+//
+//		Query Interval
+//			This attribute specifies the interval between general queries in seconds. The value 0 specifies
+//			that the ONU uses its own default, which may or may not be the same as the recommended default
+//			of 125-s. (R,-W, set-by-create) (optional) (4-bytes)
+//
+//		Query Max Response Time
+//			This attribute is the max response time added by the proxy into general query messages directed
+//			to UNIs. It is expressed in units of 0.1-s. The value 0 specifies that the ONU uses its own
+//			default, which may or may not be the same as the recommended default of 100 (10-s). (R,-W,
+//			setby-create) (optional) (4-bytes)
+//
+//		Last Member Query Interval
+//			This attribute specifies the maximum response time inserted into group-specific queries sent to
+//			UNIs in response to group leave messages. It is also the repetition rate of [robustness]
+//			transmissions of the query. It is specified in units of 0.1-s, with a default of 10 (1-s).
+//			(R,-W) (optional) (4-bytes)
+//
+//		Unauthorized Join Request Behaviour
+//			This Boolean attribute specifies the ONU's behaviour when it receives an IGMP join request for a
+//			group that is not authorized in the dynamic address control list table, or an IGMPv3 membership
+//			report for groups, none of which are authorized in the dynamic ACL. The default value false
+//			specifies that the ONU silently discard the IGMP request; the value true specifies that the ONU
+//			forwards the request upstream. The ONU does not attempt to honour the request for the
+//			unauthorized group(s) in either case. (R,-W) (optional) (1-byte)
+//
+//		Downstream IGMP and multicast TCI
+//			This attribute controls the downstream tagging of both the IGMP/MLD and multicast frames. If the
+//			first byte of this attribute is non-zero, a possible extended VLAN tagging operation ME is
+//			ignored for downstream IGMP/MLD and multicast frames. (R,-W, set-by-create) (optional) (3-bytes)
+//
+//			The first byte defines the control type:
+//
+//			Value	Meaning
+//
+//			0	Pass the downstream IGMP/MLD and multicast traffic transparently, neither stripping nor
+//			modifying tags that may be present.
+//
+//			1	Strip the outer VLAN tag (including P bits) from the downstream IGMP/MLD and multicast
+//			traffic.
+//
+//			2	Add a tag on to the downstream IGMP/MLD and multicast traffic. The new tag is specified by the
+//			second and third bytes of this attribute.
+//
+//			3	Replace the tag on the downstream IGMP/MLD and multicast traffic. The new tag is specified by
+//			the second and third bytes of this attribute.
+//
+//			4	Replace only the VLAN ID on the downstream IGMP/MLD and multicast traffic, retaining the
+//			original DEI and P bits. The new VLAN ID is specified by the VLAN ID field of the second and
+//			third bytes of this attribute.
+//
+//			5	Add a tag on to the downstream IGMP/MLD and multicast traffic. The new tag is specified by the
+//			VID (UNI) field of the multicast service package table row of the multicast subscriber config
+//			info ME that is associated with this profile. If the VID (UNI) field is unspecified (0xFFFF) or
+//			specifies untagged traffic, the new tag is specified by the second and third bytes of this
+//			attribute.
+//
+//			6	Replace the tag on the downstream IGMP/MLD and multicast traffic. The new tag is specified by
+//			the VID (UNI) field of the multicast service package table row of the multicast subscriber
+//			config info ME that is associated with this profile. If the VID (UNI) field specifies untagged
+//			traffic, the outer VLAN tag (including P bits) is stripped from the downstream IGMP/MLD and
+//			multicast traffic. If the value of the VID (UNI) is unspecified (0xFFFF), the new tag is
+//			specified by the second and third bytes of this attribute.
+//
+//			7	Replace only the VID on the downstream IGMP/MLD and multicast traffic, retaining the original
+//			DEI and P bits. The new VLAN ID is specified by the VID (UNI) field of the multicast service
+//			package table row of the multicast subscriber config info ME that is associated with this
+//			profile. If the VID (UNI) field specifies untagged traffic, the outer VLAN tag (including P
+//			bits) is stripped from the downstream IGMP/MLD and multicast traffic. If the value of the VID
+//			(UNI) is unspecified (0xFFFF), the new tag is specified by the second and third bytes of this
+//			attribute.
+//
+//			Other values are reserved.
+//
+//			The second and third bytes define the TCI (VLAN ID and P bits) to be applied on the downstream
+//			IGMP/MLD and multicast streams in case the replace or add option is selected.
+//
+type MulticastOperationsProfile struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	multicastoperationsprofileBME = &ManagedEntityDefinition{
+		Name:    "MulticastOperationsProfile",
+		ClassID: 309,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			GetNext,
+			Set,
+			SetTable,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Lost multicast group",
+		},
+	}
+}
+
+// NewMulticastOperationsProfile (class ID 309) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewMulticastOperationsProfile(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*multicastoperationsprofileBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/multicastsubscriberconfiginfo.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/multicastsubscriberconfiginfo.go
new file mode 100644
index 0000000..1932b6b
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/multicastsubscriberconfiginfo.go
@@ -0,0 +1,204 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// MulticastSubscriberConfigInfoClassID is the 16-bit ID for the OMCI
+// Managed entity Multicast subscriber config info
+const MulticastSubscriberConfigInfoClassID = ClassID(310) // 0x0136
+
+var multicastsubscriberconfiginfoBME *ManagedEntityDefinition
+
+// MulticastSubscriberConfigInfo (Class ID: #310 / 0x0136)
+//	This ME organizes data associated with multicast management at subscriber ports of IEEE-802.1
+//	bridges, including IEEE-802.1p mappers when the provisioning model is mapper-based rather than
+//	bridge-based. Instances of this ME are created and deleted by the OLT. Because of backward
+//	compatibility considerations, a subscriber port without an associated multicast subscriber
+//	config info ME would be expected to support unrestricted multicast access; this ME may therefore
+//	be viewed as restrictive, rather than permissive.
+//
+//	Through separate attributes, this ME supports either a single multicast operations profile in
+//	its backward compatible form, or a list of multicast operations profiles instead (the list may
+//	of course contain a single entry). The OLT can determine whether the ONU supports the multiple
+//	profile capability by performing a get operation on the optional multicast service package table
+//	attribute, which exists only on ONUs that are prepared to support the feature.
+//
+//	Relationships
+//		An instance of this ME is associated with one instance of the MAC bridge port configuration data
+//		or the IEEE-802.1p mapper service profile.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the MAC bridge port configuration data or IEEE-802.1p mapper
+//			ME. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Me Type
+//			(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//			This attribute indicates the type of the ME implicitly linked by the ME ID attribute.
+//
+//			0	MAC bridge port config data
+//
+//			1	IEEE-802.1p mapper service profile
+//
+//		Multicast Operations Profile Pointer
+//			This attribute points to an instance of the multicast operations profile. This attribute is
+//			ignored by the ONU if a non-empty multicast service package table attribute is present. (R,W,
+//			set-by-create) (mandatory) (2 bytes)
+//
+//		Max Simultaneous Groups
+//			This attribute specifies the maximum number of dynamic multicast groups that may be replicated
+//			to the client port at any one time. The recommended default value 0 specifies that no
+//			administrative limit is to be imposed. (R,-W, setbycreate) (optional) (2-bytes)
+//
+//		Max Multicast Bandwidth
+//			This attribute specifies the maximum imputed dynamic bandwidth, in bytes per second, that may be
+//			delivered to the client port at any one time. The recommended default value 0 specifies that no
+//			administrative limit is to be imposed. (R,-W, setbycreate) (optional) (4-bytes)
+//
+//		Bandwidth Enforcement
+//			The recommended default value of this Boolean attribute is false, and specifies that attempts to
+//			exceed the max multicast bandwidth be counted but honoured. The value true specifies that such
+//			attempts be counted and denied. The imputed bandwidth value is taken from the dynamic access
+//			control list table, both for a new join request and for pre-existing groups. (R,-W, setbycreate)
+//			(optional) (1-byte)
+//
+//		Multicast Service Package Table
+//			This attribute is a list that specifies one or more multicast service packages. When the ONU
+//			receives an IGMP/MLD join request, it searches the multicast service package table in row key
+//			order, matching the VID (UNI) field (several rows can share the same VID). For each VID (UNI)
+//			match, the multicast operations profile pointer is used to access the ME that contains the
+//			attributes associated with the service package. The search stops when all requested multicast
+//			groups have been found and dealt with.
+//
+//			Each list entry is a vector of six components as follow.
+//
+//			-	Table control (2-bytes)
+//
+//			The first 2-bytes of each entry contain a key into the table. It is the responsibility of the
+//			OLT to assign and track table keys and content. Since row keys are created by the OLT, they may
+//			be densely or sparsely packed.
+//
+//			The two MSBs of this field determine the meaning of a set operation. These bits are returned as
+//			00 during get next operations.
+//
+//			Bits 14..11 are reserved. Bits 10..1 are the row key itself.
+//
+//			-	VID (UNI). The value in this field is compared with the VID of upstream IGMP/MLD messages, and
+//			is used to decide whether to honour a join request. (2 bytes)
+//
+//			Values:
+//
+//			0..4095 - Matched against the VID of the IGMP/MLD message. 0 indicates a priority-tagged
+//			message, whose P bits are ignored.
+//
+//			4096 - Matches untagged IGMP/MLD messages only.
+//
+//			4097 - Matches tagged messages only, but ignores the value of the VID.
+//
+//			0xFFFF - Unspecified.
+//
+//			The VID (UNI) comparison occurs prior to any action defined by the upstream IGMP tag control
+//			attribute in an associated multicast operations profile (or alternatively, before any
+//			modification by a possible (extended) VLAN tagging operation configuration data ME).
+//
+//			-	Max simultaneous groups. This field specifies the maximum number of dynamic multicast groups
+//			that may be replicated to the client port at any one time, for the multicast service package
+//			that is associated with this row. The value 0 specifies that no administrative limit is to be
+//			imposed. (2-bytes)
+//
+//			-	Max multicast bandwidth. This field specifies the maximum imputed dynamic bandwidth, in bytes
+//			per second, that may be delivered to the client port at any one time, for the multicast service
+//			package that is associated with this row. The value 0 specifies that no administrative limit is
+//			to be imposed. (4-bytes)
+//
+//			NOTE - The port is also constrained by the global max simultaneous groups and max multicast
+//			bandwidth attributes of the multicast subscriber config info ME.
+//
+//			-	Multicast operations profile pointer. This field contains the ME ID of the multicast
+//			operations profile ME associated with this service package. (2 bytes)
+//
+//			-	Reserved (8 bytes)
+//
+//			(R,-W) (optional) (20N bytes, where N is the number of entries in the table)
+//
+//		Allowed Preview Groups Table
+//			Each list entry begins with a table control field:
+//
+//			This attribute is a list that specifies the preview groups that are currently allowed for the
+//			UNI associated with this ME. It is intended to support paid viewing of a multicast group that
+//			may or may not have been previewed.
+//
+//			When an IGMP/MLD join request is received, the order of search precedence is as follows.
+//
+//			1. Multicast operations profile(s), fully authorized groups
+//
+//			2. This attribute, the allowed preview groups table
+//
+//			3. Multicast operations profile(s), preview-only groups
+//
+//			If the first match is a group listed in this attribute, the ONU forwards the group to the UNI
+//			until the group is removed from this list or until the subscriber leaves the group.
+//
+type MulticastSubscriberConfigInfo struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	multicastsubscriberconfiginfoBME = &ManagedEntityDefinition{
+		Name:    "MulticastSubscriberConfigInfo",
+		ClassID: 310,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			GetNext,
+			Set,
+			SetTable,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewMulticastSubscriberConfigInfo (class ID 310) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewMulticastSubscriberConfigInfo(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*multicastsubscriberconfiginfoBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/multicastsubscribermonitor.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/multicastsubscribermonitor.go
new file mode 100644
index 0000000..a43d342
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/multicastsubscribermonitor.go
@@ -0,0 +1,153 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// MulticastSubscriberMonitorClassID is the 16-bit ID for the OMCI
+// Managed entity Multicast subscriber monitor
+const MulticastSubscriberMonitorClassID = ClassID(311) // 0x0137
+
+var multicastsubscribermonitorBME *ManagedEntityDefinition
+
+// MulticastSubscriberMonitor (Class ID: #311 / 0x0137)
+//	This ME provides the current status of each port with respect to its multicast subscriptions. It
+//	may be useful for status monitoring or debugging purposes. The status table includes all dynamic
+//	groups currently subscribed by the port.
+//
+//	Relationships
+//		Instances of this ME are created and deleted at the request of the OLT. One instance may exist
+//		for each IEEE-802.1 UNI configured to support multicast subscription.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the MAC bridge port configuration data or IEEE-802.1p mapper
+//			ME. (R,-setbycreate) (mandatory) (2-bytes)
+//
+//		Me Type
+//			This attribute indicates the type of the ME implicitly linked by the ME ID attribute.
+//
+//			0	MAC bridge port config data
+//
+//			1	IEEE-802.1p mapper service profile
+//
+//			(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Current Multicast Bandwidth
+//			This attribute is the ONU's (BE) estimate of the actual bandwidth currently being delivered to
+//			this particular MAC bridge port over all dynamic multicast groups. (R) (optional) (4-bytes)
+//
+//		Join Messages Counter
+//			This attribute counts the number of times the corresponding subscriber sent a join message that
+//			was accepted. When full, the counter rolls over to 0. (R) (optional) (4-bytes)
+//
+//		Bandwidth Exceeded Counter
+//			This attribute counts the number of join messages that did exceed, or would have exceeded, the
+//			max multicast bandwidth, whether accepted or denied. When full, the counter rolls over to 0. (R)
+//			(optional) (4-bytes)
+//
+//		Ipv4 Active Group List Table
+//			This attribute lists the groups from one of the related dynamic access control list tables or
+//			the allowed preview groups table that are currently being actively forwarded, along with the
+//			actual bandwidth of each. If a join has been recognized from more than one IPv4 source address
+//			for a given group on this UNI, there will be one table entry for each. Each table entry has the
+//			following form.
+//
+//			-	VLAN ID, 0 if not used (2-bytes)
+//
+//			-	Source IP address, 0.0.0.0 if not used (4-bytes)
+//
+//			-	Multicast destination IP address (4-bytes)
+//
+//			-	Best efforts actual bandwidth estimate, bytes per second (4-bytes)
+//
+//			-	Client (set-top box) IP address, i.e., the IP address of the device currently joined (4-bytes)
+//
+//			-	Time since the most recent join of this client to the IP channel, in seconds (4-bytes)
+//
+//			-	Reserved (2-bytes)
+//
+//			(R) (mandatory) (24N bytes)
+//
+//		Ipv6 Active Group List Table
+//			-	Time since the most recent join of this client to the IP channel, in seconds (4-bytes)
+//
+//			(R) (optional) (58N bytes)
+//
+//			This attribute lists the groups from one of the related dynamic access control list tables or
+//			the allowed preview groups table that are currently being actively forwarded, along with the
+//			actual bandwidth of each. If a join has been recognized from more than one IPv6 source address
+//			for a given group on this UNI, there will be one table entry for each. In mixed IPv4-IPv6
+//			scenarios, it is possible that some fields might be IPv4, in which case their 12 most
+//			significant bytes of the given field are set to zero. Each table entry has the form:
+//
+//			-	VLAN ID, 0 if not used (2-bytes)
+//
+//			-	Source IP address, 0 if not used (16-bytes)
+//
+//			-	Multicast destination IP address (16-bytes)
+//
+//			-	Best efforts actual bandwidth estimate, bytes per second (4-bytes)
+//
+//			-	Client (set-top box) IP address, i.e., the IP address of the device currently joined
+//			(16-bytes)
+//
+type MulticastSubscriberMonitor struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	multicastsubscribermonitorBME = &ManagedEntityDefinition{
+		Name:    "MulticastSubscriberMonitor",
+		ClassID: 311,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			GetNext,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewMulticastSubscriberMonitor (class ID 311) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewMulticastSubscriberMonitor(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*multicastsubscribermonitorBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/networkaddress.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/networkaddress.go
new file mode 100644
index 0000000..e965db7
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/networkaddress.go
@@ -0,0 +1,97 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// NetworkAddressClassID is the 16-bit ID for the OMCI
+// Managed entity Network address
+const NetworkAddressClassID = ClassID(137) // 0x0089
+
+var networkaddressBME *ManagedEntityDefinition
+
+// NetworkAddress (Class ID: #137 / 0x0089)
+//	The network address ME associates a network address with security methods required to access a
+//	server. It is conditionally required for ONUs that support VoIP services. The address may take
+//	the form of a URL, a fully qualified path or IP address represented as an ACII string.
+//
+//	If a non-OMCI interface is used to manage VoIP signalling, this ME is unnecessary.
+//
+//	Instances of this ME are created and deleted by the OLT or the ONU, depending on the method used
+//	and case.
+//
+//	Relationships
+//		Any ME that requires a network address may link to an instance of this ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Instances of this ME created
+//			autonomously by the ONU have IDs in the range 0..0x7FFF. Instances created by the OLT have IDs
+//			in the range 0x8000..0xFFFE. The value 0xFFFF is reserved. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Security Pointer
+//			This attribute points to an authentication security method ME. The authentication security
+//			method indicates the username and password to be used when retrieving the network address
+//			indicated by this ME. A null pointer indicates that security attributes are not defined for this
+//			network address. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Address Pointer
+//			This attribute points to the large string ME that contains the network address. It may contain a
+//			fully qualified domain name, URI or IP address. The URI may also contain a port identifier
+//			(e.g., "x.y.z.com:5060"). A null pointer indicates that no network address is defined. (R,-W,
+//			setbycreate) (mandatory) (2-bytes)
+//
+type NetworkAddress struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	networkaddressBME = &ManagedEntityDefinition{
+		Name:    "NetworkAddress",
+		ClassID: 137,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewNetworkAddress (class ID 137) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewNetworkAddress(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*networkaddressBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/networkdialplantable.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/networkdialplantable.go
new file mode 100644
index 0000000..212aa55
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/networkdialplantable.go
@@ -0,0 +1,139 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// NetworkDialPlanTableClassID is the 16-bit ID for the OMCI
+// Managed entity Network dial plan table
+const NetworkDialPlanTableClassID = ClassID(145) // 0x0091
+
+var networkdialplantableBME *ManagedEntityDefinition
+
+// NetworkDialPlanTable (Class ID: #145 / 0x0091)
+//	The network dial plan table ME is optional for ONUs providing VoIP services. This ME is used to
+//	provision dial plans from the OLT. Instances of this ME are created and deleted by the OLT. If a
+//	non-OMCI interface is used to manage SIP for VoIP, this ME is unnecessary.
+//
+//	Relationships
+//		An instance of this ME may be associated with one or more instances of the SIP user data ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Dial Plan Number
+//			This attribute indicates the current number of dial plans in the dial plan table. (R)
+//			(mandatory) (2-bytes)
+//
+//		Dial Plan Table Max Size
+//			This attribute defines the maximum number of dial plans that can be stored in the dial plan
+//			table. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Critical Dial Timeout
+//			This attribute defines the critical dial timeout for digit map processing, in milliseconds. The
+//			recommended default value is 4000-ms. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Partial Dial Timeout
+//			This attribute defines the partial dial timeout for digit map processing, in milliseconds. The
+//			recommended default value is 16000-ms. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Dial Plan Format
+//			This attribute defines the dial plan format standard that is supported in the ONU for VoIP.
+//			Valid values include the following.
+//
+//			0	Not defined
+//
+//			1	ITU-T H.248 format with a specific plan (table entries define the dialling plan)
+//
+//			2	NCS format [b-PKT-SP-NCS ]
+//
+//			3	Vendor-specific format
+//
+//			(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Dial Plan Table
+//			The table is the digit map that describes the dial plans used by the VoIP service, along with
+//			fields to manage the table. An example digit map is the string,
+//
+//			(0T|00T|[1-7]xxx|8xxxxxxx|#xxxxxxx|*xx|91xxxxxxxxxx|9011x.T)
+//
+//			Each row of the table comprises the following fields:
+//
+//			Dial plan ID: The row number, a unique identifier of a dial plan within the dial plan table
+//			(1-byte).
+//
+//			Action: Remove (0) or add (1) this plan (set action). When a dial plan is being removed, the
+//			dial plan token field is not used. (1-byte).
+//
+//			Dial plan token: The definition of the dial plan itself. In the previous example, tokens include
+//			the strings "0T" and "*xx". Unused trailing bytes may be padded with nulls or ASCII spaces.
+//			(28-bytes)
+//
+//			NOTE - Due to previously ambiguous documentation, implementations may vary. For
+//			interoperability, the OLT should write table entries as documented above, while it is encouraged
+//			for the ONU to accept any characters outside the formal grammar as delimiters and to accept the
+//			concatenation of rows as a single string that defines a digit map.
+//
+//			(R,-W) (mandatory) (30 * N bytes, where N is the number of dial plans)
+//
+type NetworkDialPlanTable struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	networkdialplantableBME = &ManagedEntityDefinition{
+		Name:    "NetworkDialPlanTable",
+		ClassID: 145,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			GetNext,
+			Set,
+			SetTable,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewNetworkDialPlanTable (class ID 145) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewNetworkDialPlanTable(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*networkdialplantableBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/octetstring.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/octetstring.go
new file mode 100644
index 0000000..941761d
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/octetstring.go
@@ -0,0 +1,181 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// OctetStringClassID is the 16-bit ID for the OMCI
+// Managed entity Octet string
+const OctetStringClassID = ClassID(307) // 0x0133
+
+var octetstringBME *ManagedEntityDefinition
+
+// OctetString (Class ID: #307 / 0x0133)
+//	The octet string is modelled on the large string ME. The large string is constrained to
+//	printable characters because it uses null as a trailing delimiter. The octet string has a length
+//	attribute and is therefore suitable for arbitrary sequences of bytes.
+//
+//	Instances of this ME are created and deleted by the OLT. To use this ME, the OLT instantiates
+//	the octet string ME and then points to the created ME from other ME instances. Systems that
+//	maintain the octet string should ensure that the octet string ME is not deleted while it is
+//	still linked.
+//
+//	Relationships
+//		An instance of this ME may be cited by any ME that requires an octet string that can exceed
+//		25-bytes in length.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. The values 0 and 0xFFFF are
+//			reserved. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Length
+//			This attribute specifies the number of octets that comprise the sequence of octets. This
+//			attribute defaults to 0 to indicate no octet string is defined. The maximum value of this
+//			attribute is 375 (15 parts, 25-bytes each). (R,-W) (mandatory) (2-bytes)
+//
+//			In the following, 15 additional attributes are defined; they are identical. The octet string is
+//			simply divided into as many parts as necessary, starting at part 1 and left justified.
+//
+//		Part 1
+//			Part 1, Part 2, Part 3, Part 4, Part 5, Part 6, Part 7, Part 8, Part 9,  Part 10, Part 11, Part
+//			12, Part 13, Part 14, Part 15:  (R,-W) (part 1 mandatory, others optional) (25-bytes * 15
+//			attributes)
+//
+//		Part 2
+//			Part 1, Part 2, Part 3, Part 4, Part 5, Part 6, Part 7, Part 8, Part 9,  Part 10, Part 11, Part
+//			12, Part 13, Part 14, Part 15:  (R,-W) (part 1 mandatory, others optional) (25-bytes * 15
+//			attributes)
+//
+//		Part 3
+//			Part 1, Part 2, Part 3, Part 4, Part 5, Part 6, Part 7, Part 8, Part 9,  Part 10, Part 11, Part
+//			12, Part 13, Part 14, Part 15:  (R,-W) (part 1 mandatory, others optional) (25-bytes * 15
+//			attributes)
+//
+//		Part 4
+//			Part 1, Part 2, Part 3, Part 4, Part 5, Part 6, Part 7, Part 8, Part 9,  Part 10, Part 11, Part
+//			12, Part 13, Part 14, Part 15:  (R,-W) (part 1 mandatory, others optional) (25-bytes * 15
+//			attributes)
+//
+//		Part 5
+//			Part 1, Part 2, Part 3, Part 4, Part 5, Part 6, Part 7, Part 8, Part 9,  Part 10, Part 11, Part
+//			12, Part 13, Part 14, Part 15:  (R,-W) (part 1 mandatory, others optional) (25-bytes * 15
+//			attributes)
+//
+//		Part 6
+//			Part 1, Part 2, Part 3, Part 4, Part 5, Part 6, Part 7, Part 8, Part 9,  Part 10, Part 11, Part
+//			12, Part 13, Part 14, Part 15:  (R,-W) (part 1 mandatory, others optional) (25-bytes * 15
+//			attributes)
+//
+//		Part 7
+//			Part 1, Part 2, Part 3, Part 4, Part 5, Part 6, Part 7, Part 8, Part 9,  Part 10, Part 11, Part
+//			12, Part 13, Part 14, Part 15:  (R,-W) (part 1 mandatory, others optional) (25-bytes * 15
+//			attributes)
+//
+//		Part 8
+//			Part 1, Part 2, Part 3, Part 4, Part 5, Part 6, Part 7, Part 8, Part 9,  Part 10, Part 11, Part
+//			12, Part 13, Part 14, Part 15:  (R,-W) (part 1 mandatory, others optional) (25-bytes * 15
+//			attributes)
+//
+//		Part 9
+//			Part 1, Part 2, Part 3, Part 4, Part 5, Part 6, Part 7, Part 8, Part 9,  Part 10, Part 11, Part
+//			12, Part 13, Part 14, Part 15:  (R,-W) (part 1 mandatory, others optional) (25-bytes * 15
+//			attributes)
+//
+//		Part 10
+//			Part 1, Part 2, Part 3, Part 4, Part 5, Part 6, Part 7, Part 8, Part 9,  Part 10, Part 11, Part
+//			12, Part 13, Part 14, Part 15:  (R,-W) (part 1 mandatory, others optional) (25-bytes * 15
+//			attributes)
+//
+//		Part 11
+//			Part 1, Part 2, Part 3, Part 4, Part 5, Part 6, Part 7, Part 8, Part 9,  Part 10, Part 11, Part
+//			12, Part 13, Part 14, Part 15:  (R,-W) (part 1 mandatory, others optional) (25-bytes * 15
+//			attributes)
+//
+//		Part 12
+//			Part 1, Part 2, Part 3, Part 4, Part 5, Part 6, Part 7, Part 8, Part 9,  Part 10, Part 11, Part
+//			12, Part 13, Part 14, Part 15:  (R,-W) (part 1 mandatory, others optional) (25-bytes * 15
+//			attributes)
+//
+//		Part 13
+//			Part 1, Part 2, Part 3, Part 4, Part 5, Part 6, Part 7, Part 8, Part 9,  Part 10, Part 11, Part
+//			12, Part 13, Part 14, Part 15:  (R,-W) (part 1 mandatory, others optional) (25-bytes * 15
+//			attributes)
+//
+//		Part 14
+//			Part 1, Part 2, Part 3, Part 4, Part 5, Part 6, Part 7, Part 8, Part 9,  Part 10, Part 11, Part
+//			12, Part 13, Part 14, Part 15:  (R,-W) (part 1 mandatory, others optional) (25-bytes * 15
+//			attributes)
+//
+//		Part 15
+//			Part 1, Part 2, Part 3, Part 4, Part 5, Part 6, Part 7, Part 8, Part 9,  Part 10, Part 11, Part
+//			12, Part 13, Part 14, Part 15:  (R,-W) (part 1 mandatory, others optional) (25-bytes * 15
+//			attributes)
+//
+type OctetString struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	octetstringBME = &ManagedEntityDefinition{
+		Name:    "OctetString",
+		ClassID: 307,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewOctetString (class ID 307) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewOctetString(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*octetstringBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/olt-g.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/olt-g.go
new file mode 100644
index 0000000..fbbff70
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/olt-g.go
@@ -0,0 +1,109 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// OltGClassID is the 16-bit ID for the OMCI
+// Managed entity OLT-G
+const OltGClassID = ClassID(131) // 0x0083
+
+var oltgBME *ManagedEntityDefinition
+
+// OltG (Class ID: #131 / 0x0083)
+//	This optional ME identifies the OLT to which an ONU is connected. This ME provides a way for the
+//	ONU to configure itself for operability with a particular OLT. It also provides a way for the
+//	OLT to communicate the time of day to the ONU.
+//
+//	An ONU that supports this ME automatically creates an instance of it. Immediately following the
+//	start-up phase, the OLT should set the ONU to the desired configuration. Interpretation of the
+//	OLT vendor ID, equipment ID and version attributes is a matter for negotiation between the two
+//	vendors involved.
+//
+//	Relationships
+//		The single instance of this ME is associated with the ONU ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. There is only one instance, number
+//			0. (R) (mandatory) (2-bytes)
+//
+//		Olt Vendor Id
+//			This attribute identifies the OLT vendor. It is the same as the four most significant bytes of
+//			an ONU serial number specified in the respective TC layer specification. Upon instantiation,
+//			this attribute comprises all spaces. (R,-W) (mandatory) (4-bytes)
+//
+//		Equipment Id
+//			This attribute may be used to identify the specific type of OLT. The default value of all spaces
+//			indicates that equipment ID information is not available or applicable to the OLT being
+//			represented. (R,-W) (mandatory) (20-bytes)
+//
+//		Version
+//			This attribute identifies the version of the OLT as defined by the vendor. The default left-
+//			justified ASCII string "0" (padded with trailing nulls) indicates that version information is
+//			not available or applicable to the OLT being represented. (R,-W) (mandatory) (14-bytes)
+//
+//		Time Of Day Information
+//			This attribute provides the information required to achieve time of day synchronization between
+//			a reference clock at the OLT and a local clock at the ONU. This attribute comprises two fields:
+//			the first field (4-bytes) is the sequence number of the specified GEM superframe. The second
+//			field (10-bytes) is TstampN as defined in clause 10.4.6 of [ITUT G.984.3], clause 13.2 of [ITUT
+//			G.987.3] and clause 13.2 of [ITU-T G.989.3], using the timestamp format of clause 5.3.3 of [IEEE
+//			1588]. The value 0 in all bytes is reserved as a null value. (R,-W) (optional) (14-bytes)
+//
+//			NOTE - In ITU-T G.987/ITU-T G.989 systems, the superframe count field of the time of day
+//			information attribute contains the 32 LSBs of the actual counter.
+//
+type OltG struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	oltgBME = &ManagedEntityDefinition{
+		Name:    "OltG",
+		ClassID: 131,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewOltG (class ID 131) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewOltG(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*oltgBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/omci.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/omci.go
new file mode 100644
index 0000000..77b4777
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/omci.go
@@ -0,0 +1,85 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// OmciClassID is the 16-bit ID for the OMCI
+// Managed entity OMCI
+const OmciClassID = ClassID(287) // 0x011f
+
+var omciBME *ManagedEntityDefinition
+
+// Omci (Class ID: #287 / 0x011f)
+//	This ME describes the ONU's general level of support for OMCI MEs and messages. This ME is not
+//	included in an MIB upload.
+//
+//	Relationships
+//		One instance exists in the ONU. The ME entities are related to the OMCI entity.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. There is only one instance, number
+//			0. (R) (mandatory) (2-bytes)
+//
+//		Me Type Table
+//			This attribute lists the ME classes supported by the ONU. Each entry contains the ME class value
+//			(see Table 11.2.4-1) of an ME type. (R) (mandatory) (2 * N bytes, where N is the number of
+//			entries in the list.)
+//
+//		Message Type Table
+//			This attribute is a list of message types (MTs) supported by the ONU. Each entry contains the MT
+//			of an OMCI message (see Table-11.2.2-1). (R) (mandatory) (M bytes, where M is the number of
+//			entries in the list.)
+//
+type Omci struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	omciBME = &ManagedEntityDefinition{
+		Name:    "Omci",
+		ClassID: 287,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewOmci (class ID 287) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewOmci(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*omciBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/omcidefs.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/omcidefs.go
new file mode 100644
index 0000000..5e845ff
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/omcidefs.go
@@ -0,0 +1,287 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import (
+	"fmt"
+	"github.com/deckarep/golang-set"
+	"github.com/google/gopacket"
+)
+
+// MsgType represents a OMCI message-type
+type MsgType byte
+
+// MsgType represents the status field in a OMCI Response frame
+type Results byte
+
+// AttributeAccess represents the access allowed to an Attribute.  Some MEs
+// are instantiated by the ONU autonomously. Others are instantiated on
+// explicit request of the OLT via a create command, and a few ME types may
+// be instantiated in either way, depending on the ONU architecture or
+// circumstances.
+//
+// Attributes of an ME that is auto-instantiated by the ONU can be read (R),
+// write (W), or read, write (R, W). On the other hand, attributes of a ME
+// that is instantiated by the OLT can be either (R), (W), (R, W),
+// (R, set by create) or (R, W, set by create).
+type AttributeAccess byte
+
+// ClassID is a 16-bit value that uniquely defines a Managed Entity clas
+// from the ITU-T G.988 specification.
+type ClassID uint16
+
+// AlarmMap is a mapping of alarm bit numbers to alarm names and can be
+// used during decode of Alarm Notification messages
+type AlarmMap map[uint8]string
+
+func (cid ClassID) String() string {
+	if entity, err := LoadManagedEntityDefinition(cid); err.StatusCode() == Success {
+		return fmt.Sprintf("[%s] (%d/%#x)",
+			entity.GetManagedEntityDefinition().GetName(), uint16(cid), uint16(cid))
+	}
+	return fmt.Sprintf("unknown ClassID: %d (%#x)", uint16(cid), uint16(cid))
+}
+
+const (
+	// AK (Bit 6), indicates whether this message is an AK to an action request.
+	// If a message is an AK, this bit is set to 1. If the message is not a
+	// response to a command, this bit is set to 0. In messages sent by the OLT,
+	// this bit is always 0.
+	AK byte = 0x20
+
+	// AR (Bit 7), acknowledge request, indicates whether the message requires an
+	// AK. An AK is a response to an action request, not a link layer handshake.
+	// If an AK is expected, this bit is set to 1. If no AK is expected, this bit
+	// is 0. In messages sent by the ONU, this bit is always 0
+	AR byte = 0x40
+
+	// MsgTypeMask provides a mask to get the base message type
+	MsgTypeMask = 0x1F
+)
+
+const (
+	// Message Types
+	Create                MsgType = 4
+	Delete                MsgType = 6
+	Set                   MsgType = 8
+	Get                   MsgType = 9
+	GetAllAlarms          MsgType = 11
+	GetAllAlarmsNext      MsgType = 12
+	MibUpload             MsgType = 13
+	MibUploadNext         MsgType = 14
+	MibReset              MsgType = 15
+	AlarmNotification     MsgType = 16
+	AttributeValueChange  MsgType = 17
+	Test                  MsgType = 18
+	StartSoftwareDownload MsgType = 19
+	DownloadSection       MsgType = 20
+	EndSoftwareDownload   MsgType = 21
+	ActivateSoftware      MsgType = 22
+	CommitSoftware        MsgType = 23
+	SynchronizeTime       MsgType = 24
+	Reboot                MsgType = 25
+	GetNext               MsgType = 26
+	TestResult            MsgType = 27
+	GetCurrentData        MsgType = 28
+	SetTable              MsgType = 29 // Defined in Extended Message Set Only
+	ExtendedOffset        MsgType = 0x80
+)
+
+func (mt MsgType) String() string {
+	switch mt {
+	default:
+		return "Unknown"
+	case Create:
+		return "Create"
+	case Delete:
+		return "Delete"
+	case Set:
+		return "Set"
+	case Get:
+		return "Get"
+	case GetAllAlarms:
+		return "Get All Alarms"
+	case GetAllAlarmsNext:
+		return "Get All Alarms Next"
+	case MibUpload:
+		return "MIB Upload"
+	case MibUploadNext:
+		return "MIB Upload Next"
+	case MibReset:
+		return "MIB Reset"
+	case AlarmNotification:
+		return "Alarm Notification"
+	case AttributeValueChange:
+		return "Attribute Value Change"
+	case Test:
+		return "Test"
+	case StartSoftwareDownload:
+		return "Start Software Download"
+	case DownloadSection:
+		return "Download Section"
+	case EndSoftwareDownload:
+		return "EndSoftware Download"
+	case ActivateSoftware:
+		return "Activate Software"
+	case CommitSoftware:
+		return "Commit Software"
+	case SynchronizeTime:
+		return "Synchronize Time"
+	case Reboot:
+		return "Reboot"
+	case GetNext:
+		return "Get Next"
+	case TestResult:
+		return "Test Result"
+	case GetCurrentData:
+		return "Get Current Data"
+	case SetTable:
+		return "Set Table"
+	}
+}
+
+var allNotificationTypes = [...]MsgType{
+	AlarmNotification,
+	AttributeValueChange,
+	TestResult,
+}
+
+// SupportsMsgType returns true if the managed entity supports the desired
+// Message Type / action
+func SupportsMsgType(entity IManagedEntityDefinition, msgType MsgType) bool {
+	return entity.GetMessageTypes().Contains(msgType)
+}
+
+func IsAutonomousNotification(mt MsgType) bool {
+	for _, m := range allNotificationTypes {
+		if mt == m {
+			return true
+		}
+	}
+	return false
+}
+
+const (
+	// Response status codes
+	Success          Results = 0 // command processed successfully
+	ProcessingError  Results = 1 // command processing error
+	NotSupported     Results = 2 // command not supported
+	ParameterError   Results = 3 // parameter error
+	UnknownEntity    Results = 4 // unknown managed entity
+	UnknownInstance  Results = 5 // unknown managed entity instance
+	DeviceBusy       Results = 6 // device busy
+	InstanceExists   Results = 7 // instance exists
+	AttributeFailure Results = 9 // Attribute(s) failed or unknown
+)
+
+func (rc Results) String() string {
+	switch rc {
+	default:
+		return "Unknown"
+	case Success:
+		return "Success"
+	case ProcessingError:
+		return "Processing Error"
+	case NotSupported:
+		return "Not Supported"
+	case ParameterError:
+		return "Parameter Error"
+	case UnknownEntity:
+		return "Unknown Entity"
+	case UnknownInstance:
+		return "Unknown Instance"
+	case DeviceBusy:
+		return "Device Busy"
+	case InstanceExists:
+		return "Instance Exists"
+	case AttributeFailure:
+		return "Attribute Failure"
+	}
+}
+
+const (
+	// Access allowed on a Managed Entity attribute
+	Read AttributeAccess = 1 << iota
+	Write
+	SetByCreate
+)
+
+func (access AttributeAccess) String() string {
+	switch access {
+	default:
+		return "Unknown"
+	case Read:
+		return "Read"
+	case Write:
+		return "Write"
+	case SetByCreate:
+		return "SetByCreate"
+	case Read | Write:
+		return "Read/Write"
+	case Read | SetByCreate:
+		return "Read/SetByCreate"
+	case Write | SetByCreate:
+		return "Write/SetByCreate"
+	case Read | Write | SetByCreate:
+		return "Read/Write/SetByCreate"
+	}
+}
+
+// SupportsAttributeAccess returns true if the managed entity attribute
+// supports the desired access
+func SupportsAttributeAccess(attr AttributeDefinition, acc AttributeAccess) bool {
+	return attr.GetAccess().Contains(acc)
+}
+
+type IManagedEntityDefinition interface {
+	GetName() string
+	GetClassID() ClassID
+	GetMessageTypes() mapset.Set
+	GetAllowedAttributeMask() uint16
+	GetAttributeDefinitions() AttributeDefinitionMap
+	GetAlarmMap() AlarmMap
+
+	DecodeAttributes(uint16, []byte, gopacket.PacketBuilder, byte) (AttributeValueMap, error)
+	SerializeAttributes(AttributeValueMap, uint16, gopacket.SerializeBuffer, byte, int, bool) (error, uint16)
+}
+
+type IManagedEntity interface {
+	IManagedEntityDefinition
+	GetManagedEntityDefinition() IManagedEntityDefinition
+
+	GetEntityID() uint16
+	SetEntityID(uint16) error
+
+	GetAttributeMask() uint16
+
+	GetAttributeValueMap() AttributeValueMap
+	GetAttribute(string) (interface{}, error)
+	GetAttributeByIndex(uint) (interface{}, error)
+
+	SetAttribute(string, interface{}) error
+	SetAttributeByIndex(uint, interface{}) error
+
+	DeleteAttribute(string) error
+	DeleteAttributeByIndex(uint) error
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/omcierror.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/omcierror.go
new file mode 100644
index 0000000..059e5ca
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/omcierror.go
@@ -0,0 +1,302 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import (
+	"errors"
+	"fmt"
+)
+
+// Custom Go Error messages for common OMCI errors
+//
+// Response Status code related errors
+type OmciErrors interface {
+	Error() string
+	StatusCode() Results
+	GetError() error
+	GetFailureMask() uint16
+	GetUnsupporteMask() uint16
+}
+
+type OmciError struct {
+	err             string
+	statusCode      Results
+	failureMask     uint16
+	unsupportedMask uint16
+}
+
+func (e *OmciError) GetError() error {
+	if e.statusCode == Success {
+		return nil
+	}
+	return errors.New(e.err)
+}
+
+func (e *OmciError) Error() string {
+	return e.err
+}
+
+func (e *OmciError) StatusCode() Results {
+	return e.statusCode
+}
+
+func (e *OmciError) GetFailureMask() uint16 {
+	return e.failureMask
+}
+
+func (e *OmciError) GetUnsupporteMask() uint16 {
+	return e.unsupportedMask
+}
+
+// NewOmciSuccess is used to convey a successful request. For Set/Get responses,
+// this indicates that all attributes were successfully set/retrieved.
+//
+// For Set/Get requests that have unsupported/failed attributes (code 1001), use the
+// NewAttributeFailureError() function to convey the proper status (AttributeFailure).
+//
+// For Create requests that have parameter errors (code 0011), use the NewParameterError()
+// function to signal which attributes were in error
+func NewOmciSuccess() OmciErrors {
+	return &OmciError{
+		statusCode: Success,
+	}
+}
+
+// NewNonStatusError is for processing errors that do not involve
+// frame processing status & results
+func NewNonStatusError(args ...interface{}) OmciErrors {
+	defaultValue := "command processing error"
+	return &OmciProcessingError{
+		OmciError: OmciError{
+			err: genMessage(defaultValue, args...),
+		},
+	}
+}
+
+type OmciProcessingError struct {
+	OmciError
+}
+
+// NewProcessingError means the command processing failed at the ONU
+// for reasons not described by one of the more specific error codes.
+func NewProcessingError(args ...interface{}) OmciErrors {
+	defaultValue := "command processing error"
+	return &OmciProcessingError{
+		OmciError: OmciError{
+			err:        genMessage(defaultValue, args...),
+			statusCode: ProcessingError,
+		},
+	}
+}
+
+// NotSupportedError means that the message type indicated in byte 3 is
+// not supported by the ONU.
+type NotSupportedError struct {
+	OmciError
+}
+
+// NewNotSupportedError creates a NotSupportedError
+func NewNotSupportedError(args ...interface{}) OmciErrors {
+	defaultValue := "command not supported"
+	return &NotSupportedError{
+		OmciError: OmciError{
+			err:        genMessage(defaultValue, args...),
+			statusCode: NotSupported,
+		},
+	}
+}
+
+// ParamError means that the command message received by the
+// ONU was errored. It would be appropriate if an attribute mask
+// were out of range, for example. In practice, this result code is
+// frequently used interchangeably with code 1001. However, the
+// optional attribute and attribute execution masks in the reply
+// messages are only defined for code 1001.
+type ParamError struct {
+	OmciError
+}
+
+// NewParameterError creates a ParamError
+//
+// For Set/Get requests that have unsupported/failed attributes (code 1001), use the
+// NewAttributeFailureError() function to convey the proper status (AttributeFailure).
+func NewParameterError(mask uint16, args ...interface{}) OmciErrors {
+	if mask == 0 {
+		panic("invalid attribute mask specified")
+	}
+	defaultValue := "parameter error"
+	err := &ParamError{
+		OmciError: OmciError{
+			err:         genMessage(defaultValue, args...),
+			statusCode:  ParameterError,
+			failureMask: mask,
+		},
+	}
+	return err
+}
+
+// UnknownEntityError means that the managed entity class
+// (bytes 5..6) is not supported by the ONU.
+type UnknownEntityError struct {
+	OmciError
+}
+
+// NewUnknownEntityError creates an UnknownEntityError
+func NewUnknownEntityError(args ...interface{}) OmciErrors {
+	defaultValue := "unknown managed entity"
+	return &UnknownEntityError{
+		OmciError: OmciError{
+			err:        genMessage(defaultValue, args...),
+			statusCode: UnknownEntity,
+		},
+	}
+}
+
+// UnknownInstanceError means that the managed entity instance (bytes 7..8)
+// does not exist in the ONU.
+type UnknownInstanceError struct {
+	OmciError
+}
+
+// NewUnknownInstanceError creates an UnknownInstanceError
+func NewUnknownInstanceError(args ...interface{}) OmciErrors {
+	defaultValue := "unknown managed entity instance"
+	return &UnknownInstanceError{
+		OmciError: OmciError{
+			err:        genMessage(defaultValue, args...),
+			statusCode: UnknownInstance,
+		},
+	}
+}
+
+// DeviceBusyError means that the command could not be processed due
+// to process-related congestion at the ONU. This result code may
+// also be used as a pause indication to the OLT while the ONU
+// conducts a time-consuming operation such as storage of a
+// software image into non-volatile memory.
+type DeviceBusyError struct {
+	OmciError
+}
+
+// NewDeviceBusyError creates a DeviceBusyError
+func NewDeviceBusyError(args ...interface{}) OmciErrors {
+	defaultValue := "device busy"
+	return &DeviceBusyError{
+		OmciError: OmciError{
+			err:        genMessage(defaultValue, args...),
+			statusCode: DeviceBusy,
+		},
+	}
+}
+
+// InstanceExistsError means that the ONU already has a managed entity instance
+// that corresponds to the one the OLT is attempting to create.
+type InstanceExistsError struct {
+	OmciError
+}
+
+// NewInstanceExistsError
+func NewInstanceExistsError(args ...interface{}) OmciErrors {
+	defaultValue := "instance exists"
+	return &InstanceExistsError{
+		OmciError: OmciError{
+			err:        genMessage(defaultValue, args...),
+			statusCode: InstanceExists,
+		},
+	}
+}
+
+// AttributeFailureError is used to encode failed attributes for Get/Set Requests
+//
+// For Get requests, the failed mask is used to report attributes that could not be
+// retrieved (most likely no space available to serialize) and could not be returned
+// to the caller. The unsupported mask reports attributes the ONU does not support.
+//
+// For Set requests, the failed mask is used to report attributes that have errors
+// (possibly constraints) and could not be set/saved. The unsupported mask reports
+// attributes the ONU does not support.
+//
+// For Create requests that have parameter errors (code 0011), use the NewParameterError()
+// function to signal which attributes were in error
+type AttributeFailureError struct {
+	OmciError
+}
+
+// NewAttributeFailureError is used to ceeate an AttributeFailure error status for
+// Get/Set requests
+func NewAttributeFailureError(failedMask uint16, unsupportedMask uint16, args ...interface{}) OmciErrors {
+	defaultValue := "attribute(s) failed or unknown"
+
+	err := &AttributeFailureError{
+		OmciError: OmciError{
+			err:             genMessage(defaultValue, args...),
+			statusCode:      AttributeFailure,
+			failureMask:     failedMask,
+			unsupportedMask: unsupportedMask,
+		},
+	}
+	return err
+}
+
+// MessageTruncatedError means that the requested attributes could not
+// be added to the frame due to size limitations. This is typically an OMCI Error
+// returned internally by support functions in the OMCI library and used by the
+// frame encoding routines to eventually return an AttributeFailureError
+// result (code 1001)
+type MessageTruncatedError struct {
+	OmciError
+}
+
+// NewMessageTruncatedError creates a MessageTruncatedError message
+func NewMessageTruncatedError(args ...interface{}) OmciErrors {
+	defaultValue := "out-of-space. Cannot fit attribute into message"
+	return &MessageTruncatedError{
+		OmciError: OmciError{
+			err:        genMessage(defaultValue, args...),
+			statusCode: ProcessingError,
+		},
+	}
+}
+
+func genMessage(defaultValue string, args ...interface{}) string {
+	switch len(args) {
+	case 0:
+		return defaultValue
+
+	case 1:
+		switch first := args[0].(type) {
+		case string:
+			// Assume a simple, pre-formatted string
+			return args[0].(string)
+
+		case func() string:
+			// Assume a closure with no other arguments used
+			return first()
+
+		default:
+			panic("Unsupported parameter type")
+		}
+	}
+	return fmt.Sprintf(args[0].(string), args[1:]...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/onu-g.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/onu-g.go
new file mode 100644
index 0000000..04bdca0
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/onu-g.go
@@ -0,0 +1,198 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// OnuGClassID is the 16-bit ID for the OMCI
+// Managed entity ONU-G
+const OnuGClassID = ClassID(256) // 0x0100
+
+var onugBME *ManagedEntityDefinition
+
+// OnuG (Class ID: #256 / 0x0100)
+//	This ME represents the ONU as equipment. The ONU automatically creates an instance of this ME.
+//	It assigns values to read-only attributes according to data within the ONU itself.
+//
+//	This ME has evolved from the ONT-G of [ITUT G.984.4].
+//
+//	Relationships
+//		In ITU-T GTC based PON applications, all other MEs in this Recommendation are related directly
+//		or indirectly to the ONU-G entity.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. There is only one instance, number
+//			0. (R) (mandatory) (2-bytes)
+//
+//		Vendor Id
+//			This attribute identifies the vendor of the ONU. It is the same as the four most significant
+//			bytes of the ONU serial number as specified in the respective transmission convergence (TC)
+//			layer specification. (R) (mandatory) (4-bytes)
+//
+//		Version
+//			This attribute identifies the version of the ONU as defined by the vendor. The character value 0
+//			indicates that version information is not available or applicable. (R) (mandatory) (14-bytes)
+//
+//		Serial Number
+//			The serial number is unique for each ONU. It is defined in the respective TC layer specification
+//			and contains the vendor ID and version number. The first four bytes are an ASCII-encoded four-
+//			letter vendor ID. The second four bytes are a binary encoded serial number, under the control of
+//			the ONU vendor. (R) (mandatory) (8-bytes)
+//
+//		Traffic Management Option
+//			This attribute identifies the upstream traffic management function implemented in the ONU. There
+//			are three options:
+//
+//			0	Priority controlled and flexibly scheduled upstream traffic. The traffic scheduler and
+//			priority queue mechanism are used for upstream traffic.
+//
+//			1	Rate controlled upstream traffic. The maximum upstream traffic of each individual connection
+//			is guaranteed by shaping.
+//
+//			2	Priority and rate controlled. The traffic scheduler and priority queue mechanism are used for
+//			upstream traffic. The maximum upstream traffic of each individual connection is guaranteed by
+//			shaping.
+//
+//			For a further explanation, see Appendix II.
+//
+//			Downstream priority queues are managed via the GEM port network CTP ME.
+//
+//			Upon ME instantiation, the ONU sets this attribute to the value that describes its
+//			implementation. The OLT must adapt its model to conform to the ONU's selection. (R) (mandatory)
+//			(1-byte)
+//
+//		Deprecated
+//			This attribute is not used. If it is present, it should be set to 0. (R) (optional) (1-byte)
+//
+//		Battery Backup
+//			This Boolean attribute controls whether the ONU performs backup battery monitoring (assuming it
+//			is capable of doing so). False disables battery alarm monitoring; true enables battery alarm
+//			monitoring. (R,-W) (mandatory) (1-byte)
+//
+//		Administrative State
+//			This attribute locks (1) and unlocks (0) the functions performed by the ONU as an entirety.
+//			Administrative state is further described in clause A.1.6. (R,-W) (mandatory) (1-byte)
+//
+//		Operational State
+//			This attribute reports whether the ME is currently capable of performing its function. Valid
+//			values are enabled (0) and disabled (1). (R) (optional) (1-byte)
+//
+//		Onu Survival Time
+//			This attribute indicates the minimum guaranteed time in milliseconds between the loss of
+//			external power and the silence of the ONU. This does not include survival time attributable to a
+//			backup battery. The value zero implies that the actual time is not known. (R) (optional)
+//			(1-byte)
+//
+//		Logical Onu Id
+//			This attribute provides a way for the ONU to identify itself. It is a text string, null
+//			terminated if it is shorter than 24 bytes, with a null default value. The mechanism for creation
+//			or modification of this information is beyond the scope of this Recommendation, but might
+//			include, for example, a web page displayed to a user. (R) (optional) (24 bytes)
+//
+//		Logical Password
+//			This attribute provides a way for the ONU to submit authentication credentials. It is a text
+//			string, null terminated if it is shorter than 12 bytes, with a null default value. The mechanism
+//			for creation or modification of this information is beyond the scope of this Recommendation. (R)
+//			(optional) (12-bytes)
+//
+//		Credentials Status
+//			This attribute permits the OLT to signal to the ONU whether its credentials are valid or not.
+//			The behaviour of the ONU is not specified, but might, for example, include displaying an error
+//			screen to the user. (R, W) (optional) (1-byte)
+//
+//			Values include:
+//
+//			0	Initial state, status indeterminate
+//
+//			1	Successful authentication
+//
+//			2	Logical ONU ID (LOID) error
+//
+//			3	Password error
+//
+//			4	Duplicate LOID
+//
+//			Other values are reserved.
+//
+//		Extended Tc_Layer Options
+//			Extended TC-layer options: This attribute is meaningful in ITU-T G.984 systems only. It is a bit
+//			map that defines whether the ONU supports (1) or does not support (0) various optional TC-layer
+//			capabilities of [ITU-T G.984.3]. Bits are assigned as follows.
+//
+//			Bit	Meaning
+//
+//			1 (LSB)	Annex C  of [ITU-T G.984.3], PON-ID maintenance.
+//
+//			2	Annex D of [ITU-T G.984.3], PLOAM channel enhancements: swift_POPUP and Ranging_adjustment
+//			messages.
+//
+//			3..16	Reserved
+//
+//			(R) (optional) (2-bytes)
+//
+type OnuG struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	onugBME = &ManagedEntityDefinition{
+		Name:    "OnuG",
+		ClassID: 256,
+		MessageTypes: mapset.NewSetWith(
+			Get,
+			Reboot,
+			Set,
+			SynchronizeTime,
+			Test,
+		),
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewOnuG (class ID 256) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewOnuG(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*onugBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/onu2-g.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/onu2-g.go
new file mode 100644
index 0000000..6ee350e
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/onu2-g.go
@@ -0,0 +1,255 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// Onu2GClassID is the 16-bit ID for the OMCI
+// Managed entity ONU2-G
+const Onu2GClassID = ClassID(257) // 0x0101
+
+var onu2gBME *ManagedEntityDefinition
+
+// Onu2G (Class ID: #257 / 0x0101)
+//	This ME contains additional attributes associated with a PON ONU. The ONU automatically creates
+//	an instance of this ME. Its attributes are populated according to data within the ONU itself.
+//
+//	This ME is the same as the ONT2-G of [ITUT G.984.4], with extensions.
+//
+//	Relationships
+//		This ME is paired with the ONU-G entity.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. There is only one instance, number
+//			0. (R) (mandatory) (2-bytes)
+//
+//		Equipment Id
+//			This attribute may be used to identify the specific type of ONU. In some environments, this
+//			attribute may include the common language equipment identification (CLEI) code. (R) (optional)
+//			(20-bytes)
+//
+//		Optical Network Unit Management And Control Channel Omcc Version
+//			0xA3	ITU-T G.988 (2012). Baseline message set only
+//
+//			0xB0	ITU-T G.988 (2010). Baseline and extended message set
+//
+//			0xB1	ITU-T G.988 Amd.1 (2011). Baseline and extended message set
+//
+//			0xB2	ITU-T G.988 Amd.2 (2012). Baseline and extended message set
+//
+//			0xB3	ITU-T G.988 (2012). Baseline and extended message set
+//
+//			0xB4	ITU-T G.988 Amd1 (2014) Baseline and extended message set
+//
+//			0xB5	Do not use
+//
+//			(R) (mandatory) (1-byte)
+//
+//			Optical network unit management and control channel (OMCC) version: This attribute identifies
+//			the version of the OMCC protocol being used by the ONU. This allows the OLT to manage a network
+//			with ONUs that support different OMCC versions. Release levels of [ITUT G.984.4] are supported
+//			with code points of the form 0x8y and 0x9y, where y is a hexadecimal digit in the range 0..F.
+//			Support for continuing revisions of this Recommendation is defined in the 0xAy and OxBy range.
+//
+//			NOTE 1 - The complete list of managed entities supported by an ONU cannot be derived from the
+//			OMCC version attribute. Refer to other ITUT-G.988 OMCI mechanisms for deriving this information
+//			(clause I.1.1.1 which describes the use of clauses 9.12.9 Managed entity and 9.12.10 Attribute
+//			ME for retrieval of ITU-T G.988 supported ME, and clause I.1.2 for discovering the ONU hardware
+//			and service configuration of the ONU through MIB uploads.)
+//
+//			NOTE 2 -  0xBz values greater than B5 are reserved to report new ITUT-G.988 Annex A message
+//			versions (relative to ITU-T G.988 (2014) Amd1).
+//
+//			0x80	ITU-T G.984.4 (06/04)
+//
+//			NOTE - For historical reasons, this code point may also appear in ONUs that support later
+//			versions of [ITU-T G.984.4].
+//
+//			0x81	ITU-T G.984.4 2004 Amd.1 (06/05)
+//
+//			0x82	ITU-T G.984.4 2004 Amd.2 (03/06)
+//
+//			0x83	ITU-T G.984.4 2004 Amd.3 (12/06)
+//
+//			0x84	ITU-T G.984.4 2008 (02/08)
+//
+//			0x85	ITU-T G.984.4 2008 Amd.1 (06/09)
+//
+//			0x86	ITU-T G.984.4 2008 Amd.2 (2009). Baseline message set only, without the extended message
+//			set option
+//
+//			0x96	ITU-T G.984.4 2008 Amd.2 (2009). Extended message set option, in addition to the baseline
+//			message set.
+//
+//			0xA0	ITU-T G.988 (2010). Baseline message set only, without the extended message set option
+//
+//			0xA1	ITU-T G.988 Amd.1 (2011). Baseline message set only
+//
+//			0xA2	ITU-T G.988 Amd.2 (2012). Baseline message set only
+//
+//		Vendor Product Code
+//			This attribute contains a vendor-specific product code for the ONU. (R) (optional) (2-bytes)
+//
+//		Security Capability
+//			This attribute advertises the security capabilities of the ONU. The following code points are
+//			defined:
+//
+//			0	Reserved
+//
+//			1	Advanced encryption standard-128 (AES-128) payload encryption supported
+//
+//			2..255	Reserved
+//
+//			(R) (mandatory) (1-byte)
+//
+//		Security Mode
+//			This attribute specifies the current security mode of the ONU. All secure GEM ports in an ONU
+//			must use the same security mode at any given time. The following code points are defined:
+//
+//			0	Reserved
+//
+//			1	AES-128 algorithm
+//
+//			2..255	Reserved
+//
+//			Upon ME instantiation, the ONU sets this attribute to 1, AES-128. Attribute value 1 does not
+//			imply that any channels are encrypted; that process is negotiated at the PLOAM layer. It only
+//			signifies that the advanced encryption standard (AES) with 128-bit keys is the security mode to
+//			be used on any channels that the OLT may choose to encrypt. (R,-W) (mandatory) (1-byte)
+//
+//		Total Priority Queue Number
+//			This attribute reports the total number of upstream priority queues that are not associated with
+//			a circuit pack, but with the ONU in its entirety. Upon ME instantiation, the ONU sets this
+//			attribute to the value that represents its capabilities. (R) (mandatory) (2-bytes)
+//
+//		Total Traffic Scheduler Number
+//			This attribute reports the total number of traffic schedulers that are not associated with a
+//			circuit pack, but with the ONU in its entirety. The ONU supports null function, strict priority
+//			scheduling and weighted round robin (WRR) from the priority control and guarantee of minimum
+//			rate control points of view, respectively. If the ONU has no global traffic schedulers, this
+//			attribute is 0. (R) (mandatory) (1-byte)
+//
+//		Deprecated
+//			This attribute should always be set to 1 by the ONU and ignored by the OLT. (R) (mandatory)
+//			(1-byte)
+//
+//		Total Gem Port_Id Number
+//			Total GEM port-ID number: This attribute reports the total number of GEM port-IDs supported by
+//			the ONU. The maximum value is specified in the corresponding TC recommendations. Upon ME
+//			instantiation, the ONU sets this attribute to the value that represents its capabilities. (R)
+//			(optional) (2-bytes)
+//
+//		Sysuptime
+//			This attribute counts 10 ms intervals since the ONU was last initialized. It rolls over to 0
+//			when full (see [IETF RFC 1213]). (R) (optional) (4-bytes)
+//
+//		Connectivity Capability
+//			This attribute indicates the Ethernet connectivity models that the ONU can support. The value 0
+//			indicates that the capability is not supported; 1 signifies support. The following code points
+//			are defined.
+//
+//			NOTE 1 - It is not implied that an ONU may not support other connectivity models.
+//
+//			(R) (optional) (2 bytes)
+//
+//		Current Connectivity Mode
+//			(R, W) (optional) (1 byte)
+//
+//			This attribute specifies the Ethernet connectivity model that the OLT wishes to use. The
+//			following code points are defined.
+//
+//			NOTE 2 - It is not implied that an ONU supports a given connectivity model only when that model
+//			is explicitly selected by this attribute. The ONU is free to support additional models at any
+//			and all times.
+//
+//		Quality Of Service Qos Configuration Flexibility
+//			Quality of service (QoS) configuration flexibility: This attribute reports whether various MEs
+//			in the ONU are fixed by the ONU's architecture or whether they are configurable. For backward
+//			compatibility, and if the ONU does not support this attribute, all such attributes are
+//			understood to be hard-wired. (R) (optional) (2-bytes)
+//
+//			Discussion:
+//
+//			To allow for the possibility that the OLT does not support flexible configuration, the ONU
+//			vendor must assure that the priority queues and traffic schedulers are configured in a
+//			meaningful and useful way by factory default, and that this default configuration is restored
+//			upon ONU initialization and MIB reset. The specifics of such a configuration are beyond the
+//			scope of this Recommendation.
+//
+//			The ME ID of both the T-CONT and traffic scheduler contains a slot number. Even when attributes
+//			in the above list are RW, it is never permitted to change the slot number in a reference. That
+//			is, configuration flexibility never extends across slots. It is also not permitted to change the
+//			directionality of an upstream queue to downstream or vice versa.
+//
+//		Priority Queue Scale Factor
+//			If this optional attribute is implemented, it specifies the scale factor of several attributes
+//			of the priority queue ME of clause-9.2.10. The default value of this attribute is 1. (R, W)
+//			(optional) (2-bytes)
+//
+//			NOTE 3 - Some legacy implementations may take the queue scale factor from the GEM block length
+//			attribute of the ANI-G ME. That option is discouraged in new implementations.
+//
+type Onu2G struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	onu2gBME = &ManagedEntityDefinition{
+		Name:    "Onu2G",
+		ClassID: 257,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewOnu2G (class ID 257) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewOnu2G(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*onu2gBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/onu3-g.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/onu3-g.go
new file mode 100644
index 0000000..3e156b6
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/onu3-g.go
@@ -0,0 +1,163 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// Onu3GClassID is the 16-bit ID for the OMCI
+// Managed entity ONU3-G
+const Onu3GClassID = ClassID(441) // 0x01b9
+
+var onu3gBME *ManagedEntityDefinition
+
+// Onu3G (Class ID: #441 / 0x01b9)
+//	This ME contains additional attributes and alarms associated with a PON ONU. The ONU
+//	automatically creates an instance of this ME. Its attributes are populated according to data
+//	within the ONU itself.
+//
+//	Upon instantiation of this ME, the Total number of status snapshots S, the Number of valid
+//	status snapshots M, and Next status snapshot index K are populated from the non-volatile memory.
+//	If the non-volatile memory values are not available (e.g., at the initialization of an off-the-
+//	shelf ONU), the Total number of status snapshots attribute is set to the maximum size of the
+//	status snapshot record table the ONU can maintain, which is a static capability parameter, while
+//	both the Number of valid status snapshots and the Next status snapshot index attributes are set
+//	to zero.
+//
+//	The Status snapshot record table is implemented as a circular buffer containing up to S records
+//	of size N. The size and format of the snapshot record are vendor-specific. Each time the ONU
+//	takes and stores a status snapshot, it increments the Number of valid status snapshots M,
+//	saturating at S, and increments Next status snapshot index K in modulo S:
+//
+//	K := (K-+ 1)mod S.
+//
+//	By writing into the Snap action attribute, the OLT instructs the ONU to immediately take a
+//	status snapshot and to store it in the Status snapshot table. By writing into Reset action
+//	attribute, the OLT instructs the ONU to erase the Status snapshot record table. The OLT uses the
+//	AVC indication of the Next status snapshot index and Number of valid status snapshots attributes
+//	to confirm that its instructions have been executed by the ONU. If the OLT has issued no Snap
+//	action instructions, a change in the value of Next status snapshot index attributes between two
+//	consecutive reads indicates that a condition has arisen that has caused the ONU to record a
+//	status snapshot.
+//
+//	Two table attributes, the Status snapshot record table, and the Most recent status snapshot,
+//	provide the OLT access to the status snapshot records. The former allows the entire Status
+//	snapshot record table to be retrieved, the latter provides quick access to the latest snapshot
+//	record.
+//
+//	By performing the Get operation on the Most recent status snapshot, the OLT can obtain the
+//	vendor-specific size of an individual snapshot record. The OLT is expected to pass the status
+//	snapshot records transparently, without parsing or interpreting them.
+//
+//	Relationships
+//		This ME is associated with the ONU-G ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. There is only one instance, number
+//			0. (R) (mandatory) (2-bytes)
+//
+//		Flash Memory Performance Value
+//			A number in the range from 0 to 100 that characterizes the condition of the flash memory, with 0
+//			representing factory fresh device, 100 representing end of life. This attribute is vendor-
+//			specific and should be calculated at the discretion of the vendor. (R) (optional) (1-byte)
+//
+//		Latest Restart Reason
+//			The following code points are defined:
+//
+//		Total Number Of Status Snapshots
+//			The maximum size S of the status snapshot record table. (R) (mandatory) (2-bytes)
+//
+//		Number Of Valid Status Snapshots
+//			The number M of valid status snapshot records. (R) (mandatory) (2-bytes)
+//
+//		Next Status Snapshot Index
+//			This attribute identifies the index (ranging from 0 to S-- 1) of the next snapshot record to be
+//			taken in the snapshot record table. (R,) (mandatory) (2-bytes)
+//
+//		Status Snapshot Record Table
+//			The table of M status snapshot records. The size N and format of the snapshot record is vendor
+//			dependent. (R) (mandatory) (MxN-bytes)
+//
+//		Snap Action
+//			Once the OLT writes this attribute, the ONU takes and records an urgent snapshot without
+//			shutting down the transceiver. (W) (mandatory) (1-byte)
+//
+//		Most Recent Status Snapshot
+//			This attribute provides access to the most recently taken status snapshot record. (R)
+//			(mandatory) (N-bytes)
+//
+//		Reset Action
+//			Once the OLT writes this attribute, the ONU sets the Number of valid status snapshots and Next
+//			status snapshot index attributes to zero. (W) (mandatory) (1-byte)
+//
+//		Enhanced Mode
+//			The Boolean value true specifies the Enhanced received frame classification and processing table
+//			is supported by the Extended VLAN tagging operation configuration ME. The value false indicates
+//			the Enhanced received frame classification and processing table is not supported. (R) (optional)
+//			(1-byte)
+//
+type Onu3G struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	onu3gBME = &ManagedEntityDefinition{
+		Name:    "Onu3G",
+		ClassID: 441,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Flash memory performance yellow",
+			1: "Flash memory performance red",
+			2: "Loss of redundant power supply",
+			3: "Loss of redundant power feed",
+			4: "Ground Fault",
+		},
+	}
+}
+
+// NewOnu3G (class ID 441) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewOnu3G(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*onu3gBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/onudata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/onudata.go
new file mode 100644
index 0000000..4e22678
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/onudata.go
@@ -0,0 +1,89 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// OnuDataClassID is the 16-bit ID for the OMCI
+// Managed entity ONU data
+const OnuDataClassID = ClassID(2) // 0x0002
+
+var onudataBME *ManagedEntityDefinition
+
+// OnuData (Class ID: #2 / 0x0002)
+//	This ME models the MIB itself. Clause I.1.3 explains the use of this ME with respect to MIB
+//	synchronization.
+//
+//	The ONU automatically creates an instance of this ME, and updates the associated attributes
+//	according to data within the ONU itself.
+//
+//	Relationships
+//		One instance of this ME is contained in an ONU.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. There is only one instance, number
+//			0. (R) (mandatory) (2-bytes)
+//
+//		Mib Data Sync
+//			This attribute is used to check the alignment of the MIB of the ONU with the corresponding MIB
+//			in the OLT. MIB data sync relies on this attribute, which is a sequence number that can be
+//			checked by the OLT to see if the MIB snapshots for the OLT and ONU match. Refer to clause
+//			I.1.2.1 for a detailed description of this attribute. Upon ME instantiation, the ONU sets this
+//			attribute to 0. (R,-W) (mandatory) (1-byte)
+//
+type OnuData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	onudataBME = &ManagedEntityDefinition{
+		Name:    "OnuData",
+		ClassID: 2,
+		MessageTypes: mapset.NewSetWith(
+			Get,
+			GetAllAlarms,
+			GetAllAlarmsNext,
+			MibReset,
+			MibUpload,
+			MibUploadNext,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewOnuData (class ID 2) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewOnuData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*onudataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/onudynamicpowermanagementcontrol.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/onudynamicpowermanagementcontrol.go
new file mode 100644
index 0000000..ebb2f39
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/onudynamicpowermanagementcontrol.go
@@ -0,0 +1,189 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// OnuDynamicPowerManagementControlClassID is the 16-bit ID for the OMCI
+// Managed entity ONU dynamic power management control
+const OnuDynamicPowerManagementControlClassID = ClassID(336) // 0x0150
+
+var onudynamicpowermanagementcontrolBME *ManagedEntityDefinition
+
+// OnuDynamicPowerManagementControl (Class ID: #336 / 0x0150)
+//	This ME models the ONU's ability to enter power conservation modes in cooperation with the OLT
+//	in an ITU-T G.987 system. [ITUT G.987.3] originally specified two alternative modes, doze and
+//	cyclic sleep. The subsequent revision of [ITUT G.987.3] simplified the specification providing a
+//	single power conservation mode, watchful sleep.
+//
+//	An ONU that supports power conservation modes automatically creates an instance of this ME.
+//
+//	Relationships
+//		One instance of this ME is associated with the ONU ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. There is only one instance, number
+//			0. (R) (mandatory) (2-bytes)
+//
+//		Power Reduction Management Capability
+//			This attribute declares the ONU's support for managed power conservation modes, as defined in
+//			[ITUT G.987.3]. It is a bit map in which the bit value 0 indicates no support for the specified
+//			mode, while the bit value 1 indicates that the ONU does support the specified mode. (R)
+//			(mandatory) (1-byte)
+//
+//			Codepoints are assigned as follows:
+//
+//			Value	Meaning
+//
+//			0	No support for power reduction
+//
+//			1	Doze mode supported
+//
+//			2	Cyclic sleep mode supported
+//
+//			3	Both doze and cyclic sleep modes supported
+//
+//			4	Watchful sleep mode supported
+//
+//			5..255	Reserved
+//
+//		Power Reduction Management Mode
+//			This attribute enables one or more of the ONU's managed power conservation modes. It is a bit
+//			map in which the bit value 0 disables the mode, while the value 1 enables the mode. Bit
+//			assignments are the same as those of the power reduction management capability attribute. The
+//			default value of each bit is 0. (R,-W) (mandatory) (1-byte)
+//
+//		Itransinit
+//			This attribute is the ONU vendor's statement of the complete transceiver initialization time:
+//			the worst-case time required for the ONU to regain full functionality when leaving the asleep
+//			state in cyclic sleep mode or low-power state in watchful sleep mode (i.e., turning on both the
+//			receiver and the transmitter and acquiring synchronization to the downstream flow), measured in
+//			units of 125-us frames. The value zero indicates that the sleeping ONU can respond to a
+//			bandwidth grant without delay. (R) (mandatory) (2-bytes)
+//
+//		Itxinit
+//			This attribute is the ONU vendor's statement of the transmitter initialization time: the time
+//			required for the ONU to regain full functionality when leaving the listen state (i.e., turning
+//			on the transmitter), measured in units of 125-us frames. The value zero indicates that the
+//			dozing ONU can respond to a bandwidth grant without delay. If watchful sleep is enabled, the ONU
+//			ignores this attribute. (R) (mandatory) (2 bytes)
+//
+//		Maximum Sleep Interval
+//			The Isleep/Ilowpower attribute specifies the maximum time the ONU spends in its asleep, listen,
+//			or low-power states, as a count of 125-us frames. Local or remote events may truncate the ONU's
+//			sojourn in these states. The default value of this attribute is 0. (R,-W) (mandatory) (4-bytes)
+//
+//		Maximum Receiver_Off Interval
+//			Maximum receiver-off interval: The Irxoff attribute specifies the maximum time the OLT can
+//			afford to wait from the moment it decides to wake up an ONU in the low-power state of the
+//			watchful sleep mode until the ONU is fully operational, specified as a count of 125-us frames.
+//			(R,-W) (mandatory) (4-bytes)
+//
+//		Minimum Aware Interval
+//			The Iaware attribute specifies the time the ONU spends in its aware state, as a count of 125-us
+//			frames, before it re-enters asleep or listen states. Local or remote events may independently
+//			cause the ONU to enter an active state rather than returning to a sleep state. The default value
+//			of this attribute is 0. (R,-W) (mandatory) (4-bytes)
+//
+//		Minimum Active Held Interval
+//			The Ihold attribute specifies the minimum time during which the ONU remains in the active held
+//			state, as a count of 125-us frames. Its initial value is zero. (R, W) (mandatory) (2-bytes)
+//
+//		Maximum Sleep Interval Extension
+//			Maximum sleep interval for doze mode specifies the maximum time the ONU spends in its listen
+//			state, as a count of 125-us frames. Local or remote events may truncate the ONU's sojourn in
+//			these states. The default value is 0.
+//
+//			Maximum sleep interval for cyclic sleep mode specifies the maximum time the ONU spends in its
+//			asleep state, as a count of 125-us frames. Local or remote events may truncate the ONU's sojourn
+//			in these states. The default value is 0. If watchful sleep is enabled, the ONU ignores this
+//			attribute.
+//
+//			(R,-W) (optional) (8-bytes)
+//
+//			This attribute designates maximum sleep interval values for doze mode and cyclic sleep mode
+//			separately. When it supports this attribute, the ONU ignores the value of the maximum sleep
+//			interval attribute.
+//
+//			Maximum sleep interval for doze mode	4-bytes
+//
+//			Maximum sleep interval for cyclic sleep mode	4-bytes
+//
+//		Ethernet Passive Optical Network Epon Capability Extension
+//			Ethernet passive optical network (EPON) capability extension: This attribute declares EPON-
+//			specific capabilities for the dynamic power management control.
+//
+//			Bits are assigned as follows.
+//
+//		Epon Setup Extension
+//			The bits are assigned as follows.
+//
+//			This attribute specifies EPON specific configurations for the dynamic power management control.
+//
+//		Missing Consecutive Bursts Threshold
+//			The Clobi attribute specifies the maximum number of missing consecutive scheduled bursts from
+//			the ONU that the OLT is willing to tolerate without raising an alarm. The value of this
+//			attribute defaults to 4. (R,-W) (mandatory) (4-bytes)
+//
+type OnuDynamicPowerManagementControl struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	onudynamicpowermanagementcontrolBME = &ManagedEntityDefinition{
+		Name:    "OnuDynamicPowerManagementControl",
+		ClassID: 336,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewOnuDynamicPowerManagementControl (class ID 336) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewOnuDynamicPowerManagementControl(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*onudynamicpowermanagementcontrolBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/onumanufacturingdata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/onumanufacturingdata.go
new file mode 100644
index 0000000..8e01750
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/onumanufacturingdata.go
@@ -0,0 +1,108 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// OnuManufacturingDataClassID is the 16-bit ID for the OMCI
+// Managed entity ONU manufacturing data
+const OnuManufacturingDataClassID = ClassID(456) // 0x01c8
+
+var onumanufacturingdataBME *ManagedEntityDefinition
+
+// OnuManufacturingData (Class ID: #456 / 0x01c8)
+//	This ME contains additional manufacturing attributes associated with a PON ONU. The
+//	manufacturing data is expected to match the content of an ONU label. The ONU automatically
+//	creates an instance of this ME. Its attributes are populated according to data within the ONU
+//	itself.
+//
+//	Relationships
+//		This ME is paired with the ONU-G entity.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. There is only one instance, number
+//			0. (R) (mandatory) (2-bytes)
+//
+//		Manufacturer Name
+//			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)
+//
+//		Model Name
+//			This attribute contains the vendor specific model name identifier string. The preferred value is
+//			the customer-visible part number which may be printed on the component itself. (R) (optional)
+//			(25 bytes)
+//
+//		Manufacturing Date
+//			This attribute contains the date of manufacturer of this physical ONU. The preferred value is
+//			the date of the manufacturer printed on the ONU itself (if present). (R) (optional) (25 bytes)
+//
+//		Hardware_Revision
+//			Hardware-revision: This attribute contains the hardware revision of this physical ONU. The
+//			preferred value is the hardware revision printed on the ONU itself (if present). (R) (optional)
+//			(25 bytes)
+//
+//		Firmware_Revision
+//			Firmware-revision: This attribute contains the vendor specific firmware revision of this
+//			physical ONU. (R) (optional) (25 bytes)
+//
+type OnuManufacturingData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	onumanufacturingdataBME = &ManagedEntityDefinition{
+		Name:    "OnuManufacturingData",
+		ClassID: 456,
+		MessageTypes: mapset.NewSetWith(
+			Get,
+		),
+		AllowedAttributeMask: 0xfc00,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewOnuManufacturingData (class ID 456) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewOnuManufacturingData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*onumanufacturingdataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/onupowershedding.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/onupowershedding.go
new file mode 100644
index 0000000..e791ace
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/onupowershedding.go
@@ -0,0 +1,163 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// OnuPowerSheddingClassID is the 16-bit ID for the OMCI
+// Managed entity ONU power shedding
+const OnuPowerSheddingClassID = ClassID(133) // 0x0085
+
+var onupowersheddingBME *ManagedEntityDefinition
+
+// OnuPowerShedding (Class ID: #133 / 0x0085)
+//	This ME models the ONU's ability to shed services when the ONU goes into battery operation mode
+//	after AC power failure. Shedding classes are defined in the following table, which may span
+//	multiple circuit pack types. This feature works in conjunction with the power shed override
+//	attribute of the circuit pack ME, which can selectively prevent power shedding of priority
+//	ports.
+//
+//	An ONU that supports power shedding automatically creates an instance of this ME.
+//
+//	The following table defines the binding of shedding class and PPTP type. The coding is taken
+//	from Table 9.1.5-1. In the case of hybrid circuit pack types, multiple shedding classes may
+//	affect a circuit pack if the hardware is capable of partial power shedding.
+//
+//	An ONU may choose to model its ports with the port-mapping package of clause 9.1.8, rather than
+//	with real or virtual circuit packs. In this case, power shedding pertains to individual PPTPs
+//	(listed in column 2 of the table).
+//
+//	Relationships
+//		One instance of this ME is associated with the ONU ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. There is only one instance, number
+//			0. (R) (mandatory) (2-bytes)
+//
+//		Restore Power Timer Reset Interval
+//			The time delay, in seconds, before resetting the power-shedding timers after full power
+//			restoration. Upon ME instantiation, the ONU sets this attribute to 0. (R,-W) (mandatory)
+//			(2-bytes)
+//
+//			For each class of service (CoS), an interval attribute is defined below. The value 0 disables
+//			power shedding, while the value 1 enables immediate power shedding, i.e., as soon as AC power
+//			fails. Other values specify the time, in seconds, to keep the service active after AC failure
+//			before shutting them down and shedding power. Upon ME instantiation, the ONU sets each of the
+//			interval attributes to 0.
+//
+//		Data Class Shedding Interval
+//			(R,-W) (mandatory) (2-bytes)
+//
+//		Voice Class Shedding Interval
+//			This attribute only pertains to voice services that terminate on the ONU and are under the
+//			management control of the OMCI. 	(R,-W) (mandatory) (2-bytes)
+//
+//		Video Overlay Class Shedding Interval
+//			(R,-W) (mandatory) (2-bytes)
+//
+//		Video Return Class Shedding Interval
+//			(R,-W) (mandatory) (2-bytes)
+//
+//		Digital Subscriber Line Class Shedding Interval
+//			Digital subscriber line (DSL) class shedding interval:	(R,-W) (mandatory) (2-bytes)
+//
+//		Atm Class Shedding Interval
+//			(R,-W) (mandatory) (2-bytes)
+//
+//		Ces Class Shedding Interval
+//			(R,-W) (mandatory) (2-bytes)
+//
+//		Frame Class Shedding Interval
+//			(R,-W) (mandatory) (2-bytes)
+//
+//		Sdh_Sonet Class Shedding Interval
+//			Sdh-sonet class shedding interval:	(R,-W) (mandatory) (2-bytes)
+//
+//		Shedding Status
+//			Binary indication of power-shedding status for each shedding class. If this 2 byte field is
+//			depicted 0b ABCD EFGH IJKL MNOP, its bits are assigned as follows-
+//
+//			A	Data class
+//
+//			B	Voice class
+//
+//			C	Video overlay class
+//
+//			D	Video return class
+//
+//			E	DSL class
+//
+//			F	ATM class
+//
+//			G	CES class
+//
+//			H	Frame class
+//
+//			I	Sdh-sonet class
+//
+//			J..P	Reserved and set to 0
+//
+//			The ONU sets each bit to 1 when power shedding is active, and clears it to 0 when the service is
+//			restored. (R) (optional) (2-bytes)
+//
+type OnuPowerShedding struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	onupowersheddingBME = &ManagedEntityDefinition{
+		Name:    "OnuPowerShedding",
+		ClassID: 133,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewOnuPowerShedding (class ID 133) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewOnuPowerShedding(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*onupowersheddingBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/onuremotedebug.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/onuremotedebug.go
new file mode 100644
index 0000000..5a242ac
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/onuremotedebug.go
@@ -0,0 +1,100 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// OnuRemoteDebugClassID is the 16-bit ID for the OMCI
+// Managed entity ONU remote debug
+const OnuRemoteDebugClassID = ClassID(158) // 0x009e
+
+var onuremotedebugBME *ManagedEntityDefinition
+
+// OnuRemoteDebug (Class ID: #158 / 0x009e)
+//	This ME is used to send vendor-specific debug commands to the ONU and receive vendor-specific
+//	replies back for processing on the OLT. This allows for the remote debugging of an ONU that may
+//	not be accessible by other means. The command format may have two modes, one being text and the
+//	other free format. In text format, both the command and reply are ASCII strings, but are
+//	otherwise unconstrained. In free format, the content and format of command and reply are vendor-
+//	specific.
+//
+//	An ONU that supports remote debugging automatically creates an instance of this ME. It is not
+//	reported during an MIB upload.
+//
+//	Relationships
+//		One instance of this ME is associated with the ONU ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. There is only one instance, number
+//			0. (R) (mandatory) (2-bytes)
+//
+//		Command Format
+//			This attribute defines the format of the command and reply attributes. The value 0 defines ASCII
+//			string format, while 1 specifies free format. (R) (mandatory) (1-byte)
+//
+//		Command
+//			This attribute is used to send a command to the ONU. The format of the command is defined by the
+//			command format. If the format is ASCII string, the command should be null terminated unless the
+//			string is exactly 25-bytes long. The action of setting this attribute should trigger the ONU to
+//			discard any previous command reply information and execute the current debugging command. (W)
+//			(mandatory) (25-bytes)
+//
+//		Reply Table
+//			This attribute is used to pass reply information back to the OLT. Its format is defined by the
+//			command format attribute. The get, get next action sequence must be used with this attribute,
+//			since its size is unspecified. (R) (mandatory) (N bytes)
+//
+type OnuRemoteDebug struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	onuremotedebugBME = &ManagedEntityDefinition{
+		Name:    "OnuRemoteDebug",
+		ClassID: 158,
+		MessageTypes: mapset.NewSetWith(
+			Get,
+			GetNext,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewOnuRemoteDebug (class ID 158) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewOnuRemoteDebug(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*onuremotedebugBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/onutimeconfiguration.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/onutimeconfiguration.go
new file mode 100644
index 0000000..7f25731
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/onutimeconfiguration.go
@@ -0,0 +1,87 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// OnuTimeConfigurationClassID is the 16-bit ID for the OMCI
+// Managed entity ONU time configuration
+const OnuTimeConfigurationClassID = ClassID(457) // 0x01c9
+
+var onutimeconfigurationBME *ManagedEntityDefinition
+
+// OnuTimeConfiguration (Class ID: #457 / 0x01c9)
+//	This ME provides characterization and manipulation of OLT timestamp information. An ONU that
+//	uses OLTbased time synchronization methods automatically creates an instance of this ME. There
+//	is no intention that this ME be used to establish a precise time of day reference.
+//
+//	Relationships
+//		The single instance of this ME is associated with the ONU ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. There is only one instance, number
+//			0. (R) (mandatory) (2 bytes)
+//
+//		Current Local Onu Time
+//			If the ONU has a real-time clock, it returns the local ONU time. This attribute returns the
+//			current ONU time. The local ONU time and synchronize time time-format is the same. (R)
+//			(mandatory) (7 bytes)
+//
+//		Time Qualification Block
+//			This attribute describes the time-qualification to be applied to the ONU RTC local time. The
+//			following fields are supported:
+//
+//			(R, W) (mandatory) (2 bytes)
+//
+type OnuTimeConfiguration struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	onutimeconfigurationBME = &ManagedEntityDefinition{
+		Name:    "OnuTimeConfiguration",
+		ClassID: 457,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewOnuTimeConfiguration (class ID 457) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewOnuTimeConfiguration(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*onutimeconfigurationBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/physicalpathterminationpointcesuni.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/physicalpathterminationpointcesuni.go
new file mode 100644
index 0000000..a863363
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/physicalpathterminationpointcesuni.go
@@ -0,0 +1,276 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// PhysicalPathTerminationPointCesUniClassID is the 16-bit ID for the OMCI
+// Managed entity Physical path termination point CES UNI
+const PhysicalPathTerminationPointCesUniClassID = ClassID(12) // 0x000c
+
+var physicalpathterminationpointcesuniBME *ManagedEntityDefinition
+
+// PhysicalPathTerminationPointCesUni (Class ID: #12 / 0x000c)
+//	This ME represents the point at a CES UNI in the ONU where the physical path terminates and
+//	physical level functions are performed.
+//
+//	The ONU automatically creates an instance of this ME per port:
+//
+//	o	when the ONU has CES ports built into its factory configuration;
+//
+//	o	when a cardholder is provisioned to expect a circuit pack of a CES type;
+//
+//	o	when a cardholder provisioned for plug-and-play is equipped with a circuit pack of a CES type.
+//	Note that the installation of a plug-and-play card may indicate the presence of CES ports via
+//	equipment ID as well as its type and indeed may cause the ONU to instantiate a port-mapping
+//	package that specifies CES ports.
+//
+//	The ONU automatically deletes instances of this ME when a cardholder is neither provisioned to
+//	expect a CES circuit pack, nor is it equipped with a CES circuit pack.
+//
+//	Relationships
+//		An instance of this ME is associated with each real or pre-provisioned CES port. It can be
+//		linked from a GEM IW TP, a pseudowire TP or a logical N * 64 kbit/s CTP.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. This 2 byte number indicates the
+//			physical position of the UNI. The first byte is the slot ID (defined in clause 9.1.5). The
+//			second byte is the port ID, with the range 1..255. (R) (mandatory) (2-bytes)
+//
+//		Expected Type
+//			1 to 254	One of the values from Table-9.1.5-1 that is compatible with a CES circuit pack
+//
+//			Upon ME instantiation, the ONU sets this attribute to 0. (R,-W) (mandatory) (1-byte)
+//
+//			The following coding is used for this attribute-
+//
+//			0	Autosense
+//
+//		Sensed Type
+//			If the value of expected type is not 0, then the value of sensed type equals the value of
+//			expected type. If expected type-= 0, then the value of sensed type is one of the compatible
+//			values from Table-9.1.5-1. Upon ME instantiation, the ONU sets this attribute to 0 or to the
+//			value that reflects the physically present equipment. (R) (mandatory if the ONU supports circuit
+//			packs with configurable interface types, e.g., C1.5/2/6.3) (1-byte)
+//
+//		Ces Loopback Configuration
+//			This attribute specifies and reports the loopback configuration of the physical interface.
+//
+//			0	No loopback
+//
+//			1	Payload loopback
+//
+//			2	Line loopback
+//
+//			3	Operations system-directed (OS-directed) loopback 1 (loopback from/to PON side)
+//
+//			4	OS-directed loopback 2 (loopback from/to CES UNI side)
+//
+//			5	OS-directed loopback 3 (loopback of both PON side and CES UNI side)
+//
+//			6	Manual button-directed loopback [read only (RO)]
+//
+//			7	Network-side code inband-directed loopback (RO)
+//
+//			8	SmartJack-directed loopback (RO)
+//
+//			9	Network-side code inband-directed loopback (armed; RO)
+//
+//			10	Remote-line loopback via facility data link (FDL)
+//
+//			11	Remote-line loopback via inband code
+//
+//			12	Remote-payload loopback
+//
+//			Upon ME instantiation, the ONU sets this attribute to 0. (R,-W) (mandatory) (1-byte)
+//
+//		Administrative State
+//			This attribute locks (1) and unlocks (0) the functions performed by this ME. Administrative
+//			state is further described in clause A.1.6. (R,-W) (mandatory) (1-byte)
+//
+//		Operational State
+//			This attribute indicates whether the ME is capable of performing its function. Valid values are
+//			enabled (0) and disabled (1). (R) (optional) (1-byte)
+//
+//		Framing
+//			6	Basic framing with CRC-4: clause 2.3.3 of [ITU-T G.704]
+//
+//			7	Basic framing with TS16 multiframe
+//
+//			8	Basic framing with CRC-4 and TS16 multiframe
+//
+//			Upon ME instantiation, the ONU sets this attribute to a value that reflects the vendor's
+//			default. (R,-W) (optional) (1-byte)
+//
+//			This attribute specifies the framing structure.
+//
+//			These code points are for use with DS1 services. Code point 2 may also be used for an unframed
+//			E1 service.
+//
+//			0	Extended superframe
+//
+//			1	Superframe
+//
+//			2	Unframed
+//
+//			3	ITUT-G.704
+//
+//			NOTE - [ITUT G.704] describes both SF and ESF framing for DS1 signals. This code point is
+//			retained for backward compatibility, but its meaning is undefined.
+//
+//			4	JT-G.704
+//
+//			The following code points are for use with E1 services.
+//
+//			5	Basic framing: clause 2.3.2 of [ITU-T G.704]
+//
+//		Encoding
+//			This attribute specifies the line coding scheme. Valid values are as follows.
+//
+//			0	B8ZS
+//
+//			1	AMI
+//
+//			2	HDB3
+//
+//			3	B3ZS
+//
+//			Upon ME instantiation, the ONU sets this attribute to 0. (R,-W) (mandatory for DS1 and DS3
+//			interfaces) (1-byte)
+//
+//		Line Length
+//			This attribute specifies the length of the twisted pair cable from a DS1 physical UNI to the
+//			DSX-1 cross-connect point or the length of coaxial cable from a DS3 physical UNI to the DSX-3
+//			cross-connect point. Valid values are given in Table 9.8.1-1. Upon ME instantiation for a DS1
+//			interface, the ONU assigns the value 0 for non-power feed type DS1 and the value 6 for power
+//			feed type DS1. Upon ME instantiation for a DS3 interface, the ONU sets this attribute to 0x0F.
+//			(R,-W) (optional) (1-byte)
+//
+//		Ds1 Mode
+//			This attribute specifies the mode of a DS1. Valid values are as follows.
+//
+//			In the event of conflicting values between this attribute and the (also optional) line length
+//			attribute, the line length attribute is taken to be valid. This permits the separation of line
+//			build-out (LBO) and power settings from smart jack and FDL behaviour. Upon ME instantiation, the
+//			ONU sets this attribute to 0. (R,-W) (optional) (1-byte)
+//
+//		Arc
+//			See clause A.1.4.3. (R,-W) (optional) (1-byte)
+//
+//		Arc Interval
+//			See clause A.1.4.3. (R,-W) (optional) (1-byte)
+//
+//		Line Type
+//			This attribute specifies the line type used in a DS3 or E3 application or when the sensed type
+//			of the PPTP is configurable. Valid values are as follows.
+//
+//			0	Other
+//
+//			1	ds3 m23
+//
+//			2	ds3 syntran
+//
+//			3	ds3 Cbit parity
+//
+//			4	ds3 clear channel
+//
+//			5	e3 framed
+//
+//			6	e3 plcp
+//
+//			7	DS1
+//
+//			8	E1
+//
+//			9	J1
+//
+//			(R,-W) (mandatory for DS3, E3 and multi-configuration interfaces, not applicable to other
+//			interfaces) (1-byte)
+//
+type PhysicalPathTerminationPointCesUni struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	physicalpathterminationpointcesuniBME = &ManagedEntityDefinition{
+		Name:    "PhysicalPathTerminationPointCesUni",
+		ClassID: 12,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0:  "TF",
+			1:  "LOS",
+			2:  "LOF",
+			3:  "OOF",
+			4:  "RAI",
+			5:  "1.5 M BAIS",
+			6:  "R-INH",
+			7:  "6M REC",
+			8:  "6M SEND",
+			9:  "6M ERR",
+			10: "6M BERR",
+			11: "34M REC",
+			12: "34M AIS",
+			13: "2M REC",
+			14: "2M AIS",
+			15: "1.5M REC",
+			16: "1.5 AIS",
+			17: "INFO0",
+			18: "45M RDI",
+			19: "45M AIS",
+			20: "AIS-CI",
+			21: "DS1 idle",
+			22: "RAI-CI",
+		},
+	}
+}
+
+// NewPhysicalPathTerminationPointCesUni (class ID 12) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewPhysicalPathTerminationPointCesUni(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*physicalpathterminationpointcesuniBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/physicalpathterminationpointethernetuni.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/physicalpathterminationpointethernetuni.go
new file mode 100644
index 0000000..c72fbf0
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/physicalpathterminationpointethernetuni.go
@@ -0,0 +1,236 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// PhysicalPathTerminationPointEthernetUniClassID is the 16-bit ID for the OMCI
+// Managed entity Physical path termination point Ethernet UNI
+const PhysicalPathTerminationPointEthernetUniClassID = ClassID(11) // 0x000b
+
+var physicalpathterminationpointethernetuniBME *ManagedEntityDefinition
+
+// PhysicalPathTerminationPointEthernetUni (Class ID: #11 / 0x000b)
+//	This ME represents the point at an Ethernet UNI where the physical path terminates and Ethernet
+//	physical level functions are performed.
+//
+//	The ONU automatically creates an instance of this ME per port:
+//
+//	o	when the ONU has Ethernet ports built into its factory configuration;
+//
+//	o	when a cardholder is provisioned to expect a circuit pack of the Ethernet type;
+//
+//	o	when a cardholder provisioned for plug-and-play is equipped with a circuit pack of the
+//	Ethernet type. Note that the installation of a plug-and-play card may indicate the presence of
+//	Ethernet ports via equipment ID as well as its type, and indeed may cause the ONU to instantiate
+//	a port-mapping package that specifies Ethernet ports.
+//
+//	The ONU automatically deletes instances of this ME when a cardholder is neither provisioned to
+//	expect an Ethernet circuit pack, nor is it equipped with an Ethernet circuit pack.
+//
+//	Relationships
+//		An instance of this ME is associated with each instance of a pre-provisioned or real Ethernet
+//		port.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. This 2 byte number indicates the
+//			physical position of the UNI. The first byte is the slot ID (defined in clause 9.1.5). The
+//			second byte is the port ID, with the range 1..255. (R) (mandatory) (2-bytes)
+//
+//		Expected Type
+//			This attribute supports pre-provisioning. It is coded as follows:
+//
+//			0	Autosense
+//
+//			1 to 254	One of the values from Table-9.1.5-1 that is compatible with an Ethernet circuit pack
+//
+//			Upon ME instantiation, the ONU sets this attribute to 0. (R,-W) (mandatory) (1-byte)
+//
+//		Sensed Type
+//			When a circuit pack is present, this attribute represents its type as one of the values from
+//			Table-9.1.5-1. If the value of the expected type is not 0, then the value of the sensed type
+//			should be the same as the value of the expected type. Upon ME instantiation, the ONU sets this
+//			attribute to 0. See also the note in the following AVC table.
+//
+//			(R) (mandatory if the ONU supports circuit packs with configurable interface types, e.g., 10/100
+//			BASE-T card) (1-byte)
+//
+//		Auto Detection Configuration
+//			This attribute sets the following Ethernet port configuration.
+//
+//			Upon ME instantiation, the ONU sets this attribute to 0. (R,-W) (mandatory for interfaces with
+//			autodetection options) (1-byte)
+//
+//		Ethernet Loopback Configuration
+//			This attribute sets the following Ethernet loopback configuration.
+//
+//			0	No loopback
+//
+//			3	Loop 3, loopback of downstream traffic after PHY transceiver. Loop-3 is depicted in Figure
+//			9.5.1-1.
+//
+//			Note that normal bridge behaviour may defeat the loopback signal unless broadcast MAC addresses
+//			are used. Although it does not reach the physical interface, [IEEE 802.1ag] loopback is
+//			preferred.
+//
+//			Upon ME instantiation, the ONU sets this attribute to 0. (R,-W) (mandatory) (1-byte)
+//
+//		Administrative State
+//			This attribute locks (1) and unlocks (0) the functions performed by this ME. Administrative
+//			state is further described in clause A.1.6. (R,-W) (mandatory) (1-byte)
+//
+//		Operational State
+//			This attribute indicates whether the ME is capable of performing its function. Valid values are
+//			enabled (0) and disabled (1). (R) (optional) (1-byte)
+//
+//		Configuration Ind
+//			This attribute indicates the configuration status of the Ethernet UNI.
+//
+//			0x01	10BASE-T full duplex
+//
+//			0x02	100BASE-T full duplex
+//
+//			0x03	Gigabit Ethernet full duplex
+//
+//			0x04	10Gb/s Ethernet full duplex
+//
+//			0x05	2.5Gb/s Ethernet full duplex
+//
+//			0x06	5Gb/s Ethernet full duplex
+//
+//			0x07	25Gb/s Ethernet full duplex
+//
+//			0x08	40Gb/s Ethernet full duplex
+//
+//			0x11	10BASE-T half duplex
+//
+//			0x12	100BASE-T half duplex
+//
+//			0x13	Gigabit Ethernet half duplex
+//
+//			The value 0 indicates that the configuration status is unknown (e.g., Ethernet link is not
+//			established or the circuit pack is not yet installed). Upon ME instantiation, the ONU sets this
+//			attribute to 0. (R) (mandatory) (1-byte)
+//
+//		Max Frame Size
+//			This attribute denotes the maximum frame size allowed across this interface. Upon ME
+//			instantiation, the ONU sets the attribute to 1518. (R,-W) (mandatory for G-PON, optional for
+//			ITU-T G.986 systems) (2 bytes)
+//
+//		Dte Or Dce Ind
+//			This attribute specifies the following Ethernet interface wiring.
+//
+//			0	DCE or MDI-X (default).
+//
+//			1	DTE or MDI.
+//
+//			2	Automatic selection
+//
+//			(R,-W) (mandatory) (1-byte)
+//
+//		Pause Time
+//			This attribute allows the PPTP to ask the subscriber terminal to temporarily suspend sending
+//			data. Units are in pause quanta (1 pause quantum is 512 bit times of the particular
+//			implementation). Values: 0..0xFFFF. Upon ME instantiation, the ONU sets this attribute to 0.
+//			(R,-W) (optional) (2-bytes)
+//
+//		Bridged Or Ip Ind
+//			This attribute specifies whether the Ethernet interface is bridged or derived from an IP router
+//			function.
+//
+//			0	Bridged
+//
+//			1	IP router
+//
+//			2	Depends on the parent circuit pack. 2 means that the circuit pack's bridged or IP ind
+//			attribute is either 0 or 1.
+//
+//			Upon ME instantiation, the ONU sets this attribute to 2. (R,-W) (optional) (1-byte)
+//
+//		Arc
+//			See clause A.1.4.3. (R,-W) (optional) (1-byte)
+//
+//		Arc Interval
+//			See clause A.1.4.3. (R,-W) (optional) (1-byte)
+//
+//		Pppoe Filter
+//			This attribute controls filtering of PPPoE packets on this Ethernet port. The value 0 allows
+//			packets of all types. The value 1 discards everything but PPPoE packets. The default value is 0.
+//			(R,-W) (optional) (1-byte)
+//
+//		Power Control
+//			This attribute controls whether power is provided to an external equipment over the Ethernet
+//			PPTP. The value 1 enables power over the Ethernet port. The default value 0 disables power feed.
+//			(R,-W) (optional) (1-byte)
+//
+//			NOTE - This attribute is the equivalent of the acPSEAdminControl variable defined in clause
+//			30.9.1.2.1 of [IEEE 802.3]. Other variables related to PoE appear in the PoE control ME.
+//
+type PhysicalPathTerminationPointEthernetUni struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	physicalpathterminationpointethernetuniBME = &ManagedEntityDefinition{
+		Name:    "PhysicalPathTerminationPointEthernetUni",
+		ClassID: 11,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "LAN-LOS",
+		},
+	}
+}
+
+// NewPhysicalPathTerminationPointEthernetUni (class ID 11) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewPhysicalPathTerminationPointEthernetUni(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*physicalpathterminationpointethernetuniBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/physicalpathterminationpointlctuni.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/physicalpathterminationpointlctuni.go
new file mode 100644
index 0000000..b6381e6
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/physicalpathterminationpointlctuni.go
@@ -0,0 +1,107 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// PhysicalPathTerminationPointLctUniClassID is the 16-bit ID for the OMCI
+// Managed entity Physical path termination point LCT UNI
+const PhysicalPathTerminationPointLctUniClassID = ClassID(83) // 0x0053
+
+var physicalpathterminationpointlctuniBME *ManagedEntityDefinition
+
+// PhysicalPathTerminationPointLctUni (Class ID: #83 / 0x0053)
+//	This ME models debug access to the ONU from any physical or logical port, for example, via a
+//	dedicated LCT UNI, via ordinary subscriber UNIs, or via the IP host config ME.
+//
+//	The ONU automatically creates an instance of this ME per port:
+//
+//	o	when the ONU has an LCT port built into its factory configuration;
+//
+//	o	when a cardholder is provisioned to expect a circuit pack of the LCT type;
+//
+//	o	when a cardholder provisioned for plug-and-play is equipped with a circuit pack of the LCT
+//	type;
+//
+//	NOTE - The installation of a plug-and-play card may indicate the presence of LCT ports via
+//	equipment ID as well as its type, and indeed may cause the ONU to instantiate a port-mapping
+//	package that specifies LCT ports.
+//
+//	o	when the ONU supports debug access through some other physical or logical means.
+//
+//	The ONU automatically deletes an instance of this ME when a cardholder is neither provisioned to
+//	expect an LCT circuit pack, nor is it equipped with an LCT circuit pack, or if the ONU is
+//	reconfigured in such a way that it no longer supports debug access.
+//
+//	LCT instances are not reported during an MIB upload.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of a real or virtual circuit pack ME
+//		classified as an LCT type. An instance of this ME may also be associated with the ONU as a
+//		whole, if the ONU supports debug access through means other than a dedicated physical LCT port.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. This 2-byte number indicates the
+//			physical position of the UNI. The first byte is the slot ID (defined in clause 9.1.5). The
+//			second byte is the port ID, with the range 1..255. If the LCT UNI is associated with the ONU as
+//			a whole, its ME ID should be 0. (R) (mandatory) (2 bytes)
+//
+//		Administrative State
+//			This attribute locks (1) and unlocks (0) the functions performed by this ME. Administrative
+//			state is described generically in clause-A.1.6. The LCT has additional administrative state
+//			behaviour. When the administrative state is set to lock, debug access through all physical or
+//			logical means is blocked, except that the operation of a possible ONU remote debug ME is not
+//			affected. Administrative lock of ME instance 0 overrides administrative lock of any other PPTP
+//			LCT UNIs that may exist. (R, W) (mandatory) (1-byte)
+//
+type PhysicalPathTerminationPointLctUni struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	physicalpathterminationpointlctuniBME = &ManagedEntityDefinition{
+		Name:    "PhysicalPathTerminationPointLctUni",
+		ClassID: 83,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewPhysicalPathTerminationPointLctUni (class ID 83) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewPhysicalPathTerminationPointLctUni(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*physicalpathterminationpointlctuniBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/physicalpathterminationpointmocauni.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/physicalpathterminationpointmocauni.go
new file mode 100644
index 0000000..cb35f78
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/physicalpathterminationpointmocauni.go
@@ -0,0 +1,180 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// PhysicalPathTerminationPointMocaUniClassID is the 16-bit ID for the OMCI
+// Managed entity Physical path termination point MoCA UNI
+const PhysicalPathTerminationPointMocaUniClassID = ClassID(162) // 0x00a2
+
+var physicalpathterminationpointmocauniBME *ManagedEntityDefinition
+
+// PhysicalPathTerminationPointMocaUni (Class ID: #162 / 0x00a2)
+//	This ME represents an MoCA UNI, where physical paths terminate and physical path level functions
+//	are performed.
+//
+//	The ONU automatically creates an instance of this ME per port as follows.
+//
+//	o	When the ONU has MoCA ports built into its factory configuration.
+//
+//	o	When a cardholder is provisioned to expect a circuit pack of the MoCA type.
+//
+//	o	When a cardholder provisioned for plug-and-play is equipped with a circuit pack of the MoCA
+//	type. Note that the installation of a plug-and-play card may indicate the presence of MoCA ports
+//	via equipment ID as well as its type, and indeed may cause the ONU to instantiate a port-mapping
+//	package that specifies MoCA ports.
+//
+//	The ONU automatically deletes instances of this ME when a cardholder is neither provisioned to
+//	expect an MoCA circuit pack, nor is it equipped with an MoCA circuit pack.
+//
+//	Relationships
+//		An instance of this ME is associated with each real or pre-provisioned MoCA port.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. This 2-byte number is directly
+//			associated with the physical position of the UNI. The first byte is the slot ID (defined in
+//			clause 9.1.5). The second byte is the port ID, with the range 1..255. (R) (mandatory) (2-bytes)
+//
+//		Loopback Configuration
+//			0	No loopback
+//
+//			3	Loopback3, loopback of downstream traffic after PHY transceiver, depicted in Figure 9.10.1-1.
+//
+//			Upon ME instantiation, the ONU sets this attribute to 0. (R,-W) (optional) (1-byte)
+//
+//			This attribute sets the MoCA loopback configuration. Note that normal bridge behaviour may
+//			defeat the loopback signal unless broadcast MAC addresses are used.
+//
+//		Administrative State
+//			This attribute locks (1) and unlocks (0) the functions performed by this ME. Administrative
+//			state is further described in clause A.1.6. (R,-W) (mandatory) (1-byte)
+//
+//		Operational State
+//			This attribute indicates whether the ME is capable of performing its function. Valid values are
+//			enabled (0) and disabled (1). (R) (optional) (1-byte)
+//
+//		Max Frame Size
+//			This attribute denotes the maximum frame size allowed across this interface. Upon ME
+//			instantiation, the ONU sets this attribute to 1518. (R,-W) (mandatory) (2-bytes)
+//
+//		Arc
+//			See clause A.1.4.3. (R,-W) (optional) (1-byte)
+//
+//		Arc Interval
+//			See clause A.1.4.3. (R,-W) (optional) (1-byte)
+//
+//		Pppoe Filter
+//			This attribute controls filtering of PPPoE packets on this MoCA port. When its value is 1, all
+//			packets other than PPPoE packets are discarded. The default 0 accepts packets of all types.
+//			(R,-W) (optional) (1-byte)
+//
+//		Network Status
+//			This attribute indicates the networking state of the MoCA interface as follows.
+//
+//			0	The interface has not joined an MoCA network.
+//
+//			1	The interface has joined an MoCA network.
+//
+//			2	The interface has joined an MoCA network and is currently the network coordinator.
+//
+//			(R) (mandatory) (1-byte)
+//
+//		Password
+//			This attribute specifies the MoCA encryption key. It is an ASCII string of 17 decimal digits.
+//			Upon ME instantiation, the ONU sets this attribute to 17 null bytes. (R,-W) (mandatory)
+//			(17-bytes)
+//
+//		Privacy Enabled
+//			This attribute activates (1) link-layer security. The default value 0 deactivates it. (R,-W)
+//			(mandatory) (1-byte)
+//
+//		Minimum Bandwidth Alarm Threshold
+//			This attribute specifies the minimum desired PHY link bandwidth between two nodes. If the actual
+//			bandwidth is lower, an LL alarm is declared. Valid values are 0 to 0x0410 (260-Mbit/s) in
+//			0.25-Mbit/s increments. The default value is 0x02D0 (180-Mbit/s). The value 0 disables the
+//			threshold. (R,-W) (optional) (2-bytes)
+//
+//		Frequency Mask
+//			This attribute is a bit map of the centre frequencies that the interface is permitted to use,
+//			where each bit represents a centre frequency. The LSB (b[1]) corresponds to centre frequency
+//			800-MHz. The next significant bit (b[2]) corresponds to centre frequency 825-MHz. The 28th bit
+//			(b[28]) corresponds to centre frequency 1500-MHz. The four MSBs are not used. (R,-W) (optional)
+//			(4-bytes)
+//
+//		Rf Channel
+//			This attribute reports the frequency to which the MoCA interface is currently tuned, in
+//			megahertz. (R) (mandatory) (2-bytes)
+//
+//		Last Operational Frequency
+//			This attribute reports the frequency to which the MoCA interface was tuned when last
+//			operational, in megahertz. (R) (mandatory) (2-bytes)
+//
+type PhysicalPathTerminationPointMocaUni struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	physicalpathterminationpointmocauniBME = &ManagedEntityDefinition{
+		Name:    "PhysicalPathTerminationPointMocaUni",
+		ClassID: 162,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "MoCA LOL",
+			1: "MoCA limited link (LL)",
+		},
+	}
+}
+
+// NewPhysicalPathTerminationPointMocaUni (class ID 162) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewPhysicalPathTerminationPointMocaUni(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*physicalpathterminationpointmocauniBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/physicalpathterminationpointpotsuni.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/physicalpathterminationpointpotsuni.go
new file mode 100644
index 0000000..8b7f6c7
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/physicalpathterminationpointpotsuni.go
@@ -0,0 +1,190 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// PhysicalPathTerminationPointPotsUniClassID is the 16-bit ID for the OMCI
+// Managed entity Physical path termination point POTS UNI
+const PhysicalPathTerminationPointPotsUniClassID = ClassID(53) // 0x0035
+
+var physicalpathterminationpointpotsuniBME *ManagedEntityDefinition
+
+// PhysicalPathTerminationPointPotsUni (Class ID: #53 / 0x0035)
+//	This ME represents a POTS UNI in the ONU, where a physical path terminates and physical path
+//	level functions (analogue telephony) are performed.
+//
+//	The ONU automatically creates an instance of this ME per port as follows.
+//
+//	o	When the ONU has POTS ports built into its factory configuration.
+//
+//	o	When a cardholder is provisioned to expect a circuit pack of the POTS type.
+//
+//	o	When a cardholder provisioned for plug-and-play is equipped with a circuit pack of the POTS
+//	type. Note that the installation of a plug-and-play card may indicate the presence of POTS ports
+//	via equipment ID as well as type, and indeed may cause the ONU to instantiate a port-mapping
+//	package that specifies POTS ports.
+//
+//	The ONU automatically deletes instances of this ME when a cardholder is neither provisioned to
+//	expect a POTS circuit pack, nor is it equipped with a POTS circuit pack.
+//
+//	Relationships
+//		An instance of this ME is associated with each real or pre-provisioned POTS port. Either a SIP
+//		or a VoIP voice CTP links to the POTS UNI. Status is available from a VoIP line status ME, and
+//		RTP and call control PM may be collected on this point.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. This 2-byte number indicates the
+//			physical position of the UNI. The first byte is the slot ID (defined in clause 9.1.5). The
+//			second byte is the port ID, with the range 1..255. (R) (mandatory) (2-bytes)
+//
+//		Administrative State
+//			When the administrative state is set to lock, all user functions of this UNI are blocked, and
+//			alarms, TCAs and AVCs for this ME and all dependent MEs are no longer generated. Selection of a
+//			default value for this attribute is outside the scope of this Recommendation. (R, W) (mandatory)
+//			(1 byte)
+//
+//			This attribute shuts down (2), locks (1) and unlocks (0) the functions performed by this ME. If
+//			the administrative state is set to shut down while the POTS UNI line state is non-idle, no
+//			action is taken until the POTS UNI line state changes to idle, whereupon the administrative
+//			state changes to locked. If the administrative state is set to shut down and the POTS UNI line
+//			state is already idle, the administrative state is immediately set to locked. In both cases, the
+//			transition from shutting down to locked state is signalled with an AVC.
+//
+//		Deprecated
+//			This attribute is not used and should not be supported. (R,-W) (optional) (2-bytes)
+//
+//		Arc
+//			See clause A.1.4.3. (R,-W) (optional) (1-byte)
+//
+//		Arc Interval
+//			See clause A.1.4.3. (R,-W) (optional) (1-byte)
+//
+//		Impedance
+//			2	C1=150 nF, R1=750 Ohm, R2=270 Ohm
+//
+//			3	C1=115 nF, R1=820 Ohm, R2=220 Ohm
+//
+//			4	C1=230 nF, R1=1050 Ohm, R2=320 Ohm
+//
+//			where C1, R1, and R2 are related as shown in Figure 9.9.1-1. Upon ME instantiation, the ONU sets
+//			this attribute to 0. (R,-W) (optional) (1-byte)
+//
+//			This attribute specifies the impedance for the POTS UNI. Valid values include the following.
+//
+//			0	600 Ohm
+//
+//			1	900 Ohm
+//
+//			The following parameter sets from Annex C of [ETSI TS 101 270-1] are also defined:
+//
+//		Transmission Path
+//			This attribute allows setting the POTS UNI either to full-time on-hook transmission (0) or part-
+//			time on-hook transmission (1). Upon ME instantiation, the ONU sets this attribute to 0. (R,-W)
+//			(optional) (1-byte)
+//
+//		Rx Gain
+//			This attribute specifies a gain value for the received signal in the form of a 2s complement
+//			number. Valid values are -120 (12.0-dB) to 60 (+6.0-dB). The direction of the affected signal is
+//			in the D to A direction, towards the telephone set. Upon ME instantiation, the ONU sets this
+//			attribute to 0. (R, W) (optional) (1 byte)
+//
+//		Tx Gain
+//			This attribute specifies a gain value for the transmit signal in the form of a 2s complement
+//			number. Valid values are -120 (12.0-dB) to 60 (+6.0-dB). The direction of the affected signal is
+//			in the A to D direction, away from the telephone set. Upon ME instantiation, the ONU sets this
+//			attribute to 0. (R, W) (optional) (1 byte)
+//
+//		Operational State
+//			This attribute indicates whether the ME is capable of performing its function. Valid values are
+//			enabled (0) and disabled (1). (R) (optional) (1-byte)
+//
+//		Hook State
+//			This attribute indicates the current state of the subscriber line: 0-= on hook, 1-= off hook (R)
+//			(optional) (1-byte)
+//
+//		Pots Holdover Time
+//			This attribute determines the time during which the POTS loop voltage is held up when a LOS or
+//			softswitch connectivity is detected (please refer to the following table for description of
+//			behaviours).. After the specified time elapses, the ONU drops the loop voltage, and may thereby
+//			cause premises intrusion alarm or fire panel circuits to go active. When the ONU ranges
+//			successfully on the PON or softswitch connectivity is restored, it restores the POTS loop
+//			voltage immediately and resets the timer to zero. The attribute is expressed in seconds. The
+//			default value 0 selects the vendor's factory policy. (R,-W) (optional) (2-bytes)
+//
+//		Nominal Feed Voltage
+//			This attribute indicates the designed nominal feed voltage of the POTS loop. It is an absolute
+//			value with resolution 1-V. This attribute does not represent the actual voltage measured on the
+//			loop, which is available through the test command. (R,-W) (optional) (1-byte)
+//
+//		Loss Of Softswitch
+//			This Boolean attribute controls whether the T/R holdover initiation criteria. False disables
+//			loss of softswitch connectivity detection as criteria for initiating the POTS holdover timer.
+//			True enables loss of softswitch connectivity detection as criteria for initiating the POTS
+//			holdover timer. This attribute is optional (if not implemented, the POTS holdover time is
+//			triggered on a LOS when POTS holdover is greater than zero). (R,-W) (optional) (1-byte)
+//
+type PhysicalPathTerminationPointPotsUni struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	physicalpathterminationpointpotsuniBME = &ManagedEntityDefinition{
+		Name:    "PhysicalPathTerminationPointPotsUni",
+		ClassID: 53,
+		MessageTypes: mapset.NewSetWith(
+			Get,
+			Set,
+			Test,
+		),
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewPhysicalPathTerminationPointPotsUni (class ID 53) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewPhysicalPathTerminationPointPotsUni(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*physicalpathterminationpointpotsuniBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/physicalpathterminationpointreuni.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/physicalpathterminationpointreuni.go
new file mode 100644
index 0000000..ac1492e
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/physicalpathterminationpointreuni.go
@@ -0,0 +1,229 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// PhysicalPathTerminationPointReUniClassID is the 16-bit ID for the OMCI
+// Managed entity Physical path termination point RE UNI
+const PhysicalPathTerminationPointReUniClassID = ClassID(314) // 0x013a
+
+var physicalpathterminationpointreuniBME *ManagedEntityDefinition
+
+// PhysicalPathTerminationPointReUni (Class ID: #314 / 0x013a)
+//	This ME represents an S'/R' interface in a mid-span PON RE that supports OEO regeneration in at
+//	least one direction, where physical paths terminate and physical path level functions are
+//	performed (transmit or receive).
+//
+//	Such an RE automatically creates an instance of this ME for each S'/R' interface port as
+//	follows.
+//
+//	o	When the RE has mid-span PON RE UNI interface ports built into its factory configuration.
+//
+//	o	When a cardholder is provisioned to expect a circuit pack of the mid-span PON RE UNI type.
+//
+//	o	When a cardholder provisioned for plug-and-play is equipped with a circuit pack of the midspan
+//	PON RE UNI type. Note that the installation of a plug-and-play card may indicate the presence of
+//	a mid-span PON RE UNI port via equipment ID as well as its type attribute, and indeed may cause
+//	the management ONU to instantiate a port-mapping package to specify the ports precisely.
+//
+//	The management ONU automatically deletes instances of this ME when a cardholder is neither
+//	provisioned to expect a mid-span PON RE UNI circuit pack, nor is it equipped with a mid-span PON
+//	RE UNI circuit pack.
+//
+//	As illustrated in Figure 8.2.10-3, a PPTP RE UNI may share the physical port with an RE upstream
+//	amplifier. The ONU declares a shared configuration through the port-mapping package combined
+//	port table, whose structure defines one ME as the master. It is recommended that the PPTP RE UNI
+//	be the master, with the RE upstream amplifier as a secondary ME.
+//
+//	The administrative state, operational state and ARC attributes of the master ME override similar
+//	attributes in secondary MEs associated with the same port. In the secondary ME, these attributes
+//	are present, but cause no action when written and have undefined values when read. The RE
+//	upstream amplifier should use its provisionable upstream alarm thresholds and should declare
+//	upstream alarms as necessary; other isomorphic alarms should be declared by the PPTP RE UNI. The
+//	test action should be addressed to the master ME.
+//
+//	Relationships
+//		An instance of this ME is associated with each instance of a mid-span PON RE S'/R' physical
+//		interface of an RE that includes OEO regeneration in either direction, and it may also be
+//		associated with an RE upstream amplifier.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. This 2-byte number indicates the
+//			physical position of the UNI. The first byte is the slot ID (defined in clause 9.1.5). The
+//			second byte is the port ID, with the range 1..255. (R) (mandatory) (2-bytes)
+//
+//			NOTE 1 - This ME ID may be identical to that of an RE upstream amplifier if it shares the same
+//			physical slot and port.
+//
+//		Administrative State
+//			This attribute locks (1) and unlocks (0) the functions performed by this ME. Administrative
+//			state is further described in clause A.1.6. (R,-W) (mandatory) (1-byte)
+//
+//			NOTE 2 - Administrative lock of a PPTP RE UNI results in loss of signal to any downstream ONUs.
+//
+//		Operational State
+//			This attribute indicates whether the ME is capable of performing its function. Valid values are
+//			enabled (0) and disabled (1). (R) (optional) (1-byte)
+//
+//		Arc
+//			See clause A.1.4.3. (R,-W) (optional) (1-byte)
+//
+//		Arc Interval
+//			See clause A.1.4.3. (R,-W) (optional) (1-byte)
+//
+//		Re Ani_G Pointer
+//			RE ANI-G pointer: This attribute points to an RE ANI-G instance. (R,-W) (mandatory) (2-bytes)
+//
+//		Total Optical Receive Signal Level Table
+//			This table attribute reports a series of measurements of time averaged received upstream optical
+//			signal power. The measurement circuit should have a temporal response similar to a simple 1-pole
+//			low pass filter, with an effective time constant of the order of a GTC frame time. Each table
+//			entry has a 2-byte frame counter field (most significant end), and a 2-byte power measurement
+//			field. The frame counter field contains the least significant 16-bits of the superframe counter
+//			received closest to the time of the measurement. The power measurement field is a 2s complement
+//			integer referred to 1-mW (i.e., dBm), with 0.002-dB granularity. (Coding -32768 to +32767, where
+//			0x00 = 0-dBm, 0x03e8 = +2-dBm, etc.) The RE equipment should add entries to this table as
+//			frequently as is reasonable. The RE should clear the table once it is read by the OLT. (R)
+//			(optional) (4-* N-bytes, where N is the number of measurements present.)
+//
+//		Per Burst Receive Signal Level Table
+//			This table attribute reports the most recent measurement of received burst upstream optical
+//			signal power. Each table entry has a 2-byte ONU-ID field (most significant end), and a 2-byte
+//			power measurement field. The power measurement field is a 2s complement integer referred to 1-mW
+//			(i.e.,-dBm), with 0.002-dB granularity. (Coding -32768 to +32767, where 0x00 = 0-dBm, 0x03e8 =
+//			+2-dBm, etc.) (R) (optional) (4-* N-bytes, where N is the number of distinct ONUs connected to
+//			the S'/R' interface.)
+//
+//		Lower Receive Optical Threshold
+//			This attribute specifies the optical level that the RE uses to declare the burst mode low
+//			received optical power alarm. Valid values are  -127-dBm (coded as 254) to 0-dBm (coded as 0) in
+//			0.5-dB increments. The default value 0xFF selects the RE's internal policy. (R,-W) (optional)
+//			(1-byte)
+//
+//		Upper Receive Optical Threshold
+//			This attribute specifies the optical level that the RE uses to declare the burst mode high
+//			optical power alarm. Valid values are  -127-dBm (coded as 254) to 0-dBm (coded as 0) in 0.5-dB
+//			increments. The default value 0xFF selects the RE's internal policy. (R,-W) (optional) (1-byte)
+//
+//		Transmit Optical Level
+//			This attribute reports the current measurement of the downstream mean optical launch power. Its
+//			value is a 2s complement integer referred to 1-mW (i.e., dBm), with 0.002-dB granularity. (R)
+//			(optional) (2-bytes)
+//
+//		Lower Transmit Power Threshold
+//			This attribute specifies the downstream minimum mean optical launch power at the S'/R' interface
+//			that the RE uses to declare the low transmit optical power alarm. Its value is a 2s complement
+//			integer referred to 1-mW (i.e., dBm), with 0.5-dB granularity. The default value 0x7F selects
+//			the RE's internal policy. (R,-W) (optional) (1-byte)
+//
+//		Upper Transmit Power Threshold
+//			This attribute specifies the downstream maximum mean optical launch power at the S'/R' interface
+//			that the RE uses to declare the high transmit optical power alarm. Its value is a 2s complement
+//			integer referred to 1-mW (i.e., dBm), with 0.5-dB granularity. The default value 0x7F selects
+//			the RE's internal policy. (R,-W) (optional) (1-byte)
+//
+//		Additional Preamble
+//			This attribute indicates the number of bytes of PLOu preamble that are unavoidably consumed
+//			while passing the RE. (R) (mandatory) (1-byte)
+//
+//		Additional Guard Time
+//			This attribute indicates the number of bytes of extra guard time that are needed to ensure
+//			correct operation with the RE. (R) (mandatory) (1-byte)
+//
+//		Connected Onus Table
+//			s attribute is used to pass ONU ID information of the connected ONUs per RE UNI. The get, get
+//			next sequence must be used with this attribute since its size is unspecified. Upon ME
+//			instantiation, this attribute is an empty list.
+//
+//			Each entry contains:
+//
+//			- ONU ID (2-bytes)
+//
+//			(R) (optional) (2N bytes, where N is the number of-ONUs)
+//
+//		Clear Onu Table
+//			the attribute is used to notify RE to clear the entire Connected ONUs table by OLT. The OLT must
+//			insure that the ONU IDs have been retrieved before clearing the table, or loss of data may
+//			occur.
+//
+//			When the value of the byte is set to 1, the RE clears the entire Connected ONUs table and resets
+//			the byte to 0.
+//
+//			(W) (optional) (1 byte)
+//
+type PhysicalPathTerminationPointReUni struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	physicalpathterminationpointreuniBME = &ManagedEntityDefinition{
+		Name:    "PhysicalPathTerminationPointReUni",
+		ClassID: 314,
+		MessageTypes: mapset.NewSetWith(
+			Get,
+			GetNext,
+			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:  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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Low received optical power",
+			1: "High received optical power",
+			2: "Low transmit optical power",
+			3: "High transmit optical power",
+			4: "High laser bias current",
+			5: "S'/R' LOS",
+		},
+	}
+}
+
+// NewPhysicalPathTerminationPointReUni (class ID 314) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewPhysicalPathTerminationPointReUni(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*physicalpathterminationpointreuniBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/physicalpathterminationpointvideoani.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/physicalpathterminationpointvideoani.go
new file mode 100644
index 0000000..c0728fe
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/physicalpathterminationpointvideoani.go
@@ -0,0 +1,283 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// PhysicalPathTerminationPointVideoAniClassID is the 16-bit ID for the OMCI
+// Managed entity Physical path termination point video ANI
+const PhysicalPathTerminationPointVideoAniClassID = ClassID(90) // 0x005a
+
+var physicalpathterminationpointvideoaniBME *ManagedEntityDefinition
+
+// PhysicalPathTerminationPointVideoAni (Class ID: #90 / 0x005a)
+//	This ME represents an RF video ANI in the ONU, where physical paths terminate and physical path
+//	level functions are performed.
+//
+//	The ONU automatically creates an instance of this ME per port as follows.
+//
+//	o	When the ONU has video ANI ports built into its factory configuration.
+//
+//	o	When a cardholder is provisioned to expect a circuit pack of the video ANI type.
+//
+//	o	When a cardholder provisioned for plug-and-play is equipped with a circuit pack of the video
+//	ANI type. Note that the installation of a plug-and-play card may indicate the presence of video
+//	ANI ports via equipment ID as well as its type, and indeed may cause the ONU to instantiate a
+//	port-mapping package that specifies video ANI ports.
+//
+//	The ONU automatically deletes instances of this ME when a cardholder is neither provisioned to
+//	expect a video ANI circuit pack, nor is it equipped with a video ANI circuit pack.
+//
+//	Relationships
+//		An instance of this ME is associated with each instance of a real or pre-provisioned video ANI
+//		port.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. This 2-byte number indicates the
+//			physical position of the ANI. The first byte is the slot ID (defined in clause 9.1.5). The
+//			second byte is the port ID, with the range 1..255. (R) (mandatory) (2-bytes)
+//
+//		Administrative State
+//			This attribute locks (1) and unlocks (0) the functions performed by this ME. Administrative
+//			state is further described in clause-A.1.6. (R,-W) (mandatory) (1-byte)
+//
+//		Operational State
+//			This attribute indicates whether the ME is capable of performing its function. Valid values are
+//			enabled (0) and disabled (1). (R) (optional) (1-byte)
+//
+//		Arc
+//			See clause A.1.4.3. (R,-W) (optional) (1-byte)
+//
+//		Arc Interval
+//			See clause A.1.4.3. (R,-W) (optional) (1-byte)
+//
+//		Frequency Range Low
+//			This attribute indicates the lower of the two possible frequency ranges supported. Different
+//			frequency ranges are indicated by code points:
+//
+//			0	No low band
+//
+//			1	50..550 MHz
+//
+//			2	50..750 MHz
+//
+//			3	50..870 MHz
+//
+//			4..255	Reserved
+//
+//			(R) (mandatory) (1-byte)
+//
+//		Frequency Range High
+//			This attribute indicates the higher of the two frequency ranges supported. Different frequency
+//			ranges are indicated by code points:
+//
+//			0	No high band
+//
+//			1	550..750 MHz
+//
+//			2	550..870 MHz
+//
+//			3	950..2050 MHz
+//
+//			4	2150..3250 MHz
+//
+//			5	950..3250 MHz
+//
+//			6..255	Reserved
+//
+//			(R) (mandatory) (1-byte)
+//
+//		Signal Capability
+//			0	No signal level measurement capability
+//
+//			1	Total optical power level
+//
+//			2	Fixed frequency pilot tone power level
+//
+//			3	Total optical power level and fixed frequency pilot tone power level
+//
+//			4	Variable frequency pilot tone power level
+//
+//			5	Total optical power level and variable frequency pilot tone power level
+//
+//			6	Broadband RF power level
+//
+//			7	Total optical power level and broadband RF power level
+//
+//			8..255	Reserved
+//
+//			(R) (mandatory) (1-byte)
+//
+//			This attribute indicates the capability of the ONU to measure the video signal level.
+//			Capabilities are indicated by code points, as follows.
+//
+//		Optical Signal Level
+//			This attribute is an unsigned integer that returns the current measurement of the total optical
+//			signal level. The unit of this attribute is decibel-microwatt optical.
+//
+//			o	If signal capability-= 0, 2, 4 or 6, this attribute is undefined.
+//
+//			o	If signal capability-=1, 3, 5 or 7, this attribute describes the total optical power that is
+//			generating photocurrent on the receiver.
+//
+//			(R) (optional) (1-byte)
+//
+//		Pilot Signal Level
+//			This attribute indicates the current measurement of the pilot signal level or broadband RF
+//			level. The unit of this attribute is decibel-microvolt at the RF video service port.
+//
+//			o	If signal capability-= 0 or 1, then this attribute is undefined.
+//
+//			o	If signal capability-= 2, 3, 4 or 5, this attribute reports the pilot signal level at the
+//			output of the video UNI.
+//
+//			o	If signal capability-= 6 or 7, this attribute reports the total RF power level at the output
+//			of the video UNI.
+//
+//			(R) (optional) (1-byte)
+//
+//		Signal Level Min
+//			This attribute indicates the minimum optical RF power per channel that results in a CNR of
+//			47-dBc for a channel of 4.5 MHz bandwidth at a receive optical power of -5-dBm. The unit of this
+//			attribute is decibel-microwatt optical. (R) (mandatory) (1-byte)
+//
+//		Signal Level Max
+//			This attribute indicates the maximum optical RF power per channel that results in a CTB of
+//			-57-dBc for an 80-channel ensemble of carriers at a perchannel optical modulation index (OMI) of
+//			3.5%. The unit of this attribute is decibel-microwatt optical. (R) (mandatory) (1-byte)
+//
+//		Pilot Frequency
+//			This attribute specifies the frequency of the pilot channel receiver. The unit of this attribute
+//			is hertz.
+//
+//			o	If signal capability-= 0, 1, 6 or 7, this attribute is undefined.
+//
+//			o	If signal capability-= 2 or 3, this attribute is functionally RO.
+//
+//			o	If signal capability-= 4 or 5, this attribute is RW.
+//
+//			(R,-W) (optional) (4-bytes)
+//
+//		Agc Mode
+//			This attribute allows the discovery and configuration of the ONU's AGC capabilities. The
+//			attribute contains a code point for several AGC types. The ONU displays the currently used AGC
+//			mode. The OLT can discover new modes via the set command; the ONU denies attempts to set an
+//			unsupported mode. The code points are as follows.
+//
+//			0	No AGC
+//
+//			1	Broadband RF AGC
+//
+//			2	Optical AGC
+//
+//			3..255	Reserved
+//
+//			(R,-W) (optional) (1-byte)
+//
+//		Agc Setting
+//			This attribute indicates the measurement offset that the ONU should use in AGC. The attribute
+//			has a step size of 0.1-dB, represented as a signed integer.
+//
+//			The theoretical nominal RF signal is 80 channels of NTSC video, each with a per-channel OMI of
+//			3.5%. An ONU presented with such a signal should produce its specified output when this
+//			attribute is set to zero.
+//
+//			If total optical power is used for AGC, this attribute provides the OMI offset for any NTSC
+//			carriers present from the theoretical 3.5% value. For example, if the actual signal uses an OMI
+//			of 7.0% per channel (3-dB higher), then the ONU should be given an AGC setting of 30 (coded
+//			0x1E).
+//
+//			If broadband RF power is used for AGC, this attribute provides the total power offset for any
+//			NTSC carriers present from the theoretical 80-channel value. For example, if an actual signal
+//			contains 40 NTSC channels (3-dB lower), then the ONU should be given an AGC setting of -30
+//			(coded 0xE2).
+//
+//			(R,-W) (optional) (1-byte)
+//
+//		Video Lower Optical Threshold
+//			This attribute specifies the optical level used to declare the video OOR low alarm. Valid values
+//			are -12 to +6-dBm in 0.1-dB increments, represented as a 2s complement integer. (Coding -120 to
+//			+60, where 0x00-= 0-dBm, 0x88-= -12.0 dBm, etc.) Upon ME instantiation, the ONU sets this
+//			attribute to 0xA1 (-9.5-dBm). (R,-W) (optional) (1-byte)
+//
+//			NOTE - Because the power measurement returned in the optical signal level attribute has a
+//			resolution of 1-dB, it is possible that the measured value could appear to be in-range, even
+//			though an out-of-range alarm has been declared against a threshold with 0.1-dB resolution.
+//
+//		Video Upper Optical Threshold
+//			This attribute specifies the optical level used to declare the video OOR high alarm. Valid
+//			values are -12 to +6-dBm in 0.1-dB increments, represented as a 2s complement integer. (Coding
+//			-120 to +60, 0x00-= 0-dBm, 0x88-= -12.0-dBm, etc.) Upon ME instantiation, the ONU sets this
+//			attribute to 0x19 (+2.5-dBm). (R,-W) (optional) (1-byte)
+//
+type PhysicalPathTerminationPointVideoAni struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	physicalpathterminationpointvideoaniBME = &ManagedEntityDefinition{
+		Name:    "PhysicalPathTerminationPointVideoAni",
+		ClassID: 90,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Video LOS",
+			1: "Video OOR low",
+			2: "Video OOR high",
+		},
+	}
+}
+
+// NewPhysicalPathTerminationPointVideoAni (class ID 90) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewPhysicalPathTerminationPointVideoAni(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*physicalpathterminationpointvideoaniBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/physicalpathterminationpointvideouni.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/physicalpathterminationpointvideouni.go
new file mode 100644
index 0000000..40d8f61
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/physicalpathterminationpointvideouni.go
@@ -0,0 +1,118 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// PhysicalPathTerminationPointVideoUniClassID is the 16-bit ID for the OMCI
+// Managed entity Physical path termination point video UNI
+const PhysicalPathTerminationPointVideoUniClassID = ClassID(82) // 0x0052
+
+var physicalpathterminationpointvideouniBME *ManagedEntityDefinition
+
+// PhysicalPathTerminationPointVideoUni (Class ID: #82 / 0x0052)
+//	This ME represents an RF video UNI in the ONU, where physical paths terminate and physical path
+//	level functions are performed.
+//
+//	The ONU automatically creates an instance of this ME per port:
+//
+//	o	when the ONU has RF video UNI ports built into its factory configuration;
+//
+//	o	when a cardholder is provisioned to expect a circuit pack of the video UNI type;
+//
+//	o	when a cardholder provisioned for plug-and-play is equipped with a circuit pack of the video
+//	UNI type. Note that the installation of a plug-and-play card may indicate the presence of video
+//	ports via equipment ID as well as its type, and indeed may cause the ONU to instantiate a port-
+//	mapping package that specifies video ports.
+//
+//	The ONU automatically deletes instances of this ME when a cardholder is neither provisioned to
+//	expect a video circuit pack, nor is it equipped with a video circuit pack.
+//
+//	Relationships
+//		One or more instances of this ME are associated with an instance of a real or virtual circuit
+//		pack classified as video type.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. This 2-byte number indicates the
+//			physical position of the UNI. The first byte is the slot ID (defined in clause 9.1.5). The
+//			second byte is the port ID, with the range 1..255. (R) (mandatory) (2-bytes)
+//
+//		Administrative State
+//			This attribute locks (1) and unlocks (0) the functions performed by this ME. Administrative
+//			state is further described in clause A.1.6. (R,-W) (mandatory) (1-byte)
+//
+//		Operational State
+//			This attribute indicates whether the ME is capable of performing its function. Valid values are
+//			enabled (0) and disabled (1). (R) (optional) (1-byte)
+//
+//		Arc
+//			See clause A.1.4.3. (R,-W) (optional) (1-byte)
+//
+//		Arc Interval
+//			See clause A.1.4.3. (R,-W) (optional) (1-byte)
+//
+//		Power Control
+//			This attribute controls whether power is provided from the ONU to an external equipment over the
+//			video PPTP. Value 1 enables power over coaxial cable. The default value 0 disables power feed.
+//			(R,-W) (optional) (1-byte)
+//
+type PhysicalPathTerminationPointVideoUni struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	physicalpathterminationpointvideouniBME = &ManagedEntityDefinition{
+		Name:    "PhysicalPathTerminationPointVideoUni",
+		ClassID: 82,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Video-LOS",
+			1: "Video-OOR-low",
+			2: "Video-OOR-high",
+		},
+	}
+}
+
+// NewPhysicalPathTerminationPointVideoUni (class ID 82) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewPhysicalPathTerminationPointVideoUni(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*physicalpathterminationpointvideouniBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/physicalpathterminationpointxdslunipart1.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/physicalpathterminationpointxdslunipart1.go
new file mode 100644
index 0000000..cec0633
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/physicalpathterminationpointxdslunipart1.go
@@ -0,0 +1,203 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// PhysicalPathTerminationPointXdslUniPart1ClassID is the 16-bit ID for the OMCI
+// Managed entity Physical path termination point xDSL UNI part 1
+const PhysicalPathTerminationPointXdslUniPart1ClassID = ClassID(98) // 0x0062
+
+var physicalpathterminationpointxdslunipart1BME *ManagedEntityDefinition
+
+// PhysicalPathTerminationPointXdslUniPart1 (Class ID: #98 / 0x0062)
+//	This ME represents the point where physical paths terminate on an xDSL CO modem (xTU-C). The
+//	xDSL ME family is used for ADSL VDSL2 and FAST services. A legacy family of VDSL MEs remains
+//	valid for ITUT G.993.1 VDSL, if needed. It is documented in [ITUT G.983.2].
+//
+//	The ONU automatically creates an instance of this ME per port:
+//
+//	o	when the ONU has xDSL ports built into its factory configuration;
+//
+//	o	when a cardholder is provisioned to expect a circuit pack of the xDSL type;
+//
+//	o	when a cardholder provisioned for plug-and-play is equipped with a circuit pack of the xDSL
+//	type. Note that the installation of a plug-and-play card may indicate the presence of xDSL ports
+//	via equipment ID as well as its type, and indeed may cause the ONU to instantiate a port-mapping
+//	package that specifies xDSL ports.
+//
+//	The ONU automatically deletes instances of this ME when a cardholder is neither provisioned to
+//	expect an xDSL circuit pack, nor is it equipped with an xDSL circuit pack.
+//
+//	Relationships
+//		An instance of this ME is associated with each instance of a real or pre-provisioned xDSL port.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. This 2 byte number indicates the
+//			physical position of the UNI. The six LSBs of the first byte are the slot ID, defined in clause
+//			9.1.5. The two MSBs indicate the channel number in some of the implicitly linked MEs, and must
+//			be 0 in the PPTP itself. This reduces the possible number of physical slots to 64. The second
+//			byte is the port ID, with the range 1..255. (R) (mandatory) (2-bytes)
+//
+//		Loopback Configuration
+//			This attribute represents the loopback configuration of this physical interface.
+//
+//			0	No loopback
+//
+//			1	Loopback2 - a loopback at the ONU towards the OLT. The OLT can execute a physical level
+//			loopback test after loopback2 is set.
+//
+//			Upon ME instantiation, the ONU sets this attribute to 0. (R,-W) (mandatory) (1-byte)
+//
+//		Administrative State
+//			This attribute locks (1) and unlocks (0) the functions performed by this ME. Administrative
+//			state is further described in clause A.1.6. (R,-W) (mandatory) (1-byte)
+//
+//		Operational State
+//			This attribute indicates whether the ME is capable of performing its function. Valid values are
+//			enabled (0) and disabled (1). (R) (optional) (1-byte)
+//
+//		Xdsl Line Configuration Profile
+//			This attribute points to an instance of the xDSL line configuration profiles (part 1, 2 and 3)
+//			MEs, and if necessary, also to VDSL2 line configuration extensions (1 and 2) MEs, also to
+//			vectoring line configuration extension MEs. Upon ME instantiation, the ONU sets this attribute
+//			to 0, a null pointer. (R,-W) (mandatory) (2-bytes)
+//
+//		Xdsl Subcarrier Masking Downstream Profile
+//			This attribute points to an instance of the xDSL subcarrier masking downstream profile ME. Upon
+//			ME instantiation, the ONU sets this attribute to 0, a null pointer. (R,-W) (mandatory) (2-bytes)
+//
+//		Xdsl Subcarrier Masking Upstream Profile
+//			This attribute points to an instance of the xDSL subcarrier masking upstream profile ME. Upon ME
+//			instantiation, the ONU sets this attribute to 0, a null pointer. (R,-W) (mandatory) (2-bytes)
+//
+//		Xdsl Downstream Power Spectral Density Psd Mask Profile
+//			xDSL downstream power spectral density (PSD) mask profile: This attribute points to an instance
+//			of the xDSL PSD mask profile ME that defines downstream parameters. Upon ME instantiation, the
+//			ONU sets this attribute to 0, a null pointer. (R,-W) (mandatory) (2-bytes)
+//
+//		Xdsl Downstream Rfi Bands Profile
+//			This attribute points to an instance of the xDSL downstream RFI bands profile ME. Upon ME
+//			instantiation, the ONU sets this attribute to 0, a null pointer. (R,-W) (mandatory) (2-bytes)
+//
+//		Arc
+//			See clause A.1.4.3. (R,-W) (optional) (1-byte)
+//
+//		Arc Interval
+//			See clause A.1.4.3. (R,-W) (optional) (1-byte)
+//
+//		Modem Type
+//			This attribute specifies the modem type. If the hardware cannot support the requested modem
+//			type, the ONU should deny the provisioning command. For backward compatibility, the attribute is
+//			optional, with a default of ATM.
+//
+//			0	undefined
+//
+//			1	ATM (default)
+//
+//			2	PTM (Ethernet)
+//
+//			(R,-W) (optional) (1-byte)
+//
+//			NOTE - Many newer VDSL2 chip sets support only PTM. The ATM default is retained for backward
+//			compatibility, but implementers should be aware that the default may need to be overridden by
+//			provisioning before the xDSL UNI can be brought into service.
+//
+//		Upstream Psd Mask Profile
+//			This attribute points to an instance of the xDSL PSD mask profile that defines upstream
+//			parameters. Upon ME instantiation, the ONU sets this attribute to 0, a null pointer. (R,-W)
+//			(optional) (2-bytes)
+//
+//		Network Specific Extensions Pointer
+//			This attribute points to a network address ME that contains the path and name of a file
+//			containing network specific parameters for the associated UNI. Upon ME instantiation, the ONU
+//			sets this attribute to 0xFFFF, a null pointer. (R,-W) (optional) (2-bytes)
+//
+type PhysicalPathTerminationPointXdslUniPart1 struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	physicalpathterminationpointxdslunipart1BME = &ManagedEntityDefinition{
+		Name:    "PhysicalPathTerminationPointXdslUniPart1",
+		ClassID: 98,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0:  "NE LOF",
+			1:  "NE LOS",
+			2:  "NE LOL",
+			3:  "NE LPR",
+			4:  "Card alm",
+			5:  "FE LOF",
+			6:  "FE LOS",
+			7:  "FE LOL",
+			8:  "FE LPR",
+			9:  "DRT up",
+			10: "DRT down",
+			11: "LINIT",
+			12: "LCD",
+			13: "NCD",
+			14: "LCD-FE",
+			15: "NCD-FE",
+			16: "File not found",
+			17: "OOS",
+			18: "OOS-FE",
+			19: "LOR",
+			20: "LOM",
+			21: "LOR-FE",
+			22: "LOM-FE",
+		},
+	}
+}
+
+// NewPhysicalPathTerminationPointXdslUniPart1 (class ID 98) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewPhysicalPathTerminationPointXdslUniPart1(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*physicalpathterminationpointxdslunipart1BME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/physicalpathterminationpointxdslunipart2.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/physicalpathterminationpointxdslunipart2.go
new file mode 100644
index 0000000..6aca5a1
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/physicalpathterminationpointxdslunipart2.go
@@ -0,0 +1,112 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// PhysicalPathTerminationPointXdslUniPart2ClassID is the 16-bit ID for the OMCI
+// Managed entity Physical path termination point xDSL UNI part 2
+const PhysicalPathTerminationPointXdslUniPart2ClassID = ClassID(99) // 0x0063
+
+var physicalpathterminationpointxdslunipart2BME *ManagedEntityDefinition
+
+// PhysicalPathTerminationPointXdslUniPart2 (Class ID: #99 / 0x0063)
+//	This ME represents the point in the ONU where physical paths terminate on an xDSL CO modem
+//	(xTU-C). Standards and chip sets support several forms of DSL, including VDSL2, and the xDSL ME
+//	family is used for all of them, with specific extensions for technology variations.
+//
+//	The ONU creates or deletes an instance of this ME at the same time it creates or deletes the
+//	corresponding PPTP xDSL UNI part 1.
+//
+//	Relationships
+//		An instance of this ME is associated with each instance of a PPTP xDSL UNI part 1.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the PPTP xDSL UNI part 1. (R) (mandatory) (2-bytes)
+//
+//			Each of the following eight attributes is a pointer to an xDSL channel configuration profile ME.
+//			In each case, the default value 0, set when the ME is auto-created, is a null pointer.
+//
+//		Xdsl Channel Configuration Profile For Bearer Channel 0 Downstream
+//				(R,-W) (optional) (2-bytes)
+//
+//		Xdsl Channel Configuration Profile For Bearer Channel 1 Downstream
+//				(R,-W) (optional) (2-bytes)
+//
+//		Xdsl Channel Configuration Profile For Bearer Channel 2 Downstream
+//				(R,-W) (optional) (2-bytes)
+//
+//		Xdsl Channel Configuration Profile For Bearer Channel 3 Downstream
+//				(R,-W) (optional) (2-bytes)
+//
+//		Xdsl Channel Configuration Profile For Bearer Channel 0 Upstream
+//				(R,-W) (optional) (2-bytes)
+//
+//		Xdsl Channel Configuration Profile For Bearer Channel 1 Upstream
+//				(R,-W) (optional) (2-bytes)
+//
+//		Xdsl Channel Configuration Profile For Bearer Channel 2 Upstream
+//				(R,-W) (optional) (2-bytes)
+//
+//		Xdsl Channel Configuration Profile For Bearer Channel 3 Upstream
+//				(R,-W) (optional) (2-bytes)
+//
+type PhysicalPathTerminationPointXdslUniPart2 struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	physicalpathterminationpointxdslunipart2BME = &ManagedEntityDefinition{
+		Name:    "PhysicalPathTerminationPointXdslUniPart2",
+		ClassID: 99,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewPhysicalPathTerminationPointXdslUniPart2 (class ID 99) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewPhysicalPathTerminationPointXdslUniPart2(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*physicalpathterminationpointxdslunipart2BME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/physicalpathterminationpointxdslunipart3.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/physicalpathterminationpointxdslunipart3.go
new file mode 100644
index 0000000..454a126
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/physicalpathterminationpointxdslunipart3.go
@@ -0,0 +1,104 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// PhysicalPathTerminationPointXdslUniPart3ClassID is the 16-bit ID for the OMCI
+// Managed entity Physical path termination point xDSL UNI part 3
+const PhysicalPathTerminationPointXdslUniPart3ClassID = ClassID(427) // 0x01ab
+
+var physicalpathterminationpointxdslunipart3BME *ManagedEntityDefinition
+
+// PhysicalPathTerminationPointXdslUniPart3 (Class ID: #427 / 0x01ab)
+//	This ME represents the point in the ONU where physical paths terminate on an xDSL CO modem
+//	(xTU-C). Standards and chip sets support several forms of DSL, including VDSL2 and FAST, and the
+//	xDSL ME family is used for all of them, with specific extensions for technology variations.
+//
+//	The ONU creates or deletes an instance of this ME at the same time it creates or deletes the
+//	corresponding PPTP xDSL UNI part 1.
+//
+//	Relationships
+//		An instance of this ME is associated with each instance of a real or preprovisioned xDSL port
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. This 2 byte number indicates the
+//			physical position of the UNI. The six LSBs of the first byte are the slot ID, defined in clause
+//			9.1.5. The two MSBs indicate the channel number in some of the implicitly linked MEs, and must
+//			be 0 in the PPTP itself. This reduces the possible number of physical slots to 64. The second
+//			byte is the port ID, with range 1..255. (R) (mandatory) (2 bytes)
+//
+//		Fast Line Configuration Profile
+//			This attribute points to an instance of the FAST line configuration profiles (part 1, 2, 3 and
+//			4) MEs, also to FAST vectoring line configuration extension MEs. Upon ME instantiation, the ONU
+//			sets this attribute to 0, a null pointer. (R, W) (mandatory) (2 bytes)
+//
+//		Fast Data Path Configuration Profile
+//			This attribute points to an instance of the FAST data configuration profile that defines data
+//			path parameters. Upon ME instantiation, the ONU sets this attribute to 0, a null pointer. (R, W)
+//			(optional) (2 bytes)
+//
+//		Fast Channel Configuration Profile For Bearer Channel 0 Downstream
+//			This attribute points to an instance of the FAST channel configuration profile that defines
+//			channel parameters. Upon ME instantiation, the ONU sets this attribute to 0, a null pointer.
+//			(R,-W) (optional) (2-bytes) (R,-W) (optional) (2-bytes)
+//
+//		Fast Xdsl Channel Configuration Profile For Bearer Channel 0 Upstream
+//			This attribute points to an instance of the FAST channel configuration profile that defines
+//			channel parameters. Upon ME instantiation, the ONU sets this attribute to 0, a null pointer
+//			(R,-W) (optional) (2-bytes)
+//
+type PhysicalPathTerminationPointXdslUniPart3 struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	physicalpathterminationpointxdslunipart3BME = &ManagedEntityDefinition{
+		Name:    "PhysicalPathTerminationPointXdslUniPart3",
+		ClassID: 427,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewPhysicalPathTerminationPointXdslUniPart3 (class ID 427) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewPhysicalPathTerminationPointXdslUniPart3(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*physicalpathterminationpointxdslunipart3BME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/priorityqueue.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/priorityqueue.go
new file mode 100644
index 0000000..e58ae53
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/priorityqueue.go
@@ -0,0 +1,291 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// PriorityQueueClassID is the 16-bit ID for the OMCI
+// Managed entity Priority queue
+const PriorityQueueClassID = ClassID(277) // 0x0115
+
+var priorityqueueBME *ManagedEntityDefinition
+
+// PriorityQueue (Class ID: #277 / 0x0115)
+//	NOTE 1 - In [ITU-T G.984.4], this is called a priority queue-G.
+//
+//	This ME specifies the priority queue used by a GEM port network CTP in the upstream direction.
+//	The upstream priority queue ME is also related to a T-CONT ME. By default, this relationship is
+//	fixed by the ONU hardware architecture, but some ONUs may also permit the relationship to be
+//	configured through the OMCI, as indicated by the QoS configuration flexibility attribute of the
+//	ONU2G ME.
+//
+//	In the downstream direction, priority queues are associated with UNIs. Again, the association is
+//	fixed by default, but some ONUs may permit the association to be configured through the OMCI.
+//
+//	If an ONU as a whole contains priority queues, it instantiates these queues autonomously.
+//	Priority queues may also be localized to pluggable circuit packs, in which case the ONU creates
+//	and deletes them in accordance with circuit pack pre-provisioning and the equipped
+//	configuration.
+//
+//	The OLT can find all the queues by reading the priority queue ME instances. If the OLT tries to
+//	retrieve a non-existent priority queue, the ONU denies the get action with an error indication.
+//
+//	See also Appendix II.
+//
+//	Priority queues can exist in the ONU core and circuit packs serving both UNI and ANI functions.
+//	Therefore, they can be indirectly created and destroyed through cardholder provisioning actions.
+//
+//	In the upstream direction, the weight attribute permits the configuring of an optional traffic
+//	scheduler. Several attributes support back pressure operation, whereby a back-pressure signal is
+//	sent backwards and causes the attached terminal to temporarily suspend sending data.
+//
+//	In the downstream direction, strict priority discipline among the queues serving a given UNI is
+//	the default, with priorities established through the related port attribute. If two or more non-
+//	empty queues have the same priority, capacity is allocated among them in proportion to their
+//	weights. Note that the details of the downstream model differ from those of the upstream model.
+//
+//	The yellow packet drop thresholds specify the drop probability for a packet that has been marked
+//	yellow (drop eligible) by a traffic descriptor or by external equipment such as a residential
+//	gateway (RG). If the current average queue occupancy is less than the minimum threshold, the
+//	yellow packet drop probability is zero. If the current average queue occupancy is greater than
+//	or equal to the maximum threshold, the yellow packet drop probability is one. The yellow drop
+//	probability increases linearly between 0 and max_p as the current average queue occupancy
+//	increases from the minimum to the maximum threshold.
+//
+//	The same model can be configured for green packets, those regarded as being within the traffic
+//	contract.
+//
+//	Drop precedence colour marking indicates the method by which a packet is marked as drop eligible
+//	(yellow). For discard eligibility indicator (DEI) and priority code point (PCP) marking, a drop
+//	eligible indicator is equivalent to yellow colour; otherwise, the colour is green. For
+//	differentiated services code point (DSCP) assured forwarding (AF) marking, the lowest drop
+//	precedence is equivalent to green; otherwise, the colour is yellow.
+//
+//	Relationships
+//		One or more instances of this ME are associated with the ONU-G ME to model upstream priority
+//		queues if the traffic management option attribute in the ONU-G ME is 0 or 2.////		One or more instances of this ME are associated with a PPTP UNI ME as downstream priority
+//		queues. Downstream priority queues may or may not be provided for a virtual Ethernet interface
+//		point (VEIP).
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. The MSB represents the direction
+//			(1: upstream, 0:-downstream). The 15 LSBs represent a queue ID. The queue ID is numbered in
+//			ascending order by the ONU itself. It is strongly encouraged that the queue ID be formulated to
+//			simplify finding related queues. One way to do this is to number the queues such that the
+//			related port attributes are in ascending order (for the downstream and upstream queues
+//			separately). The range of downstream queue ids is 0 to 0x7FFF and the range of upstream queue
+//			ids is 0x8000 to 0xFFFF. (R) (mandatory) (2-bytes)
+//
+//		Queue Configuration Option
+//			This attribute identifies the buffer partitioning policy. The value 1 means that several queues
+//			share one buffer of maximum queue size, while the value 0 means that each queue has an
+//			individual buffer of maximum queue size. (R) (mandatory) (1-byte)
+//
+//		Maximum Queue Size
+//			This attribute specifies the maximum size of the queue, in bytes, scaled by the priority queue
+//			scale factor attribute of the ONU2G. (R) (mandatory) (2 bytes)
+//
+//			NOTE 2 - In this and the other similar attributes of the priority queue ME, some legacy
+//			implementations may take the queue scale factor from the GEM block length attribute of the ANI-G
+//			ME. This option is discouraged in new implementations.
+//
+//		Allocated Queue Size
+//			This attribute identifies the allocated size of this queue, in bytes, scaled by the priority
+//			queue scale factor attribute of the ONU2G. (R, W) (mandatory) (2 bytes)
+//
+//		Discard_Block Counter Reset Interval
+//			Discard-block counter reset interval: This attribute represents the interval in milliseconds at
+//			which the counter resets itself. (R,-W) (optional) (2-bytes)
+//
+//		Threshold Value For Discarded Blocks Due To Buffer Overflow
+//			This attribute specifies the threshold for the number of bytes (scaled by the priority queue
+//			scale factor attribute of the ONU2G) discarded on this queue due to buffer overflow. Its value
+//			controls the declaration of the block loss alarm. (R, W) (optional) (2-bytes)
+//
+//		Related Port
+//			This attribute represents the slot, port/T-CONT and priority information associated with the
+//			instance of priority queue ME. This attribute comprises 4-bytes.
+//
+//			In the upstream direction, the first 2-bytes are the ME ID of the associated T-CONT, the first
+//			byte of which is a slot number, the second byte a T-CONT number. In the downstream direction,
+//			the first byte is the slot number and the second byte is the port number of the queue's
+//			destination port.
+//
+//			The last 2-bytes represent the priority of this queue. The range of priority is 0 to 0x0FFF. The
+//			value 0 indicates the highest priority and 0x0FFF indicates the lowest priority. The priority
+//			field is meaningful if multiple priority queues are associated with a T-CONT or traffic
+//			scheduler whose scheduling discipline is strict priority.
+//
+//			(R, W) (mandatory) (4 bytes)
+//
+//			NOTE 3 - If flexible port configuration is supported, the related port attribute is meaningful
+//			only if the traffic scheduler pointer attribute value is null. Otherwise, the related port
+//			attribute is ignored.
+//
+//			NOTE 4 - The related port attribute is read-only, unless otherwise specified by the QoS
+//			configuration flexibility attribute of the ONU2-G ME. If port flexibility is supported, the
+//			second byte, the port or T-CONT number, may be changed. If priority flexibility is supported,
+//			the third and fourth bytes may be changed. The OMCI set command must contain 4-bytes to match
+//			the attribute size, but the ONU must ignore all bytes that are not specified to be flexible.
+//
+//			If flexible configuration is not supported, the ONU should reject an attempt to set the related
+//			port with a parameter error result-reason code.
+//
+//		Traffic Scheduler Pointer
+//			The ONU should reject an attempt to violate these conditions with a parameter error result-
+//			reason code.
+//
+//			This attribute points to the traffic scheduler ME instance that is associated with this priority
+//			queue. This pointer is used when this priority queue is connected with a traffic scheduler. The
+//			default value is a null pointer (0). (R, W) (mandatory) (2 bytes)
+//
+//			NOTE 5 - When the QoS configuration flexibility attribute of the ONU2-G ME allows flexible
+//			assignment of the traffic scheduler, the OLT may configure the traffic scheduler pointer to
+//			refer to any traffic scheduler in the same slot.
+//
+//			If traffic scheduler flexibility is not permitted by the QoS configuration flexibility
+//			attribute, the OLT may use the traffic scheduler pointer attribute only by pointing to another
+//			traffic scheduler ME that is associated with the same T-CONT as the priority queue itself.
+//
+//		Weight
+//			This attribute represents weight for WRR scheduling. At a given priority level, capacity is
+//			distributed to non-empty queues in proportion to their weights. In the upstream direction, this
+//			weight is meaningful if several priority queues are associated with a traffic scheduler or
+//			T-CONT whose policy is WRR. In the downstream direction, this weight is used by a UNI in a WRR
+//			fashion. Upon ME instantiation, the ONU sets this attribute to 1. (R,-W) (mandatory) (1-byte)
+//
+//		Back Pressure Operation
+//			This attribute enables (0) or disables (1) back pressure operation. Its default value is 0.
+//			(R,-W) (mandatory) (2-bytes)
+//
+//		Back Pressure Time
+//			This attribute specifies the duration in microseconds of the backpressure signal. It can be used
+//			as a pause time for an Ethernet UNI. Upon ME instantiation, the ONU sets this attribute to 0.
+//			(R,-W) (mandatory) (4-bytes)
+//
+//		Back Pressure Occur Queue Threshold
+//			This attribute identifies the threshold queue occupancy, in bytes, scaled by the priority queue
+//			scale factor attribute of the ONU2G, to start sending a back-pressure signal. (R, W) (mandatory)
+//			(2-bytes)
+//
+//		Back Pressure Clear Queue Threshold
+//			This attribute identifies the threshold queue occupancy, in bytes, scaled by the priority queue
+//			scale factor attribute of the ONU2G, to stop sending a back-pressure signal. (R, W) (mandatory)
+//			(2-bytes)
+//
+//		Packet Drop Queue Thresholds
+//			This attribute is a composite of four 2-byte values, a minimum and a maximum threshold, measured
+//			in bytes, scaled by the priority queue scale factor attribute of the ONU2-G, for green and
+//			yellow packets. The first value is the minimum green threshold, the queue occupancy below which
+//			all green packets are admitted to the queue. The second value is the maximum green threshold,
+//			the queue occupancy at or above which all green packets are discarded. The third value is the
+//			minimum yellow threshold, the queue occupancy below which all yellow packets are admitted to the
+//			queue. The fourth value is the maximum yellow threshold, the queue occupancy at or above which
+//			all yellow packets are discarded. The default is that all thresholds take the value of the
+//			maximum queue size. (R,-W) (optional) (8-bytes)
+//
+//		Packet Drop Max_P
+//			This attribute is a composite of two 1-byte values, the probability of dropping a coloured
+//			packet when the queue occupancy lies just below the maximum threshold for packets of that
+//			colour. The first value is the green packet max_p, and the second value is the yellow packet
+//			max_p. The probability, max_p, is determined by adding one to the unsigned value (0..255) of
+//			this attribute and dividing the result by 256. The default for each value is 255. (R,-W)
+//			(optional) (2-bytes)
+//
+//		Queue Drop W_Q
+//			This attribute determines the averaging coefficient, w_q, as described in [b-Floyd]. The
+//			averaging coefficient, w_q, is equal to 2Queue_drop_w_q. For example, when queue drop_w_q has
+//			the value 9, the averaging coefficient, w_q, is 1/512-= 0.001-9. The default value is 9. (R,-W)
+//			(optional) (1-byte)
+//
+//		Drop Precedence Colour Marking
+//			6	PCP 5P3D [IEEE 802.1ad]
+//
+//			7	DSCP AF class [IETF RFC 2597]
+//
+//			(R,-W) (optional) (1-byte)
+//
+//			This attribute specifies how drop precedence is marked on ingress packets to the priority queue.
+//			The default value is 0.
+//
+//			0	No marking (treat all packets as green)
+//
+//			1	Internal marking (from traffic descriptor ME)
+//
+//			2	DEI [IEEE 802.1ad]
+//
+//			3	PCP 8P0D [IEEE 802.1ad]
+//
+//			4	PCP 7P1D [IEEE 802.1ad]
+//
+//			5	PCP 6P2D [IEEE 802.1ad]
+//
+type PriorityQueue struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	priorityqueueBME = &ManagedEntityDefinition{
+		Name:    "PriorityQueue",
+		ClassID: 277,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Block loss",
+		},
+	}
+}
+
+// NewPriorityQueue (class ID 277) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewPriorityQueue(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*priorityqueueBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/pseudowiremaintenanceprofile.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/pseudowiremaintenanceprofile.go
new file mode 100644
index 0000000..20aa1fc
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/pseudowiremaintenanceprofile.go
@@ -0,0 +1,212 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// PseudowireMaintenanceProfileClassID is the 16-bit ID for the OMCI
+// Managed entity Pseudowire maintenance profile
+const PseudowireMaintenanceProfileClassID = ClassID(284) // 0x011c
+
+var pseudowiremaintenanceprofileBME *ManagedEntityDefinition
+
+// PseudowireMaintenanceProfile (Class ID: #284 / 0x011c)
+//	The pseudowire maintenance profile permits the configuration of pseudowire service exception
+//	handling. It is created and deleted by the OLT.
+//
+//	The settings, and indeed existence, of a pseudowire maintenance profile affect the behaviour of
+//	the pseudowire PM history data ME only in establishing criteria for counting SESs, but in no
+//	other way. The pseudowire maintenance profile primarily affects the alarms declared by the
+//	subscribing pseudowire TP.
+//
+//	Relationships
+//		One or more instances of the pseudowire TP may point to an instance of the pseudowire
+//		maintenance profile. If the pseudowire TP does not refer to a pseudowire maintenance profile,
+//		the ONU's default exception handling is implied.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. The value 0 is reserved. (R,
+//			setbycreate) (mandatory) (2-bytes)
+//
+//		Jitter Buffer Maximum Depth
+//			This attribute specifies the desired maximum depth of the playout buffer in the PSN to the TDM
+//			direction. The value is expressed as a multiple of the 125-vs frame rate. The default value 0
+//			selects the ONU's internal policy. (R,-W, setbycreate) (optional) (2-bytes)
+//
+//		Jitter Buffer Desired Depth
+//			This attribute specifies the desired nominal fill depth of the playout buffer in the PSN to the
+//			TDM direction. The value is expressed as a multiple of the 125-vs frame rate. The default value
+//			0 selects the ONU's internal policy. (R,-W, setbycreate) (optional) (2-bytes)
+//
+//		Fill Policy
+//			This attribute defines the payload bit pattern to be applied towards the TDM service if no
+//			payload packet is available to play out. The default value 0 specifies that the ONU apply its
+//			internal policy.
+//
+//			0	ONU default, vendor-specific (recommended: AIS for unstructured service, all 1s for structured
+//			service)
+//
+//			1	Play out AIS according to the service definition (for example, DS3 AIS)
+//
+//			2	Play out all 1s
+//
+//			3	Play out all 0s
+//
+//			4	Repeat the previous data
+//
+//			5	Play out DS1 idle (Appendix C of [b-ATIS-0600403])
+//
+//			6..15	Reserved for future standardization
+//
+//			16..255	Vendor-specific, not to be standardized
+//
+//			(R,-W, setbycreate) (optional) (1-byte)
+//
+//			Four pairs of alarm-related policy attributes, defined in the following, share common behaviour.
+//
+//			The alarm declaration policy attribute defines the anomaly rate that causes the corresponding
+//			alarm to be declared. It is an integer percentage between 1..100. If this density of anomalies
+//			occurs during the alarm onset soak interval, the alarm is declared. The default value 0 selects
+//			the ONU's internal policy.
+//
+//			The alarm clear policy attribute defines the anomaly rate that causes the corresponding alarm to
+//			be cleared. It is an integer percentage between 0..99. If no more than this density of anomalies
+//			occurs during the alarm clear soak interval, the alarm is cleared. The default value 255 selects
+//			the ONU's internal policy.
+//
+//		Misconnected Packets Declaration Policy
+//			(R,-W, setbycreate) (optional) (1-byte)
+//
+//		Misconnected Packets Clear Policy
+//			(R,-W, setbycreate) (optional) (1-byte)
+//
+//		Loss Of Packets Declaration Policy
+//			(R,-W, setbycreate) (optional) (1-byte)
+//
+//		Loss Of Packets Clear Policy
+//			(R,-W, setbycreate) (optional) (1-byte)
+//
+//		Buffer Overrun_Underrun Declaration Policy
+//			Buffer overrun/underrun declaration policy: (R,-W, setbycreate) (optional) (1-byte)
+//
+//		Buffer Overrun_Underrun Clear Policy
+//			Buffer overrun/underrun clear policy: (R,-W, setbycreate) (optional) (1-byte)
+//
+//		Malformed Packets Declaration Policy
+//			(R,-W, setbycreate) (optional) (1-byte)
+//
+//		Malformed Packets Clear Policy
+//			(R,-W, setbycreate) (optional) (1-byte)
+//
+//		R_Bit Transmit Set Policy
+//			R-bit transmit set policy: This attribute defines the number of consecutive lost packets that
+//			causes the transmitted R bit to be set in the TDM to the PSN direction, indicating lost packets
+//			to the far end. The default value 0 selects the ONU's internal policy. (R,-W, setbycreate)
+//			(optional) (1-byte)
+//
+//		R_Bit Transmit Clear Policy
+//			R-bit transmit clear policy: This attribute defines the number of consecutive valid packets that
+//			causes the transmitted R bit to be cleared in the TDM to the PSN direction, removing the remote
+//			failure indication to the far end. The default value 0 selects the ONU's internal policy. (R,-W,
+//			setbycreate) (optional) (1-byte)
+//
+//		R_Bit Receive Policy
+//			R-bit receive policy: This attribute defines the action towards the N-*-64 TDM interface when
+//			remote failure is indicated on packets received from the PSN (either Rbit set or M-=-0b10 while
+//			the L bit is cleared).
+//
+//			0	Do nothing (recommended to be the default)
+//
+//			1	Play out service-specific RAI/REI/RDI code
+//
+//			2	Send channel idle signalling and idle channel payload to all DS0s comprising the service
+//
+//			(R,-W, setbycreate) (optional) (1-byte)
+//
+//		L Bit Receive Policy
+//			This attribute defines the action towards the TDM interface when farend TDM failure is indicated
+//			on packets received from the PSN (L bit set).
+//
+//			0	Play out service-specific AIS (recommended to be the default)
+//
+//			1	Repeat last received packet
+//
+//			2	Send channel idle signalling and idle channel payload to all DS0s comprising the service
+//
+//			(R,-W, setbycreate) (optional) (1-byte)
+//
+//		Ses Threshold
+//			Number of lost, malformed or otherwise unusable packets expected in the PSN to the TDM direction
+//			within a 1-s interval that causes an SES to be counted. Stray packets do not count towards an
+//			SES, nor do packets whose L bit is set at the far end. The value 0 specifies that the ONU uses
+//			its internal default, which is not necessarily the same as the recommended default value 3. (R,
+//			W, set-by-create) (optional) (2 bytes)
+//
+type PseudowireMaintenanceProfile struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	pseudowiremaintenanceprofileBME = &ManagedEntityDefinition{
+		Name:    "PseudowireMaintenanceProfile",
+		ClassID: 284,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewPseudowireMaintenanceProfile (class ID 284) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewPseudowireMaintenanceProfile(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*pseudowiremaintenanceprofileBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/pseudowireperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/pseudowireperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..e570ba2
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/pseudowireperformancemonitoringhistorydata.go
@@ -0,0 +1,186 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// PseudowirePerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity Pseudowire performance monitoring history data
+const PseudowirePerformanceMonitoringHistoryDataClassID = ClassID(285) // 0x011d
+
+var pseudowireperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// PseudowirePerformanceMonitoringHistoryData (Class ID: #285 / 0x011d)
+//	This ME collects PM for a pseudowire TP. Most of the attributes monitor packets received from
+//	the PSN, and may therefore be considered egress PM. For the most part, ingress PM is collected
+//	at the CES PPTP ME.
+//
+//	NOTE - The pseudowire PM history data ME collects data similar, but not identical, to that
+//	available from the MAC bridge port PM history data ME associated with a MAC bridge. When the
+//	pseudowire is bridge-based, it may not be necessary to collect both.
+//
+//	Instances of this ME are created and deleted by the OLT.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of the pseudowire TP.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the pseudowire TP. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 and 2 MEs
+//			that contains PM threshold values. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Received Packets
+//			This attribute counts the total number of packets, both payload and signalling, received in the
+//			PSN to the TDM direction. (R) (mandatory) (4-bytes)
+//
+//		Transmitted Packets
+//			This attribute counts the total number of packets, both payload and signalling, transmitted in
+//			the TDM to the PSN direction. The count includes packets whose L bit is set and which may
+//			therefore not contain a payload. (R) (mandatory) (4-bytes)
+//
+//		Missing Packets
+//			This attribute counts the number of lost packets, as indicated by gaps in the control word
+//			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 Dropped
+//			This attribute counts the number of packets received out of sequence that were discarded, either
+//			because the ONU did not support reordering or because it was too late to reorder them. Both
+//			payload and signalling packets, if any, contribute to this count. (R) (mandatory) (4-bytes)
+//
+//		Playout Buffer Underruns_Overruns
+//			Playout buffer underruns/overruns: This attribute counts the number of packets that were
+//			discarded because they arrived too late or too early to be played out. Both payload and
+//			signalling packets, if any, contribute to this count. (R) (mandatory) (4-bytes)
+//
+//		Malformed Packets
+//			This attribute counts the number of malformed packets, e.g., because the packet length was not
+//			as expected or because of an unexpected RTP payload type. Both payload and signalling packets,
+//			if any, contribute to this count. (R) (mandatory) (4-bytes)
+//
+//		Stray Packets
+//			This attribute counts the number of packets whose ECID or RTP SSRC failed to match the expected
+//			value, or which are otherwise known to have been misdelivered. Stray packets are discarded
+//			without affecting any of the other PM counters. Both payload and signalling packets, if any,
+//			contribute to this count. (R) (mandatory) (4-bytes)
+//
+//		Remote Packet Loss
+//			This attribute counts received packets whose R bit is set, indicating the loss of packets at the
+//			far end. Both payload and signalling packets, if any, contribute to this count. (R) (mandatory)
+//			(4-bytes)
+//
+//		Tdm L_Bit Packets Transmitted
+//			TDM L-bit packets transmitted: This attribute counts the number of packets transmitted with the
+//			L bit set, indicating a near-end TDM fault. Both payload and signalling packets, if any,
+//			contribute to this count. (R) (mandatory) (4-bytes)
+//
+//		Es
+//			This attribute counts errored seconds. Any discarded, lost, malformed or unusable packet
+//			received from the PSN during a given second causes this counter to increment. Both payload and
+//			signalling packets, if any, contribute to this count. (R) (mandatory) (4-bytes)
+//
+//		Ses
+//			This attribute counts severely errored seconds. The criterion for an SES may be configured
+//			through the pseudowire maintenance profile ME. Both payload and signalling packets, if any,
+//			contribute to this count. (R) (mandatory) (4-bytes)
+//
+//		Uas
+//			This attribute counts unavailable seconds. An unavailable second begins at the onset of 10
+//			consecutive SES and ends at the onset of 10 consecutive seconds that are not severely errored. A
+//			service is unavailable if either its payload or its signalling, if any, are unavailable. During
+//			unavailable time, only UAS should be counted; other anomalies should not be counted. (R)
+//			(mandatory) (4-bytes)
+//
+type PseudowirePerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	pseudowireperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "PseudowirePerformanceMonitoringHistoryData",
+		ClassID: 285,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Missing packets",
+			1: "Misordered packets, usable",
+			2: "Misordered packets dropped",
+			3: "Playout buffer underruns/overruns",
+			4: "Malformed packets",
+			5: "Stray packets",
+			6: "Remote packet loss",
+			7: "ES",
+			8: "SES",
+			9: "UAS",
+		},
+	}
+}
+
+// NewPseudowirePerformanceMonitoringHistoryData (class ID 285) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewPseudowirePerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*pseudowireperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/pseudowireterminationpoint.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/pseudowireterminationpoint.go
new file mode 100644
index 0000000..31e0654
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/pseudowireterminationpoint.go
@@ -0,0 +1,226 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// PseudowireTerminationPointClassID is the 16-bit ID for the OMCI
+// Managed entity Pseudowire termination point
+const PseudowireTerminationPointClassID = ClassID(282) // 0x011a
+
+var pseudowireterminationpointBME *ManagedEntityDefinition
+
+// PseudowireTerminationPoint (Class ID: #282 / 0x011a)
+//	The pseudowire TP supports packetized (rather than TDM) transport of TDM services, transported
+//	either directly over Ethernet, over UDP/IP or over MPLS. Instances of this ME are created and
+//	deleted by the OLT.
+//
+//	Relationships
+//		One pseudowire TP ME exists for each distinct TDM service that is mapped to a pseudowire.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Underlying Transport
+//			2	MPLS
+//
+//			(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//			Underlying transport:
+//
+//			0	Ethernet, MEF 8
+//
+//			1	UDP/IP
+//
+//		Service Type
+//			This attribute specifies the basic service type, either a transparent bit pipe or an
+//			encapsulation that recognizes the underlying structure of the payload.
+//
+//			0	Basic unstructured (also known as structure agnostic)
+//
+//			1	Octet-aligned unstructured, structure agnostic. Applicable only to DS1, a mode in which each
+//			frame of 193 bits is encapsulated in 25 bytes with 7 padding bits.
+//
+//			2	Structured (structure-locked)
+//
+//			(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Signalling
+//			1	CAS, to be carried in the same packet stream as the payload
+//
+//			2	CAS, to be carried in a separate signalling channel
+//
+//			(R,-W, setbycreate) (mandatory for structured service type) (1-byte)
+//
+//				0	No signalling visible at this layer
+//
+//		Tdm Uni Pointer
+//			If service type-= structured, this attribute points to a logical N-* 64-kbit/s subport CTP.
+//			Otherwise, this attribute points to a PPTP CES UNI. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		North_Side Pointer
+//			North-side pointer: When the pseudowire service is transported via IP, as indicated by the
+//			underlying transport attribute, the northside pointer attribute points to an instance of the
+//			TCP/UDP config data ME. When the pseudowire service is transported directly over Ethernet, the
+//			north-side pointer attribute is not used - the linkage to the Ethernet flow TP is implicit in
+//			the ME IDs. When the pseudowire service is transported over MPLS, the northside pointer
+//			attribute points to an instance of the MPLS PW TP. (R, W, setbycreate) (mandatory) (2 bytes)
+//
+//		Far_End Ip Info
+//			A null pointer is appropriate if the pseudowire is not transported via IP. (R,-W, setbycreate)
+//			(mandatory for IP transport) (2-bytes)
+//
+//			Far-end IP info: When the pseudowire service is transported via IP, this attribute points to a
+//			large string ME that contains the URI of the far-end TP, e.g.,
+//
+//			udp://192.168.100.221:5000
+//
+//			udp://pwe3srvr.int.example.net:2222
+//
+//		Payload Size
+//			Number of payload bytes per packet. Valid only if service type-= basic unstructured or octet-
+//			aligned unstructured. Valid choices depend on the TDM service, but must include the following.
+//			Other choices are at the vendor's discretion.
+//
+//			DS1	192
+//
+//			DS1	200, required only if an octet-aligned unstructured service is supported
+//
+//			E1	256
+//
+//			DS3	1024
+//
+//			E3	1024
+//
+//			(R,-W, setbycreate) (mandatory for unstructured service) (2-bytes)
+//
+//		Payload Encapsulation Delay
+//			Number of 125-us frames to be encapsulated in each pseudowire packet. Valid only if service
+//			type-= structured. The minimum set of choices for various TDM services is listed in the
+//			following table, and is affected by the possible presence of in-band signalling. Other choices
+//			are at the vendor's discretion.
+//
+//			(R,-W, setbycreate) (mandatory for structured service) (1-byte)
+//
+//		Timing Mode
+//			(R,-W) (mandatory) (1-byte)
+//
+//			This attribute selects the timing mode of the TDM service. If RTP is used, this attribute must
+//			be set to be consistent with the value of the RTP timestamp mode attribute in the RTP pseudowire
+//			parameters ME, or its equivalent, at the far end.
+//
+//			0	Network timing (default)
+//
+//			1	Differential timing
+//
+//			2	Adaptive timing
+//
+//			3	Loop timing: local TDM transmit clock derived from local TDM receive stream
+//
+//		Transmit Circuit Id
+//			This attribute is a pair of emulated circuit ID (ECID) values that the ONU transmits in the
+//			direction from the TDM termination towards the packet-switched network (PSN). MEF 8 ECIDs lie in
+//			the range 1..1048575 (220-- 1). To allow for the possibility of other transport (L2TP) in the
+//			future, each ECID is allocated 4-bytes.
+//
+//			The first value is used for the payload ECID; the second is used for the optional separate
+//			signalling ECID. The first ECID is required for all MEF 8 pseudowires; the second is required
+//			only if signalling is to be carried in a distinct channel. If signalling is not present, or is
+//			carried in the same channel as the payload, the second ECID should be set to 0.
+//
+//			(R,-W) (mandatory for MEF 8 transport) (8-bytes)
+//
+//		Expected Circuit Id
+//			This attribute is a pair of ECID values that the ONU can expect in the direction from the PSN
+//			towards the TDM termination. Checking ECIDs may be a way to detect circuit misconnection. MEF 8
+//			ECIDs lie in the range 1..1048575 (220-- 1). To allow for the possibility of other transport
+//			(L2TP) in the future, each ECID is allocated 4-bytes.
+//
+//			The first value is used for the payload ECID; the second is used for the optional separate
+//			signalling ECID. In both cases, the default value 0 indicates that no ECID checking is expected.
+//
+//			(R,-W) (optional for MEF 8 transport) (8-bytes)
+//
+//		Received Circuit Id
+//			This attribute indicates the actual ECID(s) received on the payload and signalling channels,
+//			respectively. It may be used for diagnostic purposes. (R) (optional for MEF 8 transport)
+//			(8-bytes)
+//
+//		Exception Policy
+//			This attribute points to an instance of the pseudowire maintenance profile ME. If the pointer
+//			has its default value 0, the ONU's internal defaults apply. (R,-W) (optional) (2-bytes)
+//
+//		Arc
+//			See clause A.1.4.3. (R,-W) (optional) (1-byte)
+//
+//		Arc Interval
+//			See clause A.1.4.3. (R,-W) (optional) (1-byte)
+//
+type PseudowireTerminationPoint struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	pseudowireterminationpointBME = &ManagedEntityDefinition{
+		Name:    "PseudowireTerminationPoint",
+		ClassID: 282,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewPseudowireTerminationPoint (class ID 282) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewPseudowireTerminationPoint(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*pseudowireterminationpointBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/pwatmconfigurationdata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/pwatmconfigurationdata.go
new file mode 100644
index 0000000..0cd5ec4
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/pwatmconfigurationdata.go
@@ -0,0 +1,265 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// PwAtmConfigurationDataClassID is the 16-bit ID for the OMCI
+// Managed entity PW ATM configuration data
+const PwAtmConfigurationDataClassID = ClassID(337) // 0x0151
+
+var pwatmconfigurationdataBME *ManagedEntityDefinition
+
+// PwAtmConfigurationData (Class ID: #337 / 0x0151)
+//	This ME contains generic configuration data for an ATM pseudowire. Definitions of attributes are
+//	from PW-ATM-MIB [IETF RFC 5605]. Instances of this ME are created and deleted by the OLT.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of the MPLS pseudowire TP ME with a
+//		pseudowire type attribute equal to one of the following.////		2	ATM AAL5 SDU VCC transport////		3	ATM transparent cell transport////		9	ATM n-to-one VCC cell transport////		10	ATM n-to-one VPC cell transport////		12	ATM one-to-one VCC cell mode////		13	ATM one-to-one VPC cell mode////		14	ATM AAL5 PDU VCC transport////		Alternatively, an instance of this ME may be associated with an Ethernet flow TP or a TCP/UDP
+//		config data ME, depending on the transport layer of the pseudowire.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. (R, setbycreate)-(mandatory) (2
+//			bytes)
+//
+//		Tp Type
+//			This attribute specifies the type of the underlying transport layer. (R, W, setbycreate)
+//			(mandatory) (1 byte)
+//
+//			0	MPLS pseudowire termination point
+//
+//			1	Ethernet flow termination point
+//
+//			2	TCP/UDP config data
+//
+//		Transport Tp Pointer
+//			This attribute points to an associated instance of the transport layer TP, whose type is
+//			specified by the TP type attribute. (R, W, setbycreate) (mandatory) (2 bytes)
+//
+//		Pptp Atm Uni Pointer
+//			This attribute points to an associated instance of the ITU-T G.983.2 PPTP ATM UNI. Refer to
+//			[ITUT G.983.2] for the definition of the target ME. (R, W, setbycreate) (mandatory) (2 bytes)
+//
+//		Max C Ell C Oncatenation
+//			Max cell concatenation: This attribute specifies the maximum number of ATM cells that can be
+//			concatenated into one PW packet in the upstream direction. (R, W, setbycreate) (mandatory) (2
+//			bytes)
+//
+//		Far End M Ax C Ell C Oncatenation
+//			Far-end max cell concatenation: This attribute specifies the maximum number of ATM cells that
+//			can be concatenated into one PW packet as provisioned at the far end. This attribute may be used
+//			for error checking of downstream traffic. The value 0 specifies that the ONU uses its internal
+//			default. (R, W, set-by-create) (optional) (2 bytes)
+//
+//		Atm Cell Loss Priority Clp Qos Mapping
+//			ATM cell loss priority (CLP) QoS mapping: This attribute specifies whether the CLP bits should
+//			be considered when setting the value in the QoS fields of the encapsulating protocol (e.g., TC
+//			fields of the MPLS label stack).
+//
+//			1	ATM CLP bits mapping to QoS fields of the encapsulating protocol
+//
+//			2	Not applicable
+//
+//			The value 0 specifies that the ONU uses its internal default. (R, W, setbycreate) (optional) (1
+//			byte)
+//
+//		Timeout Mode
+//			The value 0 specifies that the ONU uses its internal default. (R, W, setbycreate) (optional) (1
+//			byte)
+//
+//			This attribute specifies whether a packet is transmitted in the upstream direction based on
+//			timeout expiration for collecting cells. The actual handling of the timeout is implementation
+//			specific; as such, this attribute may be changed at any time with proper consideration of the
+//			traffic disruption effect.
+//
+//			1	Disabled. The ONU does not generate packets based on timeout cells.
+//
+//			2	Enabled. The ONU generates packets based on timeout cells.
+//
+//		Pw Atm Mapping Table
+//			12	ATM one-to-one VCC cell mode
+//
+//			13	ATM one-to-one VPC cell mode
+//
+//			14	ATM AAL5 PDU VCC transport
+//
+//			Each entry contains:
+//
+//			Entry number: (1-byte), the index of this row. A set operation with all fields zero has the
+//			effect of clearing the table. A set operation with a non-zero entry number and all other fields
+//			zero, has the effect of deleting one row.
+//
+//			Upstream VPI: (2 bytes)
+//
+//			The VPI value of this ATM PW at the UNI. When pseudowire type-= ATM transparent cell transport
+//			(3), this field is ignored.
+//
+//			Upstream VCI: (2 bytes)
+//
+//			The VCI value of this ATM PW at the UNI. When pseudowire type-= ATM transparent cell transport
+//			(3), or in virtual path (VP) cases, this field is ignored.
+//
+//			Upstream traffic descriptor profile pointer: (2 bytes)
+//
+//			A pointer to an instance of an ITU-T G.983.2 traffic descriptor profile ME that contains the
+//			traffic parameters used for the ATM upstream traffic. Refer to clause 7.5.2 of [ITUT-G.983.2]
+//			for the definition of this class of MEs. A null pointer indicates BE.
+//
+//			Upstream mapped VPI: (2 bytes)
+//
+//			The VPI value of the upstream MPLS ATM PW. This field is valid when the pseudowire type is as
+//			follows.
+//
+//			9	ATM n-to-one VCC cell transport
+//
+//			10	ATM n-to-one VPC cell transport
+//
+//			12	ATM one-to-one VCC cell mode
+//
+//			13	ATM one-to-one VPC cell mode
+//
+//			This field is not used for other pseudowire types.
+//
+//			Upstream mapped VCI: (2 bytes)
+//
+//			The VCI value of the upstream MPLS ATM PW. This field is valid when the pseudowire type is as
+//			follows.
+//
+//			9	ATM n-to-one VCC cell transport
+//
+//			10	ATM n-to-one VPC cell transport
+//
+//			12	ATM one-to-one VCC cell mode
+//
+//			13	ATM one-to-one VPC cell mode
+//
+//			This field is not used for other pseudowire types.
+//
+//			Downstream VPI: (2 bytes)
+//
+//			The downstream VPI value of this MPLS ATM PW. When pseudowire type-= ATM transparent cell
+//			transport (3), this field is ignored.
+//
+//			Downstream VCI: (2 bytes)
+//
+//			The downstream VCI value of this MPLS ATM PW. When pseudowire type-= ATM transparent cell
+//			transport (3) or in the VP case, this field is ignored.
+//
+//			Downstream traffic descriptor profile pointer: (2 bytes)
+//
+//			A pointer to an instance of an ITU-T G.983.2 traffic descriptor profile ME that contains the
+//			traffic parameters used for the ATM downstream traffic. Refer to clause 7.5.2 of [ITUT-G.983.2]
+//			for definition of this class of MEs. A null pointer indicates BE.
+//
+//			Downstream mapped VPI: (2 bytes)
+//
+//			The VPI value of this ATM PW at the UNI. This field is valid when the pseudowire type is as
+//			follows.
+//
+//			9	ATM n-to-one VCC cell transport
+//
+//			10	ATM n-to-one VPC cell transport
+//
+//			12	ATM one-to-one VCC cell mode
+//
+//			13	ATM one-to-one VPC cell mode
+//
+//			This field is not used for other pseudowire types.
+//
+//			Downstream mapped VCI: (2 bytes)
+//
+//			The VCI value of this ATM PW at the UNI. This field is valid when the pseudowire type is as
+//			follows.
+//
+//			9	ATM n-to-one VCC cell transport
+//
+//			10	ATM n-to-one VPC cell transport
+//
+//			12	ATM one-to-one VCC cell mode
+//
+//			13	ATM one-to-one VPC cell mode
+//
+//			This field is not used for other pseudowire types.
+//
+//			(R,-W) (mandatory) (21N bytes, where N is the number of entries in the list)
+//
+//			This attribute lists ATM VPI/VCI mapping entries in both the upstream and downstream directions.
+//			In the upstream direction, ATM cells that match no entry's upstream VPI (and conditionally VCI)
+//			values are discarded; conversely in the downstream direction. Upon ME instantiation, the ONU
+//			sets this attribute to an empty table, which discards all cells in both directions.
+//
+//			The table can contain up to N entries when the pseudowire type is equal to one of the following:
+//
+//			9 	ATM n-to-one VCC cell transport
+//
+//			10	ATM n-to-one VPC cell transport
+//
+//			The table contains only one entry when the pseudowire type is equal to one of the following.
+//
+//			2 	ATM AAL5 SDU VCC transport
+//
+//			3 	ATM transparent cell transport
+//
+type PwAtmConfigurationData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	pwatmconfigurationdataBME = &ManagedEntityDefinition{
+		Name:    "PwAtmConfigurationData",
+		ClassID: 337,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			GetNext,
+			Set,
+			SetTable,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewPwAtmConfigurationData (class ID 337) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewPwAtmConfigurationData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*pwatmconfigurationdataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/pwatmperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/pwatmperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..5e18218
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/pwatmperformancemonitoringhistorydata.go
@@ -0,0 +1,128 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// PwAtmPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity PW ATM performance monitoring history data
+const PwAtmPerformanceMonitoringHistoryDataClassID = ClassID(338) // 0x0152
+
+var pwatmperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// PwAtmPerformanceMonitoringHistoryData (Class ID: #338 / 0x0152)
+//	This ME collects PM data associated with an ATM pseudowire. Instances of this ME are created and
+//	deleted by the OLT.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of the PW ATM configuration data ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to the instance of the PW ATM configuration data ME. (R, setbycreate)
+//			(mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 ME that
+//			contains PM threshold values. Since no threshold value attribute number exceeds 7, a threshold
+//			data 2 ME is optional. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Downstream Missing Packets Counter
+//			This attribute counts missing packets, as detected via control word sequence number gaps. (R)
+//			(mandatory) (4-bytes)
+//
+//		Downstream Reordered Packets Counter
+//			This attribute counts packets detected out of sequence via the control word sequence number, but
+//			successfully reordered. Some implementations may not support this feature. (R) (optional)
+//			(4-bytes)
+//
+//		Downstream Misordered Packets Counter
+//			This attribute counts packets detected out of order via the control word sequence numbers. (R)
+//			(mandatory) (4-bytes)
+//
+//		Upstream Timeout Packets Counter
+//			This attribute counts packets transmitted due to timeout expiration while attempting to collect
+//			cells. (R) (mandatory) (4-bytes)
+//
+//		Upstream Transmitted Cells Counter
+//			This attribute counts transmitted cells. (R) (mandatory) (4-bytes)
+//
+//		Upstream Dropped Cells Counter
+//			This attribute counts dropped cells. (R) (mandatory) (4-bytes)
+//
+//		Upstream Received Cells Counter
+//			This attribute counts received cells. (R) (mandatory) (4-bytes)
+//
+type PwAtmPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	pwatmperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "PwAtmPerformanceMonitoringHistoryData",
+		ClassID: 338,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			1: "Downstream missing packets",
+			2: "Downstream reordered packets",
+			3: "Downstream timeout packets",
+			4: "Upstream dropped cells",
+		},
+	}
+}
+
+// NewPwAtmPerformanceMonitoringHistoryData (class ID 338) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewPwAtmPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*pwatmperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/pwethernetconfigurationdata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/pwethernetconfigurationdata.go
new file mode 100644
index 0000000..97e5f97
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/pwethernetconfigurationdata.go
@@ -0,0 +1,107 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// PwEthernetConfigurationDataClassID is the 16-bit ID for the OMCI
+// Managed entity PW Ethernet configuration data
+const PwEthernetConfigurationDataClassID = ClassID(339) // 0x0153
+
+var pwethernetconfigurationdataBME *ManagedEntityDefinition
+
+// PwEthernetConfigurationData (Class ID: #339 / 0x0153)
+//	This ME contains the Ethernet pseudowire configuration data. Instances of this ME are created
+//	and deleted by the OLT.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of the MPLS pseudowire TP ME with a
+//		pseudowire type attribute equal to the following.////		5	Ethernet
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. (R, setbycreate)-(mandatory) (2
+//			bytes)
+//
+//		Mpls Pseudowire Tp Pointer
+//			This attribute points to an instance of the MPLS pseudowire TP ME associated with this ME. (R,
+//			W, setbycreate) (mandatory) (2 bytes)
+//
+//		Tp Type
+//			This attribute identifies the type of UNI associated with this Ethernet PW. Valid values are as
+//			follows.
+//
+//			1	Physical path termination point Ethernet UNI
+//
+//			3	IEEE 802.1p mapper service profile
+//
+//			7	Physical path termination point xDSL UNI part 1
+//
+//			11	Virtual Ethernet interface point
+//
+//			12	Physical path termination point MoCA UNI
+//
+//			13	MAC bridge port configuration data
+//
+//			Other values are reserved
+//
+//			(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Uni Pointer
+//			This attribute points to the associated instance of a UNI-side ME. The type of UNI is determined
+//			by the TP type attribute. (R, W, setbycreate) (mandatory) (2 bytes)
+//
+type PwEthernetConfigurationData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	pwethernetconfigurationdataBME = &ManagedEntityDefinition{
+		Name:    "PwEthernetConfigurationData",
+		ClassID: 339,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewPwEthernetConfigurationData (class ID 339) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewPwEthernetConfigurationData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*pwethernetconfigurationdataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/radiusperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/radiusperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..2dd144a
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/radiusperformancemonitoringhistorydata.go
@@ -0,0 +1,124 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// RadiusPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity Radius performance monitoring history data
+const RadiusPerformanceMonitoringHistoryDataClassID = ClassID(293) // 0x0125
+
+var radiusperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// RadiusPerformanceMonitoringHistoryData (Class ID: #293 / 0x0125)
+//	This ME collects performance statistics on an ONU's radius client, particularly as related to
+//	its IEEE-802.1X operation.
+//
+//	Instances of this ME are created and deleted by the OLT.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an ONU.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID (namely 0),
+//			this ME is implicitly linked to an instance of a dot1X configuration profile. (R, setbycreate)
+//			(mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 ME that
+//			contains PM threshold values. Since no threshold value attribute number exceeds 7, a threshold
+//			data 2 ME is optional. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Access_Request Packets Transmitted
+//			Access-request packets transmitted: This attribute counts transmitted radius access-request
+//			messages, including retransmissions. (R) (mandatory) (4-bytes)
+//
+//		Access_Request Retransmission Count
+//			Access-request retransmission count: This attribute counts radius access-request
+//			retransmissions. (R) (mandatory) (4-bytes)
+//
+//		Access_Challenge Packets Received
+//			Access-challenge packets received: This attribute counts received radius access-challenge
+//			messages. (R) (mandatory) (4-bytes)
+//
+//		Access_Accept Packets Received
+//			Access-accept packets received: This attribute counts received radius access-accept messages.
+//			(R) (mandatory) (4-bytes)
+//
+//		Access_Reject Packets Received
+//			Access-reject packets received: This attribute counts received radius access-reject messages.
+//			(R) (mandatory) (4-bytes)
+//
+//		Invalid Radius Packets Received
+//			This attribute counts received invalid radius messages. (R) (mandatory) (4-bytes)
+//
+type RadiusPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	radiusperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "RadiusPerformanceMonitoringHistoryData",
+		ClassID: 293,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			1: "Retransmission count",
+			5: "Invalid radius packets received",
+		},
+	}
+}
+
+// NewRadiusPerformanceMonitoringHistoryData (class ID 293) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewRadiusPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*radiusperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/reani-g.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/reani-g.go
new file mode 100644
index 0000000..fcbb5c2
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/reani-g.go
@@ -0,0 +1,220 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// ReAniGClassID is the 16-bit ID for the OMCI
+// Managed entity RE ANI-G
+const ReAniGClassID = ClassID(313) // 0x0139
+
+var reanigBME *ManagedEntityDefinition
+
+// ReAniG (Class ID: #313 / 0x0139)
+//	This ME organizes data associated with each R'/S' physical interface of an RE if the RE supports
+//	OEO regeneration in either direction. The management ONU automatically creates one instance of
+//	this ME for each R'/S' physical port (uni- or bidirectional) as follows.
+//
+//	o	When the RE has mid-span PON RE ANI interface ports built into its 	factory configuration.
+//
+//	o	When a cardholder is provisioned to expect a circuit pack of the mid-span PON RE ANI type.
+//
+//	o	When a cardholder provisioned for plug-and-play is equipped with a circuit pack of the midspan
+//	PON RE ANI type. Note that the installation of a plug-and-play card may indicate the presence of
+//	a mid-span PON RE ANI port via equipment ID as well as its type attribute, and indeed may cause
+//	the management ONU to instantiate a port-mapping package to specify the ports precisely.
+//
+//	The management ONU automatically deletes instances of this ME when a cardholder is neither
+//	provisioned to expect a mid-span PON RE ANI circuit pack, nor is it equipped with a mid-span PON
+//	RE ANI circuit pack.
+//
+//	As illustrated in Figure 8.2.10-4, an RE ANI-G may share the physical port with an RE downstream
+//	amplifier. The ONU declares a shared configuration through the port-mapping package combined
+//	port table, whose structure defines one ME as the master. It is recommended that the RE ANI-G be
+//	the master, with the RE downstream amplifier as a secondary ME.
+//
+//	The administrative state, operational state and ARC attributes of the master ME override similar
+//	attributes in secondary MEs associated with the same port. In the secondary ME, these attributes
+//	are present, but cause no action when written and have undefined values when read. The RE
+//	downstream amplifier should use its provisionable downstream alarm thresholds and should declare
+//	downstream alarms as necessary; other isomorphic alarms should be declared by the RE ANI-G. The
+//	test action should be addressed to the master ME.
+//
+//	Relationships
+//		An instance of this ME is associated with each R'/S' physical interface of an RE that includes
+//		OEO regeneration in either direction, and with one or more instances of the PPTP RE UNI. It may
+//		also be associated with an RE downstream amplifier.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Its value indicates the physical
+//			position of the R'/S' interface. The first byte is the slot ID (defined in clause 9.1.5). The
+//			second byte is the port ID. (R) (mandatory) (2-bytes)
+//
+//			NOTE 1 - This ME ID may be identical to that of an RE downstream amplifier if it shares the same
+//			physical slot and port.
+//
+//		Administrative State
+//			This attribute locks (1) and unlocks (0) the functions performed by this ME. Administrative
+//			state is further described in clause A.1.6. (R,-W) (mandatory) (1-byte)
+//
+//			NOTE 2 - When an RE supports multiple PONs, or protected access to a single PON, its primary
+//			ANI-G cannot be completely shut down, due to a loss of the management communications capability.
+//			Complete blocking of service and removal of power may nevertheless be appropriate for secondary
+//			RE ANI-Gs. Administrative lock suppresses alarms and notifications for an RE ANI-G, be it either
+//			primary or secondary.
+//
+//		Operational State
+//			This attribute indicates whether the ME is capable of performing its function. Valid values are
+//			enabled (0) and disabled (1). (R) (optional) (1-byte)
+//
+//		Arc
+//			See clause A.1.4.3. (R,-W) (optional) (1-byte)
+//
+//		Arc Interval
+//			See clause A.1.4.3. (R,-W) (optional) (1-byte)
+//
+//		Optical Signal Level
+//			This attribute reports the current measurement of total downstream optical power. Its value is a
+//			2s complement integer referred to 1-mW (i.e., dBm), with 0.002-dB granularity. (Coding -32768 to
+//			+32767, where 0x00 = 0-dBm, 0x03e8 = +2-dBm, etc.) (R) (optional) (2-bytes)
+//
+//		Lower Optical Threshold
+//			This attribute specifies the optical level that the RE uses to declare the downstream low
+//			received optical power alarm. Valid values are  -127-dBm (coded as 254) to 0-dBm (coded as 0) in
+//			0.5-dB increments. The default value 0xFF selects the RE's internal policy. (R,-W) (optional)
+//			(1-byte)
+//
+//		Upper Optical Threshold
+//			This attribute specifies the optical level that the RE uses to declare the downstream high
+//			received optical power alarm. Valid values are  -127-dBm (coded as 254) to 0-dBm (coded as 0) in
+//			0.5 dB increments. The default value 0xFF selects the RE's internal policy. (R,-W) (optional)
+//			(1-byte)
+//
+//		Transmit Optical Level
+//			This attribute reports the current measurement of mean optical launch power. Its value is a 2s
+//			complement integer referred to 1-mW (i.e., dBm), with 0.002-dB granularity. (Coding -32768 to
+//			+32767, where 0x00 = 0-dBm, 0x03e8 = +2-dBm, etc.) (R) (optional) (2-bytes)
+//
+//		Lower Transmit Power Threshold
+//			This attribute specifies the minimum mean optical launch power that the RE uses to declare the
+//			low transmit optical power alarm. Its value is a 2s-complement integer referred to 1-mW (i.e.,
+//			dBm), with 0.5-dB granularity. The default value 0x7F selects the RE's internal policy. (R,-W)
+//			(optional) (1-byte)
+//
+//		Upper Transmit Power Threshold
+//			This attribute specifies the maximum mean optical launch power that the RE uses to declare the
+//			high transmit optical power alarm. Its value is a 2s-complement integer referred to 1-mW (i.e.,
+//			dBm), with 0.5-dB granularity. The default value 0x7F selects the RE's internal policy. (R,-W)
+//			(optional) (1-byte)
+//
+//		Usage Mode
+//			In a mid-span PON RE, an R'/S' interface may be used as the PON interface for the embedded
+//			management ONU or the uplink interface for an S'/R' interface. This attribute specifies the
+//			usage of the R'/S' interface. (R,-W) (mandatory) (1-byte)
+//
+//			0	Disable
+//
+//			1	This R'/S' interface is used as the uplink for the embedded management ONU
+//
+//			2	This R'/S' interface is used as the uplink for one or more PPTP RE UNI(s)
+//
+//			3	This R'/S' interface is used as the uplink for both the embedded management ONU and one or
+//			more PPTP RE UNI(s) (in a time division fashion).
+//
+//		Target Upstream Frequency
+//			This attribute specifies the frequency of the converted upstream signal on the optical trunk
+//			line (OTL), in gigahertz. The converted frequency must conform to the frequency plan specified
+//			in [ITUT G.984.6]. The value 0 means that the upstream signal frequency remains the same as the
+//			original frequency; no frequency conversion is done. If the RE does not support provisionable
+//			upstream frequency (wavelength), this attribute should take the fixed value representing the
+//			RE's capability and the RE should deny attempts to set the value of the attribute. If the RE
+//			does support provisionable upstream frequency conversion, the default value of this attribute is
+//			0. (R, W) (optional) (4 bytes).
+//
+//		Target Downstream Frequency
+//			This attribute specifies the frequency of the downstream signal received by the RE on the OTL,
+//			in gigahertz. The incoming frequency must conform to the frequency plan specified in [ITUT
+//			G.984.6]. The default value 0 means that the downstream frequency remains the same as its
+//			original frequency; no frequency conversion is done. If the RE does not support provisionable
+//			downstream frequency selectivity, this attribute should take the fixed value representing the
+//			RE's capability, and the RE should deny attempts to set the value of the attribute. If the RE
+//			does support provisionable downstream frequency selectivity, the default value of this attribute
+//			is 0. (R, W) (optional) (4 bytes).
+//
+//		Upstream Signal Transmission Mode
+//			When true, this Boolean attribute enables conversion from burst mode to continuous mode. The
+//			default value false specifies burst mode upstream transmission. If the RE does not have the
+//			ability to convert from burst to continuous mode transmission, it should deny attempts to set
+//			this attribute to true. (R, W) (optional) (1 byte)
+//
+type ReAniG struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	reanigBME = &ManagedEntityDefinition{
+		Name:    "ReAniG",
+		ClassID: 313,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Low received optical power",
+			1: "High received optical power",
+			2: "Low transmit optical power",
+			3: "High transmit optical power",
+			4: "High laser bias current",
+		},
+	}
+}
+
+// NewReAniG (class ID 313) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewReAniG(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*reanigBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/recommonamplifierparameters.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/recommonamplifierparameters.go
new file mode 100644
index 0000000..d5149b9
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/recommonamplifierparameters.go
@@ -0,0 +1,152 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// ReCommonAmplifierParametersClassID is the 16-bit ID for the OMCI
+// Managed entity RE common amplifier parameters
+const ReCommonAmplifierParametersClassID = ClassID(328) // 0x0148
+
+var recommonamplifierparametersBME *ManagedEntityDefinition
+
+// ReCommonAmplifierParameters (Class ID: #328 / 0x0148)
+//	This ME organizes data associated with each OA supported by the RE. The management ONU
+//	automatically creates one instance of this ME for each upstream or downstream OA.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of the RE downstream amplifier or RE
+//		upstream amplifier ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of an upstream or downstream OA. The first byte is the slot ID
+//			(defined in clause 9.1.5). The second byte is the port ID. (R)-(mandatory) (2-bytes)
+//
+//			NOTE - The type of the linked ME can be determined by uniqueness of slot and port.
+//
+//		Gain
+//			This attribute reports the current measurement of the OA's gain, in decibels. Its value is a 2s
+//			complement integer with 0.25-dB granularity, and with a range from -32-dB to 31.5-dB. The value
+//			0x7F indicates that the current measured gain is 0, i.e., negative infinity in decibels terms.
+//			(R) (optional) (1-byte)
+//
+//		Lower Gain Threshold
+//			This attribute specifies the gain the RE uses to declare the low gain alarm. Valid values are
+//			0-dB (coded as 0x00) to 63.5-dB (coded as 0xFE). The default value 0xFF selects the RE's
+//			internal policy. (R,-W) (optional) (1-byte)
+//
+//		Upper Gain Threshold
+//			This attribute specifies the gain the RE uses to declare the high gain alarm. Valid values are
+//			0-dB (coded as 0x00) to 63.5-dB (coded as 0xFE). The default value 0xFF selects the RE's
+//			internal policy. (R,-W) (optional) (1-byte)
+//
+//		Target Gain
+//			This attribute specifies the target gain, when the operational mode of the parent RE downstream
+//			or upstream amplifier is set to constant gain mode. Valid values are 0-dB (coded as 0x00) to
+//			63.5-dB (coded as 0xFE). The default value 0xFF selects the RE's internal policy. (R,-W)
+//			(optional) (1-byte)
+//
+//		Device Temperature
+//			This attribute reports the temperature in degrees Celcius of the active device (SOA or pump) in
+//			the OA. Its value is a 2s complement integer with granularity 1/256-degree-C. (R) (optional)
+//			(2-bytes)
+//
+//		Lower Device Temperature Threshold
+//			This attribute is a 2s complement integer that specifies the temperature the RE uses to declare
+//			the low temperature alarm. Valid values are -64 to +63-degree-C in 0.5-degree-C increments. The
+//			default value 0x7F selects the RE's internal policy. (R,-W) (optional) (1-byte)
+//
+//		Upper Device Temperature Threshold
+//			This attribute is a 2s complement integer that specifies the temperature the RE uses to declare
+//			the high temperature alarm. Valid values are -64 to +63-degree-C in 0.5-degree-C increments. The
+//			default value 0x7F selects the RE's internal policy. (R,-W) (optional) (1-byte)
+//
+//		Device Bias Current
+//			This attribute contains the measured bias current applied to the SOA or pump laser. Its value is
+//			an unsigned integer with granularity 2-mA. Valid values are 0 to 512-mA. (R) (optional) (1-byte)
+//
+//		Amplifier Saturation Output Power
+//			This attribute reports the saturation output power of the amplifier as specified by the
+//			manufacturer. Its value is an unsigned integer referred to 1-mW (i.e., dBm), with 0.1-dB
+//			granularity. (R) (optional) (2-bytes)
+//
+//		Amplifier Noise Figure
+//			This attribute reports the intrinsic noise figure of the amplifier, as specified by the
+//			manufacturer. Its value is an unsigned integer with 0.1-dB granularity (R) (optional) (1-byte)
+//
+//		Amplifier Saturation Gain
+//			This attribute reports the gain of the amplifier at saturation, as specified by the
+//			manufacturer. Its value is an unsigned integer with 0.25-dB granularity, and with a range from 0
+//			to 63.75-dB. (R) (optional) (1-byte)
+//
+type ReCommonAmplifierParameters struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	recommonamplifierparametersBME = &ManagedEntityDefinition{
+		Name:    "ReCommonAmplifierParameters",
+		ClassID: 328,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Low gain",
+			1: "High gain",
+			2: "Low temperature",
+			3: "High temperature",
+			4: "High bias current",
+			5: "High temperature shutdown",
+			6: "High current shutdown",
+		},
+	}
+}
+
+// NewReCommonAmplifierParameters (class ID 328) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewReCommonAmplifierParameters(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*recommonamplifierparametersBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/redownstreamamplifier.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/redownstreamamplifier.go
new file mode 100644
index 0000000..d85e3a7
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/redownstreamamplifier.go
@@ -0,0 +1,188 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// ReDownstreamAmplifierClassID is the 16-bit ID for the OMCI
+// Managed entity RE downstream amplifier
+const ReDownstreamAmplifierClassID = ClassID(316) // 0x013c
+
+var redownstreamamplifierBME *ManagedEntityDefinition
+
+// ReDownstreamAmplifier (Class ID: #316 / 0x013c)
+//	This ME organizes data associated with each OA for downstream data supported by the RE. The
+//	management ONU automatically creates one instance of this ME for each downstream OA as follows.
+//
+//	o	When the RE has mid-span PON RE downstream OA ports built into its factory configuration.
+//
+//	o	When a cardholder is provisioned to expect a circuit pack of the mid-span PON RE downstream OA
+//	type.
+//
+//	o	When a cardholder provisioned for plug-and-play is equipped with a circuit pack of the midspan
+//	PON RE downstream OA type. Note that the installation of a plug-and-play card may indicate the
+//	presence of a mid-span PON RE downstream OA via equipment ID as well as its type attribute, and
+//	indeed may cause the management ONU to instantiate a port-mapping package to specify the ports
+//	precisely.
+//
+//	The management ONU automatically deletes instances of this ME when a cardholder is neither
+//	provisioned to expect a mid-span PON RE downstream OA circuit pack, nor is it equipped with a
+//	mid-span PON RE downstream OA circuit pack.
+//
+//	Relationships
+//		An instance of this ME is associated with a downstream OA and with an instance of a circuit
+//		pack. If the RE includes OEO regeneration in either direction, the RE downstream amplifier is
+//		also associated with an RE ANI-G. Refer to clause-9.14.1 for further discussion.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Its value indicates the physical
+//			position of the downstream OA. The first byte is the slot ID (defined in clause 9.1.5 of [ITU-T
+//			G.984.4]). The second byte is the port ID. (R) (mandatory) (2-bytes)
+//
+//			NOTE 1 - This ME ID may be identical to that of an RE ANI-G if it shares the same physical slot-
+//			port.
+//
+//		Administrative State
+//			This attribute locks (1) and unlocks (0) the functions performed by this ME. Administrative
+//			state is further described in clause A.1.6. (R,-W) (mandatory) (1-byte)
+//
+//			NOTE 2- When an RE supports multiple PONs, or protected access to a single PON, its primary
+//			ANI-G cannot be completely shut down, due to a loss of the management communications capability.
+//			Complete blocking of service and removal of power may nevertheless be appropriate for secondary
+//			RE ANI-Gs. Administrative lock suppresses alarms and notifications for both primary and
+//			secondary RE ANI-Gs. Administrative lock suppresses alarms and notifications for an RE
+//			downstream amplifier, be it either primary or secondary.
+//
+//		Operational State
+//			This attribute indicates whether the ME is capable of performing its function. Valid values are
+//			enabled (0) and disabled (1). (R) (optional) (1-byte)
+//
+//		Arc
+//			See clause A.1.4.3. (R,-W) (optional) (1-byte)
+//
+//		Arc Interval
+//			See clause A.1.4.3. (R,-W) (optional) (1-byte)
+//
+//		Operational Mode
+//			This attribute indicates the operational mode as follows.
+//
+//			0	Constant gain
+//
+//			1	Constant output power
+//
+//			2	Autonomous
+//
+//			(R,W) (mandatory) (1-byte)
+//
+//		Input Optical Signal Level
+//			This attribute reports the current measurement of the input optical signal power of the
+//			downstream OA. Its value is a 2s-complement integer referred to 1-mW (i.e., dBm), with 0.002-dB
+//			granularity. (Coding -32768 to +32767, where 0x00 = 0-dBm, 0x03e8 = +2-dBm, etc.) (R) (optional)
+//			(2-bytes)
+//
+//		Lower Input Optical Threshold
+//			This attribute specifies the optical level the RE uses to declare the low received optical power
+//			alarm. Valid values are -127-dBm (coded as 254) to 0-dBm (coded as 0) in 0.5-dB increments. The
+//			default value 0xFF selects the RE's internal policy. (R,-W) (optional) (1-byte)
+//
+//		Upper Input Optical Threshold
+//			This attribute specifies the optical level the RE uses to declare the high received optical
+//			power alarm. Valid values are -127-dBm (coded as 254) to 0-dBm (coded as 0) in 0.5-dB
+//			increments. The default value 0xFF selects the RE's internal policy. (R,-W) (optional) (1-byte)
+//
+//		Output Optical Signal Level
+//			This attribute reports the current measurement of the mean optical launch power of the
+//			downstream OA. Its value is a 2s-complement integer referred to 1-mW (i.e., dBm), with 0.002-dB
+//			granularity. (Coding -32768 to +32767, where 0x00 = 0-dBm, 0x03e8 = +2-dBm, etc.) (R) (optional)
+//			(2-bytes)
+//
+//		Lower Output Optical Threshold
+//			This attribute specifies the minimum mean optical launch power that the RE uses to declare the
+//			low transmit optical power alarm. Its value is a 2s complement integer referred to 1-mW (i.e.,
+//			dBm), with 0.5-dB granularity. The default value 0x7F selects the RE's internal policy. (R,-W)
+//			(optional) (1-byte)
+//
+//		Upper Output Optical Threshold
+//			This attribute specifies the maximum mean optical launch power that the RE uses to declare the
+//			high transmit optical power alarm. Its value is a 2s complement integer referred to 1-mW (i.e.,
+//			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)
+//
+type ReDownstreamAmplifier struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	redownstreamamplifierBME = &ManagedEntityDefinition{
+		Name:    "ReDownstreamAmplifier",
+		ClassID: 316,
+		MessageTypes: mapset.NewSetWith(
+			Get,
+			Set,
+			Test,
+		),
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Low received optical power",
+			1: "High received optical power",
+			2: "Low transmit optical power",
+			3: "High transmit optical power",
+			4: "High laser bias current",
+		},
+	}
+}
+
+// NewReDownstreamAmplifier (class ID 316) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewReDownstreamAmplifier(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*redownstreamamplifierBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/relaxed.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/relaxed.go
new file mode 100644
index 0000000..a1e49d3
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/relaxed.go
@@ -0,0 +1,73 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+package generated
+
+import (
+	"fmt"
+)
+
+var relaxedDecode map[int]bool
+
+func init() {
+	relaxedDecode = make(map[int]bool)
+
+	// Default for relaxed decode is True if there is relaxed decode support available
+	// relaxedDecode[mkRelaxedKey(Get, false)] = true
+	relaxedDecode[mkRelaxedKey(MibUploadNext, false)] = true
+}
+
+func mkRelaxedKey(msgType MsgType, request bool) int {
+	if request {
+		return int(msgType)
+	}
+	return 100 + int(msgType)
+}
+
+func SetRelaxedDecode(msgType MsgType, request bool, relax bool) error {
+	key := mkRelaxedKey(msgType, request)
+
+	if _, ok := relaxedDecode[key]; !ok {
+		return fmt.Errorf("relax decode of '%v' is not supported", msgType)
+	}
+	relaxedDecode[key] = relax
+	return nil
+}
+
+func GetRelaxedDecode(msgType MsgType, request bool) bool {
+	key := mkRelaxedKey(msgType, request)
+
+	relaxed, ok := relaxedDecode[key]
+	return ok && relaxed
+}
+
+// GetRelaxedDecodeByOctetType decodes the payload message-type value and determine if
+// relaxed decode is enabled
+func GetRelaxedDecodeByOctetType(value byte) bool {
+	msgType := MsgType(value & MsgTypeMask)
+	var request bool
+
+	if msgType != AlarmNotification && msgType != AttributeValueChange && msgType != TestResult {
+		request = value&AR == AR || value&AK == 0
+	}
+	return GetRelaxedDecode(msgType, request)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/reupstreamamplifier.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/reupstreamamplifier.go
new file mode 100644
index 0000000..32f3e62
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/reupstreamamplifier.go
@@ -0,0 +1,196 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// ReUpstreamAmplifierClassID is the 16-bit ID for the OMCI
+// Managed entity RE upstream amplifier
+const ReUpstreamAmplifierClassID = ClassID(315) // 0x013b
+
+var reupstreamamplifierBME *ManagedEntityDefinition
+
+// ReUpstreamAmplifier (Class ID: #315 / 0x013b)
+//	This ME organizes data associated with each upstream RE optical amplifier (OA) supported by the
+//	RE. The management ONU automatically creates one instance of this ME for each upstream OA as
+//	follows.
+//
+//	o	When the RE has mid-span PON RE upstream OA ports built into its factory configuration.
+//
+//	o	When a cardholder is provisioned to expect a circuit pack of the mid-span PON RE upstream OA
+//	type.
+//
+//	o	When a cardholder provisioned for plug-and-play is equipped with a circuit pack of the mid-
+//	span PON RE upstream OA type. Note that the installation of a plug-and-play card may indicate
+//	the presence of a mid-span PON RE upstream OA via equipment ID as well as its type attribute,
+//	and indeed may cause the management ONU to instantiate a port-mapping package to specify the
+//	ports precisely.
+//
+//	The management ONU automatically deletes instances of this ME when a cardholder is neither
+//	provisioned to expect a mid-span PON RE upstream OA circuit pack, nor is it equipped with a mid-
+//	span PON RE upstream OA circuit pack.
+//
+//	Relationships
+//		An instance of this ME is associated with an upstream OA, and with an instance of a circuit
+//		pack. If the RE includes OEO regeneration in either direction, the RE upstream amplifier is also
+//		associated with a PPTP RE UNI. Refer to clause-9.14.2 for further discussion.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Its value indicates the physical
+//			position of the upstream OA. The first byte is the slot ID (defined in clause 9.1.5). The second
+//			byte is the port ID. (R) (mandatory) (2-bytes)
+//
+//			NOTE 1 - This ME ID may be identical to that of a PPTP RE UNI if it shares the same physical
+//			slot and port.
+//
+//		Administrative State
+//			This attribute locks (1) and unlocks (0) the functions performed by this ME. Administrative
+//			state is further described in clause A.1.6. (R,-W) (mandatory) (1-byte)
+//
+//			NOTE 2 - Administrative lock of an RE upstream amplifier results in LOS from any downstream
+//			ONUs.
+//
+//		Operational State
+//			This attribute indicates whether the ME is capable of performing its function. Valid values are
+//			enabled (0) and disabled (1). (R) (optional) (1-byte)
+//
+//		Operational Mode
+//			This attribute indicates the operational mode as follows.
+//
+//			0	Constant gain
+//
+//			1	Constant output power
+//
+//			2	Autonomous
+//
+//			(R,-W) (mandatory) (1-byte)
+//
+//		Arc
+//			See clause A.1.4.3. (R,-W) (optional) (1-byte)
+//
+//		Arc Interval
+//			See clause A.1.4.3. (R,-W) (optional) (1-byte)
+//
+//		Re Downstream Amplifier Pointer
+//			This attribute points to an RE downstream amplifier instance. The default value is 0xFFFF, a
+//			null pointer. (R,-W) (mandatory) (2-bytes)
+//
+//		Total Optical Receive Signal Level Table
+//			This table attribute reports a series of measurements of time-averaged input upstream optical
+//			signal power. The measurement circuit should have a temporal response similar to a simple 1 pole
+//			low pass filter, with an effective time constant on the order of a GTC frame time. Each table
+//			entry has a 2-byte frame counter field (most significant end), and a 2-byte power measurement
+//			field. The frame counter field contains the least significant 16-bits of the superframe counter
+//			received closest to the time of the measurement. The power measurement field is a 2s-complement
+//			integer referred to 1-mW (i.e., dBm), with 0.002-dB granularity. (Coding -32768 to +32767, where
+//			0x00 = 0-dBm, 0x03e8 = +2-dBm, etc.) The RE equipment should add entries to this table as
+//			frequently as is reasonable. The RE should clear the table once it is read by the OLT. (R)
+//			(optional) (4-* N-bytes, where N is the number of measurements present.)
+//
+//		Per Burst Receive Signal Level Table
+//			This table attribute reports the most recent measurement of received burst upstream optical
+//			signal power. Each table entry has a 2-byte ONU-ID field (most significant end), and a 2-byte
+//			power measurement field. The power measurement field is a 2s-complement integer referred to 1-mW
+//			(i.e.,-dBm), with 0.002-dB granularity. (Coding -32768 to +32767, where 0x00 = 0-dBm, 0x03e8 =
+//			+2-dBm, etc.) (R) (optional) (4-* N-bytes, where N is the number of distinct ONUs connected to
+//			the S'/R' interface.)
+//
+//		Lower Receive Optical Threshold
+//			This attribute specifies the optical level that the RE uses to declare the low received optical
+//			power alarm. Valid values are -127-dBm (coded as 254) to 0-dBm (coded as 0) in 0.5-dB
+//			increments. The default value 0xFF selects the RE's internal policy. (R,-W) (optional) (1-byte)
+//
+//		Upper Receive Optical Threshold
+//			This attribute specifies the optical level that the RE uses to declare the high received optical
+//			power alarm. Valid values are -127-dBm (coded as 254) to 0-dBm (coded as 0) in 0.5-dB
+//			increments. The default value 0xFF selects the RE's internal policy. (R,-W) (optional) (1-byte)
+//
+//		Transmit Optical Signal Level
+//			This attribute reports the current measurement of the mean optical launch power of the upstream
+//			OA. Its value is a 2s-complement integer referred to 1-mW (i.e., dBm), with 0.002-dB
+//			granularity. (R) (optional) (2-bytes)
+//
+//		Lower Transmit Optical Threshold
+//			This attribute specifies the minimum mean optical launch power that the RE uses to declare the
+//			low transmit optical power alarm. Its value is a 2s-complement integer referred to 1-mW (i.e.,
+//			dBm), with 0.5-dB granularity. The default value 0x7F selects the RE's internal policy. (R,-W)
+//			(optional) (1-byte)
+//
+//		Upper Transmit Optical Threshold
+//			This attribute specifies the maximum mean optical launch power that the RE uses to declare the
+//			high transmit optical power alarm. Its value is a 2s complement integer referred to 1-mW (i.e.,
+//			dBm), with 0.5-dB granularity. The default value 0x7F selects the RE's internal policy. (R,-W)
+//			(optional) (1-byte)
+//
+type ReUpstreamAmplifier struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	reupstreamamplifierBME = &ManagedEntityDefinition{
+		Name:    "ReUpstreamAmplifier",
+		ClassID: 315,
+		MessageTypes: mapset.NewSetWith(
+			Get,
+			GetNext,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Low received optical power",
+			1: "High received optical power",
+			2: "Low transmit optical power",
+			3: "High transmit optical power",
+			4: "High laser bias current",
+			5: "S'/R' LOS",
+		},
+	}
+}
+
+// NewReUpstreamAmplifier (class ID 315) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewReUpstreamAmplifier(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*reupstreamamplifierBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/rtpperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/rtpperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..3252376
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/rtpperformancemonitoringhistorydata.go
@@ -0,0 +1,132 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// RtpPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity RTP performance monitoring history data
+const RtpPerformanceMonitoringHistoryDataClassID = ClassID(144) // 0x0090
+
+var rtpperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// RtpPerformanceMonitoringHistoryData (Class ID: #144 / 0x0090)
+//	This ME collects PM data related to an RTP session. Instances of this ME are created and deleted
+//	by the OLT.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of the PPTP POTS UNI ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the PPTP POTS UNI ME. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 ME that
+//			contains PM threshold values. Since no threshold value attribute number exceeds 7, a threshold
+//			data 2 ME is optional. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Rtp Errors
+//			This attribute counts RTP packet errors. (R) (mandatory) (4-bytes)
+//
+//		Packet Loss
+//			This attribute represents the fraction of packets lost. This attribute is calculated at the end
+//			of the 15-min interval, and is undefined under the get current data action. The value 0
+//			indicates no packet loss, scaling linearly to 0xFFFF FFFF to indicate 100% packet loss (zero
+//			divided by zero is defined to be zero). (R) (mandatory) (4-bytes)
+//
+//		Maximum Jitter
+//			This attribute is a high water-mark that represents the maximum jitter identified during the
+//			measured interval, expressed in RTP timestamp units. (R) (mandatory) (4-bytes)
+//
+//		Maximum Time Between Real_Time Transport Control Protocol Rtcp Packets
+//			Maximum time between real-time transport control protocol (RTCP) packets: This attribute is a
+//			high water-mark that represents the maximum time between RTCP packets during the measured
+//			interval, in milliseconds. (R) (mandatory) (4-bytes)
+//
+//		Buffer Underflows
+//			This attribute counts the number of times the reassembly buffer underflows. In the case of
+//			continuous underflow caused by a loss of IP packets, a single buffer underflow should be
+//			counted. If the IW function is implemented with multiple buffers, such as a packet level buffer
+//			and a bit level buffer, then the underflow of either buffer increments this counter. (R)
+//			(mandatory) (4-bytes)
+//
+//		Buffer Overflows
+//			This attribute counts the number of times the reassembly buffer overflows. If the IW function is
+//			implemented with multiple buffers, such as a packet level buffer and a bit level buffer, then
+//			the overflow of either buffer increments this counter. (R) (mandatory) (4-bytes)
+//
+type RtpPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	rtpperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "RtpPerformanceMonitoringHistoryData",
+		ClassID: 144,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "RTP errors",
+			1: "Packet loss(Note 1)",
+			2: "Maximum jitter",
+			3: "Max time between RTCP packets",
+			4: "Buffer underflows",
+			5: "Buffer overflows",
+		},
+	}
+}
+
+// NewRtpPerformanceMonitoringHistoryData (class ID 144) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewRtpPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*rtpperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/rtpprofiledata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/rtpprofiledata.go
new file mode 100644
index 0000000..1bc4f00
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/rtpprofiledata.go
@@ -0,0 +1,146 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// RtpProfileDataClassID is the 16-bit ID for the OMCI
+// Managed entity RTP profile data
+const RtpProfileDataClassID = ClassID(143) // 0x008f
+
+var rtpprofiledataBME *ManagedEntityDefinition
+
+// RtpProfileData (Class ID: #143 / 0x008f)
+//	This ME configures RTP. It is conditionally required for ONUs that offer VoIP service. If a non-
+//	OMCI interface is used to manage VoIP, this ME is unnecessary.
+//
+//	An instance of this ME is created and deleted by the OLT. An RTP profile is needed for each
+//	unique set of attributes.
+//
+//	Relationships
+//		An instance of this ME may be associated with one or more VoIP media profile MEs.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Local Port Min
+//			This attribute defines the base UDP port that should be used by RTP for voice traffic. The
+//			recommended default is 50000 (R,-W, set-by-create) (mandatory) (2-bytes)
+//
+//		Local Port Max
+//			This attribute defines the highest UDP port used by RTP for voice traffic. The value must be
+//			greater than the local port minimum. The value 0 specifies that the local port maximum be equal
+//			to the local port minimum. (R,-W, set-by-create) (optional) (2-bytes)
+//
+//		Dscp Mark
+//			Diffserv code point to be used for outgoing RTP packets for this profile. The recommended
+//			default value is expedited forwarding (EF)-= 0x2E. (R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Piggyback Events
+//			0	Disabled (recommended default)
+//
+//			1	Enabled
+//
+//			(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//			Enables or disables RTP piggyback events.
+//
+//		Tone Events
+//			Enables or disables the handling of tones via RTP tone events per [IETF RFC 4733], (see also
+//			[IETF RFC 4734]).
+//
+//			0	Disabled (recommended default)
+//
+//			1	Enabled
+//
+//			(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Dtmf Events
+//			0	Disabled
+//
+//			1	Enabled
+//
+//			(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//			Enables or disables the handling of DTMF via RTP DTMF events per [IETF-RFC 4733], (see also
+//			[IETF RFC 4734]). This attribute is ignored unless the OOB DTMF attribute in the VoIP media
+//			profile is enabled.
+//
+//		Cas Events
+//			Enables or disables the handling of CAS via RTP CAS events per [IETF-RFC-4733], (see also [IETF
+//			RFC 4734]).
+//
+//			0	Disabled
+//
+//			1	Enabled
+//
+//			(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Ip Host Config Pointer
+//			This optional pointer associates the bearer (voice) flow with an IP host config data or IPv6
+//			host config data ME. If this attribute is not present or is not populated with a valid pointer
+//			value, the bearer flow uses the same IP stack that is used for signalling, indicated by the
+//			TCP/UDP pointer in the associated SIP agent or MGC config data. The default value is 0xFFFF, a
+//			null pointer. (R,-W) (optional) (2-bytes)
+//
+type RtpProfileData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	rtpprofiledataBME = &ManagedEntityDefinition{
+		Name:    "RtpProfileData",
+		ClassID: 143,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewRtpProfileData (class ID 143) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewRtpProfileData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*rtpprofiledataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/rtppseudowireparameters.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/rtppseudowireparameters.go
new file mode 100644
index 0000000..472f754
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/rtppseudowireparameters.go
@@ -0,0 +1,128 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// RtpPseudowireParametersClassID is the 16-bit ID for the OMCI
+// Managed entity RTP pseudowire parameters
+const RtpPseudowireParametersClassID = ClassID(283) // 0x011b
+
+var rtppseudowireparametersBME *ManagedEntityDefinition
+
+// RtpPseudowireParameters (Class ID: #283 / 0x011b)
+//	If a pseudowire service uses RTP, the RTP pseudowire parameters ME provides configuration
+//	information for the RTP layer. Instances of this ME are created and deleted by the OLT. The use
+//	of RTP on a pseudowire is optional, and is determined by the existence of the RTP pseudowire
+//	parameters ME.
+//
+//	Relationships
+//		An instance of the RTP pseudowire parameters ME may exist for each pseudowire TP ME, to which it
+//		is implicitly bound by a common ME ID.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the pseudowire TP ME. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Clock Reference
+//			This attribute specifies the frequency of the common timing reference, in multiples of 8 kHz.
+//			(R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Rtp Timestamp Mode
+//			This attribute determines the mode in which RTP timestamps are generated in the TDM to the PSN
+//			direction.
+//
+//			0	Unknown or not applicable.
+//
+//			1	Absolute. Timestamps are based on the timing of the incoming TDM signal.
+//
+//			2	Differential. Timestamps are based on the ONU's reference clock, which is understood to be
+//			stratum-traceable along with the reference clock at the far end.
+//
+//			(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Ptype
+//			This attribute specifies the RTP payload type in the TDM to the PSN direction. It comprises two
+//			1-byte values. The first is for the payload channel, the second, for the optional separate
+//			signalling channel. Assignable PTYPEs lie in the dynamic range 96..127. If signalling is not
+//			transported in its own channel, the second value should be set to 0. (R,-W, setbycreate)
+//			(mandatory) (2-bytes)
+//
+//		Ssrc
+//			This attribute specifies the RTP synchronization source in the TDM to the PSN direction. It
+//			comprises two 4-byte values. The first is for the payload channel, the second, for the optional
+//			separate signalling channel. If signalling is not transported in its own channel, the second
+//			value should be set to 0. (R,-W, setbycreate) (mandatory) (8-bytes)
+//
+//		Expected Ptype
+//			This attribute specifies the RTP payload type in the PSN to the TDM direction. The received
+//			payload type may be used to detect malformed packets. It comprises two 1-byte values. The first
+//			is for the payload channel, the second, for the optional separate signalling channel. To disable
+//			either or both of the check functions, set the corresponding value to its default value 0.
+//			(R,-W, setbycreate) (optional) (2-bytes)
+//
+//		Expected Ssrc
+//			This attribute specifies the RTP synchronization source in the PSN to the TDM direction. The
+//			received SSRC may be used to detect misconnection (stray packets). It comprises two 4-byte
+//			values. The first is for the payload channel, the second, for the optional separate signalling
+//			channel. To disable either or both of the check functions, set the corresponding value to its
+//			default value 0. (R,-W, setbycreate) (optional) (8-bytes)
+//
+type RtpPseudowireParameters struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	rtppseudowireparametersBME = &ManagedEntityDefinition{
+		Name:    "RtpPseudowireParameters",
+		ClassID: 283,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewRtpPseudowireParameters (class ID 283) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewRtpPseudowireParameters(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*rtppseudowireparametersBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/sipagentconfigdata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/sipagentconfigdata.go
new file mode 100644
index 0000000..b67b74b
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/sipagentconfigdata.go
@@ -0,0 +1,219 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// SipAgentConfigDataClassID is the 16-bit ID for the OMCI
+// Managed entity SIP agent config data
+const SipAgentConfigDataClassID = ClassID(150) // 0x0096
+
+var sipagentconfigdataBME *ManagedEntityDefinition
+
+// SipAgentConfigData (Class ID: #150 / 0x0096)
+//	The SIP agent config data ME models a SIP signalling agent. It defines the configuration
+//	necessary to establish communication for signalling between the SIP user agent (UA) and a SIP
+//	server.
+//
+//	NOTE 1 - If a non-OMCI interface is used to manage SIP for VoIP, this ME is unnecessary. The
+//	non-OMCI interface supplies the necessary data, which may be read back to the OLT via the SIP
+//	config portal ME.
+//
+//	Instances of this ME are created and deleted by the OLT.
+//
+//	Relationships
+//		An instance of this ME serves one or more SIP user data MEs and points to a TCP/UDP config data
+//		that carries signalling messages. Other pointers establish additional agent parameters such as
+//		proxy servers.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Proxy Server Address Pointer
+//			This attribute points to a large string ME that contains the name (IP address or URI) of the SIP
+//			proxy server for SIP signalling messages. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Outbound Proxy Address Pointer
+//			An outbound SIP proxy may or may not be required within a given network. If an outbound SIP
+//			proxy is used, the outbound proxy address pointer attribute must be set to point to a valid
+//			large string ME that contains the name (IP address or URI) of the outbound proxy server for SIP
+//			signalling messages. If an outbound SIP proxy is not used, the outbound proxy address pointer
+//			attribute must be set to a null pointer. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Primary Sip Dns
+//			This attribute specifies the primary SIP DNS IP address. If the value of this attribute is 0,
+//			the primary DNS server is defined in the corresponding IP host config data or IPv6 host config
+//			data ME. If the value is non-zero, it takes precedence over the primary DNS server defined in
+//			the IP host config data or IPv6 host config data ME. (R,-W, set-by-create) (mandatory) (4-bytes)
+//
+//		Secondary Sip Dns
+//			This attribute specifies the secondary SIP DNS IP address. If the value of this attribute is 0,
+//			the secondary DNS server is defined in the corresponding IP host config data or IPv6 host config
+//			data ME. If the value is non-zero, it takes precedence over the secondary DNS server defined in
+//			the IP host config data or IPv6 host config data ME. (R,-W, set-by-create) (mandatory) (4-bytes)
+//
+//		Tcp_Udp Pointer
+//			TCP/UDP pointer: This pointer associates the SIP agent with the TCP/UDP config data ME to be
+//			used for communication with the SIP server. The default value is 0xFFFF, a null pointer. (R,-W)
+//			(mandatory) (2-bytes)
+//
+//		Sip Reg Exp Time
+//			This attribute specifies the SIP registration expiration time in seconds. If its value is 0, the
+//			SIP agent does not add an expiration time to the registration requests and does not perform
+//			reregistration. The default value is 3600-s. (R,-W) (mandatory) (4-bytes)
+//
+//		Sip Rereg Head Start Time
+//			This attribute specifies the time in seconds prior to timeout that causes the SIP agent to start
+//			the re-registration process. The default value is 360-s. (R,-W) (mandatory) (4-bytes)
+//
+//		Host Part Uri
+//			This attribute points to a large string ME that contains the host or domain part of the SIP
+//			address of record for users connected to this ONU. A null pointer indicates that the current
+//			address in the IP host config ME is to be used. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Sip Status
+//			5	Failed - Timeout
+//
+//			6	Redundant, offline: this instance of the SIP agent config data occupies the role of a
+//			redundant server, and is not presently in use.
+//
+//			(R) (mandatory) (1-byte)
+//
+//			This attribute shows the current status of the SIP agent. Values are as follows.
+//
+//			0	Ok/initial
+//
+//			1	Connected
+//
+//			2	Failed - ICMP error
+//
+//			3	Failed - Malformed response
+//
+//			4	Failed - Inadequate info response
+//
+//		Sip Registrar
+//			This attribute points to a network address ME that contains the name (IP address or resolved
+//			name) of the registrar server for SIP signalling messages. Examples: "10.10.10.10" and
+//			"proxy.voip.net". (R,-W, set-by-create) (mandatory) (2-bytes)
+//
+//		Softswitch
+//			This attribute identifies the SIP gateway softswitch vendor. The format is four ASCII coded
+//			alphabetic characters [A..Z] as defined in [ATIS0300220]. A value of four null bytes indicates
+//			an unknown or unspecified vendor. (R,-W, setbycreate) (mandatory) (4-bytes)
+//
+//		Sip Response Table
+//			This attribute specifies the tone and text to be presented to the subscriber upon receipt of
+//			various SIP messages (normally 4xx, 5xx, 6xx message codes). The table is a sequence of entries,
+//			each of which is defined as follows.
+//
+//			SIP response code (2 bytes): This field is the value of the SIP message code. It also serves as
+//			the index into the SIP response table. When a set operation is performed with the value 0 in
+//			this field, the table is cleared.
+//
+//			Tone (1 byte): This field specifies one of the tones in the tone pattern table of the associated
+//			voice service profile. The specified tone is played to the subscriber.
+//
+//			Text message (2 bytes): This field is a pointer to a large string that contains a message to be
+//			displayed to the subscriber. If the value of this field is a null pointer, text pre-associated
+//			with the tone may be displayed, or no text at all.
+//
+//			(R, W) (optional) (N * 5 bytes)
+//
+//			NOTE 2 - This model assumes that SIP response tones and text are common to all POTS lines that
+//			share a given SIP agent.
+//
+//		Sip Option Transmit Control
+//			This Boolean attribute specifies that the ONU is (true) or is not (false) enabled to transmit
+//			SIP options. The default value is recommended to be false. (R, W, setbycreate) (optional) (1
+//			byte)
+//
+//		Sip Uri Format
+//			This attribute specifies the format of the URI in outgoing SIP messages. The recommended default
+//			value 0 specifies TEL URIs; the value 1 specifies SIP URIs. Other values are reserved. (R, W,
+//			setbycreate) (optional) (1 byte)
+//
+//		Redundant Sip Agent Pointer
+//			This attribute points to another SIP agent config data ME, which is understood to provide
+//			redundancy. The initial SIP agent is determined by the pointer from the SIP user data ME. It is
+//			the manager's responsibility to provision a group of redundant SIP agents with mutually
+//			consistent attributes. (R, W, setbycreate) (optional) (2 bytes)
+//
+type SipAgentConfigData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	sipagentconfigdataBME = &ManagedEntityDefinition{
+		Name:    "SipAgentConfigData",
+		ClassID: 150,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			GetNext,
+			Set,
+			SetTable,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "SIP-UA register name",
+			1: "SIP-UA register reach",
+			2: "SIP-UA register connect",
+			3: "SIP-UA register validate",
+			4: "SIP-UA register auth",
+			5: "SIP-UA register timeout",
+			6: "SIP-UA register fail",
+		},
+	}
+}
+
+// NewSipAgentConfigData (class ID 150) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewSipAgentConfigData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*sipagentconfigdataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/sipagentconfigdata2.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/sipagentconfigdata2.go
new file mode 100644
index 0000000..1ed14a8
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/sipagentconfigdata2.go
@@ -0,0 +1,123 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// SipAgentConfigData2ClassID is the 16-bit ID for the OMCI
+// Managed entity SIP agent config data 2
+const SipAgentConfigData2ClassID = ClassID(407) // 0x0197
+
+var sipagentconfigdata2BME *ManagedEntityDefinition
+
+// SipAgentConfigData2 (Class ID: #407 / 0x0197)
+//	This ME supplements SIP agent config data ME. Instances of this ME are created and deleted by
+//	the OLT.
+//
+//	Relationships
+//		An instance of this ME is associated with a SIP agent config data.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the corresponding SIP agent config data.  Note that this
+//			entity is associated with the primary SIP agent config data (if SIP agent is involved in
+//			protection). (R, set-by-create) (mandatory) (2-bytes)
+//
+//		In_Use_Options_Timer
+//			In-Use-Options-Timer: This attribute defines the frequency that a SIP options packet is sent to
+//			the SIP proxy in-use. When a SIP options packet is not responded to by the SIP proxy, it is
+//			marked as unavailable. Otherwise, it is marked as available. Units are seconds. The default
+//			value 0 specifies vendor-specific implementation. (R, W, set-by-create) (mandatory) (2-byte)
+//
+//		Alternate_Options_Timer
+//			Alternate-Options-Timer: This attribute defines the frequency that a SIP options packet is sent
+//			to the standby SIP proxy. When a SIP options packet is not responded to by the standby SIP
+//			proxy, it is marked as unavailable. Otherwise, it is marked as available. Units are seconds. The
+//			default value 0 specifies vendor-specific implementation. (R, W, set-by-create) (mandatory)
+//			(2-byte)
+//
+//		Revertive
+//			This Boolean attribute specifies whether the SIP UA is involved in revertive (true) or non-
+//			revertive (false) switching. The default value is recommended to be false. (R, W, set-by-create)
+//			(mandatory) (1 byte)
+//
+//		Current Proxy Server Resolved Address
+//			This attribute contains the resolved IP address of the in-use SIP proxy. If the value is
+//			0.0.x.y, where x and y are not both 0, then x.y is to be interpreted as a pointer to a large
+//			string ME that represents an IPv6 address. Otherwise, the address is an IPv4 address (R)
+//			(optional) (4-bytes)
+//
+//		Current Proxy Server Resolved Name
+//			This attribute contains a pointer to the large string ME that contains the resolved name of the
+//			SIP proxy in-use. (R) (optional) (2-bytes)
+//
+//		Alternate Proxy Server Resolved Address
+//			This attribute contains the resolved IP address of the alternate SIP proxy. If the value is
+//			0.0.x.y, where x and y are not both 0, then x.y is to be interpreted as a pointer to a large
+//			string ME that represents an IPv6 address. Otherwise, the address is an IPv4 address (R)
+//			(optional) (4-bytes)
+//
+//		Alternate Proxy Server Resolved Name
+//			This attribute contains a pointer to the large string ME that contains the resolved name of the
+//			alternate SIP proxy. (R) (optional) (2-bytes)
+//
+type SipAgentConfigData2 struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	sipagentconfigdata2BME = &ManagedEntityDefinition{
+		Name:    "SipAgentConfigData2",
+		ClassID: 407,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewSipAgentConfigData2 (class ID 407) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewSipAgentConfigData2(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*sipagentconfigdata2BME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/sipagentperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/sipagentperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..66850e2
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/sipagentperformancemonitoringhistorydata.go
@@ -0,0 +1,156 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// SipAgentPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity SIP agent performance monitoring history data
+const SipAgentPerformanceMonitoringHistoryDataClassID = ClassID(151) // 0x0097
+
+var sipagentperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// SipAgentPerformanceMonitoringHistoryData (Class ID: #151 / 0x0097)
+//	This ME collects PM data for the associated VoIP SIP agent. Instances of this ME are created and
+//	deleted by the OLT.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with a SIP agent config data or SIP config portal object.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the corresponding SIP agent config data or to the SIP config
+//			portal. If a non-OMCI configuration method is used for VoIP, there can be only one live ME
+//			instance, associated with the SIP config portal, and with ME ID 0. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 ME that
+//			contains PM threshold values. Since no threshold value attribute number exceeds 7, a threshold
+//			data 2 ME is optional. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Transactions
+//			This attribute counts the number of new transactions that were initiated. (R) (optional)
+//			(4-bytes)
+//
+//		Rx Invite Reqs
+//			This attribute counts received invite messages, including retransmissions. (R) (optional)
+//			(4-bytes)
+//
+//		Rx Invite Retrans
+//			This attribute counts received invite retransmission messages. (R) (optional) (4-bytes)
+//
+//		Rx Noninvite Reqs
+//			This attribute counts received non-invite messages, including retransmissions. (R) (optional)
+//			(4-bytes)
+//
+//		Rx Noninvite Retrans
+//			This attribute counts received non-invite retransmission messages. (R) (optional) (4-bytes)
+//
+//		Rx Response
+//			This attribute counts total responses received. (R) (optional) (4-bytes)
+//
+//		Rx Response Retransmissions
+//			This attribute counts total response retransmissions received. (R) (optional) (4-bytes)
+//
+//		Tx Invite Reqs
+//			This attribute counts transmitted invite messages, including retransmissions. (R) (optional)
+//			(4-bytes)
+//
+//		Tx Invite Retrans
+//			This attribute counts transmitted invite retransmission messages. (R) (optional) (4-bytes)
+//
+//		Tx Noninvite Reqs
+//			This attribute counts transmitted non-invite messages, including retransmissions. (R) (optional)
+//			(4-bytes)
+//
+//		Tx Noninvite Retrans
+//			This attribute counts transmitted non-invite retransmission messages. (R) (optional) (4-bytes)
+//
+//		Tx Response
+//			This attribute counts the total responses sent. (R) (optional) (4-bytes)
+//
+//		Tx Response Retransmissions
+//			This attribute counts total response retransmissions sent. (R) (optional) (4-bytes)
+//
+type SipAgentPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	sipagentperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "SipAgentPerformanceMonitoringHistoryData",
+		ClassID: 151,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "SIPAMD Rx invite req",
+			1: "SIPAMD Rx invite req retransmission",
+			2: "SIPAMD Rx noninvite req",
+			3: "SIPAMD Rx noninvite req retransmission",
+			4: "SIPAMD Rx response",
+			5: "SIPAMD Rx response retransmission",
+		},
+	}
+}
+
+// NewSipAgentPerformanceMonitoringHistoryData (class ID 151) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewSipAgentPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*sipagentperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/sipcallinitiationperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/sipcallinitiationperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..23949a5
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/sipcallinitiationperformancemonitoringhistorydata.go
@@ -0,0 +1,123 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// SipCallInitiationPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity SIP call initiation performance monitoring history data
+const SipCallInitiationPerformanceMonitoringHistoryDataClassID = ClassID(152) // 0x0098
+
+var sipcallinitiationperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// SipCallInitiationPerformanceMonitoringHistoryData (Class ID: #152 / 0x0098)
+//	This ME collects PM data related to call initiations of a VoIP SIP agent. Instances of this ME
+//	are created and deleted by the OLT.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of the SIP agent config data or SIP config
+//		portal ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the SIP agent config data or the SIP config portal ME. If a
+//			nonOMCI configuration method is used for VoIP, there can be only one live ME instance,
+//			associated with the SIP config portal, and with ME ID 0. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 ME that
+//			contains PM threshold values. Since no threshold value attribute number exceeds 7, a threshold
+//			data 2 ME is optional. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Failed To Connect Counter
+//			This attribute counts the number of times that the SIP UA failed to reach/connect its TCP/UDP
+//			peer during SIP call initiations. (R) (mandatory) (4-bytes)
+//
+//		Failed To Validate Counter
+//			This attribute counts the number of times that the SIP UA failed to validate its peer during SIP
+//			call initiations. (R) (mandatory) (4-bytes)
+//
+//		Timeout Counter
+//			This attribute counts the number of times that the SIP UA timed out during SIP call initiations.
+//			(R) (mandatory) (4-bytes)
+//
+//		Failure Received Counter
+//			This attribute counts the number of times that the SIP UA received a failure error code during
+//			SIP call initiations. (R) (mandatory) (4-bytes)
+//
+//		Failed To Authenticate Counter
+//			This attribute counts the number of times that the SIP UA failed to authenticate itself during
+//			SIP call initiations. (R) (mandatory) (4-bytes)
+//
+type SipCallInitiationPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	sipcallinitiationperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "SipCallInitiationPerformanceMonitoringHistoryData",
+		ClassID: 152,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "SIP call PM failed connect",
+			1: "SIP call PM failed to validate",
+			2: "SIP call PM timeout",
+			3: "SIP call PM failure error code received",
+			4: "SIP call PM failed to authenticate",
+		},
+	}
+}
+
+// NewSipCallInitiationPerformanceMonitoringHistoryData (class ID 152) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewSipCallInitiationPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*sipcallinitiationperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/sipconfigportal.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/sipconfigportal.go
new file mode 100644
index 0000000..7f525c0
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/sipconfigportal.go
@@ -0,0 +1,85 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// SipConfigPortalClassID is the 16-bit ID for the OMCI
+// Managed entity SIP config portal
+const SipConfigPortalClassID = ClassID(149) // 0x0095
+
+var sipconfigportalBME *ManagedEntityDefinition
+
+// SipConfigPortal (Class ID: #149 / 0x0095)
+//	The SIP config portal ME provides a way for the OLT to discover the configuration text delivered
+//	to an ONU by a non-OMCI SIP VoIP configuration method ([BBF TR-069], sipping framework, etc.).
+//	Text retrieved from this ME is not required to be understood by the OLT or EMS, but it may be
+//	useful for human or vendor-specific analysis tools. See also the MGC config portal ME.
+//
+//	An instance of this ME may be created by an ONU that supports non-OMCI SIP configuration. It is
+//	not reported during an MIB upload.
+//
+//	Relationships
+//		One instance of this ME is associated with the ONU.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. There is one instance, number 0.
+//			(R) (mandatory) (2-bytes)
+//
+//		Configuration Text Table
+//			This attribute is used to pass a textual representation of the VoIP configuration back to the
+//			OLT. The contents are vendor-specific. The get, get next sequence must be used with this
+//			attribute since its size is unspecified. Upon ME instantiation, the ONU sets this attribute to
+//			0. (R) (mandatory) (x-bytes)
+//
+type SipConfigPortal struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	sipconfigportalBME = &ManagedEntityDefinition{
+		Name:    "SipConfigPortal",
+		ClassID: 149,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewSipConfigPortal (class ID 149) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewSipConfigPortal(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*sipconfigportalBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/sipuserdata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/sipuserdata.go
new file mode 100644
index 0000000..dcbe99e
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/sipuserdata.go
@@ -0,0 +1,154 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// SipUserDataClassID is the 16-bit ID for the OMCI
+// Managed entity SIP user data
+const SipUserDataClassID = ClassID(153) // 0x0099
+
+var sipuserdataBME *ManagedEntityDefinition
+
+// SipUserData (Class ID: #153 / 0x0099)
+//	The SIP user data defines the user specific configuration attributes associated with a specific
+//	VoIP CTP. This entity is conditionally required for ONUs that offer VoIP SIP services. If a non-
+//	OMCI interface is used to manage SIP for VoIP, this ME is unnecessary. The non-OMCI interface
+//	supplies the necessary data, which may be read back to the OLT via the SIP config portal ME.
+//
+//	An instance of this ME is created and deleted by the OLT. A SIP user data instance is required
+//	for each POTS UNI port using SIP protocol and configured by the OMCI.
+//
+//	Relationships
+//		An instance of this ME is associated with one VoIP voice CTP ME and a PPTP POTS UNI.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Sip Agent Pointer
+//			This attribute points to the SIP agent config data ME to be used for signalling. (R,-W,
+//			setbycreate) (mandatory) (2-bytes)
+//
+//		User Part Aor
+//			This attribute points to a large string that contains the user identification part of the
+//			address of record. This can take the form of an alphanumeric string or the subscriber's
+//			directory number. A null pointer indicates the absence of an AOR. (R,-W, setbycreate)
+//			(mandatory) (2-bytes)
+//
+//		Sip Display Name
+//			This ASCII string attribute defines the customer ID used for the display attribute in outgoing
+//			SIP messages. The default value is null (all zero bytes) (R,-W) (mandatory) (25-bytes)
+//
+//		Username And Password
+//			This attribute points to an authentication security method ME that contains the SIP user name
+//			and password used for authentication. A null pointer indicates no username and password. (R,-W,
+//			setbycreate) (mandatory) (2)
+//
+//		Voicemail Server Sip Uri
+//			This attribute points to a network address ME that contains the name (IP address or URI) of the
+//			SIP voicemail server for SIP signalling messages. A null pointer indicates the absence of a SIP
+//			voicemail server. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Voicemail Subscription Expiration Time
+//			This attribute defines the voicemail subscription expiration time in seconds. If this value is
+//			0, the SIP agent uses an implementation-specific value. This attribute is recommended to be set
+//			to 3600-s by default. (R,-W, setbycreate) (mandatory) (4-bytes)
+//
+//		Network Dial Plan Pointer
+//			This attribute points to a network dial plan table. A null pointer indicates the absence of a
+//			network dial plan. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Application Services Profile Pointer
+//			This attribute points to a VoIP application services profile. (R,-W, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Feature Code Pointer
+//			This attribute points to the VoIP feature access codes ME for this subscriber. A null pointer
+//			indicates the absence of a VoIP feature access codes ME. (R,-W, set-by-create) (mandatory)
+//			(2-bytes)
+//
+//		Pptp Pointer
+//			This attribute points to the PPTP POTS UNI ME that provides the analogue telephony adaptor (ATA)
+//			function. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Release Timer
+//			This attribute contains a release timer defined in seconds. The value 0 specifies that the ONU
+//			is to use its internal default. The default value of this attribute is 10-s. (R,-W) (optional)
+//			(1-byte)
+//
+//		Receiver Off Hook Roh Timer
+//			Receiver off hook (ROH) timer:	This attribute defines the time in seconds for the ROH condition
+//			before ROH tone is applied. The value 0 disables ROH timing. The value 0xFF specifies that the
+//			ONU is to use its internal default, which may or may not be the same as the 15-s OMCI default
+//			value. (R,-W) (optional) (1-byte)
+//
+type SipUserData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	sipuserdataBME = &ManagedEntityDefinition{
+		Name:    "SipUserData",
+		ClassID: 153,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "SIP-UA register auth",
+			1: "SIP-UA register timeout",
+			2: "SIP-UA register fail",
+		},
+	}
+}
+
+// NewSipUserData (class ID 153) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewSipUserData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*sipuserdataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/snmpconfigurationdata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/snmpconfigurationdata.go
new file mode 100644
index 0000000..2e6c9e4
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/snmpconfigurationdata.go
@@ -0,0 +1,117 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// SnmpConfigurationDataClassID is the 16-bit ID for the OMCI
+// Managed entity SNMP configuration data
+const SnmpConfigurationDataClassID = ClassID(335) // 0x014f
+
+var snmpconfigurationdataBME *ManagedEntityDefinition
+
+// SnmpConfigurationData (Class ID: #335 / 0x014f)
+//	The SNMP configuration data ME provides a way for the OLT to provision an IP path for an SNMP
+//	management agent.
+//
+//	The SNMP configuration data ME is created and deleted by the OLT.
+//
+//	Relationships
+//		One instance of this ME is created by the OLT for each SNMP management path termination.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. The ME IDs 0 and 0xFFFF are
+//			reserved. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Snmp Version
+//			This integer attribute is the SNMP protocol version to be supported. (R,-W, setbycreate)
+//			(mandatory) (2-bytes)
+//
+//		Snmp Agent Address
+//			This attribute is a pointer to a TCP/UDP config data ME, which provides the SNMP agent. (R, W,
+//			setbycreate) (mandatory) (2 bytes)
+//
+//		Snmp Server Address
+//			This attribute is the IP address of the SNMP server. (R, W, setbycreate) (mandatory) (4 bytes)
+//
+//		Snmp Server Port
+//			This attribute is the UDP port number of the SNMP server. (R, W, setbycreate) (mandatory) (2
+//			bytes)
+//
+//		Security Name Pointer
+//			This attribute points to a large string whose content represents the SNMP security name in a
+//			human-readable format that is independent of the security model. SecurityName is defined in
+//			[b-IETF RFC 2571]. (R, W, setbycreate) (mandatory) (2 bytes)
+//
+//		Community For Read
+//			This attribute is a pointer to a large string that contains the name of the read community. (R,
+//			W, setbycreate) (mandatory) (2 bytes)
+//
+//		Community For Write
+//			This attribute is a pointer to a large string that contains the name of the write community. (R,
+//			W, setbycreate) (mandatory) (2 bytes)
+//
+//		Sys Name Pointer
+//			This attribute points to a large string whose content identifies the SNMP system name. SysName
+//			is defined in [b-IETF RFC-3418]. (R, W, setbycreate) (mandatory) (2 bytes)
+//
+type SnmpConfigurationData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	snmpconfigurationdataBME = &ManagedEntityDefinition{
+		Name:    "SnmpConfigurationData",
+		ClassID: 335,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewSnmpConfigurationData (class ID 335) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewSnmpConfigurationData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*snmpconfigurationdataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/softwareimage.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/softwareimage.go
new file mode 100644
index 0000000..b900d0b
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/softwareimage.go
@@ -0,0 +1,145 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// SoftwareImageClassID is the 16-bit ID for the OMCI
+// Managed entity Software image
+const SoftwareImageClassID = ClassID(7) // 0x0007
+
+var softwareimageBME *ManagedEntityDefinition
+
+// SoftwareImage (Class ID: #7 / 0x0007)
+//	This ME models an executable software image stored in the ONU (documented here as its
+//	fundamental usage). It may also be used to represent an opaque vendor-specific file
+//	(vendorspecific usage).
+//
+//	Fundamental usage
+//
+//	The ONU automatically creates two instances of this ME upon the creation of each ME that
+//	contains independently manageable software, either the ONU itself or an individual circuit pack.
+//	It populates ME attributes according to data within the ONU or the circuit pack.
+//
+//	Some pluggable equipment may not contain software. Others may contain software that is
+//	intrinsically bound to the ONU's own software image. No software image ME need exist for such
+//	equipment, though it may be convenient for the ONU to create them to support software version
+//	audit from the OLT. In this case, the dependent MEs would support only the get action.
+//
+//	A slot may contain various equipment over its lifetime, and if software image MEs exist, the ONU
+//	must automatically create and delete them as the equipped configuration changes. The identity of
+//	the software image is tied to the cardholder.
+//
+//	When an ONU controller packs are duplicated, each can be expected to contain two software image
+//	MEs, managed through reference to the individual controller packs themselves. When this occurs,
+//	the ONU should not have a global pair of software images MEs (instance 0), since an action
+//	(download, activate, commit) directed to instance 0 would be ambiguous.
+//
+//	Relationships
+//		Two instances of the software image ME are associated with each instance of the ONU or
+//		cardholder whose software is independently managed.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. The first byte indicates the
+//			physical location of the equipment hosting the software image, either the ONU (0) or a
+//			cardholder (1..254). The second byte distinguishes between the two software image ME instances
+//			(0..1). (R) (mandatory) (2-bytes)
+//
+//		Version
+//			This string attribute identifies the version of the software. (R) (mandatory) (14-bytes)
+//
+//		Is Committed
+//			This attribute indicates whether the associated software image is committed (1) or uncommitted
+//			(0). By definition, the committed software image is loaded and executed upon reboot of the ONU
+//			or circuit pack. During normal operation, one software image is always committed, while the
+//			other is uncommitted. Under no circumstances are both software images allowed to be committed at
+//			the same time. On the other hand, both software images could be uncommitted at the same time if
+//			both were invalid. Upon ME instantiation, instance 0 is initialized to committed, while instance
+//			1 is initialized to uncommitted (i.e., the ONU ships from the factory with image 0 committed).
+//			(R) (mandatory) (1-byte)
+//
+//		Is Active
+//			This attribute indicates whether the associated software image is active (1) or inactive (0). By
+//			definition, the active software image is one that is currently loaded and executing in the ONU
+//			or circuit pack. Under normal operation, one software image is always active while the other is
+//			inactive. Under no circumstances are both software images allowed to be active at the same time.
+//			On the other hand, both software images could be inactive at the same time if both were invalid.
+//			(R) (mandatory) (1-byte)
+//
+//		Is Valid
+//			This attribute indicates whether the associated software image is valid (1) or invalid (0). By
+//			definition, a software image is valid if it has been verified to be an executable code image.
+//			The verification mechanism is not subject to standardization; however, it should include at
+//			least a data integrity check [e.g., a cyclic redundancy check (CRC)] of the entire code image.
+//			Upon ME instantiation or software download completion, the ONU validates the associated code
+//			image and sets this attribute according to the result. (R) (mandatory) (1-byte)
+//
+//		Product Code
+//			This attribute provides a way for a vendor to indicate product code information on a file. It is
+//			a character string, padded with trailing nulls if it is shorter than 25 bytes. (R) (optional)
+//			(25 bytes)
+//
+//		Image Hash
+//			This attribute is an MD5 hash of the software image. It is computed at completion of the end
+//			download action. (R) (optional) (16-bytes)
+//
+type SoftwareImage struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	softwareimageBME = &ManagedEntityDefinition{
+		Name:    "SoftwareImage",
+		ClassID: 7,
+		MessageTypes: mapset.NewSetWith(
+			ActivateSoftware,
+			CommitSoftware,
+			DownloadSection,
+			EndSoftwareDownload,
+			Get,
+			StartSoftwareDownload,
+		),
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewSoftwareImage (class ID 7) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewSoftwareImage(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*softwareimageBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/t-cont.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/t-cont.go
new file mode 100644
index 0000000..7fe59c9
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/t-cont.go
@@ -0,0 +1,124 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// TContClassID is the 16-bit ID for the OMCI
+// Managed entity T-CONT
+const TContClassID = ClassID(262) // 0x0106
+
+var tcontBME *ManagedEntityDefinition
+
+// TCont (Class ID: #262 / 0x0106)
+//	An instance of the traffic container ME T-CONT represents a logical connection group associated
+//	with a G-PON PLOAM layer alloc-ID. A T-CONT can accommodate GEM packets in priority queues or
+//	traffic schedulers that exist in the GEM layer.
+//
+//	The ONU autonomously creates instances of this ME. The OLT can discover the number of TCONT
+//	instances via the ANI-G ME. When the ONU's MIB is reset or created for the first time, all
+//	supported T-CONTs are created. The OLT provisions alloc-IDs to the ONU via the PLOAM channel.
+//	Via the OMCI, the OLT must then set the alloc-ID attributes in the T-CONTs that it wants to
+//	activate for user traffic, to create the appropriate association with the allocation ID in the
+//	PLOAM channel. There should be a one-to-one relationship between allocation IDs and T-CONT MEs;
+//	the connection of multiple T-CONTs to a single allocation ID is undefined.
+//
+//	The allocation ID that matches the ONU-ID itself is defined to be the default alloc-ID. This
+//	allocID is used to carry the OMCC. The default alloc-ID can also be used to carry user traffic,
+//	and hence can be assigned to one of the T-CONT MEs. However, this OMCI relationship only
+//	pertains to user traffic, and the OMCC relationship is unaffected. It can also be true that the
+//	OMCC is not contained in any T-CONT ME construct; rather, that the OMCC remains outside of the
+//	OMCI, and that the OMCI is not used to manage the OMCC in any way. Multiplexing of the OMCC and
+//	user data in GPON systems is discussed in clause B.2.4.
+//
+//	Relationships
+//		One or more instances of this ME are associated with an instance of a circuit pack that supports
+//		a PON interface function, or with the ONU-G itself.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. This 2-byte number indicates the
+//			physical capability that realizes the TCONT. It may be represented as 0xSSBB, where SS indicates
+//			the slot ID that contains this T-CONT (0 for the ONU as a whole), and BB is the TCONT ID,
+//			numbered by the ONU itself. T-CONTs are numbered in ascending order, with the range 0..255 in
+//			each slot. (R) (mandatory) (2-bytes)
+//
+//		Alloc_Id
+//			Alloc-ID:	This attribute links the T-CONT with the alloc-ID assigned by the OLT in the
+//			assign_alloc-ID PLOAM message. The respective TC layer specification should be referenced for
+//			the legal values for that system. Prior to the setting of this attribute by the OLT, this
+//			attribute has an unambiguously unusable initial value, namely the value 0x00FF or 0xFFFF for
+//			ITU-T G.984 systems, and the value 0xFFFF for all other ITU-T GTC based PON systems. (R,-W)
+//			(mandatory) (2-bytes)
+//
+//		Deprecated
+//			The ONU should set this attribute to the value 1, and the OLT should ignore it. (R) (mandatory)
+//			(1-byte)
+//
+//		Policy
+//			This attribute indicates the T-CONT's traffic scheduling policy. Valid values:
+//
+//			0	Null
+//
+//			1	Strict priority
+//
+//			2	WRR - Weighted round robin
+//
+//			(R, W) (mandatory) (1 byte)
+//
+//			NOTE - This attribute is read-only, unless otherwise specified by the QoS configuration
+//			flexibility attribute of the ONU2-G ME. If flexible configuration is not supported, the ONU
+//			should reject an attempt to set it with a parameter error result-reason code.
+//
+type TCont struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	tcontBME = &ManagedEntityDefinition{
+		Name:    "TCont",
+		ClassID: 262,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewTCont (class ID 262) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewTCont(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*tcontBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/tcadaptorperformancemonitoringhistorydataxdsl.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/tcadaptorperformancemonitoringhistorydataxdsl.go
new file mode 100644
index 0000000..8c13139
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/tcadaptorperformancemonitoringhistorydataxdsl.go
@@ -0,0 +1,140 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// TcAdaptorPerformanceMonitoringHistoryDataXdslClassID is the 16-bit ID for the OMCI
+// Managed entity TC adaptor performance monitoring history data xDSL
+const TcAdaptorPerformanceMonitoringHistoryDataXdslClassID = ClassID(116) // 0x0074
+
+var tcadaptorperformancemonitoringhistorydataxdslBME *ManagedEntityDefinition
+
+// TcAdaptorPerformanceMonitoringHistoryDataXdsl (Class ID: #116 / 0x0074)
+//	This ME collects PM data of an xTUC to xTUR ATM data path. Instances of this ME are created and
+//	deleted by the OLT.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an xDSL UNI.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the PPTP xDSL UNI part 1. (R) (mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data1/2 ID: This attribute points to an instance of the threshold data1 ME that
+//			contains PM threshold values. Since no threshold value attribute number exceeds 7, a threshold
+//			data 2 ME is optional. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Near_End Hec Violation Count
+//			Near-end HEC violation count: This attribute counts near-end HEC anomalies in the ATM data path.
+//			(R) (mandatory) (2-bytes)
+//
+//		Near_End Delineated Total Cell Count Cd P
+//			Near-end delineated total cell count (CDP): This attribute counts the total number of cells
+//			passed through the cell delineation and HEC function process operating on the ATM data path
+//			while in the SYNC state. (R) (mandatory) (4-bytes)
+//
+//		Near_End User Total Cell Count Cu_P
+//			Near-end user total cell count(CU-P): This attribute counts the total number of cells in the ATM
+//			data path delivered at the V-C interface. (R) (mandatory) (4-bytes)
+//
+//		Near_End Idle Cell Bit Error Count
+//			Near-end idle cell bit error count: This attribute counts cells with bit errors in the ATM data
+//			path idle payload received at the near end. (R) (mandatory) (2-bytes)
+//
+//		Far_End Hec Violation Count
+//			Far-end HEC violation count: This attribute counts far-end HEC anomalies in the ATM data path.
+//			(R) (mandatory) (2-bytes)
+//
+//		Far_End Delineated Total Cell Count Cd_Pfe
+//			Far-end delineated total cell count (CD-PFE): This attribute counts the total number of cells
+//			passed through the cell delineation process and HEC function operating on the ATM data path
+//			while in the SYNC state. (R) (mandatory) (4-bytes)
+//
+//		Far_End User Total Cell Count Cu_Pfe
+//			Far-end user total cell count (CU-PFE): This attribute counts the total number of cells in the
+//			ATM data path delivered at the T-R interface. (R) (mandatory) (4-bytes)
+//
+//		Far_End Idle Cell Bit Error Count
+//			Far-end idle cell bit error count: This attribute counts cells with bit errors in the ATM data
+//			path idle payload received at the far end. (R) (mandatory) (2-bytes)
+//
+type TcAdaptorPerformanceMonitoringHistoryDataXdsl struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	tcadaptorperformancemonitoringhistorydataxdslBME = &ManagedEntityDefinition{
+		Name:    "TcAdaptorPerformanceMonitoringHistoryDataXdsl",
+		ClassID: 116,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Near-end HEC violation",
+			1: "Near-end idle cell bit error count",
+			2: "Far-end HEC violation count",
+			3: "Far-end idle cell bit error count",
+			4: "Near-end delineated total cell count (CD-P)",
+			5: "Near-end user total cell count (CU-P)",
+			6: "Far-end delineated total cell count (CD-PFE)",
+			7: "Far-end user total cell count (CU-PFE)",
+		},
+	}
+}
+
+// NewTcAdaptorPerformanceMonitoringHistoryDataXdsl (class ID 116) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewTcAdaptorPerformanceMonitoringHistoryDataXdsl(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*tcadaptorperformancemonitoringhistorydataxdslBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/tcpudpconfigdata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/tcpudpconfigdata.go
new file mode 100644
index 0000000..df11642
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/tcpudpconfigdata.go
@@ -0,0 +1,103 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// TcpUdpConfigDataClassID is the 16-bit ID for the OMCI
+// Managed entity TCP/UDP config data
+const TcpUdpConfigDataClassID = ClassID(136) // 0x0088
+
+var tcpudpconfigdataBME *ManagedEntityDefinition
+
+// TcpUdpConfigData (Class ID: #136 / 0x0088)
+//	The TCP/UDP config data ME configures services based on the transmission control protocol (TCP)
+//	and user datagram protocol (UDP) that are offered from an IP host. If a non-OMCI interface is
+//	used to manage an IP service, this ME is unnecessary; the non-OMCI interface supplies the
+//	necessary data.
+//
+//	An instance of this ME is created and deleted on request of the OLT.
+//
+//	Relationships
+//		One or more instances of this ME may be associated with an instance of an IP host config data or
+//		IPv6 host config data ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. It is recommended that the ME ID be
+//			the same as the port number. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Port Id
+//			This attribute specifies the port number that offers the TCP/UDP service. (R,-W, setbycreate)
+//			(mandatory) (2-bytes)
+//
+//		Protocol
+//			This attribute specifies the protocol type as defined by [b-IANA] (protocol numbers), for
+//			example UDP (0x11). (R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Tos_Diffserv Field
+//			TOS/diffserv field: This attribute specifies the value of the TOS/diffserv field of the IPv4
+//			header. The contents of this attribute may contain the type of service per [IETF RFC 2474] or a
+//			DSCP. Valid values for DSCP are as defined by [b-IANA] (differentiated services field code
+//			points). (R,-W, set-by-create) (mandatory) (1-byte)
+//
+//		Ip Host Pointer
+//			This attribute points to the IP host config data or IPv6 host config data ME associated with
+//			this TCP/UDP data. Any number of ports and protocols may be associated with an IP host. (R, W,
+//			set-by-create) (mandatory) (2 bytes)
+//
+type TcpUdpConfigData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	tcpudpconfigdataBME = &ManagedEntityDefinition{
+		Name:    "TcpUdpConfigData",
+		ClassID: 136,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewTcpUdpConfigData (class ID 136) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewTcpUdpConfigData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*tcpudpconfigdataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/tcpudpperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/tcpudpperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..fd7073b
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/tcpudpperformancemonitoringhistorydata.go
@@ -0,0 +1,121 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// TcpUdpPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity TCP/UDP performance monitoring history data
+const TcpUdpPerformanceMonitoringHistoryDataClassID = ClassID(342) // 0x0156
+
+var tcpudpperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// TcpUdpPerformanceMonitoringHistoryData (Class ID: #342 / 0x0156)
+//	This ME collects PM data related to a TCP or UDP port. Instances of this ME are created and
+//	deleted by the OLT.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of the TCP/UDP config data ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the TCP/UDP config data ME. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 ME that
+//			contains PM threshold values. Since no threshold value attribute number exceeds 7, a threshold
+//			data 2 ME is optional. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Socket Failed
+//			This attribute is incremented when an attempt to create a socket associated with a port fails.
+//			(R) (mandatory) (2-bytes)
+//
+//		Listen Failed
+//			This attribute is incremented when an attempt by a service to listen for a request on a port
+//			fails. (R) (mandatory) (2-bytes)
+//
+//		Bind Failed
+//			This attribute is incremented when an attempt by a service to bind to a port fails. (R)
+//			(mandatory) (2-bytes)
+//
+//		Accept Failed
+//			This attribute is incremented when an attempt to accept a connection on a port fails. (R)
+//			(mandatory) (2-bytes)
+//
+//		Select Failed
+//			This attribute is incremented when an attempt to perform a select on a group of ports fails. (R)
+//			(mandatory) (2-bytes)
+//
+type TcpUdpPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	tcpudpperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "TcpUdpPerformanceMonitoringHistoryData",
+		ClassID: 342,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			1: "Socket failed",
+			2: "Listen failed",
+			3: "Bind failed",
+			4: "Accept failed",
+			5: "Select failed",
+		},
+	}
+}
+
+// NewTcpUdpPerformanceMonitoringHistoryData (class ID 342) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewTcpUdpPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*tcpudpperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/thresholddata1.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/thresholddata1.go
new file mode 100644
index 0000000..d398f61
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/thresholddata1.go
@@ -0,0 +1,113 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// ThresholdData1ClassID is the 16-bit ID for the OMCI
+// Managed entity Threshold data 1
+const ThresholdData1ClassID = ClassID(273) // 0x0111
+
+var thresholddata1BME *ManagedEntityDefinition
+
+// ThresholdData1 (Class ID: #273 / 0x0111)
+//	Threshold data are partitioned into two MEs for historical reasons. An instance of this ME,
+//	together with an optional instance of the threshold data 2 ME, contains threshold values for
+//	counters in PM history data MEs.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Instances of this ME are created and deleted by the OLT.
+//
+//	Relationships
+//		An instance of this ME may be related to multiple instances of PM history data type MEs.////		Paired instances of threshold data 1 ME and threshold data 2 ME are implicitly linked together
+//		through a common ME ID.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//			The following seven attributes specify threshold values for seven thresholded counters in
+//			associated PM history data MEs. The definition of each PM history ME includes a table that links
+//			each thresholded counter to one of these threshold value attributes.
+//
+//		Threshold Value_1
+//			Threshold value-1: (R,-W, setbycreate) (mandatory) (4-bytes)
+//
+//		Threshold Value_2
+//			Threshold value-2: (R,-W, setbycreate) (mandatory) (4-bytes)
+//
+//		Threshold Value_3
+//			Threshold value-3: (R,-W, setbycreate) (mandatory) (4-bytes)
+//
+//		Threshold Value_4
+//			Threshold value-4: (R,-W, setbycreate) (mandatory) (4-bytes)
+//
+//		Threshold Value_5
+//			Threshold value-5: (R,-W, setbycreate) (mandatory) (4-bytes)
+//
+//		Threshold Value_6
+//			Threshold value-6: (R,-W, setbycreate) (mandatory) (4-bytes)
+//
+//		Threshold Value_7
+//			Threshold value-7: (R,-W, setbycreate) (mandatory) (4-bytes)
+//
+type ThresholdData1 struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	thresholddata1BME = &ManagedEntityDefinition{
+		Name:    "ThresholdData1",
+		ClassID: 273,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewThresholdData1 (class ID 273) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewThresholdData1(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*thresholddata1BME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/thresholddata2.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/thresholddata2.go
new file mode 100644
index 0000000..3cd0975
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/thresholddata2.go
@@ -0,0 +1,111 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// ThresholdData2ClassID is the 16-bit ID for the OMCI
+// Managed entity Threshold data 2
+const ThresholdData2ClassID = ClassID(274) // 0x0112
+
+var thresholddata2BME *ManagedEntityDefinition
+
+// ThresholdData2 (Class ID: #274 / 0x0112)
+//	Together with an instance of the threshold data 1 ME, an instance of this ME contains threshold
+//	values for counters maintained in one or more instances of PM history data MEs.
+//
+//	For a complete discussion of generic PM architecture, refer to clause-I.4.
+//
+//	Instances of this ME are created and deleted by the OLT.
+//
+//	Relationships
+//		Refer to the relationships of the threshold data 1 ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Its value is the same as that of
+//			the paired threshold data-1-instance. (R, setbycreate) (mandatory) (2-bytes)
+//
+//			The following seven attributes specify threshold values for seven thresholded counters in
+//			associated PM history data MEs. The definition of each PM history ME includes a table that links
+//			each thresholded counter to one of these threshold value attributes.
+//
+//		Threshold Value_8
+//			Threshold value-8: (R,-W, setbycreate) (mandatory) (4-bytes)
+//
+//		Threshold Value_9
+//			Threshold value-9: (R,-W, setbycreate) (mandatory) (4-bytes)
+//
+//		Threshold Value_10
+//			Threshold value-10: (R,-W, setbycreate) (mandatory) (4-bytes)
+//
+//		Threshold Value_11
+//			Threshold value-11: (R,-W, setbycreate) (mandatory) (4-bytes)
+//
+//		Threshold Value_12
+//			Threshold value-12: (R,-W, setbycreate) (mandatory) (4-bytes)
+//
+//		Threshold Value_13
+//			Threshold value-13: (R,-W, setbycreate) (mandatory) (4-bytes)
+//
+//		Threshold Value_14
+//			Threshold value-14: (R,-W, setbycreate) (mandatory) (4-bytes)
+//
+type ThresholdData2 struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	thresholddata2BME = &ManagedEntityDefinition{
+		Name:    "ThresholdData2",
+		ClassID: 274,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewThresholdData2 (class ID 274) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewThresholdData2(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*thresholddata2BME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/timestatusmessage.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/timestatusmessage.go
new file mode 100644
index 0000000..d227b91
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/timestatusmessage.go
@@ -0,0 +1,125 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// TimeStatusMessageClassID is the 16-bit ID for the OMCI
+// Managed entity Time Status Message
+const TimeStatusMessageClassID = ClassID(440) // 0x01b8
+
+var timestatusmessageBME *ManagedEntityDefinition
+
+// TimeStatusMessage (Class ID: #440 / 0x01b8)
+//	This ME provides status and characterization information for the time-transmitting node and its
+//	grandmaster. An ONU that supports time synchronization automatically creates an instance of this
+//	ME. The best practise is to set all the attributes at the same time.
+//
+//	Relationships
+//		The single instance of this ME is associated with the ONU ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. There is only one instance, number
+//			0. (R) (mandatory) (2 bytes)
+//
+//		Domain Number
+//			Using the format of clause 7.1 of [IEEE 1588]. The default value is 0. (R, W) (mandatory) (1
+//			byte)
+//
+//		Flag Field
+//			The field format is given in the table. Value 1 represents "true". (R, W) (mandatory) (1 byte)
+//
+//		Currentutcoffset
+//			Provides the UTC offset value between the TAI and UTC timescales (UTC Offset-= TAI-- UTC), as
+//			specified in clause 7.2.3 of [IEEE 1588]. (R, W) (mandatory) (2 bytes)
+//
+//		Priority1
+//			As specified in clause 7.6.2.2 of [IEEE 1588]. (R, W) (mandatory) (1 byte)
+//
+//		Clockclass
+//			Provides the clockClass information denoting the traceability of the time distributed by the
+//			grandmaster clock, as specified in clause 7.6.2.4 of [IEEE 1588]. (R, W) (mandatory) (1 byte)
+//
+//		Accuracy
+//			Indicates the expected accuracy of a clock when it is the grandmaster, as specified in clause
+//			7.6.2.5 of [IEEE 1588]. (R, W) (mandatory) (1 byte)
+//
+//		Offsetscaledlogvariance
+//			Provides the estimate of the time variance, as specified in clause-7.6.3 of [IEEE 1588]. (R, W)
+//			(mandatory) (2 bytes)
+//
+//		Priority2
+//			As specified in clause 7.6.2.3 of [IEEE 1588]. (R, W) (mandatory) (1 byte)
+//
+//			Grandmaster ID: The clockIdentity attribute of the grandmaster, taken from the IEEE EUI64
+//			individual assigned numbers. (R, W) (mandatory) (8 bytes)
+//
+//			Steps removed:	Provides the number of boundary clocks between the local clock and the master.
+//			(R, W) (mandatory) (2 bytes)
+//
+//			Time source:	Indicates the source of time used by the grandmaster clock, as specified in clause
+//			7.6.2.6 of [IEEE 1588]. (R, W) (mandatory) (1 byte)
+//
+type TimeStatusMessage struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	timestatusmessageBME = &ManagedEntityDefinition{
+		Name:    "TimeStatusMessage",
+		ClassID: 440,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Clock unlock",
+			1: "ESMC loss",
+			2: "Time unlock",
+		},
+	}
+}
+
+// NewTimeStatusMessage (class ID 440) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewTimeStatusMessage(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*timestatusmessageBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/trafficdescriptor.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/trafficdescriptor.go
new file mode 100644
index 0000000..cf1ccc0
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/trafficdescriptor.go
@@ -0,0 +1,190 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// TrafficDescriptorClassID is the 16-bit ID for the OMCI
+// Managed entity Traffic descriptor
+const TrafficDescriptorClassID = ClassID(280) // 0x0118
+
+var trafficdescriptorBME *ManagedEntityDefinition
+
+// TrafficDescriptor (Class ID: #280 / 0x0118)
+//	The traffic descriptor is a profile that allows for traffic management. A priority controlled
+//	ONU can point from a MAC bridge port configuration data ME to a traffic descriptor in order to
+//	implement traffic management (marking, policing). A rate controlled ONU can point to a traffic
+//	descriptor from either a MAC bridge port configuration data ME or a GEM port network CTP to
+//	implement traffic management (marking, shaping).
+//
+//	Packets are determined to be green, yellow or red as a function of the ingress packet rate and
+//	the settings in this ME. The colour indicates drop precedence (eligibility), subsequently used
+//	by the priority queue ME to drop packets conditionally during congestion conditions. Packet
+//	colour is also used by the optional mode 1 DBA status reporting function described in [ITUT
+//	G.984.3]. Red packets are dropped immediately. Yellow packets are marked as drop eligible, and
+//	green packets are marked as not drop eligible, according to the egress colour marking attribute.
+//
+//	The algorithm used to determine the colour marking is specified by the meter type attribute. If
+//	[bIETF RFC 4115] is used, then:
+//
+//	CIR4115-=-CIR
+//
+//	EIR4115-=-PIR - CIR (EIR: excess information rate)
+//
+//	CBS4115-=-CBS
+//
+//	EBS4115-=-PBS - CBS.
+//
+//	Relationships
+//		This ME is associated with a GEM port network CTP or a MAC bridge port configuration data ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Cir
+//			This attribute specifies the committed information rate, in bytes per second. The default is 0.
+//			(R,-W, setbycreate) (optional) (4-bytes)
+//
+//		Pir
+//			This attribute specifies the peak information rate, in bytes per second. The default value 0
+//			accepts the ONU's factory policy. (R,-W, setbycreate) (optional) (4-bytes)
+//
+//		Cbs
+//			This attribute specifies the committed burst size, in bytes. The default is 0. (R,-W,
+//			setbycreate) (optional) (4-bytes)
+//
+//		Pbs
+//			This attribute specifies the peak burst size, in bytes. The default value 0 accepts the ONU's
+//			factory policy. (R,-W, setbycreate) (optional) (4-bytes)
+//
+//		Colour Mode
+//			This attribute specifies whether the colour marking algorithm considers pre-existing marking on
+//			ingress packets (colour-aware) or ignores it (colour-blind). In colour-aware mode, packets can
+//			only be demoted (from green to yellow or red, or from yellow to red). The default value is 0.
+//
+//			0	Colour-blind
+//
+//			1	Colour-aware
+//
+//			(R,-W, setbycreate) (optional) (1-byte)
+//
+//		Ingress Colour Marking
+//			This attribute is meaningful in colour-aware mode. It identifies how pre-existing drop
+//			precedence is marked on ingress packets. For DEI and PCP marking, a drop eligible indicator is
+//			equivalent to yellow; otherwise, the colour is green. For DSCP AF marking, the lowest drop
+//			precedence is equivalent to green; otherwise, the colour is yellow. The default value is 0.
+//
+//			0	No marking (ignore ingress marking)
+//
+//			2	DEI [IEEE 802.1ad]
+//
+//			3	PCP 8P0D [IEEE 802.1ad]
+//
+//			4	PCP 7P1D [IEEE 802.1ad]
+//
+//			5	PCP 6P2D [IEEE 802.1ad]
+//
+//			6	PCP 5P3D [IEEE 802.1ad]
+//
+//			7	DSCP AF class [IETF RFC 2597]
+//
+//			(R,-W, setbycreate) (optional) (1-byte)
+//
+//		Egress Colour Marking
+//			2	DEI [IEEE 802.1ad]
+//
+//			3	PCP 8P0D [IEEE 802.1ad]
+//
+//			4	PCP 7P1D [IEEE 802.1ad]
+//
+//			5	PCP 6P2D [IEEE 802.1ad]
+//
+//			6	PCP 5P3D [IEEE 802.1ad]
+//
+//			7	DSCP AF class [IETF RFC 2597]
+//
+//			(R,-W, setbycreate) (optional) (1-byte)
+//
+//			This attribute specifies how drop precedence is to be marked by the ONU on egress packets. If
+//			set to internal marking only, the externally visible packet contents are not modified, but the
+//			packet is identified in a vendor-specific local way that indicates its colour to the priority
+//			queue ME. It is possible for the egress marking to differ from the ingress marking; for example,
+//			ingress PCP marking could be translated to DEI egress marking. The default value is 0.
+//
+//			0	No marking
+//
+//			1	Internal marking only
+//
+//		Meter Type
+//			This attribute specifies the algorithm used to determine the colour of the packet. The default
+//			value is 0.
+//
+//			0	Not specified
+//
+//			1	[b-IETF RFC 4115]
+//
+//			2	[b-IETF RFC 2698]
+//
+//			(R, setbycreate) (optional) (1-byte)
+//
+type TrafficDescriptor struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	trafficdescriptorBME = &ManagedEntityDefinition{
+		Name:    "TrafficDescriptor",
+		ClassID: 280,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewTrafficDescriptor (class ID 280) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewTrafficDescriptor(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*trafficdescriptorBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/trafficscheduler.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/trafficscheduler.go
new file mode 100644
index 0000000..6be642f
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/trafficscheduler.go
@@ -0,0 +1,137 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// TrafficSchedulerClassID is the 16-bit ID for the OMCI
+// Managed entity Traffic scheduler
+const TrafficSchedulerClassID = ClassID(278) // 0x0116
+
+var trafficschedulerBME *ManagedEntityDefinition
+
+// TrafficScheduler (Class ID: #278 / 0x0116)
+//	NOTE 1 - In [ITU-T G.984.4], this ME is called a traffic scheduler-G.
+//
+//	An instance of this ME represents a logical object that can control upstream GEM packets. A
+//	traffic scheduler can accommodate GEM packets after a priority queue or other traffic scheduler
+//	and transfer them towards the next traffic scheduler or T-CONT. Because T-CONTs and traffic
+//	schedulers are created autonomously by the ONU, the ONU vendor predetermines the most complex
+//	traffic handling model it is prepared to support; the OLT may use less than the ONU's full
+//	capabilities, but cannot ask for more. See Appendix II for more details.
+//
+//	After the ONU creates instances of the T-CONT ME, it then autonomously creates instances of the
+//	traffic scheduler ME.
+//
+//	Relationships
+//		The traffic scheduler ME may be related to a T-CONT or other traffic schedulers through pointer
+//		attributes.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. This 2-byte number indicates the
+//			physical capability that realizes the traffic scheduler. The first byte is the slot ID of the
+//			circuit pack with which this traffic scheduler is associated. For a traffic scheduler that is
+//			not associated with a circuit pack, the first byte is 0xFF. The second byte is the traffic
+//			scheduler id, assigned by the ONU itself. Traffic schedulers are numbered in ascending order
+//			with the range 0..0xFF in each circuit pack or in the ONU core. (R) (mandatory) (2-bytes)
+//
+//		T_Cont Pointer
+//			T-CONT pointer: This attribute points to the T-CONT ME instance associated with this traffic
+//			scheduler. This pointer is used when this traffic scheduler is connected to the T-CONT directly;
+//			It is null (0) otherwise. (R, W) (mandatory) (2 bytes)
+//
+//			NOTE 2 - This attribute is read-only unless otherwise specified by the QoS configuration
+//			flexibility attribute of the ONU2-G ME. If flexible configuration is not supported, the ONU
+//			should reject an attempt to set the TCONT pointer attribute with a parameter error result-reason
+//			code.
+//
+//		Traffic Scheduler Pointer
+//			This attribute points to another traffic scheduler ME instance that may serve this traffic
+//			scheduler. This pointer is used when this traffic scheduler is connected to another traffic
+//			scheduler; it is null (0) otherwise. (R) (mandatory) (2-bytes)
+//
+//		Policy
+//			This attribute represents scheduling policy. Valid values include:
+//
+//			0	Null
+//
+//			1	Strict priority
+//
+//			2	WRR (weighted round robin)
+//
+//			The traffic scheduler derives priority or weight values for its tributary traffic schedulers or
+//			priority queues from the tributary MEs themselves.
+//
+//			(R, W) (mandatory) (1 byte)
+//
+//			NOTE 3 - This attribute is read-only unless otherwise specified by the QoS configuration
+//			flexibility attribute of the ONU2-G ME. If flexible configuration is not supported, the ONU
+//			should reject an attempt to set the policy attribute with a parameter error result-reason code.
+//
+//		Priority_Weight
+//			Priority/weight: This attribute represents the priority for strict priority scheduling or the
+//			weight for WRR scheduling. This value is used by the next upstream ME, as indicated by the
+//			T-CONT pointer attribute or traffic scheduler pointer attribute.
+//
+//			If the indicated pointer has policy-=-strict priority, this value is interpreted as a priority
+//			(0 is the highest priority, 255 the lowest).
+//
+//			If the indicated pointer has policy-=-WRR, this value is interpreted as a weight. Higher values
+//			receive more bandwidth.
+//
+//			Upon ME instantiation, the ONU sets this attribute to 0. (R,-W) (mandatory) (1-byte)
+//
+type TrafficScheduler struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	trafficschedulerBME = &ManagedEntityDefinition{
+		Name:    "TrafficScheduler",
+		ClassID: 278,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewTrafficScheduler (class ID 278) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewTrafficScheduler(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*trafficschedulerBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/twdmchannelmanagedentity.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/twdmchannelmanagedentity.go
new file mode 100644
index 0000000..b0b0ce5
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/twdmchannelmanagedentity.go
@@ -0,0 +1,100 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// TwdmChannelManagedEntityClassID is the 16-bit ID for the OMCI
+// Managed entity TWDM channel managed entity
+const TwdmChannelManagedEntityClassID = ClassID(443) // 0x01bb
+
+var twdmchannelmanagedentityBME *ManagedEntityDefinition
+
+// TwdmChannelManagedEntity (Class ID: #443 / 0x01bb)
+//	This ME provides an anchor for the MEs involved in collection of PM statistics per TWDM channel,
+//	as stipulated by clause 14 of [ITU-T-G.989.3]. Instances of this ME are instantiated
+//	autonomously by the ONU.
+//
+//	Relationships
+//		One or more instances of this ME are implicitly associated with the TWDM System profile ME. The
+//		number of instances created is announced by the total TWDM channel number attribute of the TWDM
+//		system profile ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. This 2-byte number is represented
+//			as 0xSSBB, where SS indicates the ONU slot ID, and BB is the TWDM channel ME number assigned by
+//			the ONU itself, starting from 0 in the ascending order. (R) (mandatory) (2-bytes)
+//
+//		Active Channel Indication
+//			The default value is false. The ONU sets the attribute to true when it receives the
+//			Channel_Profile PLOAM messages for that channel. The ONU clears the attribute when it receives
+//			the Channel_Profile PLOAM message marked ``void'' for that channel. (R) (mandatory) (1-byte)
+//
+//		Operational Channel Indication
+//			A Boolean attribute that is set to true for an active TWDM channel in which the ONT is currently
+//			operating. The operational statistic is accumulated in the PM history data MEs associated with
+//			that TWDM channel. (R) (mandatory) (1-byte)
+//
+//		Downstream Wavelength Channel
+//			For an active TWDM channel, this attribute identifies the downstream wavelength channel in
+//			reference to Table 11-2 of [ITU-T-G.989.2]. For an inactive channel it has value 0xFF. (R)
+//			(mandatory) (1-byte)
+//
+//		Upstream Wavelength Channel
+//			For an active TWDM channel, this attribute identifies the upstream wavelength channel in
+//			reference to Table VIII-5 of [ITU-T-G.989.2]. For an inactive channel its value of 0xFF. (R)
+//			(mandatory) (1-byte)
+//
+type TwdmChannelManagedEntity struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	twdmchannelmanagedentityBME = &ManagedEntityDefinition{
+		Name:    "TwdmChannelManagedEntity",
+		ClassID: 443,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewTwdmChannelManagedEntity (class ID 443) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewTwdmChannelManagedEntity(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*twdmchannelmanagedentityBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/twdmchannelomciperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/twdmchannelomciperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..fb1f97d
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/twdmchannelomciperformancemonitoringhistorydata.go
@@ -0,0 +1,105 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// TwdmChannelOmciPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity TWDM channel OMCI performance monitoring history data
+const TwdmChannelOmciPerformanceMonitoringHistoryDataClassID = ClassID(452) // 0x01c4
+
+var twdmchannelomciperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// TwdmChannelOmciPerformanceMonitoringHistoryData (Class ID: #452 / 0x01c4)
+//	This ME collects OMCI-related PM data associated with the slot/circuit pack, hosting one or more
+//	ANI-G MEs, for a specific TWDM channel. Instances of this ME are created and deleted by the OLT.
+//
+//	The counters maintained by this ME are characterized as optional in clause 14 of [ITU-
+//	T-G.989.3].
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of TWDM channel ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the TWDM channel ME. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 and 2 MEs
+//			that contains PM threshold values. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Omci Baseline Message Count
+//			The counter of baseline format OMCI messages directed to the given ONU. (R) (mandatory) (4-byte)
+//
+//		Omci Extended Message Count
+//			The counter of extended format OMCI messages directed to the given ONU. (R) (mandatory) (4-byte)
+//
+//		Omci Mic Error Count
+//			The counter of OMCI messages received with MIC errors. (R) (mandatory) (4-byte)
+//
+type TwdmChannelOmciPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	twdmchannelomciperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "TwdmChannelOmciPerformanceMonitoringHistoryData",
+		ClassID: 452,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "OMCI MIC error count",
+		},
+	}
+}
+
+// NewTwdmChannelOmciPerformanceMonitoringHistoryData (class ID 452) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewTwdmChannelOmciPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*twdmchannelomciperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/twdmchannelphylodsperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/twdmchannelphylodsperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..93fa9d0
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/twdmchannelphylodsperformancemonitoringhistorydata.go
@@ -0,0 +1,174 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// TwdmChannelPhyLodsPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity TWDM channel PHY/LODS performance monitoring history data
+const TwdmChannelPhyLodsPerformanceMonitoringHistoryDataClassID = ClassID(444) // 0x01bc
+
+var twdmchannelphylodsperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// TwdmChannelPhyLodsPerformanceMonitoringHistoryData (Class ID: #444 / 0x01bc)
+//	This ME collects certain PM data associated with the slot/circuit pack, hosting one or more
+//	ANI-G MEs, and a specific TWDM channel. Instances of this ME are created and deleted by the OLT.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of TWDM channel ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the TWDM channel ME. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 and 2 MEs
+//			that contains PM threshold values. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Total Received Words Protected By Bit_Interleaved Parity_32 Bip_32
+//			Total received words protected by bit-interleaved parity-32 (BIP-32): The count of 4-byte words
+//			included in BIP-32 check. This is a product of the number of downstream FS frames received by
+//			the size of the downstream FS frame after the FEC parity byte, if any, have been removed. The
+//			count applies to the entire downstream data flow, whether or not addressed to that ONT. (R)
+//			(mandatory) (8-bytes)
+//
+//		Bip_32 Bit Error Count
+//			BIP-32 bit error count: Count of the bit errors in the received downstream FS frames as measured
+//			using BIP-32. If FEC is supported in the downstream direction, the BIP-32 count applies to the
+//			downstream FS frame after the FEC correction has been applied and the FEC parity bytes have been
+//			removed. (R) (mandatory) (4-bytes)
+//
+//		Corrected Psbd Hec Error Count
+//			The count of the errors in either CFC or OCS fields of the PSBd block that have been corrected
+//			using the HEC technique. (R) (mandatory) (4-bytes)
+//
+//		Uncorrectable Psbd Hec Error Count
+//			The count of the errors in either CFC or OCS fields of the PSBd block that could not be
+//			corrected using the HEC technique. (R) (mandatory) (4-bytes)
+//
+//		Corrected Downstream Fs Header Hec Error Count
+//			The count of the errors in the downstream FS header that have been corrected using the HEC
+//			technique. (R) (mandatory) (4-bytes)
+//
+//		Uncorrectable Downstream Fs Header Hec Error Count
+//			The count of the errors in the downstream FS header that could not be corrected using the HEC
+//			technique. (R) (mandatory) (4-bytes)
+//
+//		Total Number Of Lods Events
+//			The count of the state transitions from O5.1/O5.2 to O6, referring to the ONU activation cycle
+//			state machine, clause 12 of [ITU-T-G.989.3]. (R) (mandatory) (4-bytes)
+//
+//		Lods Events Restored In Operating Twdm Channel
+//			The count of LODS events cleared automatically without retuning. (R) (mandatory) (4-bytes)
+//
+//		Lods Events Restored In Protection Twdm Channel
+//			The count of LODS events resolved by retuning to a pre-configured protection TWDM channel. The
+//			event is counted against the original operating channel. (R) (mandatory) (4-bytes)
+//
+//		Lods Events Restored In Discretionary Twdm Channel
+//			The count of LODS events resolved by retuning to a TWDM channel chosen by the ONU, without
+//			retuning. Implies that the wavelength channel protection for the operating channel is not
+//			active. The event is counted against the original operating channel (R) (mandatory) (4-bytes)
+//
+//		Lods Events Resulting In Reactivation
+//			The count of LODS events resolved through ONU reactivation; that is, either TO2 (without WLCP)
+//			or TO3-+ TO4 (with WLCP) expires before the downstream channel is reacquired, referring to the
+//			ONU activation cycle state machine, clause 12 of [ITU-T-G.989.3]. The event is counted against
+//			the original operating channel (R) (mandatory) (4-bytes)
+//
+//		Lods Events Resulting In Reactivation After Retuning To Protection Twdm Channel
+//			The count of LODS events resolved through ONU reactivation after attempted protection switching,
+//			which turns unsuccessful due to a handshake failure. (R) (mandatory) (4-bytes)
+//
+//		Lods Events Resulting In Reactivation After Retuning To Discretionary Twdm Channel
+//			The count of LODS events resolved through ONU reactivation after attempted retuning to a
+//			discretionary channel, which turns unsuccessful due to a handshake failure. (R) (mandatory)
+//			(4-bytes)
+//
+type TwdmChannelPhyLodsPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	twdmchannelphylodsperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "TwdmChannelPhyLodsPerformanceMonitoringHistoryData",
+		ClassID: 444,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			1:  "BIP-32 bit error count",
+			2:  "PSBd HEC errors - corrected",
+			3:  "PSBd HEC errors - uncorrectable",
+			4:  "FS header errors - corrected",
+			5:  "FS header errors - uncorrectable",
+			6:  "Total LODS event count",
+			7:  "LODS - restored in operating TWDM channel",
+			8:  "LODS - restored in protection TWDM channel",
+			9:  "LODS - restored in discretionary TWDM channel",
+			10: "LODS - reactivations",
+			11: "LODS - handshake failure in protection channel",
+			12: "LODS - handshake failure in discretionary channel",
+		},
+	}
+}
+
+// NewTwdmChannelPhyLodsPerformanceMonitoringHistoryData (class ID 444) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewTwdmChannelPhyLodsPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*twdmchannelphylodsperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/twdmchannelploamperformancemonitoringhistorydatapart1.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/twdmchannelploamperformancemonitoringhistorydatapart1.go
new file mode 100644
index 0000000..df4499f
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/twdmchannelploamperformancemonitoringhistorydatapart1.go
@@ -0,0 +1,130 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// TwdmChannelPloamPerformanceMonitoringHistoryDataPart1ClassID is the 16-bit ID for the OMCI
+// Managed entity TWDM channel PLOAM performance monitoring history data part 1
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart1ClassID = ClassID(446) // 0x01be
+
+var twdmchannelploamperformancemonitoringhistorydatapart1BME *ManagedEntityDefinition
+
+// TwdmChannelPloamPerformanceMonitoringHistoryDataPart1 (Class ID: #446 / 0x01be)
+//	This ME collects certain PLOAM-related PM data associated with the slot/circuit pack, hosting
+//	one or more ANI-G MEs, for a specific TWDM channel. Instances of this ME are created and deleted
+//	by the OLT.
+//
+//	The downstream PLOAM message counts of this ME include only the received PLOAM messages
+//	pertaining to the given ONU, i.e.:
+//
+//	-	unicast PLOAM messages, addressed by ONU-ID;
+//
+//	-	broadcast PLOAM messages, addressed by serial number;
+//
+//	-	broadcast PLOAM messages, addressed to all ONUs on the PON.
+//
+//	This ME includes all PLOAM PM counters characterized as mandatory in clause 14 of [ITU-
+//	T-G.989.3].
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of TWDM channel ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the TWDM channel ME. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 and 2 MEs
+//			that contains PM threshold values. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Ploam Mic Errors
+//			The counter of received PLOAM messages that remain unparsable due to MIC error. (R) (mandatory)
+//			(4-byte)
+//
+//		Downstream Ploam Message Count
+//			The counter of received broadcast and unicast PLOAM messages pertaining to the given ONU. (R)
+//			(mandatory) (4-byte)
+//
+//		Ranging_Time Message Count
+//			The counter of received Ranging_Time PLOAM messages. (R) (mandatory) (4-byte)
+//
+//		Protection_Control Message Count
+//			The counter of received Protection_Control PLOAM messages. (R) (mandatory) (4-byte)
+//
+//		Adjust_Tx_Wavelength Message Count
+//			The counter of received Adjust_Tx_Wavelength PLOAM messages. (R) (mandatory) (4-byte)
+//
+//		Adjust_Tx_Wavelength Adjustment Amplitude
+//			An estimator of the absolute value of the transmission wavelength adjustment. (R) (mandatory)
+//			(4-byte)
+//
+type TwdmChannelPloamPerformanceMonitoringHistoryDataPart1 struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	twdmchannelploamperformancemonitoringhistorydatapart1BME = &ManagedEntityDefinition{
+		Name:    "TwdmChannelPloamPerformanceMonitoringHistoryDataPart1",
+		ClassID: 446,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "PLOAM MIC errors",
+		},
+	}
+}
+
+// NewTwdmChannelPloamPerformanceMonitoringHistoryDataPart1 (class ID 446) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewTwdmChannelPloamPerformanceMonitoringHistoryDataPart1(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*twdmchannelploamperformancemonitoringhistorydatapart1BME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/twdmchannelploamperformancemonitoringhistorydatapart2.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/twdmchannelploamperformancemonitoringhistorydatapart2.go
new file mode 100644
index 0000000..8aa8f0a
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/twdmchannelploamperformancemonitoringhistorydatapart2.go
@@ -0,0 +1,164 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// TwdmChannelPloamPerformanceMonitoringHistoryDataPart2ClassID is the 16-bit ID for the OMCI
+// Managed entity TWDM channel PLOAM performance monitoring history data part 2
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart2ClassID = ClassID(447) // 0x01bf
+
+var twdmchannelploamperformancemonitoringhistorydatapart2BME *ManagedEntityDefinition
+
+// TwdmChannelPloamPerformanceMonitoringHistoryDataPart2 (Class ID: #447 / 0x01bf)
+//	This ME collects additional PLOAM-related PM data associated with the slot/circuit pack, hosting
+//	one or more ANI-G MEs, for a specific TWDM channel. Instances of this ME are created and deleted
+//	by the OLT.
+//
+//	The downstream PLOAM message counts of this ME include only the received PLOAM messages
+//	pertaining to the given ONU, i.e.:
+//
+//	-	unicast PLOAM messages, addressed by ONU-ID;
+//
+//	-	broadcast PLOAM messages, addressed by serial number;
+//
+//	-	broadcast PLOAM messages, addressed to all ONUs on the PON.
+//
+//	All these counters are characterized as optional in clause 14 of [ITU-T- G.989.3].
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of TWDM channel ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the TWDM channel ME. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 and 2 MEs
+//			that contains PM threshold values. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		System_Profile Message Count
+//			The counter of received System_Profile PLOAM messages. (R) (mandatory) (4-byte)
+//
+//		Channel_Profile Message Count
+//			The counter of received Channel_Profile PLOAM messages. (R) (mandatory) (4-byte)
+//
+//		Burst_Profile Message Count
+//			The counter of received Burst_Profile PLOAM messages. (R) (mandatory) (4-byte)
+//
+//		Assign_Onu_Id Message Count
+//			Assign_ONU-ID message count: The counter of received Assign_ONU-ID PLOAM messages. (R)
+//			(mandatory) (4-byte)
+//
+//		Unsatisfied Adjust_Tx_Wavelength Requests
+//			The counter of Adjust_Tx_Wavelength requests not applied or partially applied due to target US
+//			wavelength being out of Tx tuning range.  (R) (mandatory) (4-byte)
+//
+//		Deactivate_Onu_Id Message Count
+//			Deactivate_ONU-ID message count: The counter of received Deactivate_ONU-ID PLOAM messages. (R)
+//			(mandatory) (4-byte)
+//
+//		Disable_Serial_Number Message Count
+//			The counter of received Disable_Serial_Number PLOAM messages. (R) (mandatory) (4-byte)
+//
+//		Request_Registration Message Count
+//			The counter of received Request_Registration PLOAM messages. (R) (mandatory) (4-byte)
+//
+//		Assign_Alloc_Id Message Count
+//			Assign_Alloc-ID message count: The counter of received Assign_Alloc-ID PLOAM messages. (R)
+//			(mandatory) (4-byte)
+//
+//		Key_Control Message Count
+//			The counter of received Key_Control PLOAM messages. (R) (mandatory) (4-byte)
+//
+//		Sleep_Allow Message Count
+//			The counter of received Sleep_Allow PLOAM messages. (R) (mandatory) (4-byte)
+//
+//		Tuning_Control_Request Message Count
+//			Tuning_Control/Request message count: The counter of received Tuning_Control PLOAM messages with
+//			Request operation code. (R) (mandatory) (4-byte)
+//
+//		Tuning_Control_Complete_D Message Count
+//			Tuning_Control/Complete_d message count: The counter of received Tuning_Control PLOAM messages
+//			with Complete_d operation code. (R) (mandatory) (4-byte)
+//
+//		Calibration_Request Message Count
+//			The counter of received Calibration_Request PLOAM messages. (R) (mandatory) (4-byte)
+//
+type TwdmChannelPloamPerformanceMonitoringHistoryDataPart2 struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	twdmchannelploamperformancemonitoringhistorydatapart2BME = &ManagedEntityDefinition{
+		Name:    "TwdmChannelPloamPerformanceMonitoringHistoryDataPart2",
+		ClassID: 447,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Unsatisfied Adjust_Tx_Wavelength requests",
+		},
+	}
+}
+
+// NewTwdmChannelPloamPerformanceMonitoringHistoryDataPart2 (class ID 447) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewTwdmChannelPloamPerformanceMonitoringHistoryDataPart2(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*twdmchannelploamperformancemonitoringhistorydatapart2BME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/twdmchannelploamperformancemonitoringhistorydatapart3.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/twdmchannelploamperformancemonitoringhistorydatapart3.go
new file mode 100644
index 0000000..99dbe51
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/twdmchannelploamperformancemonitoringhistorydatapart3.go
@@ -0,0 +1,144 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// TwdmChannelPloamPerformanceMonitoringHistoryDataPart3ClassID is the 16-bit ID for the OMCI
+// Managed entity TWDM channel PLOAM performance monitoring history data part 3
+const TwdmChannelPloamPerformanceMonitoringHistoryDataPart3ClassID = ClassID(448) // 0x01c0
+
+var twdmchannelploamperformancemonitoringhistorydatapart3BME *ManagedEntityDefinition
+
+// TwdmChannelPloamPerformanceMonitoringHistoryDataPart3 (Class ID: #448 / 0x01c0)
+//	This ME collects remaining PLOAM-related PM data associated with the slot/circuit pack, hosting
+//	one or more ANI-G MEs, for a specific TWDM channel. Instances of this ME are created and deleted
+//	by the OLT.
+//
+//	This ME contains the counters related to transmitted upstream PLOAM messages. All these counters
+//	are characterized as optional in clause 14 of [ITU-T- G.989.3].
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of TWDM channel ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the TWDM channel ME. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 and 2 MEs
+//			that contains PM threshold values. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Upstream Ploam Message Count
+//			The aggregate counter of PLOAM messages, other than AK PLOAM MT, transmitted by the given ONU.
+//			(R) (mandatory) (4-byte)
+//
+//		Serial_Number_Onu In_Band Message Count
+//			Serial_Number_ONU (in-band) message count: The counter of transmitted in-band Serial_Number_ONU
+//			PLOAM messages. (R) (mandatory) (4-byte)
+//
+//		Serial_Number_Onu Amcc Message Count
+//			Serial_Number_ONU (AMCC) message count: The counter of transmitted auxiliary management and
+//			control channel (AMCC) Serial_Number_ONU PLOAM messages. (R) (mandatory) (4-byte)
+//
+//		Registration Message Count
+//			The counter of transmitted Registration PLOAM messages. (R) (mandatory) (4-byte)
+//
+//		Key_Report Message Count
+//			The counter of transmitted Key_Report PLOAM messages. (R) (mandatory) (4-byte)
+//
+//		Acknowledgement Message Count
+//			The counter of transmitted Registration PLOAM messages. (R) (mandatory) (4-byte)
+//
+//		Sleep_Request Message Count
+//			The counter of transmitted Sleep_Request PLOAM messages. (R) (mandatory) (4-byte)
+//
+//		Tuning_Response Ack_Nack Message Count
+//			Tuning_Response (ACK/NACK) message count: The counter of transmitted Tuning_Response PLOAM
+//			messages with ACK/NACK operation code. (R) (mandatory) (4-byte)
+//
+//		Tuning_Response Complete_U_Rollback Message Count
+//			Tuning_Response (Complete_u/Rollback) message count: The counter of transmitted Tuning_Response
+//			PLOAM messages with Complete_u/Rollback operation code. (R) (mandatory) (4-byte)
+//
+//		Power_Consumption_Report Message Count
+//			The counter of transmitted Power_Consumption_Report PLOAM messages. (R) (mandatory) (4-byte)
+//
+//		Change_Power_Level Parameter Error Count
+//			The counter of transmitted Acknowledgement PLOAM messages with Parameter Error completion code
+//			in response to Change_Power_Level PLOAM message. (R) (mandatory) (4-byte)
+//
+type TwdmChannelPloamPerformanceMonitoringHistoryDataPart3 struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	twdmchannelploamperformancemonitoringhistorydatapart3BME = &ManagedEntityDefinition{
+		Name:    "TwdmChannelPloamPerformanceMonitoringHistoryDataPart3",
+		ClassID: 448,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Change_Power_Level parameter error count",
+		},
+	}
+}
+
+// NewTwdmChannelPloamPerformanceMonitoringHistoryDataPart3 (class ID 448) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewTwdmChannelPloamPerformanceMonitoringHistoryDataPart3(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*twdmchannelploamperformancemonitoringhistorydatapart3BME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/twdmchanneltuningperformancemonitoringhistorydatapart1.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/twdmchanneltuningperformancemonitoringhistorydatapart1.go
new file mode 100644
index 0000000..bc14a28
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/twdmchanneltuningperformancemonitoringhistorydatapart1.go
@@ -0,0 +1,166 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// TwdmChannelTuningPerformanceMonitoringHistoryDataPart1ClassID is the 16-bit ID for the OMCI
+// Managed entity TWDM channel tuning performance monitoring history data part 1
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart1ClassID = ClassID(449) // 0x01c1
+
+var twdmchanneltuningperformancemonitoringhistorydatapart1BME *ManagedEntityDefinition
+
+// TwdmChannelTuningPerformanceMonitoringHistoryDataPart1 (Class ID: #449 / 0x01c1)
+//	This ME collects certain tuning-control-related PM data associated with the slot/circuit pack,
+//	hosting one or more ANI-G MEs, for a specific TWDM channel. Instances of this ME are created and
+//	deleted by the OLT.
+//
+//	The relevant events this ME is concerned with are counted towards the PM statistics associated
+//	with the source TWDM channel. The attribute descriptions refer to the ONU activation cycle
+//	states and timers specified in clause 12 of [ITU-T- G.989.3]. This ME contains the counters
+//	characterized as mandatory in clause 14 of [ITU-T- G.989.3].
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of TWDM channel ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the TWDM channel ME. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 and 2 MEs
+//			that contains PM threshold values. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Tuning Control Requests For Rx Only Or Rx And Tx
+//			The counter of received Tuning_Control PLOAM messages with Request operation code that contain
+//			tuning instructions either for receiver only or for both receiver and transmitter. (R)
+//			(mandatory) (4-byte)
+//
+//		Tuning Control Requests For Tx Only
+//			The counter of received Tuning_Control PLOAM messages with Request operation code that contain
+//			tuning instructions for transmitter only. (R) (mandatory) (4-byte)
+//
+//		Tuning Control Requests Rejected_Int_Sfc
+//			Tuning control requests rejected/INT_SFC: The counter of transmitted Tuning_Response PLOAM
+//			messages with NACK operation code and INT_SFC response code, indicating inability to start
+//			transceiver tuning by the specified time (SFC). (R) (mandatory) (4-byte)
+//
+//		Tuning Control Requests Rejected_Ds_Xxx
+//			Tuning control requests rejected/DS_xxx: The aggregate counter of transmitted Tuning_Response
+//			PLOAM messages with NACK operation code and any DS_xxx response code, indicating target
+//			downstream wavelength channel inconsistency. (R) (mandatory) (4-byte)
+//
+//		Tuning Control Requests Rejected_Us_Xxx
+//			Tuning control requests rejected/US_xxx: The aggregate counter of transmitted Tuning_Response
+//			PLOAM messages with NACK operation code and any US_xxx response code, indicating target upstream
+//			wavelength channel inconsistency. (R) (mandatory) (4-byte)
+//
+//		Tuning Control Requests Fulfilled With Onu Reacquired At Target Channel
+//			The counter of controlled tuning attempts for which an upstream tuning confirmation has been
+//			obtained in the target channel. (R) (mandatory) (4-byte)
+//
+//		Tuning Control Requests Failed Due To Target Ds Wavelength Channel Not Found
+//			The counter of controlled tuning attempts that failed due to timer TO4 expiration in the DS
+//			Tuning state (O8) in the target channel. (R) (mandatory) (4-byte)
+//
+//		Tuning Control Requests Failed Due To No Feedback In Target Ds Wavelength Channel
+//			The counter of controlled tuning attempts that failed due to timer TO5 expiration in the US
+//			Tuning state (O9) in the target channel. (R) (mandatory) (4-byte)
+//
+//		Tuning Control Requests Resolved With Onu Reacquired At Discretionary Channel
+//			The counter of controlled tuning attempts for which an upstream tuning confirmation has been
+//			obtained in the discretionary channel. (R) (mandatory) (4-byte)
+//
+//		Tuning Control Requests Rollback_Com_Ds
+//			Tuning control requests Rollback/COM_DS: The counter of controlled tuning attempts that failed
+//			due to communication condition in the target channel, as indicated by the Tuning_Response PLOAM
+//			message with Rollback operation code and COM_DS response code. (R) (mandatory) (4-byte)
+//
+//		Tuning Control Requests Rollback_Ds_Xxx
+//			Tuning control requests Rollback/DS_xxx: The aggregate counter of controlled tuning attempts
+//			that failed due to target downstream wavelength channel inconsistency, as indicated by the
+//			Tuning_Response PLOAM message with Rollback operation code and any DS_xxx response code. (R)
+//			(mandatory) (4-byte)
+//
+//		Tuning Control Requests Rollback_Us_Xxx
+//			Tuning control requests Rollback/US_xxx: The aggregate counter of controlled tuning attempts
+//			that failed due to target upstream wavelength channel parameter violation, as indicated by the
+//			Tuning_Response PLOAM message with Rollback operation code and US_xxx response code. (R)
+//			(mandatory) (4-byte)
+//
+//		Tuning Control Requests Failed With Onu Reactivation
+//			The counter of controlled tuning attempts that failed on any reason, with expiration of timers
+//			TO4 or TO5 causing the ONU transition into state O1. (R) (mandatory) (4-byte)
+//
+type TwdmChannelTuningPerformanceMonitoringHistoryDataPart1 struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	twdmchanneltuningperformancemonitoringhistorydatapart1BME = &ManagedEntityDefinition{
+		Name:    "TwdmChannelTuningPerformanceMonitoringHistoryDataPart1",
+		ClassID: 449,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewTwdmChannelTuningPerformanceMonitoringHistoryDataPart1 (class ID 449) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewTwdmChannelTuningPerformanceMonitoringHistoryDataPart1(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*twdmchanneltuningperformancemonitoringhistorydatapart1BME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/twdmchanneltuningperformancemonitoringhistorydatapart2.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/twdmchanneltuningperformancemonitoringhistorydatapart2.go
new file mode 100644
index 0000000..6dd4ca6
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/twdmchanneltuningperformancemonitoringhistorydatapart2.go
@@ -0,0 +1,185 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// TwdmChannelTuningPerformanceMonitoringHistoryDataPart2ClassID is the 16-bit ID for the OMCI
+// Managed entity TWDM channel tuning performance monitoring history data part 2
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart2ClassID = ClassID(450) // 0x01c2
+
+var twdmchanneltuningperformancemonitoringhistorydatapart2BME *ManagedEntityDefinition
+
+// TwdmChannelTuningPerformanceMonitoringHistoryDataPart2 (Class ID: #450 / 0x01c2)
+//	This ME collects additional tuning-control-related PM data associated with the slot/circuit
+//	pack, hosting one or more ANI-G MEs, for a specific TWDM channel. Instances of this ME are
+//	created and deleted by the OLT.
+//
+//	The relevant events this ME is concerned with are counted towards the PM statistics associated
+//	with the source TWDM channel. This ME contains the counters characterized as optional in clause
+//	14 of [ITU-T- G.989.3].
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of TWDM channel ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the TWDM channel ME. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 and 2 MEs
+//			that contains PM threshold values. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Tuning Control Requests Rejected_Ds_Albl
+//			Tuning control requests rejected/DS_ALBL: The counter of transmitted Tuning_Response PLOAM
+//			messages with NACK operation code and DS_ALBL response code, indicating downstream
+//			administrative label inconsistency. (R) (mandatory) (4-byte)
+//
+//		Tuning Control Requests Rejected_Ds_Void
+//			Tuning control requests rejected/DS_VOID: The counter of transmitted Tuning_Response PLOAM
+//			messages with NACK operation code and DS_VOID response code, indicating that the target
+//			downstream wavelength channel descriptor is void. (R) (mandatory) (4-byte)
+//
+//		Tuning Control Requests Rejected_Ds_Part
+//			Tuning control requests rejected/DS_PART: The counter of transmitted Tuning_Response PLOAM
+//			messages with NACK operation code and DS_PART response code, indicating that tuning request
+//			involves channel partition violation. (R) (mandatory) (4-byte)
+//
+//		Tuning Control Requests Rejected_Ds_Tunr
+//			Tuning control requests rejected/DS_TUNR: The counter of transmitted Tuning_Response PLOAM
+//			messages with NACK operation code and DS_TUNR response code, indicating that the target DS
+//			wavelength channel is out of receiver tuning range. (R) (mandatory) (4-byte)
+//
+//		Tuning Control Requests Rejected_Ds_Lnrt
+//			Tuning control requests rejected/DS_LNRT: The counter of transmitted Tuning_Response PLOAM
+//			messages with NACK operation code and DS_LNRT response code, indicating downstream line rate
+//			inconsistency in the target channel. (R) (mandatory) (4-byte)
+//
+//		Tuning Control Requests Rejected_Ds_Lncd
+//			Tuning control requests rejected/DS_LNCD: The counter of transmitted Tuning_Response PLOAM
+//			messages with NACK operation code and DS_LNCD response code, indicating downstream line code
+//			inconsistency in the target channel. (R) (mandatory) (4-byte)
+//
+//		Tuning Control Requests Rejected_Us_Albl
+//			Tuning control requests rejected/US_ALBL: The counter of transmitted Tuning_Response PLOAM
+//			messages with NACK operation code and US_ALBL response code, indicating upstream administrative
+//			label inconsistency. (R) (mandatory) (4-byte)
+//
+//		Tuning Control Requests Rejected_Us_Void
+//			Tuning control requests rejected/US_VOID: The counter of transmitted Tuning_Response PLOAM
+//			messages with NACK operation code and US_VOID response code, indicating that the target upstream
+//			wavelength channel descriptor is void. (R) (mandatory) (4-byte)
+//
+//		Tuning Control Requests Rejected_Us_Tunr
+//			Tuning control requests rejected/US_TUNR: The counter of transmitted Tuning_Response PLOAM
+//			messages with NACK operation code and US_TUNR response code, indicating that the target US
+//			wavelength channel is out of transmitter tuning range. (R) (mandatory) (4-byte)
+//
+//		Tuning Control Requests Rejected_Us_Clbr
+//			Tuning control requests rejected/US_CLBR: The counter of transmitted Tuning_Response PLOAM
+//			messages with NACK operation code and US_CLBR response code, indicating that the transmitter has
+//			insufficient calibration accuracy in the target US wavelength channel. (R) (mandatory) (4-byte)
+//
+//		Tuning Control Requests Rejected_Us_Lktp
+//			Tuning control requests rejected/US_LKTP: The counter of transmitted Tuning_Response PLOAM
+//			messages with NACK operation code and US_LKTP response code, indicating upstream optical link
+//			type inconsistency. (R) (mandatory) (4-byte)
+//
+//		Tuning Control Requests Rejected_Us_Lnrt
+//			Tuning control requests rejected/US_LNRT: The counter of transmitted Tuning_Response PLOAM
+//			messages with NACK operation code and US_LNRT response code, indicating upstream line rate
+//			inconsistency in the target channel. (R) (mandatory) (4-byte)
+//
+//		Tuning Control Requests Rejected_Us_Lncd
+//			Tuning control requests rejected/US_LNCD: The counter of transmitted Tuning_Response PLOAM
+//			messages with NACK operation code and US_LNCD response code, indicating upstream line code
+//			inconsistency in the target channel. (R) (mandatory) (4-byte)
+//
+type TwdmChannelTuningPerformanceMonitoringHistoryDataPart2 struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	twdmchanneltuningperformancemonitoringhistorydatapart2BME = &ManagedEntityDefinition{
+		Name:    "TwdmChannelTuningPerformanceMonitoringHistoryDataPart2",
+		ClassID: 450,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0:  "Tuning control requests rejected/DS_ALBL",
+			1:  "Tuning control requests rejected/DS_VOID",
+			2:  "Tuning control requests rejected/DS_PART",
+			3:  "Tuning control requests rejected/DS_TUNR",
+			4:  "Tuning control requests rejected/DS_LNRT",
+			5:  "Tuning control requests rejected/DS_LNCD",
+			6:  "Tuning control requests rejected/US_ALBL",
+			7:  "Tuning control requests rejected/US_VOID",
+			8:  "Tuning control requests rejected/US_TUNR",
+			9:  "Tuning control requests rejected/US_CLBR",
+			10: "Tuning control requests rejected/US_LKTP",
+			11: "Tuning control requests rejected/US_LNRT",
+			12: "Tuning control requests rejected/US_LNCD",
+		},
+	}
+}
+
+// NewTwdmChannelTuningPerformanceMonitoringHistoryDataPart2 (class ID 450) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewTwdmChannelTuningPerformanceMonitoringHistoryDataPart2(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*twdmchanneltuningperformancemonitoringhistorydatapart2BME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/twdmchanneltuningperformancemonitoringhistorydatapart3.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/twdmchanneltuningperformancemonitoringhistorydatapart3.go
new file mode 100644
index 0000000..284f476
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/twdmchanneltuningperformancemonitoringhistorydatapart3.go
@@ -0,0 +1,151 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// TwdmChannelTuningPerformanceMonitoringHistoryDataPart3ClassID is the 16-bit ID for the OMCI
+// Managed entity TWDM channel tuning performance monitoring history data part 3
+const TwdmChannelTuningPerformanceMonitoringHistoryDataPart3ClassID = ClassID(451) // 0x01c3
+
+var twdmchanneltuningperformancemonitoringhistorydatapart3BME *ManagedEntityDefinition
+
+// TwdmChannelTuningPerformanceMonitoringHistoryDataPart3 (Class ID: #451 / 0x01c3)
+//	This ME collects remaining tuning-control-related PM data associated with the slot/circuit pack,
+//	hosting one or more ANI-G MEs, for a specific TWDM channel. Instances of this ME are created and
+//	deleted by the OLT.
+//
+//	The relevant events this ME is concerned with are counted towards the PM statistics associated
+//	with the source TWDM channel. This ME contains the counters characterized as optional in clause
+//	14 of [ITU-T-G.989.3].
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of TWDM channel ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the TWDM channel ME. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 and 2 MEs
+//			that contains PM threshold values. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Tuning Control Requests Rollback_Ds_Albl
+//			Tuning control requests Rollback/DS_ALBL: The counter of controlled tuning attempts that failed
+//			due to downstream administrative label inconsistency, as indicated by the Tuning_Response PLOAM
+//			message with Rollback operation code and DS_ALBL response code. (R) (mandatory) (4-byte)
+//
+//		Tuning Control Requests Rollback_Ds_Lktp
+//			Tuning control requests Rollback/DS_LKTP: The counter of controlled tuning attempts that failed
+//			due to downstream optical link type inconsistency, as indicated by the Tuning_Response PLOAM
+//			message with Rollback operation code and DS_LKTP response code. (R) (mandatory) (4-byte)
+//
+//		Tuning Control Requests Rollback_Us_Albl
+//			Tuning control requests Rollback/US_ALBL: The counter of controlled tuning attempts that failed
+//			due to upstream administrative label violation, as indicated by the Tuning_Response PLOAM
+//			message with Rollback operation code and US_ALBL response code. (R) (mandatory) (4-byte)
+//
+//		Tuning Control Requests Rollback_Us_Void
+//			Tuning control requests Rollback/US_VOID: The counter of controlled tuning attempts that failed
+//			due to the target upstream wavelength channel descriptor being void, as indicated by the
+//			Tuning_Response PLOAM message with Rollback operation code and US_VOID response code. (R)
+//			(mandatory) (4-byte)
+//
+//		Tuning Control Requests Rollback_Us_Tunr
+//			Tuning control requests Rollback/US_TUNR: The counter of controlled tuning attempts that failed
+//			due to the transmitter tuning range violation, as indicated by the Tuning_Response PLOAM message
+//			with Rollback operation code and US_TUNR response code. (R) (mandatory) (4-byte)
+//
+//		Tuning Control Requests Rollback_Us_Lktp
+//			Tuning control requests Rollback/US_LKTP: The counter of controlled tuning attempts that failed
+//			due to the upstream optical link type violation, as indicated by the Tuning_Response PLOAM
+//			message with Rollback operation code and US_LKTP response code. (R) (mandatory) (4-byte)
+//
+//		Tuning Control Requests Rollback_Us_Lnrt
+//			Tuning control requests Rollback/US_LNRT: The counter of controlled tuning attempts that failed
+//			due to the upstream line rate violation, as indicated by the Tuning_Response PLOAM message with
+//			Rollback operation code and US_LNRT response code. (R) (mandatory) (4-byte)
+//
+//		Tuning Control Requests Rollback_Us_Lncd
+//			Tuning control requests Rollback/US_LNCD: The counter of controlled tuning attempts that failed
+//			due to the upstream line code violation, as indicated by the Tuning_Response PLOAM message with
+//			Rollback operation code and US_LNCD response code. (R) (mandatory) (4-byte)
+//
+type TwdmChannelTuningPerformanceMonitoringHistoryDataPart3 struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	twdmchanneltuningperformancemonitoringhistorydatapart3BME = &ManagedEntityDefinition{
+		Name:    "TwdmChannelTuningPerformanceMonitoringHistoryDataPart3",
+		ClassID: 451,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Tuning control requests Rollback/DS_ALBL",
+			1: "Tuning control requests Rollback /DS_LKTP",
+			2: "Tuning control requests Rollback/US_ALBL",
+			3: "Tuning control requests Rollback /US_VOID",
+			4: "Tuning control requests Rollback/US_TUNR",
+			5: "Tuning control requests Rollback /US_LKTP",
+			6: "Tuning control requests Rollback/US_LNRT",
+			7: "Tuning control requests Rollback /US_LNCD",
+		},
+	}
+}
+
+// NewTwdmChannelTuningPerformanceMonitoringHistoryDataPart3 (class ID 451) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewTwdmChannelTuningPerformanceMonitoringHistoryDataPart3(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*twdmchanneltuningperformancemonitoringhistorydatapart3BME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/twdmchannelxgemperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/twdmchannelxgemperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..5b2311a
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/twdmchannelxgemperformancemonitoringhistorydata.go
@@ -0,0 +1,127 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// TwdmChannelXgemPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity TWDM channel XGEM performance monitoring history data
+const TwdmChannelXgemPerformanceMonitoringHistoryDataClassID = ClassID(445) // 0x01bd
+
+var twdmchannelxgemperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// TwdmChannelXgemPerformanceMonitoringHistoryData (Class ID: #445 / 0x01bd)
+//	This ME collects certain XGEM-related PM data associated with the slot/circuit pack, hosting one
+//	or more ANI-G MEs, for a specific TWDM channel. Instances of this ME are created and deleted by
+//	the OLT.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of TWDM channel ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the TWDM channel ME. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 64 Bit Id
+//			Threshold data 64-bit ID: This attribute points to an instance of the threshold data 64-bit ME
+//			that contains PM threshold values. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Total Transmitted Xgem Frames
+//			The counter aggregated across all XGEM ports of the given ONU. (R) (mandatory) (8-byte)
+//
+//		Transmitted Xgem Frames With Lf Bit Not Set
+//			The counter aggregated across all XGEM ports of the given ONU identifies the number of
+//			fragmentation operations. (R) (mandatory) (8-byte)
+//
+//		Total Received Xgem Frames
+//			The counter aggregated across all XGEM ports of the given ONU. (R) (mandatory) (8-byte)
+//
+//		Received Xgem Frames With Xgem Header Hec Errors
+//			The counter aggregated across all XGEM ports of the given ONU identifies the number of loss XGEM
+//			frame delineation events. (R) (mandatory) (8-byte)
+//
+//		Fs Words Lost To Xgem Header Hec Errors
+//			The counter of the FS frame words lost due to XGEM frame header errors that cause loss of XGEM
+//			frame delineation. (R) (mandatory) (8-byte)
+//
+//		Xgem Encryption Key Errors
+//			The counter aggregated across all XGEM ports of the given ONU identifies the number of received
+//			XGEM frames that have to be discarded because of unknown or invalid encryption key. The number
+//			is included into the Total received XGEM frame count above. (R) (mandatory) (8-byte)
+//
+//		Total Transmitted Bytes In Non_Idle Xgem Frames
+//			Total transmitted bytes in non-idle XGEM frames: The counter aggregated across all XGEM ports of
+//			the given. (R) (mandatory) (8-byte)
+//
+//		Total Received Bytes In Non_Idle Xgem Frames
+//			Total received bytes in non-idle XGEM frames: The counter aggregated across all XGEM ports of
+//			the given ONU. (R) (mandatory) (8-byte)
+//
+type TwdmChannelXgemPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	twdmchannelxgemperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "TwdmChannelXgemPerformanceMonitoringHistoryData",
+		ClassID: 445,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewTwdmChannelXgemPerformanceMonitoringHistoryData (class ID 445) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewTwdmChannelXgemPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*twdmchannelxgemperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/uni-g.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/uni-g.go
new file mode 100644
index 0000000..e7485fe
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/uni-g.go
@@ -0,0 +1,178 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// UniGClassID is the 16-bit ID for the OMCI
+// Managed entity UNI-G
+const UniGClassID = ClassID(264) // 0x0108
+
+var unigBME *ManagedEntityDefinition
+
+// UniG (Class ID: #264 / 0x0108)
+//	This ME organizes data associated with UNIs supported by GEM. One instance of the UNI-G ME
+//	exists for each UNI supported by the ONU.
+//
+//	The ONU automatically creates or deletes instances of this ME upon the creation or deletion of a
+//	real or virtual circuit pack ME, one per port.
+//
+//	Relationships
+//		An instance of the UNI-G ME exists for each instance of a PPTP ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of a PPTP. (R) (mandatory) (2-bytes)
+//
+//		Deprecated
+//			This attribute is not used. It should be set to 0 by the OLT and ignored by the ONU. (R,-W)
+//			(mandatory) (2-bytes)
+//
+//		Administrative State
+//			This attribute locks (1) and unlocks (0) the functions performed by this ME. Administrative
+//			state is further described in clause A.1.6. (R,-W) (mandatory) (1-byte)
+//
+//			NOTE - PPTP MEs also have an administrative state attribute. The user port is unlocked only if
+//			both administrative state attributes are set to unlocked. It is recommended that this attribute
+//			not be used: that the OLT set it to 0 and that the ONU ignore it.
+//
+//		Management Capability
+//			An ONU may support the ability for some or all of its PPTPs to be managed either directly by the
+//			OMCI or from a non-OMCI management environment such as [BBF TR-069]. This attribute advertises
+//			the ONU's capabilities for each PPTP.
+//
+//			This attribute is an enumeration with the following code points:
+//
+//			0	OMCI only
+//
+//			1	Non-OMCI only. In this case, the PPTP may be visible to the OMCI, but only in a read-only
+//			sense, e.g., for PM collection.
+//
+//			2	Both OMCI and non-OMCI
+//
+//			(R) (optional) (1-byte)
+//
+//		Non_Omci Management Identifier
+//			Non-OMCI management identifier: If a PPTP can be managed either directly by the OMCI or a non-
+//			OMCI management environment, this attribute specifies how it is in fact to be managed. This
+//			attribute is either 0 (default-=-OMCI management), or it is a pointer to a VEIP, which in turn
+//			links to a non-OMCI management environment. (R,-W) (optional) (2-bytes)
+//
+//		Relay Agent Options
+//			%SL	In TR-101, this is called a slot. In an ONU, this variable refers to a shelf. It is
+//			meaningful if the ONU has multiple shelves internally or is daisy-chained to multiple equipment
+//			modules. The range of this variable is "0".. "99"
+//
+//			%SU	In TR-101, this is called a sub-slot. In fact, it represents a cardholder. The range of this
+//			variable is "0".. "99"
+//
+//			%PO	UNI port number. The range of this variable is "0".. "999"
+//
+//			%AE	ATM or Ethernet. This variable can take on the values "atm" or "eth".
+//
+//			%SV	S-VID for Ethernet UNI, or ATM VPI for ATM UNI, as it exists on the DHCP request received
+//			upstream across the UNI. Range "0".. "4096" for S-VID; range "0".. "255" for VPI. The value
+//			"4096" indicates no S-VID tag.
+//
+//			%CV	C-VID (Q-VID) for Ethernet UNI or ATM VCI for ATM UNI, as it exists on the DHCP request
+//			received upstream across the UNI. Range "0".. "4096" for C-VID; range "0".."65535" for VCI. The
+//			value "4096" indicates no C-VID tag.
+//
+//			Spaces in the provisioned string are significant.
+//
+//			Example: if the large string were provisioned with the value
+//
+//			%01%SL/%SU/%PO:%AE/%SV.%CV<null>,
+//
+//			then the ONU would generate the following DHCP option 82 agent circuitID string for an Ethernet
+//			UNI that sent a DHCP request with no S tag and C tag = 3210 on shelf 2, slot 3, port 4.
+//
+//			2/3/4:eth/4096.3210
+//
+//			With the same provisioning, the ONU would generate the following DHCP option 82 agent circuit-ID
+//			string for an ATM UNI that sent a DHCP request on VPI = 123 and VCI = 4567 on shelf 2, slot 3,
+//			port 4.
+//
+//			2/3/4:atm/123.4567
+//
+//			This attribute is a pointer to a large string ME whose content specifies one or more DHCP relay
+//			agent options. (R, W) (optional) (2-bytes)
+//
+//			The contents of the large string are parsed by the ONU and converted into text strings. Variable
+//			substitution is based on defined three-character groups, each of which begins with the '%'
+//			character. The string '%%' is an escape mechanism whose output is a single '%' character. When
+//			the ONU cannot perform variable substitution on a substring of the large string, it generates
+//			the specified option as an exact quotation of the provisioned substring value.
+//
+//			Provisioning of the large string is separate from the operation of setting the pointer in this
+//			attribute. It is the responsibility of the OLT to ensure that the large string contents are
+//			correct and meaningful.
+//
+//			Three-character variable definitions are as follows. The first variable in the large string must
+//			specify one of the option types. Both options for a given IP version may be present if desired,
+//			each introduced by its option identifier. Terminology is taken from clause 3.9.3 of [b-BBF
+//			TR-101].
+//
+//			%01, %18 Specifies that the following string is for option 82 sub-option 1, agent circuit-ID
+//			(IPv4) or option 18, interface-ID (IPv6). The equivalence permits the same large string to be
+//			used in both IP environments.
+//
+//			%02, %37 Specifies that the following string is for option 82 sub-option 2, relay agent remote-
+//			ID (IPv4) or option 37, relay agent remoteID (IPv6). The equivalence permits the same large
+//			string to be used in both IP environments.
+//
+type UniG struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	unigBME = &ManagedEntityDefinition{
+		Name:    "UniG",
+		ClassID: 264,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewUniG (class ID 264) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewUniG(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*unigBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/unknowng988me.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/unknowng988me.go
new file mode 100644
index 0000000..aac283e
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/unknowng988me.go
@@ -0,0 +1,89 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+var unknownG988BME *ManagedEntityDefinition
+
+type UnknownG988ME struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	unknownG988BME = &ManagedEntityDefinition{
+		Name:    "UnknownItuG988ManagedEntity",
+		ClassID: 0,
+		MessageTypes: mapset.NewSetWith(
+			MibUploadNext,
+			AlarmNotification,
+			AttributeValueChange,
+		),
+		AllowedAttributeMask: 0xffff,
+		AttributeDefinitions: AttributeDefinitionMap{
+			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  MultiByteField("UnknownAttr_1", OctetsAttributeType, 0x8000, 1, toOctets("AA=="), mapset.NewSetWith(Read), true, true, false, 1),
+			2:  MultiByteField("UnknownAttr_2", OctetsAttributeType, 0x4000, 1, toOctets("AA=="), mapset.NewSetWith(Read), true, true, false, 2),
+			3:  MultiByteField("UnknownAttr_3", OctetsAttributeType, 0x2000, 1, toOctets("AA=="), mapset.NewSetWith(Read), true, true, false, 3),
+			4:  MultiByteField("UnknownAttr_4", OctetsAttributeType, 0x1000, 1, toOctets("AA=="), mapset.NewSetWith(Read), true, true, false, 4),
+			5:  MultiByteField("UnknownAttr_5", OctetsAttributeType, 0x0800, 1, toOctets("AA=="), mapset.NewSetWith(Read), true, true, false, 5),
+			6:  MultiByteField("UnknownAttr_6", OctetsAttributeType, 0x0400, 1, toOctets("AA=="), mapset.NewSetWith(Read), true, true, false, 6),
+			7:  MultiByteField("UnknownAttr_7", OctetsAttributeType, 0x0200, 1, toOctets("AA=="), mapset.NewSetWith(Read), true, true, false, 7),
+			8:  MultiByteField("UnknownAttr_8", OctetsAttributeType, 0x0100, 1, toOctets("AA=="), mapset.NewSetWith(Read), true, true, false, 8),
+			9:  MultiByteField("UnknownAttr_9", OctetsAttributeType, 0x0080, 1, toOctets("AA=="), mapset.NewSetWith(Read), true, true, false, 9),
+			10: MultiByteField("UnknownAttr_10", OctetsAttributeType, 0x0040, 1, toOctets("AA=="), mapset.NewSetWith(Read), true, true, false, 10),
+			11: MultiByteField("UnknownAttr_11", OctetsAttributeType, 0x0020, 1, toOctets("AA=="), mapset.NewSetWith(Read), true, true, false, 11),
+			12: MultiByteField("UnknownAttr_12", OctetsAttributeType, 0x0010, 1, toOctets("AA=="), mapset.NewSetWith(Read), true, true, false, 12),
+			13: MultiByteField("UnknownAttr_13", OctetsAttributeType, 0x0008, 1, toOctets("AA=="), mapset.NewSetWith(Read), true, true, false, 13),
+			14: MultiByteField("UnknownAttr_14", OctetsAttributeType, 0x0004, 1, toOctets("AA=="), mapset.NewSetWith(Read), true, true, false, 14),
+			15: MultiByteField("UnknownAttr_15", OctetsAttributeType, 0x0002, 1, toOctets("AA=="), mapset.NewSetWith(Read), true, true, false, 15),
+			16: MultiByteField("UnknownAttr_16", OctetsAttributeType, 0x0001, 1, toOctets("AA=="), mapset.NewSetWith(Read), true, true, false, 16),
+		},
+		Access:  UnknownAccess,
+		Support: UnsupportedManagedEntity,
+	}
+}
+
+func NewUnknownG988ME(classID ClassID, params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return newUnknownManagedEntity(classID, *unknownG988BME, params...)
+}
+
+// newUnknownManagedEntity creates a ManagedEntity given an ME Definition and parameter/attribute data
+// much like NewManagedEntity but treats attributes is a special way
+func newUnknownManagedEntity(classID ClassID, definition ManagedEntityDefinition, params ...ParamData) (*ManagedEntity, OmciErrors) {
+	entity := &ManagedEntity{
+		definition: definition,
+		attributes: make(map[string]interface{}),
+	}
+	// Make this unique for the received class ID and attribute masks
+	entity.SetClassID(classID)
+
+	if params != nil {
+		if err := entity.setAttributes(params...); err.StatusCode() != Success {
+			return nil, err
+		}
+	}
+	return entity, NewOmciSuccess()
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/unknownvendorspecificme.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/unknownvendorspecificme.go
new file mode 100644
index 0000000..757b306
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/unknownvendorspecificme.go
@@ -0,0 +1,71 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+var unknownVendorSpecificBME *ManagedEntityDefinition
+
+type UnknownVendorSpecific struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	unknownVendorSpecificBME = &ManagedEntityDefinition{
+		Name:    "UnknownVendorSpecificManagedEntity",
+		ClassID: 0,
+		MessageTypes: mapset.NewSetWith(
+			MibUploadNext,
+			AlarmNotification,
+			AttributeValueChange,
+		),
+		AllowedAttributeMask: 0xffff,
+		AttributeDefinitions: AttributeDefinitionMap{
+			0:  Uint16Field("ManagedEntityId", PointerAttributeType, 0x0000, 0, mapset.NewSetWith(Read), false, false, false, 0),
+			1:  MultiByteField("UnknownAttr_1", OctetsAttributeType, 0x8000, 1, toOctets("AA=="), mapset.NewSetWith(Read), true, true, false, 1),
+			2:  MultiByteField("UnknownAttr_2", OctetsAttributeType, 0x4000, 1, toOctets("AA=="), mapset.NewSetWith(Read), true, true, false, 2),
+			3:  MultiByteField("UnknownAttr_3", OctetsAttributeType, 0x2000, 1, toOctets("AA=="), mapset.NewSetWith(Read), true, true, false, 3),
+			4:  MultiByteField("UnknownAttr_4", OctetsAttributeType, 0x1000, 1, toOctets("AA=="), mapset.NewSetWith(Read), true, true, false, 4),
+			5:  MultiByteField("UnknownAttr_5", OctetsAttributeType, 0x0800, 1, toOctets("AA=="), mapset.NewSetWith(Read), true, true, false, 5),
+			6:  MultiByteField("UnknownAttr_6", OctetsAttributeType, 0x0400, 1, toOctets("AA=="), mapset.NewSetWith(Read), true, true, false, 6),
+			7:  MultiByteField("UnknownAttr_7", OctetsAttributeType, 0x0200, 1, toOctets("AA=="), mapset.NewSetWith(Read), true, true, false, 7),
+			8:  MultiByteField("UnknownAttr_8", OctetsAttributeType, 0x0100, 1, toOctets("AA=="), mapset.NewSetWith(Read), true, true, false, 8),
+			9:  MultiByteField("UnknownAttr_9", OctetsAttributeType, 0x0080, 1, toOctets("AA=="), mapset.NewSetWith(Read), true, true, false, 9),
+			10: MultiByteField("UnknownAttr_10", OctetsAttributeType, 0x0040, 1, toOctets("AA=="), mapset.NewSetWith(Read), true, true, false, 10),
+			11: MultiByteField("UnknownAttr_11", OctetsAttributeType, 0x0020, 1, toOctets("AA=="), mapset.NewSetWith(Read), true, true, false, 11),
+			12: MultiByteField("UnknownAttr_12", OctetsAttributeType, 0x0010, 1, toOctets("AA=="), mapset.NewSetWith(Read), true, true, false, 12),
+			13: MultiByteField("UnknownAttr_13", OctetsAttributeType, 0x0008, 1, toOctets("AA=="), mapset.NewSetWith(Read), true, true, false, 13),
+			14: MultiByteField("UnknownAttr_14", OctetsAttributeType, 0x0004, 1, toOctets("AA=="), mapset.NewSetWith(Read), true, true, false, 14),
+			15: MultiByteField("UnknownAttr_15", OctetsAttributeType, 0x0002, 1, toOctets("AA=="), mapset.NewSetWith(Read), true, true, false, 15),
+			16: MultiByteField("UnknownAttr_16", OctetsAttributeType, 0x0001, 1, toOctets("AA=="), mapset.NewSetWith(Read), true, true, false, 16),
+		},
+		Access:  UnknownAccess,
+		Support: UnsupportedVendorSpecificManagedEntity,
+	}
+}
+
+func NewUnknownVendorSpecificME(classID ClassID, params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return newUnknownManagedEntity(classID, *unknownVendorSpecificBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/vdsl2lineconfigurationextensions.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/vdsl2lineconfigurationextensions.go
new file mode 100644
index 0000000..ebac5a1
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/vdsl2lineconfigurationextensions.go
@@ -0,0 +1,375 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// Vdsl2LineConfigurationExtensionsClassID is the 16-bit ID for the OMCI
+// Managed entity VDSL2 line configuration extensions
+const Vdsl2LineConfigurationExtensionsClassID = ClassID(165) // 0x00a5
+
+var vdsl2lineconfigurationextensionsBME *ManagedEntityDefinition
+
+// Vdsl2LineConfigurationExtensions (Class ID: #165 / 0x00a5)
+//	This ME extends the xDSL line configuration MEs with attributes that were originally unique to
+//	ITU-T G.993.2 VDSL2. Due to continuing standards development, some attributes - and therefore
+//	this ME - have also become applicable to other Recommendations, specifically [ITU-T G.992.3] and
+//	[ITU-T G.992.5]. The attributes of this ME are further defined in [ITUT G.997.1]. An instance of
+//	this ME is created and deleted by the OLT.
+//
+//	Relationships
+//		An instance of this ME may be associated with zero or more instances of an xDSL UNI.////		The overall xDSL line configuration profile is modelled in several parts, all of which are
+//		associated together through a common ME ID (the client PPTP xDSL UNI part 1 has a single
+//		pointer, which refers to the entire set of line configuration parts).
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. All xDSL and VDSL2 line
+//			configuration profiles and extensions that pertain to a given PPTP xDSL UNI must share a common
+//			ME ID. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Vdsl2 Profiles Enabling
+//			The PROFILES attribute contains the ITU-T G.993.2 profiles to be allowed by the xTU-C. It is
+//			coded in a bit map representation (0 if not allowed, 1 if allowed) with the following
+//			definition.
+//
+//			Bit	Meaning
+//
+//			1 (LSB)	ITU-T G.993.2 profile 8a
+//
+//			2	ITU-T G.993.2 profile 8b
+//
+//			3	ITU-T G.993.2 profile 8c
+//
+//			4	ITU-T G.993.2 profile 8d
+//
+//			5	ITU-T G.993.2 profile 12a
+//
+//			6	ITU-T G.993.2 profile 12b
+//
+//			7	ITU-T G.993.2 profile 17a
+//
+//			8	ITU-T G.993.2 profile 30a
+//
+//			(R,-W, setbycreate) (mandatory for ITU-T G.993.2) (1-byte)
+//
+//		Vdsl2 Psd Mask Class Selection Classmask
+//			NOTE 1 - A single PSD mask class may be selected per annex of [ITU-T G.993.2].
+//
+//			NOTE 2 - It is expected that only a single annex will be enabled at any given time, such that
+//			the CLASSMASK attribute, as well as the LIMITMASK and US0DISABLE attributes below, need not be
+//			vectors of values.
+//
+//			NOTE 3 - Attribute value 4 was formerly defined in [ITU-T G.997.1], and is no longer used.
+//
+//			(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//			VDSL2 PSD mask class selection (CLASSMASK): To reduce the number of configuration possibilities,
+//			the limit PSD masks are grouped in the following PSD mask classes.
+//
+//			-	Class 998 Annex A of [ITU-T G.993.2]: D-32, D-48, D-64, D-128
+//
+//			-	Class 997-M1c Annex B of [ITU-T G.993.2]: 997M1c-A-7
+//
+//			-	Class 997-M1x Annex B of [ITU-T G.993.2]: 997M1x-M
+//
+//			-	Class 997-M2x Annex B of [ITU-T G.993.2]: 997E17-M2x-NUS0, 997E30M2xNUS0
+//
+//			-	Class 998-M2x Annex B of [ITU-T G.993.2]: 998M2x-A, 998M2xM, 998M2x-B, 998-M2x-NUS0,
+//			998E17-M2xNUS0, 998E17M2xNUS0-M, 998E30M2xNUS0, 998E30M2xNUS0M, 998E17-M2x-A
+//
+//			-	Class 998ADE-M2x Annex B of [ITU-T G.993.2]: 998-M2x-A, 998M2x-M, 998-M2x-B, 998-M2x-NUS0,
+//			998ADE17-M2x-A, 998ADE17M2xB, 998ADE17-M2x-M, 998ADE17M2xNUS0-M, 998ADE30M2xNUS0-A,
+//			998ADE30M2x-NUS0-M, HPEADE1230, HPEADE1730
+//
+//			-	Class 998-B Annex C: POTS-138b, POTS-276b (clause C.2.1.1 of [ITUT-G.993.2]), TCMISDN (clause
+//			C.2.1.2 of [ITU-T G.993.2])
+//
+//			-	Class 998-CO Annex C of [ITU-T G.993.2]: POTS138co, POTS276co (clause C.2.1.1 of [ITU-T
+//			G.993.2])
+//
+//			-	Class HPE-M1 Annex B of [ITU-T G.993.2]: HPE17M1-NUS0, HPE30M1NUS0, HPE1230-M1-NUS0,
+//			HPE1730-M1-NUS0
+//
+//			Each class is designed such that the PSD levels of each limit PSD mask of a specific class are
+//			equal in their respective passbands above 552 kHz.
+//
+//			The CLASSMASK attribute is defined per annex of [ITU-T G.993.2] enabled in the xTSE table (see
+//			Table 9.7.12-1). It selects a single PSD mask class per annex of [ITU-T G.993.2] to be activated
+//			at the very high-speed digital subscriber line transceiver unit, operator end (VTU-O). The
+//			coding is as follows:
+//
+//		Vdsl2 Limit Psd Masks
+//			The LIMITMASK attribute contains the ITU-T G.993.2 limit PSD masks of the selected PSD mask
+//			class, enabled by the near-end xTU for each class of profiles. One LIMITMASK parameter is
+//			defined per annex enabled in the xTSE (see Table 9.7.12-1).
+//
+//			The profiles are grouped in the following profile classes:
+//
+//			-	Class 8: Profiles 8a, 8b, 8c, 8d
+//
+//			-	Class 12: Profiles 12a, 12b
+//
+//			-	Class 17: Profile 17a
+//
+//			-	Class 30: Profile 30a
+//
+//			For each profile class, several limit PSD masks of the selected PSD mask class (CLASSMASK) may
+//			be enabled. The enabling attribute is coded in a bit map representation (0 if the associated
+//			mask is not allowed, 1 if it is allowed). The bit mask is defined in Table 9.7.6-1. (R,-W,
+//			setbycreate) (mandatory) (8-bytes)
+//
+//		Vdsl2 Us0 Disabling
+//			The US0DISABLE attribute specifies whether channel US0 is disabled for each limit PSD mask
+//			enabled in the LIMITMASK attribute.
+//
+//			For each limit PSD mask enabled in the LIMITMASK attribute, one bit indicates if US0 is
+//			disabled. The disabling attribute is a bit map where the value 1 specifies that US0 is disabled
+//			for the associated limit mask. The bit map has the same structure as the LIMITMASK attribute.
+//			(R,-W, setbycreate) (mandatory) (8-bytes)
+//
+//		Vdsl2 Us0 Psd Masks
+//			The US0MASK attribute contains the US0 PSD masks to be allowed by the xTU-C. This attribute is
+//			only defined for Annex-A of [ITUT-G.993.2]. It is represented as a bit map (0 if not allowed, 1
+//			if allowed) with the definitions of Table-9.7.6-2. (R, W, setbycreate) (mandatory) (4-bytes)
+//
+//		Vdsl2_Carmask Table
+//			VDSL2-CARMASK table: This attribute specifies restrictions, additional to the band plan, that
+//			determine the set of subcarriers allowed for transmission in both upstream and downstream
+//			directions.
+//
+//			The VDSL2-CARMASK attribute describes the not-masked subcarriers in terms of one or more
+//			frequency bands. Each band is represented by start and stop subcarrier indices with a subcarrier
+//			spacing of 4.3125-kHz. The valid range of subcarrier indices is from 0 to at least the index of
+//			the highest allowed subcarrier in both transmission directions among all profiles enabled by the
+//			VDSL2 profiles enabling (PROFILES) attribute. Up to 32 bands may be specified. Other subcarriers
+//			are masked.
+//
+//			For profiles using 8.625 kHz tone spacing, the odd subcarrier indices i4.3125 in VDSL2-CARMASK
+//			can be transformed into actual subcarrier indices i8.625 using the following rule:
+//
+//			- for the start frequency of each band: i8.625-=-(i4.3125 + 1)/2
+//
+//			- for the stop frequency of each band: i8.625-=-(i4.3125 - 1)/2.
+//
+//			The VDSL2-CARMASK attribute is a table where each entry comprises:
+//
+//			- an entry number field (1-byte, first entry numbered 1);
+//
+//			- band start subcarrier index (2-bytes);
+//
+//			- band stop subcarrier index (2-bytes).
+//
+//			By default, the table is empty. Entries are added or modified using the set action. Setting a
+//			table entry with non-zero subcarrier references implies insertion into the table. Setting an
+//			entry's subcarrier references to zero implies deletion from the table, if present.
+//
+//			The maximum number of bands is 32, so the maximum size of the table is 160-bytes. (R,-W)
+//			(mandatory) (5 * N bytes, where N is the number of bands)
+//
+//		Carmask Valid
+//			This attribute controls and reports the status of the VDSL2-CARMASK table. If CARMASK valid-= 1,
+//			then the VDSL2-CARMASK has been effectuated on the xDSL equipment. If CARMASK valid-= 0
+//			(default), then the VDSL2-CARMASK table is under construction and has not been effectuated on
+//			the xDSL equipment.
+//
+//			This attribute behaves as follows.
+//
+//			If the OLT changes any of the VDSL2-CARMASK table entries or sets CARMASK valid-= 0, then
+//			CARMASK valid-= 0.
+//
+//			If CARMASK valid-= 0 and the OLT sets CARMASK valid-= 1, then the ONU updates the xDSL equipment
+//			with the contents of the table.
+//
+//			(R,-W) (mandatory) (1-byte)
+//
+//		Upboshaped
+//			This attribute includes two parameters for each band. The parameters are a and b, in that order.
+//			Parameter a lies in the range 4000 (40.00-dBm/Hz) to 8095 (80.95-dBm/Hz). Parameter b lies in
+//			the range 0 (0.00-dBm/Hz) to 4095 (40.95-dBm/Hz). The special values a-= b-= 0 disable UPBO in
+//			the respective upstream band.
+//
+//			The upstream electrical length parameter UPBOKL defines the electrical length expressed in
+//			decibels at 1-MHz, kl0, which may also be configured by the OLT. Its value ranges from 0
+//			(0.0-dB) to 1280 (128.0-dB).
+//
+//			If the force electrical length parameter UPBOKLF is 1, the very high-speed digital subscriber
+//			line transceiver unit, remote end (VTU-R) is forced to use the electrical length from this
+//			attribute (UPBOKL) to compute UPBO. Otherwise, the VDSL2 transceiver units (VTUs) determine the
+//			electrical length themselves.
+//
+//			(R,-W) (mandatory) (23-bytes)
+//
+//			Upstream power back-off (UPBO) is specified in [ITUT G.993.2] to provide spectral compatibility
+//			between loops of different lengths deployed in the same cable binder. The upstream transmit PSD
+//			mask, UPBOMASKus is defined in clause 7.2.1.3.2 of [ITUT G.993.2].
+//
+//			The ITU-T G.993.2 UPBO configuration attributes a and b are set by the OLT via this attribute.
+//			The reference length kl0_REF is set by the companion attribute UPBO klREF-pb, defined in the
+//			following. Further details appear in [ITUT-G.997.1].
+//
+//		Cyclic Extension
+//			The CEFLAG attribute enables (1) the optional cyclic extension values. If set to 0, the cyclic
+//			extension is forced to the mandatory length 5N/32. (R,-W) (mandatory) (1-byte)
+//
+//		Downstream Signal_To_Noise Ratio Snr Mode
+//			Downstream signal-to-noise ratio (SNR) mode: The SNRMODEds attribute controls transmitter
+//			referred virtual noise in the downstream direction. If set to 1, virtual noise is disabled. If
+//			set to 2, virtual noise is enabled. (R,-W) (mandatory) (1-byte)
+//
+//		Upstream Snr Mode
+//			The SNRMODEus attribute controls transmitter referred virtual noise in the upstream direction.
+//			If set to 1, virtual noise is disabled. If set to 2, virtual noise is enabled. (R,-W)
+//			(mandatory) (1-byte)
+//
+//		Transmitter Referred Virtual Noise Downstream Table
+//			Table entries for this attribute have the default value 254 for the noise PSD level. Entries are
+//			added or modified using the set action. Setting an entry to a noise PSD level less than or equal
+//			to 254 implies insertion into the table. Setting an entry's noise PSD level to 255 implies
+//			deletion from the table, if present.
+//
+//			(R,-W) (optional) (3N bytes, where N is the number of breakpoints)
+//
+//			The TXREFVNds table defines the downstream transmitter referred virtual noise. TXREFVNds is
+//			specified through a set of breakpoints. Each breakpoint comprises a subcarrier index t, with a
+//			subcarrier spacing of 4.3125-kHz, and a noise PSD level at that subcarrier. The set of
+//			breakpoints can then be represented as [(t1, PSD1), (t2, PSD2), ..., (tN, PSDN)]. The subcarrier
+//			index t is an unsigned 2 byte integer. The noise level is 1-byte whose value ranges from 0
+//			(-40-dBm/Hz) to 200 (-140-dBm/Hz), in steps of 0.5 dB. Values between 201 and 254 indicate a
+//			noise PSD level of 0 W/Hz. The maximum number of breakpoints is 32; no more than 15 breakpoints
+//			may be configured below the upper edge of the passband of every mode enabled for [ITU-T G.992.3]
+//			and [ITUT-G.992.5].
+//
+//		Transmitter Referred Virtual Noise Upstream Table
+//			The TXREFVNus attribute defines the upstream transmitter referred virtual noise. TXREFVNus is
+//			specified through a set of breakpoints. Each breakpoint comprises a subcarrier index t, with a
+//			subcarrier spacing of 4.3125-kHz, and a noise PSD level at that subcarrier. The set of
+//			breakpoints can then be represented as [(t1, PSD1), (t2, PSD2), ..., (tN, PSDN)]. The subcarrier
+//			index t is an unsigned 2-byte integer. The noise level is 1-byte whose value ranges from 0
+//			(-40-dBm/Hz) to 200 (-140-dBm/Hz), in steps of 0.5 dB. Values between 201 and 254 indicate a
+//			noise PSD level of 0-W/Hz. The maximum number of breakpoints is 16; no more than three
+//			breakpoints may be configured below the upper edge of the passband of every mode enabled for
+//			[ITU-T G.992.3] and [ITUT-G.992.5].
+//
+//			Table entries for this attribute have the default value 254 for the noise PSD level. Entries are
+//			added or modified using the set action. Setting an entry to a noise PSD level less than or equal
+//			to 254 implies insertion into the table. Setting an entry's noise PSD level to 255 implies
+//			deletion from the table, if present.
+//
+//			(R,-W) (optional) (3N bytes, where N is the number of breakpoints)
+//
+//		Dpboshaped
+//			Downstream power back-off - shaped is described in [ITUT G.997.1] as a vector of parameters that
+//			modifies the downstream PSD mask.
+//
+//			DPBOEPSD - Assumed exchange PSD mask. This component points to a downstream xDSL PSD mask
+//			profile ME. The PSD mask profile should contain no more than 16 break points. (2-bytes)
+//
+//			DPBOESEL - E-side electrical length. This component is the assumed loss at some reference
+//			frequency of the electrical cable from the xDSL equipment to a possible flexibility point. It
+//			ranges from 0 (0.0-dB) to 511 (255.5-dB) in steps of 0.5-dB. The value 0 has the special meaning
+//			that it disables the DPBOSHAPED feature. (2-bytes)
+//
+//			The following three parameters describe the cable model. Further details appear in [ITUT
+//			G.997.1]. Each is a scalar that represents the range -1 (coded as 0) to +1.5 (coded as 640) in
+//			steps of 1/256.
+//
+//			DPBOESCMA - (2-bytes)
+//
+//			DPBOESCMB - (2-bytes)
+//
+//			DPBOESCMC - (2-bytes)
+//
+//			DPBOMUS - Assumed minimum usable receive PSD mask. This component ranges from 0 (0.0-dBm/Hz) to
+//			255 (-127.5-dBm/Hz) in steps of 0.5 dB. (1-byte)
+//
+//			DPBOFMIN - The lower frequency bound above which DPBO is applied. This component ranges from 0
+//			(0.00 kHz) to 2048 (8832.00 kHz) in steps of 4.3125 kHz. (2-bytes)
+//
+//			DPBOFMAX - The upper frequency bound below which DPBO is applied. This component ranges from 32
+//			(138.00-kHz) to 6956 (29997.75-kHz) in steps of 4.3125-kHz. (2-bytes)
+//
+//			(R,-W) (optional) (15-bytes)
+//
+//		Upboklref_Pb
+//			UPBOKLREF-pb: This attribute represents the reference loop length, the electrical length used to
+//			compute upstream power back-off (UPBO) for each upstream band except US0, for the optional
+//			equalized FEXT UPBO method. The value for each upstream band ranges from 1.8 to 63.5 dB in steps
+//			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): 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
+//			given in octet 1 of Table 12-27 of [ITU-T G.993.2]. (R,-W) (optional) (1-byte)
+//
+type Vdsl2LineConfigurationExtensions struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	vdsl2lineconfigurationextensionsBME = &ManagedEntityDefinition{
+		Name:    "Vdsl2LineConfigurationExtensions",
+		ClassID: 165,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			GetNext,
+			Set,
+			SetTable,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewVdsl2LineConfigurationExtensions (class ID 165) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewVdsl2LineConfigurationExtensions(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*vdsl2lineconfigurationextensionsBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/vdsl2lineconfigurationextensions2.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/vdsl2lineconfigurationextensions2.go
new file mode 100644
index 0000000..86f2383
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/vdsl2lineconfigurationextensions2.go
@@ -0,0 +1,199 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// Vdsl2LineConfigurationExtensions2ClassID is the 16-bit ID for the OMCI
+// Managed entity VDSL2 line configuration extensions 2
+const Vdsl2LineConfigurationExtensions2ClassID = ClassID(323) // 0x0143
+
+var vdsl2lineconfigurationextensions2BME *ManagedEntityDefinition
+
+// Vdsl2LineConfigurationExtensions2 (Class ID: #323 / 0x0143)
+//	This ME extends the xDSL line configuration MEs. The ME name was chosen because its attributes
+//	were initially unique to ITU-T G.993.2 VDSL2. Due to continuing standards development, two of
+//	the attributes (FEXT and NEXT TXREFVNds) are also used in [ITUT-G.992.3] and [ITUT-G.992.5].
+//	This ME therefore pertains to the latter Recommendations as well as to [ITU-T-G.993.2].
+//
+//	The attributes of this ME are further defined in [ITU-T G.997.1].
+//
+//	An instance of this ME is created and deleted by the OLT.
+//
+//	Relationships
+//		An instance of this ME may be associated with zero or more instances of the PPTP xDSL UNI part
+//		1.////		The overall xDSL line configuration profile is modelled in several parts, all of which are
+//		associated together through a common ME ID. (The client PPTP xDSL UNI part 1 has a single
+//		pointer, which refers to the entire set of line configuration parts.)
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. All xDSL and VDSL2 line
+//			configuration profiles and extensions that pertain to a given PPTP xDSL must share a common ME
+//			ID. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Sos Time Downstream
+//			The SOS-TIME-ds attribute is used in the specification of receiver initiated SOS (see clause
+//			13.4.3 of [ITUT G.993.2]). If the attribute value is not zero, the standard SOS triggering
+//			criteria are enabled, and the value specifies the duration of the window used in the standard
+//			SOS triggering criteria in the downstream direction. The special value zero indicates that the
+//			standard SOS triggering criteria are disabled, i.e., vendor-discretionary values may be used
+//			instead of the values configured in the MIB for the following parameters: SOS-NTONES-ds, SOS-
+//			CRC-ds, SOS-TIME-ds. The valid range of non-zero values is from 1..255, specifying 64-ms to
+//			16320 ms in steps of 64-ms. (R,-W, setbycreate) (optional) (1-byte)
+//
+//		Sos Time Upstream
+//			The SOS-TIME-us attribute is used in the specification of receiver initiated SOS (see clause
+//			13.4.3 of [ITUT G.993.2]). If the attribute value is not zero, the standard SOS triggering
+//			criteria are enabled, and the value specifies the duration of the window used in the standard
+//			SOS triggering criteria in the upstream direction. The special value zero indicates that the
+//			standard SOS triggering criteria are disabled, i.e., vendor-discretionary values may be used
+//			instead of the values configured in the MIB for the following parameters: SOS-NTONES-us, SOS-
+//			CRC-us, SOS-TIME-us. The valid range of non-zero values is from 1..255, specifying 64-ms to
+//			16320-ms in steps of 64-ms. (R,-W, setbycreate) (optional) (1-byte)
+//
+//		Sos Degraded Tones Threshold Downstream
+//			The SOS-NTONES-ds attribute is the minimum percentage of tones in the downstream medley set that
+//			must be degraded in order to arm the first subcondition of the standard SOS triggering criteria
+//			in the downstream direction. The valid range of values is from 1 to 100% in steps of 1. Use of
+//			the special value 0 is described in clause 13.4.3.2 of [ITUT G.993.2]. (R,-W, setbycreate)
+//			(optional) (1-byte)
+//
+//		Sos Degraded Tones Threshold Upstream
+//			The SOS-NTONES-us attribute is the minimum percentage of tones in the upstream medley set that
+//			must be degraded in order to arm the first subcondition of the standard SOS triggering criteria
+//			in the upstream direction. The valid range of values is from 1 to 100% in steps of 1. Use of the
+//			special value 0 is described in clause 13.4.3.2 of [ITUT-G.993.2]. (R,-W, setbycreate)
+//			(optional) (1-byte)
+//
+//		Sos Crc Threshold Downstream
+//			The SOS-CRC-ds attribute is the minimum number of normalized CRC anomalies received in SOS-TIME-
+//			ds seconds in order to arm the second sub-condition of the standard SOS triggering criteria (see
+//			clause 13.4.3.2 of [ITU T G.993.2]) in the downstream direction. The valid range of SOS-CRC
+//			values is 0.02 to (216-1)*0.02, in steps of 0.02. The value-0 specifies that the ONU uses its
+//			internal default. (R, W, set-by-create) (optional) (2 bytes)
+//
+//		Sos Crc Threshold Upstream
+//			The SOS-CRC-us attribute is the minimum number of normalized CRC anomalies received in SOS-TIME-
+//			us seconds in order to arm the second sub-condition of the standard SOS triggering criteria (see
+//			clause 13.4.3.2 of [ITU T G.993.2]) in the upstream direction. The valid range of SOS-CRC values
+//			is 0.02 to (216-1)*0.02, in steps of 0.02. The value-0 specifies that the ONU uses its internal
+//			default. (R, W, set-by-create) (optional) (2 bytes)
+//
+//		Max Sos Downstream
+//			The MAX-SOS-ds attribute is used in deactivation. If the number of successful SOS procedures in
+//			the downstream direction performed within a 120-s interval exceeds MAX-SOS-ds, the modem goes to
+//			state L3. See clause 12.1.4 of [ITUT G.993.2] for details. The valid range of values is 1 to 15,
+//			with the special value 0 as described in clause 12.1 of [ITUT G.993.2]. (R,-W, setbycreate)
+//			(optional) (1-byte)
+//
+//		Max Sos Upstream
+//			The MAX-SOS-us attribute is used in deactivation. If the number of successful SOS procedures in
+//			the upstream direction performed within a 120-s interval exceeds MAX-SOS-us, the modem goes to
+//			state L3. See clause 12.1.4 of [ITUT G.993.2] for details. The valid range of values is 1 to 15,
+//			with the special value 0 as described in clause 12.1 of [ITUT G.993.2]. (R,-W, setbycreate)
+//			(optional) (1-byte)
+//
+//		Snr Max Offset Downstream
+//			The SNRMOFFSET-ROC-ds attribute is the SNR margin offset for the ROC in the downstream
+//			direction. The attribute is used in the specification of the channel initialization policy (see
+//			clause 12.3.7.1 of [ITUT G.993.2]). The valid range of SNR margin offset values is from 0..31-dB
+//			in 0.1-dB steps. (R,-W, setbycreate) (optional) (2-bytes)
+//
+//		Snr Max Offset Upstream
+//			The SNRMOFFSET-ROC-us attribute is the SNR margin offset for the ROC in the upstream direction.
+//			The attribute is used in the specification of the channel initialization policy (see
+//			clause-12.3.7.1 of [ITUT G.993.2]). The valid range of SNR margin offset values is from 0..31-dB
+//			in 0.1-dB steps. (R,-W, setbycreate) (optional) (2-bytes)
+//
+//		Roc Minimum Impulse Noise Protection Downstream
+//			The INPMIN-ROC-ds attribute specifies the minimum INP to apply on the ROC in the downstream
+//			direction expressed in multiples of equivalent 4k DMT, xDSL (DMT) symbol length. The minimum INP
+//			is an integer ranging from 0 to 8. (R,-W, setbycreate) (optional) (1-byte)
+//
+//		Roc Minimum Impulse Noise Protection Upstream
+//			The INPMIN-ROC-us attribute specifies the minimum impulse noise protection to apply on the ROC
+//			in the upstream direction expressed in multiples of equivalent 4k DMT symbol length. The minimum
+//			INP is an integer ranging from 0 to 8. (R,-W, setbycreate) (optional) (1-byte)
+//
+//		Fext Downstream Transmitter Referred Virtual Noise Table
+//			The FEXT TXREFVNds attribute is the downstream transmitter referred virtual noise specified for
+//			FEXTR duration in Annex C of [ITUT G.992.3] (ADSL2) and Annex C of [ITUT G.992.5] (ADSL2plus).
+//			The syntax of this attribute is the same as that of the TXREFVNds table attribute of the VDSL2
+//			line configuration extensions ME. (R,-W) (mandatory for Annex-C of [ITUT-G.992.3] and Annex-C of
+//			[ITUT-G.992.5]) (3-*-N bytes, where N is the number of breakpoints)
+//
+//		Next Downstream Transmitter Referred Virtual Noise Table
+//			The NEXT TXREFVNds attribute is the downstream transmitter referred virtual noise specified for
+//			NEXTR duration in Annex C of [ITUT G.992.3] (ADSL2) and Annex C of [ITUT G.992.5] (ADSL2plus).
+//			The syntax of this attribute is the same as that of the TXREFVNds table attribute of the VDSL2
+//			line configuration extensions ME. (R,-W) (mandatory for Annex-C of [ITUT-G.992.3] and Annex-C of
+//			[ITUT-G.992.5]) (3-*-N bytes, where N is the number of breakpoints)
+//
+type Vdsl2LineConfigurationExtensions2 struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	vdsl2lineconfigurationextensions2BME = &ManagedEntityDefinition{
+		Name:    "Vdsl2LineConfigurationExtensions2",
+		ClassID: 323,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			GetNext,
+			Set,
+			SetTable,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewVdsl2LineConfigurationExtensions2 (class ID 323) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewVdsl2LineConfigurationExtensions2(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*vdsl2lineconfigurationextensions2BME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/vdsl2lineconfigurationextensions3.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/vdsl2lineconfigurationextensions3.go
new file mode 100644
index 0000000..fd642d2
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/vdsl2lineconfigurationextensions3.go
@@ -0,0 +1,156 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// Vdsl2LineConfigurationExtensions3ClassID is the 16-bit ID for the OMCI
+// Managed entity VDSL2 line configuration extensions 3
+const Vdsl2LineConfigurationExtensions3ClassID = ClassID(410) // 0x019a
+
+var vdsl2lineconfigurationextensions3BME *ManagedEntityDefinition
+
+// Vdsl2LineConfigurationExtensions3 (Class ID: #410 / 0x019a)
+//	This ME extends the xDSL line configuration MEs.
+//
+//	An instance of this ME is created and deleted by the OLT.
+//
+//	Relationships
+//		An instance of this ME may be associated with zero or more instances of an xDSL UNI.////		The overall xDSL line configuration profile is modelled in several parts, all of which are
+//		associated together through a common ME ID (the client PPTP xDSL UNI part 1 has a single
+//		pointer, which refers to the entire set of line configuration parts).
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. All xDSL and VDSL2 line
+//			configuration profiles and extensions that pertain to a given PPTP xDSL UNI must share a common
+//			ME ID. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Ripolicyds
+//			This attribute indicates which policy shall be applied to determine the triggers for re-
+//			initialization in the downstream direction. A valid range of values is given in clause
+//			7.3.1.1.12.1 of [ITU-T G.997.1]. (R,-W) (optional) (1-byte)
+//
+//		Ripolicyus
+//			This attribute indicates which policy shall be applied to determine the triggers for re-
+//			initialization in the upstream direction. A valid range of values is given in clause
+//			7.3.1.1.12.2 of [ITU-T G.997.1]. (R,-W) (optional) (1-byte)
+//
+//		Reinit_Time_Thresholdds
+//			This attribute indicates defines the downstream threshold for re-initialization based on SES, to
+//			be used by the VTU receiver when re-initialization policy 1 is used in downstream. A valid range
+//			of values is given in clause 7.3.1.1.13.1 of [ITU-T G.997.1]. (R,-W) (optional) (1-byte)
+//
+//		Reinit_Time_Thresholdus
+//			This attribute indicates defines the upstream threshold for re-initialization based on SES, to
+//			be used by the VTU receiver when reinitialization policy 1 is used in upstream. A valid range of
+//			values is given in clause 7.3.1.1.13.2 of [ITU-T G.997.1]. (R,-W) (optional) (1-byte)
+//
+//		Rxrefvnsfus
+//			If SNRM_MODE = 4, this attribute defines the upstream receiver-referred virtual noise scaling
+//			factor. The attribute value ranges from 0  (-64.0-dBm) to 255 (+63.5-dBm) - see clause 7.3.1.7.5
+//			of [ITU-T G.997.1]. (R,-W) (optional) (1-byte)
+//
+//		Txrefvnsfds
+//			If SNRM_MODE = 4, this attribute defines the downstream transmitter referred virtual noise
+//			scaling factor. The attribute value ranges from 0  (-64.0-dBm) to 255 (+63.5-dBm) - see clause
+//			7.3.1.7.6 of [ITU-T G.997.1]. (R,-W) (optional) (1-byte)
+//
+//		Rtx_Modeds
+//			This attribute controls the mode of operation of [ITU-T G.998.4] retransmission in the
+//			downstream direction. A valid range of values is given in clause 7.3.1.11 of [ITU-T G.997.1].
+//			(R,-W) (mandatory) (1-byte)
+//
+//		Rtx_Modeus
+//			This attribute controls the mode of operation of [ITU-T G.998.4] retransmission in the upstream
+//			direction. A valid range of values is given in clause 7.3.1.11 of [ITU-T G.997.1]. (R,-W)
+//			(mandatory) (1-byte)
+//
+//		Leftr_Thresh
+//			If retransmission is used in a given transmit direction, LEFTR_THRESH specifies the threshold
+//			for declaring a near-end ''leftr'' defect. LEFTR_THRESH is equal to the integer value of this
+//			attribute multiplied by 0.01. Valid values and usage are given in clause 7.3.1.12 of [ITU-T
+//			G.997.1]. (R,-W) (mandatory) (1-byte)
+//
+//		Maxdelayoctet_Split Parameter Mdosplit
+//			MAXDELAYOCTET-split parameter (MDOSPLIT): This attribute defines the percentage of the
+//			MAXDELAYOCTET_ext if operating in [ITU-T G.998.4] or MAXDELAYOCTET in other cases allocated to
+//			the downstream direction. MDOSPLIT is equal to the integer value of this attribute multiplied by
+//			1%. Valid values and usage are given in clause 7.3.1.14 of [ITUT-G.997.1]. (R,-W) (optional)
+//			(1-byte)
+//
+//		Attndr Method Attndr_Method
+//			ATTNDR Method (ATTNDR_METHOD): This attribute specifies the method to be used for the
+//			calculation of the ATTNDR in the downstream and upstream direction. Valid values are given in
+//			clause 7.3.1.15.1 of [ITU-T G.997.1]. (R,-W) (optional) (1-byte)
+//
+//		Attndr Maxdelayoctet_Split Parameter Attndr_Mdosplit
+//			ATTNDR MAXDELAYOCTET-split parameter (ATTNDR_MDOSPLIT): This attribute defines the percentage of
+//			the MAXDELAYOCTET_ext if operating in [ITU-T G.998.4] or MAXDELAYOCTET in other cases allocated
+//			to the downstream direction to be used in the improved method for calculation of the ATTNDR. The
+//			valid values are identical to the values of the line configuration parameter MDOSPLIT. See
+//			clause 7.3.1.15.2 of [ITUT-G.997.1]. (R,-W) (optional) (1-byte)
+//
+type Vdsl2LineConfigurationExtensions3 struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	vdsl2lineconfigurationextensions3BME = &ManagedEntityDefinition{
+		Name:    "Vdsl2LineConfigurationExtensions3",
+		ClassID: 410,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewVdsl2LineConfigurationExtensions3 (class ID 410) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewVdsl2LineConfigurationExtensions3(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*vdsl2lineconfigurationextensions3BME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/vdsl2lineinventoryandstatusdatapart1.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/vdsl2lineinventoryandstatusdatapart1.go
new file mode 100644
index 0000000..241073c
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/vdsl2lineinventoryandstatusdatapart1.go
@@ -0,0 +1,213 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// Vdsl2LineInventoryAndStatusDataPart1ClassID is the 16-bit ID for the OMCI
+// Managed entity VDSL2 line inventory and status data part 1
+const Vdsl2LineInventoryAndStatusDataPart1ClassID = ClassID(168) // 0x00a8
+
+var vdsl2lineinventoryandstatusdatapart1BME *ManagedEntityDefinition
+
+// Vdsl2LineInventoryAndStatusDataPart1 (Class ID: #168 / 0x00a8)
+//	This ME extends the xDSL line configuration MEs. The ME name was chosen because its attributes
+//	were initially unique to ITU-T G.993.2 VDSL2. Due to continuing standards development, some
+//	attributes - and therefore this ME - have also become applicable to other Recommendations,
+//	specifically [ITU-T G.992.3] and [ITU-T G.992.5].
+//
+//	This ME contains general and downstream attributes.
+//
+//	Relationships
+//		This is one of the status data MEs associated with an xDSL UNI. It is meaningful if the PPTP
+//		supports [ITU-T G.992.3], [ITU-T G.992.5] or [ITU-T G.993.2]. The ONU automatically creates or
+//		deletes an instance of this ME upon creation and deletion of a PPTP xDSL UNI part 1 that
+//		supports these attributes.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the PPTP xDSL UNI part 1 ME. (R) (mandatory) (2-bytes)
+//
+//		Vdsl2 Transmission System Capability Xtu C
+//			VDSL2 transmission system capability xTUC: This attribute extends the xTU-C transmission system
+//			capability attribute of the xDSL line inventory and status data part 1 to include xTU-C VDSL2
+//			capabilities. It is defined by bits 57..64 of Table 9.7.12-1. (R) (mandatory) (1-byte)
+//
+//		Vdsl2 Transmission System
+//			This attribute reports the transmission system in use. It extends the xDSL transmission system
+//			attribute of the xDSL line inventory and status data part 2 ME with a byte that includes VDSL2
+//			capabilities currently in use. It is defined by bits 57..64 of Table 9.7.12-1. (R) (mandatory)
+//			(1-byte)
+//
+//		Vdsl2 Profile
+//			This attribute identifies the profile in use. It is a bit map (0 if not allowed, 1 if allowed)
+//			with the following definition:
+//
+//			Bit	Meaning
+//
+//			1 (LSB)	ITU-T G.993.2 profile 8a
+//
+//			2	ITU-T G.993.2 profile 8b
+//
+//			3	ITU-T G.993.2 profile 8c
+//
+//			4	ITU-T G.993.2 profile 8d
+//
+//			5	ITU-T G.993.2 profile 12a
+//
+//			6	ITU-T G.993.2 profile 12b
+//
+//			7	ITU-T G.993.2 profile 17a
+//
+//			8	ITU-T G.993.2 profile 30a
+//
+//			(R) (mandatory) (1-byte)
+//
+//		Vdsl2 Limit Psd Mask And Bandplan
+//			This attribute defines the limit PSD mask and band plan in use. It is a bit map as defined by
+//			Table 9.7.6-1. (R) (mandatory) (8-bytes)
+//
+//		Vdsl2 Us0 Psd Mask
+//			This attribute defines the US0 PSD mask in use. It is a bit map as defined by Table 9.7.62. (R)
+//			(mandatory) (4-bytes)
+//
+//		Actsnrmodeds
+//			This attribute indicates whether transmitter-referred virtual noise is active on the line in the
+//			downstream direction.
+//
+//			1	Virtual noise inactive
+//
+//			2	Virtual noise active
+//
+//			(R) (mandatory) (1-byte)
+//
+//			The following four attributes have similar definitions. In each case, valid attribute values are
+//			1, 2, 4, 8. In ADSL applications, the corresponding value is fixed at 1, and therefore need not
+//			be specified. For VDSL2, it is equal to the size of the subcarrier group used to compute these
+//			attributes (see clause-11.4.1 of [ITUT G.993.2]).
+//
+//		Hlingds
+//			This attribute contains the number of subcarriers per group used to report HLINpsds. (R)
+//			(mandatory) (1-byte)
+//
+//		Hloggds
+//			This attribute contains the number of subcarriers per group used to report HLOGpsds. (R)
+//			(mandatory) (1-byte)
+//
+//		Qlngds
+//			This attribute contains the number of subcarriers per group used to report QLNpsds. (R)
+//			(mandatory) (1-byte)
+//
+//		Snrgds
+//			This attribute contains the number of subcarriers per group used to report SNRpsds. (R)
+//			(mandatory) (1-byte)
+//
+//		Mrefpsdds Table
+//			The downstream medley reference PSD table contains the set of breakpoints exchanged in the
+//			MREFPSDds fields of the O-PRM message of [ITU-T G.993.2].
+//
+//			The format is similar to that specified for the PSD descriptor in [ITUT-G.993.2]. In [ITU-T
+//			G.993.2], the first byte gives the size of the table, each entry of which is 3-bytes. In the
+//			OMCI definition, the first byte is omitted because the size of the table is known from the
+//			response to the get command.
+//
+//			(R) (mandatory) (3 * N bytes, where N is the number of breakpoints)
+//
+//		Trellisds
+//			0	Trellis not used
+//
+//			1	Trellis used
+//
+//			(R) (mandatory for ITU-T G.993.2 VDSL2, optional for others) (1-byte)
+//
+//			This attribute reports whether trellis coding is in use in the downstream direction.
+//
+//		Actual Rate Adaptation Mode Downstream
+//			The ACT-RA-MODEds attribute indicates the actual active RA mode in the downstream direction.
+//
+//			1	MANUAL
+//
+//			2	AT_INIT
+//
+//			3	DYNAMIC
+//
+//			4	DYNAMIC with SOS ([ITU-T G.993.2] only)
+//
+//			(R) (optional) (1-byte)
+//
+//		Actual Impulse Noise Protection Robust Operations Channel Roc Downstream
+//			Actual impulse noise protection robust operations channel (ROC) downstream: The ACTINP-ROC-ds
+//			attribute reports the actual INP of the ROC in the downstream direction expressed in multiples
+//			of T4k. The INP of this attribute is equal to the integer value multiplied by 0.1 symbols. Valid
+//			values and usage are given in clause 7.5.1.34.1 of [ITUT-G.997.1]. (R) (optional) (1-byte)
+//
+//		Snr Margin Roc Downstream
+//			The SNRM-ROC-ds attribute reports the actual signal-to-noise margin of the ROC in the downstream
+//			direction. Its value ranges from 0 (-64.0-dB) to 1270 (+63.0-dB). The special value 0xFFFF
+//			indicates that the attribute is out of range. (R) (optional) (2-bytes)
+//
+type Vdsl2LineInventoryAndStatusDataPart1 struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	vdsl2lineinventoryandstatusdatapart1BME = &ManagedEntityDefinition{
+		Name:    "Vdsl2LineInventoryAndStatusDataPart1",
+		ClassID: 168,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewVdsl2LineInventoryAndStatusDataPart1 (class ID 168) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewVdsl2LineInventoryAndStatusDataPart1(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*vdsl2lineinventoryandstatusdatapart1BME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/vdsl2lineinventoryandstatusdatapart2.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/vdsl2lineinventoryandstatusdatapart2.go
new file mode 100644
index 0000000..e4cba76
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/vdsl2lineinventoryandstatusdatapart2.go
@@ -0,0 +1,191 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// Vdsl2LineInventoryAndStatusDataPart2ClassID is the 16-bit ID for the OMCI
+// Managed entity VDSL2 line inventory and status data part 2
+const Vdsl2LineInventoryAndStatusDataPart2ClassID = ClassID(169) // 0x00a9
+
+var vdsl2lineinventoryandstatusdatapart2BME *ManagedEntityDefinition
+
+// Vdsl2LineInventoryAndStatusDataPart2 (Class ID: #169 / 0x00a9)
+//	This ME extends the xDSL line configuration MEs. The ME name was chosen because its attributes
+//	were initially unique to ITU-T G.993.2 VDSL2. Due to continuing standards development, some
+//	attributes - and therefore this ME - have also become applicable to other Recommendations,
+//	specifically [ITU-T G.992.3] and [ITU-T G.992.5].
+//
+//	This ME contains upstream attributes.
+//
+//	Relationships
+//		This is one of the status data MEs associated with an xDSL UNI. It is meaningful if the PPTP
+//		supports [ITU-T G.992.3], [ITU-T G.992.5] or [ITU-T G.993.2]. The ONU automatically creates or
+//		deletes an instance of this ME upon creation and deletion of a PPTP xDSL UNI part 1 that
+//		supports these attributes.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the PPTP xDSL UNI part 1 ME. (R) (mandatory) (2-bytes)
+//
+//		Vdsl2 Transmission System Capability Xtu_R
+//			VDSL2 transmission system capability xTU-R: This attribute extends the xTU-R transmission system
+//			capability attribute of the xDSL line inventory and status data part 1 to include xTUR VDSL2
+//			capabilities. It is a defined by bits 57..64 of Table 9.7.12-1. (R) (mandatory) (1-byte)
+//
+//		Actsnrmodeus
+//			1	Virtual noise inactive
+//
+//			2	Virtual noise active
+//
+//			(R) (mandatory) (1-byte)
+//
+//			This attribute indicates whether transmitter-referred virtual noise is active on the line in the
+//			upstream direction.
+//
+//		Upbokle
+//			This attribute contains the electrical length estimated by the VTU-O expressed in decibels at
+//			1-MHz, kl0 (see O-UPDATE in clause 12.3.3.2.1.2 of [ITUT-G.993.2]). This is the final electrical
+//			length that would have been sent from the VTU-O to the VTU-R if the electrical length were not
+//			forced by the OLT. The value lies in the range 0 (0.0-dB) to 1280 (128.0-dB) (R) (mandatory)
+//			(2-bytes)
+//
+//			The following four attributes have similar definitions. In each case, valid attribute values are
+//			1, 2, 4, 8. In ADSL applications, the corresponding value is fixed at 1, and therefore need not
+//			be specified. For VDSL2, it is equal to the size of the subcarrier group used to compute these
+//			attributes (see clause 11.4.1 of [ITUT G.993.2]).
+//
+//		Hlingus
+//			This attribute is the number of subcarriers per group used to report HLINpsus. (R) (mandatory)
+//			(1-byte)
+//
+//		Hloggus
+//			This attribute is the number of subcarriers per group used to report HLOGpsus. (R) (mandatory)
+//			(1-byte)
+//
+//		Qlngus
+//			This attribute is the number of subcarriers per group used to report QLNpsus. (R) (mandatory)
+//			(1-byte)
+//
+//		Snrgus
+//			This attribute is the number of subcarriers per group used to report SNRpsus. (R) (mandatory)
+//			(1-byte)
+//
+//		Mrefpsdus Table
+//			The upstream medley reference PSD attribute contains the set of breakpoints exchanged in the
+//			MREFPSDus fields of the R-PRM message of [ITU-T G.993.2].
+//
+//			The format is similar to that specified for the PSD descriptor in [ITUT-G.993.2]. In [ITU-T
+//			G.993.2], the first byte gives the size of the table, each entry of which is 3-bytes. In the
+//			OMCI definition, the first byte is omitted because the size of the table is known from the
+//			response to the get command.
+//
+//			(R) (mandatory) (3 * N bytes, where N is the number of breakpoints)
+//
+//		Trellisus
+//			This attribute reports whether trellis coding is in use in the upstream direction.
+//
+//			0	Trellis not used
+//
+//			1	Trellis used
+//
+//			(R) (mandatory for ITU-T G.993.2 VDSL2, optional for others) (1-byte)
+//
+//		Actualce
+//			This attribute reports the cyclic extension used on the line. It is coded as an unsigned integer
+//			from 2 to 16 in units of N/32 samples, where 2N is the IDFT size. (R) (mandatory) (1-byte)
+//
+//		Upbokle_R
+//			UPBOKLE-R: This attribute contains the electrical length estimated by the VTU-R expressed in
+//			decibels at 1-MHz. This is the value contained in the message RMSG1 (see clause 12.3.3.2.2.1of
+//			[ITUT G.993.2]). Its value lies in the range 0 (0.0-dB) to 1280 (128.0-dB) (R) (optional)
+//			(2-bytes)
+//
+//		Actual Rate Adaptation Mode Upstream
+//			The ACT-RA-MODEus attribute indicates the actual active RA mode in the upstream direction.
+//
+//			1	MANUAL
+//
+//			2	AT_INIT
+//
+//			3	DYNAMIC
+//
+//			4	DYNAMIC with SOS ([ITU-T G.993.2] only)
+//
+//			(R) (optional) (1-byte)
+//
+//		Actual Impulse Noise Protection Roc Upstream
+//			The ACTINP-ROC-us attribute reports the actual INP of the ROC in the upstream direction
+//			expressed in multiples of T4k. The INP of this attribute is equal to the integer value
+//			multiplied by 0.1 symbols. Valid values and usage are given in clause 7.5.1.34.2 of
+//			[ITUT-G.997.1]. (R) (optional) (1-byte)
+//
+//		Snr Margin Roc Upstream
+//			The SNRM-ROC-us attribute reports the actual signal-to-noise margin of the ROC in the upstream
+//			direction. Its value ranges from 0  (-64.0-dB) to 1270 (+63.0-dB). The special value 0xFFFF
+//			indicates that the attribute is out of range. (R) (optional) (2-bytes)
+//
+type Vdsl2LineInventoryAndStatusDataPart2 struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	vdsl2lineinventoryandstatusdatapart2BME = &ManagedEntityDefinition{
+		Name:    "Vdsl2LineInventoryAndStatusDataPart2",
+		ClassID: 169,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewVdsl2LineInventoryAndStatusDataPart2 (class ID 169) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewVdsl2LineInventoryAndStatusDataPart2(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*vdsl2lineinventoryandstatusdatapart2BME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/vdsl2lineinventoryandstatusdatapart3.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/vdsl2lineinventoryandstatusdatapart3.go
new file mode 100644
index 0000000..64102aa
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/vdsl2lineinventoryandstatusdatapart3.go
@@ -0,0 +1,193 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// Vdsl2LineInventoryAndStatusDataPart3ClassID is the 16-bit ID for the OMCI
+// Managed entity VDSL2 line inventory and status data part 3
+const Vdsl2LineInventoryAndStatusDataPart3ClassID = ClassID(170) // 0x00aa
+
+var vdsl2lineinventoryandstatusdatapart3BME *ManagedEntityDefinition
+
+// Vdsl2LineInventoryAndStatusDataPart3 (Class ID: #170 / 0x00aa)
+//	This ME extends the other xDSL line inventory and status data MEs with attributes specific to
+//	VDSL2. This ME contains per-band attributes for both directions. These same attributes are
+//	defined in the xDSL line inventory and status data part 2 ME, but only for a single band. [ITUT
+//	G.993.2] allows for VDSL2 to have as many as five bands upstream and as many as five bands
+//	downstream.
+//
+//	Relationships
+//		This is one of the status data MEs associated with an xDSL UNI. It is required only if VDSL2 is
+//		supported by the PPTP. The ONU automatically creates or deletes an instance of this ME upon
+//		creation or deletion of a PPTP xDSL UNI part 1 that supports these attributes.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the PPTP xDSL UNI part 1 ME. (R) (mandatory) (2-bytes)
+//
+//		Upstream Bands Count
+//			This attribute reports the number of upstream bands. It can be used to filter the upstream
+//			attributes. All upstream attributes are arrays of per-band entries, of which the first upstream
+//			bands count are populated. The contents of the arrays for unused frequency bands are
+//			unspecified. The original attributes were allocated for as many as four upstream bands, US0, 1,
+//			2, 3; optional extended attributes have been added to accommodate the possibility that five
+//			upstream bands may be needed. (R) (mandatory) (1-byte)
+//
+//		Downstream Bands Count
+//			This attribute reports the number of downstream bands. It can be used to filter the downstream
+//			attributes. All downstream attributes are arrays of per-band entries, of which the first
+//			downstream bands count are populated. The contents of the arrays for unused frequency bands are
+//			unspecified. The original attributes were allocated for as many as three downstream bands, DS1,
+//			2, 3; optional extended attributes have been added to accommodate the possibility that five
+//			downstream bands may be needed. (R) (mandatory) (1-byte)
+//
+//		Downstream Line Attenuation Per Band
+//			The LATNds attribute is defined per usable band. It is the squared magnitude of the channel
+//			characteristics function, H(f), averaged over this band, and measured during loop diagnostic
+//			mode and initialization. The exact definition is included in the relevant xDSL Recommendation.
+//			The upstream line attenuation per band ranges from 0 (0.0-dB) to 1270 (+127.0-dB). The special
+//			value 0xFFFF indicates that the line attenuation per band is out of the range to be represented.
+//			(R) (mandatory) (3-bands * 2-bytes-=-6-bytes)
+//
+//		Upstream Line Attenuation Per Band
+//			The LATNus attribute is defined per usable band. It is the squared magnitude of the channel
+//			characteristics function H(f) averaged over this band, and measured during loop diagnostic mode
+//			and initialization. The exact definition is included in the relevant xDSL Recommendation. The
+//			upstream line attenuation per band ranges from 0 (0.0-dB) to 1270 (+127.0-dB). The special value
+//			0xFFFF indicates that line attenuation per band is out of range to be represented. (R)
+//			(mandatory) (4-bands * 2-bytes-=-8-bytes)
+//
+//		Downstream Signal Attenuation Per Band
+//			The SATNds attribute is defined per usable band. It is the measured difference in the total
+//			power transmitted in this band by the xTUC and the total power received by the xTUR during loop
+//			diagnostic mode, initialization and showtime. The exact definition is included in the relevant
+//			xDSL Recommendation. The downstream signal attenuation per band ranges from 0 (0.0-dB) to 1270
+//			(+127.0-dB). The special value 0xFFFF indicates that the signal attenuation per band is out of
+//			the range to be represented. (R) (mandatory) (3 bands * 2-bytes-=-6-bytes)
+//
+//			NOTE 1 - During showtime, only a subset of the subcarriers may be transmitted by the xTU-C, as
+//			compared to loop diagnostic mode and initialization. Therefore, the downstream signal
+//			attenuation value during showtime may be significantly lower than the downstream signal
+//			attenuation value during loop diagnostic mode and initialization.
+//
+//		Upstream Signal Attenuation Per Band
+//			The SATNus attribute is defined per usable band. It is the measured difference in decibels in
+//			the total power transmitted in this band by the xTUR and the total power received in this band
+//			by the xTUC during loop diagnostic mode, initialization and showtime. The exact definition is
+//			included in the relevant xDSL Recommendation. The upstream signal attenuation per band ranges
+//			from 0 (0.0-dB) to 1270 (+127.0-dB). The special value 0xFFFF indicates the signal attenuation
+//			per band is out of range to be represented. (R) (mandatory) (4 bands * 2-bytes-= 8-bytes)
+//
+//			NOTE 2 - During showtime, only a subset of the subcarriers may be transmitted by the xTU-R, as
+//			compared to loop diagnostic mode and initialization. Therefore, the upstream signal attenuation
+//			value during showtime may be significantly lower than the upstream signal attenuation value
+//			during loop diagnostic mode and initialization.
+//
+//		Downstream Snr Margin Per Band
+//			The SNRMpbds attribute is defined per usable band. The downstream SNR margin per band is the
+//			maximum increase of noise power received at the xTU-R, such that the BER requirements are met
+//			for all downstream bearer channels. Each array value ranges from 0 (-64.0-dB) to 1270
+//			(+63.0-dB). The special value 0xFFFF indicates that the attribute is out of range to be
+//			represented. (R) (mandatory) (3 bands * 2-bytes-=-6-bytes)
+//
+//		Upstream Snr Margin Per Band
+//			The SNRMpbus attribute is defined per usable band. The upstream SNR margin per band is the
+//			maximum increase of noise power received at the xTU-C, such that the BER requirements are met
+//			for all upstream bearer channels. Each array value ranges from 0 (-64.0-dB) to 1270 (+63.0-dB).
+//			The special value 0xFFFF indicates that the attribute is out of range to be represented. (R)
+//			(mandatory) (4 bands * 2-bytes-= 8-bytes)
+//
+//		Downstream Line Attenuation Extension
+//			This attribute extends LATNds when more than three downstream bands are used. It is defined in
+//			the same way as the downstream line attenuation per band attribute. (R) (optional) (2 bands *
+//			2-bytes-= 4-bytes)
+//
+//		Upstream Line Attenuation Extension
+//			This attribute extends LATNus when more than four upstream bands are used. It is defined in the
+//			same way as the upstream line attenuation per band attribute. (R) (optional) (1 band *
+//			2-bytes-=-2-bytes)
+//
+//		Downstream Signal Attenuation Extension
+//			This attribute extends SATNds when more than three downstream bands are used. It is defined in
+//			the same way as the downstream signal attenuation per band attribute. (R) (optional) (2 bands *
+//			2-bytes-= 4-bytes)
+//
+//		Upstream Signal Attenuation Extension
+//			This attribute extends SATNus when more than four upstream bands are used. It is defined in the
+//			same way as the upstream signal attenuation per band attribute. (R) (optional) (1 band *
+//			2-bytes-= 2-bytes)
+//
+//		Downstream Snr Margin Extension
+//			This attribute extends SNRMpbds when more than three downstream bands are used. It is defined in
+//			the same way as the downstream SNR margin per band attribute. (R) (optional) (2 bands *
+//			2-bytes-= 4-bytes)
+//
+//		Upstream Snr Margin Extension
+//			This attribute extends SNRMpbus when more than four upstream bands are used. It is defined in
+//			the same way as the upstream SNR margin per band attribute. (R) (optional) (1-band * 2-bytes-=
+//			2-bytes)
+//
+type Vdsl2LineInventoryAndStatusDataPart3 struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	vdsl2lineinventoryandstatusdatapart3BME = &ManagedEntityDefinition{
+		Name:    "Vdsl2LineInventoryAndStatusDataPart3",
+		ClassID: 170,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewVdsl2LineInventoryAndStatusDataPart3 (class ID 170) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewVdsl2LineInventoryAndStatusDataPart3(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*vdsl2lineinventoryandstatusdatapart3BME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/vdsl2lineinventoryandstatusdatapart4.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/vdsl2lineinventoryandstatusdatapart4.go
new file mode 100644
index 0000000..107c9c6
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/vdsl2lineinventoryandstatusdatapart4.go
@@ -0,0 +1,194 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// Vdsl2LineInventoryAndStatusDataPart4ClassID is the 16-bit ID for the OMCI
+// Managed entity VDSL2 line inventory and status data part 4
+const Vdsl2LineInventoryAndStatusDataPart4ClassID = ClassID(415) // 0x019f
+
+var vdsl2lineinventoryandstatusdatapart4BME *ManagedEntityDefinition
+
+// Vdsl2LineInventoryAndStatusDataPart4 (Class ID: #415 / 0x019f)
+//	This ME extends the other xDSL line inventory and status data MEs with attributes specific to
+//	VDSL2.
+//
+//	Relationships
+//		This is one of the status data MEs associated with an xDSL UNI. It is required only if VDSL2 is
+//		supported by the PPTP. The ONU automatically creates or deletes an instance of this ME upon
+//		creation or deletion of a PPTP xDSL UNI part 1 that supports these attributes.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the PPTP xDSL UNI part 1 ME. (R) (mandatory) (2-bytes)
+//
+//		Vtu_O Estimated Upstream Power Back_Off Electrical Length Per Band Upbokle_Pb
+//			VTU-O estimated upstream power back-off electrical length per band (UPBOKLE-pb): This parameter
+//			is a vector of UPBO electrical length per-band estimates for each supported upstream band except
+//			US0, calculated by the VTU-O, based on separate measurements in the supported upstream bands
+//			excluding US0. This parameter is required for the alternative electrical length estimation
+//			method (ELE-M1). Each per-band estimate is represented by 2-bytes, where the estimate is defined
+//			as the integer value multiplied by 0.1-dB. The valid range of values is given in clause
+//			7.5.1.23.3 of [ITU-T G.997.1] (R) (optional) (4 bands- 2-bytes)
+//
+//		Vtu_R Estimated Upstream Power Back_Off Electrical Length Per Band Upbokle_R_Pb
+//			VTU-R estimated upstream power back-off electrical length per band (UPBOKLE-R-pb): This
+//			parameter is a vector of UPBO electrical length per-band estimates for each supported downstream
+//			band, calculated by the VTU-R, based on separate measurements in the supported downstream bands.
+//			This parameter is required for the alternative electrical length estimation method (ELEM1). Each
+//			per-band estimate is represented by 2-bytes, where the estimate is defined as the integer value
+//			multiplied by 0.1-dB. The valid range of values is given in clause 7.5.1.23.4 of [ITU-T G.997.1]
+//			(R) (optional) (3-bands- 2-bytes)
+//
+//		Upbo Downstream Receiver Signal Level Threshold Rxthrshds
+//			UPBO downstream receiver signal level threshold (RXTHRSHds): This parameter reports the
+//			downstream received signal level threshold value used in the alternative electrical length
+//			estimation method (ELE-M1). Valid values range from 0  (-64-dB) to 64 (0 dB). See clause
+//			7.5.1.23.5 of [ITU-T G.997.1] (R) (optional) (1-byte)
+//
+//		Upbo Upstream Receiver Signal Level Threshold Rxthrshus
+//			UPBO upstream receiver signal level threshold (RXTHRSHus): This parameter reports the upstream
+//			received signal level threshold value used in the alternative electrical length estimation
+//			method. Valid values range from 0 (-64 dB) to 64-(0 dB). See clause 7.5.1.23.6 of [ITU-T
+//			G.997.1] (R) (optional) (1-byte)
+//
+//		Actual Alternative Electrical Length Estimation Mod E Act_Aele_Mode
+//			Actual alternative electrical length estimation mode (ACT-AELE-MODE): This parameter reports the
+//			actual AELE-MODE. Valid values are given in clause-7.5.1.23.7 of [ITU-T G.997.1] (R) (optional)
+//			(1-byte)
+//
+//		Actual Downstream Ripolicy Actripolicyds
+//			Actual downstream RIPOLICY (ACTRIPOLICYds): This parameter indicates the actual re-
+//			initialization policy in use in the downstream direction. Valid values are given in clause
+//			7.5.1.40.1 of [ITU-T G.997.1] (R) (optional) (1-byte)
+//
+//		Actual Upstream Ripolicy Actripolicyus
+//			Actual upstream RIPOLICY (ACTRIPOLICYus): This parameter indicates the actual reinitialization
+//			policy in use in the upstream direction. Valid values are given in clause 7.5.1.40.2 of [ITU-T
+//			G.997.1] (R) (optional) (1-byte)
+//
+//		Attndr Actual M Ethod Attndr_Actmethod
+//			ATTNDR actual method (ATTNDR_ACTMETHOD): This parameter indicates the actual ATTNDR Method used
+//			for calculation of the ATTNDR in the downstream and upstream direction. Valid values are given
+//			in clause 7.5.1.41.1 of [ITUT-G.997.1] (R) (optional) (1-byte)
+//
+//		Attndr Downstream A Ctual Impulse Noise Protection Attndr_Actinpds
+//			ATTNDR downstream actual impulse noise protection (ATTNDR_ACTINPds): If retransmission is not
+//			used in the downstream direction, this parameter indicates the actual INP used in the improved
+//			calculation of the ATTNDR in the downstream direction. If retransmission is used in the
+//			downstream direction, this parameter indicates the actual INP against SHINE used in the improved
+//			calculation of the ATTNDR in the downstream direction. The format and usage is identical to that
+//			of the ACTINP attribute defined in the xDSL channel downstream status data ME. See clause
+//			7.5.1.41.2 of [ITU-T G.997.1] (R) (optional) (1-byte)
+//
+//		Attndr Upstream A Ctual Impulse Noise Protection Attndr_Actinpus
+//			ATTNDR upstream actual impulse noise protection (ATTNDR_ACTINPus): If retransmission is not used
+//			in the upstream direction, this parameter indicates the actual INP used in the improved
+//			calculation of the ATTNDR in the upstream direction. If retransmission is used in the upstream
+//			direction, this parameter indicates the actual INP against SHINE used in the improved
+//			calculation of the ATTNDR in the upstream direction. The format and usage is identical to that
+//			of the ACTINP attribute defined in the xDSL channel downstream status data ME. See clause
+//			7.5.1.41.3 of [ITU-T G.997.1] (R) (optional) (1-byte)
+//
+//		Attndr Downstream A Ctual Impulse Noise Protection Against Rein Attndr_Actinp_Reinds
+//			ATTNDR downstream actual impulse noise protection against REIN (ATTNDR_ACTINP_REINds): If
+//			retransmission is used in the downstream direction, this parameter reports the actual INP
+//			against REIN used in the improved calculation of the ATTNDR in the downstream direction. The
+//			format and usage is identical to that of the ACTINP_REIN attribute defined in the xDSL channel
+//			downstream status data ME. See clause 7.5.1.41.4 of [ITU-T G.997.1] (R) (optional) (1-byte)
+//
+//		Attndr Upstream A Ctual Impulse Noise Protection Against Rein Attndr_Actinp_Reinus
+//			ATTNDR upstream actual impulse noise protection against REIN (ATTNDR_ACTINP_REINus): If
+//			retransmission is used in the upstream direction, this parameter reports the actual INP against
+//			REIN used in the improved calculation of the ATTNDR in the upstream direction. The format and
+//			usage is identical to that of the ACTINP_REIN attribute defined in the xDSL channel downstream
+//			status data ME. See clause 7.5.1.41.5 of [ITUT-G.997.1] (R) (optional) (1-byte)
+//
+//		Attndr Downstream Actual Delay Attndr_Actdelayds
+//			ATTNDR downstream actual delay (ATTNDR_ACTDELAYds): This parameter indicates the actual delay
+//			used in the improved calculation of the ATTNDR in the downstream direction. The delay of this
+//			attribute is equal to the integer value multiplied by 0.1-ms. Valid values are given in clause
+//			7.5.1.41.6 of [ITUT G.997.1] (R) (optional) (1-byte)
+//
+//		Attndr Upstream A Ctual Delay Attndr_Actdelayus
+//			ATTNDR upstream actual delay (ATTNDR_ACTDELAYus): This parameter indicates the actual delay used
+//			in the improved calculation of the ATTNDR in the upstream direction. The delay of this attribute
+//			is equal to the integer value multiplied by 0.1-ms. Valid values are given in clause 7.5.1.41.7
+//			of [ITUT-G.997.1] (R) (optional) (1-byte)
+//
+//		Near_End A Ggregate Achievable Net Data Rate Aggachndr_Ne
+//			Near-end aggregate achievable net data rate (AGGACHNDR_NE): This parameter reports the aggregate
+//			achievable net data rate of the VTU-O, in bits per second. See clause 7.5.1.42.1 of [ITU-T
+//			G.997.1] (R) (optional) (4-bytes)
+//
+//		Far_End Aggregate Achievable Net Data Rate Aggachndr_Fe
+//			Far-end aggregate achievable net data rate (AGGACHNDR_FE): This parameter reports the aggregate
+//			achievable net data rate of the VTU-R, in bits per second. See clause-7.5.1.42.2 of [ITU-T
+//			G.997.1] (R) (optional) (4-bytes)
+//
+type Vdsl2LineInventoryAndStatusDataPart4 struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	vdsl2lineinventoryandstatusdatapart4BME = &ManagedEntityDefinition{
+		Name:    "Vdsl2LineInventoryAndStatusDataPart4",
+		ClassID: 415,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewVdsl2LineInventoryAndStatusDataPart4 (class ID 415) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewVdsl2LineInventoryAndStatusDataPart4(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*vdsl2lineinventoryandstatusdatapart4BME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/version.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/version.go
new file mode 100644
index 0000000..81b8030
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/version.go
@@ -0,0 +1,72 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+// Package generated provides code-generated OMCI types
+package generated
+
+// This file is used to track the version(s) of code used to parse the ITU
+// document and create the generated code.
+
+// VersionInfo provides information on the parser/generator version used to create
+// the generated data as well as the time of code generation
+type VersionInfo struct {
+	Name       string  // Type (pre-parser, parser, code-generator)
+	Version    string  // Version of parser project
+	CreateTime float32 // UTC linux time when ran
+	ItuDocName string  // ITU G.988 document name
+	SHA256     string  // ITU G.988 document SHA-256 hash
+}
+
+// Version provides version information of this generated cooe
+var Versions []VersionInfo
+
+func init() {
+	Versions = make([]VersionInfo, 0)
+
+	Versions = append(Versions,
+		VersionInfo{
+			Name:       "parser",
+			Version:    "0.15.13",
+			CreateTime: 1632853136.8901486,
+			ItuDocName: "T-REC-G.988-202003-I!Amd3!MSW-E.docx",
+			SHA256:     "084f5265bc090ca882fe45f6844d1ce368c218e52c77795060b7643240885469",
+		})
+
+	Versions = append(Versions,
+		VersionInfo{
+			Name:       "pre-parser",
+			Version:    "0.15.12",
+			CreateTime: 1628800053.665055,
+			ItuDocName: "T-REC-G.988-202003-I!Amd3!MSW-E.docx",
+			SHA256:     "084f5265bc090ca882fe45f6844d1ce368c218e52c77795060b7643240885469",
+		})
+
+	Versions = append(Versions,
+		VersionInfo{
+			Name:       "code-generator",
+			Version:    "0.15.13",
+			CreateTime: 1632853241.9567904,
+			ItuDocName: "T-REC-G.988-202003-I!Amd3!MSW-E.docx",
+			SHA256:     "084f5265bc090ca882fe45f6844d1ce368c218e52c77795060b7643240885469",
+		})
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/virtualethernetinterfacepoint.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/virtualethernetinterfacepoint.go
new file mode 100644
index 0000000..eb15fd2
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/virtualethernetinterfacepoint.go
@@ -0,0 +1,122 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// VirtualEthernetInterfacePointClassID is the 16-bit ID for the OMCI
+// Managed entity Virtual Ethernet interface point
+const VirtualEthernetInterfacePointClassID = ClassID(329) // 0x0149
+
+var virtualethernetinterfacepointBME *ManagedEntityDefinition
+
+// VirtualEthernetInterfacePoint (Class ID: #329 / 0x0149)
+//	This ME represents the data plane hand-off point in an ONU to a separate (non-OMCI) management
+//	domain. The VEIP is managed by the OMCI, and is potentially known to the non-OMCI management
+//	domain. One or more Ethernet traffic flows are present at this boundary.
+//
+//	Instances of this ME are automatically created and deleted by the ONU. This is necessary because
+//	the required downstream priority queues are subject to physical implementation constraints. The
+//	OLT may use one or more of the VEIPs created by the ONU.
+//
+//	It is expected that the ONU will create one VEIP for each non-OMCI management domain. At the
+//	vendor's discretion, a VEIP may be created for each traffic class.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of a virtual Ethernet interface between
+//		OMCI and non-OMCI management domains.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. When used independently of a
+//			cardholder and circuit pack, the ONU should assign IDs in the sequence 1, 2, .... When used in
+//			conjunction with a cardholder and circuit pack, this 2 byte number indicates the physical
+//			position of the VEIP. The first byte is the slot ID (defined in clause 9.1.5). The second byte
+//			is the port ID, with the range 1..255. The values 0 and 0xFFFF are reserved. (R) (mandatory) (2
+//			bytes)
+//
+//		Administrative State
+//			This attribute locks (1) and unlocks (0) the functions performed by this ME. Administrative
+//			state is further described in clause A.1.6. (R,-W) (mandatory) (1-byte)
+//
+//		Operational State
+//			This attribute indicates whether the ME is capable of performing its function. Valid values are
+//			enabled (0) and disabled (1). (R) (optional) (1-byte)
+//
+//		Interdomain Name
+//			This attribute is a character string that provides an optional way to identify the VEIP to a
+//			non-OMCI management domain. The interface may also be identified by its ME ID,  [b-IANA]
+//			assigned port and possibly other ways. If the vendor offers no information in this attribute, it
+//			should be set to a sequence of null bytes. (R,-W) (optional) (25-bytes)
+//
+//		Tcp_Udp Pointer
+//			TCP/UDP pointer: This attribute points to an instance of the TCP/UDP config data ME, which
+//			provides for OMCI management of the non-OMCI management domain's IP connectivity. If no OMCI
+//			management of the non-OMCI domain's IP connectivity is required, this attribute may be omitted
+//			or set to its default, a null pointer. (R,-W) (optional) (2-bytes)
+//
+//		Iana Assigned Port
+//			This attribute contains the TCP or UDP port value as assigned by  [b-IANA] for the management
+//			protocol associated with this virtual Ethernet interface. This attribute is to be regarded as a
+//			hint, not as a requirement that management communications use this port; the actual port and
+//			protocol are specified in the associated TCP/UDP config data ME. If no port has been assigned or
+//			if the management protocol is free to be chosen at run-time, this attribute should be set to
+//			0xFFFF. (R) (mandatory) (2-bytes)
+//
+type VirtualEthernetInterfacePoint struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	virtualethernetinterfacepointBME = &ManagedEntityDefinition{
+		Name:    "VirtualEthernetInterfacePoint",
+		ClassID: 329,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Connecting function fail",
+		},
+	}
+}
+
+// NewVirtualEthernetInterfacePoint (class ID 329) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewVirtualEthernetInterfacePoint(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*virtualethernetinterfacepointBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/vlantaggingfilterdata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/vlantaggingfilterdata.go
new file mode 100644
index 0000000..28d2443
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/vlantaggingfilterdata.go
@@ -0,0 +1,104 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// VlanTaggingFilterDataClassID is the 16-bit ID for the OMCI
+// Managed entity VLAN tagging filter data
+const VlanTaggingFilterDataClassID = ClassID(84) // 0x0054
+
+var vlantaggingfilterdataBME *ManagedEntityDefinition
+
+// VlanTaggingFilterData (Class ID: #84 / 0x0054)
+//	This ME organizes data associated with VLAN tagging. Instances of this ME are created and
+//	deleted by the OLT.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of a MAC bridge port configuration data
+//		ME. By definition, tag filtering occurs closer to the MAC bridge than the tagging operation.
+//		Schematically, the ordering of the functions is as given in Figure 9.3.11-1:////		Figure 9.3.11-1
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the MAC bridge port configuration data ME. (R, setbycreate)
+//			(mandatory) (2-bytes)
+//
+//		Vlan Filter List
+//			This attribute is a list of provisioned tag control information (TCI) values for the bridge
+//			port. A TCI, comprising user priority, canonical format indicator (CFI) and virtual local area
+//			network identifier (VID), is represented by 2-bytes. This attribute supports up to 12 VLAN
+//			entries. The first N are valid, where N is given by the number of entries attribute. (R,-W,
+//			setbycreate) (mandatory) (24-bytes)
+//
+//		Forward Operation
+//			When a frame passes through the MAC bridge port, it is processed according to the operation
+//			specified by this attribute, in accordance with Table-9.3.111. Figure 9.3.11-3 illustrates the
+//			treatment of frames according to the provisioned action possibilities. Tagged and untagged
+//			frames are treated separately, but both in accordance with Figure 9.3.11-3. While all forwarding
+//			operations are plausible, only actions 0x10 and 0x12 are necessary to construct a VLAN mapper
+//			and an 802.1p mapper, respectively. (R,-W, setbycreate) (mandatory) (1-byte)
+//
+//			Table 9.3.11-1 contains duplicate entries due to simplification of the original set of actions.
+//
+//			Table 9.3.11-1 and the actions listed are discussed in detail in the following.
+//
+//		Number Of Entries
+//			This attribute specifies the number of valid entries in the VLAN filter list. (R,-W,
+//			setbycreate) (mandatory) (1-byte)
+//
+type VlanTaggingFilterData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	vlantaggingfilterdataBME = &ManagedEntityDefinition{
+		Name:    "VlanTaggingFilterData",
+		ClassID: 84,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewVlanTaggingFilterData (class ID 84) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewVlanTaggingFilterData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*vlantaggingfilterdataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/vlantaggingoperationconfigurationdata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/vlantaggingoperationconfigurationdata.go
new file mode 100644
index 0000000..b13a398
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/vlantaggingoperationconfigurationdata.go
@@ -0,0 +1,174 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// VlanTaggingOperationConfigurationDataClassID is the 16-bit ID for the OMCI
+// Managed entity VLAN tagging operation configuration data
+const VlanTaggingOperationConfigurationDataClassID = ClassID(78) // 0x004e
+
+var vlantaggingoperationconfigurationdataBME *ManagedEntityDefinition
+
+// VlanTaggingOperationConfigurationData (Class ID: #78 / 0x004e)
+//	This ME organizes data associated with VLAN tagging. Instances of this ME are created and
+//	deleted by the OLT.
+//
+//	NOTE 1 - The extended VLAN tagging operation configuration data of clause 9.3.13 is preferred
+//	for new implementations.
+//
+//	Relationships
+//		Zero or one instance of this ME may exist for an instance of any ME that can terminate or modify
+//		an Ethernet stream.////		When this ME is associated with a UNI-side TP, it performs its upstream classification and
+//		tagging operations before offering the upstream frame to other filtering, bridging or switching
+//		functions. In the downstream direction, the defined inverse operation is the last operation
+//		performed on the frame before offering it to the UNI-side termination.////		When this ME is associated with an ANI-side TP, it performs its upstream classification and
+//		tagging operations as the last step before queueing for transmission to the OLT, after having
+//		received the upstream frame from other filtering, bridging or switching functions. In the
+//		downstream direction, the defined inverse operation is the first operation performed on the
+//		frame before offering it to possible filter, bridge or switch functions.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. When the optional association type
+//			attribute is 0 or undefined, this attribute's value is the same as the ID of the ME with which
+//			this VLAN tagging operation configuration data instance is associated, which may be either a
+//			PPTP Ethernet UNI or an IP host config data or an IPv6 host config data ME. Otherwise, the value
+//			of the ME ID is unconstrained except by the need to be unique. (R, set-by-create) (mandatory) (2
+//			bytes)
+//
+//		Upstream Vlan Tagging Operation Mode
+//			This attribute controls upstream VLAN tagging. Valid values are as follows.
+//
+//			0	Upstream frame is sent as is, regardless of tag.
+//
+//			1	The upstream frame is tagged, whether or not the received frame was tagged. A tagged frame's
+//			TCI is overwritten with the upstream VLAN tag TCI value. An untagged frame is prepended with a
+//			tag whose values are taken from the upstream VLAN tag TCI value attribute.
+//
+//			2	A tag is prepended to the upstream frame, whether or not the received frame was tagged. If the
+//			received frame is tagged, a second tag (Q-in-Q) is added to the frame. If the received frame is
+//			not tagged, a tag is attached to the frame. The added tag is defined by the upstream VLAN tag
+//			TCI value attribute.
+//
+//			(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Upstream Vlan Tag Tci Value
+//			This attribute specifies the TCI for upstream VLAN tagging. It is used when the upstream VLAN
+//			tagging operation mode is 1 or 2. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Downstream Vlan Tagging Operation Mode
+//			This attribute controls downstream VLAN tagging. Valid values are as follows.
+//
+//			0	Downstream frame is sent as is, regardless of tag.
+//
+//			1	If the received frame is tagged, the outer tag is stripped. An untagged frame is forwarded
+//			unchanged.
+//
+//			(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Association Type
+//			This attribute specifies the type of ME that is associated with this VLAN tagging operation
+//			configuration data ME. Values are assigned in accordance with the following list.
+//
+//			0	(Default) Physical path termination point Ethernet UNI (for backward compatibility, may also
+//			be an IP host config data ME; they must not have the same ME ID). The associated ME instance is
+//			implicit; its identifier is the same as that of this VLAN tagging operation configuration data.
+//
+//			1	IP host config data or IPv6 host config data
+//
+//			2	IEEE 802.1p mapper service profile
+//
+//			3	MAC bridge port configuration data
+//
+//			4	Physical path termination point xDSL UNI
+//
+//			5	GEM IW termination point
+//
+//			6	Multicast GEM IW termination point
+//
+//			7	Physical path termination point MoCA UNI
+//
+//			8	Reserved
+//
+//			9	Ethernet flow termination point
+//
+//			10	Physical path termination point Ethernet UNI
+//
+//			11	Virtual Ethernet interface point
+//
+//			12	MPLS pseudowire termination point
+//
+//			13	EFM bonding group
+//
+//			The associated ME instance is identified by the associated ME pointer. (R,-W, setbycreate)
+//			(optional) (1-byte)
+//
+//		Associated Me Pointer
+//			When the association type attribute is non-zero, this attribute points to the ME with which this
+//			VLAN tagging operation configuration data ME is associated. Otherwise, this attribute is
+//			undefined, and the association is implicit through the ME ID. (R,-W, setbycreate) (optional)
+//			(2-bytes)
+//
+//			NOTE 2 - Implicit association is retained for legacy compatibility. Explicit pointers are
+//			preferred for new implementations.
+//
+//			NOTE 3 - When the association type is xDSL, the two MSBs may be used to indicate a bearer
+//			channel.
+//
+type VlanTaggingOperationConfigurationData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	vlantaggingoperationconfigurationdataBME = &ManagedEntityDefinition{
+		Name:    "VlanTaggingOperationConfigurationData",
+		ClassID: 78,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewVlanTaggingOperationConfigurationData (class ID 78) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewVlanTaggingOperationConfigurationData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*vlantaggingoperationconfigurationdataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/voiceserviceprofile.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/voiceserviceprofile.go
new file mode 100644
index 0000000..d9827ed
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/voiceserviceprofile.go
@@ -0,0 +1,288 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// VoiceServiceProfileClassID is the 16-bit ID for the OMCI
+// Managed entity Voice service profile
+const VoiceServiceProfileClassID = ClassID(58) // 0x003a
+
+var voiceserviceprofileBME *ManagedEntityDefinition
+
+// VoiceServiceProfile (Class ID: #58 / 0x003a)
+//	This ME organizes data that describe the voice service functions of the ONU. Instances of this
+//	ME are created and deleted by the OLT.
+//
+//	Relationships
+//		An instance of this ME may be associated with zero or more instances of a VoIP voice CTP by way
+//		of a VoIP media profile.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Announcement Type
+//			This attribute specifies the treatment when a subscriber goes off hook but does not attempt a
+//			call within the dial-tone timeout interval. Valid values include the following.
+//
+//			0x01	Silence
+//
+//			0x02	Reorder tone
+//
+//			0x03	Fast busy
+//
+//			0x04	Voice announcement
+//
+//			0xFF	Not specified; ONU is free to make its own choice.
+//
+//			(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Jitter Target
+//			This attribute specifies the target value of the jitter buffer in milliseconds. The system tries
+//			to maintain the jitter buffer at the target value. The value 0 specifies dynamic jitter buffer
+//			sizing. (R,-W, setbycreate) (optional) (2-bytes)
+//
+//		Jitter Buffer Max
+//			This attribute specifies the maximum depth of the jitter buffer associated with this service in
+//			milliseconds. The value 0 specifies that the ONU uses its internal default. (R,-W, set-by-
+//			create) (optional) (2-bytes)
+//
+//		Echo Cancel Ind
+//			The Boolean value true specifies that echo cancellation is on; false specifies off. (R,-W,
+//			setbycreate) (mandatory) (1-byte)
+//
+//		Pstn Protocol Variant
+//			This attribute controls which variant of POTS signalling is used on the associated UNIs. Its
+//			value is equal to the [ITU-T E.164] country code. The value 0 specifies that the ONU uses its
+//			internal default. (R,-W, set-by-create) (optional) (2-bytes)
+//
+//		Dtmf Digit Levels
+//			This attribute specifies the power level of DTMF digits that may be generated by the ONU towards
+//			the subscriber set. It is a 2s complement value referred to 1-mW at the 0 transmission level
+//			point (TLP) (dBm0), with resolution 1-dB. The default value 0x8000 selects the ONU's internal
+//			policy. (R, W, setbycreate) (optional) (2-bytes)
+//
+//		Dtmf Digit Duration
+//			This attribute specifies the duration of DTMF digits that may be generated by the ONU towards
+//			the subscriber set. It is specified in milliseconds. The default value 0 selects the ONU's
+//			internal policy. (R, W, setbycreate) (optional) (2 bytes)
+//
+//		Hook Flash Minimum Time
+//			This attribute defines the minimum duration recognized by the ONU as a switchhook flash. It is
+//			expressed in milliseconds; the default value 0 selects the ONU's internal policy. (R, W,
+//			setbycreate) (optional) (2 bytes)
+//
+//		Hook Flash Maximum Time
+//			This attribute defines the maximum duration recognized by the ONU as a switchhook flash. It is
+//			expressed in milliseconds; the default value 0 selects the ONU's internal policy. (R, W,
+//			setbycreate) (optional) (2 bytes)
+//
+//		Tone Pattern Table
+//			This attribute is a table, each of whose entries specifies a complex tone (or silence) and a
+//			duration. By linking tones and silence together, possibly cyclically, continuous, varying or
+//			interrupted tone sequences, repetitive or not, may be defined. A tone sequence is initiated by
+//			pointing to the first tone pattern table entry that defines its parameters. Each entry is a
+//			vector comprising the following components.
+//
+//			Index (1 byte): This component is simply an index into the table. It ranges from 1..255. In a
+//			set operation, the value 0 in this field clears the table.
+//
+//			Tone on (1 byte): This Boolean component controls whether the tone is on (true) or off. If the
+//			tone is off, the frequency and power fields are not meaningful.
+//
+//			Frequency 1 (2 bytes): This component specifies the frequency of one of the tone components in
+//			hertz.
+//
+//			Power 1 (1 byte): This component specifies the power level of the corresponding frequency
+//			component. It ranges from 0 (coded as 0) to  -25.5 (coded as 255)-dBm0 with 0.1-dB resolution.
+//
+//			Three additional pairs of frequency-power components may be specified to define a complex tone.
+//			If a pair of possibilities is not to be used, its frequency field should be set to 0.
+//
+//			Frequency 2 (2 bytes)
+//
+//			Power 2 (1 byte)
+//
+//			Frequency 3 (2 bytes)
+//
+//			Power 3 (1 byte)
+//
+//			Frequency 4 (2 bytes)
+//
+//			Power 4 (1 byte)
+//
+//			The following pair of frequency-power components allows the composite tone to be modulated
+//			(warble effect). If this effect is not to be used, the frequency should be set to 0.
+//
+//			Modulation frequency (2 bytes), hertz
+//
+//			Modulation power (1 byte), 0..25.5-dBm0
+//
+//			Duration (2 bytes): This component specifies the duration of the phase, in milliseconds. The
+//			value 0 specifies that the phase endures indefinitely, i.e., until terminated by other events
+//			such as call abandonment.
+//
+//			Next entry (1 byte): This component is a pointer to another entry in this same table, which
+//			permits sequences of tones to be defined, possibly cyclically. A reference to a non-existent
+//			table entry, or the value 0, indicates that the sequence should be terminated.
+//
+//			(R,-W) (optional) (N * 20 bytes)
+//
+//		Tone Event Table
+//			This attribute is a table, each of whose entries specifies an event for which a tone is defined.
+//			If the tone can be synthesized by a sequence of complex tones and silence, the event refers to
+//			an entry in the tone pattern table. Otherwise, the event refers to a file name that is expected
+//			to be recognized by the ONU environment. Each entry in the tone event table is a vector
+//			comprising the following components.
+//
+//			Event (1 byte): This component is an enumeration of the events for which a tone may be defined.
+//			The event component also serves as the index for the table. A set operation to event 0 causes
+//			the table to be cleared.
+//
+//			Tone pattern (1 byte): This component specifies an entry point into the tone pattern table
+//			attribute, to be invoked when the specified event occurs. The value 0 indicates that no tone
+//			from the tone pattern table is to be played.
+//
+//			Tone file (2 bytes): This component points to a large string ME that contains the path and name
+//			of a file containing a codec sequence to be played out. If no file is found after traversing
+//			these links, no tone is played. The behaviour is unspecified if both tone pattern and tone file
+//			are specified.
+//
+//			Tone file repetitions (1 byte): This component specifies the number of times the tone file is to
+//			be repeated. The value 0 means that the file is to be repeated indefinitely until terminated by
+//			some external event such as call abandonment.
+//
+//			Reserved (2 bytes)
+//
+//			(R,-W) (optional) (N * 7 bytes).
+//
+//		Ringing Pattern Table
+//			This attribute is a table, each of whose entries specifies a ringing pattern and a duration. By
+//			linking ringing and silence together, possibly cyclically, continuous or interrupted ringing
+//			sequences, repetitive or not, may be defined. A ringing sequence is initiated by pointing to the
+//			first ringing pattern table entry that defines its parameters. Each entry is a vector comprising
+//			the following components.
+//
+//			Index (1 byte): This component is simply an index into the table. It ranges from 1..255. In a
+//			set operation, the value 0 in this field clears the table.
+//
+//			Ringing on (1 byte): This Boolean component controls whether ringing is on (true) or off during
+//			this interval.
+//
+//			Duration (2 bytes): This component specifies the duration of the ringing phase, in milliseconds.
+//			The value 0 specifies that the phase endures indefinitely, i.e., until terminated by other
+//			events such as call abandonment.
+//
+//			Next entry (1 byte): This component is a pointer to another entry in this same table, which
+//			permits sequences of ringing bursts to be defined, possibly cyclically. A reference to a non-
+//			existent table entry, or the value 0, indicates that the sequence should be terminated.
+//
+//			(R,-W) (optional) (N * 5 bytes).
+//
+//		Ringing Event Table
+//			This attribute is a table, each of whose entries specifies an event for which a ringing sequence
+//			is defined. If the ringing sequence can be generated as a sequence of power ringing and silent
+//			intervals, the event refers to an entry in the ringing pattern table. Otherwise, the event
+//			refers to a file name that is expected to be recognized by the ONU environment. Each entry is a
+//			vector comprising the following components:
+//
+//			Event (1 byte): This component is an enumeration of the events for which a ringing sequence may
+//			be defined. The event component also serves as the index for the table. A set operation with the
+//			value 0 in this field causes the table to be cleared.
+//
+//			Ringing pattern (1 byte): This component specifies an entry point into the ringing pattern table
+//			attribute, to be invoked when the specified event occurs. The value 0 indicates that no ringing
+//			sequence is defined in the ringing pattern table.
+//
+//			Ringing file (2 bytes): This component points to a large string ME that contains the path and
+//			name of a file containing a ring tone to be played out. If no file is found after traversing
+//			these links, no ringing is played. The behaviour is unspecified if both ringing pattern and
+//			ringing file fields are specified.
+//
+//			Ringing file repetitions (1 byte): This component specifies the number of times the ringing file
+//			is to be repeated. The value 0 means that the file is to be repeated indefinitely until
+//			terminated by some external event such as call abandonment.
+//
+//			Ringing text (2 bytes): This component points to a large string ME that contains a text string
+//			to be displayed on the CPE device in conjunction with this event. A null pointer indicates that
+//			no text is to be displayed.
+//
+//			(R,-W) (optional) (N * 7 bytes).
+//
+//		Network Specific Extensions Pointer
+//			This attribute points to a network address ME that contains the path and name of a file
+//			containing network specific parameters for the associated UNIs. The default value for this
+//			attribute is 0xFFFF, a null pointer. (R,-W, set-by-create) (optional) (2-bytes)
+//
+type VoiceServiceProfile struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	voiceserviceprofileBME = &ManagedEntityDefinition{
+		Name:    "VoiceServiceProfile",
+		ClassID: 58,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			GetNext,
+			Set,
+			SetTable,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			1: "File not found",
+		},
+	}
+}
+
+// NewVoiceServiceProfile (class ID 58) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewVoiceServiceProfile(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*voiceserviceprofileBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/voipapplicationserviceprofile.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/voipapplicationserviceprofile.go
new file mode 100644
index 0000000..2eb1fec
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/voipapplicationserviceprofile.go
@@ -0,0 +1,206 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// VoipApplicationServiceProfileClassID is the 16-bit ID for the OMCI
+// Managed entity VoIP application service profile
+const VoipApplicationServiceProfileClassID = ClassID(146) // 0x0092
+
+var voipapplicationserviceprofileBME *ManagedEntityDefinition
+
+// VoipApplicationServiceProfile (Class ID: #146 / 0x0092)
+//	The VoIP application service profile defines attributes of calling features used in conjunction
+//	with a VoIP line service. It is optional for ONUs that support VoIP services. If a non-OMCI
+//	interface is used to manage SIP for VoIP, this ME is unnecessary.
+//
+//	An instance of this ME is created and deleted by the OLT. A VoIP application service profile
+//	instance is needed for each unique set of profile attributes.
+//
+//	Relationships
+//		An instance of this ME is associated with zero or more SIP user data MEs.
+//
+//	Attributes
+//		Managed Entity Id
+//			Managed entity ID:-This attribute uniquely identifies each instance of this ME. (R,-setbycreate)
+//			(mandatory) (2 bytes)
+//
+//		Cid Features
+//			This attribute contains a bit map of caller ID features. Except as noted, the bit value 0
+//			disables the feature; 1 enables it.
+//
+//			0x01	Calling number
+//
+//			0x02	Calling name
+//
+//			0x04	CID blocking (both number and name)
+//
+//			0x08	CID number - Permanent presentation status for number (0 = public, 1 = private)
+//
+//			0x10	CID name - Permanent presentation status for name  (0 = public, 1 = private)
+//
+//			0x20	Anonymous CID blocking (ACR). It may not be possible to support this in the ONU.
+//
+//			0x40..0x80	Not used
+//
+//			The recommended default value is 0x00. (R, W, setbycreate) (mandatory) (1-byte)
+//
+//		Call Waiting Features
+//			The recommended default value is 0x00. (R,-W, setbycreate) (mandatory) (1-byte)
+//
+//			This attribute contains a bit map of call waiting features. The bit value 0 disables the
+//			feature; 1 enables it.
+//
+//			0x01	Call waiting
+//
+//			0x02	Caller ID announcement
+//
+//			0x04..0x80	Not used
+//
+//		Call Progress Or Transfer Features
+//			This attribute is a bit map of call processing features. The bit value 0 disables the feature; 1
+//			enables it.
+//
+//			0x0001	3way
+//
+//			0x0002	Call transfer
+//
+//			0x0004	Call hold
+//
+//			0x0008	Call park
+//
+//			0x0010	Do not disturb
+//
+//			0x0020	Flash on emergency service call (flash is to be processed during an emergency service
+//			call)
+//
+//			0x0040	Emergency service originating hold (determines whether call clearing is to be performed
+//			on on-hook during an emergency service call)
+//
+//			0x0080	6way
+//
+//			0x0100..0x8000	Not used
+//
+//			The recommended default value is 0x0000. (R, W, setbycreate) (mandatory) (2-bytes)
+//
+//		Call Presentation Features
+//			This attribute is a bit map of call presentation features. The bit value 0 disables the feature;
+//			1 enables it.
+//
+//			0x0001	Message waiting indication splash ring
+//
+//			0x0002	Message waiting indication special dial tone
+//
+//			0x0004	Message waiting indication visual indication
+//
+//			0x0008	Call forwarding indication
+//
+//			0x0010	DC voltage based visual message waiting indicator (vmwi) (e.g., neon lamp on a phone to
+//			indicate a message waiting).  For backwards compatibility reasons, the value 0x0010 is a
+//			companion value to 0x0004. If an ONU does not support DC voltage vmwi, the ONU uses other
+//			existing vmwi methods. If the ONU supports DC voltage vmwi and needs to apply DC voltage to turn
+//			on the phone lamp (to indicate message waiting), the values 0x0004 and 0x0010 are set.
+//
+//			0x0020..0x8000	Not used
+//
+//			The recommended default value is 0x0000. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Direct Connect Feature
+//			This attribute is a bit map of characteristics associated with the direct connect feature. The
+//			bit value 0 disables the feature; 1 enables it.
+//
+//			0x01	Direct connect feature enabled
+//
+//			0x02	Dial tone feature delay option
+//
+//			The recommended default value is 0x00. (R, W, setbycreate) (mandatory) (1-byte)
+//
+//		Direct Connect Uri Pointer
+//			This attribute points to a network address ME that specifies the URI of the direct connect. If
+//			this attribute is set to a null pointer, no URI is defined. (R, W, setbycreate) (mandatory) (2
+//			bytes)
+//
+//		Bridged Line Agent Uri Pointer
+//			This attribute points to a network address ME that specifies the URI of the bridged line agent.
+//			If this attribute is set to a null pointer, no URI is defined. (R, W, setbycreate) (mandatory)
+//			(2 bytes)
+//
+//		Conference Factory Uri Pointer
+//			This attribute points to a network address ME that specifies the URI of the conference factory.
+//			If this attribute is set to a null pointer, no URI is defined. (R, W, setbycreate) (mandatory)
+//			(2 bytes)
+//
+//		Dial Tone Feature Delay_Warmline Timer New
+//			Dial tone feature delay/warmline timer (new): This attribute defines the warmline timer/dial
+//			tone feature delay timer (seconds). The default value 0 specifies vendor-specific
+//			implementation. (R, W) (optional) (2 bytes)
+//
+//		Ip Host Pointer
+//			This attribute points to the IP host config data or IPv6 host config data ME associated with
+//			this VoIP config data ME. This attribute is only relevant when the VoIP configuration method
+//			used attribute of this ME is set to configuration file retrieval (2) OR IETF sipping config
+//			framework (4). Upon instantiation ONU sets this value to NULL (0xFFFF) pointer. (R, W)
+//			(optional) (2 bytes)
+//
+type VoipApplicationServiceProfile struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	voipapplicationserviceprofileBME = &ManagedEntityDefinition{
+		Name:    "VoipApplicationServiceProfile",
+		ClassID: 146,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewVoipApplicationServiceProfile (class ID 146) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewVoipApplicationServiceProfile(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*voipapplicationserviceprofileBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/voipconfigdata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/voipconfigdata.go
new file mode 100644
index 0000000..0e8f60e
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/voipconfigdata.go
@@ -0,0 +1,202 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// VoipConfigDataClassID is the 16-bit ID for the OMCI
+// Managed entity VoIP config data
+const VoipConfigDataClassID = ClassID(138) // 0x008a
+
+var voipconfigdataBME *ManagedEntityDefinition
+
+// VoipConfigData (Class ID: #138 / 0x008a)
+//	The VoIP configuration data ME defines the configuration for VoIP in the ONU. The OLT uses this
+//	ME to discover the VoIP signalling protocols and configuration methods supported by this ONU.
+//	The OLT then uses this ME to select the desired signalling protocol and configuration method.
+//	The entity is conditionally required for ONUs that offer VoIP services.
+//
+//	An ONU that supports VoIP services automatically creates an instance of this ME.
+//
+//	Relationships
+//		One instance of this ME is associated with the ONU.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. There is only one instance, number
+//			0. (R) (mandatory) (2-bytes)
+//
+//		Available Signalling Protocols
+//			This attribute is a bit map that defines the VoIP signalling protocols supported in the ONU. The
+//			bit value 1 specifies that the ONU supports the associated protocol.
+//
+//			1	(LSB)	SIP
+//
+//			2	ITU-T H.248
+//
+//			3	MGCP
+//
+//			(R) (mandatory) (1-byte)
+//
+//		Signalling Protocol Used
+//			0xFF	Selected by non-OMCI management interface
+//
+//			(R,-W) (mandatory) (1-byte)
+//
+//			This attribute specifies the VoIP signalling protocol to use. Only one type of protocol is
+//			allowed at a time. Valid values are:
+//
+//			0	None
+//
+//			1	SIP
+//
+//			2	ITU-T H.248
+//
+//			3	MGCP
+//
+//		Available Voip Configuration Methods
+//			This attribute is a bit map that indicates the capabilities of the ONU with regard to VoIP
+//			service configuration. The bit value 1 specifies that the ONU supports the associated
+//			capability.
+//
+//			1 (LSB)	ONU capable of using the OMCI to configure its VoIP services.
+//
+//			2	ONU capable of working with configuration file retrieval to configure its VoIP services.
+//
+//			3	ONU capable of working with [BBF TR-069] to configure its VoIP services.
+//
+//			4	ONU capable of working with IETF sipping config framework to configure its VoIP services.
+//
+//			Bits 5..24 are reserved by ITU-T. Bits 25..32 are reserved for proprietary vendor configuration
+//			capabilities. (R) (mandatory) (4-bytes)
+//
+//		Voip Configuration Method Used
+//			Specifies which method is used to configure the ONU's VoIP service.
+//
+//			0	Do not configure - ONU default
+//
+//			1	OMCI
+//
+//			2	Configuration file retrieval
+//
+//			3	BBF TR-069
+//
+//			4	IETF sipping config framework
+//
+//			5..240	Reserved by ITU-T
+//
+//			241..255	Reserved for proprietary vendor configuration methods
+//
+//			(R,-W) (mandatory) (1-byte)
+//
+//		Voip Configuration Address Pointer
+//			If this attribute is set to any value other than a null pointer, it points to a network address
+//			ME, which indicates the address of the server to contact using the method indicated in the VoIP
+//			configuration method used attribute. This attribute is only relevant for non-OMCI configuration
+//			methods.
+//
+//			If this attribute is set to a null pointer, no address is defined by this attribute. However,
+//			the address may be defined by other methods, such as deriving it from the ONU identifier
+//			attribute of the IP host config data ME and using a well-known URI schema.
+//
+//			The default value is 0xFFFF (R,-W) (mandatory) (2-bytes)
+//
+//		Voip Configuration State
+//			Indicates the status of the ONU VoIP service.
+//
+//			0	Inactive: configuration retrieval has not been attempted
+//
+//			1	Active: configuration was retrieved
+//
+//			2	Initializing: configuration is now being retrieved
+//
+//			3	Fault: configuration retrieval process failed
+//
+//			Other values are reserved. At ME instantiation, the ONU sets this attribute to 0. (R)
+//			(mandatory) (1-byte)
+//
+//		Retrieve Profile
+//			This attribute provides a means by which the ONU may be notified that a new VoIP profile should
+//			be retrieved. By setting this attribute, the OLT triggers the ONU to retrieve a new profile. The
+//			actual value in the set action is ignored because it is the action of setting that is important.
+//			(W) (mandatory) (1-byte)
+//
+//		Profile Version
+//			This attribute is a character string that identifies the version of the last retrieved profile.
+//			(R) (mandatory) (25-bytes)
+//
+type VoipConfigData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	voipconfigdataBME = &ManagedEntityDefinition{
+		Name:    "VoipConfigData",
+		ClassID: 138,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0:  "VCD config server name",
+			1:  "VCD config server reach",
+			2:  "VCD config server connect",
+			3:  "VCD config server validate",
+			4:  "VCD config server auth",
+			5:  "VCD config server timeout",
+			6:  "VCD config server fail",
+			7:  "VCD config file error",
+			8:  "VCD subscription name",
+			9:  "VCD subscription reach",
+			10: "VCD subscription connect",
+			11: "VCD subscription validate",
+			12: "VCD subscription auth",
+			13: "VCD subscription timeout",
+			14: "VCD subscription fail",
+			15: "VCD reboot request",
+		},
+	}
+}
+
+// NewVoipConfigData (class ID 138) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewVoipConfigData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*voipconfigdataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/voipfeatureaccesscodes.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/voipfeatureaccesscodes.go
new file mode 100644
index 0000000..1b8f0ac
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/voipfeatureaccesscodes.go
@@ -0,0 +1,130 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// VoipFeatureAccessCodesClassID is the 16-bit ID for the OMCI
+// Managed entity VoIP feature access codes
+const VoipFeatureAccessCodesClassID = ClassID(147) // 0x0093
+
+var voipfeatureaccesscodesBME *ManagedEntityDefinition
+
+// VoipFeatureAccessCodes (Class ID: #147 / 0x0093)
+//	The VoIP feature access codes ME defines administrable feature access codes for the VoIP
+//	subscriber. It is optional for ONUs that support VoIP services. If a non-OMCI interface is used
+//	to manage VoIP signalling, this ME is unnecessary.
+//
+//	Instances of this ME are created and deleted by the OLT. A VoIP feature access codes instance is
+//	needed for each unique set of feature access code attributes.
+//
+//	Relationships
+//		An instance of this ME may be associated with one or more SIP user data MEs.
+//
+//	Attributes
+//		Managed Entity Id
+//			The remaining attributes are access codes for the features mentioned in their names. Each
+//			attribute is a string of characters from the set {0..9, *, #}, with trailing nulls in any unused
+//			bytes.
+//
+//			This attribute uniquely identifies each instance of this ME. (R) (mandatory) (2-bytes)
+//
+//		Cancel Call Waiting
+//			(R,-W) (optional) (5-bytes)
+//
+//		Call Hold
+//				(R,-W) (optional) (5-bytes)
+//
+//		Call Park
+//				(R,-W) (optional) (5-bytes)
+//
+//		Caller Id Activate
+//			(R,-W) (optional) (5-bytes)
+//
+//		Caller Id Deactivate
+//			(R,-W) (optional) (5-bytes)
+//
+//		Do Not Disturb Activation
+//			(R,-W) (optional) (5-bytes)
+//
+//		Do Not Disturb Deactivation
+//			(R,-W) (optional) (5-bytes)
+//
+//		Do Not Disturb Pin Change
+//			(R,-W) (optional) (5-bytes)
+//
+//		Emergency Service Number
+//			(R,-W) (optional) (5-bytes)
+//
+//		Intercom Service
+//			(R,-W) (optional) (5-bytes)
+//
+//		Unattended_Blind Call Transfer
+//			Unattended/blind call transfer:	(R, W) (optional) (5 bytes)
+//
+//		Attended Call Transfer
+//			(R, W) (optional) (5 bytes)
+//
+type VoipFeatureAccessCodes struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	voipfeatureaccesscodesBME = &ManagedEntityDefinition{
+		Name:    "VoipFeatureAccessCodes",
+		ClassID: 147,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewVoipFeatureAccessCodes (class ID 147) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewVoipFeatureAccessCodes(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*voipfeatureaccesscodesBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/voiplinestatus.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/voiplinestatus.go
new file mode 100644
index 0000000..623b83e
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/voiplinestatus.go
@@ -0,0 +1,240 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// VoipLineStatusClassID is the 16-bit ID for the OMCI
+// Managed entity VoIP line status
+const VoipLineStatusClassID = ClassID(141) // 0x008d
+
+var voiplinestatusBME *ManagedEntityDefinition
+
+// VoipLineStatus (Class ID: #141 / 0x008d)
+//	The VoIP line status ME contains line status information for POTS ports using VoIP services. An
+//	ONU that supports VoIP automatically creates or deletes an instance of this ME upon creation or
+//	deletion of a PPTP POTS UNI.
+//
+//	Relationships
+//		An instance of this ME is associated with a PPTP POTS UNI.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the PPTP POTS UNI. (R) (mandatory) (2-bytes)
+//
+//		Voip Codec Used
+//			Reports the current codec used for a VoIP POTS port. Valid values are taken from [IETF RFC
+//			3551], and are the same as specified in the codec selection attribute of the VoIP media profile.
+//			This attribute is meaningful only if the VoIP port session type attribute is not idle.
+//
+//			0	PCMU
+//
+//			1	reserved
+//
+//			2	reserved
+//
+//			3	GSM
+//
+//			4	ITU-T G.723
+//
+//			5	DVI4, 8 kHz
+//
+//			6	DVI4, 16 kHz
+//
+//			7	LPC
+//
+//			8	PCMA
+//
+//			9	ITU-T G.722
+//
+//			10	L16, 2 channels
+//
+//			11	L16, 1 channel
+//
+//			12	QCELP
+//
+//			13	CN
+//
+//			14	MPA
+//
+//			15	ITU-T G.728
+//
+//			16	DVI4, 11.025 kHz
+//
+//			17	DVI4, 22.050 kHz
+//
+//			18	ITU-T G.729
+//
+//			(R) (mandatory) (2-bytes)
+//
+//		Voip Voice Server Status
+//			14	Config done
+//
+//			15	Disabled by switch
+//
+//			(R) (mandatory) (1-byte)
+//
+//			Status of the VoIP session for this POTS port:
+//
+//			0	None/initial
+//
+//			1	Registered
+//
+//			2	In session
+//
+//			3	Failed registration - icmp error
+//
+//			4	Failed registration - failed tcp
+//
+//			5	Failed registration - failed authentication
+//
+//			6	Failed registration - timeout
+//
+//			7	Failed registration - server fail code
+//
+//			8	Failed invite - icmp error
+//
+//			9	Failed invite - failed tcp
+//
+//			10	Failed invite - failed authentication
+//
+//			11	Failed invite - timeout
+//
+//			12	Failed invite - server fail code
+//
+//			13	Port not configured
+//
+//		Voip Port Session Type
+//			This attribute reports the current state of a VoIP POTS port session:
+//
+//			0	Idle/none
+//
+//			1	2way
+//
+//			2	3way
+//
+//			3	Fax/modem
+//
+//			4	Telemetry
+//
+//			5	Conference
+//
+//			(R) (mandatory) (1-byte)
+//
+//		Voip Call 1 Packet Period
+//			This attribute reports the packet period for the first call on the VoIP POTS port. The value is
+//			defined in milliseconds. (R) (mandatory) (2-bytes)
+//
+//		Voip Call 2 Packet Period
+//			This attribute reports the packet period for the second call on the VoIP POTS port. The value is
+//			defined in milliseconds. (R) (mandatory) (2-bytes)
+//
+//		Voip Call 1 Dest Addr
+//			This attribute reports the DA for the first call on the VoIP POTS port. The value is an ASCII
+//			string. (R) (mandatory) (25-bytes)
+//
+//		Voip Call 2 Dest Addr
+//			This attribute reports the DA for the second call on the VoIP POTS port. The value is an ASCII
+//			string. (R) (mandatory) (25-bytes)
+//
+//		Voip Line State
+//			This attribute reports the state of the POTS line. This attribute may not be meaningful if the
+//			POTS port is administratively locked, is operationally disabled, or is being tested. Code points
+//			are assigned as follows:
+//
+//			0	Idle, on-hook
+//
+//			1	Off-hook dial tone
+//
+//			2 	Dialling
+//
+//			3	Ringing or FSK alerting/data
+//
+//			4	Audible ringback
+//
+//			5	Connecting
+//
+//			6	Connected
+//
+//			7	Disconnecting, audible indication
+//
+//			8	ROH, no tone
+//
+//			9	ROH with tone
+//
+//			10	Unknown or undefined
+//
+//			(R) (optional) (1 byte)
+//
+//		Emergency Call Status
+//			(R) (Optional) (1-byte)
+//
+//			This attribute reports the current state of an emergency call session (when the ONU is the call
+//			originator) on the VoIP POTS port. The ONU determines the presence of an originating emergency
+//			call on the basis of the Emergency service number attribute of the VoIP feature access codes ME.
+//
+//			0--- No emergency call in progress
+//
+//			1--- Emergency call in progress
+//
+//			NOTE - The ONU may also be able to determine the presence of an emergency call on the basis of
+//			other, unspecified information.
+//
+type VoipLineStatus struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	voiplinestatusBME = &ManagedEntityDefinition{
+		Name:    "VoipLineStatus",
+		ClassID: 141,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewVoipLineStatus (class ID 141) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewVoipLineStatus(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*voiplinestatusBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/voipmediaprofile.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/voipmediaprofile.go
new file mode 100644
index 0000000..e450946
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/voipmediaprofile.go
@@ -0,0 +1,162 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// VoipMediaProfileClassID is the 16-bit ID for the OMCI
+// Managed entity VoIP media profile
+const VoipMediaProfileClassID = ClassID(142) // 0x008e
+
+var voipmediaprofileBME *ManagedEntityDefinition
+
+// VoipMediaProfile (Class ID: #142 / 0x008e)
+//	The VoIP media profile ME contains settings that apply to VoIP voice encoding. This entity is
+//	conditionally required for ONUs that offer VoIP services. If a non-OMCI interface is used to
+//	manage VoIP signalling, this ME is unnecessary.
+//
+//	An instance of this ME is created and deleted by the OLT. A VoIP media profile is needed for
+//	each unique set of profile attributes.
+//
+//	Relationships
+//		An instance of this ME may be associated with one or more VoIP voice CTP MEs.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Fax Mode
+//			Selects the fax mode; values are as follows.
+//
+//			0	Passthru
+//
+//			1	ITU-T T.38
+//
+//			(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Voice Service Profile Pointer
+//			Pointer to a voice service profile, which defines parameters such as jitter buffering and echo
+//			cancellation. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Codec Selection 1st Order
+//			Codec selection (1st order): This attribute specifies codec selection as defined by [IETF-
+//			RFC-3551].
+//
+//			(R,-W, set-by-create) (mandatory) (1-byte)
+//
+//		Packet Period Selection 1st Order
+//			Packet period selection (1st order): This attribute specifies the packet period selection
+//			interval in milliseconds. The recommended default value is 10-ms. Valid values are 10..30-ms.
+//			(R,-W, set-by-create) (mandatory) (1-byte)
+//
+//		Silence Suppression 1st Order
+//			Silence suppression (1st order): This attribute specifies whether silence suppression is on or
+//			off. Valid values are 0-= off and 1-= on. (R,-W, set-by-create) (mandatory) (1-byte)
+//
+//			Three more groups of three attributes are defined, with definitions identical to the preceding
+//			three:
+//
+//		Codec Selection 2nd Order
+//			Codec selection (2nd order):	(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Packet Period Selection 2nd Order
+//			Packet period selection (2nd order):	(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Silence Suppression 2nd Order
+//			Silence suppression (2nd order):	(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Codec Selection 3rd Order
+//			Codec selection (3rd order):	(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Packet Period Selection 3rd Order
+//			Packet period selection (3rd order):	(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Silence Suppression 3rd Order
+//			Silence suppression (3rd order):	(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Codec Selection 4th Order
+//			Codec selection (4th order):	(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Packet Period Selection 4th Order
+//			Packet period selection (4th order):	(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Silence Suppression 4th Order
+//			Silence suppression (4th order):	(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Oob Dtmf
+//			This attribute specifies out-of-band DMTF carriage. When enabled (1), DTMF signals are carried
+//			out of band via RTP or the associated signalling protocol. When disabled (0), DTMF tones are
+//			carried in the PCM stream. (R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Rtp Profile Pointer
+//			This attribute points to the associated RTP profile data ME. (R,-W, setbycreate) (mandatory)
+//			(2-bytes)
+//
+type VoipMediaProfile struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	voipmediaprofileBME = &ManagedEntityDefinition{
+		Name:    "VoipMediaProfile",
+		ClassID: 142,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewVoipMediaProfile (class ID 142) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewVoipMediaProfile(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*voipmediaprofileBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/voipvoicectp.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/voipvoicectp.go
new file mode 100644
index 0000000..3dbb0c9
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/voipvoicectp.go
@@ -0,0 +1,116 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// VoipVoiceCtpClassID is the 16-bit ID for the OMCI
+// Managed entity VoIP voice CTP
+const VoipVoiceCtpClassID = ClassID(139) // 0x008b
+
+var voipvoicectpBME *ManagedEntityDefinition
+
+// VoipVoiceCtp (Class ID: #139 / 0x008b)
+//	The VoIP voice CTP defines the attributes necessary to associate a specified VoIP service (SIP,
+//	ITUT-H.248) with a POTS UNI. This entity is conditionally required for ONUs that offer VoIP
+//	services. If a non-OMCI interface is used to manage VoIP signalling, this ME is unnecessary.
+//
+//	An instance of this ME is created and deleted by the OLT. A VoIP voice CTP ME is needed for each
+//	PPTP POTS UNI served by VoIP.
+//
+//	Relationships
+//		An instance of this ME links a PPTP POTS UNI ME with a VoIP media profile and a SIP user data or
+//		media gateway controller (MGC) config data ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		User Protocol Pointer
+//			This attribute points to signalling protocol data. If the signalling protocol used attribute of
+//			the VoIP config data ME specifies that the ONU's signalling protocol is SIP, this attribute
+//			points to a SIP user data ME, which in turn points to a SIP agent config data ME. If the
+//			signalling protocol is ITU-T-H.248, this attribute points directly to an MGC config data ME.
+//			(R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Pptp Pointer
+//			This attribute points to the PPTP POTS UNI ME that serves the analogue telephone port. (R,-W,
+//			setbycreate) (mandatory) (2-bytes)
+//
+//		V O Ip Media Profile Pointer
+//			VoIP media profile pointer: This attribute points to an associated VoIP media profile. (R,-W,
+//			setbycreate) (mandatory) (2-bytes)
+//
+//		Signalling Code
+//			3	Loop reverse battery
+//
+//			4	Coin first
+//
+//			5	Dial tone first
+//
+//			6	Multi-party
+//
+//			(R,-W, setbycreate) (mandatory) (1-byte)
+//
+//			This attribute specifies the POTS-side signalling as follows.
+//
+//			1	Loop start
+//
+//			2	Ground start
+//
+type VoipVoiceCtp struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	voipvoicectpBME = &ManagedEntityDefinition{
+		Name:    "VoipVoiceCtp",
+		ClassID: 139,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewVoipVoiceCtp (class ID 139) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewVoipVoiceCtp(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*voipvoicectpBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/vpnetworkctp.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/vpnetworkctp.go
new file mode 100644
index 0000000..37964fb
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/vpnetworkctp.go
@@ -0,0 +1,120 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// VpNetworkCtpClassID is the 16-bit ID for the OMCI
+// Managed entity VP network CTP
+const VpNetworkCtpClassID = ClassID(269) // 0x010d
+
+var vpnetworkctpBME *ManagedEntityDefinition
+
+// VpNetworkCtp (Class ID: #269 / 0x010d)
+//	NOTE - In [ITU-T G.984.4], this ME is called VP network CTP-G.
+//
+//	This ME represents the termination of VP links on an ONU. It aggregates connectivity
+//	functionality from the network view and alarms from the network element view as well as
+//	artefacts from trails. Instances of this ME are created and deleted by the OLT.
+//
+//	An instance of the VP network CTP ME can be deleted only when no ATM IW VCC TP is associated
+//	with it. It is the responsibility of the OLT to ensure that this condition is met.
+//
+//	Relationships
+//		Zero or more instances of the VP network CTP ME may exist for each instance of the IW VCC TP ME.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Vpi Value
+//			This attribute identifies the VPI value associated with the VP link being terminated. (R,-W,
+//			setbycreate) (mandatory) (2-bytes)
+//
+//		Uni Pointer
+//			This pointer indicates the xDSL PPTP UNI associated with this VP TP. The bearer channel may be
+//			indicated by the two MSBs of the pointer. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Direction
+//			This attribute specifies whether the VP link is used for UNI-to-ANI (value-1), ANI-to-UNI
+//			(value-2), or bidirectional (value 3) connection. (R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Deprecated 1
+//			Not used; should be set to 0. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Deprecated 2
+//			Not used; should be set to 0. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Deprecated 3
+//			Not used; should be set to 0. (R,-W, setbycreate) (optional) (2-bytes)
+//
+//		Deprecated 4
+//			Not used; if present, should be set to 0. (R) (optional) (1-byte)
+//
+type VpNetworkCtp struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	vpnetworkctpBME = &ManagedEntityDefinition{
+		Name:    "VpNetworkCtp",
+		ClassID: 269,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "VP AIS LMIR",
+			1: "VP RDI LMIR",
+			2: "VP AIS LMIG",
+			3: "VP RDI LMIG",
+			4: "Segment loss of continuity",
+			5: "End-to-end loss of continuity",
+		},
+	}
+}
+
+// NewVpNetworkCtp (class ID 269) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewVpNetworkCtp(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*vpnetworkctpBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/vpperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/vpperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..aaf21f0
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/vpperformancemonitoringhistorydata.go
@@ -0,0 +1,127 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// VpPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity VP performance monitoring history data
+const VpPerformanceMonitoringHistoryDataClassID = ClassID(62) // 0x003e
+
+var vpperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// VpPerformanceMonitoringHistoryData (Class ID: #62 / 0x003e)
+//	This ME collects PM data associated with a VP network CTP. Instances of this ME are created and
+//	deleted by the OLT.
+//
+//	Relationships
+//		An instance of this ME is associated with an instance of the VP network CTP ME. The performance
+//		of upstream ATM flows is reported.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the VP network CTP. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 ME that
+//			contains PM threshold values. Since no threshold value attribute number exceeds 7, a threshold
+//			data 2 ME is optional. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Lost C 0 1 Cells
+//			Lost C-= 0-+ 1 cells: This attribute counts all cell loss. 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 information, independent of the priority of the cell. (R) (mandatory)
+//			(2-bytes)
+//
+//		Lost C_= 0 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)
+//
+//		Misinserted Cells
+//			This attribute counts cells that are misrouted to a monitored VP. (R) (mandatory) (2-bytes)
+//
+//		Transmitted C_= 0 _ 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 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)
+//
+//		Impaired Block
+//			Impaired blocks: This severely errored cell block counter is incremented whenever one of the
+//			following events takes place: the number of misinserted cells reaches its threshold; the number
+//			of bipolar violations reaches its threshold; or the number of lost cells reaches its threshold.
+//			Threshold values are based on vendor-operator negotiation. (R) (mandatory) (2-bytes)
+//
+type VpPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	vpperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "VpPerformanceMonitoringHistoryData",
+		ClassID: 62,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Lost CLP-= 0-+ 1 cells",
+			1: "Lost CLP-= 0 cells",
+			2: "Misinserted cells",
+			3: "Impaired blocks",
+		},
+	}
+}
+
+// NewVpPerformanceMonitoringHistoryData (class ID 62) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewVpPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*vpperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslchannelconfigurationprofile.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslchannelconfigurationprofile.go
new file mode 100644
index 0000000..a11f3da
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslchannelconfigurationprofile.go
@@ -0,0 +1,212 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// XdslChannelConfigurationProfileClassID is the 16-bit ID for the OMCI
+// Managed entity xDSL channel configuration profile
+const XdslChannelConfigurationProfileClassID = ClassID(107) // 0x006b
+
+var xdslchannelconfigurationprofileBME *ManagedEntityDefinition
+
+// XdslChannelConfigurationProfile (Class ID: #107 / 0x006b)
+//	This ME contains the channel configuration profile for an xDSL UNI. An instance of this ME is
+//	created and deleted by the OLT.
+//
+//	NOTE - If [ITUT G.997.1] compatibility is required, bit rates should only be set to integer
+//	multiples of 1000-bits/s. The ONU may reject attempts to set other values for bit rate
+//	attributes.
+//
+//	Relationships
+//		An instance of this ME may be associated with zero or more instances of the PPTP xDSL UNI part
+//		1.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. The value 0 is reserved. (R,
+//			setbycreate) (mandatory) (2-bytes)
+//
+//		Minimum Data Rate
+//			This parameter specifies the minimum desired net data rate for the bearer channel. It is coded
+//			in bits per second. (R,-W, setbycreate) (mandatory) (4-bytes)
+//
+//		Maximum Data Rate
+//			This parameter specifies the maximum desired net data rate for the bearer channel. It is coded
+//			in bits per second. (R,-W, setbycreate) (mandatory) (4-bytes)
+//
+//		Rate Adaptation Ratio
+//			This attribute specifies the weight that should be taken into account when performing rate
+//			adaptation in the direction of the bearer channel. The attribute is defined as a percentage. The
+//			value 20, for example, means that 20% of the available data rate (in excess of the minimum data
+//			rate summed over all bearer channels) is assigned to this bearer channel and 80% to the other
+//			bearer channels. The OLT must ensure that the sum of rate adaptation ratios over all bearers in
+//			one direction is 100%. (R,-W, setbycreate) (optional) (1-byte)
+//
+//		Maximum Interleaving Delay
+//			This attribute is the maximum one-way interleaving delay introduced by the PMS-TC between the
+//			alpha and the beta reference points, in the direction of the bearer channel. The one-way
+//			interleaving delay is defined in individual xDSL Recommendations as cap(S*D)-/4-ms, where S is
+//			the S factor, D is the interleaving depth, and cap() denotes rounding to the next higher
+//			integer. xTUs choose S and D values such that the actual one-way interleaving delay does not
+//			exceed the configured maximum interleaving delay.
+//
+//			The delay is coded in milliseconds, varying from 2 to 63, with special meaning assigned to
+//			values 0, 1 and 255. The value 0 indicates that no delay bound is imposed. The value 1 indicates
+//			the fast latency path is to be used in the ITUT G.992.1 operating mode and S and D are to be
+//			selected such that S- 1 and D-= 1 in ITU-T G.992.2, ITUT G.992.3, ITUT G.992.4, ITUT G.992.5 and
+//			ITUT G.993.2 operating modes. The value 255 indicates a delay bound of 1-ms in ITUT-G.993.2
+//			operation. (R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Data Rate Threshold Upshift
+//			This attribute is a threshold on the cumulative data rate upshift achieved over one or more
+//			bearer channel data rate adaptations. An upshift rate change (DRT up) notification is issued by
+//			the PPTP xDSL UNI part 1 when the actual data rate exceeds the data rate at the last entry into
+//			showtime by more than the threshold. The data rate threshold is coded in bits per second. (R,-W,
+//			setbycreate) (mandatory for xDSL standards that use this attribute) (4-bytes)
+//
+//		Data Rate Threshold Downshift
+//			This attribute is a threshold on the cumulative data rate downshift achieved over one or more
+//			bearer channel data rate adaptations. A downshift rate change (DRT down) notification is issued
+//			by the PPTP xDSL UNI part 1 when the actual data rate is below the data rate at the last entry
+//			into showtime by more than the threshold. The data rate threshold is coded in bits per second.
+//			(R,-W, setbycreate) (mandatory for xDSL standards that use this attribute) (4-bytes)
+//
+//		Minimum Reserved Data Rate
+//			This attribute specifies the desired minimum reserved net data rate for the bearer channel. The
+//			rate is coded in bits per second. This attribute is needed only if the rate adaptation mode is
+//			set to dynamic in the xDSL line configuration profile part 1. (R,-W, setbycreate) (optional)
+//			(4-bytes)
+//
+//		Minimum Data Rate In Low _ Power State
+//			Minimum data rate in low-power state: This parameter specifies the minimum desired net data rate
+//			for the bearer channel during the low-power state (L1/L2). The power management low-power states
+//			L1 and L2 are defined in [ITUT-G.992.2] and [ITUT G.992.3], respectively. The data rate is coded
+//			in bits per second. (R,-W, setbycreate) (mandatory) (4-byte)
+//
+//		Minimum Impulse Noise Protection
+//			The INPmin attribute specifies the minimum INP for the bearer channel if it is transported over
+//			DMT symbols with a subcarrier spacing of 4.3125-kHz. INP is expressed in DMT symbols with a
+//			subcarrier spacing of 4.3125-kHz. It can be 1/2 symbol or any integer number of symbols from 0
+//			to 16, inclusive.
+//
+//			If the xTU does not support the configured INPmin value, it uses the nearest supported INP value
+//			greater than INPmin.
+//
+//			Value	INPmin
+//
+//			1	0 symbols
+//
+//			2	1/2 symbol
+//
+//			N	(N-- 2) symbols, 3 <= N <= 18
+//
+//			(R,-W, setbycreate) (optional for [ITU-T G.992.1], mandatory for other xDSL standards that use
+//			this attribute) (1-byte)
+//
+//		Maximum Bit Error Ratio
+//			This attribute specifies the desired maximum bit error ratio for the bearer channel. It is only
+//			valid for [ITUT-G.992.3], [ITUT-G.992.4] and [ITUT-G.992.5]. The bit error ratio is specified
+//			via the following values:
+//
+//			1	10-3
+//
+//			2	10-5
+//
+//			3	10-7
+//
+//			(R,-W, setbycreate) (mandatory for standards that use this attribute) (1-byte)
+//
+//		Minimum Impulse Noise Protection 8_Khz
+//			Minimum impulse noise protection 8-kHz: The INPmin8 attribute specifies the minimum INP for the
+//			bearer channel if it is transported over DMT symbols with a subcarrier spacing of 8.625-kHz. It
+//			is only valid for [ITUT-G.993.2]. INP is expressed in DMT symbols with a subcarrier spacing of
+//			8.625-kHz. It can take any integer value from 0 (default) to 16, inclusive. (R, W) (mandatory
+//			for [ITUT-G.993.2]) (1 byte)
+//
+//		Maximum Delay Variation
+//			The DVMAX attribute specifies the maximum value for delay variation allowed in an OLR procedure.
+//			Its value ranges from 1 (0.1-ms) to 254 (25.4-ms). The special value 255 specifies that no delay
+//			variation bound is imposed. (R, W) (optional: used by [ITUT-G.993.2]) (1 byte)
+//
+//		Channel Initialization Policy Selection
+//			The CIPOLICY attribute specifies the policy to determine transceiver configuration at
+//			initialization. Valid values are 0..1, as defined in the Recommendations that use this
+//			attribute. (R,-W) (optional) (1-byte)
+//
+//		Minimum Sos Bit Rate Downstream
+//			The MIN-SOS-BR-ds attribute specifies the minimum net data rate required for a valid SOS request
+//			in the downstream direction. The value is coded as an unsigned integer representing the data
+//			rate as a multiple of 8-kbit/s. (R,-W) (optional) (4-bytes)
+//
+//		Minimum Sos Bit Rate Upstream
+//			The MIN-SOS-BR-us attribute specifies the minimum net data rate required for a valid SOS request
+//			in the upstream direction. The value is coded as an unsigned integer representing the data rate
+//			as a multiple of 8-kbit/s. (R,-W) (optional) (4-bytes)
+//
+type XdslChannelConfigurationProfile struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	xdslchannelconfigurationprofileBME = &ManagedEntityDefinition{
+		Name:    "XdslChannelConfigurationProfile",
+		ClassID: 107,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewXdslChannelConfigurationProfile (class ID 107) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewXdslChannelConfigurationProfile(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*xdslchannelconfigurationprofileBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslchannelconfigurationprofilepart2.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslchannelconfigurationprofilepart2.go
new file mode 100644
index 0000000..851b056
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslchannelconfigurationprofilepart2.go
@@ -0,0 +1,176 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// XdslChannelConfigurationProfilePart2ClassID is the 16-bit ID for the OMCI
+// Managed entity xDSL channel configuration profile part 2
+const XdslChannelConfigurationProfilePart2ClassID = ClassID(412) // 0x019c
+
+var xdslchannelconfigurationprofilepart2BME *ManagedEntityDefinition
+
+// XdslChannelConfigurationProfilePart2 (Class ID: #412 / 0x019c)
+//	This ME contains the channel configuration profile for an xDSL UNI. An instance of this ME is
+//	created and deleted by the OLT.
+//
+//	NOTE - If [ITUT G.997.1] compatibility is required, bit rates should only be set to integer
+//	multiples of 1000-bits/s. The ONU may reject attempts to set other values for bit rate
+//	attributes.
+//
+//	Relationships
+//		An instance of this ME may be associated with zero or more instances of the PPTP xDSL UNI part
+//		1.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the xDSL channel configuration profile. (R, setbycreate)
+//			(mandatory) (2-bytes)
+//
+//		Minimum Expected Throughput For Retransmission Minetr_Rtx
+//			Minimum expected throughput for retransmission (MINETR_RTX): If retransmission is used in a
+//			given transmit direction, this attribute specifies the minimum expected throughput for the
+//			bearer channel, in bits per second. See clause 7.3.2.1.8 of [ITU-T G.997.1]. (R,-W) (mandatory)
+//			(4-bytes)
+//
+//		Maximum Expected Throughput For Retransmission Maxetr_Rtx
+//			Maximum expected throughput for retransmission (MAXETR_RTX): If retransmission is used in a
+//			given transmit direction, this parameter specifies the maximum expected throughput for the
+//			bearer channel, in bits per second. See clause 7.3.2.1.9 of [ITU-T G.997.1]. (R,-W) (mandatory)
+//			(4-bytes)
+//
+//		Maximum Net Data Rate For Retransmission Maxndr_Rtx
+//			Maximum net data rate for retransmission (MAXNDR_RTX): If retransmission is used in a given
+//			transmit direction, this parameter specifies the maximum net data rate for the bearer channel,
+//			in bits per second. See clause 7.3.2.1.10 of [ITUT-G.997.1]. (R,-W) (mandatory) (4-bytes)
+//
+//		Maximum Delay For Retransmission Delaymax_Rtx
+//			Maximum delay for retransmission (DELAYMAX_RTX): If retransmission is used in a given transmit
+//			direction, this parameter specifies the maximum for the instantaneous delay due to the effect of
+//			retransmission only. This delay is defined as the integer value of this attribute multiplied by
+//			1-ms. The valid delay values are given in clause 7.3.2.11 of [ITU-T G.997.1]. (R,-W) (mandatory)
+//			(1-bytes)
+//
+//		Minimum Delay For Retransmission Delaymin_Rtx
+//			Minimum delay for retransmission (DELAYMIN_RTX): If retransmission is used in a given transmit
+//			direction, this parameter specifies the minimum for the instantaneous delay due to the effect of
+//			retransmission only. This delay is defined as the integer value of this attribute multiplied by
+//			1 ms. The valid delay values are given in clause 7.3.2.12 of [ITU-T G.997.1]. (R,-W) (mandatory)
+//			(1-bytes)
+//
+//		Minimum Impulse Noise Protection Against Single High Impulse Noise Event Shine For Retransmission Inpmin_Shine_Rtx
+//			Minimum impulse noise protection against single high impulse noise event (SHINE) for
+//			retransmission (INPMIN_SHINE_RTX): If retransmission is used in a given transmit direction, this
+//			parameter specifies the minimum INP against a SHINE for the bearer channel if it is transported
+//			over DMT symbols with a subcarrier spacing of 4.3125-kHz. The valid range of values is given in
+//			clause-7.3.2.13 of [ITU-T G.997.1]. (R,-W) (mandatory) (1-bytes)
+//
+//		Minimum Impulse Noise Protection Against Shine For Retransmission For Systems Using 8.625 Khz Subcarrier Spacing Inpmin8_Shine_Rtx
+//			Minimum impulse noise protection against SHINE for retransmission for systems using 8.625 kHz
+//			subcarrier spacing (INPMIN8_SHINE_RTX): If retransmission is used in a given transmit direction,
+//			this parameter specifies the minimum INP against SHINE for the bearer channel if it is
+//			transported over DMT symbols with a subcarrier spacing of 8.625-kHz. The valid range of values
+//			is given in clause 7.3.2.14 of [ITUT-G.997.1]. (R,-W) (mandatory) (1-bytes)
+//
+//		Shineratio_Rtx
+//			If retransmission is used in a given transmit direction, this parameter specifies the SHINE
+//			ratio. This ratio is defined as the integer value of this attribute multiplied by 0.001. The
+//			valid range of values is given in clause-7.3.2.15 of [ITU-T G.997.1]. (R,-W) (mandatory)
+//			(1-bytes)
+//
+//		Minimum Impulse Noise Protection Against Rein For Retransmission Inpmin_Rein_Rtx
+//			Minimum impulse noise protection against REIN for retransmission (INPMIN_REIN_RTX): If
+//			retransmission is used in a given transmit direction, this parameter specifies the minimum INP
+//			against REIN for the bearer channel if it is transported over DMT symbols with a subcarrier
+//			spacing of 4.3125 kHz. The valid range of values is given in clause-7.3.2.16 of [ITU-T G.997.1].
+//			(R,-W) (mandatory) (1-bytes)
+//
+//		Minimum Impulse Noise Protection Against Rein For Retransmission For Systems Using 8.625_Khz Subcarrier Spacing Inpmin8_Rein_Rtx
+//			Minimum impulse noise protection against REIN for retransmission for systems using 8.625-kHz
+//			subcarrier spacing (INPMIN8_REIN_RTX): If retransmission is used in a given transmit direction,
+//			this parameter specifies the minimum INP against REIN for the bearer channel if it is
+//			transported over DMT symbols with a subcarrier spacing of 8.625 kHz. The valid range of values
+//			is given in clause 7.3.2.17 of [ITU-T G.997.1]. (R,-W) (mandatory) (1-bytes)
+//
+//		Rein Inter_Arrival Time For Retransmission Iat_Rein_Rtx
+//			REIN inter-arrival time for retransmission (IAT_REIN_RTX): If retransmission is used in a given
+//			transmit direction, this parameter specifies the IAT that shall be assumed for REIN protection.
+//			The valid range of values is given in clause 7.3.2.18 of [ITU-T G.997.1]. (R,-W) (mandatory)
+//			(1-bytes)
+//
+//		Target Net Data Rate Target_Ndr
+//			Target net data rate (TARGET_NDR): If retransmission is not used in a given transmit direction,
+//			this parameter specifies the target net data of the bearer channel, in bits per second. See
+//			clause 7.3.2.19.1 of [ITU-T G.997.1]. (R,-W) (mandatory) (4-bytes)
+//
+//		Target Expected Throughput For Retransmission Target_Etr
+//			Target expected throughput for retransmission (TARGET_ETR): If retransmission is used in a given
+//			transmit direction, this parameter specifies the target expected throughput for the bearer
+//			channel, in bits per second. See clause 7.3.2.19.2 of [ITUT-G.997.1]. (R,-W) (mandatory)
+//			(4-bytes)
+//
+type XdslChannelConfigurationProfilePart2 struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	xdslchannelconfigurationprofilepart2BME = &ManagedEntityDefinition{
+		Name:    "XdslChannelConfigurationProfilePart2",
+		ClassID: 412,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewXdslChannelConfigurationProfilePart2 (class ID 412) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewXdslChannelConfigurationProfilePart2(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*xdslchannelconfigurationprofilepart2BME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslchanneldownstreamstatusdata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslchanneldownstreamstatusdata.go
new file mode 100644
index 0000000..172ab1a
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslchanneldownstreamstatusdata.go
@@ -0,0 +1,158 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// XdslChannelDownstreamStatusDataClassID is the 16-bit ID for the OMCI
+// Managed entity xDSL channel downstream status data
+const XdslChannelDownstreamStatusDataClassID = ClassID(102) // 0x0066
+
+var xdslchanneldownstreamstatusdataBME *ManagedEntityDefinition
+
+// XdslChannelDownstreamStatusData (Class ID: #102 / 0x0066)
+//	This ME contains downstream channel status data for an xDSL UNI. The ONU automatically creates
+//	or deletes instances of this ME upon the creation or deletion of a PPTP xDSL UNI part 1.
+//
+//	NOTE - [ITU-T G.997.1] specifies that bit rate attributes have a granularity of 1000-bit/s. If
+//	ITU-T G.997.1 compliance is required, the ONU should only report values with this granularity.
+//
+//	Relationships
+//		One or more instances of this ME are associated with an instance of an xDSL UNI.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. The two MSBs of the first byte are
+//			the bearer channel ID. Excluding the first 2-bits of the first byte, the remaining part of the
+//			ME ID is identical to that of this ME's parent PPTP xDSL UNI part 1. (R) (mandatory) (2-bytes)
+//
+//		Actual Interleaving Delay
+//			This attribute is the actual one-way interleaving delay introduced by the PMS-TC between the
+//			alpha and beta reference points, excluding delay in the L1 and L2 states. In the L1 and L2
+//			states, the attribute contains the interleaving delay in the previous L0 state. For ADSL, this
+//			attribute is derived from the S and D attributes as cap(S*D)/4 ms, where S is the number of
+//			symbols per codeword, D is the interleaving depth and cap() denotes rounding to the next higher
+//			integer. For [ITU-T G.993.2], this attribute is computed according to the formula in clause 9.7
+//			of [ITUT-G.993.2]. The actual interleaving delay is coded in milliseconds, rounded to the
+//			nearest millisecond. (R) (mandatory) (1-byte)
+//
+//		Actual Data Rate
+//			This parameter reports the actual net data rate of the bearer channel, excluding the rate in the
+//			L1 and L2 states. In the L1 or L2 state, the parameter contains the net data rate in the
+//			previous L0 state. The data rate is coded in bits per second. (R) (mandatory) (4-bytes)
+//
+//		Previous Data Rate
+//			This parameter reports the previous net data rate of the bearer channel just before the latest
+//			rate change event occurred, excluding transitions between the L0 state and the L1 or L2 states.
+//			A rate change can occur at a power management state transition, e.g., at full or short
+//			initialization, fast retrain or power down, or at a dynamic rate adaptation. The rate is coded
+//			in bits per second (R) (mandatory) (4-bytes)
+//
+//		Actual Impulse Noise Protection
+//			The ACTINP attribute reports the actual INP on the bearer channel in the L0 state. In the L1 or
+//			L2 state, the attribute contains the INP in the previous L0 state. The value of this attribute
+//			is a number of DMT symbols, with a granularity of 0.1 symbols. Its range is from 0 (0.0 symbols)
+//			to 254 (25.4 symbols). The special value 255 indicates an ACTINP higher than 25.4. (R) (optional
+//			for [ITU-T G.992.1], mandatory for other xDSL Recommendations that support this attribute)
+//			(1-byte)
+//
+//		Actual Size Of Reed_Solomon Codeword
+//			Actual size of Reed-Solomon codeword: The NFEC attribute reports the actual Reed-Solomon
+//			codeword size used in the latency path in which the bearer channel is transported. The value is
+//			coded in bytes, and ranges from 0..255. (R) (mandatory for ITUT-G.993.2 VDSL2, optional for
+//			others) (1-byte)
+//
+//		Actual Number Of Reed_Solomon Redundancy Bytes
+//			Actual number of Reed-Solomon redundancy bytes: The RFEC attribute reports the actual number of
+//			Reed-Solomon redundancy bytes per codeword used in the latency path in which the bearer channel
+//			is transported. The value is coded in bytes, and ranges from 0..16. The value 0 indicates no
+//			Reed-Solomon coding. (R) (mandatory for ITUT-G.993.2 VDSL2, optional for others) (1-byte)
+//
+//		Actual Number Of Bits Per Symbol
+//			The LSYMB attribute reports the actual number of bits per symbol assigned to the latency path in
+//			which the bearer channel is transported, excluding trellis overhead. The value is coded in bits,
+//			and ranges from 0..65535. (R) (mandatory for [TU-T G.993.2 VDSL2, optional for others) (2-bytes)
+//
+//		Actual Interleaving Depth
+//			The INTLVDEPTH attribute reports the actual depth of the interleaver used in the latency path in
+//			which the bearer channel is transported. The value ranges from 1..4096 in steps of 1. The value
+//			1 indicates no interleaving. (R) (mandatory for ITU-T G.993.2 VDSL2, optional for others)
+//			(2-bytes)
+//
+//		Actual Interleaving Block Length
+//			The INTLVBLOCK attribute reports the actual block length of the interleaver used in the latency
+//			path in which the bearer channel is transported. The value ranges from 4..255 in steps of 1. (R)
+//			(mandatory for ITU-T G.993.2 VDSL2, undefined for others) (1-byte)
+//
+//		Actual Latency Path
+//			The LPATH attribute reports the index of the actual latency path in which the bearer channel is
+//			transported. Valid values are 0..3. In [ITUT-G.992.1], the fast path is mapped to latency index
+//			0; the interleaved path to index 1. (R) (mandatory for ITU-T G.993.2 VDSL2, optional for others)
+//			(1-byte)
+//
+//		Actual Impulse Noise Protection Against Repetitive Electrical Impulse Noise Actinp_Rein
+//			Actual impulse noise protection against repetitive electrical impulse noise (ACTINP_REIN): If
+//			retransmission is used in a given transmit direction, this parameter reports the actual INP
+//			against REIN on the bearer channel. The INP of this attribute is equal to the integer value
+//			multiplied by 0.1 symbols. Valid values and usage are given in clause 7.5.2.9 of [ITU-T G.997.1]
+//			(R) (optional) (1-byte)
+//
+type XdslChannelDownstreamStatusData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	xdslchanneldownstreamstatusdataBME = &ManagedEntityDefinition{
+		Name:    "XdslChannelDownstreamStatusData",
+		ClassID: 102,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewXdslChannelDownstreamStatusData (class ID 102) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewXdslChannelDownstreamStatusData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*xdslchanneldownstreamstatusdataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslchannelupstreamstatusdata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslchannelupstreamstatusdata.go
new file mode 100644
index 0000000..58970a7
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslchannelupstreamstatusdata.go
@@ -0,0 +1,153 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// XdslChannelUpstreamStatusDataClassID is the 16-bit ID for the OMCI
+// Managed entity xDSL channel upstream status data
+const XdslChannelUpstreamStatusDataClassID = ClassID(103) // 0x0067
+
+var xdslchannelupstreamstatusdataBME *ManagedEntityDefinition
+
+// XdslChannelUpstreamStatusData (Class ID: #103 / 0x0067)
+//	This ME contains upstream channel status data for an xDSL UNI. The ONU automatically creates or
+//	deletes instances of this ME upon the creation or deletion of a PPTP xDSL UNI part 1.
+//
+//	Relationships
+//		One or more instances of this ME are associated with an instance of an xDSL UNI.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. The two MSBs of the first byte are
+//			the bearer channel ID. Excluding the first 2-bits of the first byte, the remaining part of the
+//			ME ID is identical to that of this ME's parent PPTP xDSL UNI part 1. (R) (mandatory) (2-bytes)
+//
+//		Actual Interleaving Delay
+//			This attribute is the actual one-way interleaving delay introduced by the PMS-TC between the
+//			alpha and beta reference points, excluding the L1 and L2 states. In the L1 and L2 states, this
+//			attribute contains the interleaving delay in the previous L0 state. For ADSL, this attribute is
+//			derived from the S and D attributes as cap(S*D)/4-ms, where S is the number of symbols per
+//			codeword, D is the interleaving depth and cap() denotes rounding to the next higher integer. For
+//			[ITU-T G.993.2], this attribute is computed according to the formula in clause 9.7 of [ITUT
+//			G.993.2]. The actual interleaving delay is coded in milliseconds, rounded to the nearest
+//			millisecond. (R) (mandatory) (1-byte)
+//
+//		Actual Data Rate
+//			This parameter reports the actual net data rate of the bearer channel, excluding the L1 and L2
+//			states. In the L1 or L2 state, the parameter contains the net data rate in the previous L0
+//			state. The data rate is coded in bits per second. (R) (mandatory) (4-bytes)
+//
+//		Previous Data Rate
+//			This parameter reports the previous net data rate of the bearer channel just before the latest
+//			rate change event occurred, excluding transitions between the L0 state and the L1 or L2 state. A
+//			rate change can occur at a power management state transition, e.g., at full or short
+//			initialization, fast retrain or power down, or at a dynamic rate adaptation. The rate is coded
+//			in bits per second. (R) (mandatory) (4-bytes)
+//
+//		Actual Impulse Noise Protection
+//			The ACTINP attribute reports the actual INP on the bearer channel in the L0 state. In the L1 or
+//			L2 state, the attribute contains the INP in the previous L0 state. The value is coded in
+//			fractions of DMT symbols with a granularity of 0.1 symbols. The range is from 0 (0.0 symbols) to
+//			254 (25.4 symbols). The special value 255 indicates an ACTINP higher than 25.4. (R) (mandatory
+//			for ITU-T G.993.2 VDSL2, optional for other xDSL Recommendations that support it) (1-byte)
+//
+//		Impulse Noise Protection Reporting Mode
+//			The INPREPORT attribute reports the method used to compute the ACTINP. If set to 0, the ACTINP
+//			is computed according to the INP_no_erasure formula (clause 9.6 of [ITUT G.993.2]). If set to 1,
+//			ACTINP is the value estimated by the xTU receiver. (R) (mandatory for  ITU-T G.993.2 VDSL2)
+//			(1-byte)
+//
+//		Actual Size Of Reed_Solomon Codeword
+//			Actual size of Reed-Solomon codeword: The NFEC attribute reports the actual Reed-Solomon
+//			codeword size used in the latency path in which the bearer channel is transported. Its value is
+//			coded in bytes in the range 0..255. (R) (mandatory for ITU-T G.993.2 VDSL2, optional for others)
+//			(1-byte)
+//
+//		Actual Number Of Reed_Solomon Redundancy Bytes
+//			Actual number of Reed-Solomon redundancy bytes: The RFEC attribute reports the actual number of
+//			Reed-Solomon redundancy bytes per codeword used in the latency path in which the bearer channel
+//			is transported. Its value is coded in bytes in the range 0..16. The value 0 indicates no Reed-
+//			Solomon coding. (R) (mandatory for ITUT-G.993.2 VDSL2, optional for others) (1-byte)
+//
+//		Actual Number Of Bits Per Symbol
+//			The LSYMB attribute reports the actual number of bits per symbol assigned to the latency path in
+//			which the bearer channel is transported, excluding trellis overhead. Its value is coded in bits
+//			in the range 0..65535. (R) (mandatory for ITUT-G.993.2 VDSL2, optional for others) (2-bytes)
+//
+//		Actual Interleaving Depth
+//			The INTLVDEPTH attribute reports the actual depth of the interleaver used in the latency path in
+//			which the bearer channel is transported. Its value ranges from 1..4096 in steps of 1. The value
+//			1 indicates no interleaving. (R) (mandatory for ITU-T G.993.2 VDSL2, optional for others)
+//			(2-bytes)
+//
+//		Actual Interleaving Block Length
+//			The INTLVBLOCK attribute reports the actual block length of the interleaver used in the latency
+//			part in which the bearer channel is transported. Its value ranges from 4..255 in steps of 1. (R)
+//			(mandatory forITU-T G.993.2 VDSL2, optional for others) (1-byte)
+//
+//		Actual Latency Path
+//			The LPATH attribute reports the index of the actual latency path in which the bearer channel is
+//			transported. Valid values are 0..3. In [ITUT-G.992.1], the fast path is mapped to latency index
+//			0; the interleaved path to index 1. (R) (mandatory for ITU-T G.993.2 VDSL2, optional for others)
+//			(1-byte)
+//
+type XdslChannelUpstreamStatusData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	xdslchannelupstreamstatusdataBME = &ManagedEntityDefinition{
+		Name:    "XdslChannelUpstreamStatusData",
+		ClassID: 103,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewXdslChannelUpstreamStatusData (class ID 103) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewXdslChannelUpstreamStatusData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*xdslchannelupstreamstatusdataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/xdsldownstreamrfibandsprofile.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdsldownstreamrfibandsprofile.go
new file mode 100644
index 0000000..bd31bb0
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdsldownstreamrfibandsprofile.go
@@ -0,0 +1,128 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// XdslDownstreamRfiBandsProfileClassID is the 16-bit ID for the OMCI
+// Managed entity xDSL downstream RFI bands profile
+const XdslDownstreamRfiBandsProfileClassID = ClassID(111) // 0x006f
+
+var xdsldownstreamrfibandsprofileBME *ManagedEntityDefinition
+
+// XdslDownstreamRfiBandsProfile (Class ID: #111 / 0x006f)
+//	This ME contains the downstream RFI bands profile for an xDSL UNI. Instances of this ME are
+//	created and deleted by the OLT.
+//
+//	Relationships
+//		An instance of this ME may be associated with zero or more instances of the PPTP xDSL UNI part
+//		1.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. The value 0 is reserved. (R,
+//			setbycreate) (mandatory) (2-bytes)
+//
+//		Downstream Rfi Bands Table
+//			The RFIBANDS attribute is a table where each entry comprises:
+//
+//			o	an entry number field (1-byte, first entry numbered 1);
+//
+//			o	subcarrier index 1 field (2-bytes);
+//
+//			o	subcarrier index 2 field (2-bytes).
+//
+//			For [ITU-T G.992.5], this configuration attribute defines the subset of downstream PSD mask
+//			breakpoints, as specified in the downstream PSD mask, to be used to notch an RFI band. This
+//			subset consists of couples of consecutive subcarrier indices belonging to breakpoints: [ti; ti-+
+//			1], corresponding to the low level of the notch. Interpolation around these points is defined in
+//			[ITUT G.992.5].
+//
+//			For [ITU-T G.993.2], this attribute defines the bands where the PSD is to be reduced as
+//			specified in clause 7.2.1.2 of [ITUT G.993.2]. Each band is represented by start and stop
+//			subcarrier indices with a subcarrier spacing of 4.3125-kHz. Up to 16 bands may be specified.
+//			This attribute defines the RFI bands for both upstream and downstream directions.
+//
+//			Entries have the default value 0 for both subcarrier index 1 and subcarrier index-2. Setting an
+//			entry with a non-zero subcarrier index 1 and subcarrier index-2 implies insertion into the table
+//			or replacement of an existing entry. Setting an entry's subcarrier index 1 and subcarrier index
+//			2 to 0 implies deletion from the table, if present.
+//
+//			(R,-W) (mandatory for [ITU-T G.992.5], [ITU-T G.993.2]) (5 * N bytes where N is the number of
+//			RFI bands)
+//
+//		Bands Valid
+//			This Boolean attribute controls and reports the operational status of the downstream RFI bands
+//			table.
+//
+//			If this attribute is true, the downstream RFI bands table has been impressed on the DSL
+//			equipment.
+//
+//			If this attribute is false, the downstream RFI bands table has not been impressed on the DSL
+//			equipment. The default value is false.
+//
+//			This attribute can be modified by the ONU and OLT, as follows.
+//
+//			o	If the OLT changes any of the RFI bands table entries or sets bands valid false, then bands
+//			valid is false.
+//
+//			o	If bands valid is false and OLT sets bands valid true, the ONU impresses the downstream RFI
+//			bands data on to the DSL equipment.
+//
+//			(R,-W) (mandatory) (1-byte)
+//
+type XdslDownstreamRfiBandsProfile struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	xdsldownstreamrfibandsprofileBME = &ManagedEntityDefinition{
+		Name:    "XdslDownstreamRfiBandsProfile",
+		ClassID: 111,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			GetNext,
+			Set,
+			SetTable,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewXdslDownstreamRfiBandsProfile (class ID 111) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewXdslDownstreamRfiBandsProfile(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*xdsldownstreamrfibandsprofileBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslimpulsenoisemonitorperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslimpulsenoisemonitorperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..75125b3
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslimpulsenoisemonitorperformancemonitoringhistorydata.go
@@ -0,0 +1,128 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// XdslImpulseNoiseMonitorPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity xDSL impulse noise monitor performance monitoring history data
+const XdslImpulseNoiseMonitorPerformanceMonitoringHistoryDataClassID = ClassID(324) // 0x0144
+
+var xdslimpulsenoisemonitorperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// XdslImpulseNoiseMonitorPerformanceMonitoringHistoryData (Class ID: #324 / 0x0144)
+//	This ME collects PM data from the impulse noise monitor function at both near and far ends.
+//	Instances of this ME are created and deleted by the OLT. Note that, unlike most xDSL PM, [ITU-T
+//	G.997.1] only requires current and previous 15-min interval storage; a longer view of this PM is
+//	not expected at 15-min granularity.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME may be associated with an xDSL UNI. This ME is meaningful only for ITUT
+//		G.993.2 VDSL2, [ITUT G.992.3] and [ITUT-G.992.5].
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. The ME ID is identical to that of
+//			this ME's parent PPTP xDSL UNI part 1. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: No thresholds are defined for this ME. For uniformity with other PM, the
+//			attribute is retained and shown as mandatory, but it should be set to a null pointer. (R,-W,
+//			setbycreate) (mandatory) (2-bytes)
+//
+//		Inm Inpeq Histogram Table
+//			INMINPEQ1..17-L is a count of the near-end INMAINPEQi anomalies occurring on the line during the
+//			accumulation period. This parameter is subject to inhibiting - see clause 7.2.7.13 of
+//			[ITUT-G.997.1]. (R) (optional) (2-bytes * 17 entries-= 34-bytes)
+//
+//		Inm Total Measurement
+//			INMME-L is a count of the near-end INMAME anomalies occurring on the line during the
+//			accumulation period. This parameter is subject to inhibiting - see clause 7.2.7.13 of [ITUT
+//			G.997.1]. (R) (optional) (2-bytes)
+//
+//		Inm Iat Histogram
+//			INMIAT0..7-L is a count of the near-end INMAIATi anomalies occurring on the line during the
+//			accumulation period. This parameter is subject to inhibiting - see clause 7.2.7.13 of [ITUT
+//			G.997.1]. (R) (optional) (2-bytes-* 8 entries-= 16-bytes)
+//
+//		Inm Inpeq Histogram Lfe Table
+//			INMINPEQ1..17-LFE is a count of the far-end INMAINPEQi anomalies occurring on the line during
+//			the accumulation period. This parameter is subject to inhibiting - see clause 7.2.7.13 of
+//			[ITUT-G.997.1]. (R) (optional) (2-bytes * 17 entries-= 34-bytes)
+//
+//		Inm Total Measurement Lfe
+//			INMME-LFE is a count of the far-end INMAME anomalies occurring on the line during the
+//			accumulation period. This parameter is subject to inhibiting - see clause 7.2.7.13 of [ITUT
+//			G.997.1]. (R) (optional) (2-bytes)
+//
+//		Inm Iat Histogram Lfe
+//			INMIAT0..7-LFE is a count of the far-end INMAIATi anomalies occurring on the line during the
+//			accumulation period. This parameter is subject to inhibiting - see clause 7.2.7.13 of [ITUT
+//			G.997.1]. (R) (optional) (2-bytes-* 8 entries-= 16-bytes)
+//
+type XdslImpulseNoiseMonitorPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	xdslimpulsenoisemonitorperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "XdslImpulseNoiseMonitorPerformanceMonitoringHistoryData",
+		ClassID: 324,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			GetNext,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewXdslImpulseNoiseMonitorPerformanceMonitoringHistoryData (class ID 324) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewXdslImpulseNoiseMonitorPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*xdslimpulsenoisemonitorperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/xdsllineconfigurationprofilepart2.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdsllineconfigurationprofilepart2.go
new file mode 100644
index 0000000..dfdd42c
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdsllineconfigurationprofilepart2.go
@@ -0,0 +1,189 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// XdslLineConfigurationProfilePart2ClassID is the 16-bit ID for the OMCI
+// Managed entity xDSL line configuration profile part 2
+const XdslLineConfigurationProfilePart2ClassID = ClassID(105) // 0x0069
+
+var xdsllineconfigurationprofilepart2BME *ManagedEntityDefinition
+
+// XdslLineConfigurationProfilePart2 (Class ID: #105 / 0x0069)
+//	The overall xDSL line configuration profile is modelled in several parts, all of which are
+//	associated together through a common ME ID (the client PPTP xDSL UNI part 1 has a single
+//	pointer, which refers to the entire set of line configuration profile parts).
+//
+//	Relationships
+//		An instance of this ME may be associated with zero or more instances of an xDSL UNI.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. All xDSL and VDSL2 line
+//			configuration profiles and extensions that pertain to a given PPTP xDSL UNI must share a common
+//			ME ID. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Downstream Minimum Time Interval For Upshift Rate Adaptation
+//			This parameter defines the interval during which the downstream noise margin must remain above
+//			the downstream upshift noise margin before the xTU-R attempts to increase the downstream net
+//			data rate. Its value ranges from 0 to 16383-s. (R,-W, setbycreate) (optional) (2-bytes)
+//
+//		Upstream Minimum Time Interval For Upshift Rate Adaptation
+//			This parameter defines the interval during which the upstream noise margin must remain above the
+//			upstream upshift noise margin before the xTU-C attempts to increase the upstream net data rate.
+//			Its value ranges from 0 to 16383-s. (R,-W, setbycreate) (optional) (2-bytes)
+//
+//		Downstream Downshift Noise Margin
+//			If the downstream noise margin is below the downstream downshift noise margin and remains there
+//			for more than the downstream minimum time interval for downshift rate adaptation, the xTU-R
+//			attempts to decrease the downstream net data rate. This attribute's value ranges from 0 (0.0 dB)
+//			to 310 (31.0 dB). (R,-W, setbycreate) (optional) (2-bytes)
+//
+//		Upstream Downshift Noise Margin
+//			If the upstream noise margin is below the upstream downshift noise margin and remains there for
+//			more than the upstream minimum time interval for downshift rate adaptation, the xTUC attempts to
+//			decrease the upstream net data rate. This attribute's value ranges from 0 (0.0 dB) to 310 (31.0
+//			dB). (R,-W, setbycreate) (optional) (2-bytes)
+//
+//		Downstream Minimum Time Interval For Downshift Rate Adaptation
+//			This parameter defines the interval during which the downstream noise margin must remain below
+//			the downstream downshift noise margin before the xTU-R attempts to decrease the downstream net
+//			data rate. Its value ranges from 0 to 16383-s. (R,-W, setbycreate) (optional) (2-bytes)
+//
+//		Upstream Minimum Time Interval For Downshift Rate Adaptation
+//			This parameter defines the interval during which the upstream noise margin must remain below the
+//			upstream downshift noise margin before the xTU-C attempts to decrease the upstream net data
+//			rate. Its value ranges from 0 to 16383-s. (R,-W, setbycreate) (optional) (2-bytes)
+//
+//		Xtu Impedance State Forced
+//			This parameter forces the impedance state of the xTU-C. It applies only to the T/S interface,
+//			and is deprecated in the OMCI, which stands proxy for the Q interface. It is only valid for
+//			Annex A of [ITUT G.992.3], Annex A of [ITUT G.992.4] and Annex A of [ITUT G.992.5]. It is
+//			defined as follows.
+//
+//			1	Force the xTU-C to the disabled state.
+//
+//			2	Force the xTU-C to the inactive state.
+//
+//			3	Force the xTU-C to the active state.
+//
+//			(R,-W, setbycreate) (optional) (1-byte)
+//
+//		L0_Time
+//			L0-time:	This parameter specifies the minimum time between an exit from the L2 state and the
+//			next entry into the L2 state. It is only valid for [ITUT-G.992.3], [ITUT-G.992.4] and
+//			[ITUT-G.992.5]. It ranges from 0 to 255-s. (R,-W, setbycreate) (mandatory) (1 byte)
+//
+//		L2_Time
+//			L2-time:	This parameter specifies the minimum time between an entry into the L2 state and the
+//			first power trim in the L2 state, or between two consecutive power trims in the L2 state. It is
+//			only valid for [ITUT-G.992.3], [ITUT-G.992.4] and [ITUT-G.992.5]. It ranges from 0 to 255-s. (R,
+//			W, setbycreate) (mandatory) (1 byte)
+//
+//		Downstream Maximum Nominal Power Spectral Density
+//			This attribute specifies the maximum nominal transmit PSD in the downstream direction during
+//			initialization and showtime. A single MAXNOMPSDds attribute is defined per mode enabled in the
+//			xTSE line configuration attribute. It is only valid for [ITUT-G.992.3], [ITUT-G.992.4] and
+//			[ITUT-G.992.5]. Its value ranges from 0 (60.0-dBm/Hz) to 300 (-30-dBm/Hz). (R, W, setbycreate)
+//			(mandatory) (2 bytes)
+//
+//		Upstream Maximum Nominal Power Spectral Density
+//			This attribute specifies the maximum nominal transmit PSD in the upstream direction during
+//			initialization and showtime. A single MAXNOMPSDus attribute is defined per mode enabled in the
+//			xTSE line configuration attribute. It is only valid for [ITUT-G.992.3], [ITUT-G.992.4] and
+//			[ITUT-G.993.2]. Its value ranges from 0 (-60.0-dBm/Hz) to 300 (-30-dBm/Hz). (R, W, setbycreate)
+//			(mandatory) (2 bytes)
+//
+//		Downstream Maximum Nominal Aggregate Transmit Power
+//			This attribute specifies the maximum nominal aggregate transmit power in the downstream
+//			direction during initialization and showtime. It is only valid for [ITUT-G.992.3],
+//			[ITUT-G.992.4], [ITUT-G.992.5] and [ITUT-G.993.2]. Its value ranges from 0 (0.0-dBm) to 255
+//			(25.5-dBm). (R, W, setbycreate) (mandatory) (1-byte)
+//
+//		Upstream Maximum Nominal Aggregate Transmit Power
+//			This parameter specifies the maximum nominal aggregate transmit power in the upstream direction
+//			during initialization and showtime. It is only valid for [ITUT-G.992.3], [ITUT-G.992.4] and
+//			[ITUT-G.992.5]. Its value ranges from 0 (0.0-dBm) to 255 (25.5-dBm). (R, W, setbycreate)
+//			(mandatory) (1 byte)
+//
+//		Upstream Maximum Aggregate_Receive Power
+//			Upstream maximum aggregate-receive power: This parameter specifies the maximum upstream
+//			aggregate receive power over a set of subcarriers, as defined in the relevant Recommendation.
+//			The xTU-C requests an upstream power cutback such that the upstream aggregate receive power over
+//			that set of subcarriers is at or below the configured maximum value. It is only valid for
+//			[ITUT-G.992.3], [ITUT-G.992.4] and [ITUT-G.992.5]. This attribute ranges from 0 (25.5-dBm) to
+//			510 (+25.5-dBm). The special value 0xFFFF indicates that no upstream maximum aggregate receive
+//			power limit is to be applied. (R, W setbycreate) (mandatory) (2 bytes)
+//
+//		Vdsl2 Transmission System Enabling
+//			This configuration attribute extends the transmission system coding types to be allowed by the
+//			xTU-C. It is a bit map, defined as octet 8 (bits 57..64) in Table-9.7.12-1. (R, W, setbycreate)
+//			(optional) (1 byte)
+//
+type XdslLineConfigurationProfilePart2 struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	xdsllineconfigurationprofilepart2BME = &ManagedEntityDefinition{
+		Name:    "XdslLineConfigurationProfilePart2",
+		ClassID: 105,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewXdslLineConfigurationProfilePart2 (class ID 105) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewXdslLineConfigurationProfilePart2(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*xdsllineconfigurationprofilepart2BME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/xdsllineconfigurationprofilepart3.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdsllineconfigurationprofilepart3.go
new file mode 100644
index 0000000..48981e9
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdsllineconfigurationprofilepart3.go
@@ -0,0 +1,218 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// XdslLineConfigurationProfilePart3ClassID is the 16-bit ID for the OMCI
+// Managed entity xDSL line configuration profile part 3
+const XdslLineConfigurationProfilePart3ClassID = ClassID(106) // 0x006a
+
+var xdsllineconfigurationprofilepart3BME *ManagedEntityDefinition
+
+// XdslLineConfigurationProfilePart3 (Class ID: #106 / 0x006a)
+//	The overall xDSL line configuration profile is modelled in several parts, all of which are
+//	associated together through a common ME ID (the client PPTP xDSL UNI part 1 has a single
+//	pointer, which refers to the entire set of line configuration profile parts).
+//
+//	Relationships
+//		An instance of this ME may be associated with zero or more instances of an xDSL UNI.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. All xDSL and VDSL2 line
+//			configuration profiles and extensions that pertain to a given PPTP xDSL UNI must share a common
+//			ME ID. (R, setbycreate) (mandatory) (2-bytes)
+//
+//		Loop Diagnostics Mode Forced Ldsf
+//			Loop diagnostics mode forced (LDSF): This configuration parameter forces the line into loop
+//			diagnostic mode via the xTU-C. It is only valid for [ITUT-G.992.3], [ITUT-G.992.4] and
+//			[ITUT-G.992.5]. It is defined as follows.
+//
+//			0	Inhibits the xTU-C from performing loop diagnostic mode procedures on the line. Loop
+//			diagnostic mode procedures may still be initiated by the xTU-R.
+//
+//			1	Forces the xTU-C to perform loop diagnostics procedures.
+//
+//			Only while the line power management state is L3 can the line be forced into loop diagnostic
+//			mode. When loop diagnostic procedures complete successfully, the ONU resets this attribute to 0.
+//			The line remains in the L3 idle state. The loop diagnostics data are available at least until
+//			the line is forced to the L0 state. As long as loop diagnostic procedures have not completed
+//			successfully, attempts are made to do so, until the loop diagnostic mode is no longer forced on
+//			the line through this configuration parameter. If loop diagnostic procedures cannot be completed
+//			successfully after a vendordiscretionary number of retries or within a vendor-discretionary
+//			timeout, then an initialization failure occurs. (R,-W, setbycreate) (mandatory) (1-byte)
+//
+//		Automode Cold Start Forced
+//			This attribute is defined to improve testing of the performance of xTUs supporting automode.
+//			Valid values are 0 and 1. A change in value of this attribute indicates a change in loop
+//			conditions applied to the devices under test. The xTUs reset any historical information used for
+//			automode, for shortening an ITU-T G.994.1 handshake, or for shortening the initialization
+//			procedure.
+//
+//			Automode is defined as the case where multiple operation modes are enabled in xTSE (Table
+//			9.7.12-1) and where the selection of the operation mode to be used for transmission depends, not
+//			only on the common capabilities of both xTUs (as exchanged in [ITU-T G.994.1]), but also on
+//			achievable data rates under given loop conditions. (R,-W, setbycreate) (mandatory if automode is
+//			supported) (1-byte)
+//
+//		L2 Atpr
+//			L2ATPR:	This parameter specifies the maximum aggregate transmit power reduction that can be
+//			performed in the L2 request (i.e., at the transition of L0 to L2 state) or through a single
+//			power trim in the L2 state. It is only valid for [ITUT-G.992.3], [ITUT-G.992.4] and
+//			[ITUT-G.992.5]. This attribute ranges from 0 (0-dB) dB to 31 (31-dB). (R, W, setbycreate)
+//			(mandatory) (1 byte)
+//
+//		L2 Atprt
+//			L2ATPRT:	This parameter specifies the total maximum aggregate transmit power reduction (in
+//			decibels) that can be performed in an L2 state. This is the sum of all reductions of L2 requests
+//			(i.e., at transitions from L0 to L2 state) and power trims. This attribute ranges from 0 (0 dB)
+//			dB to 31 (31 dB). (R, W, setbycreate) (mandatory) (1 byte)
+//
+//		Force Inp Downstream
+//			When set to 1, the FORCEINPds attribute forces the framer settings of all downstream bearer
+//			channels to be selected such that the impulse noise protection (INP) computed according to the
+//			formula specified in the relevant Recommendation is greater than or equal to the minimal INP
+//			requirement. The default value 0 disables this function. (R, W) (mandatory for [ITU-T G.993.2],
+//			optional for other Recommendations that support it) (1 byte)
+//
+//		Force Inp Upstream
+//			When set to 1, the FORCEINPus attribute forces the framer settings of all upstream bearer
+//			channels to be selected such that the INP computed according to the formula specified in the
+//			relevant Recommendation is greater than or equal to the minimal INP requirement. The default
+//			value 0 disables this function. (R, W) (mandatory for [ITU-T G.993.2], optional for other
+//			Recommendations that support it) (1 byte)
+//
+//		Update Request Flag For Near_End Test Parameters
+//			Update request flag for near-end test parameters: The UPDATE-TEST-NE attribute forces an update
+//			of all near-end test parameters that can be updated during showtime in [ITU-T G.993.2]. Update
+//			is triggered by setting this attribute to 1, whereupon the near-end test parameters are expected
+//			to be updated within 10-s, and the ONU should reset the attribute value to 0. The update request
+//			flag is independent of any autonomous update process in the system. The update request attribute
+//			must be prepared to accept another set after a period not to exceed 3-min, a period that starts
+//			when the flag is set via the OMCI or by an autonomous process in the system. (R,-W) (optional)
+//			(1-byte)
+//
+//		Update Request Flag For Far_End Test Parameters
+//			Update request flag for far-end test parameters: The UPDATE-TEST-FE attribute forces an update
+//			of all far-end test parameters that can be updated during showtime in [ITU-T G.993.2]. Update is
+//			triggered by setting this attribute to 1, whereupon the far-end test parameters are expected to
+//			be updated within 10-s, and the ONU should reset the attribute value to 0. The update request
+//			flag is independent of any autonomous update process in the system. The update request attribute
+//			must be prepared to accept another set after a period not to exceed 3-min, a period that starts
+//			when the flag is set via the OMCI or by an autonomous process in the system. (R,-W) (optional)
+//			(1-byte)
+//
+//			The following eight attributes configure the impulse noise monitoring (INM) function, whose
+//			results are available via the xDSL impulse noise monitor PM history data ME. The downstream
+//			attributes are applicable to [ITUT G.993.2], [ITUT G.992.3] and [ITUT G.992.5]. Only [ITUT
+//			G.993.2] supports the upstream attributes.
+//
+//		Inm Inter Arrival Time Offset Upstream
+//			INM inter-arrival time offset upstream: INMIATOus is the inter-arrival time (IAT) offset that
+//			the xTU-C receiver uses to determine in which bin of the IAT histogram the IAT is reported.
+//			Valid values for INMIATO range from 3 to 511 discrete multi-tone (DMT) symbols in steps of 1 DMT
+//			symbol. (R,-W) (optional) (2-bytes)
+//
+//		Inm Inter_Arrival Time Step Upstream
+//			INM inter-arrival time step upstream: INMIATSus is the IAT step that the xTU-C receiver uses to
+//			determine in which bin of the IAT histogram the IAT is reported. Valid values for INMIATS range
+//			from 0 to 7 in steps of 1. (R,-W) (optional) (1-byte)
+//
+//		Inm Cluster Continuation Value Upstream
+//			INMCCus is the cluster continuation value that the xTU-C receiver uses in the cluster indication
+//			process described in the applicable Recommendation. Valid values for INMCC range from 0 to 64
+//			DMT symbols in steps of 1 DMT symbol. (R,-W) (optional) (1-byte)
+//
+//		Inm Equivalent Inp Mode Upstream
+//			INM_INPEQ_MODEus is the INM equivalent INP mode that the xTU-C receiver uses in the computation
+//			of the equivalent INP, as defined in the applicable Recommendation. Valid values for
+//			INM_INPEQ_MODE are 0..4. (R,-W) (optional) (1-byte)
+//
+//		Inm Inter Arrival Time Offset Downstream
+//			INM inter-arrival time offset downstream: INMIATOds is the IAT offset that the xTU-R receiver
+//			uses to determine in which bin of the IAT histogram the IAT is reported. Valid values for
+//			INMIATO range from 3 to 511 DMT symbols in steps of 1 DMT symbol. (R,-W) (optional) (2-bytes)
+//
+//		Inm Inter_Arrival Time Step Downstream
+//			INM inter-arrival time step downstream: INMIATSds is the IAT step that the xTU-R receiver uses
+//			to determine in which bin of the IAT histogram the IAT is reported. Valid values for INMIATS
+//			range from 0 to 7 in steps of 1. (R,-W) (optional) (1-byte)
+//
+//		Inm Cluster Continuation Value Downstream
+//			INMCCds is the cluster continuation value that the xTU-R receiver uses in the cluster indication
+//			process described in the applicable Recommendation. Valid values for INMCC range from 0 to 64
+//			DMT symbols in steps of 1 DMT symbol. (R,-W) (optional) (1-byte)
+//
+//		Inm Equivalent Inp Mode Downstream
+//			INM_INPEQ_MODEds is the INM equivalent INP mode that the xTU-R receiver uses in the computation
+//			of the equivalent INP, as defined in the applicable Recommendation. Valid values for
+//			INM_INPEQ_MODE are 0..4. (R,-W) (optional) (1-byte)
+//
+type XdslLineConfigurationProfilePart3 struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	xdsllineconfigurationprofilepart3BME = &ManagedEntityDefinition{
+		Name:    "XdslLineConfigurationProfilePart3",
+		ClassID: 106,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewXdslLineConfigurationProfilePart3 (class ID 106) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewXdslLineConfigurationProfilePart3(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*xdsllineconfigurationprofilepart3BME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/xdsllineinventoryandstatusdatapart1.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdsllineinventoryandstatusdatapart1.go
new file mode 100644
index 0000000..92dbed6
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdsllineinventoryandstatusdatapart1.go
@@ -0,0 +1,206 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// XdslLineInventoryAndStatusDataPart1ClassID is the 16-bit ID for the OMCI
+// Managed entity xDSL line inventory and status data part 1
+const XdslLineInventoryAndStatusDataPart1ClassID = ClassID(100) // 0x0064
+
+var xdsllineinventoryandstatusdatapart1BME *ManagedEntityDefinition
+
+// XdslLineInventoryAndStatusDataPart1 (Class ID: #100 / 0x0064)
+//	This ME contains part 1 of the line inventory and status data for an xDSL UNI. The ONU
+//	automatically creates or deletes an instance of this ME upon the creation or deletion of a PPTP
+//	xDSL UNI part 1.
+//
+//	Relationships
+//		An instance of this ME is associated with an xDSL UNI.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the PPTP xDSL UNI part 1. (R) (mandatory) (2-bytes)
+//
+//		Xtu_C G.994.1 Vendor Id
+//			xTU-C G.994.1 vendor ID: This is the vendor ID as inserted by the xTU-C in the ITUT-G.994.1 CL
+//			message. It comprises 8 octets, including a country code followed by a (regionally allocated)
+//			provider code, as defined in [ITUT-T.35]. (R) (mandatory) (8-bytes)
+//
+//		Xtu_R G.994.1 Vendor Id
+//			xTU-R G.994.1 vendor ID: This is the vendor ID as inserted by the xTU-R in the ITUT-G.994.1 CLR
+//			message. It comprises 8 binary octets, with the same format as the xTUC ITUT G.994.1 vendor ID.
+//			(R) (mandatory) (8-bytes)
+//
+//		Xtu_C System Vendor Id
+//			xTU-C system vendor ID: This is the vendor ID as inserted by the xTU-C in the overhead messages
+//			of [ITU-T G.992.3] and [ITU-T G.992.4]. It comprises 8 binary octets, with the same format as
+//			the xTU-C ITUT-G.994.1 vendor ID. (R) (mandatory) (8-bytes)
+//
+//		Xtu_R System Vendor Id
+//			xTU-R system vendor ID: This is the vendor ID as inserted by the xTU-R in the embedded
+//			operations channel and overhead messages of [ITU-T G.992.3] and [ITUT-G.992.4]. It comprises 8
+//			binary octets, with the same format as the xTU-C ITUT-G.994.1 vendor ID. (R) (mandatory)
+//			(8-bytes)
+//
+//		Xtu_C Version Number
+//			xTU-C version number: This is the vendorspecific version number as inserted by the xTUC in the
+//			overhead messages of [ITU-T G.992.3] and [ITU-T G.992.4]. It comprises up to 16 binary octets.
+//			(R) (mandatory) (16-bytes)
+//
+//		Xtu_R Version Number
+//			xTU-R version number: This is the version number as inserted by the xTUR in the embedded
+//			operations channel of [ITU-T G.992.1] or [ITU-T G.992.2], or the overhead messages of [ITU-T
+//			G.992.3], [ITU-T G.992.4], [ITU-T G.992.5] and [ITU-T G.993.2]. The attribute value may be
+//			vendor-specific, but is recommended to comprise up to 16 ASCII characters, null-terminated if it
+//			is shorter than 16. The string should contain the xTU-R firmware version and the xTU-R model,
+//			encoded in that order and separated by a space character: "<xTU-R firmware version><xTU-R
+//			model>". It is recognized that legacy xTU-Rs may not support this format. (R) (mandatory)
+//			(16-bytes)
+//
+//		Xtu_C Serial Number Part 1
+//			xTU-C serial number part 1: The vendorspecific serial number inserted by the xTU-C in the
+//			overhead messages of [ITU-T G.992.3] and [ITU-T G.992.4] comprises up to 32 ASCII characters,
+//			null terminated if it is shorter than 32 characters. This attribute contains the first 16
+//			characters. (R) (mandatory) (16-bytes)
+//
+//		Xtu_C Serial Number Part 2
+//			xTU-C serial number part 2: This attribute contains the second 16 characters of the xTU-C serial
+//			number. (R) (mandatory) (16-bytes)
+//
+//		Xtu_R Serial Number Part 1
+//			xTU-R serial number part 1: The serial number inserted by the xTU-R in the embedded operations
+//			channel of [ITU-T G.992.1] or [ITU-T G.992.2], or the overhead messages of [ITU-T G.992.3],
+//			[ITU-T G.992.4], [ITU-T G.992.5] and [ITUT-G.993.2], comprises up to 32 ASCII characters,
+//			nullterminated if it is shorter than 32. It is recommended that the equipment serial number, the
+//			equipment model and the equipment firmware version, encoded in that order and separated by space
+//			characters, be contained: "<equipment serial number><equipment model><equipment firmware
+//			version>". It is recognized that legacy xTU-Rs may not support this format. This attribute
+//			contains the first 16 characters. (R) (mandatory) (16-bytes)
+//
+//		Xtu_R Serial Number Part 2
+//			xTU-R serial number part 2: This attribute contains the second 16 characters of the xTU-R serial
+//			number. (R) (mandatory) (16-bytes)
+//
+//		Xtu_C Self Test Results
+//			xTU-C selftest results: This parameter reports the xTU-C self-test result. It is coded in two
+//			fields. The most significant octet is 0 if the self-test passed and 1 if it failed. The three
+//			least significant octets are a vendor-discretionary integer that can be interpreted in
+//			combination with [ITU-T G.994.1] and the system vendor ID. (R) (mandatory) (4-bytes)
+//
+//		Xtu_R Self Test Results
+//			xTU-R selftest results: This parameter defines the xTU-R self-test result. It is coded in two
+//			fields. The most significant octet is 0 if the self-test passed and 1 if it failed. The three
+//			least significant octets are a vendor-discretionary integer that can be interpreted in
+//			combination with [ITU-T G.994.1] and the system vendor ID. (R) (mandatory) (4-bytes)
+//
+//		Xtu_C Transmission System Capability
+//			xTU-C transmission system capability: This attribute lists xTUC transmission system
+//			capabilities. It is a bit map, defined in Table 9.7.12-1. (R) (mandatory) (7-bytes)
+//
+//			NOTE 1 - This attribute is only 7-bytes long. An eighth byte identifying VDSL2 capabilities is
+//			defined in the VDSL2 line inventory and status data part 1 ME.
+//
+//		Xtu_R Transmission System Capability
+//			xTU-R transmission system capability: This attribute lists xTUR transmission system
+//			capabilities. It is a bit map, defined in Table 9.7.121. (R) (mandatory) (7-bytes)
+//
+//			NOTE 2 - This attribute is only 7-bytes long. An eighth byte identifying VDSL2 capabilities is
+//			defined in the VDSL2 line inventory and status data part 2 ME.
+//
+//		Initialization Success_Failure Cause
+//			(R) (mandatory) (1-byte)
+//
+//			Initialization success/failure cause: This parameter represents the success or failure cause of
+//			the last full initialization performed on the line. It is coded as follows.
+//
+//			0	Successful
+//
+//			1	Configuration error
+//
+//			This error occurs with inconsistencies in configuration parameters, e.g., when the line is
+//			initialized in an xDSL transmission system whose xTU does not support the configured maximum
+//			delay or the configured minimum or maximum data rate for one or more bearer channels.
+//
+//			2	Configuration not feasible on the line
+//
+//			This error occurs if the minimum data rate cannot be achieved on the line with the minimum noise
+//			margin, maximum PSD level, maximum delay and maximum bit error ratio for one or more bearer
+//			channels.
+//
+//			3	Communication problem
+//
+//			This error occurs, for example, due to corrupted messages, bad syntax messages, if no common
+//			mode can be selected in the ITUT-G.994.1 handshake procedure or due to a timeout.
+//
+//			4	No peer xTU detected
+//
+//			This error occurs if the peer xTU is not powered or not connected or if the line is too long to
+//			allow detection of a peer xTU.
+//
+//			5	Any other or unknown initialization failure cause.
+//
+type XdslLineInventoryAndStatusDataPart1 struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	xdsllineinventoryandstatusdatapart1BME = &ManagedEntityDefinition{
+		Name:    "XdslLineInventoryAndStatusDataPart1",
+		ClassID: 100,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewXdslLineInventoryAndStatusDataPart1 (class ID 100) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewXdslLineInventoryAndStatusDataPart1(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*xdsllineinventoryandstatusdatapart1BME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/xdsllineinventoryandstatusdatapart2.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdsllineinventoryandstatusdatapart2.go
new file mode 100644
index 0000000..6385cfd
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdsllineinventoryandstatusdatapart2.go
@@ -0,0 +1,257 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// XdslLineInventoryAndStatusDataPart2ClassID is the 16-bit ID for the OMCI
+// Managed entity xDSL line inventory and status data part 2
+const XdslLineInventoryAndStatusDataPart2ClassID = ClassID(101) // 0x0065
+
+var xdsllineinventoryandstatusdatapart2BME *ManagedEntityDefinition
+
+// XdslLineInventoryAndStatusDataPart2 (Class ID: #101 / 0x0065)
+//	This ME contains part 2 of the line inventory and status data for an xDSL UNI. The ONU
+//	automatically creates or deletes an instance of this ME upon the creation or deletion of a PPTP
+//	xDSL UNI part 1.
+//
+//	NOTE 1 - [ITU-T G.997.1] specifies that bit rate attributes have granularity of 1000-bit/s. If
+//	ITUT-G.997.1 compliance is required, the ONU should only report values with this granularity.
+//
+//	Relationships
+//		An instance of this ME is associated with an xDSL UNI.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the PPTP xDSL UNI part 1. (R) (mandatory) (2-bytes)
+//
+//		Xdsl Transmission System
+//			This parameter defines the transmission system in use. It is a bit map, defined in Table
+//			9.7.12-1. (R) (mandatory) (7-bytes)
+//
+//			NOTE 2 - This attribute is only 7-bytes long. An eighth byte identifying VDSL2 capabilities in
+//			use is defined in the VDSL2 line inventory and status data part 1 ME.
+//
+//		Line Power Management State
+//			The line has four possible power management states.
+//
+//			0	L0: Synchronized - This line state occurs when the line has full transmission (i.e.,
+//			showtime).
+//
+//			1	L1: Power down data transmission - This line state occurs when there is transmission on the
+//			line, but the net data rate is reduced (e.g., only for OAM and higher layer connection and
+//			session control). This state applies to [ITU-T G.992.2] only.
+//
+//			2	L2: Power down data transmission - This line state occurs when there is transmission on the
+//			line, but the net data rate is reduced (e.g., only for OAM and higher layer connection and
+//			session control). This state applies to [ITU-T G.992.3] and [ITUT-G.992.4] only.
+//
+//			3	L3: No power - This line state occurs when no power is transmitted on the line at all.
+//
+//			(R) (mandatory) (1-byte)
+//
+//		Downstream Line Attenuation
+//			The LATNds attribute is the squared magnitude of the channel characteristics function H(f)
+//			averaged over this band, and measured during loop diagnostic mode and initialization. The exact
+//			definition is included in the relevant xDSL Recommendation. The attribute value ranges from 0
+//			(0.0-dB) to 1270 (127.0-dB) dB. The special value 0xFFFF indicates that line attenuation is out
+//			of range. (R) (mandatory) (2-bytes)
+//
+//			NOTE 3 - [ITU-T G.993.2] specifies a per-band array to represent this attribute. The array is
+//			defined in the VDSL2 line inventory and status data part 3 ME. In an ITU-T G.993.2 context, the
+//			downstream line attenuation attribute should be set to 0 here, and populated in the VDSL2 line
+//			inventory and status data part 3 ME instead.
+//
+//		Upstream Line Attenuation
+//			NOTE 4 - [ITU-T G.993.2] specifies a per-band array to represent this attribute. The array is
+//			defined in the VDSL2 line inventory and status data part 3 ME. In an ITU-T G.993.2 context, the
+//			upstream line attenuation attribute should be set to 0 here, and populated in the VDSL2 line
+//			inventory and status data part 3 ME instead.
+//
+//			The LATNus attribute is the squared magnitude of the channel characteristics function H(f)
+//			averaged over this band, and measured during loop diagnostic mode and initialization. The exact
+//			definition is included in the relevant xDSL Recommendation. The attribute value ranges from 0
+//			(0.0-dB) to 1270 (127.0-dB). The special value 0xFFFF indicates that line attenuation is out of
+//			range. (R) (mandatory) (2-bytes)
+//
+//		Downstream Signal Attenuation
+//			The SATNds attribute is the measured difference in the total power transmitted in this band by
+//			the xTUC and the total power received in this band by the xTUR during loop diagnostic mode,
+//			initialization and showtime. The exact definition is included in the relevant xDSL
+//			Recommendation. The attribute value ranges from 0 (0.0-dB) to 1270 (127.0-dB). The special value
+//			0xFFFF indicates that signal attenuation is out of range. (R) (mandatory) (2-bytes)
+//
+//			NOTE 5 - During showtime, only a subset of the subcarriers may be transmitted by the xTU-C, as
+//			compared to loop diagnostic mode and initialization. Therefore, the downstream signal
+//			attenuation value during showtime may be significantly lower than the downstream signal
+//			attenuation value during loop diagnostic mode and initialization.
+//
+//			NOTE 6 - [ITU-T G.993.2] specifies a per-band array to represent this attribute. The array is
+//			defined in the VDSL2 line inventory and status data part 3 ME. In an ITU-T G.993.2 context, the
+//			downstream signal attenuation attribute should be set to 0 here, and populated in the VDSL2 line
+//			inventory and status data part 3 ME instead.
+//
+//		Upstream Signal Attenuation
+//			The SATNus attribute is the measured difference in decibels in the total power transmitted in
+//			this band by the xTUR and the total power received in this band by the xTUC during loop
+//			diagnostic mode, initialization and showtime. The exact definition is included in the relevant
+//			xDSL Recommendation. The attribute value ranges from 0 (0.0 dB) to 1270 (127.0-dB). The special
+//			value 0xFFFF indicates that signal attenuation is out of range. (R) (mandatory) (2-bytes)
+//
+//			NOTE 7 - During showtime, only a subset of the subcarriers may be transmitted by the xTU-R, as
+//			compared to loop diagnostic mode and initialization. Therefore, the upstream signal attenuation
+//			value during showtime may be significantly lower than the upstream signal attenuation value
+//			during loop diagnostic mode and initialization.
+//
+//			NOTE 8 - [ITU-T G.993.2] specifies a per-band array to represent this attribute. The array is
+//			defined in the VDSL2 line inventory and status data part 3 ME. In an ITU-T G.993.2 context, the
+//			upstream signal attenuation attribute should be set to 0 here, and populated in the VDSL2 line
+//			inventory and status data part 3 ME instead.
+//
+//		Downstream Snr Ratio Margin
+//			The downstream SNR margin SNRMds is the maximum increase of noise power received at the xTUR,
+//			such that the BER requirements can still be met for all downstream bearer channels. The
+//			attribute value ranges from 0 (-64.0 dB) to 1270 (+63.0-dB). The special value 0xFFFF indicates
+//			that the attribute is out of range (R) (mandatory) (2-bytes)
+//
+//		Upstream Snr Margin
+//			The upstream SNR margin SNRMus is the maximum increase of noise power received at the xTUC, such
+//			that the BER requirements can still be met for all upstream bearer channels. The attribute value
+//			ranges from 0 (-64.0 dB) to 1270 (+63.0 dB). The special value 0xFFFF indicates that the
+//			attribute is out of range. (R) (mandatory) (2-bytes)
+//
+//		Downstream Maximum Attainable Data Rate
+//			The ATTNDRds attribute indicates the maximum downstream net data rate currently attainable. The
+//			rate is coded in bits per second. (R) (mandatory) (4-bytes)
+//
+//		Upstream Maximum Attainable Data Rate
+//			The ATTNDRus attribute indicates the maximum upstream net data rate currently attainable. The
+//			rate is coded in bits per second. (R) (mandatory) (4-bytes)
+//
+//		Downstream Actual Power Spectrum Density
+//			The ACTPSDds attribute is the average downstream transmit power spectrum density over the
+//			subcarriers in use (subcarriers to which downstream user data are allocated) delivered by the
+//			xTUC at the UC reference point, at the instant of measurement. The attribute value ranges from 0
+//			(-90.0-dBm/Hz) to 900 (0.0-dBm/Hz). The special value (0xFFFF) indicates that the parameter is
+//			out of range. (R) (mandatory) (2-bytes)
+//
+//		Upstream Actual Power Spectrum Density
+//			The ACTPSDus attribute is the average upstream transmit power spectrum density over the
+//			subcarriers in use (subcarriers to which upstream user data are allocated) delivered by the xTUR
+//			at the UR reference point, at the instant of measurement. The attribute value ranges from 0
+//			(-90.0-dBm/Hz) to 900 (0.0-dBm/Hz). The special value 0xFFFF indicates that the attribute is out
+//			of range. (R) (mandatory) (2-bytes)
+//
+//		Downstream Actual Aggregate Transmit Power
+//			The ACTATPds attribute is the total amount of transmit power delivered by the xTUC at the UC
+//			reference point, at the instant of measurement. The attribute value ranges from 0 (-31.0-dBm) to
+//			620 (+31.0-dBm). The special value (0xFFFF) indicates that the parameter is out of range. (R)
+//			(mandatory) (2-bytes)
+//
+//			NOTE 9 - The downstream nominal aggregate transmit power may be taken as a best estimate of the
+//			parameter.
+//
+//		Upstream Actual Aggregate Transmit Power
+//			NOTE 10 - The upstream nominal aggregate transmit power may be taken as a best estimate of the
+//			parameter.
+//
+//			The ACTATPus attribute is the total amount of transmit power delivered by the xTUR at the UR
+//			reference point, at the instant of measurement. The attribute value ranges from 0 (-31.0-dBm) to
+//			620 (+31.0-dBm). The special value (0xFFFF) indicates that the parameter is out of range. (R)
+//			(mandatory) (2-bytes)
+//
+//		Initialization _ Last State Transmitted Downstream
+//			Initialization - last state transmitted downstream: This attribute represents the last
+//			successful transmitted initialization state in the downstream direction in the last full
+//			initialization performed on the line. Initialization states are defined in the individual xDSL
+//			Recommendations and are counted from 0 (if [ITUT-G.994.1] is used) or 1 (if [ITUT-G.994.1] is
+//			not used) up to showtime. This parameter must be interpreted along with the xDSL transmission
+//			system capabilities.
+//
+//			This parameter is available only when, after a failed full initialization, line diagnostic
+//			procedures are activated on the line. Line diagnostic procedures can be activated by the
+//			operator of the system (through the loop diagnostics mode forced attribute of the xDSL line
+//			configuration profile part 3) or autonomously by the xTU-C or xTU-R.
+//
+//			(R) (mandatory) (1-byte)
+//
+//		Initialization _ Last State Transmitted Upstream
+//			Initialization - last state transmitted upstream: This attribute represents the last successful
+//			transmitted initialization state in the upstream direction in the last full initialization
+//			performed on the line. Initialization states are defined in the individual xDSL Recommendations
+//			and are counted from 0 (if [ITUT-G.994.1] is used) or 1 (if [ITUT-G.994.1] is not used) up to
+//			showtime. This parameter must be interpreted along with the xDSL transmission system
+//			capabilities.
+//
+//			This parameter is available only when, after a failed full initialization, line diagnostic
+//			procedures are activated on the line. Line diagnostic procedures can be activated by the
+//			operator of the system (through the loop diagnostics mode forced attribute of the xDSL line
+//			configuration profile part 3) or autonomously by the xTU-C or xTU-R.
+//
+//			(R) (mandatory) (1-byte)
+//
+type XdslLineInventoryAndStatusDataPart2 struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	xdsllineinventoryandstatusdatapart2BME = &ManagedEntityDefinition{
+		Name:    "XdslLineInventoryAndStatusDataPart2",
+		ClassID: 101,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewXdslLineInventoryAndStatusDataPart2 (class ID 101) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewXdslLineInventoryAndStatusDataPart2(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*xdsllineinventoryandstatusdatapart2BME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/xdsllineinventoryandstatusdatapart5.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdsllineinventoryandstatusdatapart5.go
new file mode 100644
index 0000000..4e0cf45
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdsllineinventoryandstatusdatapart5.go
@@ -0,0 +1,181 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// XdslLineInventoryAndStatusDataPart5ClassID is the 16-bit ID for the OMCI
+// Managed entity xDSL line inventory and status data part 5
+const XdslLineInventoryAndStatusDataPart5ClassID = ClassID(325) // 0x0145
+
+var xdsllineinventoryandstatusdatapart5BME *ManagedEntityDefinition
+
+// XdslLineInventoryAndStatusDataPart5 (Class ID: #325 / 0x0145)
+//	This ME extends the attributes defined in the xDSL line inventory and status data parts 1..4.
+//	This ME reports FEXT and NEXT attributes, and pertains to Annex C of [ITUT G.992.3] (ADSL2) and
+//	Annex C of [ITUT G.992.5] (ADSL2plus).
+//
+//	Relationships
+//		This is one of the status data MEs associated with an xDSL UNI. The ONU automatically creates or
+//		deletes an instance of this ME upon creation or deletion of a PPTP xDSL UNI part 1 that supports
+//		these attributes.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the PPTP xDSL UNI part 1 ME. (R) (mandatory) (2-bytes)
+//
+//		Fext Downstream Snr Margin
+//			The FEXT SNRMds attribute is the downstream SNR margin measured during FEXTR duration at the
+//			ATU-R. The attribute value ranges from 0 (-64.0-dB) to 1270 (+63.0-dB). The special value 0xFFFF
+//			indicates that the attribute is out of range. (R) (mandatory) (2-bytes)
+//
+//		Next Downstream Snr Margin
+//			The NEXT SNRMds attribute is the downstream SNR margin measured during NEXTR duration at the
+//			ATU-R. The attribute value ranges from 0 (-64.0-dB) to 1270 (+63.0-dB). The special value 0xFFFF
+//			indicates that the attribute is out of range. (R) (mandatory) (2-bytes)
+//
+//		Fext Upstream Snr Margin
+//			The FEXT SNRMus attribute is the upstream SNR margin (see clause 7.5.1.16 of [ITUT G.997.1])
+//			measured during FEXTC duration at the ATU-C. The attribute value ranges from 0 (-64.0-dB) to
+//			1270 (+63.0-dB). The special value 0xFFFF indicates that the attribute is out of range. (R)
+//			(mandatory) (2-bytes)
+//
+//		Next Upstream Snr Margin
+//			The NEXT SNRMus attribute is the upstream SNR margin (see clause 7.5.1.16 of [ITUT-G.997.1])
+//			measured during NEXTC duration at the ATU-C. The attribute value ranges from 0 (-64.0-dB) to
+//			1270 (+63.0-dB). The special value 0xFFFF indicates that the attribute is out of range. (R)
+//			(mandatory) (2-bytes)
+//
+//		Fext Downstream Maximum Attainable Data Rate
+//			The FEXT ATTNDRds attribute is the maximum downstream net data rate calculated from FEXT
+//			downstream SNR(f) (see clause 7.5.1.28.3.1 of [ITUT G.997.1]). The rate is coded in bits per
+//			second. (R) (mandatory) (4-bytes)
+//
+//		Next Downstream Maximum Attainable Data Rate
+//			The NEXT ATTNDRds attribute is the maximum downstream net data rate calculated from NEXT
+//			downstream SNR(f) (see clause 7.5.1.28.3.2 of [ITUT G.997.1]). The rate is coded in bits per
+//			second. (R) (mandatory) (4-bytes)
+//
+//		Fext Upstream Maximum Attainable Data Rate
+//			The FEXT ATTNDRus attribute is the maximum upstream net data rate calculated from FEXT upstream
+//			SNR(f) (see clause 7.5.1.28.6.1 of [ITUT G.997.1]). The rate is coded in bits per second. (R)
+//			(mandatory) (4-bytes)
+//
+//		Next Upstream Maximum Attainable Data Rate
+//			The NEXT ATTNDRus attribute is the maximum upstream net data rate calculated from NEXT upstream
+//			SNR(f) (see clause 7.5.1.28.6.2 of [ITUT G.997.1]). The rate is coded in bits per second. (R)
+//			(mandatory) (4-bytes)
+//
+//		Fext Downstream Actual Power Spectral Density
+//			The FEXT ACTPSDds attribute is the average downstream transmit PSD over the used subcarriers
+//			(see clause-7.5.1.21.1 of [ITUT G.997.1]) calculated from the REFPSDds and RMSGIds for FEXTR
+//			duration. The attribute value ranges from 0  (-90.0-dBm/Hz) to 900 (0.0-dBm/Hz). The special
+//			value 0xFFFF indicates that the parameter is out of range. (R) (mandatory) (2-bytes)
+//
+//		Next Downstream Actual Power Spectral Density
+//			The NEXT ACTPSDds attribute is the average downstream transmit PSD over the used subcarriers
+//			(see clause-7.5.1.21.2 of [ITUT G.997.1]) calculated from the REFPSDds and RMSGIds for NEXTR
+//			duration. The attribute value ranges from 0  (-90.0-dBm/Hz) to 900 (0.0-dBm/Hz). The special
+//			value 0xFFFF indicates that the parameter is out of range. (R) (mandatory) (2-bytes)
+//
+//		Fext Upstream Actual Power Spectral Density
+//			The FEXT ACTPSDus attribute is the average upstream transmit PSD over the used subcarriers (see
+//			clause-7.5.1.22.1 of [ITUT G.997.1]) calculated from the REFPSDus and RMSGIus for FEXTC
+//			duration. The attribute value ranges from 0 (-90.0-dBm/Hz) to 900 (0.0-dBm/Hz). The special
+//			value 0xFFFF indicates that the parameter is out of range. (R) (mandatory) (2-bytes)
+//
+//		Next Upstream Actual Power Spectral Density
+//			The NEXT ACTPSDus attribute is the average upstream transmit PSD over the used subcarriers (see
+//			clause-7.5.1.22.2 of [ITUT G.997.1]) calculated from the REFPSDus and RMSGIus for NEXTC
+//			duration. The attribute value ranges from 0 (-90.0-dBm/Hz) to 900 (0.0-dBm/Hz). The special
+//			value 0xFFFF indicates that the parameter is out of range. (R) (mandatory) (2-bytes)
+//
+//		Fext Downstream Actual Aggregate Transmit Power
+//			The FEXT ACTATPds attribute is the total amount of transmit power (see clause 7.5.1.24.1 of
+//			[ITUT G.997.1]) calculated from PSDds measured during FEXTR duration at the ATU-R. The attribute
+//			value ranges from 0 (-31.0-dBm) to 620 (+31.0-dBm). The special value 0xFFFF indicates that the
+//			parameter is out of range. (R) (mandatory) (2-bytes)
+//
+//		Next Downstream Actual Aggregate Transmit Power
+//			The NEXT ACTATPds attribute is the total amount of transmit power (see clause 7.5.1.24.2 of
+//			[ITUT G.997.1]) calculated from PSDds measured during NEXTR duration at the ATU-R. The attribute
+//			value ranges from 0 (-31.0-dBm) to 620 (+31.0-dBm). The special value 0xFFFF indicates that the
+//			parameter is out of range. (R) (mandatory) (2-bytes)
+//
+//		Fext Upstream Actual Aggregate Transmit Power
+//			The FEXT ACTATPus attribute is the total transmit power (see clause 7.5.1.25.1 of [ITUT
+//			G.997.1]) calculated from PSDus measured during FEXTC duration at the ATU-C. The attribute value
+//			ranges from 0 (-31.0-dBm) to 620 (+31.0-dBm). The special value 0xFFFF indicates that the
+//			parameter is out of range. (R) (mandatory) (2-bytes)
+//
+//		Next Upstream Actual Aggregate Transmit Power
+//			The NEXT ACTATPus attribute is the total transmit power (see clause 7.5.1.25.2 of [ITUT
+//			G.997.1]) calculated from PSDus measured during NEXTC duration at the ATU-C. The attribute value
+//			ranges from 0 (-31.0-dBm) to 620 (+31.0-dBm). The special value 0xFFFF indicates that the
+//			parameter is out of range. (R) (mandatory) (2-bytes)
+//
+type XdslLineInventoryAndStatusDataPart5 struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	xdsllineinventoryandstatusdatapart5BME = &ManagedEntityDefinition{
+		Name:    "XdslLineInventoryAndStatusDataPart5",
+		ClassID: 325,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewXdslLineInventoryAndStatusDataPart5 (class ID 325) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewXdslLineInventoryAndStatusDataPart5(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*xdsllineinventoryandstatusdatapart5BME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/xdsllineinventoryandstatusdatapart8.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdsllineinventoryandstatusdatapart8.go
new file mode 100644
index 0000000..ad1a629
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdsllineinventoryandstatusdatapart8.go
@@ -0,0 +1,114 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// XdslLineInventoryAndStatusDataPart8ClassID is the 16-bit ID for the OMCI
+// Managed entity xDSL line inventory and status data part 8
+const XdslLineInventoryAndStatusDataPart8ClassID = ClassID(414) // 0x019e
+
+var xdsllineinventoryandstatusdatapart8BME *ManagedEntityDefinition
+
+// XdslLineInventoryAndStatusDataPart8 (Class ID: #414 / 0x019e)
+//	This ME extends the attributes defined in the xDSL line inventory and status data parts-1..4.
+//
+//	Relationships
+//		This is one of the status data MEs associated with an xDSL UNI. The ONU automatically creates or
+//		deletes an instance of this ME upon creation or deletion of a PPTP xDSL UNI part 1 that supports
+//		these attributes.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the PPTP xDSL UNI part 1 ME. (R) (mandatory) (2-bytes)
+//
+//		Retransmission Used Downstream Rtx_Usedds
+//			Retransmission used downstream (RTX_USEDds): This parameter specifies whether [ITU-T G.998.4]
+//			retransmission is used (i.e., active in showtime) in the downstream transmit direction. The
+//			valid range of values is given in clause-7.5.1.38 of [ITU-T G.997.1]. (R) (mandatory) (1 byte)
+//
+//		Retransmission Used Upstream Rtx_Usedus
+//			Retransmission used upstream (RTX_USEDus): This parameter specifies whether  [ITUT G.998.4]
+//			retransmission is used (i.e., active in showtime) in the upstream transmit direction. The valid
+//			range of values is given in clause 7.5.1.38 of [ITU-T G.997.1]. (R) (mandatory) (1 byte)
+//
+//		Date_Time_Stamping Of Near_End Test Parameters Stamp_Test_Ne
+//			Date/time-stamping of near-end test parameters (STAMP-TEST-NE): This parameter indicates the
+//			date/time when the near-end test parameters that can change during showtime were last updated.
+//			See clause 7.5.1.36.3 of [ITUT-G.997.1]. The format of this parameter is as follows.
+//
+//			(R) (optional) (7-bytes)
+//
+//		Date_Time_Stamping Of Far_End Test Parameters Stamp_Test_Fe
+//			Date/time-stamping of far-end test parameters (STAMP-TEST-FE): This parameter indicates the
+//			date/time when the far-end test parameters that can change during showtime were last updated.
+//			See clause 7.5.1.36.4 of [ITUT-G.997.1]. The format of this parameter is the same as STAMP-TEST-
+//			NE. (R) (optional) (7-bytes)
+//
+//		Date_Time_Stamping Of Last Successful Downstream Olr Operation Stamp_Olr_Ds
+//			Date/time-stamping of last successful downstream OLR operation (STAMP-OLR-ds): This parameter
+//			indicates the date/time of the last successful OLR execution in the downstream direction that
+//			has modified the bits or gains. See clause-7.5.1.37.1 of [ITU-T G.997.1]. The format of this
+//			parameter is the same as STAMP-TEST-NE. (R) (optional) (7 bytes)
+//
+//		Date_Time_Stamping Of Last Successful Upstream Olr Operation Stamp_Olr_Us
+//			Date/time-stamping of last successful upstream OLR operation (STAMP-OLR-us): This parameter
+//			indicates the date/time of the last successful OLR execution in the upstream direction that has
+//			modified the bits or gains. See clause-7.5.1.37.2 of [ITU-T G.997.1]. The format of this
+//			parameter is the same as STAMP-TEST-NE. (R) (optional) (7 bytes)
+//
+type XdslLineInventoryAndStatusDataPart8 struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	xdsllineinventoryandstatusdatapart8BME = &ManagedEntityDefinition{
+		Name:    "XdslLineInventoryAndStatusDataPart8",
+		ClassID: 414,
+		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),
+		},
+		Access:  CreatedByOnu,
+		Support: UnknownSupport,
+	}
+}
+
+// NewXdslLineInventoryAndStatusDataPart8 (class ID 414) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewXdslLineInventoryAndStatusDataPart8(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*xdsllineinventoryandstatusdatapart8BME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslpsdmaskprofile.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslpsdmaskprofile.go
new file mode 100644
index 0000000..9b455a3
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslpsdmaskprofile.go
@@ -0,0 +1,132 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// XdslPsdMaskProfileClassID is the 16-bit ID for the OMCI
+// Managed entity xDSL PSD mask profile
+const XdslPsdMaskProfileClassID = ClassID(110) // 0x006e
+
+var xdslpsdmaskprofileBME *ManagedEntityDefinition
+
+// XdslPsdMaskProfile (Class ID: #110 / 0x006e)
+//	This ME contains a PSD mask profile for an xDSL UNI. An instance of this ME is created and
+//	deleted by the OLT.
+//
+//	Relationships
+//		An instance of this ME may be associated with zero or more instances of the PPTP xDSL UNI part
+//		1.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. The value 0 is reserved. (R,
+//			setbycreate) (mandatory) (2-bytes)
+//
+//		Psd Mask Table
+//			This attribute is a table that defines the PSD mask applicable at the U-C2 reference point
+//			(downstream) or the U-R2 reference point (upstream). This mask may impose PSD restrictions in
+//			addition to the limit PSD mask defined in the relevant Recommendations ([ITUT G.992.3], [ITUT
+//			G.992.5], [ITUT-G.993.2]).
+//
+//			NOTE - In [ITUT G.997.1], this attribute is called PSDMASKds (downstream) and PSDMASKus
+//			(upstream). In [ITUT G.993.2], this attribute is called MIBMASKds (downstream) and MIBMASKus
+//			(upstream). The ITU-T G.993.2 MIBMASKus does not include breakpoints to shape US0.
+//
+//			The PSD mask is specified through a set of breakpoints. Each breakpoint comprises a 2-byte
+//			subcarrier index t, with a subcarrier spacing of 4.3125-kHz, and a 1-byte PSD mask level at that
+//			subcarrier. The set of breakpoints can then be represented as [(t1, PSD1), (t2, PSD2), ..., (tN,
+//			PSDN)]. The PSD mask level is coded as 0 (0.0-dBm/Hz) to 190  (-95.0-dBm/Hz), in steps of 0.5
+//			dB.
+//
+//			The maximum number of downstream breakpoints is 32. In the upstream direction, the maximum
+//			number of breakpoints is 4 for [ITU-T G.992.3] and 16 for [ITU-T G.993.2]. The requirements for
+//			a valid set of breakpoints are defined in the relevant Recommendations ([ITUT G.992.3],
+//			[ITUT-G.992.5], [ITUT G.993.2]).
+//
+//			Each table entry in this attribute comprises:
+//
+//			-	an entry number field (1-byte, first entry numbered 1);
+//
+//			-	a subcarrier index field, denoted t (2-bytes);
+//
+//			-	a PSD mask level field (1-byte).
+//
+//			By default, the PSD mask table is empty. Setting a subcarrier entry with a valid PSD mask level
+//			implies insertion into the table or replacement of an existing entry. Setting an entry's PSD
+//			mask level to 0xFF implies deletion from the table.
+//
+//			(R,-W) (mandatory) (4 * N bytes where N is the number of breakpoints)
+//
+//		Mask Valid
+//			This Boolean attribute controls and reports the status of the PSD mask attribute.
+//
+//			As a status report, the value false indicates that the PSD mask represented in this ME has not
+//			been impressed on the DSL equipment. The value true indicates that the PSD mask represented in
+//			this ME has been impressed on the DSL equipment.
+//
+//			This attribute behaves as follows.
+//
+//			o	If the OLT changes any of the PSD mask table entries or sets mask valid false, then mask valid
+//			is false.
+//
+//			o	If mask valid is false and the OLT sets mask valid true, the ONU impresses the PSD mask data
+//			on the DSL equipment.
+//
+//			(R,-W) (mandatory) (1-byte)
+//
+type XdslPsdMaskProfile struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	xdslpsdmaskprofileBME = &ManagedEntityDefinition{
+		Name:    "XdslPsdMaskProfile",
+		ClassID: 110,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			GetNext,
+			Set,
+			SetTable,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewXdslPsdMaskProfile (class ID 110) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewXdslPsdMaskProfile(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*xdslpsdmaskprofileBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslsubcarriermaskingdownstreamprofile.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslsubcarriermaskingdownstreamprofile.go
new file mode 100644
index 0000000..05e7d55
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslsubcarriermaskingdownstreamprofile.go
@@ -0,0 +1,123 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// XdslSubcarrierMaskingDownstreamProfileClassID is the 16-bit ID for the OMCI
+// Managed entity xDSL subcarrier masking downstream profile
+const XdslSubcarrierMaskingDownstreamProfileClassID = ClassID(108) // 0x006c
+
+var xdslsubcarriermaskingdownstreamprofileBME *ManagedEntityDefinition
+
+// XdslSubcarrierMaskingDownstreamProfile (Class ID: #108 / 0x006c)
+//	This ME contains the subcarrier masking downstream profile for an xDSL UNI. Instances of this ME
+//	are created and deleted by the OLT.
+//
+//	Relationships
+//		An instance of this ME may be associated with zero or more instances of the PPTP xDSL UNI part
+//		1.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. The value 0 is reserved. (R, set-
+//			by-create) (mandatory) (2-bytes)
+//
+//			The four following attributes are bit maps that represent downstream mask values for subcarriers
+//			1..128 (mask 1) through 385..512 (mask 4). The MSB of the first byte corresponds to the lowest
+//			numbered subcarrier, and the LSB of the last byte corresponds to the highest. Each bit position
+//			defines whether the corresponding downstream subcarrier is masked (1) or not masked (0).
+//
+//			The number of xDSL subcarriers, downstream (NSCds) is the highest numbered subcarrier that can
+//			be transmitted in the downstream direction. For [ITUT-G.992.3], [ITUT-G.992.4] and
+//			[ITUT-G.992.5], it is defined in the corresponding Recommendation. For [ITUT-G.992.1], NSCds =
+//			256 and for [ITUT-G.992.2], NSCds-= 128.
+//
+//		Downstream Subcarrier Mask 1
+//			Subcarriers 1 to 128. (R,-W, set-by-create) (mandatory) (16-bytes)
+//
+//		Downstream Subcarrier Mask 2
+//			Subcarriers 129 to 256. (R,-W) (mandatory for modems that support NSCds-> 128) (16-bytes)
+//
+//		Downstream Subcarrier Mask 3
+//			Subcarriers 257 to 384. (R,-W) (mandatory for modems that support NSCds-> 256) (16-bytes)
+//
+//		Downstream Subcarrier Mask 4
+//			Subcarriers 385 to 512. (R,-W) (mandatory for modems that support NSCds-> 384) (16-bytes)
+//
+//		Mask Valid
+//			This Boolean attribute controls and reports the operational status of the downstream subcarrier
+//			mask attributes.
+//
+//			If this attribute is true (1), the downstream subcarrier mask represented in this ME has been
+//			impressed on the DSL equipment.
+//
+//			If this attribute is false (0), the downstream subcarrier mask represented in this ME has not
+//			been impressed on the DSL equipment. The default value is false.
+//
+//			The value of this attribute can be modified by the ONU and OLT, as follows.
+//
+//			o	If the OLT changes any of the four mask attributes or sets mask valid false, then mask valid
+//			is false.
+//
+//			o	If mask valid is false and the OLT sets mask valid true, the ONU impresses the downstream
+//			subcarrier mask data on to the DSL equipment.
+//
+//			(R,-W) (mandatory) (1-byte)
+//
+type XdslSubcarrierMaskingDownstreamProfile struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	xdslsubcarriermaskingdownstreamprofileBME = &ManagedEntityDefinition{
+		Name:    "XdslSubcarrierMaskingDownstreamProfile",
+		ClassID: 108,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewXdslSubcarrierMaskingDownstreamProfile (class ID 108) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewXdslSubcarrierMaskingDownstreamProfile(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*xdslsubcarriermaskingdownstreamprofileBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslsubcarriermaskingupstreamprofile.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslsubcarriermaskingupstreamprofile.go
new file mode 100644
index 0000000..0e02784
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslsubcarriermaskingupstreamprofile.go
@@ -0,0 +1,89 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// XdslSubcarrierMaskingUpstreamProfileClassID is the 16-bit ID for the OMCI
+// Managed entity xDSL subcarrier masking upstream profile
+const XdslSubcarrierMaskingUpstreamProfileClassID = ClassID(109) // 0x006d
+
+var xdslsubcarriermaskingupstreamprofileBME *ManagedEntityDefinition
+
+// XdslSubcarrierMaskingUpstreamProfile (Class ID: #109 / 0x006d)
+//	This ME contains the subcarrier masking upstream profile for an xDSL UNI. An instance of this ME
+//	is created and deleted by the OLT.
+//
+//	Relationships
+//		An instance of this ME may be associated with zero or more instances of the PPTP xDSL UNI part
+//		1.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. The value 0 is reserved. (R,
+//			setbycreate) (mandatory) (2-bytes)
+//
+//		Upstream Subcarrier Mask
+//			This attribute is a bit map representing upstream mask values for subcarriers 1 to 64. The MSB
+//			of byte 1 corresponds to subcarrier 1, and the LSB of byte 8 corresponds to subcarrier 64. Each
+//			bit position defines whether the corresponding downstream subcarrier is masked (1) or not masked
+//			(0).
+//
+//			Subcarrier number 1 is the lowest, and the number of xDSL subcarriers, upstream (NSCus) is the
+//			highest subcarrier that can be transmitted in the upstream direction. For [ITUT-G.992.3],
+//			[ITUT-G.992.4] and [ITUT-G.992.5], it is defined in the corresponding Recommendation. For Annex
+//			A of [ITUT-G.992.1] and [ITUT G.992.2], NSCus-= 32 and for Annex B of [ITUT-G.992.1], NSCus-=
+//			64. (R, W, setbycreate) (mandatory) (8-bytes)
+//
+type XdslSubcarrierMaskingUpstreamProfile struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	xdslsubcarriermaskingupstreamprofileBME = &ManagedEntityDefinition{
+		Name:    "XdslSubcarrierMaskingUpstreamProfile",
+		ClassID: 109,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewXdslSubcarrierMaskingUpstreamProfile (class ID 109) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewXdslSubcarrierMaskingUpstreamProfile(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*xdslsubcarriermaskingupstreamprofileBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslxtu-cchannelperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslxtu-cchannelperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..00e0827
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslxtu-cchannelperformancemonitoringhistorydata.go
@@ -0,0 +1,123 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// XdslXtuCChannelPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity xDSL xTU-C channel performance monitoring history data
+const XdslXtuCChannelPerformanceMonitoringHistoryDataClassID = ClassID(114) // 0x0072
+
+var xdslxtucchannelperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// XdslXtuCChannelPerformanceMonitoringHistoryData (Class ID: #114 / 0x0072)
+//	This ME collects PM data of an xTUC to xTUR channel as seen from the xTU-C. Instances of this ME
+//	are created and deleted by the OLT.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an xDSL bearer channel. Several instances may
+//		therefore be associated with an xDSL UNI.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. The two MSBs of the first byte are
+//			the bearer channel ID. Excluding the first 2-bits of the first byte, the remaining part of the
+//			ME ID is identical to that of this ME's parent PPTP xDSL UNI part 1. (R, setbycreate)
+//			(mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 ME that
+//			contains PM threshold values. Since no threshold value attribute number exceeds 7, a threshold
+//			data 2 ME is optional. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Corrected Blocks
+//			This attribute counts blocks received with errors that were corrected on this channel. (R)
+//			(mandatory) (4-bytes)
+//
+//		Uncorrected Blocks
+//			This attribute counts blocks received with uncorrectable errors on this channel. (R) (mandatory)
+//			(4-bytes)
+//
+//		Transmitted Blocks
+//			This attribute counts encoded blocks transmitted on this channel. (R) (mandatory) (4-bytes)
+//
+//		Received Blocks
+//			This attribute counts encoded blocks received on this channel. (R) (mandatory) (4-bytes)
+//
+//		Code Violations
+//			This attribute counts CRC-8 anomalies in the bearer channel. (R) (mandatory) (2-bytes)
+//
+//		Forward Error Corrections
+//			This attribute counts FEC anomalies in the bearer channel. (R) (mandatory) (2-bytes)
+//
+type XdslXtuCChannelPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	xdslxtucchannelperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "XdslXtuCChannelPerformanceMonitoringHistoryData",
+		ClassID: 114,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Corrected blocks",
+			1: "Uncorrected blocks",
+			2: "Code violations",
+			3: "Forward error corrections",
+		},
+	}
+}
+
+// NewXdslXtuCChannelPerformanceMonitoringHistoryData (class ID 114) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewXdslXtuCChannelPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*xdslxtucchannelperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslxtu-cperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslxtu-cperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..caa6f42
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslxtu-cperformancemonitoringhistorydata.go
@@ -0,0 +1,194 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// XdslXtuCPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity xDSL xTU-C performance monitoring history data
+const XdslXtuCPerformanceMonitoringHistoryDataClassID = ClassID(112) // 0x0070
+
+var xdslxtucperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// XdslXtuCPerformanceMonitoringHistoryData (Class ID: #112 / 0x0070)
+//	This ME collects PM data on the xTUC to xTUR path as seen from the xTU-C. Instances of this ME
+//	are created and deleted by the OLT.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an xDSL UNI.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the PPTP xDSL UNI part 1. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 and 2 MEs
+//			that contain PM threshold values. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Loss Of Frame Seconds
+//			(R) (mandatory) (2-bytes)
+//
+//		Loss Of Signal Seconds
+//			(R) (mandatory) (2-bytes)
+//
+//		Loss Of Link Seconds
+//			(R) (mandatory) (2-bytes)
+//
+//		Loss Of Power Seconds
+//			(R) (mandatory) (2-bytes)
+//
+//		Errored Seconds Es
+//			Errored seconds (ES): This attribute counts 1-s intervals with one or more CRC8 anomalies summed
+//			over all received bearer channels, or one or more loss of signal (LOS) defects, or one or more
+//			SEF defects, or one or more LPR defects. (R) (mandatory) (2-bytes)
+//
+//		Severely Errored Seconds
+//			This attribute counts severely errored seconds (SES-L). An SES is declared if, during a 1-s
+//			interval, there were 18 or more CRC8 anomalies in one or more of the received bearer channels,
+//			or one or more LOS defects, or one or more SEF defects, or one or more LPR defects.
+//
+//			If the relevant Recommendation ([ITUT G.992.3], [ITUT G.992.5] or [ITUT G.993.2]) supports a 1-s
+//			normalized CRC-8 anomaly counter increment, the 1-s SES counter follows this value instead of
+//			counting CRC-8 anomalies directly.
+//
+//			If a common CRC is applied over multiple bearer channels, then each related CRC-8 anomaly is
+//			counted only once for the whole set of bearer channels over which the CRC is applied.
+//
+//			(R) (mandatory) (2-bytes)
+//
+//		Line Initializations
+//			This attribute counts the total number of full initializations attempted on the line, both
+//			successful and failed. (R) (mandatory) (2-bytes)
+//
+//		Failed Line Initializations
+//			This attribute counts the total number of failed full initializations during the accumulation
+//			period. A failed full initialization occurs when showtime is not reached at the end of the full
+//			initialization procedure. (R) (mandatory) (2-bytes)
+//
+//		Short Initializations
+//			This attribute counts the total number of fast retrains or short initializations attempted on
+//			the line, successful and failed. Fast retrain is defined in [ITUT G.992.2]. Short initialization
+//			is defined in [ITUT-G.992.3] and [ITUT G.992.4]. (R) (optional) (2-bytes)
+//
+//		Failed Short Initializations
+//			This attribute counts the total number of failed fast retrains or short initializations during
+//			the accumulation period, e.g., when:
+//
+//			-	a CRC error is detected;
+//
+//			-	a timeout occurs;
+//
+//			-	a fast retrain profile is unknown.
+//
+//			(R) (optional) (2-bytes)
+//
+//		Fec Seconds
+//			This attribute counts seconds during which there was an FEC anomaly. (R) (mandatory) (2-bytes)
+//
+//		Unavailable Seconds
+//			This attribute counts 1-s intervals during which the xDSL UNI is unavailable. The line becomes
+//			unavailable at the onset of 10 contiguous SES-Ls. The 10 SES-Ls are included in unavailable
+//			time. Once unavailable, the line becomes available at the onset of 10-contiguous seconds that
+//			are not severely errored. The 10-s with no SESLs are excluded from unavailable time. Some
+//			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, 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
+}
+
+func init() {
+	xdslxtucperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "XdslXtuCPerformanceMonitoringHistoryData",
+		ClassID: 112,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0:  "Loss of frame seconds",
+			1:  "Loss of signal seconds",
+			2:  "Loss of link seconds",
+			3:  "Loss of power seconds",
+			4:  "Errored seconds",
+			5:  "Severely errored seconds",
+			6:  "Line initializations",
+			7:  "Failed line initializations",
+			8:  "Short initializations",
+			9:  "Failed short initializations",
+			10: "FEC seconds",
+			11: "Unavailable seconds",
+		},
+	}
+}
+
+// NewXdslXtuCPerformanceMonitoringHistoryData (class ID 112) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewXdslXtuCPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*xdslxtucperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslxtu-cperformancemonitoringhistorydatapart2.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslxtu-cperformancemonitoringhistorydatapart2.go
new file mode 100644
index 0000000..bc65164
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslxtu-cperformancemonitoringhistorydatapart2.go
@@ -0,0 +1,109 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// XdslXtuCPerformanceMonitoringHistoryDataPart2ClassID is the 16-bit ID for the OMCI
+// Managed entity xDSL xTU-C performance monitoring history data part 2
+const XdslXtuCPerformanceMonitoringHistoryDataPart2ClassID = ClassID(408) // 0x0198
+
+var xdslxtucperformancemonitoringhistorydatapart2BME *ManagedEntityDefinition
+
+// XdslXtuCPerformanceMonitoringHistoryDataPart2 (Class ID: #408 / 0x0198)
+//	This ME collects PM data on the xTUC to xTUR path as seen from the xTU-C. Instances of this ME
+//	are created and deleted by the OLT.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an xDSL UNI.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the PPTP xDSL UNI part 1. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 and 2 MEs
+//			that contain PM threshold values. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Leftr Defect Seconds
+//			"leftr" defect seconds: If retransmission is used, this attribute is a count of the seconds with
+//			a near-end ''leftr'' defect present - see clause 7.2.1.1.6 of [ITU-T G.997.1]. (R) (mandatory)
+//			(2-bytes)
+//
+//		Error_Free Bits Counter
+//			Error-free bits counter: If retransmission is used, this attribute is a count of the number of
+//			error-free bits passed over the B1 reference point, divided by 216 - see clause-7.2.1.1.7 of
+//			[ITU-T G.997.1]. (R) (mandatory) (4-bytes)
+//
+//		Minimum Error_Free Throughput Mineftr
+//			Minimum error-free throughput (MINEFTR): If retransmission is used, this attribute is the
+//			minimum error-free throughput in bits per second - see clause 7.2.1.1.8 of [ITUT-G.997.1]. (R)
+//			(mandatory) (4-bytes)
+//
+type XdslXtuCPerformanceMonitoringHistoryDataPart2 struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	xdslxtucperformancemonitoringhistorydatapart2BME = &ManagedEntityDefinition{
+		Name:    "XdslXtuCPerformanceMonitoringHistoryDataPart2",
+		ClassID: 408,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "leftr defect seconds",
+		},
+	}
+}
+
+// NewXdslXtuCPerformanceMonitoringHistoryDataPart2 (class ID 408) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewXdslXtuCPerformanceMonitoringHistoryDataPart2(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*xdslxtucperformancemonitoringhistorydatapart2BME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslxtu-rchannelperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslxtu-rchannelperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..d9602df
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslxtu-rchannelperformancemonitoringhistorydata.go
@@ -0,0 +1,127 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// XdslXtuRChannelPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity xDSL xTU-R channel performance monitoring history data
+const XdslXtuRChannelPerformanceMonitoringHistoryDataClassID = ClassID(115) // 0x0073
+
+var xdslxturchannelperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// XdslXtuRChannelPerformanceMonitoringHistoryData (Class ID: #115 / 0x0073)
+//	This ME collects PM data of the xTUC to xTUR channel as seen from the xTU-R. Instances of this
+//	ME are created and deleted by the OLT.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an xDSL bearer channel. Several instances may
+//		therefore be associated with an xDSL UNI.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. The two MSBs of the first byte are
+//			the bearer channel ID. Excluding the first 2-bits of the first byte, the remaining part of the
+//			ME ID is identical to that of this ME's parent PPTP xDSL UNI part 1. (R, setbycreate)
+//			(mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 ME that
+//			contains PM threshold values. Since no threshold value attribute number exceeds 7, a threshold
+//			data 2 ME is optional. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Corrected Blocks
+//			This attribute counts blocks received with errors that were corrected on this channel. (R)
+//			(mandatory) (4-bytes)
+//
+//		Uncorrected Blocks
+//			This attribute counts blocks received with uncorrectable errors on this channel. (R) (mandatory)
+//			(4-bytes)
+//
+//		Transmitted Blocks
+//			This attribute counts encoded blocks transmitted on this channel. (R) (mandatory) (4-bytes)
+//
+//		Received Blocks
+//			This attribute counts encoded blocks received on this channel. (R) (mandatory) (4-bytes)
+//
+//		Code Violations
+//			This attribute counts FEBE anomalies reported in the downstream bearer channel. If the CRC is
+//			applied over multiple bearer channels, then each related FEBE anomaly increments each of the
+//			counters related to the individual bearer channels. (R) (mandatory) (2-bytes)
+//
+//		Forward Error Corrections
+//			This attribute counts FFEC anomalies reported in the downstream bearer channel. If FEC is
+//			applied over multiple bearer channels, each related FFEC anomaly increments each of the counters
+//			related to the individual bearer channels. (R) (mandatory) (2-bytes)
+//
+type XdslXtuRChannelPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	xdslxturchannelperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "XdslXtuRChannelPerformanceMonitoringHistoryData",
+		ClassID: 115,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Corrected blocks",
+			1: "Uncorrected blocks",
+			2: "Code violations",
+			3: "Forward error corrections",
+		},
+	}
+}
+
+// NewXdslXtuRChannelPerformanceMonitoringHistoryData (class ID 115) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewXdslXtuRChannelPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*xdslxturchannelperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslxtu-rperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslxtu-rperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..a649da5
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/xdslxtu-rperformancemonitoringhistorydata.go
@@ -0,0 +1,167 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// XdslXtuRPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity xDSL xTU-R performance monitoring history data
+const XdslXtuRPerformanceMonitoringHistoryDataClassID = ClassID(113) // 0x0071
+
+var xdslxturperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// XdslXtuRPerformanceMonitoringHistoryData (Class ID: #113 / 0x0071)
+//	This ME collects PM data of the xTUC to xTUR path as seen from the xTU-R. Instances of this ME
+//	are created and deleted by the OLT.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an xDSL UNI.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the PPTP xDSL UNI part 1. (R, setbycreate) (mandatory)
+//			(2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 ME that
+//			contains PM threshold values. Since no threshold value attribute number exceeds 7, a threshold
+//			data 2 ME is optional. (R,-W, setbycreate) (mandatory) (2-bytes)
+//
+//		Loss Of Frame Seconds
+//			(R) (mandatory) (2-bytes)
+//
+//		Loss Of Signal Seconds
+//			(R) (mandatory) (2-bytes)
+//
+//		Loss Of Power Seconds
+//			(R) (mandatory) (2-bytes)
+//
+//		Errored Seconds
+//			This attribute counts 1-s intervals with one or more far end block error (FEBE) anomalies summed
+//			over all transmitted bearer channels, or one or more LOSFE defects, or one or more RDI defects,
+//			or one or more LPR-FE defects. (R) (mandatory) (2-bytes)
+//
+//		Severely Errored Seconds
+//			This attribute counts severely errored seconds (SES-LFE). An SES is declared if, during a 1-s
+//			interval, 18 or more FEBE anomalies were reported across the totality of bearer channels, or
+//			there were one or more far-end LOS defects, one or more RDI defects or one or more LPRFE
+//			defects.
+//
+//			If the relevant Recommendation ([ITUT G.992.3], [ITUT G.992.5] or [ITUT G.993.2]) supports a 1-s
+//			normalized CRC-8 anomaly counter increment, the 1-s SES counter follows this value instead of
+//			counting FEBE anomalies directly.
+//
+//			If a CRC is applied for multiple bearer channels, then each related FEBE anomaly is counted only
+//			once for the whole set of related bearer channels.
+//
+//			(R) (mandatory) (2-bytes)
+//
+//		Fec Seconds
+//			This attribute counts seconds during which there was an FEC anomaly. (R) (mandatory) (2-bytes)
+//
+//		Unavailable Seconds
+//			The far-end xDSL termination becomes unavailable at the onset of 10 contiguous SES-LFEs. The 10
+//			SES-LFEs are included in unavailable time. Once unavailable, the far-end line becomes available
+//			at the onset of 10 contiguous seconds with no SES-LFEs. The 10-s with no SES-LFEs are excluded
+//			from unavailable time. Some attribute counts are inhibited during unavailability - see clause
+//			7.2.7.13 of [ITUT G.997.1].
+//
+//			(R) (mandatory) (2-bytes)
+//
+//			This attribute counts 1-s intervals during which the far-end xDSL termination is unavailable.
+//
+//		Leftr Defect Seconds
+//			"leftr" defect seconds: If retransmission is used, this parameter is a count of the seconds with
+//			a near-end ''leftr'' defect present - see clause 7.2.1.1.6 of [ITUT-G.997.1]. (R) (optional)
+//			(2-bytes)
+//
+//		Error_Free Bits Counter
+//			Error-free bits counter: If retransmission is used, this parameter is a count of the number of
+//			error-free bits passed over the B1 reference point, divided by 216 - see clause 7.2.1.1.7 of
+//			[ITU-T G.997.1]. (R) (optional) (4-bytes)
+//
+//		Minimum Error_Free Throughput Mineftr
+//			Minimum error-free throughput (MINEFTR): If retransmission is used, this parameter is the
+//			minimum error-free throughput in bits per second - see clause 7.2.1.1.8 of [ITUT-G.997.1]. (R)
+//			(optional) (4-bytes)
+//
+type XdslXtuRPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	xdslxturperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "XdslXtuRPerformanceMonitoringHistoryData",
+		ClassID: 113,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			0: "Loss of frame seconds",
+			1: "Loss of signal seconds",
+			2: "Loss of power seconds",
+			3: "Errored seconds",
+			4: "Severely errored seconds",
+			5: "FEC seconds",
+			6: "Unavailable seconds",
+			7: "leftr defect seconds",
+		},
+	}
+}
+
+// NewXdslXtuRPerformanceMonitoringHistoryData (class ID 113) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewXdslXtuRPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*xdslxturperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/xg-pondownstreammanagementperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/xg-pondownstreammanagementperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..3245441
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/xg-pondownstreammanagementperformancemonitoringhistorydata.go
@@ -0,0 +1,165 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// XgPonDownstreamManagementPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity XG-PON downstream management performance monitoring history data
+const XgPonDownstreamManagementPerformanceMonitoringHistoryDataClassID = ClassID(345) // 0x0159
+
+var xgpondownstreammanagementperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// XgPonDownstreamManagementPerformanceMonitoringHistoryData (Class ID: #345 / 0x0159)
+//	This ME collects PM data associated with the XG-PON TC layer. It collects counters associated
+//	with downstream PLOAM and OMCI messages.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an ANI-G.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the ANI-G. (R, set-by-create) (mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 ME that
+//			contains PM threshold values. Since no threshold value attribute number exceeds 7, a threshold
+//			data 2 ME is optional. (R,-W, set-by-create) (mandatory) (2-bytes)
+//
+//		Ploam Message Integrity Check Mic Error Count
+//			PLOAM message integrity check (MIC) error count: This attribute counts MIC errors detected in
+//			downstream PLOAM messages, either directed to this ONU or broadcast to all ONUs. (R) (optional)
+//			(4-bytes)
+//
+//		Downstream Ploam Messages Count
+//			This attribute counts PLOAM messages received, either directed to this ONU or broadcast to all
+//			ONUs. (R) (optional) (4-bytes)
+//
+//		Profile Messages Received
+//			This attribute counts the number of profile messages received, either directed to this ONU or
+//			broadcast to all ONUs. In [ITU-T G.9807.1], this attribute is used for received burst_profile
+//			message count.  (R) (optional) (4-bytes)
+//
+//		Ranging_Time Messages Received
+//			This attribute counts the number of ranging_time messages received, either directed to this ONU
+//			or broadcast to all ONUs. (R) (mandatory) (4-bytes)
+//
+//		Deactivate_Onu_Id Messages Received
+//			Deactivate_ONU-ID messages received: This attribute counts the number of deactivate_ONU-ID
+//			messages received, either directed to this ONU or broadcast to all ONUs. Deactivate_ONU-ID
+//			messages do not reset this counter. (R) (optional) (4-bytes)
+//
+//		Disable_Serial_Number Messages Received
+//			This attribute counts the number of disable_serial_number messages received, whose serial number
+//			specified this ONU. (R) (optional) (4-bytes)
+//
+//		Request_Registration Messages Received
+//			This attribute counts the number of request_registration messages received. (R) (optional)
+//			(4-bytes)
+//
+//		Assign_Alloc_Id Messages Received
+//			Assign_alloc-ID messages received: This attribute counts the number of assign_alloc-ID messages
+//			received. (R) (optional) (4-bytes)
+//
+//		Key_Control Messages Received
+//			This attribute counts the number of key_control messages received, either directed to this ONU
+//			or broadcast to all ONUs. (R) (optional) (4-bytes)
+//
+//		Sleep_Allow Messages Received
+//			This attribute counts the number of sleep_allow messages received, either directed to this ONU
+//			or broadcast to all ONUs. (R) (optional) (4-bytes)
+//
+//		Baseline Omci Messages Received Count
+//			This attribute counts the number of OMCI messages received in the baseline message format. (R)
+//			(optional) (4-bytes)
+//
+//		Extended Omci Messages Received Count
+//			This attribute counts the number of OMCI messages received in the extended message format. (R)
+//			(optional) (4-bytes)
+//
+//		Assign_Onu_Id Messages Received
+//			Assign_ONU-ID messages received: This attribute counts the number of assign_ONU-ID messages
+//			received since the last re-boot. (R) (optional) (4-bytes)
+//
+//		Omci Mic Error Count
+//			This attribute counts MIC errors detected in OMCI messages directed to this ONU. (R) (optional)
+//			(4-bytes)
+//
+type XgPonDownstreamManagementPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	xgpondownstreammanagementperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "XgPonDownstreamManagementPerformanceMonitoringHistoryData",
+		ClassID: 345,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			1: "PLOAM MIC error count",
+			2: "OMCI MIC error count",
+		},
+	}
+}
+
+// NewXgPonDownstreamManagementPerformanceMonitoringHistoryData (class ID 345) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewXgPonDownstreamManagementPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*xgpondownstreammanagementperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/xg-pontcperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/xg-pontcperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..4c7a0f9
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/xg-pontcperformancemonitoringhistorydata.go
@@ -0,0 +1,174 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// XgPonTcPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity XG-PON TC performance monitoring history data
+const XgPonTcPerformanceMonitoringHistoryDataClassID = ClassID(344) // 0x0158
+
+var xgpontcperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// XgPonTcPerformanceMonitoringHistoryData (Class ID: #344 / 0x0158)
+//	This ME collects PM data associated with the XG-PON TC layer.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an ANI-G.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the ANI-G. (R, set-by-create) (mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: This attribute points to an instance of the threshold data 1 ME that
+//			contains PM threshold values. (R,-W, set-by-create) (mandatory) (2-bytes)
+//
+//		Psbd Hec Error Count
+//			This attribute counts HEC errors in any of the fields of the downstream physical sync block. (R)
+//			(optional) (4-bytes)
+//
+//		Xgtc Hec Error Count
+//			This attribute counts HEC errors detected in the XGTC header. In [ITU-T G.9807.1], this
+//			attribute is used for framing sublayer (FS) HEC error count management. (R) (optional) (4-bytes)
+//
+//		Unknown Profile Count
+//			This attribute counts the number of grants received whose specified profile was not known to the
+//			ONU. (R) (optional) (4-bytes)
+//
+//		Transmitted Xg_Pon Encapsulation Method Xgem Frames
+//			Transmitted XG-PON encapsulation method (XGEM) frames: This attribute counts the number of non-
+//			idle XGEM frames transmitted. If a service data unit (SDU) is fragmented, each fragment is an
+//			XGEM frame and is counted as such. (R) (mandatory) (4 bytes)
+//
+//		Fragment Xgem Frames
+//			This attribute counts the number of XGEM frames that represent fragmented SDUs, as indicated by
+//			the LF bit-= 0. (R) (optional) (4-bytes)
+//
+//		Xgem Hec Lost Words Count
+//			This attribute counts the number of 4-byte words lost because of an XGEM frame HEC error. In
+//			general, all XGTC payload following the error is lost, until the next PSBd event. (R) (optional)
+//			(4 bytes)
+//
+//		Xgem Key Errors
+//			This attribute counts the number of downstream XGEM frames received with an invalid key
+//			specification. The key may be invalid for several reasons, among which are:
+//
+//			a)	GEM port provisioned for clear text and key index not equal to 00;
+//
+//			b)	no multicast key of the specified key index has been provided via the OMCI for a multicast
+//			GEM port;
+//
+//			c)	no unicast key of the specified key index has been successfully negotiated (see clause 15.5
+//			of [ITU-T G.987.3] or clause C.15.5 of [ITU-T G.9807.1] for key negotiation state machine);
+//
+//			d)	GEM port specified to be encrypted and key index-= 00;
+//
+//			e)	key index-= 11, a reserved value.
+//
+//			(R) (mandatory) (4 bytes)
+//
+//		Xgem Hec Error Count
+//			This attribute counts the number of instances of an XGEM frame HEC error. (R) (mandatory) (4
+//			bytes)
+//
+//		Transmitted Bytes In Non_Idle Xgem Frames
+//			Transmitted bytes in non-idle XGEM frames: This attribute counts the number of transmitted bytes
+//			in non-idle XGEM frames. (R) (mandatory) (8 bytes)
+//
+//		Received Bytes In Non_Idle Xgem Frames
+//			Received bytes in non-idle XGEM frames: This attribute counts the number of received bytes in
+//			non-idle XGEM frames. (R) (optional) (8 bytes)
+//
+//		Loss Of Downstream Synchronization Lods Event Count
+//			Loss of downstream synchronization (LODS) event count: This attribute counts the number of state
+//			transitions from O5.1 to O6. (R) (optional) (4-bytes)
+//
+//		Lods Event Restored Count
+//			This attribute counts the number of LODS cleared events. (R) (optional) (4-bytes)
+//
+//		Onu Reactivation By Lods Events
+//			This attribute counts the number of LODS events resulting in ONU reactivation without
+//			synchronization being reacquired. (R) (optional) (4-bytes)
+//
+type XgPonTcPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	xgpontcperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "XgPonTcPerformanceMonitoringHistoryData",
+		ClassID: 344,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+		Alarms: AlarmMap{
+			1: "PSBd HEC error count",
+			2: "XGTC HEC error count",
+			3: "Unknown profile count",
+			4: "XGEM HEC loss count",
+			5: "XGEM key errors",
+			6: "XGEM HEC error count",
+		},
+	}
+}
+
+// NewXgPonTcPerformanceMonitoringHistoryData (class ID 344) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewXgPonTcPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*xgpontcperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/xg-ponupstreammanagementperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/xg-ponupstreammanagementperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..6b44c68
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/xg-ponupstreammanagementperformancemonitoringhistorydata.go
@@ -0,0 +1,115 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// XgPonUpstreamManagementPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity XG-PON upstream management performance monitoring history data
+const XgPonUpstreamManagementPerformanceMonitoringHistoryDataClassID = ClassID(346) // 0x015a
+
+var xgponupstreammanagementperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// XgPonUpstreamManagementPerformanceMonitoringHistoryData (Class ID: #346 / 0x015a)
+//	This ME collects PM data associated with the XG-PON TC layer. It counts upstream PLOAM messages
+//	transmitted by the ONU.
+//
+//	For a complete discussion of generic PM architecture, refer to clause I.4.
+//
+//	Relationships
+//		An instance of this ME is associated with an ANI-G.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the ANI-G. (R, set-by-create) (mandatory) (2-bytes)
+//
+//		Interval End Time
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
+//
+//		Threshold Data 1_2 Id
+//			Threshold data 1/2 ID: No thresholds are defined for this ME. For uniformity with other PM, the
+//			attribute is retained and shown as mandatory, but it should be set to a null pointer. (R,-W,
+//			set-by-create) (mandatory) (2-bytes)
+//
+//		Upstream Ploam Message Count
+//			This attribute counts PLOAM messages transmitted upstream, excluding acknowledge messages. (R)
+//			(optional) (4-bytes)
+//
+//		Serial_Number_Onu Message Count
+//			This attribute counts Serial_number_ONU PLOAM messages transmitted. (R) (optional) (4-bytes)
+//
+//		Registration Message Count
+//			This attribute counts Registration PLOAM messages transmitted. (R) (optional) (4-bytes)
+//
+//		Key_Report Message Count
+//			This attribute counts key_report PLOAM messages transmitted. (R) (optional) (4-bytes)
+//
+//		Acknowledge Message Count
+//			This attribute counts acknowledge PLOAM messages transmitted. It includes all forms of
+//			acknowledgement (AK), including those transmitted in response to a PLOAM grant when the ONU has
+//			nothing to send. (R) (optional) (4-bytes)
+//
+//		Sleep_Request Message Count
+//			This attribute counts sleep_request PLOAM messages transmitted. (R) (optional) (4-bytes)
+//
+type XgPonUpstreamManagementPerformanceMonitoringHistoryData struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	xgponupstreammanagementperformancemonitoringhistorydataBME = &ManagedEntityDefinition{
+		Name:    "XgPonUpstreamManagementPerformanceMonitoringHistoryData",
+		ClassID: 346,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			Set,
+			GetCurrentData,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewXgPonUpstreamManagementPerformanceMonitoringHistoryData (class ID 346) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewXgPonUpstreamManagementPerformanceMonitoringHistoryData(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*xgponupstreammanagementperformancemonitoringhistorydataBME, params...)
+}
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/generated/xtudatagatheringconfiguration.go b/vendor/github.com/opencord/omci-lib-go/v2/generated/xtudatagatheringconfiguration.go
new file mode 100644
index 0000000..33e78c5
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/v2/generated/xtudatagatheringconfiguration.go
@@ -0,0 +1,117 @@
+/*
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * NOTE: This file was generated, manual edits will be overwritten!
+ *
+ * Generated by 'goCodeGenerator.py':
+ *              https://github.com/cboling/OMCI-parser/README.md
+ */
+
+package generated
+
+import "github.com/deckarep/golang-set"
+
+// XtuDataGatheringConfigurationClassID is the 16-bit ID for the OMCI
+// Managed entity xTU data gathering configuration
+const XtuDataGatheringConfigurationClassID = ClassID(413) // 0x019d
+
+var xtudatagatheringconfigurationBME *ManagedEntityDefinition
+
+// XtuDataGatheringConfiguration (Class ID: #413 / 0x019d)
+//	This ME defines configurations specific to data gathering.
+//
+//	An instance of this ME is created and deleted by the OLT.
+//
+//	Relationships
+//		An instance of this ME may be associated with zero or more instances of the PPTP xDSL UNI part
+//		1.
+//
+//	Attributes
+//		Managed Entity Id
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the PPTP xDSL UNI part 1 ME. (R,-set-by-create) (mandatory)
+//			(2 bytes)
+//
+//		Logging Depth Event Percentage Per Event _ Vtu_O Logging_Depth_Event_Percentage_Oi Table
+//			Logging depth event percentage per event - VTU-O (LOGGING_DEPTH_EVENT_PERCENTAGE_Oi) table: This
+//			parameter is the percentage of the data gathering event buffer assigned to event type i at the
+//			VTU-O. See clause 7.3.6.1 of [ITU-T G.997.1]. Each element in the table consists of 2-bytes,
+//			where the first byte is event type i, and the second byte is the percentage of event type i
+//			defined as the integer value multiplied by 1%. (R, W) (optional) (2- N-bytes for N event types)
+//
+//		Logging Depth Event Percentage Per Event _ Vtu_R Logging_Depth_Event_Percentage_Ri Table
+//			Logging depth event percentage per event - VTU-R (LOGGING_DEPTH_EVENT_PERCENTAGE_Ri) table: This
+//			parameter is the percentage of the data gathering event buffer assigned to event type i at the
+//			VTU-R. See clause 7.3.6.2 of [ITU-T G.997.1]. Each element in the table consists of 2-bytes,
+//			where the first byte is event type i, and the second byte is the percentage of event type i
+//			defined as the integer value multiplied by 1%. (R, W) (optional) (2- N-bytes for N event types)
+//
+//		Logging Depth For Vtu_O Reporting _ Vtu_R Logging_Depth_Reporting_O
+//			Logging depth for VTU-O reporting - VTU-R (LOGGING_DEPTH_REPORTING_O): This parameter is the
+//			logging depth that is requested for reporting the VTU-O event trace buffer in the COMIB, in
+//			number of 6-byte data gathering records. See clause 7.3.6.3 of [ITU-T G.997.1]. (R, W)
+//			(optional) (2-bytes)
+//
+//		Logging Depth For Vtu_R Reporting _ Vtu_R Logging_Depth_Reporting_R
+//			Logging depth for VTU-R reporting - VTU-R (LOGGING_DEPTH_REPORTING_R): This parameter is the
+//			logging depth that is requested for reporting the VTU-R event trace buffer over the embedded
+//			operations channel (eoc), in number of 6-byte data gathering records. See clause 7.3.6.4 of
+//			[ITU-T G.997.1]. (R, W) (optional) (2-bytes)
+//
+//		Logging Data Report Newer Events First _ Vtu_R Logging_Report_Newer_First
+//			Logging data report newer events first - VTU-R (LOGGING_REPORT_NEWER_FIRST): This parameter
+//			determines whether the VTU-R to reports newer events first or older events first. See clause
+//			7.3.6.4 of [ITU-T G.997.1]. False is mapped to 0, true is mapped to 1. (R, W) (optional)
+//			(1-byte)
+//
+type XtuDataGatheringConfiguration struct {
+	ManagedEntityDefinition
+	Attributes AttributeValueMap
+}
+
+func init() {
+	xtudatagatheringconfigurationBME = &ManagedEntityDefinition{
+		Name:    "XtuDataGatheringConfiguration",
+		ClassID: 413,
+		MessageTypes: mapset.NewSetWith(
+			Create,
+			Delete,
+			Get,
+			GetNext,
+			Set,
+			SetTable,
+		),
+		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),
+		},
+		Access:  CreatedByOlt,
+		Support: UnknownSupport,
+	}
+}
+
+// NewXtuDataGatheringConfiguration (class ID 413) creates the basic
+// Managed Entity definition that is used to validate an ME of this type that
+// is received from or transmitted to the OMCC.
+func NewXtuDataGatheringConfiguration(params ...ParamData) (*ManagedEntity, OmciErrors) {
+	return NewManagedEntity(*xtudatagatheringconfigurationBME, params...)
+}