[SEBA-819][SEBA-820] Adding commands to restart EAPOL and DHCP
Change-Id: I283dcae58bc5dbf0ef405c4ce6b5f2e8b818b993
diff --git a/internal/bbsim/api/onus_handler.go b/internal/bbsim/api/onus_handler.go
index 7f42f89..8feee21 100644
--- a/internal/bbsim/api/onus_handler.go
+++ b/internal/bbsim/api/onus_handler.go
@@ -158,3 +158,71 @@
return res, nil
}
+
+func (s BBSimServer) RestartEapol(ctx context.Context, req *bbsim.ONURequest) (*bbsim.Response, error) {
+ res := &bbsim.Response{}
+
+ logger.WithFields(log.Fields{
+ "OnuSn": req.SerialNumber,
+ }).Infof("Received request to restart authentication ONU")
+
+ olt := devices.GetOLT()
+
+ onu, err := olt.FindOnuBySn(req.SerialNumber)
+
+ if err != nil {
+ res.StatusCode = int32(codes.NotFound)
+ res.Message = err.Error()
+ return res, err
+ }
+
+ if err := onu.InternalState.Event("start_auth"); err != nil {
+ logger.WithFields(log.Fields{
+ "OnuId": onu.ID,
+ "IntfId": onu.PonPortID,
+ "OnuSn": onu.Sn(),
+ }).Errorf("Cannot restart authenticaton for ONU: %s", err.Error())
+ res.StatusCode = int32(codes.FailedPrecondition)
+ res.Message = err.Error()
+ return res, err
+ }
+
+ res.StatusCode = int32(codes.OK)
+ res.Message = fmt.Sprintf("Authentication restarted for ONU %s.", onu.Sn())
+
+ return res, nil
+}
+
+func (s BBSimServer) RestartDhcp(ctx context.Context, req *bbsim.ONURequest) (*bbsim.Response, error) {
+ res := &bbsim.Response{}
+
+ logger.WithFields(log.Fields{
+ "OnuSn": req.SerialNumber,
+ }).Infof("Received request to restart DHCP on ONU")
+
+ olt := devices.GetOLT()
+
+ onu, err := olt.FindOnuBySn(req.SerialNumber)
+
+ if err != nil {
+ res.StatusCode = int32(codes.NotFound)
+ res.Message = err.Error()
+ return res, err
+ }
+
+ if err := onu.InternalState.Event("start_dhcp"); err != nil {
+ logger.WithFields(log.Fields{
+ "OnuId": onu.ID,
+ "IntfId": onu.PonPortID,
+ "OnuSn": onu.Sn(),
+ }).Errorf("Cannot restart DHCP for ONU: %s", err.Error())
+ res.StatusCode = int32(codes.FailedPrecondition)
+ res.Message = err.Error()
+ return res, err
+ }
+
+ res.StatusCode = int32(codes.OK)
+ res.Message = fmt.Sprintf("DHCP restarted for ONU %s.", onu.Sn())
+
+ return res, nil
+}