How a downstream service knows the upstream service name from a http request?

I have a question of using istio for service authentication.
Our use case:
Upstream service call a downstream service and the downstream needs to know the upstream service name.
In our use case, we need to know the service name to perform some business check. And we want to use istio’s authentication part, i.e upstream service authentication with istio and istio forward the service name to downstream services along with the request.
So how the downstream services knows the upstream service name? So for a http request, which field in request header or body we can get the upstream service name? Can the istio proxy unpack the upstream service token and convert it to readable name before forward the request?
Also, can we add some customize logic in the istio proxy layer, so the proxy can help us
(1) Unpack user info convert to JWT format
(2) Unpack service name.