diff --git a/internal/bbsim/devices/olt.go b/internal/bbsim/devices/olt.go
index 31c2993..58c7fab 100644
--- a/internal/bbsim/devices/olt.go
+++ b/internal/bbsim/devices/olt.go
@@ -1613,6 +1613,10 @@
 	return &openolt.OnuLogicalDistance{}, nil
 }
 
+func (o *OltDevice) GetPonRxPower(ctx context.Context, in *openolt.Onu) (*openolt.PonRxPowerData, error) {
+	return &openolt.PonRxPowerData{}, nil
+}
+
 func (o *OltDevice) GetGemPortStatistics(ctx context.Context, in *openolt.OnuPacket) (*openolt.GemPortStatistics, error) {
 	return &openolt.GemPortStatistics{}, nil
 }
diff --git a/internal/bbsim/devices/onu_test_helpers.go b/internal/bbsim/devices/onu_test_helpers.go
index 3ca32a6..9d6b977 100644
--- a/internal/bbsim/devices/onu_test_helpers.go
+++ b/internal/bbsim/devices/onu_test_helpers.go
@@ -142,6 +142,10 @@
 	return nil, errors.New("unimplemented-in-mock-client")
 }
 
+func (s *mockClient) GetPonRxPower(ctx context.Context, in *openolt.Onu, opts ...grpc.CallOption) (*openolt.PonRxPowerData, error) {
+	return nil, errors.New("unimplemented-in-mock-client")
+}
+
 // this method creates a fake ONU used in the tests
 func createMockOnu(id uint32, ponPortId uint32) *Onu {
 	o := Onu{
diff --git a/internal/bbsim/responders/dhcp/dhcp.go b/internal/bbsim/responders/dhcp/dhcp.go
index 20186ea..0916421 100644
--- a/internal/bbsim/responders/dhcp/dhcp.go
+++ b/internal/bbsim/responders/dhcp/dhcp.go
@@ -248,7 +248,7 @@
 	return dhcpMessageType.String(), nil
 }
 
-func sendDHCPPktIn(msg bbsim.ByteMsg, portNo uint32, gemPortId uint32, stream bbsim.Stream) error {
+func sendDHCPPktIn(msg bbsim.ByteMsg, portNo uint32, gemPortId uint32, uniId uint32, stream bbsim.Stream) error {
 
 	dhcpLogger.WithFields(log.Fields{
 		"OnuId":   msg.OnuId,
@@ -267,6 +267,8 @@
 		GemportId: gemPortId,
 		Pkt:       msg.Bytes,
 		PortNo:    portNo,
+		OnuId:     msg.OnuId,
+		UniId:     uniId,
 	}}
 
 	if err := stream.Send(&openolt.Indication{Data: data}); err != nil {
@@ -278,7 +280,7 @@
 
 func sendDHCPRequest(ponPortId uint32, onuId uint32, serviceName string, serialNumber string, portNo uint32,
 	cTag int, gemPortId uint32, onuStateMachine *fsm.FSM, onuHwAddress net.HardwareAddr,
-	offeredIp net.IP, pbit uint8, stream bbsim.Stream) error {
+	offeredIp net.IP, pbit uint8, uniId uint32, stream bbsim.Stream) error {
 	dhcp := createDHCPReq(ponPortId, onuId, onuHwAddress, offeredIp, gemPortId)
 	pkt, err := serializeDHCPPacket(cTag, onuHwAddress, dhcp, pbit)
 
@@ -303,7 +305,7 @@
 		Bytes:  pkt.Data(),
 	}
 
-	if err := sendDHCPPktIn(msg, portNo, gemPortId, stream); err != nil {
+	if err := sendDHCPPktIn(msg, portNo, gemPortId, uniId, stream); err != nil {
 		dhcpLogger.WithFields(log.Fields{
 			"OnuId":  onuId,
 			"IntfId": ponPortId,
@@ -368,7 +370,7 @@
 		Bytes:  pkt.Data(),
 	}
 
-	if err := sendDHCPPktIn(msg, portNo, gemPortId, stream); err != nil {
+	if err := sendDHCPPktIn(msg, portNo, gemPortId, uniId, stream); err != nil {
 		dhcpLogger.WithFields(log.Fields{
 			"OnuId":       onuId,
 			"IntfId":      ponPortId,
@@ -448,7 +450,7 @@
 	if dhcpLayer.Operation == layers.DHCPOpReply {
 		if dhcpMessageType == layers.DHCPMsgTypeOffer {
 			offeredIp := dhcpLayer.YourClientIP
-			if err := sendDHCPRequest(ponPortId, onuId, serviceName, serialNumber, portNo, cTag, gemPortId, onuStateMachine, onuHwAddress, offeredIp, pbit, stream); err != nil {
+			if err := sendDHCPRequest(ponPortId, onuId, serviceName, serialNumber, portNo, cTag, gemPortId, onuStateMachine, onuHwAddress, offeredIp, pbit, uniId, stream); err != nil {
 				dhcpLogger.WithFields(log.Fields{
 					"OnuId":       onuId,
 					"IntfId":      ponPortId,
diff --git a/internal/bbsim/responders/eapol/eapol.go b/internal/bbsim/responders/eapol/eapol.go
index 173727b..cd0f4a3 100644
--- a/internal/bbsim/responders/eapol/eapol.go
+++ b/internal/bbsim/responders/eapol/eapol.go
@@ -52,6 +52,8 @@
 		GemportId: uint32(gemid),
 		Pkt:       msg.Bytes,
 		PortNo:    portNo,
+		OnuId:     msg.OnuId,
+		UniId:     0, // FIXME: When multi-uni support comes in, this hardcoding has to be removed.
 	}}
 
 	if err := stream.Send(&openolt.Indication{Data: data}); err != nil {
@@ -220,6 +222,8 @@
 			GemportId: gemPort,
 			Pkt:       msg,
 			PortNo:    portNo,
+			OnuId:     onuId,
+			UniId:     uniId,
 		},
 	}
 
diff --git a/internal/bbsim/responders/igmp/igmp.go b/internal/bbsim/responders/igmp/igmp.go
index 15aafb1..1e58fb3 100644
--- a/internal/bbsim/responders/igmp/igmp.go
+++ b/internal/bbsim/responders/igmp/igmp.go
@@ -56,6 +56,8 @@
 			GemportId: gemPortId,
 			Pkt:       pkt,
 			PortNo:    portNo,
+			OnuId:     onuId,
+			UniId:     0, // FIXME: When multi-uni support comes in, this hardcoding has to be removed
 		},
 	}
 	//Sending IGMP packets
@@ -96,6 +98,8 @@
 			GemportId: gemPortId,
 			Pkt:       pkt,
 			PortNo:    portNo,
+			OnuId:     onuId,
+			UniId:     0,
 		},
 	}
 	//Sending IGMP packets
@@ -149,6 +153,8 @@
 			GemportId: gemPortId,
 			Pkt:       pkt,
 			PortNo:    portNo,
+			OnuId:     onuId,
+			UniId:     0, // FIXME: When multi-uni support comes in, this hardcoding has to be removed
 		},
 	}
 	//Sending IGMP packets
