diff --git a/internal/bbsim/api/onus_handler.go b/internal/bbsim/api/onus_handler.go
index b9c697c..975b426 100644
--- a/internal/bbsim/api/onus_handler.go
+++ b/internal/bbsim/api/onus_handler.go
@@ -295,6 +295,38 @@
 	return res, nil
 }
 
+// GetFlows for OLT/ONUs
+func (s BBSimServer) GetFlows(ctx context.Context, req *bbsim.ONURequest) (*bbsim.Flows, error) {
+	logger.WithFields(log.Fields{
+		"OnuSn": req.SerialNumber,
+	}).Info("Received GetFlows request")
+
+	olt := devices.GetOLT()
+	res := &bbsim.Flows{}
+
+	if req.SerialNumber == "" {
+		for flowKey := range olt.Flows {
+			flow := olt.Flows[flowKey]
+			res.Flows = append(res.Flows, &flow)
+		}
+		res.FlowCount = uint32(len(olt.Flows))
+	} else {
+		onu, err := olt.FindOnuBySn(req.SerialNumber)
+		if err != nil {
+			logger.WithFields(log.Fields{
+				"OnuSn": req.SerialNumber,
+			}).Error("Can't get ONU in GetFlows request")
+			return nil, err
+		}
+		for _, flowKey := range onu.Flows {
+			flow := olt.Flows[flowKey]
+			res.Flows = append(res.Flows, &flow)
+		}
+		res.FlowCount = uint32(len(onu.Flows))
+	}
+	return res, nil
+}
+
 func (s BBSimServer) GetOnuTrafficSchedulers(ctx context.Context, req *bbsim.ONURequest) (*bbsim.ONUTrafficSchedulers, error) {
 	olt := devices.GetOLT()
 	ts := bbsim.ONUTrafficSchedulers{}
