diff --git a/README.md b/README.md
index a3f3fd7..ca674b2 100644
--- a/README.md
+++ b/README.md
@@ -112,7 +112,7 @@
   -s string
       DHCP Server IP Address (default "182.21.0.128")
   -v int
-      Interval each ONU Discovery Indication (ms) (default 1000)
+      Interval each Discovery Indication, in the form of unit+suffix, such as '10ms', '1s' or '1m' (default 0)
   -ia bool
       Interactive activation of ONUs: if true ONUs must be activated explicitly using the management API (no ONUs are activated at startup) (default false)
   -grpc int
diff --git a/core/alarms.go b/core/alarms.go
index 6a702ce..6296123 100644
--- a/core/alarms.go
+++ b/core/alarms.go
@@ -87,7 +87,7 @@
 		}
 		Ind := formulateLossOfPLOAM(in.Status, onu)
 		s.alarmCh <- Ind
-		er := sendOnuInd(*s.EnableServer, onu, 0, onu.OperState, "up")
+		er := sendOnuInd(*s.EnableServer, onu, onu.OperState, "up")
 		if er != nil {
 			logger.Debug(er.Error())
 		}
@@ -129,7 +129,7 @@
 				continue // Skip for onus which have independently raised onu los
 			}
 
-			er := sendOnuInd(*s.EnableServer, onu, 0, onusOperstat, "up")
+			er := sendOnuInd(*s.EnableServer, onu, onusOperstat, "up")
 			if er != nil {
 				logger.Debug(er.Error())
 			}
diff --git a/core/api_handler.go b/core/api_handler.go
index d6c051a..8bc2c09 100644
--- a/core/api_handler.go
+++ b/core/api_handler.go
@@ -213,7 +213,7 @@
 	_ = sendDyingGaspInd(*s.EnableServer, onu.IntfID, onu.OnuID)
 	device.UpdateOnusOpStatus(onu.IntfID, onu, "down")
 	// send operstat down to voltha
-	_ = sendOnuInd(*s.EnableServer, onu, s.IndInterval, "down", "up")
+	_ = sendOnuInd(*s.EnableServer, onu, "down", "up")
 	// Give OEH some time to perform cleanup
 	time.Sleep(30 * time.Second)
 	s.activateOnu(onu)
@@ -291,7 +291,7 @@
 
 	// Send DyingGasp Alarm to VOLTHA
 	_ = sendDyingGaspInd(*s.EnableServer, onu.IntfID, onu.OnuID)
-	_ = sendOnuInd(*s.EnableServer, onu, s.IndInterval, onu.OperState, "down")
+	_ = sendOnuInd(*s.EnableServer, onu, onu.OperState, "down")
 	return nil
 }
 
diff --git a/core/core_server.go b/core/core_server.go
index 6c68706..6899d86 100644
--- a/core/core_server.go
+++ b/core/core_server.go
@@ -23,6 +23,7 @@
 	"reflect"
 	"strconv"
 	"sync"
+	"time"
 
 	"github.com/google/gopacket"
 	"github.com/google/gopacket/layers"
@@ -65,7 +66,7 @@
 	mgmtGrpcPort    uint32
 	mgmtRestPort    uint32
 	Vethnames       []string
-	IndInterval     int
+	IndInterval     time.Duration
 	Processes       []string
 	EnableServer    *openolt.Openolt_EnableIndicationServer
 	CtagMap         map[string]uint32
@@ -363,6 +364,9 @@
 	for intfid := range Onumap {
 		for _, onu := range Onumap[intfid] {
 			s.activateOnu(onu)
+			if s.IndInterval > 0 {
+				time.Sleep(s.IndInterval)
+			}
 		}
 	}
 }
diff --git a/core/grpc_service.go b/core/grpc_service.go
index 8e9e122..8ac0faf 100644
--- a/core/grpc_service.go
+++ b/core/grpc_service.go
@@ -112,7 +112,7 @@
 	matched.OnuID = onuid
 	s.updateDevIntState(matched, device.ONU_ACTIVE)
 	logger.Debug("ONU IntfID: %d OnuID: %d activated succesufully.", onu.IntfId, onu.OnuId)
-	if err := sendOnuInd(*s.EnableServer, matched, s.IndInterval, "up", "up"); err != nil {
+	if err := sendOnuInd(*s.EnableServer, matched, "up", "up"); err != nil {
 		logger.Error("Failed to send ONU Indication intfID %d, onuID %d", matched.IntfID, matched.OnuID)
 		return new(openolt.Empty), err
 	}
diff --git a/core/mediator.go b/core/mediator.go
index 66840bb..0756651 100644
--- a/core/mediator.go
+++ b/core/mediator.go
@@ -24,6 +24,7 @@
 	"strconv"
 	"strings"
 	"sync"
+	"time"
 
 	"github.com/opencord/voltha-bbsim/common/logger"
 	"github.com/opencord/voltha-bbsim/device"
@@ -53,7 +54,7 @@
 	aaawait                  int
 	dhcpwait                 int
 	dhcpservip               string
-	intvl                    int
+	intvl                    time.Duration
 	interactiveOnuActivation bool
 	Mode                     Mode
 	KafkaBroker              string
@@ -71,7 +72,7 @@
 	aaawait := flag.Int("aw", 2, "Wait time (sec) for activation WPA supplicants after EAPOL flow entry installed")
 	dhcpwait := flag.Int("dw", 2, "Wait time (sec) for activation DHCP clients after DHCP flow entry installed")
 	dhcpservip := flag.String("s", "182.21.0.128", "DHCP Server IP Address")
-	intvl := flag.Int("v", 1000, "Interval each Indication (ms)")
+	intvl := flag.Duration("v", 0, "Interval each Discovery Indication, in the form of unit+suffix, such as '10ms', '1s' or '1m''. defaults to 0")
 	kafkaBroker := flag.String("k", "", "Kafka broker")
 	interactiveOnuActivation := flag.Bool("ia", false, "Enable interactive activation of ONUs")
 	mgmtGrpcPort := flag.Int("grpc", 50061, "BBSim API server gRPC port")
diff --git a/core/openolt_service.go b/core/openolt_service.go
index fafe1c9..a56b75c 100644
--- a/core/openolt_service.go
+++ b/core/openolt_service.go
@@ -17,7 +17,6 @@
 package core
 
 import (
-	"time"
 
 	"github.com/opencord/voltha-bbsim/common/logger"
 	"github.com/opencord/voltha-bbsim/device"
@@ -91,8 +90,7 @@
 	return nil
 }
 
-func sendOnuInd(stream openolt.Openolt_EnableIndicationServer, onu *device.Onu, delay int, operState string, adminState string) error {
-	time.Sleep(time.Duration(delay) * time.Millisecond)
+func sendOnuInd(stream openolt.Openolt_EnableIndicationServer, onu *device.Onu, operState string, adminState string) error {
 	data := &openolt.Indication_OnuInd{OnuInd: &openolt.OnuIndication{
 		IntfId:       onu.IntfID,
 		OnuId:        onu.OnuID,
