VOL-3510:Implement Device Management Interface (dmi) on bbsim

Change-Id: If3ff7e8b085b173fd44a37bd005cc2087dff4c63
diff --git a/cmd/bbsim/bbsim.go b/cmd/bbsim/bbsim.go
index 000c836..52cdd0c 100644
--- a/cmd/bbsim/bbsim.go
+++ b/cmd/bbsim/bbsim.go
@@ -32,6 +32,7 @@
 	"github.com/opencord/bbsim/api/legacy"
 	"github.com/opencord/bbsim/internal/bbsim/api"
 	"github.com/opencord/bbsim/internal/bbsim/devices"
+	"github.com/opencord/bbsim/internal/bbsim/dmiserver"
 	"github.com/opencord/bbsim/internal/bbsim/responders/sadis"
 	"github.com/opencord/bbsim/internal/common"
 	log "github.com/sirupsen/logrus"
@@ -190,6 +191,11 @@
 		go sadis.StartRestServer(olt, &wg)
 	}
 
+	dms, dmserr := dmiserver.StartDmiAPIServer()
+	if dmserr != nil {
+		log.Errorf("Failed to start Device Management Interface Server %v", dmserr)
+	}
+
 	if common.Config.BBSim.Events {
 		// initialize a publisher
 		if err := common.InitializePublisher(sarama.NewAsyncProducer, olt.ID); err == nil {
@@ -204,6 +210,9 @@
 
 	defer func() {
 		log.Info("BroadBand Simulator is off")
+
+		dms.Stop()
+
 		if *common.Config.BBSim.CpuProfile != "" {
 			log.Info("Stopping profiler")
 			pprof.StopCPUProfile()