Change MDS value on on successful response
Move to omci-lib-go version v0.15.4

Change-Id: I4184d26e3006c4b28dcab806e51bc1fc9f2b878e
diff --git a/go.mod b/go.mod
index 137678c..f896166 100644
--- a/go.mod
+++ b/go.mod
@@ -16,7 +16,7 @@
 	github.com/olekukonko/tablewriter v0.0.4
 	github.com/opencord/cordctl v0.0.0-20190909161711-01e9c1f04bf4
 	github.com/opencord/device-management-interface v0.9.5
-	github.com/opencord/omci-lib-go v0.13.6
+	github.com/opencord/omci-lib-go v0.15.4
 	github.com/opencord/voltha-protos/v4 v4.0.2
 	github.com/pkg/errors v0.8.1 // indirect
 	github.com/sirupsen/logrus v1.4.2
diff --git a/go.sum b/go.sum
index 55e89e1..85585e2 100644
--- a/go.sum
+++ b/go.sum
@@ -87,8 +87,8 @@
 github.com/opencord/cordctl v0.0.0-20190909161711-01e9c1f04bf4/go.mod h1:/+3S0pwQUy7HeKnH0KfKp5W6hmh/LdZzuZTNT/m7vA4=
 github.com/opencord/device-management-interface v0.9.5 h1:sBnkLLYdZHeaVscmh6SXR5jzlTfUTBPiAi8LspHGjwk=
 github.com/opencord/device-management-interface v0.9.5/go.mod h1:G1owSqGBGaqllrwtjxfLTsy9EDsGhdhmqkJM3XOnPD0=
-github.com/opencord/omci-lib-go v0.13.6 h1:T6fyvALAo4Kn2x756S2QhOFFbF/dR939IskZF3gb7O4=
-github.com/opencord/omci-lib-go v0.13.6/go.mod h1:6OIHB14Ch5qGgHzwSWlMACtk5KFoLzQ4LAhdcy4jwvo=
+github.com/opencord/omci-lib-go v0.15.4 h1:g+IkuCZeS7Okvm7TxjobaLwX6UHo26hCvdyyqX9Bfi8=
+github.com/opencord/omci-lib-go v0.15.4/go.mod h1:6OIHB14Ch5qGgHzwSWlMACtk5KFoLzQ4LAhdcy4jwvo=
 github.com/opencord/voltha-protos/v4 v4.0.2 h1:SI25ljqftc8Tc28CgfqSE4IGCLJ5MgCmBQlE96hl9X8=
 github.com/opencord/voltha-protos/v4 v4.0.2/go.mod h1:W/OIFIyvFh/C0vchRUuarIsMylEhzCRM9pNxLvkPtKc=
 github.com/pierrec/lz4 v2.4.1+incompatible h1:mFe7ttWaflA46Mhqh+jUfjp2qTbPYxLB2/OyBppH9dg=
diff --git a/internal/bbsim/devices/onu.go b/internal/bbsim/devices/onu.go
index 465f2cd..9bfe805 100644
--- a/internal/bbsim/devices/onu.go
+++ b/internal/bbsim/devices/onu.go
@@ -640,15 +640,17 @@
 	}).Trace("omci-message-decoded")
 
 	var responsePkt []byte
+	var errResp error
 	switch omciMsg.MessageType {
 	case omci.MibResetRequestType:
-		o.MibDataSync = 0
 		onuLogger.WithFields(log.Fields{
 			"IntfId":       o.PonPortID,
 			"OnuId":        o.ID,
 			"SerialNumber": o.Sn(),
 		}).Debug("received-mib-reset-request-resetting-mds")
-		responsePkt, _ = omcilib.CreateMibResetResponse(omciMsg.TransactionID)
+		if responsePkt, errResp = omcilib.CreateMibResetResponse(omciMsg.TransactionID); errResp == nil {
+			o.MibDataSync = 0
+		}
 	case omci.MibUploadRequestType:
 		responsePkt, _ = omcilib.CreateMibUploadResponse(omciMsg.TransactionID)
 	case omci.MibUploadNextRequestType:
@@ -656,8 +658,9 @@
 	case omci.GetRequestType:
 		responsePkt, _ = omcilib.CreateGetResponse(omciPkt, omciMsg, o.SerialNumber, o.MibDataSync)
 	case omci.SetRequestType:
-		o.MibDataSync++
-		responsePkt, _ = omcilib.CreateSetResponse(omciPkt, omciMsg)
+		if responsePkt, errResp = omcilib.CreateSetResponse(omciPkt, omciMsg); errResp == nil {
+			o.MibDataSync++
+		}
 
 		msgObj, _ := omcilib.ParseSetRequest(omciPkt)
 		switch msgObj.EntityClass {
@@ -684,11 +687,13 @@
 			}
 		}
 	case omci.CreateRequestType:
-		o.MibDataSync++
-		responsePkt, _ = omcilib.CreateCreateResponse(omciPkt, omciMsg)
+		if responsePkt, errResp = omcilib.CreateCreateResponse(omciPkt, omciMsg); errResp == nil {
+			o.MibDataSync++
+		}
 	case omci.DeleteRequestType:
-		o.MibDataSync++
-		responsePkt, _ = omcilib.CreateDeleteResponse(omciPkt, omciMsg)
+		if responsePkt, errResp = omcilib.CreateDeleteResponse(omciPkt, omciMsg); errResp == nil {
+			o.MibDataSync++
+		}
 	case omci.RebootRequestType:
 
 		responsePkt, _ = omcilib.CreateRebootResponse(omciPkt, omciMsg)
