[VOL-936] add changes for onu distance from OLT
Change-Id: If6201799946ac753780d0424c4bd986e2fb394d2
diff --git a/rw_core/core/device/agent.go b/rw_core/core/device/agent.go
index 264b44f..3857a6b 100755
--- a/rw_core/core/device/agent.go
+++ b/rw_core/core/device/agent.go
@@ -1732,3 +1732,34 @@
logger.Debugw("Omci_test_Request-Success-device-agent", log.Fields{"testResp": testResp})
return testResp, nil
}
+
+func (agent *Agent) getExtValue(ctx context.Context, pdevice *voltha.Device, cdevice *voltha.Device, valueparam *voltha.ValueSpecifier) (*voltha.ReturnValues, error) {
+ log.Debugw("getExtValue", log.Fields{"device-id": agent.deviceID, "onuid": valueparam.Id, "valuetype": valueparam.Value})
+ if err := agent.requestQueue.WaitForGreenLight(ctx); err != nil {
+ return nil, err
+ }
+
+ //send request to adapter
+ ch, err := agent.adapterProxy.GetExtValue(ctx, pdevice, cdevice, valueparam.Id, valueparam.Value)
+ agent.requestQueue.RequestComplete()
+ if err != nil {
+ return nil, err
+ }
+
+ // Wait for the adapter response
+ rpcResponse, ok := <-ch
+ if !ok {
+ return nil, status.Errorf(codes.Aborted, "channel-closed-device-id-%s", agent.deviceID)
+ }
+ if rpcResponse.Err != nil {
+ return nil, rpcResponse.Err
+ }
+
+ // Unmarshal and return the response
+ Resp := &voltha.ReturnValues{}
+ if err := ptypes.UnmarshalAny(rpcResponse.Reply, Resp); err != nil {
+ return nil, status.Errorf(codes.InvalidArgument, "%s", err.Error())
+ }
+ logger.Debugw("getExtValue-Success-device-agent", log.Fields{"Resp": Resp})
+ return Resp, nil
+}