#define VSOMEIP_ASSIGN_CLIENT 0x00 // client應用請求分配client_id
#define VSOMEIP_ASSIGN_CLIENT_ACK 0x01 // routing應用返回分配的client_id
#define VSOMEIP_REGISTER_APPLICATION 0x02 // client應用注冊someip應用
#define VSOMEIP_DEREGISTER_APPLICATION 0x03 // client應用取消someip應用的注冊
#define VSOMEIP_APPLICATION_LOST 0x04 // 未使用(代碼中沒有找到使用的地方)
#define VSOMEIP_ROUTING_INFO 0x05 // 如果當前主機內有app發布了serive,instance,則routing通知當前主機內請求了該服務實例的client app,此時消息中的commandid就是VSOMEIP_ROUTING_INFO
#define VSOMEIP_REGISTERED_ACK 0x06 // 當前主機內有app注冊了client_id,routing應用會通知主機內所有app,其中注冊了這個client_id的app會回復VSOMEIP_REGISTERED_ACK消息// 具體可以看routing_manager_client中收到routing消息的地方,首先要是routing_info類型的消息,然后里面的command_entry類型未RTE_CLIENT_ADD才會觸發client回復這個消息#define VSOMEIP_PING 0x0E // routing發送PING消息給client應用,當兩個應用先后offer同一個service/instance的時候,routing會通過PING消息判斷先offer的client應用是否還活著
#define VSOMEIP_PONG 0x0F // client應用以PONG消息回復routing應用的PING消息,告訴routing自己還活著#define VSOMEIP_OFFER_SERVICE 0x10 // client應用發布service實例
#define VSOMEIP_STOP_OFFER_SERVICE 0x11 // client應用停止分布service實例
#define VSOMEIP_SUBSCRIBE 0x12 // client應用訂閱service實例的事件
#define VSOMEIP_UNSUBSCRIBE 0x13 // client應用停止訂閱service實例的事件
#define VSOMEIP_REQUEST_SERVICE 0x14 // client應用請求service實例
#define VSOMEIP_RELEASE_SERVICE 0x15 // client應用釋放(停止請求)service實例
#define VSOMEIP_SUBSCRIBE_NACK 0x16 // 1. client應用回復對其service訂閱的NACK消息給routing, routing隨后會將訂閱NACK消息發給訂閱端應用所在主機的routing應用// 2. 訂閱端應用所在主機的routing應用收到訂閱NACK消息,則通過uds發送VSOMEIP_SUBSCRIBE_NACK類型的消息給訂閱應用
#define VSOMEIP_SUBSCRIBE_ACK 0x17 // 1. client應用回復對其service訂閱的ACK消息給routing, routing隨后會將訂閱ACK消息發給訂閱端應用所在主機的routing應用// 2. 訂閱端應用所在主機的routing應用收到訂閱ACK消息,則通過uds發送VSOMEIP_SUBSCRIBE_ACK類型的消息給訂閱應用
#define VSOMEIP_SEND 0x18 // client應用發送消息的時候(REQUEST/RESPONSE),首先通過VSOMEIP_SEND類型的消息發給routing應用,由routing應用轉發給其他主機上的routing應用
#define VSOMEIP_NOTIFY 0x19 // client應用發送notification消息
#define VSOMEIP_NOTIFY_ONE 0x1A // client應用對某一個特定的訂閱了事件的遠端應用發送notification的消息#define VSOMEIP_REGISTER_EVENT 0x1B // 提供someip事件的client應用向routing應用注冊事件
#define VSOMEIP_UNREGISTER_EVENT 0x1C // 提供someip事件的client應用向routing應用取消事件的注冊
#define VSOMEIP_ID_RESPONSE 0x1D // 未使用(代碼中沒有找到使用的地方)
#define VSOMEIP_ID_REQUEST 0x1E // 未使用(代碼中沒有找到使用的地方)
#define VSOMEIP_OFFERED_SERVICES_REQUEST 0x1F // 當client應用通過application::get_offered_services_async接口向routing請求已經收到offer的service信息時,// client應用就會發送VSOMEIP_OFFERED_SERVICES_REQUEST類型的消息給routing應用
#define VSOMEIP_OFFERED_SERVICES_RESPONSE 0x20 // routing應用收到VSOMEIP_OFFERED_SERVICES_REQUEST類型的消息后將本地目前收到offer的所有service信息放到VSOMEIP_OFFERED_SERVICES_RESPONSE類型消息中回復給client應用
#define VSOMEIP_UNSUBSCRIBE_ACK 0x21 // 提供event的應用從routing應用收到遠端應用對該event取消訂閱的請求后,將發送VSOMEIP_UNSUBSCRIBE_ACK消息給routing應用,然后再給到遠端的routing和訂閱該event的client應用
#define VSOMEIP_RESEND_PROVIDED_EVENTS 0x22 // routing應用發給client應用,要求其重新將event注冊的消息(VSOMEIP_REGISTER_EVENT)發送一次
?每種消息的格式如下:
vSomeIP command documentation
=============================VSOMEIP_ASSIGN_CLIENT (0x00)Command 00
Version xx xx
Client xx xx
Size xx xx xx xx
Name xx ... xx ;#xx = SizeVSOMEIP_ASSIGN_CLIENT_ACK (0x01)Command 01
Version xx xx
Client xx xx
Size 02 00 00 00
Assigned xx xxVSOMEIP_REGISTER_APPLICATION (0x02)Command 02
Version xx xx
Client xx xx
Size 00 00 00 00VSOMEIP_DEREGISTER_APPLICATION (0x03)Command 03
Version xx xx
Client xx xx
Size 00 00 00 00VSOMEIP_APPLICATION_LOST (0x04)<unused>VSOMEIP_ROUTING_INFO (0x05)Command 05
Version xx xx
Client xx xx
Size xx xx xx xx
Entries SubCommand xx ; RIE_ADD_CLIENT (0x0) or RIE_DEL_CLIENT (0x1)Size xx xx xx xxClient xx xx[Address] xx .. xx ; Size - sizeof(Client) - sizeof(Port)[Port] xxSubCommand xx ; RIE_ADD_SERVICE_INSTANCE (0x2) or RIE_DEL_SERVICE_INSTANCE (0x3)Size xx xx xx xx ; Command sizeSize xx xx xx xx ; Client info sizeClient xx xx[Address] xx .. xx ; Client info size - sizeof(Client) - sizeof(Port)[Port] xxSize xx xx xx xx ; Services sizeService xx xxInstance xx xxMajor xxMinor xx xx xx xxVSOMEIP_REGISTERED_ACK (0x06)Command 06
Version xx xx
Client xx xx
Size 00 00 00 00VSOMEIP_PING (0x07)Command 07
Version xx xx
Client 00 00
Size 00 00 00 00VSOMEIP_PONG (0x08)Command 08
Version xx xx
Client xx xx
Size 00 00 00 00VSOMEIP_OFFER_SERVICE (0x10)Command 10
Version xx xx
Client xx xx
Size 09 00 00 00
Service xx xx
Instance xx xx
Major xx
Minor xx xx xx xxVSOMEIP_STOP_OFFER_SERVICE (0x11)Command 11
Version xx xx
Client xx xx
Size 09 00 00 00
Service xx xx
Instance xx xx
Major xx
Minor xx xx xx xxVSOMEIP_SUBSCRIBE (0x12)Command 12
Version xx xx
Client xx xx
Size xx xx xx xx
Service xx xx
Instance xx xx
Eventgroup xx xx
Major xx
Event xx xx
Pending ID xx xx
FilterOnChange xxOnChangeResetsInterval xxInterval xx xx xx xx xx xx xx xxIgnore (per entry)Key xx xx xx xx xx xx xx xxValue xxVSOMEIP_UNSUBSCRIBE (0x13)
VSOMEIP_EXPIRE (0x2A)Command 13/2A
Version xx xx
Client xx xx
Size 0a 00 00 00
Service xx xx
Instance xx xx
Eventgroup xx xx
Event xx xx
Pending ID xx xxVSOMEIP_REQUEST_SERVICE (0x14)Command 14
Version xx xx
Client xx xx
Size xx xx xx xx
EntriesService xx xxInstance xx xxMajor xxMinor xx xx xx xxVSOMEIP_RELEASE_SERVICE (0x15)Command 15
Version xx xx
Client xx xx
Size 04 00 00 00
Service xx xx
Instance xx xxVSOMEIP_SUBSCRIBE_NACK (0x16)Command 16
Version xx xx
Client xx xx
Size 0c 00 00 00
Service xx xx
Instance xx xx
Eventgroup xx xx
Subscriber xx xx
Event xx xx
ID xx xxVSOMEIP_SUBSCRIBE_ACK (0x17)Command 17
Version xx xx
Client xx xx
Size 0c 00 00 00
Service xx xx
Instance xx xx
Eventgroup xx xx
Subscriber xx xx
Event xx xx
ID xx xxVSOMEIP_SEND (0x18)
VSOMEIP_NOTIFY (0x19)
VSOMEIP_NOTIFY_ONE (0x1A)Command 18|19|1a
Version xx xx
Client xx xx
Size xx xx xx xx
Instance xx xx
Reliable xx ; UDP (00) or TCP (01)
Status xx ; CRC of E2E - protected messages
Destination xx xx ; Client ID of the receiver
Payload xx ... xxVSOMEIP_REGISTER_EVENT (0x1B)Command 1b
Version xx xx
Client xx xx
Size xx xx xx xx ; 10 + #eventgroups * 2
EntriesService xx xxInstance xx xxNotifier xx xxType xx ; ET_EVENT (00), ET_SELECTIVE_EVENT(01) or ET_FIELD(02)Provided xx ; False (00) or True (01)Reliability xx ; UDP (00) or TCP (01)IsCyclic xxNum Eventgroups xx xxEntriesEventgroup xx xxVSOMEIP_UNREGISTER_EVENT (0x1C)Command 1c
Version xx xx
Client xx xx
Size 07 00 00 00
Service xx xx
Instance xx xx
Notifier xx xx
Provided xxVSOMEIP_ID_RESPONSE (0x1D)<unused>VSOMEIP_ID_REQUEST (0x1E)<unused>VSOMEIP_OFFERED_SERVICES_REQUEST (0x1F)Command 1f
Version xx xx
Client xx xx
Size 01 00 00 00
OfferType xx (00 = LOCAL, 01 = REMOTE, 02 = ALL)VSOMEIP_OFFERED_SERVICES_RESPONSE (0x20)Command 20
Version xx xx
Client xx xx
Size xx xx xx xx
OfferedServicesSubcommand xx (00 = ADD CLIENT, 01 = ADD SERVICE INSTANCE, 02 = DELETE SERVICE INSTANCE, 03 = DELETE CLIENT)Size xx xx xx xxServiceInstancesService xx xxInstance xx xxMajor xx xxMinor xx xxVSOMEIP_UNSUBSCRIBE_ACK (0x21)Command 21
Version xx xx
Client xx xx
Size 08 00 00 00
Service xx xx
Instance xx xx
Eventgroup xx xx
Id xx xx VSOMEIP_RESEND_PROVIDED_EVENTS (0x22)Command 22
Version xx xx
Client xx xx
Size 04 00 00 00
PendingOfferId xx xx xx xxVSOMEIP_UPDATE_SECURITY_POLICY (0x23)
VSOMEIP_UPDATE_SECURITY_POLICY_INT (0x29)Command 23/29
Version xx xx
Client xx xx
Size xx xx xx xx
UpdateId xx xx xx xx
Policy xx ... xx VSOMEIP_UPDATE_SECURITY_POLICY_RESPONSE (0x24)Command 24
Version xx xx
Client xx xx
Size 04 00 00 00
UpdateId xx xx xx xxVSOMEIP_REMOVE_SECURITY_POLICY (0x25)Command 25
Version xx xx
Client xx xx
Size 0c 00 00 00
UpdateId xx xx xx xx
Uid xx xx xx xx
Gid xx xx xx xxVSOMEIP_REMOVE_SECURITY_POLICY_RESPONSE (0x26)Command 26
Version xx xx
Client xx xx
Size 04 00 00 00
UpdateId xx xx xx xxVSOMEIP_UPDATE_SECURITY_CREDENTIALS (0x27)Command 27
Version xx xx
Client xx xx
Size xx xx xx xx
CredentialsUid xx xx xx xxGid xx xx xx xxVSOMEIP_DISTRIBUTE_SECURITY_POLICIES (0x28)Command 28
Version xx xx
Client xx xx xx xx
Size xx xx xx xx
PoliciesCount xx xx xx xx
PoliciesSize xx xx xx xxData xx ... xxVSOMEIP_SUSPEND (0x30)Command 30
Version xx xx
Size xx xx xx xx