diff --git a/vendor/github.com/opencord/omci-lib-go/VERSION b/vendor/github.com/opencord/omci-lib-go/VERSION
index ebf55b3..9f40a87 100644
--- a/vendor/github.com/opencord/omci-lib-go/VERSION
+++ b/vendor/github.com/opencord/omci-lib-go/VERSION
@@ -1 +1 @@
-0.13.6
+0.15.4
\ No newline at end of file
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/aal5performancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/generated/aal5performancemonitoringhistorydata.go
index fe110a2..560466d 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/aal5performancemonitoringhistorydata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/aal5performancemonitoringhistorydata.go
@@ -93,6 +93,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xfe00,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/callcontrolperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/generated/callcontrolperformancemonitoringhistorydata.go
index eb015ed..5ef2495 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/callcontrolperformancemonitoringhistorydata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/callcontrolperformancemonitoringhistorydata.go
@@ -92,6 +92,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xfe00,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/classidmap.go b/vendor/github.com/opencord/omci-lib-go/generated/classidmap.go
index 2fe9ea1..3c3bdbe 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/classidmap.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/classidmap.go
@@ -14,7 +14,7 @@
  * 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':
@@ -53,7 +53,7 @@
 
 func init() {
 	// Create mapping of 16-bit managed entity class IDs to ME-type
-	classToManagedEntityMap = make(map[ClassID]CreateME, 177)
+	classToManagedEntityMap = make(map[ClassID]CreateME, 179)
 
 	classToManagedEntityMap[2] = NewOnuData
 	classToManagedEntityMap[5] = NewCardholder
@@ -170,9 +170,11 @@
 	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
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/dot1agdefaultmdlevel.go b/vendor/github.com/opencord/omci-lib-go/generated/dot1agdefaultmdlevel.go
index 9e3f800..2cb7823 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/dot1agdefaultmdlevel.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/dot1agdefaultmdlevel.go
@@ -14,7 +14,7 @@
  * 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':
@@ -92,6 +92,7 @@
 			Get,
 			GetNext,
 			Set,
+			SetTable,
 		),
 		AllowedAttributeMask: 0xf800,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/dot1xperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/generated/dot1xperformancemonitoringhistorydata.go
index fa9ebfd..9cf56c3 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/dot1xperformancemonitoringhistorydata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/dot1xperformancemonitoringhistorydata.go
@@ -120,6 +120,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xfffc,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/efmbondinggroupperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/generated/efmbondinggroupperformancemonitoringhistorydata.go
index 902298a..a73c150 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/efmbondinggroupperformancemonitoringhistorydata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/efmbondinggroupperformancemonitoringhistorydata.go
@@ -100,6 +100,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xfff0,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/efmbondinggroupperformancemonitoringhistorydatapart2.go b/vendor/github.com/opencord/omci-lib-go/generated/efmbondinggroupperformancemonitoringhistorydatapart2.go
index bc141a7..b8f00fa 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/efmbondinggroupperformancemonitoringhistorydatapart2.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/efmbondinggroupperformancemonitoringhistorydatapart2.go
@@ -14,7 +14,7 @@
  * 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':
@@ -114,6 +114,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xfffc,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/efmbondinglinkperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/generated/efmbondinglinkperformancemonitoringhistorydata.go
index 615d0b2..ec48e2f 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/efmbondinglinkperformancemonitoringhistorydata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/efmbondinglinkperformancemonitoringhistorydata.go
@@ -14,7 +14,7 @@
  * 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':
@@ -90,6 +90,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xffc0,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/efmbondingportperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/generated/efmbondingportperformancemonitoringhistorydata.go
index 7f6ba5c..fe99125 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/efmbondingportperformancemonitoringhistorydata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/efmbondingportperformancemonitoringhistorydata.go
@@ -14,7 +14,7 @@
  * 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':
@@ -89,6 +89,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xff00,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/efmbondingportperformancemonitoringhistorydatapart2.go b/vendor/github.com/opencord/omci-lib-go/generated/efmbondingportperformancemonitoringhistorydatapart2.go
index 5c46025..4bbb56e 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/efmbondingportperformancemonitoringhistorydatapart2.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/efmbondingportperformancemonitoringhistorydatapart2.go
@@ -14,7 +14,7 @@
  * 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':
@@ -115,6 +115,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xfffc,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/energyconsumptionperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/generated/energyconsumptionperformancemonitoringhistorydata.go
index 89bf9d3..0b334bf 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/energyconsumptionperformancemonitoringhistorydata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/energyconsumptionperformancemonitoringhistorydata.go
@@ -14,7 +14,7 @@
  * 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':
