SOME/IP Server Demo
There is an example implementation of SOME/IP server demo available in apps folder. SOME/IP server is in waiting condition for UDP socket connection .Once connected SOME/IP server is ready to send the response to the client.
The below diagram captures the high level flow of client and server of SOME/IP.
Service Discovery Process

Notification Process

In this implementation, a model ECU is created to mimic various features that hold vehicle information like speed, RPM, door state, and gear state. Based on the SOME/IP protocol, if any event group is subscribed to by a client, the notification events will be sent while fields are updated in the corresponding event group, and data will be read and written on particular events(under subscribed eventgroup) with the below-mentioned event IDs.
Server Service Details Information
Service ID |
Instance ID |
TTL |
Major Ver |
Minor Ver |
Port |
IP Ver |
Proto Type |
---|---|---|---|---|---|---|---|
0x1234 |
0x5678 |
15 |
1 |
0 |
30510 |
IPV4/IPV6 |
UDP |
0x1234 |
0x5678 |
20 |
2 |
5 |
30511 |
IPV4/IPV6 |
UDP |
0x1235 |
0x5679 |
30 |
1 |
5 |
30510 |
IPV4/IPV6 |
UDP |
0x1234 |
0x5678 |
45 |
4 |
4 |
30510 |
IPV4/IPV6 |
TCP |
0x1235 |
0x5678 |
15 |
1 |
2 |
30512 |
IPV4/IPV6 |
TCP |
Server Eventgroup Details Information
Service ID |
Instance ID |
Eventgroup |
Multicast Port |
Multicast IPV4 Addr |
Multicast IPV6 Addr |
---|---|---|---|---|---|
0x1234 |
0x5678 |
0x4425 |
35689 |
“224.0.10.5” |
“FF05:0000:0000:0000:0000:0000:1235:1236” |
0x1234 |
0x5678 |
0x4426 |
0 |
0 |
0 |
0x1234 |
0x5678 |
0x4425 |
35670 |
“224.25.36.15” |
“FF05:0000:0000:0000:1237:0000:7777:5000” |
0x1234 |
0x5678 |
0x4426 |
35689 |
“224.0.10.5” |
“FF05:0000:0000:0000:1237:0000:8000:2000” |
0x1235 |
0x5679 |
0x4425 |
0 |
0 |
0 |
0x1235 |
0x5678 |
0x4425 |
0 |
0 |
0 |
0x1235 |
0x5678 |
0x4425 |
0 |
0 |
0 |
Server Event Information
Service ID |
Instance ID |
Major Version |
Eventgroup ID |
Event ID |
---|---|---|---|---|
0x1234 |
0x5678 |
1 |
0x4425 |
0x8001 |
0x1234 |
0x5678 |
1 |
0x4425 |
0x8002 |
0x1234 |
0x5678 |
1 |
0x4425 |
0x8003 |
0x1234 |
0x5678 |
1 |
0x4426 |
0x8004 |
0x1234 |
0x5678 |
1 |
0x4426 |
0x8005 |
0x1234 |
0x5678 |
1 |
0x4426 |
0x8006 |
0x1234 |
0x5678 |
2 |
0x4425 |
0x8007 |
0x1234 |
0x5678 |
2 |
0x4425 |
0x8008 |
0x1234 |
0x5678 |
2 |
0x4426 |
0x8009 |
0x1235 |
0x5679 |
1 |
0x4425 |
0x800A |
0x1235 |
0x5679 |
1 |
0x4425 |
0x800B |
0x1234 |
0x5678 |
4 |
0x4425 |
0x800C |
0x1235 |
0x5678 |
1 |
0x4425 |
0x800D |
0x1235 |
0x5678 |
1 |
0x4425 |
0x800E |
Server Event Data Information
Event ID |
User Data Type |
Description |
---|---|---|
0x8001 |
uint8 |
Wheel Slip Status |
0x8002 |
uint16 |
Speed Data |
0x8003 |
uint32 |
RPM Data |
0x8004 |
int8 |
Engine State |
0x8005 |
int16 |
Steering Data |
0x8006 |
int32 |
Yaw State |
0x8007 |
One Dimensional Array |
Peak Vol Current |
0x8008 |
One Dimensional Array |
State of charge |
0x8009 |
Multi Dimensional Array |
Battery Heat Grid |
0x800A |
One Dimensional Array |
ota state message |
0x800B |
One Dimensional Array |
ota error message |
0x800C |
Structure (float …, float .., uint32_t .., uint32_t …) |
Vehicle Pos Event data (latitude, longitude, speed, heading_direction) |
0x800D |
union (uint8_t, uint16_t, uint32_t) |
Diag Payload Data 1 (status_flags, error_type, fault_code) |
0x800E |
union (uint8_t, uint16_t, uint32_t) |
Diag Payload Data 2 (status_flags, error_type, fault_code) |
Read data by Method ID services:
Event ID |
Method ID |
---|---|
0x8001 |
11 |
0x8002 |
12 |
0x8003 |
13 |
0x8004 |
14 |
0x8005 |
15 |
0x8006 |
16 |
0x8007 |
17 |
0x8008 |
18 |
0x8009 |
19 |
0x800A |
1A |
0x800B |
1B |
0x800C |
1C |
0x800D |
1D |
0x800E |
1E |
Write data by Method ID services:
Event ID |
Method ID |
---|---|
0x8001 |
01 |
0x8002 |
02 |
0x8003 |
03 |
0x8004 |
04 |
0x8005 |
05 |
0x8006 |
06 |
0x8007 |
07 |
0x8008 |
08 |
0x8009 |
09 |
0x800A |
0A |
0x800B |
0B |
0x800C |
0C |
0x800D |
0D |
0x800E |
0E |
SOME/IP Server Running Example
Refer to the Supported Platforms page to setup your environmental setup and follow further.
User Configuration for Server (IPV4)
Socket configuration |
Value |
---|---|
SOME/IP Protocol Version |
0 - IPV4 |
SOME/IP server IP address |
IP address of server running PC or machine |
SOME/IP SD Port |
30490 |
SOME/IP server Port number |
30509 |
SOME/IP Service Discovery Multicast Addr(224.0.0.0 - 239.255.255.255) |
224.0.0.0 |
SOME/IP server cyclic offer delay (ms) |
5000 |
SOME/IP server initial delay (ms) |
500 |
SOME/IP server repetition base delay (ms) |
200 |
SOME/IP server repetitions maximum |
5 |
SOME/IP server log level in hex without(0x) |
1 |
SOME/IP serer run for cyclic event update |
|
After project successfully built, someip_server_demo binary generated.
Open the terminal in the above folder and run the below command
Windows (IPV4)

User Configuration for Server (IPV6)
Socket configuration |
Value |
---|---|
SOME/IP Protocol Version |
1 - IPV6 |
SOME/IP server IP address |
IP address of server running PC or machine |
SOME/IP SD Port |
30490 |
SOME/IP server Port number |
30509 |
SOME/IP Service Discovery Multicast Addr(FF00:0000:0000:0000:0000:0000:0000 - FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF) |
FF05:0000:0000:0000:0000:0000:0011 |
SOME/IP server cyclic offer delay (ms) |
5000 |
SOME/IP server initial delay (ms) |
500 |
SOME/IP server repetition base delay (ms) |
200 |
SOME/IP server repetitions maximum |
5 |
SOME/IP server log level in hex without(0x) |
1 |
SOME/IP serer run for cyclic event update |
|
After project successfully built, someip_server_demo binary generated.
Open the terminal in the above folder and run the below command
Windows (IPV6)

The SOME/IP server initiates the process and waits for the client to connect. After the SOME/IP client starts the process, both the server and client connects and proceed with services.
Refer to the SOME/IP protocol page for more details SOME/IP Protocol.