diff --git a/core/omci.go b/core/omci.go
index 3a4335d..d74ef92 100644
--- a/core/omci.go
+++ b/core/omci.go
@@ -20,12 +20,13 @@
 	"bytes"
 	"encoding/binary"
 
-	"gerrit.opencord.org/voltha-bbsim/common/logger"
-	"gerrit.opencord.org/voltha-bbsim/protos"
-	"gerrit.opencord.org/voltha-bbsim/device"
-	"time"
 	"context"
 	"errors"
+	"time"
+
+	"gerrit.opencord.org/voltha-bbsim/common/logger"
+	"gerrit.opencord.org/voltha-bbsim/device"
+	"gerrit.opencord.org/voltha-bbsim/protos"
 )
 
 //
@@ -87,7 +88,7 @@
 	Content       OmciContent
 }
 
-const NumMibUploads byte = 9
+const NumMibUploads byte = 18
 
 type OnuKey struct {
 	IntfId, OnuId uint32
@@ -98,7 +99,7 @@
 	mibUploadCtr uint16
 	uniGInstance uint8
 	pptpInstance uint8
-	init  istate
+	init         istate
 }
 
 type istate int
@@ -122,65 +123,65 @@
 
 var OnuOmciStateMap = map[OnuKey]*OnuOmciState{}
 