@@ -88,6 +88,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xfc00,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/enhancedfecperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/generated/enhancedfecperformancemonitoringhistorydata.go
index 40221e7..9fb45c9 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/enhancedfecperformancemonitoringhistorydata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/enhancedfecperformancemonitoringhistorydata.go
@@ -88,6 +88,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xfe00,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/enhancedtcperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/generated/enhancedtcperformancemonitoringhistorydata.go
index 0ea33d0..aa80d5f 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/enhancedtcperformancemonitoringhistorydata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/enhancedtcperformancemonitoringhistorydata.go
@@ -120,6 +120,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xfffe,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/ethernetframeextendedpm.go b/vendor/github.com/opencord/omci-lib-go/generated/ethernetframeextendedpm.go
index a4cfd62..6ff360c 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/ethernetframeextendedpm.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/ethernetframeextendedpm.go
@@ -132,6 +132,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xffff,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/ethernetframeextendedpm64-bit.go b/vendor/github.com/opencord/omci-lib-go/generated/ethernetframeextendedpm64-bit.go
index 625818a..c3cbae7 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/ethernetframeextendedpm64-bit.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/ethernetframeextendedpm64-bit.go
@@ -128,6 +128,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xffff,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/ethernetframeperformancemonitoringhistorydatadownstream.go b/vendor/github.com/opencord/omci-lib-go/generated/ethernetframeperformancemonitoringhistorydatadownstream.go
index a535988..bdb2660 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/ethernetframeperformancemonitoringhistorydatadownstream.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/ethernetframeperformancemonitoringhistorydatadownstream.go
@@ -129,6 +129,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xffff,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/ethernetframeperformancemonitoringhistorydataupstream.go b/vendor/github.com/opencord/omci-lib-go/generated/ethernetframeperformancemonitoringhistorydataupstream.go
index 28df9cb..c735b43 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/ethernetframeperformancemonitoringhistorydataupstream.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/ethernetframeperformancemonitoringhistorydataupstream.go
@@ -137,6 +137,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xffff,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/ethernetperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/generated/ethernetperformancemonitoringhistorydata.go
index e0725b0..13174a7 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/ethernetperformancemonitoringhistorydata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/ethernetperformancemonitoringhistorydata.go
@@ -129,6 +129,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xffff,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/ethernetperformancemonitoringhistorydata2.go b/vendor/github.com/opencord/omci-lib-go/generated/ethernetperformancemonitoringhistorydata2.go
index fd07bb6..251eac4 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/ethernetperformancemonitoringhistorydata2.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/ethernetperformancemonitoringhistorydata2.go
@@ -74,6 +74,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xe000,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/ethernetperformancemonitoringhistorydata3.go b/vendor/github.com/opencord/omci-lib-go/generated/ethernetperformancemonitoringhistorydata3.go
index 1207ebc..f8f5772 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/ethernetperformancemonitoringhistorydata3.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/ethernetperformancemonitoringhistorydata3.go
@@ -144,6 +144,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xffff,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/extendedvlantaggingoperationconfigurationdata.go b/vendor/github.com/opencord/omci-lib-go/generated/extendedvlantaggingoperationconfigurationdata.go
index c487804..57ba11d 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/extendedvlantaggingoperationconfigurationdata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/extendedvlantaggingoperationconfigurationdata.go
@@ -14,7 +14,7 @@
  * 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':
@@ -104,6 +104,7 @@
 			Get,
 			GetNext,
 			Set,
+			SetTable,
 		),
 		AllowedAttributeMask: 0xff00,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/fecperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/generated/fecperformancemonitoringhistorydata.go
new file mode 100644
index 0000000..b990013
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/generated/fecperformancemonitoringhistorydata.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"
+
+// FecPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
+// Managed entity FEC performance monitoring history data
+const FecPerformanceMonitoringHistoryDataClassID ClassID = ClassID(312)
+
+var fecperformancemonitoringhistorydataBME *ManagedEntityDefinition
+
+// FecPerformanceMonitoringHistoryData (class ID #312)
+//	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
+//			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
+//			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
+//			Corrected bytes: This attribute counts the number of bytes that were corrected by the FEC
+//			function. (R) (mandatory) (4-bytes)
+//
+//		Corrected Code Words
+//			Corrected code words: This attribute counts the code words that were corrected by the FEC
+//			function. (R) (mandatory) (4-bytes)
+//
+//		Uncorrectable Code Words
+//			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
+//			Total code words: This attribute counts the total received code words. (R) (mandatory) (4-bytes)
+//
+//		Fec Seconds
+//			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/generated/galethernetperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/generated/galethernetperformancemonitoringhistorydata.go
index 722d200..edd9a89 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/galethernetperformancemonitoringhistorydata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/galethernetperformancemonitoringhistorydata.go
@@ -74,6 +74,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xe000,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/gemportnetworkctpperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/generated/gemportnetworkctpperformancemonitoringhistorydata.go
index 45b7c57..069b25c 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/gemportnetworkctpperformancemonitoringhistorydata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/gemportnetworkctpperformancemonitoringhistorydata.go
@@ -99,6 +99,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xfe00,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/generalpurposebuffer.go b/vendor/github.com/opencord/omci-lib-go/generated/generalpurposebuffer.go
new file mode 100644
index 0000000..cd323bf
--- /dev/null
+++ b/vendor/github.com/opencord/omci-lib-go/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 = ClassID(308)
+
+var generalpurposebufferBME *ManagedEntityDefinition
+
+// GeneralPurposeBuffer (class ID #308)
+//	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
+//			Managed entity ID: This attribute uniquely identifies each instance of this ME. (R, setbycreate)
+//			(mandatory) (2-bytes)
+//
+//		Maximum Size
+//			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
+//			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/generated/iphostperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/generated/iphostperformancemonitoringhistorydata.go
index 23fe8a3..75d6f68 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/iphostperformancemonitoringhistorydata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/iphostperformancemonitoringhistorydata.go
@@ -92,6 +92,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xff00,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/macbridgeperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/generated/macbridgeperformancemonitoringhistorydata.go
index 668fcca..19de76b 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/macbridgeperformancemonitoringhistorydata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/macbridgeperformancemonitoringhistorydata.go
@@ -77,6 +77,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xe000,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/macbridgeportfiltertabledata.go b/vendor/github.com/opencord/omci-lib-go/generated/macbridgeportfiltertabledata.go
index 972bb6f..9e4e1cf 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/macbridgeportfiltertabledata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/macbridgeportfiltertabledata.go
@@ -14,7 +14,7 @@
  * 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':
@@ -64,6 +64,7 @@
 			Get,
 			GetNext,
 			Set,
+			SetTable,
 		),
 		AllowedAttributeMask: 0x8000,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/macbridgeportperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/generated/macbridgeportperformancemonitoringhistorydata.go
