VOL-4077: Improve storage usage on etcd
- send onu_id and uni_id in packet in (eap, dhcp, igmp)

Change-Id: Ib0e6cf8c46fdf715a67a2bc52d378209c854cfc2
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