SEBA-432
SEBA-565
SEBA-654 (alarms)
implemented
fix Jenkins make errors
fix merge conflicts
address review comments
Change-Id: Ia2e95afb33ce55054afa1fcbd9beb6ada62dd764
diff --git a/core/omci.go b/core/omci.go
index 711bbc7..a83c07a 100644
--- a/core/omci.go
+++ b/core/omci.go
@@ -18,14 +18,13 @@
import (
"context"
-
"gerrit.opencord.org/voltha-bbsim/common/logger"
- "gerrit.opencord.org/voltha-bbsim/protos"
+ openolt "gerrit.opencord.org/voltha-bbsim/protos"
omci "github.com/opencord/omci-sim"
)
// RunOmciResponder starts a go routine to process/respond to OMCI messages from VOLTHA
-func RunOmciResponder(ctx context.Context, omciOut chan openolt.OmciMsg, omciIn chan openolt.OmciIndication, errch chan error) {
+func (s *Server) RunOmciResponder(ctx context.Context, omciOut chan openolt.OmciMsg, omciIn chan openolt.OmciIndication, errch chan error) {
go func() {
defer logger.Debug("Omci response process was done")
@@ -34,14 +33,17 @@
for {
select {
case m := <-omciOut:
- resp_pkt, err := omci.OmciSim(m.IntfId, m.OnuId, HexDecode(m.Pkt))
+ respPkt, err := omci.OmciSim(m.IntfId, m.OnuId, HexDecode(m.Pkt))
switch err := err.(type) {
case nil:
// Success
resp.IntfId = m.IntfId
resp.OnuId = m.OnuId
- resp.Pkt = resp_pkt
+ resp.Pkt = respPkt
omciIn <- resp
+ s.handleOmciAction(resp.Pkt, resp.IntfId, resp.OnuId)
+
+
case *omci.OmciError:
// Error in processing omci message. Log and carry on.
logger.Debug("%s", err.Msg)
@@ -72,3 +74,17 @@
return p
}
+func (s *Server) handleOmciAction(pkt []byte, IntfID uint32, OnuID uint32) {
+ logger.Debug("handleOmciAction invoked")
+ MEClass := omci.OmciClass(uint16(pkt[5]) | uint16(pkt[4])<<8)
+ msgType := omci.OmciMsgType(pkt[2] & 0x1F)
+ logger.Debug("ME Class %d, msgType %d", MEClass, msgType)
+
+ if MEClass == omci.ONUG {
+ switch msgType {
+ case omci.Reboot:
+ logger.Info("ONU reboot recieved")
+ s.handleONUSoftReboot(IntfID, OnuID)
+ }
+ }
+}