index a6bcf4b..b416ff1 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/macbridgeportperformancemonitoringhistorydata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/macbridgeportperformancemonitoringhistorydata.go
@@ -90,6 +90,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xfe00,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/mgcperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/generated/mgcperformancemonitoringhistorydata.go
index c9b6dc6..7a4e457 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/mgcperformancemonitoringhistorydata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/mgcperformancemonitoringhistorydata.go
@@ -109,6 +109,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xffe0,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/multicastgeminterworkingterminationpoint.go b/vendor/github.com/opencord/omci-lib-go/generated/multicastgeminterworkingterminationpoint.go
index bde9b12..2fda7ab 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/multicastgeminterworkingterminationpoint.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/multicastgeminterworkingterminationpoint.go
@@ -145,6 +145,7 @@
 			Get,
 			GetNext,
 			Set,
+			SetTable,
 		),
 		AllowedAttributeMask: 0xffc0,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/multicastsubscriberconfiginfo.go b/vendor/github.com/opencord/omci-lib-go/generated/multicastsubscriberconfiginfo.go
index 59444a9..b83883b 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/multicastsubscriberconfiginfo.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/multicastsubscriberconfiginfo.go
@@ -14,7 +14,7 @@
  * 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':
@@ -103,6 +103,7 @@
 			Get,
 			GetNext,
 			Set,
+			SetTable,
 		),
 		AllowedAttributeMask: 0xfe00,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/networkdialplantable.go b/vendor/github.com/opencord/omci-lib-go/generated/networkdialplantable.go
index 9ca0049..8a4f851 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/networkdialplantable.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/networkdialplantable.go
@@ -14,7 +14,7 @@
  * 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':
@@ -83,6 +83,7 @@
 			Get,
 			GetNext,
 			Set,
+			SetTable,
 		),
 		AllowedAttributeMask: 0xfc00,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/pseudowireperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/generated/pseudowireperformancemonitoringhistorydata.go
index fc44a16..23e4114 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/pseudowireperformancemonitoringhistorydata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/pseudowireperformancemonitoringhistorydata.go
@@ -143,6 +143,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xfffe,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/pwatmconfigurationdata.go b/vendor/github.com/opencord/omci-lib-go/generated/pwatmconfigurationdata.go
index 84fa584..fb53f29 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/pwatmconfigurationdata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/pwatmconfigurationdata.go
@@ -14,7 +14,7 @@
  * 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':
@@ -94,6 +94,7 @@
 			Get,
 			GetNext,
 			Set,
+			SetTable,
 		),
 		AllowedAttributeMask: 0xff00,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/pwatmperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/generated/pwatmperformancemonitoringhistorydata.go
index 44442e0..c03552a 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/pwatmperformancemonitoringhistorydata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/pwatmperformancemonitoringhistorydata.go
@@ -96,6 +96,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xff80,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/radiusperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/generated/radiusperformancemonitoringhistorydata.go
index 778ea9f..0fb3e07 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/radiusperformancemonitoringhistorydata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/radiusperformancemonitoringhistorydata.go
@@ -95,6 +95,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xff00,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/rtpperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/generated/rtpperformancemonitoringhistorydata.go
index 4576186..ba4fd8b 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/rtpperformancemonitoringhistorydata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/rtpperformancemonitoringhistorydata.go
@@ -101,6 +101,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xff00,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/sipagentconfigdata.go b/vendor/github.com/opencord/omci-lib-go/generated/sipagentconfigdata.go
index ca86d96..4594544 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/sipagentconfigdata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/sipagentconfigdata.go
@@ -147,6 +147,7 @@
 			Delete,
 			Get,
 			Set,
+			SetTable,
 		),
 		AllowedAttributeMask: 0xfffe,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/sipagentperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/generated/sipagentperformancemonitoringhistorydata.go
index 30b8e75..a201006 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/sipagentperformancemonitoringhistorydata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/sipagentperformancemonitoringhistorydata.go
@@ -121,6 +121,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xfffe,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/sipcallinitiationperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/generated/sipcallinitiationperformancemonitoringhistorydata.go
index ed9534f..5a46091 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/sipcallinitiationperformancemonitoringhistorydata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/sipcallinitiationperformancemonitoringhistorydata.go
@@ -92,6 +92,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xfe00,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/tcadaptorperformancemonitoringhistorydataxdsl.go b/vendor/github.com/opencord/omci-lib-go/generated/tcadaptorperformancemonitoringhistorydataxdsl.go
index 2ee8a6b..1b9dcf1 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/tcadaptorperformancemonitoringhistorydataxdsl.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/tcadaptorperformancemonitoringhistorydataxdsl.go
@@ -103,6 +103,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xffc0,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/tcpudpperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/generated/tcpudpperformancemonitoringhistorydata.go
index eb1833f..5914ebd 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/tcpudpperformancemonitoringhistorydata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/tcpudpperformancemonitoringhistorydata.go
@@ -89,6 +89,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xfe00,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/vdsl2lineconfigurationextensions2.go b/vendor/github.com/opencord/omci-lib-go/generated/vdsl2lineconfigurationextensions2.go
index 8fb381c..844bb19 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/vdsl2lineconfigurationextensions2.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/vdsl2lineconfigurationextensions2.go
@@ -14,7 +14,7 @@
  * 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':
@@ -172,6 +172,7 @@
 			Get,
 			GetNext,
 			Set,
+			SetTable,
 		),
 		AllowedAttributeMask: 0xfffc,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/version.go b/vendor/github.com/opencord/omci-lib-go/generated/version.go
