Change MDS value on on successful response
Move to omci-lib-go version v0.15.4
Change-Id: I4184d26e3006c4b28dcab806e51bc1fc9f2b878e
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)