From 0862fabdbebb48a0ccc49fa92fc8eeffc1e22502 Mon Sep 17 00:00:00 2001 From: Mark Tabry Date: Wed, 17 Apr 2019 17:16:35 -0700 Subject: [PATCH] Adds VMS START_SESSION message type and message definition. Bug: 130313799 Test: No tests affected. VmsUtils support will be added in a separate CL. Change-Id: I1c7b713b85f191b057051737ca6bbdd0ae9bc170 --- automotive/vehicle/2.0/types.hal | 36 +++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/automotive/vehicle/2.0/types.hal b/automotive/vehicle/2.0/types.hal index b04d0962c4..661c3d4b3d 100644 --- a/automotive/vehicle/2.0/types.hal +++ b/automotive/vehicle/2.0/types.hal @@ -3248,6 +3248,16 @@ enum DiagnosticFloatSensorIndex : int32_t { * the message is decoded. */ enum VmsMessageType : int32_t { + /** + * A notification indicating that the sender has been reset. + * + * The receiving party must reset its internal state and respond to the + * sender with a START_SESSION message as acknowledgement. + * + * This message type uses enum VmsStartSessionMessageIntegerValuesIndex. + */ + START_SESSION = 17, + /** * A request from the subscribers to the VMS service to subscribe to a layer. * @@ -3364,7 +3374,7 @@ enum VmsMessageType : int32_t { */ PUBLISHER_INFORMATION_RESPONSE = 16, - LAST_VMS_MESSAGE_TYPE = PUBLISHER_INFORMATION_RESPONSE, + LAST_VMS_MESSAGE_TYPE = START_SESSION, }; /** @@ -3377,6 +3387,30 @@ enum VmsBaseMessageIntegerValuesIndex : int32_t { MESSAGE_TYPE = 0, }; +/* + * Handshake data sent as part of a VmsMessageType.START_SESSION message. + * + * A new session is initiated by sending a START_SESSION message with the + * sender's identifier populated and the receiver's identifier set to -1. + * + * Identifier values are independently generated, but must be non-negative, and + * increase monotonically between reboots. + * + * Upon receiving a START_SESSION with a mis-matching identifier, the receiver + * must clear any cached VMS offering or subscription state and acknowledge the + * new session by responding with a START_SESSION message that populates both + * identifier fields. + * + * Any VMS messages received between initiation and completion of the handshake + * must be discarded. + */ +enum VmsStartSessionMessageIntegerValuesIndex : VmsBaseMessageIntegerValuesIndex { + /* Identifier field for the Android system service. */ + SERVICE_ID = 1, + /* Identifier field for the HAL client process. */ + CLIENT_ID = 2, +}; + /* * A VMS message with a layer is sent as part of a VmsMessageType.SUBSCRIBE or * VmsMessageType.UNSUBSCRIBE messages.