diff --git a/internal/bbsim/devices/onu.go b/internal/bbsim/devices/onu.go
index 6b879cc..78569f5 100644
--- a/internal/bbsim/devices/onu.go
+++ b/internal/bbsim/devices/onu.go
@@ -26,6 +26,7 @@
 
 	"github.com/cboling/omci"
 	"github.com/google/gopacket/layers"
+	backoff "github.com/jpillora/backoff"
 	"github.com/looplab/fsm"
 	"github.com/opencord/bbsim/internal/bbsim/packetHandlers"
 	"github.com/opencord/bbsim/internal/bbsim/responders/dhcp"
@@ -60,7 +61,7 @@
 	InternalState       *fsm.FSM
 	DiscoveryRetryDelay time.Duration // this is the time between subsequent Discovery Indication
 	DiscoveryDelay      time.Duration // this is the time to send the first Discovery Indication
-
+	Backoff             *backoff.Backoff
 	// ONU State
 	// PortNo comes with flows and it's used when sending packetIndications,
 	// There is one PortNo per UNI Port, for now we're only storing the first one
@@ -98,6 +99,13 @@
 }
 
 func CreateONU(olt *OltDevice, pon PonPort, id uint32, sTag int, cTag int, auth bool, dhcp bool, delay time.Duration, isMock bool) *Onu {
+	b := &backoff.Backoff{
+		//These are the defaults
+		Min:    1 * time.Second,
+		Max:    35 * time.Second,
+		Factor: 1.5,
+		Jitter: false,
+	}
 
 	o := Onu{
 		ID:                  0,
@@ -119,9 +127,9 @@
 		DiscoveryRetryDelay: 60 * time.Second, // this is used to send OnuDiscoveryIndications until an activate call is received
 		Flows:               []FlowKey{},
 		DiscoveryDelay:      delay,
+		Backoff:             b,
 	}
 	o.SerialNumber = o.NewSN(olt.ID, pon.ID, id)
-
 	// NOTE this state machine is used to track the operational
 	// state as requested by VOLTHA
 	o.OperState = getOperStateFSM(func(e *fsm.Event) {
@@ -397,12 +405,9 @@
 				msg, _ := message.Data.(OnuFlowUpdateMessage)
 				o.handleFlowUpdate(msg)
 			case StartEAPOL:
-				log.Infof("Receive StartEAPOL message on ONU Channel")
-				eapol.SendEapStart(o.ID, o.PonPortID, o.Sn(), o.PortNo, o.HwAddress, o.InternalState, stream)
+				o.handleEAPOLStart(stream)
 			case StartDHCP:
-				log.Infof("Receive StartDHCP message on ONU Channel")
-				// FIXME use id, ponId as SendEapStart
-				dhcp.SendDHCPDiscovery(o.PonPort.Olt.ID, o.PonPortID, o.ID, o.Sn(), o.PortNo, o.InternalState, o.HwAddress, o.CTag, stream)
+				o.handleDHCPStart(stream)
 			case OnuPacketOut:
 
 				msg, _ := message.Data.(OnuPacketMessage)
@@ -518,6 +523,38 @@
 	}
 }
 
+func (o *Onu) handleEAPOLStart(stream openolt.Openolt_EnableIndicationServer) {
+	log.Infof("Receive StartEAPOL message on ONU Channel")
+	eapol.SendEapStart(o.ID, o.PonPortID, o.Sn(), o.PortNo, o.HwAddress, o.InternalState, stream)
+	go func(delay time.Duration) {
+		time.Sleep(delay)
+		if (o.InternalState.Current() == "eap_start_sent" ||
+			o.InternalState.Current() == "eap_response_identity_sent" ||
+			o.InternalState.Current() == "eap_response_challenge_sent" ||
+			o.InternalState.Current() == "auth_failed") && common.Options.BBSim.AuthRetry {
+			o.InternalState.Event("start_auth")
+		} else if o.InternalState.Current() == "eap_response_success_received" {
+			o.Backoff.Reset()
+		}
+	}(o.Backoff.Duration())
+}
+
+func (o *Onu) handleDHCPStart(stream openolt.Openolt_EnableIndicationServer) {
+	log.Infof("Receive StartDHCP message on ONU Channel")
+	// FIXME use id, ponId as SendEapStart
+	dhcp.SendDHCPDiscovery(o.PonPort.Olt.ID, o.PonPortID, o.ID, o.Sn(), o.PortNo, o.InternalState, o.HwAddress, o.CTag, stream)
+	go func(delay time.Duration) {
+		time.Sleep(delay)
+		if (o.InternalState.Current() == "dhcp_discovery_sent" ||
+			o.InternalState.Current() == "dhcp_request_sent" ||
+			o.InternalState.Current() == "dhcp_failed") && common.Options.BBSim.DhcpRetry {
+			o.InternalState.Event("start_dhcp")
+		} else if o.InternalState.Current() == "dhcp_ack_received" {
+			o.Backoff.Reset()
+		}
+	}(o.Backoff.Duration())
+}
+
 func (o Onu) NewSN(oltid int, intfid uint32, onuid uint32) *openolt.SerialNumber {
 
 	sn := new(openolt.SerialNumber)
diff --git a/internal/common/options.go b/internal/common/options.go
index b7f8bf6..6c728fb 100644
--- a/internal/common/options.go
+++ b/internal/common/options.go
@@ -121,6 +121,8 @@
 }
 
 type BBSimConfig struct {
+	DhcpRetry            bool          `yaml:"dhcp_retry"`
+	AuthRetry            bool          `yaml:"auth_retry"`
 	EnableIgmp           bool          `yaml:"enable_igmp"`
 	EnableDhcp           bool          `yaml:"enable_dhcp"`
 	EnableAuth           bool          `yaml:"enable_auth"`
@@ -187,6 +189,8 @@
 			ControlledActivation: "default",
 			EnablePerf:           false,
 			KafkaEventTopic:      "",
+			DhcpRetry:            false,
+			AuthRetry:            false,
 		},
 		OltConfig{
 			Vendor:             "BBSim",
@@ -266,6 +270,8 @@
 	enableEvents := flag.Bool("enableEvents", conf.BBSim.Events, "Enable sending BBSim events on configured kafka server")
 	kafkaAddress := flag.String("kafkaAddress", conf.BBSim.KafkaAddress, "IP:Port for kafka")
 	kafkaEventTopic := flag.String("kafkaEventTopic", conf.BBSim.KafkaEventTopic, "Ability to configure the topic on which BBSim publishes events on Kafka")
+	dhcpRetry := flag.Bool("dhcpRetry", conf.BBSim.DhcpRetry, "Set this flag if BBSim should retry DHCP upon failure until success")
+	authRetry := flag.Bool("authRetry", conf.BBSim.AuthRetry, "Set this flag if BBSim should retry EAPOL (Authentication) upon failure until success")
 	flag.Parse()
 
 	sTagAlloc, err := tagAllocationFromString(*s_tag_allocation)
@@ -311,6 +317,8 @@
 	conf.BBSim.RestApiAddress = *rest_api_address
 	conf.BBSim.SadisFormat = sf
 	conf.BBSim.KafkaEventTopic = *kafkaEventTopic
+	conf.BBSim.AuthRetry = *authRetry
+	conf.BBSim.DhcpRetry = *dhcpRetry
 
 	// update device id if not set
 	if conf.Olt.DeviceId == "" {
