-
Notifications
You must be signed in to change notification settings - Fork 681
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BUG] CommonAPI SOME/IP stub implementation _client->getHostAddress() returns "0.0.0.0" rather than peer's address #679
Comments
The expectation is "wrong". The host address is provided if you are using TCP to communicate between vsomeip application (no "real" SOME/IP). |
@lutzbichler What do you mean by 'no "real" SOME/IP'? in your comment? Is this lack of UDP host address documented anywhere? |
As said, the host address is filled when you run the vsomeip protocol between applications via TCP instead of UDS. It cannot have any meaning when using UDS. There is no relationship to UDP or SOME/IP. |
@lutzbichler Sorry, I still don't understand you. From github: "The vsomeip stack implements the http://some-ip.com/ (Scalable service-Oriented MiddlewarE over IP (SOME/IP)) protocol.", so there's a direct relationship between vsomeip and SOME/IP. From the SOME/IP specifications we see that there are transport protocol bindings defined for both TCP and UDP (note - not UDS here!). So I think that it is reasonable to assume that the host address would be filled in for either TCP or UDP transport protocols. |
You are mixing up SOME/IP communication between different hosts and vsomeip communication on a single host. Applications on a single host use the vsomeip protocol to communicate to each other and this protocol runs via UDS(!) or TCP. And all these additional elements of the CommonAPI client identifier (uid, gid, env, host address) only apply to communication on a single host. |
@lutzbichler "these additional elements of the CommonAPI client identifier (uid, gid, env, host address) only apply to communication on a single host." - that seems wrong to me - you appear to be saying that if the client and server are on the same host then the server can find out the client's host address (i.e. its own address, which would be available via other means) but if the client and server are on different hosts then the server cannot find out the address of the client (which is when it would be useful). |
@lutzbichler Any ideas where I can ask for help on determining the client IP address in server code? One of the other COVESA repositories, perhaps? |
vSomeip Version
v3.4.10
Boost Version
1.81
Environment
Embedded Linux
Describe the bug
Stub implementations are passed the 'const std::shared_ptrCommonAPI::ClientId _client' as their first parameter, but the _client->getHostAddress() does not return the IP address of the client.
Reproduction Steps
Create a simple method in .fidl, .fdepl.
Implement the stub implementation of this method, and look at the content of the _client->getHostAddress() when the method is invoked from a remote client.
Expected behaviour
I expect to be able to read the IP address of the client in _client->getHostAddress().
Logs and Screenshots
Stub Implementation:
Console output:
The text was updated successfully, but these errors were encountered: