SEBA-949 support for publishing bbsim events on kafka

Change-Id: I4354cd026bbadc801e4d6d08b2f9cd3462917b4c
diff --git a/internal/bbsim/devices/helpers.go b/internal/bbsim/devices/helpers.go
index 5a27202..c4bab28 100644
--- a/internal/bbsim/devices/helpers.go
+++ b/internal/bbsim/devices/helpers.go
@@ -17,9 +17,12 @@
 package devices
 
 import (
-	"github.com/looplab/fsm"
-	"github.com/opencord/voltha-protos/v2/go/openolt"
 	"strconv"
+	"time"
+
+	"github.com/looplab/fsm"
+	"github.com/opencord/bbsim/internal/common"
+	"github.com/opencord/voltha-protos/v2/go/openolt"
 )
 
 type mode int
@@ -65,3 +68,20 @@
 	}
 	return s
 }
+
+func publishEvent(eventType string, intfID int32, onuID int32, onuSerial string) {
+	if olt.PublishEvents {
+		currentTime := time.Now()
+
+		event := common.Event{
+			EventType: eventType,
+			OltID:     olt.ID,
+			IntfID:    intfID,
+			OnuID:     onuID,
+			OnuSerial: onuSerial,
+			Timestamp: currentTime.Format("2006-01-02 15:04:05.000000000"),
+			EpochTime: currentTime.UnixNano() / 1000000,
+		}
+		olt.EventChannel <- event
+	}
+}