-func OmciRun(ctx context.Context, omciOut chan openolt.OmciMsg, omciIn chan openolt.OmciIndication, onumap map[uint32][] *device.Onu, errch chan error) {
+func OmciRun(ctx context.Context, omciOut chan openolt.OmciMsg, omciIn chan openolt.OmciIndication, onumap map[uint32][]*device.Onu, errch chan error) {
 	go func() { //For monitoring the OMCI states
 		t := time.NewTicker(1 * time.Second)
 		defer t.Stop()
 		for {
-			select{
-			case <- t.C:
+			select {
+			case <-t.C:
 				logger.Debug("Monitor omci init state")
 				if isAllOmciInitDone(onumap) {
 					logger.Info("OmciRun - All the omci initialization wes done")
 					close(errch)
 					return
 				}
-			case <- ctx.Done():
+			case <-ctx.Done():
 				logger.Debug("Omci Monitoring process was done")
 				return
 			}
 		}
 	}()
 
-	go func(){
+	go func() {
 		defer logger.Debug("Omci response process was done")
 		for {
 			var resp openolt.OmciIndication
-			select{
-				case m := <-omciOut:
-					transactionId, deviceId, msgType, class, instance, content, err := ParsePkt(m.Pkt)
-					if err != nil {
-						errch <- err
-						return
-					}
-
-					logger.Debug("OmciRun - transactionId: %d msgType: %d, ME Class: %d, ME Instance: %d",
-						transactionId, msgType, class, instance)
-
-					key := OnuKey{m.IntfId, m.OnuId}
-					if _, ok := OnuOmciStateMap[key]; !ok {
-						OnuOmciStateMap[key] = NewOnuOmciState()
-					}
-
-					if _, ok := Handlers[msgType]; !ok {
-						logger.Warn("Ignore omci msg (msgType %d not handled)", msgType)
-						continue
-					}
-
-					resp.Pkt, err = Handlers[msgType](class, content, key)
-					if err != nil {
-						errch <- err
-						return
-					}
-					resp.Pkt[0] = byte(transactionId >> 8)
-					resp.Pkt[1] = byte(transactionId & 0xFF)
-					resp.Pkt[2] = 0x2<<4 | byte(msgType)
-					resp.Pkt[3] = deviceId
-					resp.IntfId = m.IntfId
-					resp.OnuId = m.OnuId
-					omciIn <- resp
-				case <-ctx.Done():
+			select {
+			case m := <-omciOut:
+				transactionId, deviceId, msgType, class, instance, content, err := ParsePkt(m.Pkt)
+				if err != nil {
+					errch <- err
 					return
+				}
+
+				logger.Debug("OmciRun - transactionId: %d msgType: %d, ME Class: %d, ME Instance: %d",
+					transactionId, msgType, class, instance)
+
+				key := OnuKey{m.IntfId, m.OnuId}
+				if _, ok := OnuOmciStateMap[key]; !ok {
+					OnuOmciStateMap[key] = NewOnuOmciState()
+				}
+
+				if _, ok := Handlers[msgType]; !ok {
+					logger.Warn("Ignore omci msg (msgType %d not handled)", msgType)
+					continue
+				}
+
+				resp.Pkt, err = Handlers[msgType](class, content, key)
+				if err != nil {
+					errch <- err
+					return
+				}
+				resp.Pkt[0] = byte(transactionId >> 8)
+				resp.Pkt[1] = byte(transactionId & 0xFF)
+				resp.Pkt[2] = 0x2<<4 | byte(msgType)
+				resp.Pkt[3] = deviceId
+				resp.IntfId = m.IntfId
+				resp.OnuId = m.OnuId
+				omciIn <- resp
+			case <-ctx.Done():
+				return
 			}
 		}
 	}()
@@ -260,6 +261,87 @@
 
 	switch state.mibUploadCtr {
 	case 0:
+		// ONT Data (2)
+		pkt = []byte{
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
+			0x00, 0x02, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+	case 1:
+		// Circuit Pack (6) - #1
+		pkt = []byte{
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
+			0x00, 0x06, 0x01, 0x01, 0xf0, 0x00, 0x2f, 0x04,
+			0x49, 0x53, 0x4b, 0x54, 0x71, 0xe8, 0x00, 0x80,
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00,
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+	case 2:
+		// Circuit Pack (6) - #2
+		pkt = []byte{
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
+			0x00, 0x06, 0x01, 0x01, 0x0f, 0x00, 0x42, 0x52,
+			0x43, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+	case 3:
+		// Circuit Pack (6) - #3
+		pkt = []byte{
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
+			0x00, 0x06, 0x01, 0x01, 0x00, 0xf8, 0x20, 0x20,
+			0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+			0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+			0x20, 0x20, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+	case 4:
+		// Circuit Pack (6) - #4
+		pkt = []byte{
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
+			0x00, 0x06, 0x01, 0x01, 0x00, 0x04, 0x00, 0x00,
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+	case 5:
+		// Circuit Pack (6) - #5
+		pkt = []byte{
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
+			0x00, 0x06, 0x01, 0x80, 0xf0, 0x00, 0xee, 0x01,
+			0x49, 0x53, 0x4b, 0x54, 0x71, 0xe8, 0x00, 0x80,
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00,
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+	case 6:
+		// Circuit Pack (6) - #6
+		pkt = []byte{
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
+			0x00, 0x06, 0x01, 0x80, 0x0f, 0x00, 0x42, 0x52,
+			0x43, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+	case 7:
+		// Circuit Pack (6) - #7
+		pkt = []byte{
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
+			0x00, 0x06, 0x01, 0x80, 0x00, 0xf8, 0x20, 0x20,
+			0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+			0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+			0x20, 0x20, 0x00, 0x08, 0x40, 0x10, 0x00, 0x00,
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+	case 8:
+		// Circuit Pack (6) - #8
+		pkt = []byte{
+			0x00, 0x0f, 0x2e, 0x0a, 0x00, 0x02, 0x00, 0x00,
+			0x00, 0x06, 0x01, 0x80, 0x00, 0x04, 0x00, 0x00,
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+	case 9:
 		// ANI-G
 		pkt = []byte{
 			0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
@@ -268,7 +350,7 @@
 			0x00, 0xe0, 0x54, 0xff, 0xff, 0x00, 0x00, 0x0c,
 			0x63, 0x81, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00,
 			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
-	case 1, 2, 3, 4:
+	case 10, 11, 12, 13:
 		// UNI-G
 		pkt = []byte{
 			0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
@@ -279,7 +361,7 @@
 			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
 		pkt[11] = state.uniGInstance // ME Instance
 		state.uniGInstance++
-	case 5, 6, 7, 8:
+	case 14, 15, 16, 17:
 		pkt = []byte{
 			0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
 			0x00, 0x0b, 0x01, 0x01, 0xff, 0xfe, 0x00, 0x2f,
@@ -373,16 +455,15 @@
 	return pkt, nil
 }
 
-func isAllOmciInitDone(onumap map[uint32][] *device.Onu) bool {
+func isAllOmciInitDone(onumap map[uint32][]*device.Onu) bool {
 	for _, onus := range onumap {
-		for _, onu := range onus{
+		for _, onu := range onus {
 			key := OnuKey{onu.IntfID, onu.OnuID}
 			state := OnuOmciStateMap[key]
-			if state.init == INCOMPLETE{
+			if state.init == INCOMPLETE {
 				return false
 			}
 		}
 	}
 	return true
 }
-
