Skip to content

Log File Changes (schemaVersion=4)

hmusavi edited this page Feb 2, 2018 · 5 revisions

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

ODE-689: .h files from Lear needs to be updated

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.

ODE-690: Incorrect BSM transmit validation signature

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 validSignatureas 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.

ODE-685: Adding fields for host and remote vehicles for BSMs

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.*

Releases

Change Notices

Informational Reference

  • 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

Test Procedures

  • 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

Archived

  • 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
Clone this wiki locally