COVESA / vsomeip

An implementation of Scalable service-Oriented MiddlewarE over IP
Mozilla Public License 2.0
1.12k stars 697 forks source link

[BUG]: <title>Communication bw android target and Linux PC #676

Open nidheesh-ss opened 7 months ago

nidheesh-ss commented 7 months ago

vSomeip Version

v3.4.10

Boost Version

1.71

Environment

Ubuntu 20.04.6 LTS

Describe the bug

I am trying communicate bw my linux pc and android target but unfortunately i am not able to do this i have changed the unicast address of helloworld-local.json on android to android IP and unicast address of helloworld-local.json on linux to linux IP. i have connected ethernet cable bw my linux pc and android target and i am able to ping messages bw this.

IP Address of android = 192.168.1.4 IP address of Linux =192.168.1.5

Reproduction Steps

i am able communicate between within the devices like within linux machine and within android machine. Initially i disable the service discovery and now i enabled it but still i am getting nothing. i have changing the configuration files like ip services but still i am not succeding.Your help on this will be really helpful thank you in advance.

Expected behaviour

this is the Json file helloworld-local.json on linux machine { "unicast": "192.168.1.5", "logging": { "level": "debug", "console": "true" }, "applications": [ { "name": "hello_world_service", "id": "0x4444"

    },
    {
        "name": "hello_world_client",
        "id": "0x5555"

    }
],
"services": [
    {
        "service": "0x1111",
        "instance": "0x2222",
        "unreliable": "30509",
        "unicast": "192.168.1.5" 

    }
],
"routing": "hello_world_service",
"service-discovery": {
    "enable": "true"
}

}

this is the Json file helloworld-local.json on andorid machine { "unicast": "192.168.1.4", "logging": { "level": "debug", "console": "true" }, "applications": [ { "name": "hello_world_service", "id": "0x4444"

    },
    {
        "name": "hello_world_client",
        "id": "0x5555"

    }
],
"services": [
    {
        "service": "0x1111",
        "instance": "0x2222",
        "unreliable": "30509",
        "unicast": "192.168.1.4" 
    }
],
"routing": "hello_world_service",
"service-discovery": {
    "enable": "true"
}

}

Logs and Screenshots

Screenshot from 2024-04-17 18-30-54 Screenshot from 2024-04-17 18-30-23

nidheesh-ss commented 6 months ago

Hey i have tried this within two LINUX PCs still im getting the same issues Screenshot from 2024-05-02 15-19-04 kindly help me with this and also i am providing the json files below

`{ "unicast" : "192.168.1.122", "netmask" : "255.255.255.0", "logging" : { "level" : "info", "console" : "true", "file" : { "enable" : "true", "path" : "/var/log/vsomeip.log" }, "dlt" : "true" }, "applications" : [ { "name" : "client-sample", "id" : "0x1343" }, { "name" : "second-client-sample", "id" : "0x1344" }, { "name" : "third-client-sample", "id" : "0x1345" }, { "name" : "fourth-client-sample", "id" : "0x1346" } ], "services" : [ { "service" : "0x1234", "instance" : "0x5678", "unicast" : "192.168.1.133", "reliable" : { "port" : "30509", "magic-cookies" : false }, "events" : [ { "event" : "0x0777", "is_field" : "true" }, { "event" : "0x0778", "is_field" : "false" }, { "event" : "0x0779", "is_field" : "true" } ], "eventgroups" : [ { "eventgroup" : "0x4455", "events" : [ "0x777", "0x778" ] }, { "eventgroup" : "0x4465", "events" : [ "0x778", "0x779" ] }, { "eventgroup" : "0x4555", "events" : [ "0x777", "0x779" ] } ] } ], "routing" : "client-sample", "service-discovery" : { "enable" : "false", "multicast" : "224.0.0.1", "port" : "30491", "protocol" : "udp", "initial_delay_min" : "10", "initial_delay_max" : "100", "repetitions_base_delay" : "200", "repetitions_max" : "3", "ttl" : "3", "cyclic_offer_delay" : "2000", "request_response_delay" : "1500" } }

the service.json file is

{ "unicast" : "192.168.1.133", "logging" : { "level" : "debug", "console" : "true", "file" : { "enable" : "false", "path" : "/tmp/vsomeip.log" }, "dlt" : "false" }, "applications" : [ { "name" : "service-sample", "id" : "0x1277" } ], "services" : [ { "service" : "0x1234", "instance" : "0x5678", "unicast":"192.168.1.122" } ], "services" : [ { "service" : "0x1234", "instance" : "0x5678", "reliable" : { "port" : "30509", "magic-cookies" : "false" }, "events" : [ { "event" : "0x0777", "is_field" : "false", "is_reliable" : "true", "update-cycle" : 2000 }, { "event" : "0x0778", "is_field" : "true", "is_reliable" : "true", "update-cycle" : 0 }, { "event" : "0x0779", "is_field" : "false", "is_reliable" : "true" } ], "eventgroups" : [ { "eventgroup" : "0x4455", "events" : [ "0x777", "0x778" ] }, { "eventgroup" : "0x4465", "events" : [ "0x778", "0x779" ] }, { "eventgroup" : "0x4555", "events" : [ "0x777", "0x779" ] } ] } ], "routing" : "service-sample", "service-discovery" : { "enable" : "false", "multicast" : "224.0.0.1", "port" : "30490", "protocol" : "udp", "initial_delay_min" : "10", "initial_delay_max" : "100", "repetitions_base_delay" : "200", "repetitions_max" : "3", "ttl" : "3", "cyclic_offer_delay" : "2000", "request_response_delay" : "1500" } } `

MicrosoftTeams-image

nidheesh-ss commented 6 months ago

facing this tcp_client_endpoint::connect: Error binding socket: Cannot assign requested address local: 0.0.0.0:0 remote:192.168.1.138:30509

shidramayyahiremath commented 3 months ago

Hi i can understand your probelm the issue is your vsomeip library has to read the vsomeip.json configuration file, but because in android , vendor partion is not accessible , either chnage the path to /data/local/tmp in vsomeip library code, give static ip to your android device ,give route as well , give a default gateway which is same for both linux and android. like below.

chmod 777 /data/local/tmp/
ip addr add 172.17.0.2/16  dev eth0
ip route add 224.224.224.245 via 172.17.0.254 dev eth0  

,by doing this i was able to recieve message from linux in android however the server was not sending back the message. and there was no error. , when i checked the tcpdump i can see packet being recieved , but there is not outgoing packet.