index f4946e0..8ec3ae6 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/version.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/version.go
@@ -46,26 +46,26 @@
 	Versions = append(Versions,
 		VersionInfo{
 			Name:       "parser",
-			Version:    "0.15.1",
-			CreateTime: 1581434999.76667,
-			ItuDocName: "T-REC-G.988-2017-11.docx",
+			Version:    "0.15.8",
+			CreateTime: 1613579234.3730865,
+			ItuDocName: "T-REC-G.988-201711-I!!MSW-E.docx",
 			SHA256:     "96ffc8bca6f70175c8e281e87e1cf21662d07a7502ebf595c5c3180a9972b9ac",
 		})
 
 	Versions = append(Versions,
 		VersionInfo{
 			Name:       "pre-parser",
-			Version:    "0.12.2",
-			CreateTime: 1574973863.791287,
-			ItuDocName: "T-REC-G.988-2017-11.docx",
+			Version:    "0.15.8",
+			CreateTime: 1613579104.450186,
+			ItuDocName: "T-REC-G.988-201711-I!!MSW-E.docx",
 			SHA256:     "96ffc8bca6f70175c8e281e87e1cf21662d07a7502ebf595c5c3180a9972b9ac",
 		})
 
 	Versions = append(Versions,
 		VersionInfo{
 			Name:       "code-generator",
-			Version:    "0.15.6",
-			CreateTime: 1612285143.0049334,
+			Version:    "0.15.8",
+			CreateTime: 1613579245.5924196,
 			ItuDocName: "T-REC-G.988-201711-I!!MSW-E.docx",
 			SHA256:     "96ffc8bca6f70175c8e281e87e1cf21662d07a7502ebf595c5c3180a9972b9ac",
 		})
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/voiceserviceprofile.go b/vendor/github.com/opencord/omci-lib-go/generated/voiceserviceprofile.go
index 82bda01..8569032 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/voiceserviceprofile.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/voiceserviceprofile.go
@@ -14,7 +14,7 @@
  * 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':
@@ -119,6 +119,7 @@
 			Delete,
 			Get,
 			Set,
+			SetTable,
 		),
 		AllowedAttributeMask: 0xfffc,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/vpperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/generated/vpperformancemonitoringhistorydata.go
index 4f98c8c..226f563 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/vpperformancemonitoringhistorydata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/vpperformancemonitoringhistorydata.go
@@ -97,6 +97,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xff00,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/xdsldownstreamrfibandsprofile.go b/vendor/github.com/opencord/omci-lib-go/generated/xdsldownstreamrfibandsprofile.go
index e5a1916..2e017e9 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/xdsldownstreamrfibandsprofile.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/xdsldownstreamrfibandsprofile.go
@@ -14,7 +14,7 @@
  * 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':
@@ -66,6 +66,7 @@
 			Get,
 			GetNext,
 			Set,
+			SetTable,
 		),
 		AllowedAttributeMask: 0xc000,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/xdslimpulsenoisemonitorperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/generated/xdslimpulsenoisemonitorperformancemonitoringhistorydata.go
index 6f725aa..19b15b3 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/xdslimpulsenoisemonitorperformancemonitoringhistorydata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/xdslimpulsenoisemonitorperformancemonitoringhistorydata.go
@@ -14,7 +14,7 @@
  * 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':
@@ -103,6 +103,7 @@
 			Get,
 			GetNext,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xff00,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/xdslpsdmaskprofile.go b/vendor/github.com/opencord/omci-lib-go/generated/xdslpsdmaskprofile.go
index a399351..fe12ac1 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/xdslpsdmaskprofile.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/xdslpsdmaskprofile.go
@@ -14,7 +14,7 @@
  * 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':
@@ -65,6 +65,7 @@
 			Get,
 			GetNext,
 			Set,
+			SetTable,
 		),
 		AllowedAttributeMask: 0xc000,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/xdslxtu-cchannelperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/generated/xdslxtu-cchannelperformancemonitoringhistorydata.go
index 2e1b0e5..560a5af 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/xdslxtu-cchannelperformancemonitoringhistorydata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/xdslxtu-cchannelperformancemonitoringhistorydata.go
@@ -95,6 +95,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xff00,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/xdslxtu-cperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/generated/xdslxtu-cperformancemonitoringhistorydata.go
index 287df45..feecdac 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/xdslxtu-cperformancemonitoringhistorydata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/xdslxtu-cperformancemonitoringhistorydata.go
@@ -129,6 +129,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xffff,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/xdslxtu-cperformancemonitoringhistorydatapart2.go b/vendor/github.com/opencord/omci-lib-go/generated/xdslxtu-cperformancemonitoringhistorydatapart2.go
index eaa7e22..162326a 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/xdslxtu-cperformancemonitoringhistorydatapart2.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/xdslxtu-cperformancemonitoringhistorydatapart2.go
@@ -83,6 +83,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xf800,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/xdslxtu-rchannelperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/generated/xdslxtu-rchannelperformancemonitoringhistorydata.go
index b1343c6..ca81538 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/xdslxtu-rchannelperformancemonitoringhistorydata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/xdslxtu-rchannelperformancemonitoringhistorydata.go
@@ -98,6 +98,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xff00,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/xdslxtu-rperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/generated/xdslxtu-rperformancemonitoringhistorydata.go
index 56f8ca5..d2eb1a3 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/xdslxtu-rperformancemonitoringhistorydata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/xdslxtu-rperformancemonitoringhistorydata.go
@@ -108,6 +108,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xfff0,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/xg-pondownstreammanagementperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/generated/xg-pondownstreammanagementperformancemonitoringhistorydata.go
index 2371b91..53e549d 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/xg-pondownstreammanagementperformancemonitoringhistorydata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/xg-pondownstreammanagementperformancemonitoringhistorydata.go
@@ -129,6 +129,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xffff,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/xg-pontcperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/generated/xg-pontcperformancemonitoringhistorydata.go
index e9cf5b0..e67e9f6 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/xg-pontcperformancemonitoringhistorydata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/xg-pontcperformancemonitoringhistorydata.go
@@ -121,6 +121,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xfffe,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/xg-ponupstreammanagementperformancemonitoringhistorydata.go b/vendor/github.com/opencord/omci-lib-go/generated/xg-ponupstreammanagementperformancemonitoringhistorydata.go
index be7cccb..148af8d 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/xg-ponupstreammanagementperformancemonitoringhistorydata.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/xg-ponupstreammanagementperformancemonitoringhistorydata.go
@@ -14,6 +14,12 @@
  * 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
 
@@ -88,6 +94,7 @@
 			Delete,
 			Get,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xff00,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/generated/xtudatagatheringconfiguration.go b/vendor/github.com/opencord/omci-lib-go/generated/xtudatagatheringconfiguration.go
index 2b5171a..ce758fc 100644
--- a/vendor/github.com/opencord/omci-lib-go/generated/xtudatagatheringconfiguration.go
+++ b/vendor/github.com/opencord/omci-lib-go/generated/xtudatagatheringconfiguration.go
@@ -14,7 +14,7 @@
  * 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':
@@ -93,6 +93,7 @@
 			Get,
 			GetNext,
 			Set,
+			SetTable,
 		),
 		AllowedAttributeMask: 0xf800,
 		AttributeDefinitions: AttributeDefinitionMap{
diff --git a/vendor/github.com/opencord/omci-lib-go/layers.go b/vendor/github.com/opencord/omci-lib-go/layers.go
index f05c34b..6eb09a9 100644
--- a/vendor/github.com/opencord/omci-lib-go/layers.go
+++ b/vendor/github.com/opencord/omci-lib-go/layers.go
@@ -154,6 +154,7 @@
 	nextLayerMapping[TestRequestType] = LayerTypeTestRequest
 	nextLayerMapping[StartSoftwareDownloadRequestType] = LayerTypeStartSoftwareDownloadRequest
 	nextLayerMapping[DownloadSectionRequestType] = LayerTypeDownloadSectionRequest
+	nextLayerMapping[DownloadSectionRequestWithResponseType] = LayerTypeDownloadSectionRequest
 	nextLayerMapping[EndSoftwareDownloadRequestType] = LayerTypeEndSoftwareDownloadRequest
 	nextLayerMapping[ActivateSoftwareRequestType] = LayerTypeActivateSoftwareRequest
 	nextLayerMapping[CommitSoftwareRequestType] = LayerTypeCommitSoftwareRequest
diff --git a/vendor/github.com/opencord/omci-lib-go/messagetypes.go b/vendor/github.com/opencord/omci-lib-go/messagetypes.go
index 8cca403..6776b06 100644
--- a/vendor/github.com/opencord/omci-lib-go/messagetypes.go
+++ b/vendor/github.com/opencord/omci-lib-go/messagetypes.go
@@ -29,46 +29,47 @@
 type MessageType byte
 
 const (
-	CreateRequestType                 = MessageType(byte(me.Create) | me.AR)
-	CreateResponseType                = MessageType(byte(me.Create) | me.AK)
-	DeleteRequestType                 = MessageType(byte(me.Delete) | me.AR)
-	DeleteResponseType                = MessageType(byte(me.Delete) | me.AK)
-	SetRequestType                    = MessageType(byte(me.Set) | me.AR)
-	SetResponseType                   = MessageType(byte(me.Set) | me.AK)
-	GetRequestType                    = MessageType(byte(me.Get) | me.AR)
-	GetResponseType                   = MessageType(byte(me.Get) | me.AK)
-	GetAllAlarmsRequestType           = MessageType(byte(me.GetAllAlarms) | me.AR)
-	GetAllAlarmsResponseType          = MessageType(byte(me.GetAllAlarms) | me.AK)
-	GetAllAlarmsNextRequestType       = MessageType(byte(me.GetAllAlarmsNext) | me.AR)
-	GetAllAlarmsNextResponseType      = MessageType(byte(me.GetAllAlarmsNext) | me.AK)
-	MibUploadRequestType              = MessageType(byte(me.MibUpload) | me.AR)
-	MibUploadResponseType             = MessageType(byte(me.MibUpload) | me.AK)
-	MibUploadNextRequestType          = MessageType(byte(me.MibUploadNext) | me.AR)
-	MibUploadNextResponseType         = MessageType(byte(me.MibUploadNext) | me.AK)
-	MibResetRequestType               = MessageType(byte(me.MibReset) | me.AR)
-	MibResetResponseType              = MessageType(byte(me.MibReset) | me.AK)
-	TestRequestType                   = MessageType(byte(me.Test) | me.AR)
-	TestResponseType                  = MessageType(byte(me.Test) | me.AK)
-	StartSoftwareDownloadRequestType  = MessageType(byte(me.StartSoftwareDownload) | me.AR)
-	StartSoftwareDownloadResponseType = MessageType(byte(me.StartSoftwareDownload) | me.AK)
-	DownloadSectionRequestType        = MessageType(byte(me.DownloadSection) | me.AR)
-	DownloadSectionResponseType       = MessageType(byte(me.DownloadSection) | me.AK)
-	EndSoftwareDownloadRequestType    = MessageType(byte(me.EndSoftwareDownload) | me.AR)
-	EndSoftwareDownloadResponseType   = MessageType(byte(me.EndSoftwareDownload) | me.AK)
-	ActivateSoftwareRequestType       = MessageType(byte(me.ActivateSoftware) | me.AR)
-	ActivateSoftwareResponseType      = MessageType(byte(me.ActivateSoftware) | me.AK)
-	CommitSoftwareRequestType         = MessageType(byte(me.CommitSoftware) | me.AR)
-	CommitSoftwareResponseType        = MessageType(byte(me.CommitSoftware) | me.AK)
-	SynchronizeTimeRequestType        = MessageType(byte(me.SynchronizeTime) | me.AR)
-	SynchronizeTimeResponseType       = MessageType(byte(me.SynchronizeTime) | me.AK)
-	RebootRequestType                 = MessageType(byte(me.Reboot) | me.AR)
-	RebootResponseType                = MessageType(byte(me.Reboot) | me.AK)
-	GetNextRequestType                = MessageType(byte(me.GetNext) | me.AR)
-	GetNextResponseType               = MessageType(byte(me.GetNext) | me.AK)
-	GetCurrentDataRequestType         = MessageType(byte(me.GetCurrentData) | me.AR)
-	GetCurrentDataResponseType        = MessageType(byte(me.GetCurrentData) | me.AK)
-	SetTableRequestType               = MessageType(byte(me.SetTable) | me.AR)
-	SetTableResponseType              = MessageType(byte(me.SetTable) | me.AK)
+	CreateRequestType                      = MessageType(byte(me.Create) | me.AR)
+	CreateResponseType                     = MessageType(byte(me.Create) | me.AK)
+	DeleteRequestType                      = MessageType(byte(me.Delete) | me.AR)
+	DeleteResponseType                     = MessageType(byte(me.Delete) | me.AK)
+	SetRequestType                         = MessageType(byte(me.Set) | me.AR)
+	SetResponseType                        = MessageType(byte(me.Set) | me.AK)
+	GetRequestType                         = MessageType(byte(me.Get) | me.AR)
+	GetResponseType                        = MessageType(byte(me.Get) | me.AK)
+	GetAllAlarmsRequestType                = MessageType(byte(me.GetAllAlarms) | me.AR)
+	GetAllAlarmsResponseType               = MessageType(byte(me.GetAllAlarms) | me.AK)
+	GetAllAlarmsNextRequestType            = MessageType(byte(me.GetAllAlarmsNext) | me.AR)
+	GetAllAlarmsNextResponseType           = MessageType(byte(me.GetAllAlarmsNext) | me.AK)
+	MibUploadRequestType                   = MessageType(byte(me.MibUpload) | me.AR)
+	MibUploadResponseType                  = MessageType(byte(me.MibUpload) | me.AK)
+	MibUploadNextRequestType               = MessageType(byte(me.MibUploadNext) | me.AR)
+	MibUploadNextResponseType              = MessageType(byte(me.MibUploadNext) | me.AK)
+	MibResetRequestType                    = MessageType(byte(me.MibReset) | me.AR)
+	MibResetResponseType                   = MessageType(byte(me.MibReset) | me.AK)
+	TestRequestType                        = MessageType(byte(me.Test) | me.AR)
+	TestResponseType                       = MessageType(byte(me.Test) | me.AK)
+	StartSoftwareDownloadRequestType       = MessageType(byte(me.StartSoftwareDownload) | me.AR)
+	StartSoftwareDownloadResponseType      = MessageType(byte(me.StartSoftwareDownload) | me.AK)
+	DownloadSectionRequestType             = MessageType(me.DownloadSection) // me.AR is optional
+	DownloadSectionRequestWithResponseType = MessageType(byte(me.DownloadSection) | me.AR)
+	DownloadSectionResponseType            = MessageType(byte(me.DownloadSection) | me.AK)
+	EndSoftwareDownloadRequestType         = MessageType(byte(me.EndSoftwareDownload) | me.AR)
+	EndSoftwareDownloadResponseType        = MessageType(byte(me.EndSoftwareDownload) | me.AK)
+	ActivateSoftwareRequestType            = MessageType(byte(me.ActivateSoftware) | me.AR)
+	ActivateSoftwareResponseType           = MessageType(byte(me.ActivateSoftware) | me.AK)
+	CommitSoftwareRequestType              = MessageType(byte(me.CommitSoftware) | me.AR)
+	CommitSoftwareResponseType             = MessageType(byte(me.CommitSoftware) | me.AK)
+	SynchronizeTimeRequestType             = MessageType(byte(me.SynchronizeTime) | me.AR)
+	SynchronizeTimeResponseType            = MessageType(byte(me.SynchronizeTime) | me.AK)
+	RebootRequestType                      = MessageType(byte(me.Reboot) | me.AR)
+	RebootResponseType                     = MessageType(byte(me.Reboot) | me.AK)
+	GetNextRequestType                     = MessageType(byte(me.GetNext) | me.AR)
+	GetNextResponseType                    = MessageType(byte(me.GetNext) | me.AK)
+	GetCurrentDataRequestType              = MessageType(byte(me.GetCurrentData) | me.AR)
+	GetCurrentDataResponseType             = MessageType(byte(me.GetCurrentData) | me.AK)
+	SetTableRequestType                    = MessageType(byte(me.SetTable) | me.AR)
+	SetTableResponseType                   = MessageType(byte(me.SetTable) | me.AK)
 	// Autonomous ONU messages
 	AlarmNotificationType    = MessageType(byte(me.AlarmNotification))
 	AttributeValueChangeType = MessageType(byte(me.AttributeValueChange))
@@ -2143,7 +2144,7 @@
 type DownloadSectionRequest struct {
 	MeBasePacket  // Note: EntityInstance for software download is two specific values
 	SectionNumber byte
-	SectionData   [29]byte // 0 padding if final transfer requires only a partial block
+	SectionData   [31]byte // 0 padding if final transfer requires only a partial block
 }
 
 func (omci *DownloadSectionRequest) String() string {
@@ -2202,7 +2203,7 @@
 	if omci.EntityClass != me.SoftwareImageClassID {
 		return me.NewProcessingError("invalid Entity Class for Download Section response")
 	}
-	bytes, err := b.AppendBytes(1 + 29)
+	bytes, err := b.AppendBytes(1 + len(omci.SectionData))
 	if err != nil {
 		return err
 	}
@@ -2284,13 +2285,13 @@
 	if err != nil {
 		return err
 	}
-	bytes[0] = omci.SectionNumber
 	if omci.Result > me.DeviceBusy {
 		msg := fmt.Sprintf("invalid results for Download Section response: %v, must be 0..6",
 			omci.Result)
 		return errors.New(msg)
 	}
-	bytes[1] = byte(omci.Result)
+	bytes[0] = byte(omci.Result)
+	bytes[1] = omci.SectionNumber
 	return nil
 }
 
@@ -2331,7 +2332,7 @@
 	}
 	omci.CRC32 = binary.BigEndian.Uint32(data[4:8])
 	omci.ImageSize = binary.BigEndian.Uint32(data[8:12])
-	omci.NumberOfInstances = data[13]
+	omci.NumberOfInstances = data[12]
 
 	if omci.NumberOfInstances < 1 || omci.NumberOfInstances > 9 {
 		return me.NewProcessingError(fmt.Sprintf("invalid number of Instances: %v, must be 1..9",
@@ -2340,7 +2341,7 @@
 	omci.ImageInstances = make([]uint16, omci.NumberOfInstances)
 
 	for index := 0; index < int(omci.NumberOfInstances); index++ {
-		omci.ImageInstances[index] = binary.BigEndian.Uint16(data[14+(index*2):])
+		omci.ImageInstances[index] = binary.BigEndian.Uint16(data[13+(index*2):])
 	}
 	return nil
 }
@@ -2379,11 +2380,11 @@
 	if err != nil {
 		return err
 	}
-	binary.BigEndian.PutUint32(bytes[4:8], omci.CRC32)
-	binary.BigEndian.PutUint32(bytes[8:12], omci.ImageSize)
-	bytes[13] = omci.NumberOfInstances
+	binary.BigEndian.PutUint32(bytes[0:4], omci.CRC32)
+	binary.BigEndian.PutUint32(bytes[4:8], omci.ImageSize)
+	bytes[8] = omci.NumberOfInstances
 	for index := 0; index < int(omci.NumberOfInstances); index++ {
-		binary.BigEndian.PutUint16(bytes[14+(index*2):], omci.ImageInstances[index])
+		binary.BigEndian.PutUint16(bytes[9+(index*2):], omci.ImageInstances[index])
 	}
 	return nil
 }
@@ -2477,7 +2478,7 @@
 	if omci.EntityClass != me.SoftwareImageClassID {
 		return me.NewProcessingError("invalid Entity Class for End Download response")
 	}
-	bytes, err := b.AppendBytes(3 + (3 * int(omci.NumberOfInstances)))
+	bytes, err := b.AppendBytes(2 + (3 * int(omci.NumberOfInstances)))
 	if err != nil {
 		return err
 	}
diff --git a/vendor/github.com/opencord/omci-lib-go/omci.go b/vendor/github.com/opencord/omci-lib-go/omci.go
index 7a162d6..3904352 100644
--- a/vendor/github.com/opencord/omci-lib-go/omci.go
+++ b/vendor/github.com/opencord/omci-lib-go/omci.go
@@ -112,6 +112,7 @@
 	TransactionID    uint16
 	MessageType      MessageType
 	DeviceIdentifier DeviceIdent
+	ResponseExpected bool // Significant for Download Section Request only
 	Payload          []byte
 	padding          []byte
 	Length           uint16
@@ -206,6 +207,7 @@
 	omci.TransactionID = binary.BigEndian.Uint16(data[0:])
 	omci.MessageType = MessageType(data[2])
 	omci.DeviceIdentifier = DeviceIdent(data[3])
+	omci.ResponseExpected = byte(omci.MessageType)&me.AR == me.AR
 
 	isNotification := (int(omci.MessageType) & ^me.MsgTypeMask) == 0
 	if omci.TransactionID == 0 && !isNotification {
@@ -298,7 +300,13 @@
 		return errors.New(msg)
 	}
 	binary.BigEndian.PutUint16(bytes, omci.TransactionID)
-	bytes[2] = byte(omci.MessageType)
+	// Download section request can optionally have the AR bit set or cleared.  If user passes in this
+	// message type and sets download requested, fix up the message type for them.
+	if omci.MessageType == DownloadSectionRequestType && omci.ResponseExpected {
+		bytes[2] = byte(DownloadSectionRequestWithResponseType)
+	} else {
+		bytes[2] = byte(omci.MessageType)
+	}
 	bytes[3] = byte(omci.DeviceIdentifier)
 	b.PushLayer(LayerTypeOMCI)
 
diff --git a/vendor/modules.txt b/vendor/modules.txt
index c88de44..50b5477 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -74,7 +74,7 @@
 github.com/opencord/cordctl/pkg/format
 # github.com/opencord/device-management-interface v0.9.5
 github.com/opencord/device-management-interface/go/dmi
-# github.com/opencord/omci-lib-go v0.13.6
+# github.com/opencord/omci-lib-go v0.15.4
 github.com/opencord/omci-lib-go
 github.com/opencord/omci-lib-go/generated
 # github.com/opencord/voltha-protos/v4 v4.0.2