-
Notifications
You must be signed in to change notification settings - Fork 45
Log File Changes (schemaVersion=4)
The changes documented in this wiki page were prompted by the following Jira tickets:
- ODE-689: .h files from Lear needs to be updated
- ODE-690: Incorrect BSM transmit validation signature
- ODE-685: Adding fields for host and remote vehicles for BSMs
These changes are are prompted by schemaVersion=4
Lear documentation had an error regarding the securityResultCode
in their previous .h file that defines the log file record structures and valid values. The change is how messages are validated for signatures. Previously success
was defined as 1
and failure
as 0
. Now, 0
represents success
and any other non-zero value represents a status code indicating why the signature validation failed. It is assumed that the validSignature
parameter is populated with value from securityResultCode
enum.
To address this change and report complete information to the end user, the existing validSignature
boolean
field in the ODE metadata was replaced with a new securityResultCode
enum field that would translate to a string value when converted to JSON. The valid values for securityResultCode
are as follows.
success = 0,
unknown = 1,
inconsistentInputParameters = 2,
spduParsingInvalidInput = 3,
spduParsingUnsupportedCriticalInformationField = 4,
spduParsingCertificateNotFound = 5,
spduParsingGenerationTimeNotAvailable = 6,
spduParsingGenerationLocationNotAvailable = 7,
spduCertificateChainNotEnoughInformationToConstructChain = 8,
spduCertificateChainChainEndedAtUntrustedRoot = 9,
spduCertificateChainChainWasTooLongForImplementation = 10,
spduCertificateChainCertificateRevoked = 11,
spduCertificateChainOverdueCRL = 12,
spduCertificateChainInconsistentExpiryTimes = 13,
spduCertificateChainInconsistentStartTimes = 14,
spduCertificateChainInconsistentChainPermissions = 15,
spduCryptoVerificationFailure = 16,
spduConsistencyFutureCertificateAtGenerationTime = 17,
spduConsistencyExpiredCertificateAtGenerationTime = 18,
spduConsistencyExpiryDateTooEarly = 19,
spduConsistencyExpiryDateTooLate = 20,
spduConsistencyGenerationLocationOutsideValidityRegion = 21,
spduConsistencyNoGenerationLocation = 22,
spduConsistencyUnauthorizedPSID = 23,
spduInternalConsistencyExpiryTimeBeforeGenerationTime = 24,
spduInternalConsistencyextDataHashDoesntMatch = 25,
spduInternalConsistencynoExtDataHashProvided = 26,
spduInternalConsistencynoExtDataHashPresent = 27,
spduLocalConsistencyPSIDsDontMatch = 28,
spduLocalConsistencyChainWasTooLongForSDEE = 29,
spduRelevanceGenerationTimeTooFarInPast = 30,
spduRelevanceGenerationTimeTooFarInFuture = 31,
spduRelevanceExpiryTimeInPast = 32,
spduRelevanceGenerationLocationTooDistant = 33,
spduRelevanceReplayedSpdu = 34,
spduCertificateExpired = 35
Since the new .h file does not specify any value for 1
, we use that ordinal value to specify unknown
security status. Upon this change, all archived records containing the validSignature= true
must be updated to include a new field securityResultCode = unknown
and all records with validSignature = false
to be translated into securityResultCode = success
.
On BSM transmit records, Lear does not include verification status (you will see this in the _bsmTxRecord of the .h file). ODE previously handled this missing information as valid signature and set the validSignature = true
. The new requirement is to treat missing validSignature
as an unknown
value in the securityResultCode
, i.e. value of 1. Therefore, all BSM Transmit records that contain validSignature = true
must be changed to securityResultCode = unknown
and validSignature
field removed entirely from those records.
BSM TX and BSM RX records have a value for the host vehicle (EV or 0) and for a remote vehicle (RV or 1) in the direction field. These values must be propagated to the ODE metadata so that the EV and RV records can be differentiated by applications that need it.
To address this issue, ODE added a new field bsmSource
to the metadata component of all BSM data. BSM Transmit records (bsmTx RecordType
) will always have bsmSource = EV
. BSM records received during an event(bsmLogDuringEvent RecordType
) will have the bsmSource
field set to EV
or RV
according to the value contained in the log record. BSM records contained in a Received Message file (rxMsg RecordType
) will always have bsmSource = RV
by default.
Since this is a new field in the metadata, previously archived records must be modified to contain the following:
* bsmTx => bsmSource = EV
* bsmRx => bsmSource = RV
* bsmLogDuringEvent => bsmSource = unknown (because there is no practical way to determine the bsmSource)
Sample output with new metadata version can be found here.
*It is recommended that the applications receving the data handle the old schema and the new schema dynamically according to the `schemaVersion` and apply the above transformation rules appropriately and according to the schema acceptable by the application.*
- Decode a file with asn1c
- Deposit BSM to S3
- Docker fix for SSL issues due to corporate network
- Docker management
- ECDSA Primer
- Filter BSMs through PPM module
- Geofence Filtering for PPM
- Import BSMs from RSU log file
- Import TIMs from RSU log file
- jpo security svcs Integration
- Link host directory to Docker directory
- Migrating from SDW websocket depositor to SDW Depositor Submodule
- ODE Release Deployment
- ODE Release Preparation
- Prepare a fresh Ubuntu instance for ODE installation
- Process for Handling Bugs (Code Defects)
- Run the ODE using the ASN codec module
- Query RSU for set TIMs
- Schema Version 6 Change Notice
- Signed Message File Import
- TIM REST Endpoint Changes
- Using the .env configuration file
- Using the ODE test harness
- Delete TIM on RSU test
- Event Logger Test
- Import Decode and Deliver BSM Test
- Manage SNMP Test
- Sending PDM to RSU Test
- Sending TIM to RSU Test
- Submit_TIM_To_SDW Test
- Log File Changes (schemaVersion=4)
- Receive BSMs over UDP
- Receive ISD via UDP and deposit to SDC
- Receive VSD via UDP and deposit to SDC
- Run the crypto test vectors code with ODE team's OSS encoder
- SchemaVersion 5 Change Notice