[VOL-4934] MIC (AES-128) calculation in omci-lib-go does not properly support the Extended Message Set

Change-Id: I74eefe457c57ee8470114c698ef75eee6a7ab534
diff --git a/VERSION b/VERSION
index dbe5900..c8e38b6 100755
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.8.1
+2.9.0
diff --git a/go.mod b/go.mod
index 221853e..0ba3576 100644
--- a/go.mod
+++ b/go.mod
@@ -15,7 +15,7 @@
 	github.com/golang/protobuf v1.5.2
 	github.com/google/gopacket v1.1.17
 	github.com/looplab/fsm v0.2.0
-	github.com/opencord/omci-lib-go/v2 v2.2.2
+	github.com/opencord/omci-lib-go/v2 v2.2.3
 	github.com/opencord/voltha-lib-go/v7 v7.3.2
 	github.com/opencord/voltha-protos/v5 v5.3.8
 	github.com/stretchr/testify v1.7.0
diff --git a/go.sum b/go.sum
index 242c27c..5238ae9 100644
--- a/go.sum
+++ b/go.sum
@@ -205,8 +205,8 @@
 github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc=
 github.com/onsi/gomega v1.14.0 h1:ep6kpPVwmr/nTbklSx2nrLNSIO62DoYAhnPNIMhK8gI=
 github.com/onsi/gomega v1.14.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0=
-github.com/opencord/omci-lib-go/v2 v2.2.2 h1:0GV2AS2pZlEEDCFyjImbC33aSEJ+1vCXFCSZDVfv0F8=
-github.com/opencord/omci-lib-go/v2 v2.2.2/go.mod h1:o1S/jhDLHNikFU7uG2TR5UOM5KmKlqwLlVncXi0FBYQ=
+github.com/opencord/omci-lib-go/v2 v2.2.3 h1:cE9+67m8HmZmlET57eyQmqOOAJlfvvKrLgiJMiwhSMg=
+github.com/opencord/omci-lib-go/v2 v2.2.3/go.mod h1:o1S/jhDLHNikFU7uG2TR5UOM5KmKlqwLlVncXi0FBYQ=
 github.com/opencord/voltha-lib-go/v7 v7.3.2 h1:mvQE+HTf3sLXIMulkDQJbbR67lIaV/Y6IIj1co0vrhU=
 github.com/opencord/voltha-lib-go/v7 v7.3.2/go.mod h1:3XnWQBHALGZTm5n3j401zKGG9aL2UqSU3/owGwNmcxM=
 github.com/opencord/voltha-protos/v5 v5.3.8 h1:tL8I1wtOfuMnKMQvgN1Ul+8YL/LTBm0PpNuxU1usGDw=
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/VERSION b/vendor/github.com/opencord/omci-lib-go/v2/VERSION
index b1b25a5..5859406 100644
--- a/vendor/github.com/opencord/omci-lib-go/v2/VERSION
+++ b/vendor/github.com/opencord/omci-lib-go/v2/VERSION
@@ -1 +1 @@
-2.2.2
+2.2.3
diff --git a/vendor/github.com/opencord/omci-lib-go/v2/omci.go b/vendor/github.com/opencord/omci-lib-go/v2/omci.go
index f778382..f14c781 100644
--- a/vendor/github.com/opencord/omci-lib-go/v2/omci.go
+++ b/vendor/github.com/opencord/omci-lib-go/v2/omci.go
@@ -198,18 +198,23 @@
 }
 
 func calculateMicAes128(data []byte) (uint32, error) {
-	// See if upstream or downstream
+	// See if upstream or downstream. OMCI header should have been validated before this call
 	var downstreamCDir = [...]byte{0x01}
 	var upstreamCDir = [...]byte{0x02}
 
 	tid := binary.BigEndian.Uint16(data[0:2])
+
+	var length = 44
+	if DeviceIdent(data[3]) == ExtendedIdent {
+		length = 10 + int(binary.BigEndian.Uint16(data[8:10]))
+	}
 	var sum []byte
 	var err error
 
 	if (data[2]&me.AK) == me.AK || tid == 0 {
-		sum, err = aes.Sum(append(upstreamCDir[:], data[:44]...), omciIK, 4)
+		sum, err = aes.Sum(append(upstreamCDir[:], data[:length]...), omciIK, 4)
 	} else {
-		sum, err = aes.Sum(append(downstreamCDir[:], data[:44]...), omciIK, 4)
+		sum, err = aes.Sum(append(downstreamCDir[:], data[:length]...), omciIK, 4)
 	}
 	if err != nil {
 		return 0, err
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 753173b..712bb66 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -145,7 +145,7 @@
 # github.com/looplab/fsm v0.2.0
 ## explicit
 github.com/looplab/fsm
-# github.com/opencord/omci-lib-go/v2 v2.2.2
+# github.com/opencord/omci-lib-go/v2 v2.2.3
 ## explicit
 github.com/opencord/omci-lib-go/v2
 github.com/opencord/omci-lib-go/v2/generated