From d9083f4414d8dd782272320ce88c80bcaf54301f Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Mon, 18 Jan 2021 13:26:30 +0100 Subject: [PATCH 01/66] Initial MBMR modules --- .gitmodules | 7 + Its-MbmReport.asn | 147 +++++++++ Its-MbmrAppAgnostic.asn | 176 +++++++++++ Its-MbmrCam.asn | 664 ++++++++++++++++++++++++++++++++++++++++ Its-MbmrDenm.asn | 364 ++++++++++++++++++++++ Its-MbmrMisc.asn | 254 +++++++++++++++ Its-MbmrReporter.asn | 127 ++++++++ cdd | 1 + ieee1609dot2 | 1 + 9 files changed, 1741 insertions(+) create mode 100755 .gitmodules create mode 100755 Its-MbmReport.asn create mode 100755 Its-MbmrAppAgnostic.asn create mode 100755 Its-MbmrCam.asn create mode 100755 Its-MbmrDenm.asn create mode 100755 Its-MbmrMisc.asn create mode 100755 Its-MbmrReporter.asn create mode 160000 cdd create mode 160000 ieee1609dot2 diff --git a/.gitmodules b/.gitmodules new file mode 100755 index 0000000..0981518 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,7 @@ +[submodule "ieee1609dot2"] + path = ieee1609dot2 + url = https://forge.etsi.org/rep/ITS/asn1/ieee1609.2.git + +[submodule "cdd"] + path = cdd + url = https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2.git diff --git a/Its-MbmReport.asn b/Its-MbmReport.asn new file mode 100755 index 0000000..af175b2 --- /dev/null +++ b/Its-MbmReport.asn @@ -0,0 +1,147 @@ +---- +-- TS 103 759 +-- Draft proposal from SCA project lead by IRT SystemX +-- 2020-12-15 + +/* +* MisBehaviour and Malfunctioning Report Message MBMreport +* The following ASN.1 modules are part of this set for MBMR: +* mbmr (1) +* mbmrMisc (2) +* mbmrReporter (3) +* mbmrAppAgnostic (4) +* mbmrCam (5) +* mbmrDenm (6) +*/ + +/* +* @namespace Its-MbmReport +*/ +Its-MbmReport { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103759) mbmr (1) version1 (1) } +DEFINITIONS AUTOMATIC TAGS ::= BEGIN + +IMPORTS + +Psid, +ThreeDLocation, +Time64 +FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111) + standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) + base(1) base-types(2) major-version-2(2) minor-version-2(2)} + +Uint8 +FROM Its-MbmrMisc { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103759) mbmrMisc (2) version1 (1) } + +MbmrCam +FROM Its-MbmrCam { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103759) mbmrCam (5) version1 (1) } + +MbmrDenm +FROM Its-MbmrDenm { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103759) mbmrDenm (6) version1 (1) } + +MbmrAppAgnostic +FROM Its-MbmrAppAgnostic { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103759) mbmrAppAgnostic (4) version1 (1) } + +ReporterInfos +FROM Its-MbmrReporter { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103759) mbmrReporter (3) version1 (1) } + +/* +MbrBsm +FROM -tbd- +*/ + +; + +/* +* @brief This value type carries the version of this Misbehavior and Malfuncationing Report from an ITS-SU to the MA +* @class c-version-Mbmr +*/ +c-version-Mbmr Uint8 ::= 1 + +/* +* @brief This data type is the general PDU for a Misbehavior and Malfunctioning Report from an ITS-SU to the MA +* @class Mbmr +* @param version contains the version number of this PDU definition +* @param generationTime contains information on when this PDU was generated +* @param reportId contains information to distinguish different reports +* @param reports contains the detected application-specific issues +* @see C-MBR, SetMbr, MbReports +* @note Details of reportID are not specified in this module +*/ +Mbmr ::= SEQUENCE { + version Uint8, -- set to the value c-version-Mbr + generationTime Time64, -- time of generation of this message = unique message ID + report MbmReport, -- one single report related to one value of ITS-AID / PSID + reporterInfo ReporterInfos -- may be an empty sequence, required at least for level 4 detection + } + +/* +* @brief This data type is the whole report on issues detected for a specific ITS-AID +* @class MbmReport +* @param appId contains the respective ITS-AID +* @param appIssues contains the application-specific issue, e.g. MbrCam +* @see MbmReport, c-MbmrAppAgnostic +* @note There is an ITS-AID value assigned for protocol purposes, indicating a "Pseudo-Application". +* That can be used for issues not related to a specific ITS-AID, e.g. security issues +*/ +MbmReport ::= SEQUENCE{ + appId C-MBMR.&itsAid({SetMbmr}), + appIssues C-MBMR.&AppIssues({SetMbmr}{@.appId}) +} + +/* +* @brief This data type defines the IOC for MbReport +* @class C-MBR +* @param itsAid contains the globally unique reference identifier of an application-specific Mbr PDU +* @param AppIssues contains the open type of the PDU identified by itsAid +* @see Mbr, SetMbr, Psid +*/ + C-MBMR ::= CLASS { + &itsAid Psid UNIQUE, -- equals ITS-AID with syntax: INTEGER(0..MAX) + &AppIssues -- semantical issues for a given ITS-AID (syntax issues cannot be detected in messages with UPER) + } WITH SYNTAX {&AppIssues IDENTIFIED BY &itsAid} + +/* +* @brief This data type defines the IOS for Mbmr +* @class SetMbmr +* @see Mbmr +* @note One entry in this set for every supported application +* @note In an implementation only supported entries must be +* contained in the ASN.1 module +*/ +SetMbmr C-MBMR ::= { + { MbmrCam IDENTIFIED BY c-MbmrCam } + | { MbmrAppAgnostic IDENTIFIED BY c-MbmrAppAgnostic } + | { MbmrDenm IDENTIFIED BY c-MbmrDenm } +-- | { MbmrBsm IDENTIFIED BY c-MbmrBsm } + , ... + } + +/* +* @brief This value type contains the ITS-AID of the CA service +* @class c-MbrCam +* @see Psid +*/ +c-MbmrCam Psid ::= 36 + +/* +* @brief This value type contains the ITS-AID of the DEN service +* @class c-MbrDenm +* @see Psid +*/ +c-MbmrDenm Psid ::= 37 + +/* +* @brief This value type contains the ITS-AID of the unknown service +* @class c-MbrAppAgnostic +* @note This value is used for suspicious observations that are not +* or cannot be linked to a specific application +* @see Psid +*/ +c-MbmrAppAgnostic Psid ::= 270549119 + + +/* +c-MbmrBsm Psid ::= 32 +*/ + + END diff --git a/Its-MbmrAppAgnostic.asn b/Its-MbmrAppAgnostic.asn new file mode 100755 index 0000000..c11838c --- /dev/null +++ b/Its-MbmrAppAgnostic.asn @@ -0,0 +1,176 @@ +---- +-- TS 103 759 +-- Draft proposal from SCA project lead by IRT SystemX +-- 2020-12-03 + +/* +* Definitions from Its-MbmrAppAgnostic are imported in Its-Mbmr +* Its-MbmrAppAgnostic provides specifications for reports of issues that are not related to a specific application, +* or cannot be linked to a specific application. +* Currently, only security issues are considered. +*/ + +/* +* @namespace Its-MbmrAppAgnostic +*/ +Its-MbmrAppAgnostic { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103759) mbmrAppAgnostic (4) version1 (1) } +DEFINITIONS AUTOMATIC TAGS ::= BEGIN + +IMPORTS + +Uint8 +FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) base(1) base-types(2) major-version-2(2) minor-version-2(2)} + +MbmrMsg, +C-MBMR-MSG, +IdMbmrMsg, +MbmrPrevious, +OnlyBasicEvidence, +ObservedMsg +FROM +Its-MbmrMisc { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103759) mbmrMisc (2) version1 (1) } + +; + +/* @brief This data type contains detected issues that are independent from a specific applications, +* or cannot be mapped to a sepcific application. Issue domains are distinguished +* @class MbmrAppAgnostic +* @param version contains the version number of this PDU definition +* @param domain contains information on an observable domain with suspicious issues +* @see Mbmr, C-MBMR-APPAGNOSTC, SetMbmrAppAgnostic +*/ +MbmrAppAgnostic ::= MbmrMsg {{SetMbmrAppAgn}} + +/* +* @brief This data type defines the IOS for MbrAppAgn-Security +* @class SetMbmrAppAgn-Security +* @see MbrAppAgn-SecurityIssue, IdMbmrAppAgn-Security +* @note +*/ +SetMbmrAppAgn C-MBMR-MSG ::= { + { MbmrPrevious BY c-MbmrAppAgn-PreviousReport WITH OnlyBasicEvidence} -- if present, must be the first in MbrAppAgn-SecurityIssues + | { MbrAppAgn-Security-GenerationTimeStamp BY c-MbmrAppAgn-Security-GenerationTimeStamp WITH SecurityEvidence} + | { MbrAppAgn-Security-GeographicRegion BY c-MbmrAppAgn-Security-GeographicRegion WITH SecurityEvidence} + | { MbrAppAgn-Security-CertificateValidityPeriod BY c-MbmrAppAgn-Security-CertificateValidityPeriod WITH SecurityEvidence} + | { MbrAppAgn-Security-AscendingOrderHeaderFields BY c-MbmrAppAgn-Security-AscendingOrderHeaderFields WITH SecurityEvidence} + | { MbrAppAgn-Security-PresenceOfItsAidSspList BY c-MbmrAppAgn-Security-PresenceOfItsAidSspList WITH SecurityEvidence} + | { MbrAppAgn-Security-NoDuplicateItsAid BY c-MbmrAppAgn-Security-NoDuplicateItsAid WITH SecurityEvidence} + | { MbrAppAgn-Security-ItsAidCertificateAlsoParent BY c-MbmrAppAgn-Security-ItsAidCertificateAlsoParent WITH SecurityEvidence} + | { MbrAppAgn-Security-Digest BY c-MbmrAppAgn-Security-Digest WITH SecurityEvidence} + | { MbrAppAgn-Security-SignatureStructure BY c-MbmrAppAgn-Security-SignatureStructure WITH SecurityEvidence} + | { MbrAppAgn-Security-PayLoadPresentNotNull BY c-MbmrAppAgn-Security-PayLoadPresentNotNull WITH SecurityEvidence} + , ... + } + +/* +* @brief This data type defines the globally unique reference IDs for +* domains of suspicious issues not related to a specific application +* @class IdMbmrAppAgn-Security +* @see C-MBR-APPAGNOSTIC +* @note So far only the security domain is identified. +*/ + c-MbmrAppAgn-PreviousReport IdMbmrMsg::=0 -- if present must be the first in the sequence MbrAppAgn-SecurityIssues + c-MbmrAppAgn-Security-GenerationTimeStamp IdMbmrMsg::=1 + c-MbmrAppAgn-Security-GeographicRegion IdMbmrMsg::=2 + c-MbmrAppAgn-Security-CertificateValidityPeriod IdMbmrMsg::=3 + c-MbmrAppAgn-Security-AscendingOrderHeaderFields IdMbmrMsg::=4 + c-MbmrAppAgn-Security-PresenceOfItsAidSspList IdMbmrMsg::=5 + c-MbmrAppAgn-Security-NoDuplicateItsAid IdMbmrMsg::=6 + c-MbmrAppAgn-Security-ItsAidCertificateAlsoParent IdMbmrMsg::=7 + c-MbmrAppAgn-Security-Digest IdMbmrMsg::=8 + c-MbmrAppAgn-Security-SignatureStructure IdMbmrMsg::=9 + c-MbmrAppAgn-Security-PayLoadPresentNotNull IdMbmrMsg::=10 + +/* +* @brief This data type contains the issues with GenerationTimeStamp +* @class MbrAppAgn-Security-GenerationTimeStamp +* @note +*/ +MbrAppAgn-Security-GenerationTimeStamp ::= SEQUENCE { +} + +/* +* @brief This data type contains the issues with GeographicRegion +* @class MbrAppAgn-Security-GeographicRegion +* @note +*/ +MbrAppAgn-Security-GeographicRegion ::= SEQUENCE { +} + +/* +* @brief This data type contains the issues with CertificateValidityPeriod +* @class MbrAppAgn-Security-CertificateValidityPeriod +* @note +*/ +MbrAppAgn-Security-CertificateValidityPeriod ::= SEQUENCE { +} + +/* +* @brief This data type contains the issues with AscendingOrderHeaderFields +* @class MbrAppAgn-Security-AscendingOrderHeaderFields +* @note +*/ +MbrAppAgn-Security-AscendingOrderHeaderFields ::= SEQUENCE { +} + +/* +* @brief This data type contains the issues with PresenceOfItsAidSspList +* @class MbrAppAgn-Security-PresenceOfItsAidSspList +* @note +*/ +MbrAppAgn-Security-PresenceOfItsAidSspList ::= SEQUENCE { +} + +/* +* @brief This data type contains the issues with NoDuplicateItsAid +* @class MbrAppAgn-Security-NoDuplicateItsAid +* @note +*/ +MbrAppAgn-Security-NoDuplicateItsAid ::= SEQUENCE { +} + +/* +* @brief This data type contains the issues with ItsAidCertificateAlsoParent +* @class MbrAppAgn-Security-ItsAidCertificateAlsoParent +* @note +*/ +MbrAppAgn-Security-ItsAidCertificateAlsoParent ::= SEQUENCE { +} + +/* +* @brief This data type contains the issues with Digest +* @class MbrAppAgn-Security-Digest +* @note +*/ +MbrAppAgn-Security-Digest ::= SEQUENCE { +} + +/* +* @brief This data type contains the issues with SignatureStructure +* @class MbrAppAgn-Security-SignatureStructure +* @note +*/ +MbrAppAgn-Security-SignatureStructure ::= SEQUENCE { +} + +/* +* @brief This data type contains the issues with PayLoadPresentNotNull +* @class MbrAppAgn-Security-PayLoadPresentNotNull +* @note +*/ +MbrAppAgn-Security-PayLoadPresentNotNull ::= SEQUENCE { +} + + + +/* +* @brief This data type contains additional evidence +* @class SecurityEvidence +* @note +*/ +SecurityEvidence ::= SEQUENCE{ +-- Just a place-holder to be developed; otherwise NULL. +} + + +END diff --git a/Its-MbmrCam.asn b/Its-MbmrCam.asn new file mode 100755 index 0000000..fecf6f4 --- /dev/null +++ b/Its-MbmrCam.asn @@ -0,0 +1,664 @@ +---- +-- TS 103 759 +-- Draft proposal from SCA project lead by IRT SystemX +-- 2020-12-17 + +/* this comment is to be removed prior to publication +* Its-MbmrCam provides specifications for reports of semantical issues observed in a CAM +* The specifications in Its-MbmrCam are not complete, but just reflect the basic approach and +* initial suggestions - to be revised +*/ + +/* +* @namespace Its-MbmrCam +*/ +Its-MbmrCam { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103759) mbmrCam (5) version1 (1) } +DEFINITIONS AUTOMATIC TAGS ::= BEGIN + +IMPORTS + +MbmrMsg, +C-MBMR-MSG, +IdMbmrMsg, +MbmrPrevious, +ObservedMsg, +OnlyBasicEvidence, +SensorInfos +FROM Its-MbmrMisc { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103759) mbmrMisc (2) version1 (1) } + +ReporterInfos +FROM Its-MbmrReporter { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103759) mbmrReporter (3) version1 (1) } + +Uint8, +ThreeDLocation +FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) base(1) base-types(2) major-version-2(2) minor-version-2(2)} +; + +/* +* @brief This data type contains detected issues (semantic) related to CAM +* @class MbmrCam +* @param version contains the version number of this PDU definition +* @param observations contains information on suspicious information +* @param evidence contains the basic evidence (observed CAM) +* @see Mbmr, C-MBMR-CAM, SetMbmrCam +*/ +MbmrCam ::= MbmrMsg {{SetMbmrCam}} + +/* +* @brief This data type defines the globally unique reference IDs for detected +* issues and related evidences for CAM +* @class IdMbmrCam +* @see C-MBMR-CAM +* @note Every issue relates to a data type that can be present in a CAM. +* Further details depend on the detection level. +* @note One reference identifier indicates a previous report. +*/ + c-MbmrCam-previous IdMbmrMsg::=0 -- indicates that this report complements a previous report +-- General issues + c-MbmrCam-BeaconFrequencyTooHigh IdMbmrMsg::=40 -- Level 2 +-- Position issues + c-MbmrCam-pos-OutOfRange IdMbmrMsg::=41 -- Level 1 + c-MbmrCam-pos-ChangeIncSpeed IdMbmrMsg::=2 -- Level 2 + c-MbmrCam-pos-ChangeIncHeading IdMbmrMsg::=3 -- Level 2 + c-MbmrCam-pos-NotOnRoad IdMbmrMsg::=4 -- Level 3 + c-MbmrCam-pos-OverlapOtherObject IdMbmrMsg::=5 -- Level 3 + c-MbmrCam-pos-InconLocalSensor IdMbmrMsg::=6 -- Level 4 + c-MbmrCam-pos-InconMaxPlausibleRange IdMbmrMsg::=7 -- Level 4 +-- Heading issues + c-MbmrCam-head-ChangeInconSpeed IdMbmrMsg::=9 -- Level 2 + c-MbmrCam-head-ChangeInconYawRate IdMbmrMsg::=10 -- Level 2 + c-MbmrCam-head-InconRoadHeading IdMbmrMsg::=11 -- Level 3 + c-MbmrCam-head-InconRelativeHeading IdMbmrMsg::=12 -- Level 4 +-- Speed issues + c-MbmrCam-speed-ValueTooHigh IdMbmrMsg::=14 -- Level 1 + c-MbmrCam-speed-ChangeInconWithAcceleration IdMbmrMsg::=15 -- Level 2 + c-MbmrCam-speed-InconRoadPlausibleSpeed IdMbmrMsg::=16 -- Level 3 + c-MbmrCam-speed-InconRelativeSpeedDoppler IdMbmrMsg::=17 -- Level 4 +-- Direction issues + c-MbmrCam-direction-InconPCandHC IdMbmrMsg::=18 -- Level 2 + c-MbmrCam-direction-InconSpeed IdMbmrMsg::=19 -- Level 2 TO BE VALIDATED for LEVEL 2 + c-MbmrCam-direction-InconRoadWay IdMbmrMsg::=20 -- Level 3 + c-MbmrCam-direction-InconPerceivedDirection IdMbmrMsg::=21 -- Level 4 +-- Dimension issues + c-MbmrCam-dimension-LengthWidthChange IdMbmrMsg::=22 -- Level 2 + c-MbmrCam-dimension-InconPerceivedDimension IdMbmrMsg::=23 -- Level 4 +-- Longitudinal acceleration issues + c-MbmrCam-longAcc-ValueTooHigh IdMbmrMsg::=25 -- Level 1 + c-MbmrCam-longAcc-ChangeTooHigh IdMbmrMsg::=26 -- Level 2 + c-MbmrCam-longAcc-InconRelativeAcc IdMbmrMsg::=27 -- Level 4 +-- Curvature issues + c-MbmrCam-curv-RadiusTooSmall IdMbmrMsg::=29 -- Level 1 + c-MbmrCam-curv-ChangeInconSpeed IdMbmrMsg::=30 -- Level 2 + c-MbmrCam-curv-ChangeInconHC IdMbmrMsg::=31 -- Level 2 + c-MbmrCam-curv-ChangeInconYawRate IdMbmrMsg::=32 -- Level 2 + c-MbmrCam-curv-InconRoadShape IdMbmrMsg::=33 -- Level 3 + c-MbmrCam-curv-InconRelativeCurvature IdMbmrMsg::=34 -- Level 4 +-- Yaw rate issues + c-MbmrCam-yawRate-ValueTooHigh IdMbmrMsg::=36 -- Level 1 + c-MbmrCam-yawRate-ChangeInconSpeed IdMbmrMsg::=37 -- Level 2 + c-MbmrCam-yawRate-ChangeInconCurvature IdMbmrMsg::=38 -- Level 2 + c-MbmrCam-yawRate-InconPerceivedYawRate IdMbmrMsg::=39 -- Level 4 + + +/* +* @brief This data type defines the IOS for MbmrCam +* @class SetMbmrCam +* @see MbmrCam, IdMbmrCam +* @note One entry in this set for each type +* @note Level-specific evidences are also treated as types +*/ +SetMbmrCam C-MBMR-MSG ::= { + { MbmrPrevious BY c-MbmrCam-previous WITH OnlyBasicEvidence } +-- General issues + | { CamBeaconFrequencyTooHigh BY c-MbmrCam-BeaconFrequencyTooHigh WITH SubsequentCamMessagesEvidence } +-- Position issues + | { CamPositionOutOfRange BY c-MbmrCam-pos-OutOfRange WITH OnlyBasicEvidence} + | { CamPCIncSpeed BY c-MbmrCam-pos-ChangeIncSpeed WITH SubsequentCamMessagesEvidence } + | { CamPCIncHeading BY c-MbmrCam-pos-ChangeIncHeading WITH SubsequentCamMessagesEvidence } + | { CamPositionNotOnRoad BY c-MbmrCam-pos-NotOnRoad WITH RoadMapIssueEvidence } + | { CamPositionOverlapOtherObject BY c-MbmrCam-pos-OverlapOtherObject WITH OtherSourceCamMessagesEvidence } + | { CamPositionInconLocalSensor BY c-MbmrCam-pos-InconLocalSensor WITH Level4CamEvidence } + | { CamPositionInconMaxPlausibleRange BY c-MbmrCam-pos-InconMaxPlausibleRange WITH Level4CamEvidence } +-- Heading issues + | { CamHCInconSpeed BY c-MbmrCam-head-ChangeInconSpeed WITH SubsequentCamMessagesEvidence } + | { CamHCInconYawRate BY c-MbmrCam-head-ChangeInconYawRate WITH SubsequentCamMessagesEvidence } + | { CamHeadingInconRoadHeading BY c-MbmrCam-head-InconRoadHeading WITH RoadMapIssueEvidence } + | { CamHeadingInconRelativeHeading BY c-MbmrCam-head-InconRelativeHeading WITH Level4CamEvidence } +-- Speed issues + | { CamSpeedValueTooHigh BY c-MbmrCam-speed-ValueTooHigh WITH OnlyBasicEvidence } + | { CamSCInconWithAcceleration BY c-MbmrCam-speed-ChangeInconWithAcceleration WITH SubsequentCamMessagesEvidence } + | { CamSpeedInconRoadPlausibleSpeed BY c-MbmrCam-speed-InconRoadPlausibleSpeed WITH RoadMapIssueEvidence } + | { CamSpeedInconRelativeSpeedDoppler BY c-MbmrCam-speed-InconRelativeSpeedDoppler WITH Level4CamEvidence } +-- Direction issues + | { CamDirectionInconPChandHC BY c-MbmrCam-direction-InconPCandHC WITH SubsequentCamMessagesEvidence } + | { CamDirectionInconSpeed BY c-MbmrCam-direction-InconSpeed WITH SubsequentCamMessagesEvidence } + | { CamDirectionInconRoadWay BY c-MbmrCam-direction-InconRoadWay WITH RoadMapIssueEvidence } + | { CamDirectionInconPerceivedDirection BY c-MbmrCam-direction-InconPerceivedDirection WITH Level4CamEvidence } +-- Dimension issues + | { CamDimensionLengthWidthChange BY c-MbmrCam-dimension-LengthWidthChange WITH SubsequentCamMessagesEvidence } + | { CamDimensionInconPerceivedDimension BY c-MbmrCam-dimension-InconPerceivedDimension WITH Level4CamEvidence } +-- Longitudinal acceleration issues + | { CamLongitudinalAccelerationValueTooHigh BY c-MbmrCam-longAcc-ValueTooHigh WITH OnlyBasicEvidence } + | { CamLongitudinalAccelerationChangeTooHigh BY c-MbmrCam-longAcc-ChangeTooHigh WITH SubsequentCamMessagesEvidence } + | { CamLongitudinalAccelerationInconRelativeAcc BY c-MbmrCam-longAcc-InconRelativeAcc WITH Level4CamEvidence } +-- Curvature issues + | { CamCurvatureRadiusTooSmall BY c-MbmrCam-curv-RadiusTooSmall WITH OnlyBasicEvidence } + | { CamCCInconSpeed BY c-MbmrCam-curv-ChangeInconSpeed WITH SubsequentCamMessagesEvidence } + | { CamCCInconHC BY c-MbmrCam-curv-ChangeInconHC WITH SubsequentCamMessagesEvidence } + | { CamCCInconYawRate BY c-MbmrCam-curv-ChangeInconYawRate WITH SubsequentCamMessagesEvidence } + | { CamCurvatureInconRoadShape BY c-MbmrCam-curv-InconRoadShape WITH RoadMapIssueEvidence } + | { CamCurvatureInconRelativeCurvature BY c-MbmrCam-curv-InconRelativeCurvature WITH Level4CamEvidence } +-- Yaw rate issues + | { CamYawRateValueTooHigh BY c-MbmrCam-yawRate-ValueTooHigh WITH OnlyBasicEvidence } + | { CamYCInconSpeed BY c-MbmrCam-yawRate-ChangeInconSpeed WITH SubsequentCamMessagesEvidence } + | { CamYCInconCurvature BY c-MbmrCam-yawRate-ChangeInconCurvature WITH SubsequentCamMessagesEvidence } + | { CamYawRateInconPerceivedYawRate BY c-MbmrCam-yawRate-InconPerceivedYawRate WITH Level4CamEvidence } + , ... + } + +-- Editor's note, to be removed prior to publication +-- All SEQUENCEs with a single component can be converted into a simple assignment. +-- Such a conversion has no impact on the resulting binary code or the speed of execution, +-- thus, the conversion is not necessary. To be decided later. Suggest to keep it as it is. +-- Editor's note, to be removed prior to publication +-- Empty SEQUENCEs either must be completed, or replaced by NullType +-- NullType is applicable if no value is to be provided. + +-- General issues + +/* +* @brief This data type provides information on suspicious beacon frequency +* (too high), i.e. beacon interval too small +* @class CamBeaconFrequencyTooHigh +* @see CamBeaconInterval +* @note Level 2 detection +*/ +CamBeaconFrequencyTooHigh ::= SEQUENCE{ + beaconInterval CamBeaconInterval -- interval = 1 / frequency +} + +/* +* @brief This data type provides the observed value of the beacon interval +* @class CamBeaconInterval +* @see CamBeaconFrequencyTooHigh +* @note Level 2 detection +*/ +CamBeaconInterval ::= INTEGER { + shorterThanOneMs (0), -- frequency larger than 1000 Hz + oneMillisecond (1), -- 1000 Hz + hundredMilliseconds (100) -- 10 Hz + } (0..255) + +-- Position issues + +/* +* @brief This data type provides information on a suspicious position +* from outside the won communications coverage +* @class CamPositionOutOfRange +* @see OwnCommunicationRange +* @note Level 1 detection +* @note observed value is equal to or larger than the threshold +*/ +CamPositionOutOfRange ::= SEQUENCE { + ownLocation ThreeDLocation, + ownCommunicationRange OwnCommunicationRange +} + +OwnCommunicationRange ::= INTEGER{ + notUsed (0), + tenMeter (1) +} (0 .. 255) +/* +* @brief This data type provides information on suspicious change of position +* considering the reported speed +* @class CamPCIncSpeed +* @see +* @note Level 2 detection +*/ +CamPCIncSpeed ::= SEQUENCE{ +} + +/* +* @brief This data type provides information on suspicious change of position +* considering the reported heading +* @class CamPCIncHeading +* @see +* @note Level 2 detection +*/ +CamPCIncHeading ::= SEQUENCE{ +} + +/* +* @brief This data type provides information on suspicious position +* with respect of available roads as given by a digital map +* @class CamPositionNotOnRoad +* @see +* @note Level 3 detection +*/ +CamPositionNotOnRoad ::= SEQUENCE{ +} + +/* +* @brief This data type provides information on suspicious position; +* potential overlap with an other object (e.g. other vehicle) +* @class CamPositionOverlapOtherObject +* @see +* @note Level 3 detection +*/ +CamPositionOverlapOtherObject ::= SEQUENCE{ +} + +/* +* @brief This data type provides information on suspicious position +* based on observation from local sensor +* @class CamPositionInconLocalSensor +* @see +* @note Level 4 detection +*/ +CamPositionInconLocalSensor ::= SEQUENCE{ + sensor SensorInfos -- only info on sensors that are used for this statement + -- to be completed +} + +/* +* @brief This data type provides information on suspicious position +* based on the maximm plausible range (???? which range ????) +* @class CamPositionInconMaxPlausibleRange +* @see +* @note Level 4 detection +*/ +CamPositionInconMaxPlausibleRange ::= SEQUENCE{ + sensor SensorInfos -- only info on sensors that are used for this statement + -- to be completed +} + +-- Heading issues + +/* +* @brief This data type provides information on suspicious change of heading +* considering the reported speed +* @class CamHCIncSpeed +* @see +* @note Level 2 detection +*/ +CamHCInconSpeed ::= SEQUENCE{ +} + +/* +* @brief This data type provides information on suspicious change of heading +* considering the reported yawrate +* @class CamHCIncYawRate +* @see +* @note Level 2 detection +*/ +CamHCInconYawRate ::= SEQUENCE{ +} + +/* +* @brief This data type provides information on suspicious heading +* considering the applicable road heading +* @class CamHeadingInconRoadHeading +* @see +* @note Level 3 detection +*/ +CamHeadingInconRoadHeading ::= SEQUENCE{ +} + +/* +* @brief This data type provides information on suspicious heading +* based on observation from local sensor +* @class CamHeadingInconRelativeHeading +* @see +* @note Level 4 detection +*/ +CamHeadingInconRelativeHeading ::= SEQUENCE{ + sensor SensorInfos -- only info on sensors that are used for this statement + -- to be completed +} + +-- Speed issues + +/* +* @brief This data type provides information on suspicious speed value (too high) +* @class CamSpeedValueTooHigh +* @see CamSpeadValueThreshold +* @note Level 1 detection +* @note observed value is equal to or larger than the threshold +*/ +CamSpeedValueTooHigh ::= SEQUENCE{ + valueThreshold CamSpeadValueThreshold +} + +/* +* @brief This data type provides the decision threshold on suspicious speed value +* @class CamSpeedValueThreshold +* @see CamSpeedValueTooHigh +* @note Still missing: rule on how to calculate this threshold +*/ +CamSpeadValueThreshold ::= INTEGER{ + c-speed-value-notApplicable (0), + c-speed-value-TR103460 (7000) +}(0..16383) -- in cm/s + +/* +* @brief This data type provides information on suspicious change of speed +* considering the reported acceleration +* @class CamSCInconWithAcceleration +* @see +* @note Level 2 detection +*/ +CamSCInconWithAcceleration ::= SEQUENCE{ +} + +/* +* @brief This data type provides information on suspicious speed +* considering the applicable road plausible speed +* @class CamSpeedInconRoadPlausibleSpeed +* @see +* @note Level 3 detection +*/ +CamSpeedInconRoadPlausibleSpeed ::= SEQUENCE{ +} + +/* +* @brief This data type provides information on suspicious speed +* based on observation from local sensor (Doppler) +* @class CamSpeedInconRelativeSpeedDoppler +* @see +* @note Level 4 detection +*/ +CamSpeedInconRelativeSpeedDoppler ::= SEQUENCE{ + sensor SensorInfos -- only info on sensors that are used for this statement + -- to be completed +} + +-- Direction issues + +/* +* @brief This data type provides information on suspicious change of direction +* considering the initial position, and +* the calculated position change and heading change +* @class CamDirectionInconPChandHC +* @see +* @note Level 2 detection +*/ +CamDirectionInconPChandHC ::= SEQUENCE{ +} + +/* +* @brief This data type provides information on suspicious direction +* inconsistent with speed +* @class CamDirectionInconSpeed +* @see +* @note Level 2 detection +* @note Unclear - something seems to be wrong. +*/ +CamDirectionInconSpeed ::= SEQUENCE{ +} + +/* +* @brief This data type provides information on suspicious direction +* considering the applicable road way +* @class CamDirectionInconRoadWay +* @see +* @note Level 3 detection +*/ +CamDirectionInconRoadWay ::= SEQUENCE{ +} + +/* +* @brief This data type provides information on suspicious direction +* based on the perceived direction +* @class CamDirectionInconPerceivedDirection +* @see +* @note Level 4 detection +*/ +CamDirectionInconPerceivedDirection ::= SEQUENCE{ + sensor SensorInfos -- only info on sensors that are used for this statement + -- to be completed +} + +-- Dimension issues + +/* +* @brief This data type provides information on suspicious change of dimension, +* (length and / or width) +* @class CamDimensionLengthWidthChange +* @see +* @note Level 2 detection +*/ +CamDimensionLengthWidthChange ::= SEQUENCE{ +} + +/* +* @brief This data type provides information on suspicious dimension +* based on the perceived dimension (length and / or width) +* @class CamDimensionInconPerceivedDimension +* @see +* @note Level 4 detection +*/ +CamDimensionInconPerceivedDimension ::= SEQUENCE{ + sensor SensorInfos -- only info on sensors that are used for this statement + -- to be completed +} + +-- Longitudinal acceleration issues + +/* +* @brief This data type provides information on suspicious longitudinal +* acceleration value (too high) +* @class CamLongitudinalAccelerationValueTooHigh +* @see LongitudinalAccelerationValueThreshold +* @note Level 1 detection +* @note observed absolute value is equal to or larger than the threshold +*/ +CamLongitudinalAccelerationValueTooHigh ::= SEQUENCE{ + valueThreshold LongitudinalAccelerationValueThreshold +} + +/* +* @brief This data type provides the decision threshold on suspicious +* longitudinal acceleration +* @class LongitudinalAccelerationValueThreshold +* @see CamLongitudinalAccelerationValueTooHigh +* @note Still missing: rule on how to calculate this threshold +*/ +LongitudinalAccelerationValueThreshold ::= INTEGER{ + c-longitudinal-acceleration-value-notApplicable (0), + c-longitudinal-acceleration-TR103460 (120) -- dm/s +}(0..161) + +/* +* @brief This data type provides information on suspicious change of +* longitudinal acceleration (too high) +* @class CamLongitudinalAccelerationChangeTooLarge +* @see +* @note Level 2 detection +*/ +CamLongitudinalAccelerationChangeTooHigh ::= SEQUENCE{ +} + +/* +* @brief This data type provides information on suspicious longitudinal +* acceleration based on relative acceleration +* @class CamLongitudinalAccelerationInconRelativeAcc +* @see +* @note Level 4 detection +*/ +CamLongitudinalAccelerationInconRelativeAcc ::= SEQUENCE{ + sensor SensorInfos -- only info on sensors that are used for this statement + -- to be completed +} + +-- Curvature issues + +/* +* @brief This data type provides information on suspicious curvature value +* (radius too small) +* @class CamCurvatureRadiusTooSmall +* @see CurvatureRadiusValueThreshold +* @note Level 1 detection +* @note observed value is smaller than the threshold +*/ +CamCurvatureRadiusTooSmall ::= SEQUENCE{ + valueThreshold CamCurvatureRadiusValueThreshold +} + +/* +* @brief This data type provides the decision threshold on suspicious curvature value +* (radius) +* @class CamCurvatureRadiusValueThreshold +* @see CamCurvatureRadiusTooSmall +* @note Still missing: rule on how to calculate this threshold +* @note Absolute value of difference between between observed value and limit +*/ +CamCurvatureRadiusValueThreshold ::= INTEGER{ + c-curvature-radius-value-notApplicable (0), + c-curvature-radius-TR103460 (7692), + c-curvature-radius-value-unavailable (30001) +}(0..30001) + + +/* +* @brief This data type provides information on suspicious curvature change +* inconsistent with speed +* @class CamCCInconSpeed +* @see +* @note Level 2 detection +*/ +CamCCInconSpeed ::= SEQUENCE{ +} + +/* +* @brief This data type provides information on suspicious curvature change +* inconsistent with heading change +* @class CamCCInconHC +* @see +* @note Level 2 detection + +*/ +CamCCInconHC ::= SEQUENCE{ +} + +/* +* @brief This data type provides information on suspicious curvature change +* inconsistent with yaw rate +* @class CamCCInconYawRate +* @see +* @note Level 2 detection +*/ +CamCCInconYawRate ::= SEQUENCE{ +} + +/* +* @brief This data type provides information on suspicious curvature +* considering the applicable road shape +* @class CamCurvatureInconRoadShape +* @see +* @note Level 3 detection +*/ +CamCurvatureInconRoadShape ::= SEQUENCE{ +} + +/* +* @brief This data type provides information on suspicious curvature +* based on relative curvature +* @class CamCurvatureInconRelativeCurvature +* @see +* @note Level 4 detection +*/ +CamCurvatureInconRelativeCurvature ::= SEQUENCE{ + sensor SensorInfos -- only info on sensors that are used for this statement + -- to be completed +} + +-- Yaw rate issues + +/* +* @brief This data type provides information on suspicious yawrate value +* (too high) +* @class CamYawRateValueTooHigh +* @see CamYawRateRadiusValueThreshold +* @note Level 1 detection +* @note observed value is equal to or larger than the threshold +*/ +CamYawRateValueTooHigh ::= SEQUENCE{ + valueThreshold CamYawRateRadiusValueThreshold +} + +/* +* @brief This data type provides the decision threshold on suspicious +* yawrate value +* @class YawRateRadiusValueThreshold +* @see CamYawRateValueTooHigh +* @note Still missing: rule on how to calculate this threshold +* @note absolute value of difference between between observed value and limit +*/ +CamYawRateRadiusValueThreshold ::= INTEGER{ + c-yawrate-value-notApplicable (0), + c-yawrate-TR103460 (8594), -- 1,5 radians /s (85,94 degree/s) + c-yawrate-value-unavailable (32767) +}(0..32767) + + +/* +* @brief This data type provides information on suspicious yawrate change +* inconsistent with speed +* @class CamYCInconSpeed +* @see +* @note Level 2 detection +*/ +CamYCInconSpeed ::= SEQUENCE{ +} + +/* +* @brief This data type provides information on suspicious yawrate change +* inconsistent with curvature +* @class CamYCInconCurvature +* @see +* @note Level 2 detection +*/ +CamYCInconCurvature ::= SEQUENCE{ +} + +/* +* @brief This data type provides information on suspicious yawrate +* based on perceived yawrate +* @class CamYawRateInconPerceivedYawRate +* @see +* @note Level 4 detection +*/ +CamYawRateInconPerceivedYawRate ::= SEQUENCE{ + sensor SensorInfos -- only info on sensors that are used for this statement + -- to be completed +} + +-- Evidence definitions (to be moved to Misc??) + +/* +* @brief This data type contains subsequent CAMs as evidences (mix of MbmrEtsiGn or MbmrEtsiGnNoCertificate) +* @class SubsequentCamMessagesEvidence +*/ +SubsequentCamMessagesEvidence ::= SEQUENCE OF ObservedMsg -- for level 2 detection + +/* +* @brief This data type contains CAMs from other peer stations as evidence +* @class OtherSourceCamMessagesEvidence +*/ +OtherSourceCamMessagesEvidence ::= SEQUENCE OF ObservedMsg -- MbmrEtsiGn for level 3 detection + +/* +* @brief This empty data type is applicable to indicate a digital map as evidence +* @class DummyRoadMapIssueEvidence +*/ +RoadMapIssueEvidence ::= NULL + +/* +* @brief This data type is applicable to indicate a level 4 evidence +* @class Level4CamEvidence +*/ +Level4CamEvidence ::= SEQUENCE{ +} -- to be replaced by correct evidence definition, if applicable; otherwise NULL + + +END diff --git a/Its-MbmrDenm.asn b/Its-MbmrDenm.asn new file mode 100755 index 0000000..8291c2a --- /dev/null +++ b/Its-MbmrDenm.asn @@ -0,0 +1,364 @@ +---- +-- TS 103 759 +-- Draft proposal from SCA project lead by IRT SystemX +-- 2020-12-17 + +/* +* Definitions from Its-MbmrDenm are imported in Its-Mbmr +*/ +/* this comment is to be removed prior to publication +* Its-MbmrDenm provides specifications for reports of semantical issues observed in a DENM +* The specifications in Its-MbmrDenmm are not complete, but just reflect the basic approach and +* initial suggestions - to be revised +*/ + +/* +* @namespace Its-MbmrDENM +*/ +Its-MbmrDenm { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103759) mbmrDenm (6) version1 (1) } +DEFINITIONS AUTOMATIC TAGS ::= BEGIN + +IMPORTS + +MbmrMsg, +C-MBMR-MSG, +IdMbmrMsg, +MbmrPrevious, +NullType, +ObservedMsg, +OnlyBasicEvidence +FROM Its-MbmrMisc { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103759) mbmrMisc (2) version1 (1) } + +ReporterInfos +FROM Its-MbmrReporter { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103759) mbmrReporter (3) version1 (1) } + +Uint8 +FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) base(1) base-types(2) major-version-2(2) minor-version-2(2)} +; + +/* +* @brief This data type contains detected issues (semantic) related to DENM +* @class MbmrDenm +* @param version contains the version number of this PDU definition +* @param observations contains information on suspicious observations +* @param evidence contains the basic evidence (observed DENM) +* @see Mbmr, C-MBMR-DENM, SetMbmrDenm +*/ +MbmrDenm ::= MbmrMsg {{SetMbmrDenm}} + +/* +* @brief This value type defines the globally unique reference IDs for detected +* issues and related evidences for DENM +* @class IdMbmrMsg +* @see C-MBMR-MSG +* @note Every issue relates to a data type that can be present in a DENM. +* Further details depend on the detection level. +* @note One reference identifier indicates a previous report. +*/ + c-MbmrDenm-previous IdMbmrMsg::=0 -- indicates that this report complements a previous report +-- IDs for cause codes (situation container) + c-MbmrDenm-traffic IdMbmrMsg::=1 + c-MbmrDenm-accident IdMbmrMsg::=2 + c-MbmrDenm-roadworks IdMbmrMsg::=3 + c-MbmrDenm-adverseWeather-Adhesion IdMbmrMsg::=6 + c-MbmrDenm-hazardousLocation-SurfaceCondition IdMbmrMsg::=9 + c-MbmrDenm-hazardousLocation-ObstacleOnTheRoad IdMbmrMsg::=10 + c-MbmrDenm-hazardousLocation-AnimalOnTheRoad IdMbmrMsg::=11 + c-MbmrDenm-humanPresenceOnTheRoad IdMbmrMsg::=12 + c-MbmrDenm-wrongWayDriving IdMbmrMsg::=14 + c-MbmrDenm-rescueAndRecoveryWorkInProgress IdMbmrMsg::=15 + c-MbmrDenm-adverseWeatherCondition-ExtremeWeatherCondition IdMbmrMsg::=17 + c-MbmrDenm-adverseWeatherCondition-Visibility IdMbmrMsg::=18 + c-MbmrDenm-adverseWeatherCondition-Precipitation IdMbmrMsg::=19 + c-MbmrDenm-slowVehicle IdMbmrMsg::=26 + c-MbmrDenm-dangerousEndOfQueue IdMbmrMsg::=27 + c-MbmrDenm-vehicleBreakdown IdMbmrMsg::=91 + c-MbmrDenm-postCrash IdMbmrMsg::=92 + c-MbmrDenm-humanProblem IdMbmrMsg::=93 + c-MbmrDenm-stationaryVehicle IdMbmrMsg::=94 + c-MbmrDenm-emergencyVehicleApproaching IdMbmrMsg::=95 + c-MbmrDenm-hazardousLocation-DangerousCurve IdMbmrMsg::=96 + c-MbmrDenm-collisionRisk IdMbmrMsg::=97 + c-MbmrDenm-signalViolation IdMbmrMsg::=98 + c-MbmrDenm-dangerousSituation IdMbmrMsg::=99 + + +/* +* @brief This data type defines the IOS for MbmrCam +* @class SetMbmrCam +* @see MbmrCam, IdMbmrCam +* @note One entry in this set for each type +* @note Level-specific evidences are also treated as types +*/ +SetMbmrDenm C-MBMR-MSG ::= { + { DenmPrevious BY c-MbmrDenm-previous WITH OnlyBasicEvidence} | +-- General issues + +-- Other issues + { Denm-traffic BY c-MbmrDenm-traffic WITH OnlyBasicEvidence } | + { Denm-accident BY c-MbmrDenm-accident WITH OnlyBasicEvidence } | + { Denm-roadworks BY c-MbmrDenm-roadworks WITH OnlyBasicEvidence } | + { Denm-adverseWeather-Adhesion BY c-MbmrDenm-adverseWeather-Adhesion WITH OnlyBasicEvidence } | + { Denm-hazardousLocation-SurfaceCondition BY c-MbmrDenm-hazardousLocation-SurfaceCondition WITH OnlyBasicEvidence } | + { Denm-hazardousLocation-ObstacleOnTheRoad BY c-MbmrDenm-hazardousLocation-ObstacleOnTheRoad WITH OnlyBasicEvidence } | + { Denm-hazardousLocation-AnimalOnTheRoad BY c-MbmrDenm-hazardousLocation-AnimalOnTheRoad WITH OnlyBasicEvidence } | + { Denm-humanPresenceOnTheRoad BY c-MbmrDenm-humanPresenceOnTheRoad WITH OnlyBasicEvidence } | + { Denm-wrongWayDriving BY c-MbmrDenm-wrongWayDriving WITH OnlyBasicEvidence } | + { Denm-rescueAndRecoveryWorkInProgress BY c-MbmrDenm-rescueAndRecoveryWorkInProgress WITH OnlyBasicEvidence } | + { Denm-adverseWeatherCondition-ExtremeWeatherCondition BY c-MbmrDenm-adverseWeatherCondition-ExtremeWeatherCondition WITH OnlyBasicEvidence } | + { Denm-adverseWeatherCondition-Visibility BY c-MbmrDenm-adverseWeatherCondition-Visibility WITH OnlyBasicEvidence } | + { Denm-adverseWeatherCondition-Precipitation BY c-MbmrDenm-adverseWeatherCondition-Precipitation WITH OnlyBasicEvidence } | + { Denm-slowVehicle BY c-MbmrDenm-slowVehicle WITH OnlyBasicEvidence } | + { Denm-dangerousEndOfQueue BY c-MbmrDenm-dangerousEndOfQueue WITH OnlyBasicEvidence } | + { Denm-vehicleBreakdown BY c-MbmrDenm-vehicleBreakdown WITH OnlyBasicEvidence } | + { Denm-postCrash BY c-MbmrDenm-postCrash WITH OnlyBasicEvidence } | + { Denm-humanProblem BY c-MbmrDenm-humanProblem WITH OnlyBasicEvidence } | + { Denm-stationaryVehicle BY c-MbmrDenm-stationaryVehicle WITH OnlyBasicEvidence } | + { Denm-emergencyVehicleApproaching BY c-MbmrDenm-emergencyVehicleApproaching WITH OnlyBasicEvidence } | + { Denm-hazardousLocation-DangerousCurve BY c-MbmrDenm-hazardousLocation-DangerousCurve WITH OnlyBasicEvidence } | + { Denm-collisionRisk BY c-MbmrDenm-collisionRisk WITH OnlyBasicEvidence } | + { Denm-signalViolation BY c-MbmrDenm-signalViolation WITH OnlyBasicEvidence } | + { Denm-dangerousSituation BY c-MbmrDenm-dangerousSituation WITH OnlyBasicEvidence } + , ... + } + + +/* +* @brief This data type provides information on a previous report +* @class DenmPrevious +* @see Mbmr-Previous +* @note +*/ +DenmPrevious ::= MbmrPrevious -- if present, this must be the first in the sequence + +-- Editor's note, to be removed prior to publication +-- All SEQUENCEs with a single component can be converted into a simple assignment. +-- Such a conversion has no impact on the resulting binary code or the speed of execution, +-- thus, the conversion is not necessary. To be decided later. Suggest to keep it as it is. +-- Editor's note, to be removed prior to publication +-- Empty SEQUENCEs either must be completed, or replaced by NullType +-- NullType is applicable if no value is to be provided. + +-- General issues + +/* +* @brief This data type provides information on suspicious cause code +* @class Denm-traffic +* @note +*/ +Denm-traffic ::= SEQUENCE { + +} + +/* +* @brief This data type provides information on suspicious cause code +* @class Denm-accident +* @note +*/ +Denm-accident ::= SEQUENCE { + +} + +/* +* @brief This data type provides information on suspicious cause code +* @class Denm-roadworks +* @note +*/ +Denm-roadworks ::= SEQUENCE { + +} + +/* +* @brief This data type provides information on suspicious cause code +* @class Denm-adverseWeather-Adhesion +* @note +*/ +Denm-adverseWeather-Adhesion ::= SEQUENCE { + +} + +/* +* @brief This data type provides information on suspicious cause code +* @class Denm-hazardousLocation-SurfaceCondition +* @note +*/ +Denm-hazardousLocation-SurfaceCondition ::= SEQUENCE { + +} + +/* +* @brief This data type provides information on suspicious cause code +* @class Denm-hazardousLocation-ObstacleOnTheRoad +* @note +*/ +Denm-hazardousLocation-ObstacleOnTheRoad ::= SEQUENCE { + +} + +/* +* @brief This data type provides information on suspicious cause code +* @class Denm-hazardousLocation-AnimalOnTheRoad +* @note +*/ +Denm-hazardousLocation-AnimalOnTheRoad ::= SEQUENCE { + +} + +/* +* @brief This data type provides information on suspicious cause code +* @class Denm-humanPresenceOnTheRoad +* @note +*/ +Denm-humanPresenceOnTheRoad ::= SEQUENCE { + +} + +/* +* @brief This data type provides information on suspicious cause code +* @class Denm-wrongWayDriving +* @note +*/ +Denm-wrongWayDriving ::= SEQUENCE { + +} + +/* +* @brief This data type provides information on suspicious cause code +* @class Denm-rescueAndRecoveryWorkInProgress +* @note +*/ +Denm-rescueAndRecoveryWorkInProgress ::= SEQUENCE { + +} + +/* +* @brief This data type provides information on suspicious cause code +* @class Denm-adverseWeatherCondition-ExtremeWeatherCondition +* @note +*/ +Denm-adverseWeatherCondition-ExtremeWeatherCondition ::= SEQUENCE { + +} + +/* +* @brief This data type provides information on suspicious cause code +* @class Denm-adverseWeatherCondition-Visibility +* @note +*/ +Denm-adverseWeatherCondition-Visibility ::= SEQUENCE { + +} + +/* +* @brief This data type provides information on suspicious cause code +* @class Denm-adverseWeatherCondition-Precipitation +* @note +*/ +Denm-adverseWeatherCondition-Precipitation ::= SEQUENCE { + +} + +/* +* @brief This data type provides information on suspicious cause code +* @class Denm-slowVehicle +* @note +*/ +Denm-slowVehicle ::= SEQUENCE { + +} + +/* +* @brief This data type provides information on suspicious cause code +* @class Denm-dangerousEndOfQueue +* @note +*/ +Denm-dangerousEndOfQueue ::= SEQUENCE { + +} + +/* +* @brief This data type provides information on suspicious cause code +* @class Denm-vehicleBreakdown +* @note +*/ +Denm-vehicleBreakdown ::= SEQUENCE { + +} + +/* +* @brief This data type provides information on suspicious cause code +* @class Denm-postCrash +* @note +*/ +Denm-postCrash ::= SEQUENCE { + +} + +/* +* @brief This data type provides information on suspicious cause code +* @class Denm-humanProblem +* @note +*/ +Denm-humanProblem ::= SEQUENCE { + +} + +/* +* @brief This data type provides information on suspicious cause code +* @class Denm-stationaryVehicle +* @note +*/ +Denm-stationaryVehicle ::= SEQUENCE { + +} + +/* +* @brief This data type provides information on suspicious cause code +* @class Denm-emergencyVehicleApproaching +* @note +*/ +Denm-emergencyVehicleApproaching ::= SEQUENCE { + +} + +/* +* @brief This data type provides information on suspicious cause code +* @class Denm-hazardousLocation-DangerousCurve +* @note +*/ +Denm-hazardousLocation-DangerousCurve ::= SEQUENCE { + +} + +/* +* @brief This data type provides information on suspicious cause code +* @class Denm-collisionRisk +* @note +*/ +Denm-collisionRisk ::= SEQUENCE { + +} + +/* +* @brief This data type provides information on suspicious cause code +* @class Denm-signalViolation +* @note +*/ +Denm-signalViolation ::= SEQUENCE { + +} + +/* +* @brief This data type provides information on suspicious cause code +* @class Denm-dangerousSituation +* @note +*/ +Denm-dangerousSituation ::= SEQUENCE { + +} + + +-- Evidence definitions (to be moved to Misc??) +-- see also additional evidences for CAM + +END diff --git a/Its-MbmrMisc.asn b/Its-MbmrMisc.asn new file mode 100755 index 0000000..7408016 --- /dev/null +++ b/Its-MbmrMisc.asn @@ -0,0 +1,254 @@ +---- +-- TS 103 759 +-- Draft proposal from SCA project lead by IRT SystemX +-- 2020-12-15 + + +/* +* This file contains specifications of general usage in other modules +*/ + +/* +* @namespace Its-Mbmr-Misc +*/ +Its-MbmrMisc { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103759) mbmrMisc (2) version1 (1) } +DEFINITIONS AUTOMATIC TAGS ::= BEGIN + +IMPORTS + +Opaque, +Psid, +Time64, +ThreeDLocation, +Uint8 +FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111) + standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) + base(1) base-types(2) major-version-2(2) minor-version-2(2)} + +; + +/* +* @brief This value type contains the template for a report on any ITS message +* @class MbmrMsg +* @note Up to 256 different versions can be distinguished +*/ +MbmrMsg{C-MBMR-MSG : MsgObservationSet} ::= SEQUENCE { + version Uint8, -- set to c-version-MbmrMsg + observations SEQUENCE OF MbmrObservation {{MsgObservationSet}}, -- Suspicious content + evidence ObservedMsg -- Observed message as basic evidence + } + +/* +* @brief This value type contains the version number of the MbmrMsg PDU +* @class c-version-MbmrMsg +* @see MbmrMsg +* @note Up to 256 different versions can be distinguished +*/ +c-version-MbmrMsg Uint8 ::= 1 + +-- IOC and IOS for MbmrObservation + +/* +* @brief This data type contains a single detected issue related to message together +* with evidence information +* @class MbmrObservation +* @param id contains the globally unique reference identifier of the +* issue and the related evidence +* @param observation contains information on suspicious content in a message identfied by id +* @param addEvidence contains additional evidence related to the given issue +* @see Mbmr, C-MBMR-MSG, SetMbmrMsg +*/ +MbmrObservation {C-MBMR-MSG : SetMbmrMsg} ::= SEQUENCE { + id C-MBMR-MSG.&id ({SetMbmrMsg}), + observation C-MBMR-MSG.&Observation ({SetMbmrMsg}{@.id}), + addEvidence C-MBMR-MSG.&Evidence ({SetMbmrMsg}{@.id}) + } + +/* +* @brief This data type defines the IOC for MbmrMsg issues +* @class C-MBMR-MSG +* @param id contains the globally unique reference identifier of a message issue +* @param Observation contains the open type of the detected issue +* @param Evidence contains the open type of additional evidence for the given issue +* @see MbrmMsg, SetMbrMsg, IdMbrMsg +* @note Up to 256 different reports can be distinguished +*/ +C-MBMR-MSG ::= CLASS { + &id IdMbmrMsg UNIQUE, + &Observation, + &Evidence + } WITH SYNTAX {&Observation BY &id WITH &Evidence} + +/* +* @brief This data type defines the globally unique reference IDs for detected +* issues and related evidences for an ITS message +* @class IdMbmrMsg +* @see C-MBMR-MSG +* @note Every issue relates to a data type that can be present in a Msg. +* Further details depend on the detection level. +* @note One reference identifier indicates a previous report. +*/ + +IdMbmrMsg ::= INTEGER (0..255) + +/* +* @brief This data type contains a bug-fix for usage of NULL in TTCN-3 +* @class NullType +*/ +NullType ::= NULL + + +/* +* @brief This data type contains the observed message +* @class ObservedMsg +* @note Different message types or even no message are supported +*/ +ObservedMsg ::= SEQUENCE { + id C-MBMR-MSG-OBS.&id({SetMbmrMsgObserved}), + msg C-MBMR-MSG-OBS.&MsgObs({SetMbmrMsgObserved}) +} + + +/* +* @brief This data type contains the IOC for the observed message +* @class C-MBMR-MSG-OBS +*/ +C-MBMR-MSG-OBS ::= CLASS { + &id IdMbmrMsgObs UNIQUE, + &MsgObs + } WITH SYNTAX {&MsgObs IDENTIFIED BY &id} + +/* +* @brief This data type contains the IOS for the observed message +* @class SetMbmrMsgObserved +*/ +SetMbmrMsgObserved C-MBMR-MSG-OBS ::= { + { Mbmr-Unused-UnknownMsg IDENTIFIED BY c-MbmrMsg-unused-unknown } + | { MbmrEtsiGnWithCertificate IDENTIFIED BY c-MbmrMsg-etsiGnWithCertificate } + | { MbmrEtsiGnWithDigest IDENTIFIED BY c-MbmrMsg-etsiGnWithDigest } + , ... + } + +/* +* @brief This data type contains the identifier of the type of observed message +* @class IdMbmrMsgObs +*/ +IdMbmrMsgObs ::= INTEGER{ + c-MbmrMsg-unused-unknown (0), + c-MbmrMsg-etsiGnWithCertificate (1), + c-MbmrMsg-etsiGnWithDigest (2) + } (0..255) + +/* +* @brief This data type contains the unknown message +* @class Mbmr-UnknownMsg +*/ +Mbmr-Unused-UnknownMsg ::= NullType + +/* +* @brief This data type contains the ETSI signed message +* @class MbmrEtsiSigned +*/ +MbmrEtsiGnWithCertificate ::= Opaque + +/* +* @brief This data type contains the ETSI unsigned message +* @class MbmrEtsiUnSigned +*/ +MbmrEtsiGnWithDigest ::= Opaque + +/* +* @brief This data type contains information on a previous report +* @class MbmrPrevious +*/ +MbmrPrevious ::= SEQUENCE{ + relatedReportID Time64, --ID = generationTime of the initial report + numberOfReportsOmitted NumberReportsOmitted +} + +/* +* @brief This data type contains the number of omitted reports, i.e. +* The number of received messages following the one used as +* basic reference in the previous report that were not used +* to prepare and send a report +* @class MbmrPrevious +-- I wonder whether this is reasonable, as a station might not receive +-- all messages that were sent by a peer station. +-- Further on, what is the usage of this information. +-- Suggest to delete this. +*/ +NumberReportsOmitted ::= Uint8 + + +/* +* @brief This data type indicates missing evidence +* @class OnlyBasicEvidence +*/ +OnlyBasicEvidence ::= NULL + +/* +* @brief This empty data type is applicable to indicate no evidence needed +* @class NoEvidence +*/ +NoEvidence ::= NULL + +/* +* @brief This data type provides information on local sensors +* and the data provided by sensors to prodice a report. +* @class SensorInfos +*/ +SensorInfos ::= SEQUENCE OF Sensor +-- to be completed +-- IOC for each sensor +-- each sensor's data (maybe IOC) + + +/* +* @brief This data type contains the observed message +* @class ObservedMsg +* @note Different message types or even no message are supported +*/ +Sensor ::= SEQUENCE { + id C-MBMR-SENSOR.&id({SetMbmrSensors}), + msg C-MBMR-SENSOR.&SensorDetails({SetMbmrSensors}) +} + +/* +* @brief This data type contains the IOC for the observed message +* @class C-MBMR-MSG-OBS +*/ +C-MBMR-SENSOR ::= CLASS { + &id IdMbmrSensor UNIQUE, + &SensorDetails + } WITH SYNTAX {&SensorDetails IDENTIFIED BY &id} + +/* +* @brief This data type contains the IOS for the observed message +* @class SetMbmrMsgObserved +*/ +SetMbmrSensors C-MBMR-SENSOR ::= { + { Mbmr-UnknownSensor IDENTIFIED BY c-MbmrSensor-unknown } +-- | { Mbmr-SensorXYZ IDENTIFIED BY c-MbmrSensor-SensorXYZ } + , ... + } + +/* +* @brief This data type contains the identifier of the type of observed message +* @class IdMbmrMsgObs +*/ +IdMbmrSensor ::= INTEGER{ + c-MbmrSensor-unknown (0) -- no sensor +-- c-MbmrSensor-SensorXYZ (1) + } (0..255) + +Mbmr-UnknownSensor ::= NullType + +/* +SensorXYZ ::= SEQUENCE{ + type SensorType, + calibration CalibrationInfo, + observedValue TBD +} +*/ + +END diff --git a/Its-MbmrReporter.asn b/Its-MbmrReporter.asn new file mode 100755 index 0000000..0888a10 --- /dev/null +++ b/Its-MbmrReporter.asn @@ -0,0 +1,127 @@ +---- +-- TS 103 759 +-- Draft proposal from SCA project lead by IRT SystemX +-- 2020-12-03 + +/* +* This file contains specifications to report details of the reporter ITS-SU +* This can be used in other modules where needed (for evidence presentation) +*/ + +/* +* @namespace Its-MbmrReporter +*/ +Its-MbmrReporter { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103759) mbmrReporter (3) version1 (1) } +DEFINITIONS AUTOMATIC TAGS ::= BEGIN + +IMPORTS +-- TimestampIts, +StationType, +ReferencePosition, +Heading, +Speed, +DriveDirection, +VehicleLength, +VehicleWidth, +Curvature, +LongitudinalAcceleration, +YawRate +FROM ITS-Container { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) } + +Uint8, +ThreeDLocation +FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) base(1) base-types(2) major-version-2(2) minor-version-2(2)} + +; + +/* +* @brief This data type contains information about the reporter +* @class ReporterInfos +* @param version contains the version number of this PDU definition +* @param infos contains a sequence of information elements on the reporter ITS-SU +*/ +ReporterInfos ::= SEQUENCE{ + version Uint8, -- c-version-MbrReporter + infos ReporterInfoSequence + } + +ReporterInfoSequence ::= SEQUENCE OF ReporterInfo -- this sequence may be of length zero + + +/* +* @brief This value type contains the version number of the PDU ReporterInfos +* @class c-version-MbmrReporter +* @note Up to 256 different versions can be distinguished +*/ +c-version-MbrReporter Uint8 ::= 1 + +/* +* @brief This data type contains a single information element of the reporter ITS-SU +* @class ReporterInfo +* @param id contains the globally unique reference identifier of the reporter info +* @param reporterInfo contains the reporter info element identified by id +* @see ReporterInfoSequence +*/ +ReporterInfo ::= SEQUENCE { + id C-MBMR-REPORTER.&id({SetMbmrReporter}), + reporterInfo C-MBMR-REPORTER.&InfoReporter({SetMbmrReporter}{@.id}) + } + +/* +* @brief This data type defines the IOC for MbrReporter +* @class C-MBMR-REPORTER +* @param id contains the globally unique reference identifier of a + ´* reporter info element +* @param InfoReporter contains the open type of information on reporter +* @see ReporterInfo, SetMbrReporter, IdMbrReporter +* @note Up to 256 different info elements can be distinguished +*/ + C-MBMR-REPORTER ::= CLASS { + &id IdMbrReporter UNIQUE, + &InfoReporter + } WITH SYNTAX {&InfoReporter IDENTIFIED BY &id} + +/* +* @brief This data type defines the IOS for MbrReporter +* @class SetMbrReporter +* @see ReporterInfo, IdMbrReporter +* @note One entry in this set for every reporter info element +*/ +SetMbmrReporter C-MBMR-REPORTER ::= { + { StationType IDENTIFIED BY c-MbmrReporter-stationType } + | { ReferencePosition IDENTIFIED BY c-MbmrReporter-referencePosition} + | { Heading IDENTIFIED BY c-MbmrReporter-heading} + | { Speed IDENTIFIED BY c-MbmrReporter-speed} + | { DriveDirection IDENTIFIED BY c-MbmrReporter-driveDirection} + | { VehicleLength IDENTIFIED BY c-MbmrReporter-vehicleLength} + | { VehicleWidth IDENTIFIED BY c-MbmrReporter-vehicleWidth} + | { LongitudinalAcceleration IDENTIFIED BY c-MbmrReporter-longitudinalAcceleration} + | { Curvature IDENTIFIED BY c-MbmrReporter-curvature} + | { YawRate IDENTIFIED BY c-MbmrReporter-yawRate} + | { ThreeDLocation IDENTIFIED BY c-MbmrReporter-threeDLocation} + , ... + } + +/* +* @brief This data type defines the globally unique reference IDs for MbrReporter +* @class IdMbrReporter +* @see C-MBR-REPORTER +* @note Up to 256 different reporter info elements can be identified +*/ + IdMbrReporter ::= INTEGER { + c-MbmrReporter-unknown-undisclosed (0), + c-MbmrReporter-stationType (1), + c-MbmrReporter-referencePosition (2), + c-MbmrReporter-heading (3), + c-MbmrReporter-speed (4), + c-MbmrReporter-driveDirection (5), + c-MbmrReporter-vehicleLength (6), + c-MbmrReporter-vehicleWidth (7), + c-MbmrReporter-longitudinalAcceleration (8), + c-MbmrReporter-curvature (9), + c-MbmrReporter-yawRate (10), + c-MbmrReporter-threeDLocation (11) + } (0..255) + + +END diff --git a/cdd b/cdd new file mode 160000 index 0000000..2d2450e --- /dev/null +++ b/cdd @@ -0,0 +1 @@ +Subproject commit 2d2450e79aab4c7032ef615b72ddefaf2e5ba8a9 diff --git a/ieee1609dot2 b/ieee1609dot2 new file mode 160000 index 0000000..0190d9f --- /dev/null +++ b/ieee1609dot2 @@ -0,0 +1 @@ +Subproject commit 0190d9fdb903da0a6cd1e3d529a35c827152a93a -- GitLab From a9b495fa70e91d75e4b6146bbb7f4f54a97f2c6a Mon Sep 17 00:00:00 2001 From: Virendra Kumar Date: Tue, 7 Dec 2021 14:35:38 -0500 Subject: [PATCH 02/66] Qualcomm contribution agreed in the drafting session on 2021-12-07. --- EtsiTs103759.asn | 363 +++ EtsiTs103759AsrAppAgnostic.asn | 16 + EtsiTs103759AsrBsm.asn | 111 + EtsiTs103759AsrCam.asn | 186 ++ EtsiTs103759AsrDenm.asn | 16 + EtsiTs103759CommonObservations.asn | 676 +++++ Its-MbmReport.asn | 147 -- Its-MbmrAppAgnostic.asn | 176 -- Its-MbmrCam.asn | 664 ----- Its-MbmrDenm.asn | 364 --- Its-MbmrMisc.asn | 254 -- Its-MbmrReporter.asn | 127 - documentation/Asn1doc.css | 307 +++ documentation/Asn1doc.js | 102 + documentation/schema.html | 3854 ++++++++++++++++++++++++++++ 15 files changed, 5631 insertions(+), 1732 deletions(-) create mode 100755 EtsiTs103759.asn create mode 100755 EtsiTs103759AsrAppAgnostic.asn create mode 100644 EtsiTs103759AsrBsm.asn create mode 100755 EtsiTs103759AsrCam.asn create mode 100755 EtsiTs103759AsrDenm.asn create mode 100644 EtsiTs103759CommonObservations.asn delete mode 100755 Its-MbmReport.asn delete mode 100755 Its-MbmrAppAgnostic.asn delete mode 100755 Its-MbmrCam.asn delete mode 100755 Its-MbmrDenm.asn delete mode 100755 Its-MbmrMisc.asn delete mode 100755 Its-MbmrReporter.asn create mode 100644 documentation/Asn1doc.css create mode 100644 documentation/Asn1doc.js create mode 100644 documentation/schema.html diff --git a/EtsiTs103759.asn b/EtsiTs103759.asn new file mode 100755 index 0000000..a41873b --- /dev/null +++ b/EtsiTs103759.asn @@ -0,0 +1,363 @@ +EtsiTs103759 {itu-t(0) identified-organization(4) etsi(0) + itsDomain(5) wg5(5) ts(103759) general(1) core(1) major-version-1(1) + minor-version-1 (1)} + +DEFINITIONS AUTOMATIC TAGS ::= BEGIN + +EXPORTS ALL; + +IMPORTS + Certificate +FROM Ieee1609Dot2 {iso(1) identified-organization(3) ieee(111) + standards-association-numbered-series-standards(2) wave-stds(1609) + dot2(2) base (1) schema (1) major-version-2(2) minor-version-3(3)} + + Opaque, + Psid, + ThreeDLocation, + Time64, + Uint8 +FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111) + standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) + base(1) base-types(2) major-version-2(2) minor-version-2(2)} + + AsrAppAgnostic +FROM EtsiTs103759AsrAppAgnostic {itu-t(0) identified-organization(4) etsi(0) + itsDomain(5) wg5(5) ts(103759) aid-specific(2) appAgnostic(270549119) + major-version-1(1) minor-version-1(1)} + + AsrBsm +FROM EtsiTs103759AsrBsm {itu-t(0) identified-organization(4) etsi(0) + itsDomain(5) wg5(5) ts(103759) aid-specific(2) bsm(32) + major-version-1(1) minor-version-1(1)} + + AsrCam +FROM EtsiTs103759AsrCam {itu-t(0) identified-organization(4) etsi(0) + itsDomain(5) wg5(5) ts(103759) aid-specific(2) cam(36) + major-version-1(1) minor-version-1(1)} + + AsrDenm +FROM EtsiTs103759AsrDenm {itu-t(0) identified-organization(4) etsi(0) + itsDomain(5) wg5(5) ts(103759) aid-specific(2) denm(37) + major-version-1(1) minor-version-1(1)} +; + +/** + * @class Mbr + * + * @brief This data type is the general PDU for a misbehaviour report from an + * ITS-S to the MA responsible for reports of that type. + * + * @param version contains the version number of this PDU definition. For this + * version of this data type it shall be equal to 2. + * + * @param generationTime contains information on when this PDU was generated. + * + * @param observationLocation is the location at which the last observation of + * a V2X PDU was made before the decision was taken to generate a report. + * + * @param report contains the AID-specific misbehaviour report. + */ + Mbr ::= SEQUENCE { + version Uint8, + generationTime Time64, + observationLocation ThreeDLocation, + report AidSpecificReport + } + +/** + * @class AidSpecificReport + * + * @brief This data type is the whole report on issues detected for a specific + * ITS-AID. This ITS-AID may identify an individual application, or may identify + * cross-application or non-application-specific misbehaviour cases. + * + * @param aid contains the respective ITS-AID. + * + * @param content contains the report contents, e.g., AsrCam. This will be a + * TemplateAsr instantiated with AID-specific Information Object Sets. + */ + AidSpecificReport ::= SEQUENCE { + aid C-ASR.&aid ({SetAsr}), + content C-ASR.&Content ({SetAsr}{@.aid}) + } + +/** + * @class C-ASR + * + * @brief This data type defines the IOC for AidSpecificReport. + * + * @param aid contains the globally unique reference identifier of an + * AID-specific misbehaviour report. + * + * @param Content contains the open type of the PDU identified by aid. This + * will be a TemplateAsr instantiated with AID-specific Information Object + * Sets. + */ + C-ASR ::= CLASS { + &aid Psid UNIQUE, + &Content + } WITH SYNTAX {&Content IDENTIFIED BY &aid} + +/** + * @class SetAsr + * + * @brief This data type defines the IOS for AidSpecificReport. See the ASN.1 + * modules where each set is defined for a description of that set. + * + */ + SetAsr C-ASR ::= { + {AsrAppAgnostic IDENTIFIED BY c-AsrAppAgnostic} | + {AsrBsm IDENTIFIED BY c-AsrBsm} | + {AsrCam IDENTIFIED BY c-AsrCam} | + {AsrDenm IDENTIFIED BY c-AsrDenm}, + ... + } + +/** + * @class c-AsrAppAgnostic + * + * @brief This data type contains the ITS-AID of the unknown service. + * + * @note This value is used for suspicious observations that are not + * or cannot be linked to a specific application. + */ + c-AsrAppAgnostic Psid ::= 270549119 + +/** + * @class c-AsrBsm + * @brief This data type contains the ITS-AID identifying services that use + * the Basic Safety Message as defined in SAE J2945/1, J2945/2, J3161/1. + */ + c-AsrBsm Psid ::= 32 + +/** + * @class c-AsrCam + * + * @brief This data type contains the ITS-AID of the CA service. + */ + c-AsrCam Psid ::= 36 + +/** + * @class c-AsrDenm + * + * @brief This data type contains the ITS-AID of the DEN service. + */ + c-AsrDenm Psid ::= 37 + +/** + * @class TemplateAsr + * @brief This data type contains the template for a report on any ITS PDU. + * + * @param observations identifies which detectors were triggered and why. It + * can include cross-references to the PDUs and evidence fields. The + * observations are drawn from a supplied application-specific observation + * Information Object Set. + * + * @param v2xPduEvidence contains PDUs that triggered the detectors reported in + * the observations field, plus other PDUs sent for the same application (AID) + * by the same sender). + * + * @param nonV2xPduEvidence is any information that was used by the + * detectors other than the V2X PDUs. If the report does not contain any + * observations that use other evidence (for example, if the report is simply + * that a speed value is implausibly high for any land vehicle, or that two + * V2X PDUs appear to show two different senders in the same physical + * space) then this field can be length 0. The evidence is drawn from a + * supplied application-specific evidence Information Object Set. + */ + TemplateAsr {C-ASR-OBS-BY-TGT: ObservationSet, C-ASR-EV: + NonV2xPduEvidenceSet} ::= SEQUENCE { + observations SEQUENCE (SIZE(1..MAX)) OF ObservationsByTarget + {{ObservationSet}}, + v2xPduEvidence SEQUENCE (SIZE(1..MAX)) OF V2xPduStream, + nonV2xPduEvidence SEQUENCE (SIZE(0..MAX)) OF NonV2xPduEvidenceItem + {{NonV2xPduEvidenceSet}} + } + +/** + * @class ObservationsByTarget + * @brief This data type contains all of the observations related to a + * particular "target" property, e.g., speed or security. + * + * @param tgtId identifies the "target" of the observation, e.g., speed. This + * identifier is drawn from an application-specific Information Object Set of + * observations by target. + * + * @param observations contains all the observations related to that target. + * The observations are drawn from the provided Information Object Set. + */ + ObservationsByTarget {C-ASR-OBS-BY-TGT : SetAsrObsByTgt} ::= SEQUENCE { + tgtId C-ASR-OBS-BY-TGT.&id ({SetAsrObsByTgt}), + observations SEQUENCE OF C-ASR-OBS-BY-TGT.&Val ({SetAsrObsByTgt}{@.tgtId}) + } + +/** + * @class C-ASR-OBS-BY-TGT + * + * @brief This is the Information Object Class used to define observations- + * -by-target. + */ + C-ASR-OBS-BY-TGT ::= C-2ENT + +/** + * @class MbSingleObservation + * + * @brief This data type contains a single misbehaviour observation. + * + * @param obsId identifies the observation within the set of observations + * for that target, e.g., target = speed, observation = "speed higher than + * plausible given the physical map". This identifier is drawn from an + * application-and-target-specific Information Object Set of single + * observations. + * + * @param obs contains any parameters relevant to the observation. The + * observations are drawn from the provided Information Object Set. + */ + MbSingleObservation {C-ASR-SINGLE-OBS : SetMbSingleObs} ::= SEQUENCE { + obsId C-ASR-SINGLE-OBS.&id ({SetMbSingleObs}), + obs C-ASR-SINGLE-OBS.&Val ({SetMbSingleObs}{@.obsId}) + } + +/** + * @class C-ASR-SINGLE-OBS + * + * @brief This is the Information Object Class used to define single + * observations. + */ + C-ASR-SINGLE-OBS ::= C-2ENT + +/** + * @class V2xPduStream + * + * @brief This data type contains PDU stream from a single sender. + * + * @param id identifies the type of the PDU, meaning in this case + * what protocol headers are included from the stack. + * + * @param v2xPdus is the PDU stream, i.e., a series of PDUs for the same AID + * sent by the same sender (where "sent by the same sender" means "signed by + * the same certificate"). The PDUs are ordered in chronological order of + * reception by the reporter. All PDUs in this field are of the same type, + * i.e., correspond to the same IdObsPdu. This field will always contain a + * "subject PDU", i.e., a PDU that is the subject of the observations. + * Additional PDUs may be included depending on which observations appear in + * the observations field. A specification of an observation is expected to + * include a specification of which PDUs are to be included in this field. + * + * @param certificate contains the certificate that signed the PDUs if it is + * not explicitly included in one of the PDUs. (There is no need to include + * the entire certificate chain from the ITS station up to the Root CA, just + * the ITS station certificate is enough, as the MA is expected to have the + * rest of the certificates in the chain.) Note that if the sender certificate + * changes, PDUs signed by the new certificate and included in this report + * will be in a separate V2xPduStream instance within the v2xPduEvidence + * field of the TemplateAsr. + * + * @param subjectPduIndex identifies which PDU within the v2xPdus sequence + * is the "subject PDU", i.e., the PDU associated with the observations. + */ + V2xPduStream ::= SEQUENCE { + type C-OBS-PDU.&id ({SetObsPdu}), + v2xPdus SEQUENCE (SIZE(1..255)) OF C-OBS-PDU.&Val + ({SetObsPdu}{@.type}), + certificate Certificate OPTIONAL, + subjectPduIndex Uint8, + ... + } + +/** + * @class C-OBS-PDU + * + * @brief This is the Information Object Class used to define different types + * of observed PDUs. + */ + C-OBS-PDU ::= C-2ENT + +/** + * @class SetObsPdu + * + * @brief This data type contains the IOS for the observed PDU. + */ + SetObsPdu C-OBS-PDU ::= { + {ObsPduEtsiGn BY c-ObsPdu-etsiGn} | + {ObsPduIeee1609Dot2Data BY c-ObsPdu-ieee1609Dot2Data} | + {ObsPduWsmp BY c-ObsPdu-wsmp}, + ... + } + +/** + * @class IdObsPdu + * + * @brief This data type contains the identifier of the type of observed PDU. + */ + IdObsPdu ::= Uint8 + + c-ObsPdu-etsiGn IdObsPdu ::= 1 + c-ObsPdu-ieee1609Dot2Data IdObsPdu ::= 2 + c-ObsPdu-wsmp IdObsPdu ::= 3 + +/** + * @class ObsPduEtsiGn + * + * @brief ObsPduEtsiGn contains an ETSI geonetworking PDU, i.e., the first + * byte of every PDU in the v2xPdus array is the first byte of the + * geonetworking Basic Header. + */ + ObsPduEtsiGn ::= Opaque + +/** + * @class ObsPduIeee1609Dot2Data + * + * @param ObsPduIeee1609Dot2Data contains an Ieee1609Dot2Data, i.e., the first + * byte of every PDU in the v2xPdus array is the version byte of the + * Ieee1609Dot2Data. + */ + ObsPduIeee1609Dot2Data ::= Opaque + +/** + * @class ObsPduWsmp + * + * @param ObsPduWsmp contains a WAVE Short Messaging Protocol PDU, i.e., the + * first byte of every PDU in the v2xPdus array is the first byte of the WSMP + * N-Header. + */ + ObsPduWsmp ::= Opaque + +/** + * @class NonV2xPduEvidenceItem + * + * @brief This data type contains evidence, which may be referenced by one or + * more observations. + * + * @param id identifies the evidence type. + * + * @param evidence contains the evidence. + */ + NonV2xPduEvidenceItem {C-ASR-EV : SetMbEv} ::= SEQUENCE { + id C-ASR-EV.&id ({SetMbEv}), + evidence C-ASR-EV.&Val ({SetMbEv}{@.id}) + } + +/** + * @class C-ASR-EV + * + * @brief This is the Information Object Class used to define evidence. + * + * @note No instances of this class are defined in this version of this document. + */ + C-ASR-EV ::= C-2ENT + +/** + * @class C-2ENT + * + * @brief This structures uses single-byte IDs. If we run out of ID space + * in future, the Val type associated with ID 255 can also be structured + * hierarchically to extend the space. + */ + C-2ENT ::= CLASS { + &id Uint8, + &Val + } WITH SYNTAX {&Val BY &id} + +END diff --git a/EtsiTs103759AsrAppAgnostic.asn b/EtsiTs103759AsrAppAgnostic.asn new file mode 100755 index 0000000..0cfeae8 --- /dev/null +++ b/EtsiTs103759AsrAppAgnostic.asn @@ -0,0 +1,16 @@ +EtsiTs103759AsrAppAgnostic {itu-t(0) identified-organization(4) etsi(0) + itsDomain(5) wg5(5) ts(103759) aid-specific(2) appAgnostic(270549119) + major-version-1(1) minor-version-1(1)} + +DEFINITIONS AUTOMATIC TAGS ::= BEGIN + +EXPORTS ALL; + +/** + * @class AsrAppAgnostic + * + * @brief This data type is defined as NULL for this version of the standard. + */ + AsrAppAgnostic ::= NULL + +END \ No newline at end of file diff --git a/EtsiTs103759AsrBsm.asn b/EtsiTs103759AsrBsm.asn new file mode 100644 index 0000000..0f5199e --- /dev/null +++ b/EtsiTs103759AsrBsm.asn @@ -0,0 +1,111 @@ +EtsiTs103759AsrBsm {itu-t(0) identified-organization(4) etsi(0) + itsDomain(5) wg5(5) ts(103759) aid-specific(2) bsm(32) + major-version-1(1) minor-version-1(1)} + +DEFINITIONS AUTOMATIC TAGS ::= BEGIN + +EXPORTS ALL; + +IMPORTS + C-ASR-EV, + C-ASR-OBS-BY-TGT, + C-ASR-SINGLE-OBS, + MbSingleObservation, + TemplateAsr +FROM EtsiTs103759 {itu-t(0) identified-organization(4) etsi(0) + itsDomain(5) wg5(5) ts(103759) general(1) core(1) major-version-1(1) + minor-version-1 (1)} + + IdMbObs, + obs-LongAcc-Implausible-Brake, + obs-LongAcc-ValueTooLarge-ThresholdNoContext, + obs-Pos-IncWithPrev-TooFar, + obs-Pos-IncWithPrev-TooSmall, + obs-Speed-ValueTooLarge-ThresholdNoContext, + SetMbObsCompleteBeacon, + SetMbObsCompleteStatic, + SetMbObsCompleteSecurity +FROM EtsiTs103759MbrCommonObservations {itu-t(0) identified-organization(4) + etsi(0) itsDomain(5) wg5(5) ts(103759) general(1) common-observations(2) + major-version-1(1) minor-version-1(1)} + + ThreeDLocation, + Uint8 +FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111) + standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) + base(1) base-types(2) major-version-2(2) minor-version-2(2)} +; + +/* Identify target classes for BSM */ + IdBsmTgt ::= Uint8 + + c-BsmTgt-BeaconCommon IdBsmTgt ::= 0 + c-BsmTgt-StaticCommon IdBsmTgt ::= 1 + c-BsmTgt-SecurityCommon IdBsmTgt ::= 2 + c-BsmTgt-PositionCommon IdBsmTgt ::= 3 + c-BsmTgt-SpeedCommon IdBsmTgt ::= 4 + c-BsmTgt-LongAccCommon IdBsmTgt ::= 5 + + +/* + * SCMS Manager set, 2021-11 + */ + +/** + * @class AsrBsm + * + * @brief This data type is for reporting BSM issues defined by the SCMS + * Manager. + */ + AsrBsm ::= TemplateAsr {{SetMbObsTgtsBsm}, {SetMbEvBsm}} + +/** + * @class SetMbObsPosition-Bsm + */ + SetMbObsPosition-Bsm C-ASR-SINGLE-OBS ::= { + obs-Pos-IncWithPrev-TooSmall | + obs-Pos-IncWithPrev-TooFar, + ... + } + +/** + * @class SetMbObsSpeed-Bsm + */ + SetMbObsSpeed-Bsm C-ASR-SINGLE-OBS ::= { + obs-Speed-ValueTooLarge-ThresholdNoContext, + ... + } + +/** + * @class SetMbObsLongAcc-Bsm + */ + SetMbObsLongAcc-Bsm C-ASR-SINGLE-OBS ::= { + obs-LongAcc-ValueTooLarge-ThresholdNoContext | + obs-LongAcc-Implausible-Brake, + ... + } + +/** + * @class SetMbObsTgtsBsm + * + * @brief This is a complete set of observations for BSM as defined by the + * SCMS Manager. Application-specific trigger conditions and other relevant + * information are specified below. + */ + SetMbObsTgtsBsm C-ASR-OBS-BY-TGT ::= { + {MbSingleObservation{{SetMbObsPosition-Bsm}} BY c-BsmTgt-PositionCommon} | + {MbSingleObservation{{SetMbObsSpeed-Bsm}} BY c-BsmTgt-SpeedCommon} | + {MbSingleObservation{{SetMbObsLongAcc-Bsm}} BY c-BsmTgt-LongAccCommon}, + ... + } + +/** + * @class SetMbEvBsm + * + * @brief This data type defines the IOS for BSM Evidence + */ + SetMbEvBsm C-ASR-EV ::= { + ... + } + +END \ No newline at end of file diff --git a/EtsiTs103759AsrCam.asn b/EtsiTs103759AsrCam.asn new file mode 100755 index 0000000..7abd1f8 --- /dev/null +++ b/EtsiTs103759AsrCam.asn @@ -0,0 +1,186 @@ +EtsiTs103759AsrCam {itu-t(0) identified-organization(4) etsi(0) + itsDomain(5) wg5(5) ts(103759) aid-specific(2) cam(36) + major-version-1(1) minor-version-1(1)} + +DEFINITIONS AUTOMATIC TAGS ::= BEGIN + +EXPORTS ALL; + +IMPORTS + C-ASR-EV, + C-ASR-OBS-BY-TGT, + C-ASR-SINGLE-OBS, + MbSingleObservation, + TemplateAsr +FROM EtsiTs103759 {itu-t(0) identified-organization(4) etsi(0) + itsDomain(5) wg5(5) ts(103759) general(1) core(1) major-version-1(1) + minor-version-1 (1)} + + IdMbObs, + SetMbObsCompleteBeacon, + SetMbObsCompleteSecurity, + SetMbObsCompleteStatic, + SetMbObsEtsiOnlyLongAcc, + SetMbObsEtsiOnlyPosition, + SetMbObsEtsiOnlySpeed +FROM EtsiTs103759MbrCommonObservations {itu-t(0) identified-organization(4) + etsi(0) itsDomain(5) wg5(5) ts(103759) general(1) common-observations(2) + major-version-1(1) minor-version-1(1)} + + ThreeDLocation, + Uint8 +FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111) + standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) + base(1) base-types(2) major-version-2(2) minor-version-2(2)} +; + +/** + * @class AsrCam + * + * @brief This data type is for reporting CAM issues. + */ + AsrCam ::= TemplateAsr {{SetMbObsTgtsCam}, {SetMbEvCam}} + + +/* Identify target classes for CAM */ + IdCamTgt ::= Uint8 + + c-CamTgt-BeaconCommon IdCamTgt ::= 0 + c-CamTgt-StaticCommon IdCamTgt ::= 1 + c-CamTgt-SecurityCommon IdCamTgt ::= 2 + c-CamTgt-PositionCommon IdCamTgt ::= 3 + c-CamTgt-SpeedCommon IdCamTgt ::= 4 + c-CamTgt-LongAccCommon IdCamTgt ::= 5 + +/** + * @class SetMbObsTgtsCam + * + * @brief This is a complete set of observations for CAM. Application-specific + * trigger conditions and other relevant information are specified below. + * + * @param SetMbObsCompleteBeacon + *
    + *
  • Beacon-IntervalTooSmall: The difference between the generation + * time of two consecutive CAMs is less than 80% of the value specified in EN + * 302 637-2 section 6.1.3. The difference is calculated as the difference + * between the two values of generationDeltaTime. The two CAMs presented + * shall have the difference in the generationTime from the security + * headerInfo be less than 65,535 milliseconds, and the generationTime in the + * second CAM greater than the generationTime in the first. If the + * generationDeltaTime value in the second CAM is less than the + * generationDeltaTime in the first, 65,536 milliseconds shall be added to + * the value in the second for purposes of determining the difference between + * the two generationDeltaTime values.
  • + *
+ * + * @param SetMbObsCompleteStatic + *
    + *
  • Static-Change: Any change in the values of one or more of the + * following fields: performanceClass, specialTransportType, stationType, + * vehicleLength, vehicleRole, vehicleWidth. + *

    Semantics of the BIT STRING: performanceClass(0), + * specialTransportType(1), stationType(2), vehicleLength(3), vehicleRole(4), + * vehicleWidth(5).
  • + *
+ * + * @param SetMbObsCompleteSecurity + *
    + *
  • Security-MessageIdIncWithHeaderInfo: The messageID is inconsistent + * with the security headerInfo, e.g., messageId = cam(2) but psid in the + * security headerInfo is not equal to 36, the PSID value of CAM.
  • + * + *
  • Security-HeaderIncWithSecurityProfile: The security headerInfo is + * inconsistent with the security profile, e.g., generationTime is absent in + * the security headerInfo but is required to be present in the security + * profile.
  • + * + *
  • Security-HeaderPsidIncWithCertificate: The psid in the security + * headerInfo is inconsistent with the appPermissions in the certificate, e.g., + * psid in the security headerInfo is equal to 36, but the appPermissions in the + * certificate does not include the value 36.
  • + * + *
  • Security-MessageIncWithSsp: The message payload is inconsistent + * with the SSP in the certificate.
  • + * + *
  • Security-HeaderTimeOutsideCertificateValidity: The generationTime + * in the security headerInfo is outside the validityPeriod in the certificate. + *
  • + * + *
  • Security-MessageLocationOutsideCertificateValidity: The + * referencePosition in the message is outside the region in the certificate. + *
  • + * + *
  • Security-HeaderLocationOutsideCertificateValidity: The + * generationLocation in the security headerInfo is outside the region in the + * certificate.
  • + *
+ * + * @param SetMbObsEtsiOnlyPosition + *
    + *
  • Position-ChangeTooLarge: The speed calculated from the change in + * referencePosition of two consecutive CAMs meets the trigger conditions of + * Speed-ValueTooLarge-VehicleType.
  • + *
+ * + * @param SetMbObsEtsiOnlySpeed + *
    + *
  • Speed-ValueTooLarge-VehicleType: The trigger conditions depend on + * the stationType as follows:
      + * + *
    • passengerCar(5): The speedValue is greater than 14,000. (Currently, the + * fastest car in the world has a top speed that is less than 500 km/h, i.e., + * 13,889 cm/s.) + *
    • + * + *
    • motorcycle(4), bus(6), lightTruck(7), heavyTruck(8), trailer(9): The + * speedValue is greater than 8,500. (Currently, the top speed on most popular + * cars is less than 300 km/h, i.e., 8,333 cm/s.)
    • + * + *
    • unknown(0), pedestrian(1), cyclist(2), moped(3), specialVehicles(10), + * tram(11) : The speedValue is greater than 3,000. (Currently, non-highway + * speed limits are usually well below 100 km/h, i.e., 2,778 cm/s.)
    • + * + *
    • roadSideUnit(15): The speedValue is greater than 0. (Road side units + * shouldn't be transmitting while being transported.)
    • + *
    + *
  • + * + *
  • Speed-ValueTooLarge-DriveDirectionReverse: The driveDirection is + * backward (1) and the speedValue is greater than 3,000. (Usually, backward + * drives are far less than 50m long, and with maximum possible acceleration of + * 9 m/s^2 (see trigger conditions for LongAcc-ValueTooLarge), max attainable + * speed is sqrt(2*9*50) m/s, i.e., 3,000 cm/s.)
  • + * + *
  • Speed-ChangeTooLarge: The acceleration calculated from the change + * in speedValue of two consecutive CAMs meets the trigger conditions of + * LongAcc-ValueTooLarge.
  • + *
+ * + * @param SetMbObsEtsiOnlyLongAcc + *
    + *
  • LongAcc-ValueTooLarge: The longitudinalAcceleration is greater + * than 90 dm/s^2. (Typical \mu (coefficient of friction between asphalt and + * rubber) is 0.9, so maximum possible acceleration is 0.9*9.8 m/s^2, i.e., + * 88.2 dm/s^2.)
  • + *
+ */ + SetMbObsTgtsCam C-ASR-OBS-BY-TGT ::= { + {MbSingleObservation{{SetMbObsCompleteBeacon}} BY c-CamTgt-BeaconCommon} | + {MbSingleObservation{{SetMbObsCompleteStatic}} BY c-CamTgt-StaticCommon} | + {MbSingleObservation{{SetMbObsCompleteSecurity}} BY c-CamTgt-SecurityCommon} | + {MbSingleObservation{{SetMbObsEtsiOnlyPosition}} BY c-CamTgt-PositionCommon} | + {MbSingleObservation{{SetMbObsEtsiOnlySpeed}} BY c-CamTgt-SpeedCommon} | + {MbSingleObservation{{SetMbObsEtsiOnlyLongAcc}} BY c-CamTgt-LongAccCommon}, + ... + } + +/** + * @class SetMbEvCam + * + * @brief This data type defines the IOS for CAM Evidence. + */ + SetMbEvCam C-ASR-EV ::= { + ... + } + +END \ No newline at end of file diff --git a/EtsiTs103759AsrDenm.asn b/EtsiTs103759AsrDenm.asn new file mode 100755 index 0000000..2128245 --- /dev/null +++ b/EtsiTs103759AsrDenm.asn @@ -0,0 +1,16 @@ +EtsiTs103759AsrDenm {itu-t(0) identified-organization(4) etsi(0) + itsDomain(5) wg5(5) ts(103759) aid-specific(2) denm(37) + major-version-1(1) minor-version-1(1)} + +DEFINITIONS AUTOMATIC TAGS ::= BEGIN + +EXPORTS ALL; + +/** + * @class AsrDenm + * + * @brief This data type is defined as NULL for this version of the standard. + */ + AsrDenm ::= NULL + +END \ No newline at end of file diff --git a/EtsiTs103759CommonObservations.asn b/EtsiTs103759CommonObservations.asn new file mode 100644 index 0000000..dca105c --- /dev/null +++ b/EtsiTs103759CommonObservations.asn @@ -0,0 +1,676 @@ +EtsiTs103759MbrCommonObservations {itu-t(0) identified-organization(4) + etsi(0) itsDomain(5) wg5(5) ts(103759) general(1) common-observations(2) + major-version-1(1) minor-version-1(1)} + +DEFINITIONS AUTOMATIC TAGS ::= BEGIN + +EXPORTS ALL; + +IMPORTS + C-ASR-SINGLE-OBS +FROM EtsiTs103759 {itu-t(0) identified-organization(4) etsi(0) + itsDomain(5) wg5(5) ts(103759) general(1) core(1) major-version-1(1) + minor-version-1 (1)} + + Time64, + Uint8, + Uint16 +FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111) + standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) + base(1) base-types(2) major-version-2(2) minor-version-2(2)} +; + +/** + * @class IdMbObs + * + * @brief Identifier type for observations: synonym for Uint8 + */ + IdMbObs ::= Uint8 + +/* + * Beacon issues + */ + +/** + * @class Beacon-IntervalTooSmall + * + * @brief This data type is provided for an observation of beacon interval + * that is too small. This doesn’t apply to repeated PDUs, but only to two + * distinct PDUs. The trigger conditions are provided in the + * application-specific files. + *
    + *
  • v2xPduEvidence: The v2xPduEvidence field must contain at least + * one entry. The observation applies to the first entry. The subjectPduIndex + * in that V2xPduStream points to the PDU whose interval since the previous + * PDU is being flagged as too small. The v2xPdus field in that entry must + * contain at least the subject PDU and the PDU that immediately preceded it. + * The PDUs may be of any supported type and shall be of type + * c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same + * report requires a different PDU type.
  • + * + *
  • nonV2xPduEvidence: No other evidence is required to be included + * to support this observation.
  • + *
+ */ + Beacon-IntervalTooSmall ::= NULL + +-- IDs + c-ObsBeacon-IntervalTooSmall IdMbObs::= 1 -- Class 2 + +-- Individual Information Objects + obs-Beacon-IntervalTooSmall C-ASR-SINGLE-OBS ::= + { Beacon-IntervalTooSmall BY c-ObsBeacon-IntervalTooSmall } + +-- Information Object Set + SetMbObsCompleteBeacon C-ASR-SINGLE-OBS ::= { + obs-Beacon-IntervalTooSmall, + ... + } + + +/* + * Static field issues + */ + +/** + * @class Static-Change + * + * @brief This data type is provided for an observation of change in static + * fields. The semantics of the BIT STRING and trigger conditions are provided + * in the application-specific files. + *
    + *
  • v2xPduEvidence: The v2xPduEvidence field must contain at least + * one entry. The observation applies to the first entry. The subjectPduIndex + * in that V2xPduStream points to the PDU whose one or more static fields + * since the previous PDU is being flagged as changed. The v2xPdus field in + * that entry must contain at least the subject PDU and the PDU that + * immediately preceded it. The PDUs may be of any supported type and shall be + * of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in + * the same report requires a different PDU type.
  • + * + *
  • nonV2xPduEvidence: No other evidence is required to be included + * to support this observation.
  • + *
+ */ + Static-Change ::= BIT STRING + +-- IDs + c-ObsStatic-Change IdMbObs::= 1 -- Class 2 + +-- Individual Information Objects + obs-Static-Change C-ASR-SINGLE-OBS ::= + { Static-Change BY c-ObsStatic-Change } + +-- Information Object Set + SetMbObsCompleteStatic C-ASR-SINGLE-OBS ::= { + obs-Static-Change , + ... + } + + +/* + * Security issues + */ + +/** + * @class Security-MessageIdIncWithHeaderInfo + * + * @brief This data type is provided for an observation, where the messageID + * is inconsistent with the psid in the security headerInfo. The trigger + * conditions are provided in the application-specific files. + *
    + *
  • v2xPduEvidence: The v2xPduEvidence field must contain at least + * one entry. The observation applies to the first entry. The subjectPduIndex + * in that V2xPduStream points to the PDU for which the messageID is being + * flagged as inconsistent with the psid in the security headerInfo. The + * v2xPdus field in that entry must contain at least the subject PDU. The + * PDU may be of any supported type and shall be of type + * c-MbObsMsg-ieee1609Dot2Data unless another observation included in the + * same report requires a different PDU type.
  • + * + *
  • nonV2xPduEvidence: No other evidence is required to be included + * to support this observation.
  • + *
+ */ + Security-MessageIdIncWithHeaderInfo ::= NULL + +/** + * @class Security-HeaderIncWithSecurityProfile + * + * @brief This data type is provided for an observation, where the security + * headerInfo is inconsistent with the security profile for that psid. The + * trigger conditions are provided in the application-specific files. + *
    + *
  • v2xPduEvidence: The v2xPduEvidence field must contain at least + * one entry. The observation applies to the first entry. The subjectPduIndex + * in that V2xPduStream points to the PDU for which the security headerInfo + * is being flagged as inconsistent with the security profile for that psid. + * The v2xPdus field in that entry must contain at least the subject PDU. The + * PDU may be of any supported type and shall be of type + * c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same + * report requires a different PDU type.
  • + * + *
  • nonV2xPduEvidence: No other evidence is required to be included + * to support this observation.
  • + *
+ */ + Security-HeaderIncWithSecurityProfile ::= NULL + +/** + * @class Security-HeaderPsidIncWithCertificate + * + * @brief This data type is provided for an observation, where the psid in the + * security headerInfo is inconsistent with the psid in the certificate. The + * trigger conditions are provided in the application-specific files. + *
    + *
  • v2xPduEvidence: The v2xPduEvidence field must contain at least + * one entry. The observation applies to the first entry. The subjectPduIndex + * in that V2xPduStream points to the PDU for which the psid in the security + * headerInfo is being flagged as inconsistent with the psid in the + * certificate. The v2xPdus field in that entry must contain at least the + * subject PDU. The PDU may be of any supported type and shall be of type + * c-MbObsMsg-ieee1609Dot2Data unless another observation included in the + * same report requires a different PDU type.
  • + * + *
  • nonV2xPduEvidence: No other evidence is required to be included + * to support this observation.
  • + *
+ */ + Security-HeaderPsidIncWithCertificate ::= NULL + +/** + * @class Security-MessageIncWithSsp + * + * @brief This data type is provided for an observation, where the message is + * is inconsistent with the SSP in the certificate. The trigger conditions are + * provided in the application-specific files. + *
    + *
  • v2xPduEvidence: The v2xPduEvidence field must contain at least + * one entry. The observation applies to the first entry. The subjectPduIndex + * in that V2xPduStream points to the PDU whose content is being flagged as + * inconsisent with the SSP in the certificate. The v2xPdus field in that + * entry must contain at least the subject PDU. The PDU may be of any + * supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless + * another observation included in the same report requires a different PDU + * type.
  • + * + *
  • nonV2xPduEvidence: No other evidence is required to be included + * to support this observation.
  • + *
+ */ + Security-MessageIncWithSsp ::= NULL + +/** + * @class Security-HeaderTimeOutsideCertificateValidity + * + * @brief This data type is provided for an observation, where the + * generationTime in the security headerInfo is outside the validity period of + * the certificate. The trigger conditions are provided in the + * application-specific files. + *
    + *
  • v2xPduEvidence: The v2xPduEvidence field must contain at least + * one entry. The observation applies to the first entry. The subjectPduIndex + * in that V2xPduStream points to the PDU for which the generationTime in the + * security headerInfo is being flagged as outside the validity period in the + * certificate. The v2xPdus field in that entry must contain at least the + * subject PDU. The PDU may be of any supported type and shall be of type + * c-MbObsMsg-ieee1609Dot2Data unless another observation included in the + * same report requires a different PDU type.
  • + * + *
  • nonV2xPduEvidence: No other evidence is required to be included + * to support this observation.
  • + *
+ */ + Security-HeaderTimeOutsideCertificateValidity ::= NULL + +/** + * @class Security-MessageLocationOutsideCertificateValidity + * + * @brief This data type is provided for an observation, where the location + * in the message is outside the validity region in the certificate. The + * trigger conditions are provided in the application-specific files. + *
    + *
  • v2xPduEvidence: The v2xPduEvidence field must contain at least + * one entry. The observation applies to the first entry. The subjectPduIndex + * in that V2xPduStream points to the PDU for which the location in the PDU is + * being flagged as outside the validity region in the certificate. The + * v2xPdus field in that entry must contain at least the subject PDU. The PDU + * may be of any supported type and shall be of type + * c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same + * report requires a different PDU type.
  • + * + *
  • nonV2xPduEvidence: No other evidence is required to be included + * to support this observation.
  • + *
+ */ + Security-MessageLocationOutsideCertificateValidity ::= NULL + +/** + * @class Security-HeaderLocationOutsideCertificateValidity + * + * @brief This data type is provided for an observation, where the + * generationLocation in the security headerInfo is outside the validity region + * in the certificate. The trigger conditions are provided in the + * application-specific files. + *
    + *
  • v2xPduEvidence: The v2xPduEvidence field must contain at least + * one entry. The observation applies to the first entry. The subjectPduIndex + * in that V2xPduStream points to the PDU for which the generationLocation in + * the security headerInfo is being flagged as outside the validity region in + * the certificate. The v2xPdus field in that entry must contain at least the + * subject PDU. The PDU may be of any supported type and shall be of type + * c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same + * report requires a different PDU type.
  • + * + *
  • nonV2xPduEvidence: No other evidence is required to be included + * to support this observation.
  • + *
+ */ + Security-HeaderLocationOutsideCertificateValidity ::= NULL + +-- IDs + c-ObsSecurity-MessageIdIncWithHeaderInfo IdMbObs ::= 1 -- Class 1 + c-ObsSecurity-HeaderIncWithSecurityProfile IdMbObs ::= 2 -- Class 1 + c-ObsSecurity-HeaderPsidIncWithCertificate IdMbObs ::= 3 -- Class 1 + c-ObsSecurity-MessageIncWithSsp IdMbObs ::= 4 -- Class 1 + c-ObsSecurity-HeaderTimeOutsideCertificateValidity IdMbObs ::= 5 -- Class 1 + c-ObsSecurity-MessageLocationOutsideCertificateValidity IdMbObs ::= 6 -- Class 1 + c-ObsSecurity-HeaderLocationOutsideCertificateValidity IdMbObs ::= 7 -- Class 1 + +-- Individual Information Objects + obs-Security-MessageIdIncWithHeaderInfo C-ASR-SINGLE-OBS ::= + { Security-MessageIdIncWithHeaderInfo BY + c-ObsSecurity-MessageIdIncWithHeaderInfo } + + obs-Security-HeaderIncWithSecurityProfile C-ASR-SINGLE-OBS ::= + { Security-HeaderIncWithSecurityProfile BY + c-ObsSecurity-HeaderIncWithSecurityProfile } + + obs-Security-HeaderPsidIncWithCertificate C-ASR-SINGLE-OBS ::= + { Security-HeaderPsidIncWithCertificate BY + c-ObsSecurity-HeaderPsidIncWithCertificate } + + obs-Security-MessageIncWithSsp C-ASR-SINGLE-OBS ::= + { Security-MessageIncWithSsp BY c-ObsSecurity-MessageIncWithSsp } + + obs-Security-HeaderTimeOutsideCertificateValidity C-ASR-SINGLE-OBS ::= + { Security-HeaderTimeOutsideCertificateValidity BY + c-ObsSecurity-HeaderTimeOutsideCertificateValidity } + + obs-Security-MessageLocationOutsideCertificateValidity C-ASR-SINGLE-OBS ::= + { Security-MessageLocationOutsideCertificateValidity BY + c-ObsSecurity-MessageLocationOutsideCertificateValidity } + + obs-Security-HeaderLocationOutsideCertificateValidity C-ASR-SINGLE-OBS ::= + { Security-HeaderLocationOutsideCertificateValidity BY + c-ObsSecurity-HeaderLocationOutsideCertificateValidity } + +-- Information Object Set + SetMbObsCompleteSecurity C-ASR-SINGLE-OBS ::= { + obs-Security-MessageIdIncWithHeaderInfo | + obs-Security-HeaderIncWithSecurityProfile | + obs-Security-HeaderPsidIncWithCertificate | + obs-Security-MessageIncWithSsp | + obs-Security-HeaderTimeOutsideCertificateValidity | + obs-Security-MessageLocationOutsideCertificateValidity | + obs-Security-HeaderLocationOutsideCertificateValidity, + ... + } + + +/* + * Position issues + */ + +/* + * @class Pos-IncWithPrev-TooSmall + * + * @brief This data type is provided for an observation of "implausible + * constant position" misbehaviour. The observation is triggered if in two + * consecutive messages the speed is non-zero and the position change is 0. + *
    + *
  • v2xPduEvidence: The v2xPduEvidence field must contain at least + * one entry. The observation applies to the first entry. The subjectPduIndex + * in that V2xPduStream points to the PDU whose position is being flagged as + * inconsistent with the previous PDU. The v2xPdus field in that entry must + * contain at least the subject PDU and the PDU that immediately preceded it. + * The PDUs may be of any supported type and shall be of type + * c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same + * report requires a different PDU type.
  • + * + *
  • nonV2xPduEvidence: No other evidence is required to be included + * to support this observation.
  • + *
+ */ + Pos-IncWithPrev-TooSmall ::= NULL + +/* + * @class Pos-IncWithPrev-TooFar + * + * @brief This data type is provided for an observation of "implausible + * random position" misbehaviour. The observation is triggered if two + * consecutive messages are inconsistent, i.e. if [(position in the first) + * + (velocity in the first)*(time between)] differs from (position in the + * second) by more than the gpsDrift. + *
    + *
  • v2xPduEvidence: The v2xPduEvidence field must contain at least + * one entry. The observation applies to the first entry. The subjectPduIndex + * in that V2xPduStream points to the PDU whose position is being flagged as + * inconsistent with the previous PDU. The v2xPdus field in that entry must + * contain at least the subject PDU and the PDU that immediately preceded it. + * The PDU may be of any supported type and shall be of type + * c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same + * report requires a different PDU type.
  • + * + *
  • nonV2xPduEvidence: No other evidence is required to be included + * to support this observation.
  • + *
+ * + * @param gpsDrift This is the maximum amount of difference in position + * between two messages, sent 0.1 seconds apart, that the reporter believes + * can be explained by GPS drift. This quantity MAY be 0. The units of this + * quantity are thousandths of a meter. + */ + Pos-IncWithPrev-TooFar ::= SEQUENCE { + gpsDrift Uint16 + } + +/** + * @class Position-ChangeTooLarge + * + * @brief This data type is provided for an observation of change in position + * that is too large. The trigger conditions are provided in the + * application-specific files. + *
    + *
  • v2xPduEvidence: The v2xPduEvidence field must contain at least + * one entry. The observation applies to the first entry. The subjectPduIndex + * in that V2xPduStream points to the PDU whose position is being flagged as + * inconsistent with the previous PDU. The v2xPdus field in that entry must + * contain at least the subject PDU and the PDU that immediately preceded it. + * The PDU may be of any supported type and shall be of type + * c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same + * report requires a different PDU type.
  • + * + *
  • nonV2xPduEvidence: No other evidence is required to be included + * to support this observation.
  • + *
+ */ + Position-ChangeTooLarge ::= NULL + +-- IDs + c-ObsPos-IncWithPrev-TooSmall IdMbObs ::= 2 -- Level 2 + c-ObsPos-IncWithPrev-TooFar IdMbObs ::= 3 -- Level 2 + c-ObsPosition-ChangeTooLarge IdMbObs ::= 4 -- Class 2 + +-- Individual Information Objects + obs-Pos-IncWithPrev-TooSmall C-ASR-SINGLE-OBS ::= + { Pos-IncWithPrev-TooSmall BY c-ObsPos-IncWithPrev-TooSmall } + + obs-Pos-IncWithPrev-TooFar C-ASR-SINGLE-OBS ::= + { Pos-IncWithPrev-TooFar BY c-ObsPos-IncWithPrev-TooFar } + + obs-Position-ChangeTooLarge C-ASR-SINGLE-OBS ::= + { Position-ChangeTooLarge BY c-ObsPosition-ChangeTooLarge } + +-- Information Object Sets +-- SetMbObsCompletePosition C-ASR-SINGLE-OBS ::= { +-- obs-Pos-IncWithPrev-TooSmall | +-- obs-Pos-IncWithPrev-TooFar | +-- obs-Position-ChangeTooLarge, +-- ... +-- } + + SetMbObsEtsiOnlyPosition C-ASR-SINGLE-OBS ::= { + obs-Position-ChangeTooLarge, + ... + } + + +/* + * Speed issues + */ + +/* + * @class Speed-ValueTooLarge-ThresholdNoContext + * + * @brief This data type is provided for an observation of "speed too large + * relative to threshold" misbehaviour. The observation is triggered if the + * speed in a single message is large than a particular threshold. The + * observation includes the threshold but does not indicate how the + * threshold was determined. + *
    + *
  • v2xPduEvidence: The v2xPduEvidence field must contain at least + * one entry. The observation applies to the first entry. The subjectPduIndex + * in that V2xPduStream points to the PDU whose speed is being flagged as too + * large. The v2xPdus field in that entry must contain at least the subject + * PDU. The PDU may be of any supported type and shall be of type + * c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same + * report requires a different PDU type.
  • + * + *
  • nonV2xPduEvidence: No other evidence is required to be included + * to support this observation.
  • + *
+ * + * @param threshold This is the threshold such that if the speed is over that + * threshold, the subject message is categorized as misbehaviour. The threshold + * is encoded in units of meters per second. + * + * @note How the threshold is set is out of scope for this specification. It is + * recommended that implementations default to a threshold of 90 m/s. + */ + Speed-ValueTooLarge-ThresholdNoContext ::= SEQUENCE { + threshold Uint16 + } + +/** + * @class Speed-ValueTooLarge-VehicleType + * + * @brief This data type is provided for an observation of speed too large + * for a given vehicle type. The trigger conditions are provided in the + * application-specific files. + *
    + *
  • v2xPduEvidence: The v2xPduEvidence field must contain at least + * one entry. The observation applies to the first entry. The subjectPduIndex + * in that V2xPduStream points to the PDU whose speed is being flagged as too + * large for the vehicle type. The v2xPdus field in that entry must contain at + * least the subject PDU. The PDU may be of any supported type and shall be of + * type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the + * same report requires a different PDU type.
  • + * + *
  • nonV2xPduEvidence: No other evidence is required to be included + * to support this observation.
  • + *
+ */ + Speed-ValueTooLarge-VehicleType ::= NULL + +/** + * @class Speed-ValueTooLarge-DriveDirectionReverse + * + * @brief This data type is provided for an observation of speed too large + * for the reverse drive direction. The trigger conditions are provided in + * the application-specific files. + *
    + *
  • v2xPduEvidence: The v2xPduEvidence field must contain at least + * one entry. The observation applies to the first entry. The subjectPduIndex + * in that V2xPduStream points to the PDU whose speed is being flagged as too + * large for the reverse drive direction. The v2xPdus field in that entry must + * contain at least the subject PDU. The PDU may be of any supported type and + * shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation + * included in the same report requires a different PDU type.
  • + * + *
  • nonV2xPduEvidence: No other evidence is required to be included + * to support this observation.
  • + *
+ */ + Speed-ValueTooLarge-DriveDirectionReverse ::= NULL + +/** + * @class Speed-ChangeTooLarge + * + * @brief This data type is provided for an observation of change in speed + * that is too large. The trigger conditions are provided in the + * application-specific files. + *
    + *
  • v2xPduEvidence: The v2xPduEvidence field must contain at least + * one entry. The observation applies to the first entry. The subjectPduIndex + * in that V2xPduStream points to the PDU whose speed is being flagged as + * inconsistent with the speed in the previous PDU. The v2xPdus field in that + * entry must contain at least the subject PDU and the PDU that immediately + * preceded it. The PDU may be of any supported type and shall be of type + * c-MbObsMsg-ieee1609Dot2Data unless another observation included in the + * same report requires a different PDU type.
  • + * + *
  • nonV2xPduEvidence: No other evidence is required to be included + * to support this observation.
  • + *
+ */ + Speed-ChangeTooLarge ::= NULL + +-- IDs + c-ObsSpeed-ValueTooLarge-ThresholdNoContext IdMbObs::= 2 -- Class 1 + c-ObsSpeed-ValueTooLarge-VehicleType IdMbObs::= 3 -- Class 1 + c-ObsSpeed-ValueTooLarge-DriveDirectionReverse IdMbObs::= 4 -- Class 1 + c-ObsSpeed-ChangeTooLarge IdMbObs::= 5 -- Class 1 + +-- Individual Information Objects + obs-Speed-ValueTooLarge-VehicleType C-ASR-SINGLE-OBS ::= + { Speed-ValueTooLarge-VehicleType BY c-ObsSpeed-ValueTooLarge-VehicleType } + + obs-Speed-ValueTooLarge-ThresholdNoContext C-ASR-SINGLE-OBS ::= + { Speed-ValueTooLarge-ThresholdNoContext BY + c-ObsSpeed-ValueTooLarge-ThresholdNoContext } + + obs-Speed-ValueTooLarge-DriveDirectionReverse C-ASR-SINGLE-OBS ::= + { Speed-ValueTooLarge-DriveDirectionReverse BY + c-ObsSpeed-ValueTooLarge-DriveDirectionReverse } + + obs-Speed-ChangeTooLarge C-ASR-SINGLE-OBS ::= + { Speed-ChangeTooLarge BY c-ObsSpeed-ChangeTooLarge } + +-- Information Object Sets +-- SetMbObsCompleteSpeed C-ASR-SINGLE-OBS ::= { +-- obs-Speed-ValueTooLarge-ThresholdNoContext | +-- obs-Speed-ValueTooLarge-VehicleType | +-- obs-Speed-ValueTooLarge-DriveDirectionReverse | +-- obs-Speed-ChangeTooLarge, +-- ... +-- } + + SetMbObsEtsiOnlySpeed C-ASR-SINGLE-OBS ::= { + obs-Speed-ValueTooLarge-VehicleType | + obs-Speed-ValueTooLarge-DriveDirectionReverse | + obs-Speed-ChangeTooLarge, + ... + } + + +/* + * Longitudinal acceleration issues + */ + +/* + * @class LongAcc-ValueTooLarge-ThresholdNoContext + * + * @brief This data type is provided for an observation of "(absolute) + * longitudinal acceleration too large relative to threshold" misbehaviour. + * The observation is triggered if the absolute value of the longitudinal + * acceleration in a single PDU is larger than a particular threshold. The + * observation includes the threshold but does not indicate how the threshold + * was determined. + *
    + *
  • v2xPduEvidence: The v2xPduEvidence field must contain at least + * one entry. The observation applies to the first entry. The subjectPduIndex + * in that V2xPduStream points to the PDU whose (absolute) longitudinal + * acceleration is being flagged as too large. The v2xPdus field in that entry + * must contain at least the subject PDU. The PDU may be of any supported type + * and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation + * included in the same report requires a different PDU type.
  • + * + *
  • nonV2xPduEvidence: No other evidence is required to be included + * to support this observation.
  • + *
+ * + * @param threshold This is the threshold such that if the absolute value of + * acceleration is over that threshold, the subject message is categorized as + * misbehaviour. The threshold is encoded in units of 0.01 m/s^2. + * + * @note How the threshold is set is out of scope for this specification. It is + * recommended that implementations default to a threshold of 10 m/s^2. + */ + LongAcc-ValueTooLarge-ThresholdNoContext ::= SEQUENCE { + threshold Uint16 + } + +/* + * @class LongAcc-Implausible-Brake + * + * @brief This data type is provided for an observation of "acceleration + * inconsistent with braking" misbehaviour. The observation is triggered if in + * a single message it is indicated that the brakes are being applied but the + * acceleration is positive. + *
    + *
  • v2xPduEvidence: The v2xPduEvidence field must contain at least + * one entry. The observation applies to the first entry. The subjectPduIndex + * in that V2xPduStream points to the PDU with brakes applied but positive + * acceleration. The v2xPdus field in that entry must contain at least the + * subject PDU. The PDU may be of any supported type and shall be of type + * c-MbObsMsg-ieee1609Dot2Data unless another observation included in the + * same report requires a different PDU type.
  • + * + *
  • nonV2xPduEvidence: No other evidence is required to be included + * to support this observation.
  • + *
+ */ + LongAcc-Implausible-Brake ::= NULL + +/** + * @class LongAcc-ValueTooLarge + * + * @brief This data type is provided for an observation of longitudinal + * acceleration that is too large. The trigger conditions are provided in the + * application-specific files. + *
    + *
  • v2xPduEvidence: The v2xPduEvidence field must contain at least + * one entry. The observation applies to the first entry. The subjectPduIndex + * in that V2xPduStream points to the PDU whose longitudinal acceleration is + * being flagged as too large. The v2xPdus field in that entry must contain at + * least the subject PDU. The PDU may be of any supported type and shall be of + * type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the + * same report requires a different PDU type.
  • + * + *
  • nonV2xPduEvidence: No other evidence is required to be included + * to support this observation.
  • + *
+ */ + LongAcc-ValueTooLarge ::= NULL + +-- IDs + c-ObsLongAcc-ValueTooLarge-ThresholdNoContext IdMbObs::= 2 -- Class 1 + c-ObsLongAcc-Implausible-Brake IdMbObs::= 3 -- Class 2 + c-ObsLongAcc-ValueTooLarge IdMbObs::= 4 -- Class 1 + +-- Individual Information Objects + obs-LongAcc-ValueTooLarge-ThresholdNoContext C-ASR-SINGLE-OBS ::= + { LongAcc-ValueTooLarge-ThresholdNoContext BY + c-ObsLongAcc-ValueTooLarge-ThresholdNoContext } + + obs-LongAcc-Implausible-Brake C-ASR-SINGLE-OBS ::= + { LongAcc-Implausible-Brake BY c-ObsLongAcc-Implausible-Brake } + + obs-LongAcc-ValueTooLarge C-ASR-SINGLE-OBS ::= + { LongAcc-ValueTooLarge BY c-ObsLongAcc-ValueTooLarge } + +-- Information Object Sets +-- SetMbObsCompleteLongAcc C-ASR-SINGLE-OBS ::= { +-- obs-LongAcc-ValueTooLarge-ThresholdNoContext | +-- obs-LongAcc-Implausible-Brake | +-- obs-LongAcc-ValueTooLarge, +-- ... +-- } + + SetMbObsEtsiOnlyLongAcc C-ASR-SINGLE-OBS ::= { + obs-LongAcc-ValueTooLarge, + ... + } + +END \ No newline at end of file diff --git a/Its-MbmReport.asn b/Its-MbmReport.asn deleted file mode 100755 index af175b2..0000000 --- a/Its-MbmReport.asn +++ /dev/null @@ -1,147 +0,0 @@ ----- --- TS 103 759 --- Draft proposal from SCA project lead by IRT SystemX --- 2020-12-15 - -/* -* MisBehaviour and Malfunctioning Report Message MBMreport -* The following ASN.1 modules are part of this set for MBMR: -* mbmr (1) -* mbmrMisc (2) -* mbmrReporter (3) -* mbmrAppAgnostic (4) -* mbmrCam (5) -* mbmrDenm (6) -*/ - -/* -* @namespace Its-MbmReport -*/ -Its-MbmReport { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103759) mbmr (1) version1 (1) } -DEFINITIONS AUTOMATIC TAGS ::= BEGIN - -IMPORTS - -Psid, -ThreeDLocation, -Time64 -FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111) - standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) - base(1) base-types(2) major-version-2(2) minor-version-2(2)} - -Uint8 -FROM Its-MbmrMisc { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103759) mbmrMisc (2) version1 (1) } - -MbmrCam -FROM Its-MbmrCam { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103759) mbmrCam (5) version1 (1) } - -MbmrDenm -FROM Its-MbmrDenm { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103759) mbmrDenm (6) version1 (1) } - -MbmrAppAgnostic -FROM Its-MbmrAppAgnostic { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103759) mbmrAppAgnostic (4) version1 (1) } - -ReporterInfos -FROM Its-MbmrReporter { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103759) mbmrReporter (3) version1 (1) } - -/* -MbrBsm -FROM -tbd- -*/ - -; - -/* -* @brief This value type carries the version of this Misbehavior and Malfuncationing Report from an ITS-SU to the MA -* @class c-version-Mbmr -*/ -c-version-Mbmr Uint8 ::= 1 - -/* -* @brief This data type is the general PDU for a Misbehavior and Malfunctioning Report from an ITS-SU to the MA -* @class Mbmr -* @param version contains the version number of this PDU definition -* @param generationTime contains information on when this PDU was generated -* @param reportId contains information to distinguish different reports -* @param reports contains the detected application-specific issues -* @see C-MBR, SetMbr, MbReports -* @note Details of reportID are not specified in this module -*/ -Mbmr ::= SEQUENCE { - version Uint8, -- set to the value c-version-Mbr - generationTime Time64, -- time of generation of this message = unique message ID - report MbmReport, -- one single report related to one value of ITS-AID / PSID - reporterInfo ReporterInfos -- may be an empty sequence, required at least for level 4 detection - } - -/* -* @brief This data type is the whole report on issues detected for a specific ITS-AID -* @class MbmReport -* @param appId contains the respective ITS-AID -* @param appIssues contains the application-specific issue, e.g. MbrCam -* @see MbmReport, c-MbmrAppAgnostic -* @note There is an ITS-AID value assigned for protocol purposes, indicating a "Pseudo-Application". -* That can be used for issues not related to a specific ITS-AID, e.g. security issues -*/ -MbmReport ::= SEQUENCE{ - appId C-MBMR.&itsAid({SetMbmr}), - appIssues C-MBMR.&AppIssues({SetMbmr}{@.appId}) -} - -/* -* @brief This data type defines the IOC for MbReport -* @class C-MBR -* @param itsAid contains the globally unique reference identifier of an application-specific Mbr PDU -* @param AppIssues contains the open type of the PDU identified by itsAid -* @see Mbr, SetMbr, Psid -*/ - C-MBMR ::= CLASS { - &itsAid Psid UNIQUE, -- equals ITS-AID with syntax: INTEGER(0..MAX) - &AppIssues -- semantical issues for a given ITS-AID (syntax issues cannot be detected in messages with UPER) - } WITH SYNTAX {&AppIssues IDENTIFIED BY &itsAid} - -/* -* @brief This data type defines the IOS for Mbmr -* @class SetMbmr -* @see Mbmr -* @note One entry in this set for every supported application -* @note In an implementation only supported entries must be -* contained in the ASN.1 module -*/ -SetMbmr C-MBMR ::= { - { MbmrCam IDENTIFIED BY c-MbmrCam } - | { MbmrAppAgnostic IDENTIFIED BY c-MbmrAppAgnostic } - | { MbmrDenm IDENTIFIED BY c-MbmrDenm } --- | { MbmrBsm IDENTIFIED BY c-MbmrBsm } - , ... - } - -/* -* @brief This value type contains the ITS-AID of the CA service -* @class c-MbrCam -* @see Psid -*/ -c-MbmrCam Psid ::= 36 - -/* -* @brief This value type contains the ITS-AID of the DEN service -* @class c-MbrDenm -* @see Psid -*/ -c-MbmrDenm Psid ::= 37 - -/* -* @brief This value type contains the ITS-AID of the unknown service -* @class c-MbrAppAgnostic -* @note This value is used for suspicious observations that are not -* or cannot be linked to a specific application -* @see Psid -*/ -c-MbmrAppAgnostic Psid ::= 270549119 - - -/* -c-MbmrBsm Psid ::= 32 -*/ - - END diff --git a/Its-MbmrAppAgnostic.asn b/Its-MbmrAppAgnostic.asn deleted file mode 100755 index c11838c..0000000 --- a/Its-MbmrAppAgnostic.asn +++ /dev/null @@ -1,176 +0,0 @@ ----- --- TS 103 759 --- Draft proposal from SCA project lead by IRT SystemX --- 2020-12-03 - -/* -* Definitions from Its-MbmrAppAgnostic are imported in Its-Mbmr -* Its-MbmrAppAgnostic provides specifications for reports of issues that are not related to a specific application, -* or cannot be linked to a specific application. -* Currently, only security issues are considered. -*/ - -/* -* @namespace Its-MbmrAppAgnostic -*/ -Its-MbmrAppAgnostic { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103759) mbmrAppAgnostic (4) version1 (1) } -DEFINITIONS AUTOMATIC TAGS ::= BEGIN - -IMPORTS - -Uint8 -FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) base(1) base-types(2) major-version-2(2) minor-version-2(2)} - -MbmrMsg, -C-MBMR-MSG, -IdMbmrMsg, -MbmrPrevious, -OnlyBasicEvidence, -ObservedMsg -FROM -Its-MbmrMisc { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103759) mbmrMisc (2) version1 (1) } - -; - -/* @brief This data type contains detected issues that are independent from a specific applications, -* or cannot be mapped to a sepcific application. Issue domains are distinguished -* @class MbmrAppAgnostic -* @param version contains the version number of this PDU definition -* @param domain contains information on an observable domain with suspicious issues -* @see Mbmr, C-MBMR-APPAGNOSTC, SetMbmrAppAgnostic -*/ -MbmrAppAgnostic ::= MbmrMsg {{SetMbmrAppAgn}} - -/* -* @brief This data type defines the IOS for MbrAppAgn-Security -* @class SetMbmrAppAgn-Security -* @see MbrAppAgn-SecurityIssue, IdMbmrAppAgn-Security -* @note -*/ -SetMbmrAppAgn C-MBMR-MSG ::= { - { MbmrPrevious BY c-MbmrAppAgn-PreviousReport WITH OnlyBasicEvidence} -- if present, must be the first in MbrAppAgn-SecurityIssues - | { MbrAppAgn-Security-GenerationTimeStamp BY c-MbmrAppAgn-Security-GenerationTimeStamp WITH SecurityEvidence} - | { MbrAppAgn-Security-GeographicRegion BY c-MbmrAppAgn-Security-GeographicRegion WITH SecurityEvidence} - | { MbrAppAgn-Security-CertificateValidityPeriod BY c-MbmrAppAgn-Security-CertificateValidityPeriod WITH SecurityEvidence} - | { MbrAppAgn-Security-AscendingOrderHeaderFields BY c-MbmrAppAgn-Security-AscendingOrderHeaderFields WITH SecurityEvidence} - | { MbrAppAgn-Security-PresenceOfItsAidSspList BY c-MbmrAppAgn-Security-PresenceOfItsAidSspList WITH SecurityEvidence} - | { MbrAppAgn-Security-NoDuplicateItsAid BY c-MbmrAppAgn-Security-NoDuplicateItsAid WITH SecurityEvidence} - | { MbrAppAgn-Security-ItsAidCertificateAlsoParent BY c-MbmrAppAgn-Security-ItsAidCertificateAlsoParent WITH SecurityEvidence} - | { MbrAppAgn-Security-Digest BY c-MbmrAppAgn-Security-Digest WITH SecurityEvidence} - | { MbrAppAgn-Security-SignatureStructure BY c-MbmrAppAgn-Security-SignatureStructure WITH SecurityEvidence} - | { MbrAppAgn-Security-PayLoadPresentNotNull BY c-MbmrAppAgn-Security-PayLoadPresentNotNull WITH SecurityEvidence} - , ... - } - -/* -* @brief This data type defines the globally unique reference IDs for -* domains of suspicious issues not related to a specific application -* @class IdMbmrAppAgn-Security -* @see C-MBR-APPAGNOSTIC -* @note So far only the security domain is identified. -*/ - c-MbmrAppAgn-PreviousReport IdMbmrMsg::=0 -- if present must be the first in the sequence MbrAppAgn-SecurityIssues - c-MbmrAppAgn-Security-GenerationTimeStamp IdMbmrMsg::=1 - c-MbmrAppAgn-Security-GeographicRegion IdMbmrMsg::=2 - c-MbmrAppAgn-Security-CertificateValidityPeriod IdMbmrMsg::=3 - c-MbmrAppAgn-Security-AscendingOrderHeaderFields IdMbmrMsg::=4 - c-MbmrAppAgn-Security-PresenceOfItsAidSspList IdMbmrMsg::=5 - c-MbmrAppAgn-Security-NoDuplicateItsAid IdMbmrMsg::=6 - c-MbmrAppAgn-Security-ItsAidCertificateAlsoParent IdMbmrMsg::=7 - c-MbmrAppAgn-Security-Digest IdMbmrMsg::=8 - c-MbmrAppAgn-Security-SignatureStructure IdMbmrMsg::=9 - c-MbmrAppAgn-Security-PayLoadPresentNotNull IdMbmrMsg::=10 - -/* -* @brief This data type contains the issues with GenerationTimeStamp -* @class MbrAppAgn-Security-GenerationTimeStamp -* @note -*/ -MbrAppAgn-Security-GenerationTimeStamp ::= SEQUENCE { -} - -/* -* @brief This data type contains the issues with GeographicRegion -* @class MbrAppAgn-Security-GeographicRegion -* @note -*/ -MbrAppAgn-Security-GeographicRegion ::= SEQUENCE { -} - -/* -* @brief This data type contains the issues with CertificateValidityPeriod -* @class MbrAppAgn-Security-CertificateValidityPeriod -* @note -*/ -MbrAppAgn-Security-CertificateValidityPeriod ::= SEQUENCE { -} - -/* -* @brief This data type contains the issues with AscendingOrderHeaderFields -* @class MbrAppAgn-Security-AscendingOrderHeaderFields -* @note -*/ -MbrAppAgn-Security-AscendingOrderHeaderFields ::= SEQUENCE { -} - -/* -* @brief This data type contains the issues with PresenceOfItsAidSspList -* @class MbrAppAgn-Security-PresenceOfItsAidSspList -* @note -*/ -MbrAppAgn-Security-PresenceOfItsAidSspList ::= SEQUENCE { -} - -/* -* @brief This data type contains the issues with NoDuplicateItsAid -* @class MbrAppAgn-Security-NoDuplicateItsAid -* @note -*/ -MbrAppAgn-Security-NoDuplicateItsAid ::= SEQUENCE { -} - -/* -* @brief This data type contains the issues with ItsAidCertificateAlsoParent -* @class MbrAppAgn-Security-ItsAidCertificateAlsoParent -* @note -*/ -MbrAppAgn-Security-ItsAidCertificateAlsoParent ::= SEQUENCE { -} - -/* -* @brief This data type contains the issues with Digest -* @class MbrAppAgn-Security-Digest -* @note -*/ -MbrAppAgn-Security-Digest ::= SEQUENCE { -} - -/* -* @brief This data type contains the issues with SignatureStructure -* @class MbrAppAgn-Security-SignatureStructure -* @note -*/ -MbrAppAgn-Security-SignatureStructure ::= SEQUENCE { -} - -/* -* @brief This data type contains the issues with PayLoadPresentNotNull -* @class MbrAppAgn-Security-PayLoadPresentNotNull -* @note -*/ -MbrAppAgn-Security-PayLoadPresentNotNull ::= SEQUENCE { -} - - - -/* -* @brief This data type contains additional evidence -* @class SecurityEvidence -* @note -*/ -SecurityEvidence ::= SEQUENCE{ --- Just a place-holder to be developed; otherwise NULL. -} - - -END diff --git a/Its-MbmrCam.asn b/Its-MbmrCam.asn deleted file mode 100755 index fecf6f4..0000000 --- a/Its-MbmrCam.asn +++ /dev/null @@ -1,664 +0,0 @@ ----- --- TS 103 759 --- Draft proposal from SCA project lead by IRT SystemX --- 2020-12-17 - -/* this comment is to be removed prior to publication -* Its-MbmrCam provides specifications for reports of semantical issues observed in a CAM -* The specifications in Its-MbmrCam are not complete, but just reflect the basic approach and -* initial suggestions - to be revised -*/ - -/* -* @namespace Its-MbmrCam -*/ -Its-MbmrCam { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103759) mbmrCam (5) version1 (1) } -DEFINITIONS AUTOMATIC TAGS ::= BEGIN - -IMPORTS - -MbmrMsg, -C-MBMR-MSG, -IdMbmrMsg, -MbmrPrevious, -ObservedMsg, -OnlyBasicEvidence, -SensorInfos -FROM Its-MbmrMisc { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103759) mbmrMisc (2) version1 (1) } - -ReporterInfos -FROM Its-MbmrReporter { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103759) mbmrReporter (3) version1 (1) } - -Uint8, -ThreeDLocation -FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) base(1) base-types(2) major-version-2(2) minor-version-2(2)} -; - -/* -* @brief This data type contains detected issues (semantic) related to CAM -* @class MbmrCam -* @param version contains the version number of this PDU definition -* @param observations contains information on suspicious information -* @param evidence contains the basic evidence (observed CAM) -* @see Mbmr, C-MBMR-CAM, SetMbmrCam -*/ -MbmrCam ::= MbmrMsg {{SetMbmrCam}} - -/* -* @brief This data type defines the globally unique reference IDs for detected -* issues and related evidences for CAM -* @class IdMbmrCam -* @see C-MBMR-CAM -* @note Every issue relates to a data type that can be present in a CAM. -* Further details depend on the detection level. -* @note One reference identifier indicates a previous report. -*/ - c-MbmrCam-previous IdMbmrMsg::=0 -- indicates that this report complements a previous report --- General issues - c-MbmrCam-BeaconFrequencyTooHigh IdMbmrMsg::=40 -- Level 2 --- Position issues - c-MbmrCam-pos-OutOfRange IdMbmrMsg::=41 -- Level 1 - c-MbmrCam-pos-ChangeIncSpeed IdMbmrMsg::=2 -- Level 2 - c-MbmrCam-pos-ChangeIncHeading IdMbmrMsg::=3 -- Level 2 - c-MbmrCam-pos-NotOnRoad IdMbmrMsg::=4 -- Level 3 - c-MbmrCam-pos-OverlapOtherObject IdMbmrMsg::=5 -- Level 3 - c-MbmrCam-pos-InconLocalSensor IdMbmrMsg::=6 -- Level 4 - c-MbmrCam-pos-InconMaxPlausibleRange IdMbmrMsg::=7 -- Level 4 --- Heading issues - c-MbmrCam-head-ChangeInconSpeed IdMbmrMsg::=9 -- Level 2 - c-MbmrCam-head-ChangeInconYawRate IdMbmrMsg::=10 -- Level 2 - c-MbmrCam-head-InconRoadHeading IdMbmrMsg::=11 -- Level 3 - c-MbmrCam-head-InconRelativeHeading IdMbmrMsg::=12 -- Level 4 --- Speed issues - c-MbmrCam-speed-ValueTooHigh IdMbmrMsg::=14 -- Level 1 - c-MbmrCam-speed-ChangeInconWithAcceleration IdMbmrMsg::=15 -- Level 2 - c-MbmrCam-speed-InconRoadPlausibleSpeed IdMbmrMsg::=16 -- Level 3 - c-MbmrCam-speed-InconRelativeSpeedDoppler IdMbmrMsg::=17 -- Level 4 --- Direction issues - c-MbmrCam-direction-InconPCandHC IdMbmrMsg::=18 -- Level 2 - c-MbmrCam-direction-InconSpeed IdMbmrMsg::=19 -- Level 2 TO BE VALIDATED for LEVEL 2 - c-MbmrCam-direction-InconRoadWay IdMbmrMsg::=20 -- Level 3 - c-MbmrCam-direction-InconPerceivedDirection IdMbmrMsg::=21 -- Level 4 --- Dimension issues - c-MbmrCam-dimension-LengthWidthChange IdMbmrMsg::=22 -- Level 2 - c-MbmrCam-dimension-InconPerceivedDimension IdMbmrMsg::=23 -- Level 4 --- Longitudinal acceleration issues - c-MbmrCam-longAcc-ValueTooHigh IdMbmrMsg::=25 -- Level 1 - c-MbmrCam-longAcc-ChangeTooHigh IdMbmrMsg::=26 -- Level 2 - c-MbmrCam-longAcc-InconRelativeAcc IdMbmrMsg::=27 -- Level 4 --- Curvature issues - c-MbmrCam-curv-RadiusTooSmall IdMbmrMsg::=29 -- Level 1 - c-MbmrCam-curv-ChangeInconSpeed IdMbmrMsg::=30 -- Level 2 - c-MbmrCam-curv-ChangeInconHC IdMbmrMsg::=31 -- Level 2 - c-MbmrCam-curv-ChangeInconYawRate IdMbmrMsg::=32 -- Level 2 - c-MbmrCam-curv-InconRoadShape IdMbmrMsg::=33 -- Level 3 - c-MbmrCam-curv-InconRelativeCurvature IdMbmrMsg::=34 -- Level 4 --- Yaw rate issues - c-MbmrCam-yawRate-ValueTooHigh IdMbmrMsg::=36 -- Level 1 - c-MbmrCam-yawRate-ChangeInconSpeed IdMbmrMsg::=37 -- Level 2 - c-MbmrCam-yawRate-ChangeInconCurvature IdMbmrMsg::=38 -- Level 2 - c-MbmrCam-yawRate-InconPerceivedYawRate IdMbmrMsg::=39 -- Level 4 - - -/* -* @brief This data type defines the IOS for MbmrCam -* @class SetMbmrCam -* @see MbmrCam, IdMbmrCam -* @note One entry in this set for each type -* @note Level-specific evidences are also treated as types -*/ -SetMbmrCam C-MBMR-MSG ::= { - { MbmrPrevious BY c-MbmrCam-previous WITH OnlyBasicEvidence } --- General issues - | { CamBeaconFrequencyTooHigh BY c-MbmrCam-BeaconFrequencyTooHigh WITH SubsequentCamMessagesEvidence } --- Position issues - | { CamPositionOutOfRange BY c-MbmrCam-pos-OutOfRange WITH OnlyBasicEvidence} - | { CamPCIncSpeed BY c-MbmrCam-pos-ChangeIncSpeed WITH SubsequentCamMessagesEvidence } - | { CamPCIncHeading BY c-MbmrCam-pos-ChangeIncHeading WITH SubsequentCamMessagesEvidence } - | { CamPositionNotOnRoad BY c-MbmrCam-pos-NotOnRoad WITH RoadMapIssueEvidence } - | { CamPositionOverlapOtherObject BY c-MbmrCam-pos-OverlapOtherObject WITH OtherSourceCamMessagesEvidence } - | { CamPositionInconLocalSensor BY c-MbmrCam-pos-InconLocalSensor WITH Level4CamEvidence } - | { CamPositionInconMaxPlausibleRange BY c-MbmrCam-pos-InconMaxPlausibleRange WITH Level4CamEvidence } --- Heading issues - | { CamHCInconSpeed BY c-MbmrCam-head-ChangeInconSpeed WITH SubsequentCamMessagesEvidence } - | { CamHCInconYawRate BY c-MbmrCam-head-ChangeInconYawRate WITH SubsequentCamMessagesEvidence } - | { CamHeadingInconRoadHeading BY c-MbmrCam-head-InconRoadHeading WITH RoadMapIssueEvidence } - | { CamHeadingInconRelativeHeading BY c-MbmrCam-head-InconRelativeHeading WITH Level4CamEvidence } --- Speed issues - | { CamSpeedValueTooHigh BY c-MbmrCam-speed-ValueTooHigh WITH OnlyBasicEvidence } - | { CamSCInconWithAcceleration BY c-MbmrCam-speed-ChangeInconWithAcceleration WITH SubsequentCamMessagesEvidence } - | { CamSpeedInconRoadPlausibleSpeed BY c-MbmrCam-speed-InconRoadPlausibleSpeed WITH RoadMapIssueEvidence } - | { CamSpeedInconRelativeSpeedDoppler BY c-MbmrCam-speed-InconRelativeSpeedDoppler WITH Level4CamEvidence } --- Direction issues - | { CamDirectionInconPChandHC BY c-MbmrCam-direction-InconPCandHC WITH SubsequentCamMessagesEvidence } - | { CamDirectionInconSpeed BY c-MbmrCam-direction-InconSpeed WITH SubsequentCamMessagesEvidence } - | { CamDirectionInconRoadWay BY c-MbmrCam-direction-InconRoadWay WITH RoadMapIssueEvidence } - | { CamDirectionInconPerceivedDirection BY c-MbmrCam-direction-InconPerceivedDirection WITH Level4CamEvidence } --- Dimension issues - | { CamDimensionLengthWidthChange BY c-MbmrCam-dimension-LengthWidthChange WITH SubsequentCamMessagesEvidence } - | { CamDimensionInconPerceivedDimension BY c-MbmrCam-dimension-InconPerceivedDimension WITH Level4CamEvidence } --- Longitudinal acceleration issues - | { CamLongitudinalAccelerationValueTooHigh BY c-MbmrCam-longAcc-ValueTooHigh WITH OnlyBasicEvidence } - | { CamLongitudinalAccelerationChangeTooHigh BY c-MbmrCam-longAcc-ChangeTooHigh WITH SubsequentCamMessagesEvidence } - | { CamLongitudinalAccelerationInconRelativeAcc BY c-MbmrCam-longAcc-InconRelativeAcc WITH Level4CamEvidence } --- Curvature issues - | { CamCurvatureRadiusTooSmall BY c-MbmrCam-curv-RadiusTooSmall WITH OnlyBasicEvidence } - | { CamCCInconSpeed BY c-MbmrCam-curv-ChangeInconSpeed WITH SubsequentCamMessagesEvidence } - | { CamCCInconHC BY c-MbmrCam-curv-ChangeInconHC WITH SubsequentCamMessagesEvidence } - | { CamCCInconYawRate BY c-MbmrCam-curv-ChangeInconYawRate WITH SubsequentCamMessagesEvidence } - | { CamCurvatureInconRoadShape BY c-MbmrCam-curv-InconRoadShape WITH RoadMapIssueEvidence } - | { CamCurvatureInconRelativeCurvature BY c-MbmrCam-curv-InconRelativeCurvature WITH Level4CamEvidence } --- Yaw rate issues - | { CamYawRateValueTooHigh BY c-MbmrCam-yawRate-ValueTooHigh WITH OnlyBasicEvidence } - | { CamYCInconSpeed BY c-MbmrCam-yawRate-ChangeInconSpeed WITH SubsequentCamMessagesEvidence } - | { CamYCInconCurvature BY c-MbmrCam-yawRate-ChangeInconCurvature WITH SubsequentCamMessagesEvidence } - | { CamYawRateInconPerceivedYawRate BY c-MbmrCam-yawRate-InconPerceivedYawRate WITH Level4CamEvidence } - , ... - } - --- Editor's note, to be removed prior to publication --- All SEQUENCEs with a single component can be converted into a simple assignment. --- Such a conversion has no impact on the resulting binary code or the speed of execution, --- thus, the conversion is not necessary. To be decided later. Suggest to keep it as it is. --- Editor's note, to be removed prior to publication --- Empty SEQUENCEs either must be completed, or replaced by NullType --- NullType is applicable if no value is to be provided. - --- General issues - -/* -* @brief This data type provides information on suspicious beacon frequency -* (too high), i.e. beacon interval too small -* @class CamBeaconFrequencyTooHigh -* @see CamBeaconInterval -* @note Level 2 detection -*/ -CamBeaconFrequencyTooHigh ::= SEQUENCE{ - beaconInterval CamBeaconInterval -- interval = 1 / frequency -} - -/* -* @brief This data type provides the observed value of the beacon interval -* @class CamBeaconInterval -* @see CamBeaconFrequencyTooHigh -* @note Level 2 detection -*/ -CamBeaconInterval ::= INTEGER { - shorterThanOneMs (0), -- frequency larger than 1000 Hz - oneMillisecond (1), -- 1000 Hz - hundredMilliseconds (100) -- 10 Hz - } (0..255) - --- Position issues - -/* -* @brief This data type provides information on a suspicious position -* from outside the won communications coverage -* @class CamPositionOutOfRange -* @see OwnCommunicationRange -* @note Level 1 detection -* @note observed value is equal to or larger than the threshold -*/ -CamPositionOutOfRange ::= SEQUENCE { - ownLocation ThreeDLocation, - ownCommunicationRange OwnCommunicationRange -} - -OwnCommunicationRange ::= INTEGER{ - notUsed (0), - tenMeter (1) -} (0 .. 255) -/* -* @brief This data type provides information on suspicious change of position -* considering the reported speed -* @class CamPCIncSpeed -* @see -* @note Level 2 detection -*/ -CamPCIncSpeed ::= SEQUENCE{ -} - -/* -* @brief This data type provides information on suspicious change of position -* considering the reported heading -* @class CamPCIncHeading -* @see -* @note Level 2 detection -*/ -CamPCIncHeading ::= SEQUENCE{ -} - -/* -* @brief This data type provides information on suspicious position -* with respect of available roads as given by a digital map -* @class CamPositionNotOnRoad -* @see -* @note Level 3 detection -*/ -CamPositionNotOnRoad ::= SEQUENCE{ -} - -/* -* @brief This data type provides information on suspicious position; -* potential overlap with an other object (e.g. other vehicle) -* @class CamPositionOverlapOtherObject -* @see -* @note Level 3 detection -*/ -CamPositionOverlapOtherObject ::= SEQUENCE{ -} - -/* -* @brief This data type provides information on suspicious position -* based on observation from local sensor -* @class CamPositionInconLocalSensor -* @see -* @note Level 4 detection -*/ -CamPositionInconLocalSensor ::= SEQUENCE{ - sensor SensorInfos -- only info on sensors that are used for this statement - -- to be completed -} - -/* -* @brief This data type provides information on suspicious position -* based on the maximm plausible range (???? which range ????) -* @class CamPositionInconMaxPlausibleRange -* @see -* @note Level 4 detection -*/ -CamPositionInconMaxPlausibleRange ::= SEQUENCE{ - sensor SensorInfos -- only info on sensors that are used for this statement - -- to be completed -} - --- Heading issues - -/* -* @brief This data type provides information on suspicious change of heading -* considering the reported speed -* @class CamHCIncSpeed -* @see -* @note Level 2 detection -*/ -CamHCInconSpeed ::= SEQUENCE{ -} - -/* -* @brief This data type provides information on suspicious change of heading -* considering the reported yawrate -* @class CamHCIncYawRate -* @see -* @note Level 2 detection -*/ -CamHCInconYawRate ::= SEQUENCE{ -} - -/* -* @brief This data type provides information on suspicious heading -* considering the applicable road heading -* @class CamHeadingInconRoadHeading -* @see -* @note Level 3 detection -*/ -CamHeadingInconRoadHeading ::= SEQUENCE{ -} - -/* -* @brief This data type provides information on suspicious heading -* based on observation from local sensor -* @class CamHeadingInconRelativeHeading -* @see -* @note Level 4 detection -*/ -CamHeadingInconRelativeHeading ::= SEQUENCE{ - sensor SensorInfos -- only info on sensors that are used for this statement - -- to be completed -} - --- Speed issues - -/* -* @brief This data type provides information on suspicious speed value (too high) -* @class CamSpeedValueTooHigh -* @see CamSpeadValueThreshold -* @note Level 1 detection -* @note observed value is equal to or larger than the threshold -*/ -CamSpeedValueTooHigh ::= SEQUENCE{ - valueThreshold CamSpeadValueThreshold -} - -/* -* @brief This data type provides the decision threshold on suspicious speed value -* @class CamSpeedValueThreshold -* @see CamSpeedValueTooHigh -* @note Still missing: rule on how to calculate this threshold -*/ -CamSpeadValueThreshold ::= INTEGER{ - c-speed-value-notApplicable (0), - c-speed-value-TR103460 (7000) -}(0..16383) -- in cm/s - -/* -* @brief This data type provides information on suspicious change of speed -* considering the reported acceleration -* @class CamSCInconWithAcceleration -* @see -* @note Level 2 detection -*/ -CamSCInconWithAcceleration ::= SEQUENCE{ -} - -/* -* @brief This data type provides information on suspicious speed -* considering the applicable road plausible speed -* @class CamSpeedInconRoadPlausibleSpeed -* @see -* @note Level 3 detection -*/ -CamSpeedInconRoadPlausibleSpeed ::= SEQUENCE{ -} - -/* -* @brief This data type provides information on suspicious speed -* based on observation from local sensor (Doppler) -* @class CamSpeedInconRelativeSpeedDoppler -* @see -* @note Level 4 detection -*/ -CamSpeedInconRelativeSpeedDoppler ::= SEQUENCE{ - sensor SensorInfos -- only info on sensors that are used for this statement - -- to be completed -} - --- Direction issues - -/* -* @brief This data type provides information on suspicious change of direction -* considering the initial position, and -* the calculated position change and heading change -* @class CamDirectionInconPChandHC -* @see -* @note Level 2 detection -*/ -CamDirectionInconPChandHC ::= SEQUENCE{ -} - -/* -* @brief This data type provides information on suspicious direction -* inconsistent with speed -* @class CamDirectionInconSpeed -* @see -* @note Level 2 detection -* @note Unclear - something seems to be wrong. -*/ -CamDirectionInconSpeed ::= SEQUENCE{ -} - -/* -* @brief This data type provides information on suspicious direction -* considering the applicable road way -* @class CamDirectionInconRoadWay -* @see -* @note Level 3 detection -*/ -CamDirectionInconRoadWay ::= SEQUENCE{ -} - -/* -* @brief This data type provides information on suspicious direction -* based on the perceived direction -* @class CamDirectionInconPerceivedDirection -* @see -* @note Level 4 detection -*/ -CamDirectionInconPerceivedDirection ::= SEQUENCE{ - sensor SensorInfos -- only info on sensors that are used for this statement - -- to be completed -} - --- Dimension issues - -/* -* @brief This data type provides information on suspicious change of dimension, -* (length and / or width) -* @class CamDimensionLengthWidthChange -* @see -* @note Level 2 detection -*/ -CamDimensionLengthWidthChange ::= SEQUENCE{ -} - -/* -* @brief This data type provides information on suspicious dimension -* based on the perceived dimension (length and / or width) -* @class CamDimensionInconPerceivedDimension -* @see -* @note Level 4 detection -*/ -CamDimensionInconPerceivedDimension ::= SEQUENCE{ - sensor SensorInfos -- only info on sensors that are used for this statement - -- to be completed -} - --- Longitudinal acceleration issues - -/* -* @brief This data type provides information on suspicious longitudinal -* acceleration value (too high) -* @class CamLongitudinalAccelerationValueTooHigh -* @see LongitudinalAccelerationValueThreshold -* @note Level 1 detection -* @note observed absolute value is equal to or larger than the threshold -*/ -CamLongitudinalAccelerationValueTooHigh ::= SEQUENCE{ - valueThreshold LongitudinalAccelerationValueThreshold -} - -/* -* @brief This data type provides the decision threshold on suspicious -* longitudinal acceleration -* @class LongitudinalAccelerationValueThreshold -* @see CamLongitudinalAccelerationValueTooHigh -* @note Still missing: rule on how to calculate this threshold -*/ -LongitudinalAccelerationValueThreshold ::= INTEGER{ - c-longitudinal-acceleration-value-notApplicable (0), - c-longitudinal-acceleration-TR103460 (120) -- dm/s -}(0..161) - -/* -* @brief This data type provides information on suspicious change of -* longitudinal acceleration (too high) -* @class CamLongitudinalAccelerationChangeTooLarge -* @see -* @note Level 2 detection -*/ -CamLongitudinalAccelerationChangeTooHigh ::= SEQUENCE{ -} - -/* -* @brief This data type provides information on suspicious longitudinal -* acceleration based on relative acceleration -* @class CamLongitudinalAccelerationInconRelativeAcc -* @see -* @note Level 4 detection -*/ -CamLongitudinalAccelerationInconRelativeAcc ::= SEQUENCE{ - sensor SensorInfos -- only info on sensors that are used for this statement - -- to be completed -} - --- Curvature issues - -/* -* @brief This data type provides information on suspicious curvature value -* (radius too small) -* @class CamCurvatureRadiusTooSmall -* @see CurvatureRadiusValueThreshold -* @note Level 1 detection -* @note observed value is smaller than the threshold -*/ -CamCurvatureRadiusTooSmall ::= SEQUENCE{ - valueThreshold CamCurvatureRadiusValueThreshold -} - -/* -* @brief This data type provides the decision threshold on suspicious curvature value -* (radius) -* @class CamCurvatureRadiusValueThreshold -* @see CamCurvatureRadiusTooSmall -* @note Still missing: rule on how to calculate this threshold -* @note Absolute value of difference between between observed value and limit -*/ -CamCurvatureRadiusValueThreshold ::= INTEGER{ - c-curvature-radius-value-notApplicable (0), - c-curvature-radius-TR103460 (7692), - c-curvature-radius-value-unavailable (30001) -}(0..30001) - - -/* -* @brief This data type provides information on suspicious curvature change -* inconsistent with speed -* @class CamCCInconSpeed -* @see -* @note Level 2 detection -*/ -CamCCInconSpeed ::= SEQUENCE{ -} - -/* -* @brief This data type provides information on suspicious curvature change -* inconsistent with heading change -* @class CamCCInconHC -* @see -* @note Level 2 detection - -*/ -CamCCInconHC ::= SEQUENCE{ -} - -/* -* @brief This data type provides information on suspicious curvature change -* inconsistent with yaw rate -* @class CamCCInconYawRate -* @see -* @note Level 2 detection -*/ -CamCCInconYawRate ::= SEQUENCE{ -} - -/* -* @brief This data type provides information on suspicious curvature -* considering the applicable road shape -* @class CamCurvatureInconRoadShape -* @see -* @note Level 3 detection -*/ -CamCurvatureInconRoadShape ::= SEQUENCE{ -} - -/* -* @brief This data type provides information on suspicious curvature -* based on relative curvature -* @class CamCurvatureInconRelativeCurvature -* @see -* @note Level 4 detection -*/ -CamCurvatureInconRelativeCurvature ::= SEQUENCE{ - sensor SensorInfos -- only info on sensors that are used for this statement - -- to be completed -} - --- Yaw rate issues - -/* -* @brief This data type provides information on suspicious yawrate value -* (too high) -* @class CamYawRateValueTooHigh -* @see CamYawRateRadiusValueThreshold -* @note Level 1 detection -* @note observed value is equal to or larger than the threshold -*/ -CamYawRateValueTooHigh ::= SEQUENCE{ - valueThreshold CamYawRateRadiusValueThreshold -} - -/* -* @brief This data type provides the decision threshold on suspicious -* yawrate value -* @class YawRateRadiusValueThreshold -* @see CamYawRateValueTooHigh -* @note Still missing: rule on how to calculate this threshold -* @note absolute value of difference between between observed value and limit -*/ -CamYawRateRadiusValueThreshold ::= INTEGER{ - c-yawrate-value-notApplicable (0), - c-yawrate-TR103460 (8594), -- 1,5 radians /s (85,94 degree/s) - c-yawrate-value-unavailable (32767) -}(0..32767) - - -/* -* @brief This data type provides information on suspicious yawrate change -* inconsistent with speed -* @class CamYCInconSpeed -* @see -* @note Level 2 detection -*/ -CamYCInconSpeed ::= SEQUENCE{ -} - -/* -* @brief This data type provides information on suspicious yawrate change -* inconsistent with curvature -* @class CamYCInconCurvature -* @see -* @note Level 2 detection -*/ -CamYCInconCurvature ::= SEQUENCE{ -} - -/* -* @brief This data type provides information on suspicious yawrate -* based on perceived yawrate -* @class CamYawRateInconPerceivedYawRate -* @see -* @note Level 4 detection -*/ -CamYawRateInconPerceivedYawRate ::= SEQUENCE{ - sensor SensorInfos -- only info on sensors that are used for this statement - -- to be completed -} - --- Evidence definitions (to be moved to Misc??) - -/* -* @brief This data type contains subsequent CAMs as evidences (mix of MbmrEtsiGn or MbmrEtsiGnNoCertificate) -* @class SubsequentCamMessagesEvidence -*/ -SubsequentCamMessagesEvidence ::= SEQUENCE OF ObservedMsg -- for level 2 detection - -/* -* @brief This data type contains CAMs from other peer stations as evidence -* @class OtherSourceCamMessagesEvidence -*/ -OtherSourceCamMessagesEvidence ::= SEQUENCE OF ObservedMsg -- MbmrEtsiGn for level 3 detection - -/* -* @brief This empty data type is applicable to indicate a digital map as evidence -* @class DummyRoadMapIssueEvidence -*/ -RoadMapIssueEvidence ::= NULL - -/* -* @brief This data type is applicable to indicate a level 4 evidence -* @class Level4CamEvidence -*/ -Level4CamEvidence ::= SEQUENCE{ -} -- to be replaced by correct evidence definition, if applicable; otherwise NULL - - -END diff --git a/Its-MbmrDenm.asn b/Its-MbmrDenm.asn deleted file mode 100755 index 8291c2a..0000000 --- a/Its-MbmrDenm.asn +++ /dev/null @@ -1,364 +0,0 @@ ----- --- TS 103 759 --- Draft proposal from SCA project lead by IRT SystemX --- 2020-12-17 - -/* -* Definitions from Its-MbmrDenm are imported in Its-Mbmr -*/ -/* this comment is to be removed prior to publication -* Its-MbmrDenm provides specifications for reports of semantical issues observed in a DENM -* The specifications in Its-MbmrDenmm are not complete, but just reflect the basic approach and -* initial suggestions - to be revised -*/ - -/* -* @namespace Its-MbmrDENM -*/ -Its-MbmrDenm { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103759) mbmrDenm (6) version1 (1) } -DEFINITIONS AUTOMATIC TAGS ::= BEGIN - -IMPORTS - -MbmrMsg, -C-MBMR-MSG, -IdMbmrMsg, -MbmrPrevious, -NullType, -ObservedMsg, -OnlyBasicEvidence -FROM Its-MbmrMisc { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103759) mbmrMisc (2) version1 (1) } - -ReporterInfos -FROM Its-MbmrReporter { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103759) mbmrReporter (3) version1 (1) } - -Uint8 -FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) base(1) base-types(2) major-version-2(2) minor-version-2(2)} -; - -/* -* @brief This data type contains detected issues (semantic) related to DENM -* @class MbmrDenm -* @param version contains the version number of this PDU definition -* @param observations contains information on suspicious observations -* @param evidence contains the basic evidence (observed DENM) -* @see Mbmr, C-MBMR-DENM, SetMbmrDenm -*/ -MbmrDenm ::= MbmrMsg {{SetMbmrDenm}} - -/* -* @brief This value type defines the globally unique reference IDs for detected -* issues and related evidences for DENM -* @class IdMbmrMsg -* @see C-MBMR-MSG -* @note Every issue relates to a data type that can be present in a DENM. -* Further details depend on the detection level. -* @note One reference identifier indicates a previous report. -*/ - c-MbmrDenm-previous IdMbmrMsg::=0 -- indicates that this report complements a previous report --- IDs for cause codes (situation container) - c-MbmrDenm-traffic IdMbmrMsg::=1 - c-MbmrDenm-accident IdMbmrMsg::=2 - c-MbmrDenm-roadworks IdMbmrMsg::=3 - c-MbmrDenm-adverseWeather-Adhesion IdMbmrMsg::=6 - c-MbmrDenm-hazardousLocation-SurfaceCondition IdMbmrMsg::=9 - c-MbmrDenm-hazardousLocation-ObstacleOnTheRoad IdMbmrMsg::=10 - c-MbmrDenm-hazardousLocation-AnimalOnTheRoad IdMbmrMsg::=11 - c-MbmrDenm-humanPresenceOnTheRoad IdMbmrMsg::=12 - c-MbmrDenm-wrongWayDriving IdMbmrMsg::=14 - c-MbmrDenm-rescueAndRecoveryWorkInProgress IdMbmrMsg::=15 - c-MbmrDenm-adverseWeatherCondition-ExtremeWeatherCondition IdMbmrMsg::=17 - c-MbmrDenm-adverseWeatherCondition-Visibility IdMbmrMsg::=18 - c-MbmrDenm-adverseWeatherCondition-Precipitation IdMbmrMsg::=19 - c-MbmrDenm-slowVehicle IdMbmrMsg::=26 - c-MbmrDenm-dangerousEndOfQueue IdMbmrMsg::=27 - c-MbmrDenm-vehicleBreakdown IdMbmrMsg::=91 - c-MbmrDenm-postCrash IdMbmrMsg::=92 - c-MbmrDenm-humanProblem IdMbmrMsg::=93 - c-MbmrDenm-stationaryVehicle IdMbmrMsg::=94 - c-MbmrDenm-emergencyVehicleApproaching IdMbmrMsg::=95 - c-MbmrDenm-hazardousLocation-DangerousCurve IdMbmrMsg::=96 - c-MbmrDenm-collisionRisk IdMbmrMsg::=97 - c-MbmrDenm-signalViolation IdMbmrMsg::=98 - c-MbmrDenm-dangerousSituation IdMbmrMsg::=99 - - -/* -* @brief This data type defines the IOS for MbmrCam -* @class SetMbmrCam -* @see MbmrCam, IdMbmrCam -* @note One entry in this set for each type -* @note Level-specific evidences are also treated as types -*/ -SetMbmrDenm C-MBMR-MSG ::= { - { DenmPrevious BY c-MbmrDenm-previous WITH OnlyBasicEvidence} | --- General issues - --- Other issues - { Denm-traffic BY c-MbmrDenm-traffic WITH OnlyBasicEvidence } | - { Denm-accident BY c-MbmrDenm-accident WITH OnlyBasicEvidence } | - { Denm-roadworks BY c-MbmrDenm-roadworks WITH OnlyBasicEvidence } | - { Denm-adverseWeather-Adhesion BY c-MbmrDenm-adverseWeather-Adhesion WITH OnlyBasicEvidence } | - { Denm-hazardousLocation-SurfaceCondition BY c-MbmrDenm-hazardousLocation-SurfaceCondition WITH OnlyBasicEvidence } | - { Denm-hazardousLocation-ObstacleOnTheRoad BY c-MbmrDenm-hazardousLocation-ObstacleOnTheRoad WITH OnlyBasicEvidence } | - { Denm-hazardousLocation-AnimalOnTheRoad BY c-MbmrDenm-hazardousLocation-AnimalOnTheRoad WITH OnlyBasicEvidence } | - { Denm-humanPresenceOnTheRoad BY c-MbmrDenm-humanPresenceOnTheRoad WITH OnlyBasicEvidence } | - { Denm-wrongWayDriving BY c-MbmrDenm-wrongWayDriving WITH OnlyBasicEvidence } | - { Denm-rescueAndRecoveryWorkInProgress BY c-MbmrDenm-rescueAndRecoveryWorkInProgress WITH OnlyBasicEvidence } | - { Denm-adverseWeatherCondition-ExtremeWeatherCondition BY c-MbmrDenm-adverseWeatherCondition-ExtremeWeatherCondition WITH OnlyBasicEvidence } | - { Denm-adverseWeatherCondition-Visibility BY c-MbmrDenm-adverseWeatherCondition-Visibility WITH OnlyBasicEvidence } | - { Denm-adverseWeatherCondition-Precipitation BY c-MbmrDenm-adverseWeatherCondition-Precipitation WITH OnlyBasicEvidence } | - { Denm-slowVehicle BY c-MbmrDenm-slowVehicle WITH OnlyBasicEvidence } | - { Denm-dangerousEndOfQueue BY c-MbmrDenm-dangerousEndOfQueue WITH OnlyBasicEvidence } | - { Denm-vehicleBreakdown BY c-MbmrDenm-vehicleBreakdown WITH OnlyBasicEvidence } | - { Denm-postCrash BY c-MbmrDenm-postCrash WITH OnlyBasicEvidence } | - { Denm-humanProblem BY c-MbmrDenm-humanProblem WITH OnlyBasicEvidence } | - { Denm-stationaryVehicle BY c-MbmrDenm-stationaryVehicle WITH OnlyBasicEvidence } | - { Denm-emergencyVehicleApproaching BY c-MbmrDenm-emergencyVehicleApproaching WITH OnlyBasicEvidence } | - { Denm-hazardousLocation-DangerousCurve BY c-MbmrDenm-hazardousLocation-DangerousCurve WITH OnlyBasicEvidence } | - { Denm-collisionRisk BY c-MbmrDenm-collisionRisk WITH OnlyBasicEvidence } | - { Denm-signalViolation BY c-MbmrDenm-signalViolation WITH OnlyBasicEvidence } | - { Denm-dangerousSituation BY c-MbmrDenm-dangerousSituation WITH OnlyBasicEvidence } - , ... - } - - -/* -* @brief This data type provides information on a previous report -* @class DenmPrevious -* @see Mbmr-Previous -* @note -*/ -DenmPrevious ::= MbmrPrevious -- if present, this must be the first in the sequence - --- Editor's note, to be removed prior to publication --- All SEQUENCEs with a single component can be converted into a simple assignment. --- Such a conversion has no impact on the resulting binary code or the speed of execution, --- thus, the conversion is not necessary. To be decided later. Suggest to keep it as it is. --- Editor's note, to be removed prior to publication --- Empty SEQUENCEs either must be completed, or replaced by NullType --- NullType is applicable if no value is to be provided. - --- General issues - -/* -* @brief This data type provides information on suspicious cause code -* @class Denm-traffic -* @note -*/ -Denm-traffic ::= SEQUENCE { - -} - -/* -* @brief This data type provides information on suspicious cause code -* @class Denm-accident -* @note -*/ -Denm-accident ::= SEQUENCE { - -} - -/* -* @brief This data type provides information on suspicious cause code -* @class Denm-roadworks -* @note -*/ -Denm-roadworks ::= SEQUENCE { - -} - -/* -* @brief This data type provides information on suspicious cause code -* @class Denm-adverseWeather-Adhesion -* @note -*/ -Denm-adverseWeather-Adhesion ::= SEQUENCE { - -} - -/* -* @brief This data type provides information on suspicious cause code -* @class Denm-hazardousLocation-SurfaceCondition -* @note -*/ -Denm-hazardousLocation-SurfaceCondition ::= SEQUENCE { - -} - -/* -* @brief This data type provides information on suspicious cause code -* @class Denm-hazardousLocation-ObstacleOnTheRoad -* @note -*/ -Denm-hazardousLocation-ObstacleOnTheRoad ::= SEQUENCE { - -} - -/* -* @brief This data type provides information on suspicious cause code -* @class Denm-hazardousLocation-AnimalOnTheRoad -* @note -*/ -Denm-hazardousLocation-AnimalOnTheRoad ::= SEQUENCE { - -} - -/* -* @brief This data type provides information on suspicious cause code -* @class Denm-humanPresenceOnTheRoad -* @note -*/ -Denm-humanPresenceOnTheRoad ::= SEQUENCE { - -} - -/* -* @brief This data type provides information on suspicious cause code -* @class Denm-wrongWayDriving -* @note -*/ -Denm-wrongWayDriving ::= SEQUENCE { - -} - -/* -* @brief This data type provides information on suspicious cause code -* @class Denm-rescueAndRecoveryWorkInProgress -* @note -*/ -Denm-rescueAndRecoveryWorkInProgress ::= SEQUENCE { - -} - -/* -* @brief This data type provides information on suspicious cause code -* @class Denm-adverseWeatherCondition-ExtremeWeatherCondition -* @note -*/ -Denm-adverseWeatherCondition-ExtremeWeatherCondition ::= SEQUENCE { - -} - -/* -* @brief This data type provides information on suspicious cause code -* @class Denm-adverseWeatherCondition-Visibility -* @note -*/ -Denm-adverseWeatherCondition-Visibility ::= SEQUENCE { - -} - -/* -* @brief This data type provides information on suspicious cause code -* @class Denm-adverseWeatherCondition-Precipitation -* @note -*/ -Denm-adverseWeatherCondition-Precipitation ::= SEQUENCE { - -} - -/* -* @brief This data type provides information on suspicious cause code -* @class Denm-slowVehicle -* @note -*/ -Denm-slowVehicle ::= SEQUENCE { - -} - -/* -* @brief This data type provides information on suspicious cause code -* @class Denm-dangerousEndOfQueue -* @note -*/ -Denm-dangerousEndOfQueue ::= SEQUENCE { - -} - -/* -* @brief This data type provides information on suspicious cause code -* @class Denm-vehicleBreakdown -* @note -*/ -Denm-vehicleBreakdown ::= SEQUENCE { - -} - -/* -* @brief This data type provides information on suspicious cause code -* @class Denm-postCrash -* @note -*/ -Denm-postCrash ::= SEQUENCE { - -} - -/* -* @brief This data type provides information on suspicious cause code -* @class Denm-humanProblem -* @note -*/ -Denm-humanProblem ::= SEQUENCE { - -} - -/* -* @brief This data type provides information on suspicious cause code -* @class Denm-stationaryVehicle -* @note -*/ -Denm-stationaryVehicle ::= SEQUENCE { - -} - -/* -* @brief This data type provides information on suspicious cause code -* @class Denm-emergencyVehicleApproaching -* @note -*/ -Denm-emergencyVehicleApproaching ::= SEQUENCE { - -} - -/* -* @brief This data type provides information on suspicious cause code -* @class Denm-hazardousLocation-DangerousCurve -* @note -*/ -Denm-hazardousLocation-DangerousCurve ::= SEQUENCE { - -} - -/* -* @brief This data type provides information on suspicious cause code -* @class Denm-collisionRisk -* @note -*/ -Denm-collisionRisk ::= SEQUENCE { - -} - -/* -* @brief This data type provides information on suspicious cause code -* @class Denm-signalViolation -* @note -*/ -Denm-signalViolation ::= SEQUENCE { - -} - -/* -* @brief This data type provides information on suspicious cause code -* @class Denm-dangerousSituation -* @note -*/ -Denm-dangerousSituation ::= SEQUENCE { - -} - - --- Evidence definitions (to be moved to Misc??) --- see also additional evidences for CAM - -END diff --git a/Its-MbmrMisc.asn b/Its-MbmrMisc.asn deleted file mode 100755 index 7408016..0000000 --- a/Its-MbmrMisc.asn +++ /dev/null @@ -1,254 +0,0 @@ ----- --- TS 103 759 --- Draft proposal from SCA project lead by IRT SystemX --- 2020-12-15 - - -/* -* This file contains specifications of general usage in other modules -*/ - -/* -* @namespace Its-Mbmr-Misc -*/ -Its-MbmrMisc { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103759) mbmrMisc (2) version1 (1) } -DEFINITIONS AUTOMATIC TAGS ::= BEGIN - -IMPORTS - -Opaque, -Psid, -Time64, -ThreeDLocation, -Uint8 -FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111) - standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) - base(1) base-types(2) major-version-2(2) minor-version-2(2)} - -; - -/* -* @brief This value type contains the template for a report on any ITS message -* @class MbmrMsg -* @note Up to 256 different versions can be distinguished -*/ -MbmrMsg{C-MBMR-MSG : MsgObservationSet} ::= SEQUENCE { - version Uint8, -- set to c-version-MbmrMsg - observations SEQUENCE OF MbmrObservation {{MsgObservationSet}}, -- Suspicious content - evidence ObservedMsg -- Observed message as basic evidence - } - -/* -* @brief This value type contains the version number of the MbmrMsg PDU -* @class c-version-MbmrMsg -* @see MbmrMsg -* @note Up to 256 different versions can be distinguished -*/ -c-version-MbmrMsg Uint8 ::= 1 - --- IOC and IOS for MbmrObservation - -/* -* @brief This data type contains a single detected issue related to message together -* with evidence information -* @class MbmrObservation -* @param id contains the globally unique reference identifier of the -* issue and the related evidence -* @param observation contains information on suspicious content in a message identfied by id -* @param addEvidence contains additional evidence related to the given issue -* @see Mbmr, C-MBMR-MSG, SetMbmrMsg -*/ -MbmrObservation {C-MBMR-MSG : SetMbmrMsg} ::= SEQUENCE { - id C-MBMR-MSG.&id ({SetMbmrMsg}), - observation C-MBMR-MSG.&Observation ({SetMbmrMsg}{@.id}), - addEvidence C-MBMR-MSG.&Evidence ({SetMbmrMsg}{@.id}) - } - -/* -* @brief This data type defines the IOC for MbmrMsg issues -* @class C-MBMR-MSG -* @param id contains the globally unique reference identifier of a message issue -* @param Observation contains the open type of the detected issue -* @param Evidence contains the open type of additional evidence for the given issue -* @see MbrmMsg, SetMbrMsg, IdMbrMsg -* @note Up to 256 different reports can be distinguished -*/ -C-MBMR-MSG ::= CLASS { - &id IdMbmrMsg UNIQUE, - &Observation, - &Evidence - } WITH SYNTAX {&Observation BY &id WITH &Evidence} - -/* -* @brief This data type defines the globally unique reference IDs for detected -* issues and related evidences for an ITS message -* @class IdMbmrMsg -* @see C-MBMR-MSG -* @note Every issue relates to a data type that can be present in a Msg. -* Further details depend on the detection level. -* @note One reference identifier indicates a previous report. -*/ - -IdMbmrMsg ::= INTEGER (0..255) - -/* -* @brief This data type contains a bug-fix for usage of NULL in TTCN-3 -* @class NullType -*/ -NullType ::= NULL - - -/* -* @brief This data type contains the observed message -* @class ObservedMsg -* @note Different message types or even no message are supported -*/ -ObservedMsg ::= SEQUENCE { - id C-MBMR-MSG-OBS.&id({SetMbmrMsgObserved}), - msg C-MBMR-MSG-OBS.&MsgObs({SetMbmrMsgObserved}) -} - - -/* -* @brief This data type contains the IOC for the observed message -* @class C-MBMR-MSG-OBS -*/ -C-MBMR-MSG-OBS ::= CLASS { - &id IdMbmrMsgObs UNIQUE, - &MsgObs - } WITH SYNTAX {&MsgObs IDENTIFIED BY &id} - -/* -* @brief This data type contains the IOS for the observed message -* @class SetMbmrMsgObserved -*/ -SetMbmrMsgObserved C-MBMR-MSG-OBS ::= { - { Mbmr-Unused-UnknownMsg IDENTIFIED BY c-MbmrMsg-unused-unknown } - | { MbmrEtsiGnWithCertificate IDENTIFIED BY c-MbmrMsg-etsiGnWithCertificate } - | { MbmrEtsiGnWithDigest IDENTIFIED BY c-MbmrMsg-etsiGnWithDigest } - , ... - } - -/* -* @brief This data type contains the identifier of the type of observed message -* @class IdMbmrMsgObs -*/ -IdMbmrMsgObs ::= INTEGER{ - c-MbmrMsg-unused-unknown (0), - c-MbmrMsg-etsiGnWithCertificate (1), - c-MbmrMsg-etsiGnWithDigest (2) - } (0..255) - -/* -* @brief This data type contains the unknown message -* @class Mbmr-UnknownMsg -*/ -Mbmr-Unused-UnknownMsg ::= NullType - -/* -* @brief This data type contains the ETSI signed message -* @class MbmrEtsiSigned -*/ -MbmrEtsiGnWithCertificate ::= Opaque - -/* -* @brief This data type contains the ETSI unsigned message -* @class MbmrEtsiUnSigned -*/ -MbmrEtsiGnWithDigest ::= Opaque - -/* -* @brief This data type contains information on a previous report -* @class MbmrPrevious -*/ -MbmrPrevious ::= SEQUENCE{ - relatedReportID Time64, --ID = generationTime of the initial report - numberOfReportsOmitted NumberReportsOmitted -} - -/* -* @brief This data type contains the number of omitted reports, i.e. -* The number of received messages following the one used as -* basic reference in the previous report that were not used -* to prepare and send a report -* @class MbmrPrevious --- I wonder whether this is reasonable, as a station might not receive --- all messages that were sent by a peer station. --- Further on, what is the usage of this information. --- Suggest to delete this. -*/ -NumberReportsOmitted ::= Uint8 - - -/* -* @brief This data type indicates missing evidence -* @class OnlyBasicEvidence -*/ -OnlyBasicEvidence ::= NULL - -/* -* @brief This empty data type is applicable to indicate no evidence needed -* @class NoEvidence -*/ -NoEvidence ::= NULL - -/* -* @brief This data type provides information on local sensors -* and the data provided by sensors to prodice a report. -* @class SensorInfos -*/ -SensorInfos ::= SEQUENCE OF Sensor --- to be completed --- IOC for each sensor --- each sensor's data (maybe IOC) - - -/* -* @brief This data type contains the observed message -* @class ObservedMsg -* @note Different message types or even no message are supported -*/ -Sensor ::= SEQUENCE { - id C-MBMR-SENSOR.&id({SetMbmrSensors}), - msg C-MBMR-SENSOR.&SensorDetails({SetMbmrSensors}) -} - -/* -* @brief This data type contains the IOC for the observed message -* @class C-MBMR-MSG-OBS -*/ -C-MBMR-SENSOR ::= CLASS { - &id IdMbmrSensor UNIQUE, - &SensorDetails - } WITH SYNTAX {&SensorDetails IDENTIFIED BY &id} - -/* -* @brief This data type contains the IOS for the observed message -* @class SetMbmrMsgObserved -*/ -SetMbmrSensors C-MBMR-SENSOR ::= { - { Mbmr-UnknownSensor IDENTIFIED BY c-MbmrSensor-unknown } --- | { Mbmr-SensorXYZ IDENTIFIED BY c-MbmrSensor-SensorXYZ } - , ... - } - -/* -* @brief This data type contains the identifier of the type of observed message -* @class IdMbmrMsgObs -*/ -IdMbmrSensor ::= INTEGER{ - c-MbmrSensor-unknown (0) -- no sensor --- c-MbmrSensor-SensorXYZ (1) - } (0..255) - -Mbmr-UnknownSensor ::= NullType - -/* -SensorXYZ ::= SEQUENCE{ - type SensorType, - calibration CalibrationInfo, - observedValue TBD -} -*/ - -END diff --git a/Its-MbmrReporter.asn b/Its-MbmrReporter.asn deleted file mode 100755 index 0888a10..0000000 --- a/Its-MbmrReporter.asn +++ /dev/null @@ -1,127 +0,0 @@ ----- --- TS 103 759 --- Draft proposal from SCA project lead by IRT SystemX --- 2020-12-03 - -/* -* This file contains specifications to report details of the reporter ITS-SU -* This can be used in other modules where needed (for evidence presentation) -*/ - -/* -* @namespace Its-MbmrReporter -*/ -Its-MbmrReporter { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103759) mbmrReporter (3) version1 (1) } -DEFINITIONS AUTOMATIC TAGS ::= BEGIN - -IMPORTS --- TimestampIts, -StationType, -ReferencePosition, -Heading, -Speed, -DriveDirection, -VehicleLength, -VehicleWidth, -Curvature, -LongitudinalAcceleration, -YawRate -FROM ITS-Container { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) } - -Uint8, -ThreeDLocation -FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) base(1) base-types(2) major-version-2(2) minor-version-2(2)} - -; - -/* -* @brief This data type contains information about the reporter -* @class ReporterInfos -* @param version contains the version number of this PDU definition -* @param infos contains a sequence of information elements on the reporter ITS-SU -*/ -ReporterInfos ::= SEQUENCE{ - version Uint8, -- c-version-MbrReporter - infos ReporterInfoSequence - } - -ReporterInfoSequence ::= SEQUENCE OF ReporterInfo -- this sequence may be of length zero - - -/* -* @brief This value type contains the version number of the PDU ReporterInfos -* @class c-version-MbmrReporter -* @note Up to 256 different versions can be distinguished -*/ -c-version-MbrReporter Uint8 ::= 1 - -/* -* @brief This data type contains a single information element of the reporter ITS-SU -* @class ReporterInfo -* @param id contains the globally unique reference identifier of the reporter info -* @param reporterInfo contains the reporter info element identified by id -* @see ReporterInfoSequence -*/ -ReporterInfo ::= SEQUENCE { - id C-MBMR-REPORTER.&id({SetMbmrReporter}), - reporterInfo C-MBMR-REPORTER.&InfoReporter({SetMbmrReporter}{@.id}) - } - -/* -* @brief This data type defines the IOC for MbrReporter -* @class C-MBMR-REPORTER -* @param id contains the globally unique reference identifier of a - ´* reporter info element -* @param InfoReporter contains the open type of information on reporter -* @see ReporterInfo, SetMbrReporter, IdMbrReporter -* @note Up to 256 different info elements can be distinguished -*/ - C-MBMR-REPORTER ::= CLASS { - &id IdMbrReporter UNIQUE, - &InfoReporter - } WITH SYNTAX {&InfoReporter IDENTIFIED BY &id} - -/* -* @brief This data type defines the IOS for MbrReporter -* @class SetMbrReporter -* @see ReporterInfo, IdMbrReporter -* @note One entry in this set for every reporter info element -*/ -SetMbmrReporter C-MBMR-REPORTER ::= { - { StationType IDENTIFIED BY c-MbmrReporter-stationType } - | { ReferencePosition IDENTIFIED BY c-MbmrReporter-referencePosition} - | { Heading IDENTIFIED BY c-MbmrReporter-heading} - | { Speed IDENTIFIED BY c-MbmrReporter-speed} - | { DriveDirection IDENTIFIED BY c-MbmrReporter-driveDirection} - | { VehicleLength IDENTIFIED BY c-MbmrReporter-vehicleLength} - | { VehicleWidth IDENTIFIED BY c-MbmrReporter-vehicleWidth} - | { LongitudinalAcceleration IDENTIFIED BY c-MbmrReporter-longitudinalAcceleration} - | { Curvature IDENTIFIED BY c-MbmrReporter-curvature} - | { YawRate IDENTIFIED BY c-MbmrReporter-yawRate} - | { ThreeDLocation IDENTIFIED BY c-MbmrReporter-threeDLocation} - , ... - } - -/* -* @brief This data type defines the globally unique reference IDs for MbrReporter -* @class IdMbrReporter -* @see C-MBR-REPORTER -* @note Up to 256 different reporter info elements can be identified -*/ - IdMbrReporter ::= INTEGER { - c-MbmrReporter-unknown-undisclosed (0), - c-MbmrReporter-stationType (1), - c-MbmrReporter-referencePosition (2), - c-MbmrReporter-heading (3), - c-MbmrReporter-speed (4), - c-MbmrReporter-driveDirection (5), - c-MbmrReporter-vehicleLength (6), - c-MbmrReporter-vehicleWidth (7), - c-MbmrReporter-longitudinalAcceleration (8), - c-MbmrReporter-curvature (9), - c-MbmrReporter-yawRate (10), - c-MbmrReporter-threeDLocation (11) - } (0..255) - - -END diff --git a/documentation/Asn1doc.css b/documentation/Asn1doc.css new file mode 100644 index 0000000..2dd4667 --- /dev/null +++ b/documentation/Asn1doc.css @@ -0,0 +1,307 @@ + +.linenumber { + font-family: monospace; + font-size: smaller; + color: gray; + padding: 0; + margin: 0 4px 0 0; +} + +.EC { + font-family: monospace; + font-size: 15px; + color: silver; + padding: 0; + margin: 0 4px 0 4px; + cursor: pointer +} + +section.asn1 { + white-space: pre-wrap; + border: 1px solid silver; + margin: 8px 8px; + padding: 4px; +} + +section.asn1.notinteractive { + border: none; +} + +.synthetic { + background-color: lightcyan; +} + +.fulltext { + display: none +} + +.details[data-open] > .fulltext { + display: initial +} + +.details[data-open] > .summary { + display: none +} + +.listitem { + margin: 8px 0 8px 0; +} + +section.asn1 p { + margin: 0 0 1px 0; + padding: 0; + font-family: monospace; +} + +section.asn1 a { + text-decoration: none +} + +nav.buttons { + float: right +} + +button { + margin-left: 4px; +} + +.K /* Keyword */ { + color: blue; + font-family: monospace +} + +.D /* Delimiter */ { + color: black; + font-family: monospace +} + +.N /* Number */ { + color: orange; + font-family: monospace +} + +.S /* String */ { + color: olive; + font-family: monospace +} + +.XE /* XmlCharEscape */ { + color: orange; + font-family: monospace +} + +.C /* Comment */ { + color: #00A800; + font-weight: 200; + font-family: monospace +} + +.W /* Word */ { + color: gray; + font-style: italic; + font-family: monospace +} + +.MN /* ModuleName */ { + color: maroon; + font-weight: 700; + font-family: monospace +} + +.EN /* EntityName */ { + color: #000070; + font-family: monospace +} + +.FN /* FieldName */ { + color: teal; + font-family: monospace +} + +.CI /* ComponentIdentifier */ { + color: #a060a0; + font-family: monospace +} + +.II /* ItemIdentifier */ { + color: gray; + font-family: monospace +} + +.AI /* ArcIdentifier */ { + color: gray; + font-family: monospace +} + +.SF /* SchemaFile */ { + color: olive; + font-family: monospace +} + +.E { + color: red; + font-weight: bold; + font-family: monospace +} + +.L1 /* Line overflow */ { + background-color: hsl(30, 25%, 85%); + border-bottom: 1px dotted +} + +.L2 /* Line overflow */ { + background-color: hsl(30, 25%, 85%); + border-bottom: 1px dotted +} + +.L3 /* Line overflow */ { + background-color: hsl(30, 99%, 85%); + border-bottom: 1px dotted +} + +.E1 /* Error informational */ { + background-color: hsl(210, 99%, 80%); + border-bottom: 1px dotted +} + +.E2 /* Error warning */ { + background-color: hsl(60, 99%, 65%); + border-bottom: 1px dotted +} + +.E3 /* Error severe */ { + background-color: hsl(0, 99%, 80%); + border-bottom: 1px dotted +} + +td .L1 /* Line overflow */ { + border-bottom: none +} + +td .L2 /* Line overflow */ { + border-bottom: none +} + +td .E1 /* Error informational */ { + border-bottom: none +} + +td .E2 /* Error warning */ { + border-bottom: none +} + +td .E3 /* Error severe */ { + border-bottom: none +} + +nav a { + color: black +} + +.textintable { + font-size: smaller; + color: black +} + +.numberintable { + font-size: smaller; + text-align: right; + color: black +} + +a.numberintable { + text-align: right; + float: right; + color: black +} + +h4 { + margin-top: 4px; + margin-bottom: 4px +} + +.documentation { + white-space: initial; + font-size: smaller; + color: green; +} + +div.footer { + font-size: 0.9em; + color: grey; + margin-top: 20px +} + +table { + table-layout: auto; + border-collapse: collapse; + empty-cells: show; + border-style: solid; + border-color: #202020; + margin-bottom: 4ex; + margin-top: 0 +} + +table.documentation { + table-layout: auto; + margin-left: 4ex; + width: 100ex; + border-collapse: collapse; + empty-cells: show; + border-style: initial; + border-width: thin; + border-color: #404040; + background-color: #f4f4f4; + margin-bottom: 1ex; + margin-top: 1ex +} + +table.asn1 { + white-space: pre-wrap; +} + +caption { + font-size: 1.25em; + font-weight: bold; + margin-bottom: 1.5ex +} + +thead { + border-style: solid; + padding: 4px; + border-color: #202020 +} + +tmain { + border-style: solid; + padding: 4px; + border-color: #202020 +} + +tfoot { + border-style: solid; + padding: 4px; + border-color: #202020 +} + +tr { + padding: 4px; + border-style: solid; + border-width: 1px; + border-color: #202020 +} + +th { + padding: 4px; + border-style: solid; + border-width: 1px; + border-color: #202020 +} + +td { + padding: 4px; + border-style: solid; + border-width: 1px; + border-color: #202020; + vertical-align: top; +} diff --git a/documentation/Asn1doc.js b/documentation/Asn1doc.js new file mode 100644 index 0000000..ec81b40 --- /dev/null +++ b/documentation/Asn1doc.js @@ -0,0 +1,102 @@ + +function Init + () +{ + var listElement = document.getElementsByTagName("A"); + var i; + + for(i = 1; i <= listElement.length; i ++) + listElement[i - 1].setAttribute("onclick", "EVD(this)"); + + listElement = document.getElementsByTagName("SPAN"); + + for(i = 1; i <= listElement.length; i++) + { + if(listElement[i - 1].getAttribute("CLASS") == "EC") + listElement[i - 1].setAttribute("onclick", "EC(this)"); + } +} + +function EVD //ensure visibility of the destination of a link + (a_element) +{ + var strHref = a_element.getAttribute("HREF"); + var strId = strHref.substr(strHref.indexOf('#') + 1); + var element = document.getElementById(strId); + + var yElementBefore = a_element.offsetTop; + var yScrollBefore = window.scrollY; + + while(element.parentElement != null) + { + element = element.parentElement; + + if(element.getAttribute("CLASS") == "details") + element.setAttribute("data-open", ""); + } + + var yElementAfter = a_element.offsetTop; + + if(yElementAfter > yElementBefore) + window.scroll(0, yScrollBefore + yElementAfter - yElementBefore); +} + +function EC //expand or collapse (toggle) + (a_element) +{ + var element = a_element; + + while(element.parentElement != null) + { + element = element.parentElement; + + if(element.getAttribute("CLASS") == "details") + break; + } + + if(element.parentElement != null) + { + if(element.getAttribute("data-open") == null) + element.setAttribute("data-open", ""); + else + element.removeAttribute("data-open"); + } +} + +function ECD //expand or collapse descendants + (a_element, + a_bExpand) +{ + var element = a_element; + + while(element.parentElement != null) + { + element = element.parentElement; + + if(element.getAttribute("CLASS") == "details") + break; + } + + if(element.parentElement != null) + { + if(a_bExpand) + element.setAttribute("data-open", ""); + else + element.removeAttribute("data-open"); + + var listElement = element.getElementsByTagName("DIV"); + var i; + + for(i = 1; i <= listElement.length; i++) + { + if(listElement[i - 1].getAttribute("CLASS") == "details") + { + if(a_bExpand) + listElement[i - 1].setAttribute("data-open", ""); + else + listElement[i - 1].removeAttribute("data-open"); + } + } + } +} + diff --git a/documentation/schema.html b/documentation/schema.html new file mode 100644 index 0000000..db18320 --- /dev/null +++ b/documentation/schema.html @@ -0,0 +1,3854 @@ + + + + +ETSI TS 103 759 ASN.1 Schema Documentation + + + +

ETSI TS 103 759 ASN.1 Schema Documentation

+

Summary Tables

This section contains a set of tables presenting summary information about the ASN.1 schema.

Schema Files Table
Schema Files Table + + + + + + + + + + + + + + + + +
Schema Files
File nameModules
Module nameModule OIDDescription
EtsiTs103759.asnEtsiTs103759{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) ts (103759) general (1) core (1) major-version-1 (1) minor-version-1 (1)}
EtsiTs103759AsrAppAgnostic.asnEtsiTs103759AsrAppAgnostic{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) ts (103759) aid-specific (2) appAgnostic (270549119) major-version-1 (1) minor-version-1 (1)}
EtsiTs103759AsrBsm.asnEtsiTs103759AsrBsm{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) ts (103759) aid-specific (2) bsm (32) major-version-1 (1) minor-version-1 (1)}
EtsiTs103759AsrCam.asnEtsiTs103759AsrCam{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) ts (103759) aid-specific (2) cam (36) major-version-1 (1) minor-version-1 (1)}
EtsiTs103759AsrDenm.asnEtsiTs103759AsrDenm{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) ts (103759) aid-specific (2) denm (37) major-version-1 (1) minor-version-1 (1)}
EtsiTs103759CommonObservations.asnEtsiTs103759MbrCommonObservations{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) ts (103759) general (1) common-observations (2) major-version-1 (1) minor-version-1 (1)}
Ieee1609Dot2.asnIeee1609Dot2{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) base (1) schema (1) major-version-2 (2) minor-version-3 (3)}NOTE: Section references in this file are to clauses in IEEE Std 1609.2 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.
Ieee1609Dot2BaseTypes.asnIeee1609Dot2BaseTypes{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) base (1) base-types (2) major-version-2 (2) minor-version-2 (2)}NOTE: Section references in this file are to clauses in IEEE Std 1609.2 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.
ITS-Container.asnITS-Container{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2)}
+
Modules Table
Modules Table + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Modules
Module nameModule OIDDescriptionNumber
of
assignments
Incoming referencesOutgoing references
Module nameNumberModule nameNumber
EtsiTs103759{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) ts (103759) general (1) core (1) major-version-1 (1) minor-version-1 (1)}41EtsiTs103759AsrBsm9EtsiTs103759AsrAppAgnostic1
EtsiTs103759AsrCam9EtsiTs103759AsrBsm1
EtsiTs103759MbrCommonObservations25EtsiTs103759AsrCam1
EtsiTs103759AsrDenm1
Ieee1609Dot21
Ieee1609Dot2BaseTypes14
EtsiTs103759AsrAppAgnostic{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) ts (103759) aid-specific (2) appAgnostic (270549119) major-version-1 (1) minor-version-1 (1)}1EtsiTs1037591
EtsiTs103759AsrBsm{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) ts (103759) aid-specific (2) bsm (32) major-version-1 (1) minor-version-1 (1)}13EtsiTs1037591EtsiTs1037599
EtsiTs103759MbrCommonObservations5
Ieee1609Dot2BaseTypes1
EtsiTs103759AsrCam{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) ts (103759) aid-specific (2) cam (36) major-version-1 (1) minor-version-1 (1)}10EtsiTs1037591EtsiTs1037599
EtsiTs103759MbrCommonObservations6
Ieee1609Dot2BaseTypes1
EtsiTs103759AsrDenm{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) ts (103759) aid-specific (2) denm (37) major-version-1 (1) minor-version-1 (1)}1EtsiTs1037591
EtsiTs103759MbrCommonObservations{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) ts (103759) general (1) common-observations (2) major-version-1 (1) minor-version-1 (1)}64EtsiTs103759AsrBsm5EtsiTs10375925
EtsiTs103759AsrCam6Ieee1609Dot2BaseTypes4
Ieee1609Dot2{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) base (1) schema (1) major-version-2 (2) minor-version-3 (3)}NOTE: Section references in this file are to clauses in IEEE Std 1609.2 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.43EtsiTs1037591Ieee1609Dot2BaseTypes40
Ieee1609Dot2BaseTypes{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) base (1) base-types (2) major-version-2 (2) minor-version-2 (2)}NOTE: Section references in this file are to clauses in IEEE Std 1609.2 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.72EtsiTs10375914
EtsiTs103759AsrBsm1
EtsiTs103759AsrCam1
EtsiTs103759MbrCommonObservations4
Ieee1609Dot240
ITS-Container{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2)}135
+
PDU Types Table
PDU Types Table + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PDU Types
Module nameType nameDescription
ITS-ContainerAccelerationControl
ITS-ContainerAccidentSubCauseCode
ITS-ContainerActionID
ITS-ContainerAdverseWeatherCondition-AdhesionSubCauseCode
ITS-ContainerAdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode
ITS-ContainerAdverseWeatherCondition-PrecipitationSubCauseCode
ITS-ContainerAdverseWeatherCondition-VisibilitySubCauseCode
EtsiTs103759AsrAppAgnosticAsrAppAgnostic

AsrAppAgnostic

This data type is defined as NULL for this version of the standard.
EtsiTs103759AsrBsmAsrBsm

AsrBsm

This data type is for reporting BSM issues defined by the SCMS Manager.
EtsiTs103759AsrCamAsrCam

AsrCam

This data type is for reporting CAM issues.
EtsiTs103759AsrDenmAsrDenm

AsrDenm

This data type is defined as NULL for this version of the standard.
EtsiTs103759MbrCommonObservationsBeacon-IntervalTooSmall

Beacon-IntervalTooSmall

This data type is provided for an observation of beacon interval that is too small. This doesn’t apply to repeated PDUs, but only to two distinct PDUs. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose interval since the previous PDU is being flagged as too small. The v2xPdus field in that entry must contain at least the subject PDU and the PDU that immediately preceded it. The PDUs may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
ITS-ContainerCauseCode
ITS-ContainerCenDsrcTollingZone
ITS-ContainerClosedLanes
ITS-ContainerCollisionRiskSubCauseCode
Ieee1609Dot2Countersignature

Countersignature

This data structure is used to perform a countersignature over an already-signed SPDU. This is the profile of an Ieee1609Dot2Data containing a signedData. The tbsData within content is composed of a payload containing the hash (extDataHash) of the externally generated, pre-signed SPDU over which the countersignature is performed.
ITS-ContainerCurvature
ITS-ContainerCurvatureCalculationMode
ITS-ContainerDangerousEndOfQueueSubCauseCode
ITS-ContainerDangerousGoodsExtended
ITS-ContainerDangerousSituationSubCauseCode
ITS-ContainerDigitalMap
ITS-ContainerDriveDirection
ITS-ContainerEmbarkationStatus
ITS-ContainerEmergencyPriority
ITS-ContainerEmergencyVehicleApproachingSubCauseCode
ITS-ContainerEnergyStorageType
ITS-ContainerEventHistory
ITS-ContainerExteriorLights
Ieee1609Dot2BaseTypesHashedId10

HashedId10

This type contains the truncated hash of another data structure. The HashedId10 for a given data structure is calculated by calculating the hash of the encoded data structure and taking the low-order ten bytes of the hash output. If the data structure is subject to canonicalization it is canonicalized before hashing. The low-order ten bytes are the last ten bytes of the hash when represented in network byte order. See Example below.

The hash algorithm to be used to calculate a HashedId10 within a structure depends on the context. In this standard, for each structure that includes a HashedId10 field, the corresponding text indicates how the hash algorithm is determined.

Example: Consider the SHA-256 hash of the empty string:
SHA-256("") = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

The HashedId10 derived from this hash corresponds to the following:
HashedId10 = 934ca495991b7852b855.
Ieee1609Dot2BaseTypesHashedId32

HashedId32

This type contains the truncated hash of another data structure. The HashedId32 for a given data structure is calculated by calculating the hash of the encoded data structure and taking the low-order thirty two bytes of the hash output. If the data structure is subject to canonicalization it is canonicalized before hashing. The low-order thirty two bytes are the last thirty two bytes of the hash when represented in network byte order. See Example below.

The hash algorithm to be used to calculate a HashedId32 within a structure depends on the context. In this standard, for each structure that includes a HashedId32 field, the corresponding text indicates how the hash algorithm is determined.

Example: Consider the SHA-256 hash of the empty string:
SHA-256("") = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

The HashedId32 derived from this hash corresponds to the following:
HashedId32 = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.
ITS-ContainerHazardousLocation-AnimalOnTheRoadSubCauseCode
ITS-ContainerHazardousLocation-DangerousCurveSubCauseCode
ITS-ContainerHazardousLocation-ObstacleOnTheRoadSubCauseCode
ITS-ContainerHazardousLocation-SurfaceConditionSubCauseCode
ITS-ContainerHeading
ITS-ContainerHeightLonCarr
ITS-ContainerHumanPresenceOnTheRoadSubCauseCode
ITS-ContainerHumanProblemSubCauseCode
EtsiTs103759AsrBsmIdBsmTgt
EtsiTs103759AsrCamIdCamTgt
EtsiTs103759MbrCommonObservationsIdMbObs

IdMbObs

Identifier type for observations: synonym for Uint8
EtsiTs103759IdObsPdu

IdObsPdu

This data type contains the identifier of the type of observed PDU.
ITS-ContainerItineraryPath
ITS-ContainerItsPduHeader
Ieee1609Dot2BaseTypesKnownLatitude

KnownLatitude

The known latitudes are from -900,000,000 to +900,000,000 in 0.1 microdegree intervals.
Ieee1609Dot2BaseTypesKnownLongitude

KnownLongitude

The known longitudes are from -1,799,999,999 to +1,800,000,000 in 0.1 microdegree intervals.
Ieee1609Dot2BaseTypesLaId

LaId

This structure contains a LA Identifier for use in the algorithms specified in 5.1.3.4.
ITS-ContainerLanePosition
ITS-ContainerLateralAcceleration
ITS-ContainerLightBarSirenInUse
Ieee1609Dot2BaseTypesLinkageSeed

LinkageSeed

This structure contains a linkage seed value for use in the algorithms specified in 5.1.3.4.
EtsiTs103759MbrCommonObservationsLongAcc-Implausible-Brake

LongAcc-Implausible-Brake

This data type is provided for an observation of "acceleration inconsistent with braking" misbehaviour. The observation is triggered if in a single message it is indicated that the brakes are being applied but the acceleration is positive.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU with brakes applied but positive acceleration. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
EtsiTs103759MbrCommonObservationsLongAcc-ValueTooLarge

LongAcc-ValueTooLarge

This data type is provided for an observation of longitudinal acceleration that is too large. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose longitudinal acceleration is being flagged as too large. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
EtsiTs103759MbrCommonObservationsLongAcc-ValueTooLarge-ThresholdNoContext

LongAcc-ValueTooLarge-ThresholdNoContext

This data type is provided for an observation of "(absolute) longitudinal acceleration too large relative to threshold" misbehaviour. The observation is triggered if the absolute value of the longitudinal acceleration in a single PDU is larger than a particular threshold. The observation includes the threshold but does not indicate how the threshold was determined.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose (absolute) longitudinal acceleration is being flagged as too large. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
  • threshold
    This is the threshold such that if the absolute value of acceleration is over that threshold, the subject message is categorized as misbehaviour. The threshold is encoded in units of 0.01 m/s^2. @note How the threshold is set is out of scope for this specification. It is recommended that implementations default to a threshold of 10 m/s^2.
ITS-ContainerLongitudinalAcceleration
EtsiTs103759Mbr

Mbr

This data type is the general PDU for a misbehaviour report from an ITS-S to the MA responsible for reports of that type.
  • version
    contains the version number of this PDU definition. For this version of this data type it shall be equal to 2.
  • generationTime
    contains information on when this PDU was generated.
  • observationLocation
    is the location at which the last observation of a V2X PDU was made before the decision was taken to generate a report.
  • report
    contains the AID-specific misbehaviour report.
ITS-ContainerNumberOfOccupants
EtsiTs103759ObsPduEtsiGn

ObsPduEtsiGn

ObsPduEtsiGn contains an ETSI geonetworking PDU, i.e., the first byte of every PDU in the v2xPdus array is the first byte of the geonetworking Basic Header.
EtsiTs103759ObsPduIeee1609Dot2Data

ObsPduIeee1609Dot2Data

  • ObsPduIeee1609Dot2Data
    contains an Ieee1609Dot2Data, i.e., the first byte of every PDU in the v2xPdus array is the version byte of the Ieee1609Dot2Data.
EtsiTs103759ObsPduWsmp

ObsPduWsmp

  • ObsPduWsmp
    contains a WAVE Short Messaging Protocol PDU, i.e., the first byte of every PDU in the v2xPdus array is the first byte of the WSMP N-Header.
ITS-ContainerOpeningDaysHours
ITS-ContainerPerformanceClass
ITS-ContainerPosCentMass
ITS-ContainerPosFrontAx
EtsiTs103759MbrCommonObservationsPos-IncWithPrev-TooFar

Pos-IncWithPrev-TooFar

This data type is provided for an observation of "implausible random position" misbehaviour. The observation is triggered if two consecutive messages are inconsistent, i.e. if [(position in the first) + (velocity in the first)*(time between)] differs from (position in the second) by more than the gpsDrift.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose position is being flagged as inconsistent with the previous PDU. The v2xPdus field in that entry must contain at least the subject PDU and the PDU that immediately preceded it. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
  • gpsDrift
    This is the maximum amount of difference in position between two messages, sent 0.1 seconds apart, that the reporter believes can be explained by GPS drift. This quantity MAY be 0. The units of this quantity are thousandths of a meter.
EtsiTs103759MbrCommonObservationsPos-IncWithPrev-TooSmall

Pos-IncWithPrev-TooSmall

This data type is provided for an observation of "implausible constant position" misbehaviour. The observation is triggered if in two consecutive messages the speed is non-zero and the position change is 0.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose position is being flagged as inconsistent with the previous PDU. The v2xPdus field in that entry must contain at least the subject PDU and the PDU that immediately preceded it. The PDUs may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
EtsiTs103759MbrCommonObservationsPosition-ChangeTooLarge

Position-ChangeTooLarge

This data type is provided for an observation of change in position that is too large. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose position is being flagged as inconsistent with the previous PDU. The v2xPdus field in that entry must contain at least the subject PDU and the PDU that immediately preceded it. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
ITS-ContainerPositioningSolutionType
ITS-ContainerPositionOfOccupants
ITS-ContainerPositionOfPillars
ITS-ContainerPosLonCarr
ITS-ContainerPostCrashSubCauseCode
ITS-ContainerProtectedCommunicationZonesRSU
ITS-ContainerPtActivation
ITS-ContainerRelevanceDistance
ITS-ContainerRelevanceTrafficDirection
ITS-ContainerRequestResponseIndication
ITS-ContainerRescueAndRecoveryWorkInProgressSubCauseCode
ITS-ContainerRestrictedTypes
ITS-ContainerRoadType
ITS-ContainerRoadworksSubCauseCode
EtsiTs103759MbrCommonObservationsSecurity-HeaderIncWithSecurityProfile

Security-HeaderIncWithSecurityProfile

This data type is provided for an observation, where the security headerInfo is inconsistent with the security profile for that psid. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU for which the security headerInfo is being flagged as inconsistent with the security profile for that psid. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
EtsiTs103759MbrCommonObservationsSecurity-HeaderLocationOutsideCertificateValidity

Security-HeaderLocationOutsideCertificateValidity

This data type is provided for an observation, where the generationLocation in the security headerInfo is outside the validity region in the certificate. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU for which the generationLocation in the security headerInfo is being flagged as outside the validity region in the certificate. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
EtsiTs103759MbrCommonObservationsSecurity-HeaderPsidIncWithCertificate

Security-HeaderPsidIncWithCertificate

This data type is provided for an observation, where the psid in the security headerInfo is inconsistent with the psid in the certificate. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU for which the psid in the security headerInfo is being flagged as inconsistent with the psid in the certificate. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
EtsiTs103759MbrCommonObservationsSecurity-HeaderTimeOutsideCertificateValidity

Security-HeaderTimeOutsideCertificateValidity

This data type is provided for an observation, where the generationTime in the security headerInfo is outside the validity period of the certificate. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU for which the generationTime in the security headerInfo is being flagged as outside the validity period in the certificate. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
EtsiTs103759MbrCommonObservationsSecurity-MessageIdIncWithHeaderInfo

Security-MessageIdIncWithHeaderInfo

This data type is provided for an observation, where the messageID is inconsistent with the psid in the security headerInfo. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU for which the messageID is being flagged as inconsistent with the psid in the security headerInfo. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
EtsiTs103759MbrCommonObservationsSecurity-MessageIncWithSsp

Security-MessageIncWithSsp

This data type is provided for an observation, where the message is is inconsistent with the SSP in the certificate. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose content is being flagged as inconsisent with the SSP in the certificate. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
EtsiTs103759MbrCommonObservationsSecurity-MessageLocationOutsideCertificateValidity

Security-MessageLocationOutsideCertificateValidity

This data type is provided for an observation, where the location in the message is outside the validity region in the certificate. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU for which the location in the PDU is being flagged as outside the validity region in the certificate. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
Ieee1609Dot2BaseTypesSequenceOfPsid

SequenceOfPsid

This type is used for clarity of definitions.
ITS-ContainerSignalViolationSubCauseCode
ITS-ContainerSlowVehicleSubCauseCode
ITS-ContainerSpecialTransportType
ITS-ContainerSpeed
EtsiTs103759MbrCommonObservationsSpeed-ChangeTooLarge

Speed-ChangeTooLarge

This data type is provided for an observation of change in speed that is too large. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose speed is being flagged as inconsistent with the speed in the previous PDU. The v2xPdus field in that entry must contain at least the subject PDU and the PDU that immediately preceded it. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
ITS-ContainerSpeedLimit
EtsiTs103759MbrCommonObservationsSpeed-ValueTooLarge-DriveDirectionReverse

Speed-ValueTooLarge-DriveDirectionReverse

This data type is provided for an observation of speed too large for the reverse drive direction. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose speed is being flagged as too large for the reverse drive direction. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
EtsiTs103759MbrCommonObservationsSpeed-ValueTooLarge-ThresholdNoContext

Speed-ValueTooLarge-ThresholdNoContext

This data type is provided for an observation of "speed too large relative to threshold" misbehaviour. The observation is triggered if the speed in a single message is large than a particular threshold. The observation includes the threshold but does not indicate how the threshold was determined.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose speed is being flagged as too large. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
  • threshold
    This is the threshold such that if the speed is over that threshold, the subject message is categorized as misbehaviour. The threshold is encoded in units of meters per second. @note How the threshold is set is out of scope for this specification. It is recommended that implementations default to a threshold of 90 m/s.
EtsiTs103759MbrCommonObservationsSpeed-ValueTooLarge-VehicleType

Speed-ValueTooLarge-VehicleType

This data type is provided for an observation of speed too large for a given vehicle type. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose speed is being flagged as too large for the vehicle type. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
EtsiTs103759MbrCommonObservationsStatic-Change

Static-Change

This data type is provided for an observation of change in static fields. The semantics of the BIT STRING and trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose one or more static fields since the previous PDU is being flagged as changed. The v2xPdus field in that entry must contain at least the subject PDU and the PDU that immediately preceded it. The PDUs may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
ITS-ContainerStationarySince
ITS-ContainerStationaryVehicleSubCauseCode
ITS-ContainerSteeringWheelAngle
ITS-ContainerTemperature
ITS-ContainerTraces
ITS-ContainerTrafficConditionSubCauseCode
ITS-ContainerTrafficRule
ITS-ContainerTransmissionInterval
ITS-ContainerTurningRadius
Ieee1609Dot2BaseTypesUint3

Uint3

This atomic type is used in the definition of other data structures. It is for non-negative integers up to 7, i.e., (hex)07.
Ieee1609Dot2BaseTypesUnknownLatitude

UnknownLatitude

The value 900,000,001 indicates that the latitude was not available to the sender.
Ieee1609Dot2BaseTypesUnknownLongitude

UnknownLongitude

The value 1,800,000,001 indicates that the longitude was not available to the sender.
ITS-ContainerValidityDuration
ITS-ContainerVehicleBreakdownSubCauseCode
ITS-ContainerVehicleIdentification
ITS-ContainerVehicleLength
ITS-ContainerVehicleMass
ITS-ContainerVehicleRole
ITS-ContainerVehicleWidth
ITS-ContainerVerticalAcceleration
ITS-ContainerWheelBaseVehicle
ITS-ContainerWrongWayDrivingSubCauseCode
ITS-ContainerYawRate
+
Type Assignments Table
Type Assignments Table + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Type Assignments
Module nameType nameDescriptionNumber of
incoming
references
Number of
outgoing
references
ITS-ContainerAccelerationConfidence3
ITS-ContainerAccelerationControl
ITS-ContainerAccidentSubCauseCode
ITS-ContainerActionID2
ITS-ContainerAdverseWeatherCondition-AdhesionSubCauseCode
ITS-ContainerAdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode
ITS-ContainerAdverseWeatherCondition-PrecipitationSubCauseCode
ITS-ContainerAdverseWeatherCondition-VisibilitySubCauseCode
Ieee1609Dot2AesCcmCiphertext

AesCcmCiphertext

This data structure encapsulates an encrypted ciphertext for the AES-CCM symmetric algorithm. It contains the following fields:

The ciphertext is 16 bytes longer than the corresponding plaintext.

The plaintext resulting from a correct decryption of the ciphertext is a COER-encoded Ieee1609Dot2Data structure.
  • nonce
    contains the nonce N as specified in 5.3.7.
  • ccmCiphertext
    contains the ciphertext C as specified in 5.3.7.
11
EtsiTs103759AidSpecificReport

AidSpecificReport

This data type is the whole report on issues detected for a specific ITS-AID. This ITS-AID may identify an individual application, or may identify cross-application or non-application-specific misbehaviour cases.
  • aid
    contains the respective ITS-AID.
  • content
    contains the report contents, e.g., AsrCam. This will be a TemplateAsr instantiated with AID-specific Information Object Sets.
12
ITS-ContainerAltitude12
ITS-ContainerAltitudeConfidence1
ITS-ContainerAltitudeValue1
EtsiTs103759AsrAppAgnosticAsrAppAgnostic

AsrAppAgnostic

This data type is defined as NULL for this version of the standard.
1
EtsiTs103759AsrBsmAsrBsm

AsrBsm

This data type is for reporting BSM issues defined by the SCMS Manager.
13
EtsiTs103759AsrCamAsrCam

AsrCam

This data type is for reporting CAM issues.
13
EtsiTs103759AsrDenmAsrDenm

AsrDenm

This data type is defined as NULL for this version of the standard.
1
Ieee1609Dot2BaseTypesBasePublicEncryptionKey

BasePublicEncryptionKey

This structure specifies the bytes of a public encryption key for a particular algorithm. The only algorithm supported is ECIES over either the NIST P256 or the Brainpool P256r1 curve as specified in 5.3.4.
11
EtsiTs103759MbrCommonObservationsBeacon-IntervalTooSmall

Beacon-IntervalTooSmall

This data type is provided for an observation of beacon interval that is too small. This doesn’t apply to repeated PDUs, but only to two distinct PDUs. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose interval since the previous PDU is being flagged as too small. The v2xPdus field in that entry must contain at least the subject PDU and the PDU that immediately preceded it. The PDUs may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
1
Ieee1609Dot2BaseTypesBitmapSsp

BitmapSsp

This structure represents a bitmap representation of a SSP. The mapping of the bits of the bitmap to constraints on the signed SPDU is PSID-specific.

Consistency with issuing certificate.

If a certificate has an appPermissions entry A for which the ssp field is bitmapSsp, A is consistent with the issuing certificate if the issuing certificate contains one of the following:
  • (OPTION 1) A SubjectPermissions field indicating the choice all and no PsidSspRange field containing the psid field in A;
  • (OPTION 2) A PsidSspRange P for which the following holds:
    • The psid field in P is equal to the psid field in A and one of the following is true:
      • EITHER The sspRange field in P indicates all
      • OR The sspRange field in P indicates bitmapSspRange and for every bit set to 1 in the sspBitmask in P, the bit in the identical position in the sspValue in A is set equal to the bit in that position in the sspValue in P.
NOTE: A BitmapSsp B is consistent with a BitmapSspRange R if for every bit set to 1 in the sspBitmask in R, the bit in the identical position in B is set equal to the bit in that position in the sspValue in R. For each bit set to 0 in the sspBitmask in R, the corresponding bit in the identical position in B may be freely set to 0 or 1, i.e., if a bit is set to 0 in the sspBitmask in R, the value of corresponding bit in the identical position in B has no bearing on whether B and R are consistent.
1
Ieee1609Dot2BaseTypesBitmapSspRange

BitmapSspRange

This structure represents a bitmap representation of a SSP. The sspValue indicates permissions. The sspBitmask contains an octet string used to permit or constrain sspValue fields in issued certificates. The sspValue and sspBitmask fields shall be of the same length.

Consistency with issuing certificate.

If a certificate has an PsidSspRange value P for which the sspRange field is bitmapSspRange, P is consistent with the issuing certificate if the issuing certificate contains one of the following:
  • (OPTION 1) A SubjectPermissions field indicating the choice all and no PsidSspRange field containing the psid field in P;
  • (OPTION 2) A PsidSspRange R for which the following holds:
    • The psid field in R is equal to the psid field in P and one of the following is true:
      • EITHER The sspRange field in R indicates all
      • OR The sspRange field in R indicates bitmapSspRange and for every bit set to 1 in the sspBitmask in R:
        • The bit in the identical position in the sspBitmask in P is set equal to 1, AND
        • The bit in the identical position in the sspValue in P is set equal to the bit in that position in the sspValue in R.

Reference ETSI TS 103 097 [B7] for more information on bitmask SSPs.
1
ITS-ContainerCauseCode2
ITS-ContainerCauseCodeType1
ITS-ContainerCenDsrcTollingZone3
ITS-ContainerCenDsrcTollingZoneID11
Ieee1609Dot2Certificate

Certificate

This structure is a profile of the structure CertificateBase which specifies the valid combinations of fields to transmit implicit and explicit certificates.
33
Ieee1609Dot2CertificateBase

CertificateBase

The fields in this structure have the following meaning:

Encoding considerations: When a certificate is encoded for hashing, for example to generate its HashedId8, or when it is to be used as the signer identifier information for verification, it is canonicalized as follows:
  • The encoding of toBeSigned uses the compressed form for all elliptic curve points: that is, those points indicate a choice of compressed-y-0 or compressed-y-1.
  • The encoding of the signature, if present and if an ECDSA signature, takes the r value to be an EccP256CurvePoint or EccP384CurvePoint indicating the choice x-only.


Whole-certificate hash: If the entirety of a certificate is hashed to calculate a HashedId3, HashedId8, or HashedId10, the algorithm used for this purpose is known as the whole-certificate hash.
  • The whole-certificate hash is SHA-256 if the certificate is an implicit certificate.
  • The whole-certificate hash is SHA-256 if the certificate is an explicit certificate and toBeSigned.verifyKeyIndicator.verificationKey is an EccP256CurvePoint.
  • The whole-certificate hash is SHA-384 if the certificate is an explicit certificate and toBeSigned.verifyKeyIndicator.verificationKey is an EccP384CurvePoint.
Parameters:
  • version
    contains the version of the certificate format. In this version of the data structures, this field is set to 3.
  • type
    states whether the certificate is implicit or explicit. This field is set to explicit for explicit certificates and to implicit for implicit certificates. See ExplicitCertificate and ImplicitCertificate for more details.
  • issuer
    identifies the issuer of the certificate.
  • toBeSigned
    is the certificate contents. This field is an input to the hash when generating or verifying signatures for an explicit certificate, or generating or verifying the public key from the reconstruction value for an implicit certificate. The details of how this field are encoded are given in the description of the ToBeSignedCertificate type.
  • signature
    is included in an ExplicitCertificate. It is the signature, calculated by the signer identified in the issuer field, over the hash of toBeSigned. The hash is calculated as specified in 5.3.1, where:
    • Data input is the encoding of toBeSigned following the COER.
    • Signer identifier input depends on the verification type, which in turn depends on the choice indicated by issuer. If the choice indicated by issuer is self, the verification type is self-signed and the signer identifier input is the empty string. If the choice indicated by issuer is not self, the verification type is certificate and the signer identifier input is the canonicalized COER encoding of the certificate indicated by issuer. The canonicalization is carried out as specified in the Encoding considerations section of this subclause.
35
Ieee1609Dot2CertificateId

CertificateId

This structure contains information that is used to identify the certificate holder if necessary.

Critical information fields:
  • If present, this is a critical information field as defined in 5.2.6. An implementation that does not recognize the choice indicated in this field shall reject a signed SPDU as invalid.
Parameters:
  • linkageData
    is used to identify the certificate for revocation purposes in the case of certificates that appear on linked certificate CRLs. See 5.1.3 and 7.3 for further discussion.
  • name
    is used to identify the certificate holder in the case of non-anonymous certificates. The contents of this field are a matter of policy and should be human-readable.
  • binaryId
    supports identifiers that are not human-readable.
  • none
    indicates that the certificate does not include an identifier.
12
Ieee1609Dot2CertificateType

CertificateType

This enumerated type indicates whether a certificate is explicit or implicit.

Critical information fields: If present, this is a critical information field as defined in 5.2.5. An implementation that does not recognize the indicated CHOICE for this type when verifying a signed SPDU shall indicate that the signed SPDU is invalid.
1
Ieee1609Dot2BaseTypesCircularRegion

CircularRegion

This structure specifies a circle with its center at center, its radius given in meters, and located tangential to the reference ellipsoid. The indicated region is all the points on the surface of the reference ellipsoid whose distance to the center point over the reference ellipsoid is less than or equal to the radius. A point which contains an elevation component is considered to be within the circular region if its horizontal projection onto the reference ellipsoid lies within the region.
12
ITS-ContainerClosedLanes2
ITS-ContainerCollisionRiskSubCauseCode
Ieee1609Dot2ContributedExtensionBlock

ContributedExtensionBlock

This data structure defines the format of an extension block provided by an identified contributor by using the temnplate provided in the class IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION constraint to the objects in the set Ieee1609Dot2HeaderInfoContributedExtensions.
  • contributorId
    uniquely identifies the contributor
  • extns
    contains a list of extensions from that contributor.
12
Ieee1609Dot2ContributedExtensionBlocks

ContributedExtensionBlocks

This data structure defines a list of ContributedExtensionBlock
11
Ieee1609Dot2Countersignature

Countersignature

This data structure is used to perform a countersignature over an already-signed SPDU. This is the profile of an Ieee1609Dot2Data containing a signedData. The tbsData within content is composed of a payload containing the hash (extDataHash) of the externally generated, pre-signed SPDU over which the countersignature is performed.
1
Ieee1609Dot2BaseTypesCountryAndRegions

CountryAndRegions

In this structure:
  • countryOnly
    is a CountryOnly as defined above.
  • region
    identifies one or more regions within the country. If countryOnly indicates the United States of America, the values in this field identify the state or statistically equivalent entity using the integer version of the 2010 FIPS codes as provided by the U.S. Census Bureau (see normative references in Clause 2). For other values of countryOnly, the meaning of region is not defined in this version of this standard.
12
Ieee1609Dot2BaseTypesCountryAndSubregions

CountryAndSubregions

In this structure:

Critical information fields:
  • If present, this is a critical information field as defined in 5.2.6. An implementation that does not recognize RegionAndSubregions or CountryAndSubregions values when verifying a signed SPDU shall indicate that the signed SPDU is invalid. A compliant implementation shall support CountryAndSubregions containing at least eight RegionAndSubregions entries.
Parameters:
  • country
    is a CountryOnly as defined above.
  • regionAndSubregions
    identifies one or more subregions within country. If country indicates the United States of America, the values in this field identify the county or county equivalent entity using the integer version of the 2010 FIPS codes as provided by the U.S. Census Bureau (see normative references in Clause 2). For other values of country, the meaning of regionAndSubregions is not defined in this version of this standard.
12
Ieee1609Dot2BaseTypesCountryOnly

CountryOnly

This is the integer representation of the country or area identifier as defined by the United Nations Statistics Division in October 2013 (see normative references in Clause 2).
31
Ieee1609Dot2BaseTypesCrlSeries

CrlSeries

This integer identifies a series of CRLs issued under the authority of a particular CRACA.
21
ITS-ContainerCurvature2
ITS-ContainerCurvatureCalculationMode
ITS-ContainerCurvatureConfidence1
ITS-ContainerCurvatureValue1
ITS-ContainerDangerousEndOfQueueSubCauseCode
ITS-ContainerDangerousGoodsBasic1
ITS-ContainerDangerousGoodsExtended2
ITS-ContainerDangerousSituationSubCauseCode
ITS-ContainerDeltaAltitude1
ITS-ContainerDeltaLatitude1
ITS-ContainerDeltaLongitude1
ITS-ContainerDeltaReferencePosition23
ITS-ContainerDigitalMap1
ITS-ContainerDriveDirection
ITS-ContainerDrivingLaneStatus1
Ieee1609Dot2BaseTypesDuration

Duration

This structure represents the duration of validity of a certificate. The Uint16 value is the duration, given in the units denoted by the indicated choice. A year is considered to be 31556952 seconds, which is the average number of seconds in a year; if it is desired to map years more closely to wall-clock days, this can be done using the hours choice for up to seven years and the sixtyHours choice for up to 448. In this structure:
  • microseconds
    contains the duration in microseconds.
  • milliseconds
    contains the duration in milliseconds.
  • seconds
    contains the duration in seconds.
  • minutes
    contains the duration in minutes.
  • hours
    contains the duration in hours.
  • sixtyHours
    contains the duration in sixty-hour periods.
  • years
    contains the duration in years.
11
Ieee1609Dot2BaseTypesEccP256CurvePoint

EccP256CurvePoint

This structure specifies a point on an elliptic curve in Weierstrass form defined over a 256-bit prime number. This encompasses both NIST p256 as defined in FIPS 186-4 and Brainpool p256r1 as defined in RFC 5639. The fields in this structure are OCTET STRINGS produced with the elliptic curve point encoding and decoding methods defined in subclause 5.5.6 of IEEE Std 1363-2000. The x-coordinate is encoded as an unsigned integer of length 32 octets in network byte order for all values of the CHOICE; the encoding of the y-coordinate y depends on whether the point is x-only, compressed, or uncompressed. If the point is x-only, y is omitted. If the point is compressed, the value of type depends on the least significant bit of y: if the least significant bit of y is 0, type takes the value compressed-y-0, and if the least significant bit of y is 1, type takes the value compressed-y-1. If the point is uncompressed, y is encoded explicitly as an unsigned integer of length 32 octets in network byte order.
5
Ieee1609Dot2BaseTypesEccP384CurvePoint

EccP384CurvePoint

This structure specifies a point on an elliptic curve in Weierstrass form defined over a 384-bit prime number. The only supported such curve in this standard is Brainpool p384r1 as defined in RFC 5639. The fields in this structure are OCTET STRINGS produced with the elliptic curve point encoding and decoding methods defined in subclause 5.5.6 of IEEE Std 1363-2000. The x-coordinate is encoded as an unsigned integer of length 48 octets in network byte order for all values of the CHOICE; the encoding of the y-coordinate y depends on whether the point is x-only, compressed, or uncompressed. If the point is x-only, y is omitted. If the point is compressed, the value of type depends on the least significant bit of y: if the least significant bit of y is 0, type takes the value compressed-y-0, and if the least significant bit of y is 1, type takes the value compressed-y-1. If the point is uncompressed, y is encoded explicitly as an unsigned integer of length 48 octets in network byte order.
2
Ieee1609Dot2BaseTypesEcdsaP256Signature

EcdsaP256Signature

This structure represents an ECDSA signature. The signature is generated as specified in 5.3.1.

If the signature process followed the specification of FIPS 186-4 and output the integer r, r is represented as an EccP256CurvePoint indicating the selection x-only.

If the signature process followed the specification of SEC 1 and output the elliptic curve point R to allow for fast verification, R is represented as an EccP256CurvePoint indicating the choice compressed-y-0, compressed-y-1, or uncompressed at the sender’s discretion.

Encoding considerations: If this structure is encoded for hashing, the EccP256CurvePoint in rSig shall be taken to be of form x-only.

NOTE: When the signature is of form x-only, the x-value in rSig is an integer mod n, the order of the group; when the signature is of form compressed-y-*, the x-value in rSig is an integer mod p, the underlying prime defining the finite field. In principle this means that to convert a signature from form compressed-y-* to form x-only, the x-value should be checked to see if it lies between n and p and reduced mod n if so. In practice this check is unnecessary: Haase’s Theorem states that difference between n and p is always less than 2*square-root(p), and so the chance that an integer lies between n and p, for a 256-bit curve, is bounded above by approximately square-root(p)/p or 2^(−128). For the 256-bit curves in this standard, the exact values of n and p in hexadecimal are:

NISTp256:
  • p = FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF
  • n = FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551
Brainpoolp256:
  • p = A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F6E5377
  • n = A9FB57DBA1EEA9BC3E660A909D838D718C397AA3B561A6F7901E0E82974856A7
11
Ieee1609Dot2BaseTypesEcdsaP384Signature

EcdsaP384Signature

This structure represents an ECDSA signature. The signature is generated as specified in 5.3.1.

If the signature process followed the specification of FIPS 186-4 and output the integer r, r is represented as an EccP384CurvePoint indicating the selection x-only.

If the signature process followed the specification of SEC 1 and output the elliptic curve point R to allow for fast verification, R is represented as an EccP384CurvePoint indicating the choice compressed-y-0, compressed-y-1, or uncompressed at the sender’s discretion.

Encoding considerations: If this structure is encoded for hashing, the EccP256CurvePoint in rSig shall be taken to be of form x-only.

NOTE: When the signature is of form x-only, the x-value in rSig is an integer mod n, the order of the group; when the signature is of form compressed-y-*, the x-value in rSig is an integer mod p, the underlying prime defining the finite field. In principle this means that to convert a signature from form compressed-y-* to form x-only, the x-value should be checked to see if it lies between n and p and reduced mod n if so. In practice this check is unnecessary: Haase’s Theorem states that difference between n and p is always less than 2*square-root(p), and so the chance that an integer lies between n and p, for a 384-bit curve, is bounded above by approximately square-root(p)/p or 2^(−192). For the 384-bit curve in this standard, the exact values of n and p in hexadecimal are:
  • p = 8CB91E82A3386D280F5D6F7E50E641DF152F7109ED5456B412B1DA197FB71123 ACD3A729901D1A71874700133107EC53
  • n = 8CB91E82A3386D280F5D6F7E50E641DF152F7109ED5456B31F166E6CAC0425A7 CF3AB6AF6B7FC3103B883202E9046565
11
Ieee1609Dot2BaseTypesEciesP256EncryptedKey

EciesP256EncryptedKey

This data structure is used to transfer a 16-byte symmetric key encrypted using ECIES as specified in IEEE Std 1363a-2004.

Encryption and decryption are carried out as specified in 5.3.4.

Parameters:
  • v
    is the sender’s ephemeral public key, which is the output V from encryption as specified in 5.3.4.
  • c
    is the encrypted symmetric key, which is the output C from encryption as specified in 5.3.4. The algorithm for the symmetric key is identified by the CHOICE indicated in the following SymmetricCiphertext.
  • t
    is the authentication tag, which is the output tag from encryption as specified in 5.3.4.
11
Ieee1609Dot2BaseTypesElevation

Elevation

This structure contains an estimate of the geodetic altitude above or below the WGS84 ellipsoid. The 16-bit value is interpreted as an integer number of decimeters representing the height above a minimum height of −409.5 m, with the maximum height being 6143.9 m.
11
ITS-ContainerEmbarkationStatus
ITS-ContainerEmergencyPriority
ITS-ContainerEmergencyVehicleApproachingSubCauseCode
Ieee1609Dot2EncryptedData

EncryptedData

This data structure encodes data that has been encrypted to one or more recipients using the recipients’ public or symmetric keys as specified in 1.1.1.

Critical information fields:
  • If present, recipients is a critical information field as defined in 5.2.6. An implementation that does not support the number of RecipientInfo in recipients when decrypted shall indicate that the encrypted SPDU could not be decrypted due to unsupported critical information fields. A compliant implementation shall support recipients fields containing at least eight entries.
Parameters:
  • recipients
    contains one or more RecipientInfos. These entries may be more than one RecipientInfo, and more than one type of RecipientInfo, as long as they are all indicating or containing the same data encryption key.
  • ciphertext
    contains the encrypted data. This is the encryption of an encoded Ieee1609Dot2Data structure as specified in 5.3.4.2.
12
Ieee1609Dot2EncryptedDataEncryptionKey

EncryptedDataEncryptionKey

This data structure contains an encrypted data encryption key.

Critical information fields: If present and applicable to the receiving SDEE, this is a critical information field as defined in 5.2.6. If an implementation receives an encrypted SPDU and determines that one or more RecipientInfo fields are relevant to it, and if all of those RecipientInfos contain an EncryptedDataEncryptionKey such that the implementation does not recognize the indicated CHOICE, the implementation shall indicate that the encrypted SPDU is not decryptable.
11
Ieee1609Dot2BaseTypesEncryptionKey

EncryptionKey

This structure contains an encryption key, which may be a public or a symmetric key.
12
Ieee1609Dot2EndEntityType

EndEntityType

This type indicates which type of permissions may appear in end-entity certificates the chain of whose permissions passes through the PsidGroupPermissions field containing this value. If app is indicated, the end-entity certificate may contain an appPermissions field. If enroll is indicated, the end-entity certificate may contain a certRequestPermissions field.
1
ITS-ContainerEnergyStorageType
ITS-ContainerEventHistory1
ITS-ContainerEventPoint13
Ieee1609Dot2ExplicitCertificate

ExplicitCertificate

This is a profile of the CertificateBase structure providing all the fields necessary for an explicit certificate, and no others.
11
ITS-ContainerExteriorLights
Ieee1609Dot2BaseTypesGeographicRegion

GeographicRegion

This structure represents a geographic region of a specified form. A certificate is not valid if any part of the region indicated in its scope field lies outside the region indicated in the scope of its issuer.

Critical information fields:
  • If present, this is a critical information field as defined in 5.2.6. An implementation that does not recognize the indicated CHOICE when verifying a signed SPDU shall indicate that the signed SPDU is invalid.
  • If selected, rectangularRegion is a critical information field as defined in 5.2.6. An implementation that does not support the number of RectangularRegion in rectangularRegions when verifying a signed SPDU shall indicate that the signed SPDU is invalid. A compliant implementation shall support rectangularRegions fields containing at least eight entries.
  • If selected, identifiedRegion is a critical information field as defined in 5.2.6. An implementation that does not support the number of IdentifiedRegion in identifiedRegion shall reject the signed SPDU as invalid. A compliant implementation shall support identifiedRegion fields containing at least eight entries.
Parameters:
  • circularRegion
    contains a single instance of the CircularRegion structure.
  • rectangularRegion
    is an array of RectangularRegion structures containing at least one entry. This field is interpreted as a series of rectangles, which may overlap or be disjoint. The permitted region is any point within any of the rectangles.
  • polygonalRegion
    contains a single instance of the PolygonalRegion structure.
  • identifiedRegion
    is an array of IdentifiedRegion structures containing at least one entry. The permitted region is any point within any of the identified regions.
14
Ieee1609Dot2BaseTypesGroupLinkageValue

GroupLinkageValue

This is the group linkage value. See 5.1.3 and 7.3 for details of use.
1
ITS-ContainerHardShoulderStatus1
Ieee1609Dot2BaseTypesHashAlgorithm

HashAlgorithm

This structure identifies a hash algorithm. The value is sha256, indicates SHA-256 as specified in 5.3.3. The value sha384 indicates SHA-384 as specified in 5.3.3.

Critical information fields: This is a critical information field as defined in 5.2.6. An implementation that does not recognize the enumerated value of this type in a signed SPDU when verifying a signed SPDU shall indicate that the signed SPDU is invalid.
2
Ieee1609Dot2HashedData

HashedData

This structure contains the hash of some data with a specified hash algorithm. The hash algorithms supported in this version of this standard are SHA-256 (in the root) and SHA-384 (in the first extension). The reserved extension is for future use.

Critical information fields: If present, this is a critical information field as defined in 5.2.6. An implementation that does not recognize the indicated CHOICE for this type when verifying a signed SPDU shall indicate that the signed SPDU is invalid.
1
Ieee1609Dot2BaseTypesHashedId10

HashedId10

This type contains the truncated hash of another data structure. The HashedId10 for a given data structure is calculated by calculating the hash of the encoded data structure and taking the low-order ten bytes of the hash output. If the data structure is subject to canonicalization it is canonicalized before hashing. The low-order ten bytes are the last ten bytes of the hash when represented in network byte order. See Example below.

The hash algorithm to be used to calculate a HashedId10 within a structure depends on the context. In this standard, for each structure that includes a HashedId10 field, the corresponding text indicates how the hash algorithm is determined.

Example: Consider the SHA-256 hash of the empty string:
SHA-256("") = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

The HashedId10 derived from this hash corresponds to the following:
HashedId10 = 934ca495991b7852b855.
Ieee1609Dot2BaseTypesHashedId3

HashedId3

This type contains the truncated hash of another data structure. The HashedId3 for a given data structure is calculated by calculating the hash of the encoded data structure and taking the low-order three bytes of the hash output. If the data structure is subject to canonicalization it is canonicalized before hashing. The low-order three bytes are the last three bytes of the hash when represented in network byte order. See Example below.

Example: Consider the SHA-256 hash of the empty string:
SHA-256("") = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

The HashedId3 derived from this hash corresponds to the following:
HashedId3 = 52b855.
4
Ieee1609Dot2BaseTypesHashedId32

HashedId32

This type contains the truncated hash of another data structure. The HashedId32 for a given data structure is calculated by calculating the hash of the encoded data structure and taking the low-order thirty two bytes of the hash output. If the data structure is subject to canonicalization it is canonicalized before hashing. The low-order thirty two bytes are the last thirty two bytes of the hash when represented in network byte order. See Example below.

The hash algorithm to be used to calculate a HashedId32 within a structure depends on the context. In this standard, for each structure that includes a HashedId32 field, the corresponding text indicates how the hash algorithm is determined.

Example: Consider the SHA-256 hash of the empty string:
SHA-256("") = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

The HashedId32 derived from this hash corresponds to the following:
HashedId32 = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.
Ieee1609Dot2BaseTypesHashedId8

HashedId8

This type contains the truncated hash of another data structure. The HashedId8 for a given data structure is calculated by calculating the hash of the encoded data structure and taking the low-order eight bytes of the hash output. If the data structure is subject to canonicalization it is canonicalized before hashing. The low-order eight bytes are the last eight bytes of the hash when represented in network byte order. See Example below.

The hash algorithm to be used to calculate a HashedId8 within a structure depends on the context. In this standard, for each structure that includes a HashedId8 field, the corresponding text indicates how the hash algorithm is determined.

Example: Consider the SHA-256 hash of the empty string:
SHA-256("") = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

The HashedId8 derived from this hash corresponds to the following:
HashedId8 = a495991b7852b855.
5
ITS-ContainerHazardousLocation-AnimalOnTheRoadSubCauseCode
ITS-ContainerHazardousLocation-DangerousCurveSubCauseCode
ITS-ContainerHazardousLocation-ObstacleOnTheRoadSubCauseCode
ITS-ContainerHazardousLocation-SurfaceConditionSubCauseCode
Ieee1609Dot2HeaderInfo

HeaderInfo

This structure contains information that is used to establish validity by the criteria of 5.2.

Encoding considerations: When the structure is encoded in order to be digested to generate or check a signature, if encryptionKey is present, and indicates the choice public, and contains a BasePublicEncryptionKey that is an elliptic curve point (i.e., of typeEccP256CurvePoint or EccP384CurvePoint), then the elliptic curve point is encoded in compressed form, i.e., such that the choice indicated within the Ecc*CurvePoint is compressed-y-0 or compressed-y-1.

Parameters:
  • psid
    indicates the application area with which the sender is claiming the payload should be associated.
  • generationTime
    indicates the time at which the structure was generated. See 5.2.5.2.2 and 5.2.5.2.3 for discussion of the use of this field.
  • expiryTime,
    if present, contains the time after which the data should no longer be considered relevant. If both generationTime and expiryTime are present, the signed SPDU is invalid if generationTime is not strictly earlier than expiryTime.
  • generationLocation,
    if present, contains the location at which the signature was generated.
  • p2pcdLearningRequest,
    if present, is used by the SDS to request certificates for which it has seen identifiers but does not know the entire certificate. A specification of this peer-to-peer certificate distribution (P2PCD) mechanism is given in Clause 8. This field is used for the out-of-band flavor of P2PCD and shall only be present if inlineP2pcdRequest is not present. The HashedId3 is calculated with the whole-certificate hash algorithm, determined as described in 6.4.3.
  • missingCrlIdentifier,
    if present, is used by the SDS to request CRLs which it knows to have been issued but have not received. This is provided for future use and the associated mechanism is not defined in this version of this standard.
  • encryptionKey,
    if present, is used to indicate that a further communication should be encrypted with the indicated key. One possible use of this key to encrypt a response is specified in 6.3.35, 6.3.37, and 6.3.34. An encryptionKey field of type symmetric should only be used if the Signed¬Data containing this field is securely encrypted by some means.
  • inlineP2pcdRequest,
    if present, is used by the SDS to request unknown certificates per the inline peer-to-peer certificate distribution mechanism is given in Clause 8. This field shall only be present if p2pcdLearningRequest is not present. The HashedId3 is calculated with the whole-certificate hash algorithm, determined as described in 6.4.3.
  • requestedCertificate,
    if present, is used by the SDS to provide certificates per the “inline� version of the peer-to-peer certificate distribution mechanism given in Clause 8.
  • pduFunctionalType,
    if present, is used to indicate that the SPDU is to be consumed by a process other than an application process as defined in ISO 21177 [B14a]. See 6.3.23b for more details.
  • contributedExtensions,
    if present, is used to provide extension blocks defined by identified contributing organizations.
110
Ieee1609Dot2HeaderInfoContributorId

HeaderInfoContributorId

This data structure defines the header info contributor id type and its values.
  • In
    this version of the standard, value 2 is assigned to ETSI.
2
ITS-ContainerHeading2
ITS-ContainerHeadingConfidence1
ITS-ContainerHeadingValue2
ITS-ContainerHeightLonCarr
Ieee1609Dot2BaseTypesHostname

Hostname

This is a UTF-8 string as defined in IETF RFC 3629. The contents are determined by policy.
1
ITS-ContainerHumanPresenceOnTheRoadSubCauseCode
ITS-ContainerHumanProblemSubCauseCode
EtsiTs103759AsrBsmIdBsmTgt61
EtsiTs103759AsrCamIdCamTgt61
Ieee1609Dot2BaseTypesIdentifiedRegion

IdentifiedRegion

This structure indicates the region of validity of a certificate using region identifiers.

Critical information fields:
  • If present, this is a critical information field as defined in 5.2.6. An implementation that does not recognize the indicated CHOICE when verifying a signed SPDU shall indicate that the signed SPDU is invalid.
13
EtsiTs103759MbrCommonObservationsIdMbObs

IdMbObs

Identifier type for observations: synonym for Uint8
191
EtsiTs103759IdObsPdu

IdObsPdu

This data type contains the identifier of the type of observed PDU.
31
Ieee1609Dot2Ieee1609Dot2Content

Ieee1609Dot2Content

In this structure:
  • unsecuredData
    indicates that the content is an OCTET STRING to be consumed outside the SDS.
  • signedData
    indicates that the content has been signed according to this standard.
  • encryptedData
    indicates that the content has been encrypted according to this standard.
  • signedCertificateRequest
    indicates that the content is a certificate request. Further specification of certificate requests is not provided in this version of this standard.
13
Ieee1609Dot2Ieee1609Dot2Data

Ieee1609Dot2Data

This data type is used to contain the other data types in this clause. The fields in the Ieee1609Dot2Data have the following meanings:
  • protocolVersion
    contains the current version of the protocol. The version specified in this document is version 3, represented by the integer 3. There are no major or minor version numbers.
  • content
    contains the content in the form of an Ieee1609Dot2Content.
22
Ieee1609Dot2ImplicitCertificate

ImplicitCertificate

This is a profile of the CertificateBase structure providing all the fields necessary for an implicit certificate, and no others.
11
ITS-ContainerInformationQuality1
Ieee1609Dot2IssuerIdentifier

IssuerIdentifier

This structure allows the recipient of a certificate to determine which keying material to use to authenticate the certificate.

If the choice indicated is sha256AndDigest or sha384AndDigest:
  • The structure contains the HashedId8 of the issuing certificate, where the certificate is canonicalized as specified in 6.4.3 before hashing and the HashedId8 is calculated with the whole-certificate hash algorithm, determined as described in 6.4.3.
  • The hash algorithm to be used to generate the hash of the certificate for verification is SHA-256 (in the case of sha256AndDigest) or SHA-384 (in the case of sha384AndDigest).
  • The certificate is to be verified with the public key of the indicated issuing certificate.
If the choice indicated is self:
  • The structure indicates what hash algorithm is to be used to generate the hash of the certificate for verification.
  • The certificate is to be verified with the public key indicated by the verifyKeyIndicator field in theToBeSignedCertificate.


Critical information fields: If present, this is a critical information field as defined in 5.2.5. An implementation that does not recognize the indicated CHOICE for this type when verifying a signed SPDU shall indicate that the signed SPDU is invalid.
12
ITS-ContainerItineraryPath1
ITS-ContainerItsPduHeader1
Ieee1609Dot2BaseTypesIValue

IValue

This atomic type is used in the definition of other data structures.
11
Ieee1609Dot2BaseTypesKnownLatitude

KnownLatitude

The known latitudes are from -900,000,000 to +900,000,000 in 0.1 microdegree intervals.
1
Ieee1609Dot2BaseTypesKnownLongitude

KnownLongitude

The known longitudes are from -1,799,999,999 to +1,800,000,000 in 0.1 microdegree intervals.
1
Ieee1609Dot2BaseTypesLaId

LaId

This structure contains a LA Identifier for use in the algorithms specified in 5.1.3.4.
ITS-ContainerLanePosition
ITS-ContainerLateralAcceleration2
ITS-ContainerLateralAccelerationValue1
Ieee1609Dot2BaseTypesLatitude

Latitude

This type contains an INTEGER encoding an estimate of the latitude with precision 1/10th microdegree relative to the World Geodetic System (WGS)-84 datum as defined in NIMA Technical Report TR8350.2.
21
ITS-ContainerLatitude3
ITS-ContainerLightBarSirenInUse
Ieee1609Dot2LinkageData

LinkageData

This structure contains information that is matched against information obtained from a linkage ID-based CRL to determine whether the containing certificate has been revoked. See 5.1.3.4 and 7.3 for details of use.
13
Ieee1609Dot2BaseTypesLinkageSeed

LinkageSeed

This structure contains a linkage seed value for use in the algorithms specified in 5.1.3.4.
Ieee1609Dot2BaseTypesLinkageValue

LinkageValue

This is the individual linkage value. See 5.1.3 and 7.3 for details of use.
1
EtsiTs103759MbrCommonObservationsLongAcc-Implausible-Brake

LongAcc-Implausible-Brake

This data type is provided for an observation of "acceleration inconsistent with braking" misbehaviour. The observation is triggered if in a single message it is indicated that the brakes are being applied but the acceleration is positive.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU with brakes applied but positive acceleration. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
1
EtsiTs103759MbrCommonObservationsLongAcc-ValueTooLarge

LongAcc-ValueTooLarge

This data type is provided for an observation of longitudinal acceleration that is too large. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose longitudinal acceleration is being flagged as too large. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
1
EtsiTs103759MbrCommonObservationsLongAcc-ValueTooLarge-ThresholdNoContext

LongAcc-ValueTooLarge-ThresholdNoContext

This data type is provided for an observation of "(absolute) longitudinal acceleration too large relative to threshold" misbehaviour. The observation is triggered if the absolute value of the longitudinal acceleration in a single PDU is larger than a particular threshold. The observation includes the threshold but does not indicate how the threshold was determined.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose (absolute) longitudinal acceleration is being flagged as too large. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
  • threshold
    This is the threshold such that if the absolute value of acceleration is over that threshold, the subject message is categorized as misbehaviour. The threshold is encoded in units of 0.01 m/s^2. @note How the threshold is set is out of scope for this specification. It is recommended that implementations default to a threshold of 10 m/s^2.
11
Ieee1609Dot2BaseTypesLongitude

Longitude

This type contains an INTEGER encoding an estimate of the longitude with precision 1/10th microdegree relative to the World Geodetic System (WGS)-84 datum as defined in NIMA Technical Report TR8350.2.
21
ITS-ContainerLongitude3
ITS-ContainerLongitudinalAcceleration2
ITS-ContainerLongitudinalAccelerationValue1
EtsiTs103759Mbr

Mbr

This data type is the general PDU for a misbehaviour report from an ITS-S to the MA responsible for reports of that type.
  • version
    contains the version number of this PDU definition. For this version of this data type it shall be equal to 2.
  • generationTime
    contains information on when this PDU was generated.
  • observationLocation
    is the location at which the last observation of a V2X PDU was made before the decision was taken to generate a report.
  • report
    contains the AID-specific misbehaviour report.
4
Ieee1609Dot2MissingCrlIdentifier

MissingCrlIdentifier

This structure may be used to request a CRL that the SSME knows to have been issued but has not yet received. It is provided for future use and its use is not defined in this version of this standard.
  • cracaId
    is the HashedId3 of the CRACA, as defined in 5.1.3. The HashedId3 is calculated with the whole-certificate hash algorithm, determined as described in 6.4.3.
  • crlSeries
    is the requested CRL Series value. See 5.1.3 for more information.
12
Ieee1609Dot2BaseTypesNinetyDegreeInt

NinetyDegreeInt

The integer in the latitude field is no more than 900,000,000 and no less than −900,000,000, except that the value 900,000,001 is used to indicate the latitude was not available to the sender.
3
ITS-ContainerNumberOfOccupants
EtsiTs103759ObsPduEtsiGn

ObsPduEtsiGn

ObsPduEtsiGn contains an ETSI geonetworking PDU, i.e., the first byte of every PDU in the v2xPdus array is the first byte of the geonetworking Basic Header.
11
EtsiTs103759ObsPduIeee1609Dot2Data

ObsPduIeee1609Dot2Data

  • ObsPduIeee1609Dot2Data
    contains an Ieee1609Dot2Data, i.e., the first byte of every PDU in the v2xPdus array is the version byte of the Ieee1609Dot2Data.
11
EtsiTs103759ObsPduWsmp

ObsPduWsmp

  • ObsPduWsmp
    contains a WAVE Short Messaging Protocol PDU, i.e., the first byte of every PDU in the v2xPdus array is the first byte of the WSMP N-Header.
11
Ieee1609Dot2BaseTypesOneEightyDegreeInt

OneEightyDegreeInt

The integer in the longitude field is no more than 1,800,000,000 and no less than −1,799,999,999, except that the value 1,800,000,001 is used to indicate that the longitude was not available to the sender.
3
Ieee1609Dot2BaseTypesOpaque

Opaque

This is a synonym for ASN.1 OCTET STRING, and is used in the definition of other data structures.
5
ITS-ContainerOpeningDaysHours
ITS-ContainerPathDeltaTime2
ITS-ContainerPathHistory11
ITS-ContainerPathPoint12
Ieee1609Dot2PduFunctionalType

PduFunctionalType

This data structure identifies the functional entity that is intended to consume an SPDU, for the case where that functional entity is not an application process but security support services for an application process. Further details and the intended use of this field are defined in ISO 21177 [B14a].

An SPDU in which the pduFunctionalType field is present conforms to the security profile for that PduFunctionalType value (given in ISO 21177 [B14a]), not to the security profile for Application SPDUs for the PSID.
  • tlsHandshake
    indicates that the Signed SPDU is not to be directly consumed as an application PDU but is to be used to provide information about the holder’s permissions to a Transport Layer Security (TLS) (IETF 5246 [B13], IETF 8446 [B13a]) handshake process operating to secure communications to an application process. See IETF [B13b] and ISO 21177 [B14a] for further information.
  • iso21177ExtendedAuth
    indicates that the Signed SPDU is not to be directly consumed as an application PDU but is to be used to provide additional information about the holder’s permissions to the ISO 21177 Security Subsystem for an application process. See ISO 21177 [B14a] for further information.
3
ITS-ContainerPerformanceClass
ITS-ContainerPhoneNumber1
Ieee1609Dot2PKRecipientInfo

PKRecipientInfo

This data structure contains the following fields:
  • recipientId
    contains the hash of the container for the encryption public key as specified in the definition of RecipientInfo. Specifically, depending on the choice indicated by the containing RecipientInfo structure:
    • If the containing RecipientInfo structure indicates certRecipInfo, this field contains the HashedId8 of the certificate. The HashedId8 is calculated with the whole-certificate hash algorithm, determined as described in 6.4.3.
    • If the containing RecipientInfo structure indicates signedDataRecipInfo, this field contains the HashedId8 of the Ieee1609Dot2Data of type signed that contained the encryption key, with that Ieee1609Dot2Data canonicalized per 6.3.4. The HashedId8 is calculated with SHA-256.
    • If the containing RecipientInfo structure indicates rekRecipInfo, this field contains the HashedId8 of the COER encoding of a PublicEncryptionKey structure containing the response encryption key. The HashedId8 is calculated with SHA-256.
  • encKey
    contains the encrypted key.
12
Ieee1609Dot2BaseTypesPolygonalRegion

PolygonalRegion

This structure defines a region using a series of distinct geographic points, defined on the surface of the reference ellipsoid. The region is specified by connecting the points in the order they appear, with each pair of points connected by the geodesic on the reference ellipsoid. The polygon is completed by connecting the final point to the first point. The allowed region is the interior of the polygon and its boundary.

A point which contains an elevation component is considered to be within the polygonal region if its horizontal projection onto the reference ellipsoid lies within the region.

A valid PolygonalRegion contains at least three points. In a valid PolygonalRegion, the implied lines that make up the sides of the polygon do not intersect.

Critical information fields:
  • If present, this is a critical information field as defined in 5.2.6. An implementation that does not support the number of TwoDLocation in the PolygonalRegion when verifying a signed SPDU shall indicate that the signed SPDU is invalid. A compliant implementation shall support PolygonalRegions containing at least eight TwoDLocation entries.
11
ITS-ContainerPosCentMass
ITS-ContainerPosConfidenceEllipse12
ITS-ContainerPosFrontAx
EtsiTs103759MbrCommonObservationsPos-IncWithPrev-TooFar

Pos-IncWithPrev-TooFar

This data type is provided for an observation of "implausible random position" misbehaviour. The observation is triggered if two consecutive messages are inconsistent, i.e. if [(position in the first) + (velocity in the first)*(time between)] differs from (position in the second) by more than the gpsDrift.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose position is being flagged as inconsistent with the previous PDU. The v2xPdus field in that entry must contain at least the subject PDU and the PDU that immediately preceded it. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
  • gpsDrift
    This is the maximum amount of difference in position between two messages, sent 0.1 seconds apart, that the reporter believes can be explained by GPS drift. This quantity MAY be 0. The units of this quantity are thousandths of a meter.
11
EtsiTs103759MbrCommonObservationsPos-IncWithPrev-TooSmall

Pos-IncWithPrev-TooSmall

This data type is provided for an observation of "implausible constant position" misbehaviour. The observation is triggered if in two consecutive messages the speed is non-zero and the position change is 0.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose position is being flagged as inconsistent with the previous PDU. The v2xPdus field in that entry must contain at least the subject PDU and the PDU that immediately preceded it. The PDUs may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
1
EtsiTs103759MbrCommonObservationsPosition-ChangeTooLarge

Position-ChangeTooLarge

This data type is provided for an observation of change in position that is too large. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose position is being flagged as inconsistent with the previous PDU. The v2xPdus field in that entry must contain at least the subject PDU and the PDU that immediately preceded it. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
1
ITS-ContainerPositioningSolutionType
ITS-ContainerPositionOfOccupants
ITS-ContainerPositionOfPillars1
ITS-ContainerPosLonCarr
ITS-ContainerPosPillar1
ITS-ContainerPostCrashSubCauseCode
Ieee1609Dot2PreSharedKeyRecipientInfo

PreSharedKeyRecipientInfo

This data structure is used to indicate a symmetric key that may be used directly to decrypt a SymmetricCiphertext. It consists of the low-order 8 bytes of the SHA-256 hash of the COER encoding of a SymmetricEncryptionKey structure containing the symmetric key in question. The symmetric key may be established by any appropriate means agreed by the two parties to the exchange.
11
ITS-ContainerProtectedCommunicationZone16
ITS-ContainerProtectedCommunicationZonesRSU1
ITS-ContainerProtectedZoneID2
ITS-ContainerProtectedZoneRadius1
ITS-ContainerProtectedZoneType1
Ieee1609Dot2BaseTypesPsid

Psid

This type represents the PSID defined in IEEE Std 1609.12.
9
Ieee1609Dot2PsidGroupPermissions

PsidGroupPermissions

This structure states the permissions that a certificate holder has with respect to issuing and requesting certificates for a particular set of PSIDs. In this structure:

For examples, see D.5.3 and D.5.4.
  • subjectPermissions
    indicates PSIDs and SSP Ranges covered by this field.
  • minChainLength
    and chainLengthRange indicate how long the certificate chain from this certificate to the end-entity certificate is permitted to be. As specified in 5.1.2.1, the length of the certificate chain is the number of certificates "below" this certificate in the chain, down to and including the end-entity certificate. The length is permitted to be (a) greater than or equal to minChainLength certificates and (b) less than or equal to minChainLength + chainLengthRange certificates. A value of 0 for minChainLength is not permitted when this type appears in the certIssuePermissions field of a ToBeSignedCertificate; a certificate that has a value of 0 for this field is invalid. The value −1 for chainLengthRange is a special case: if the value of chainLengthRange is −1 it indicates that the certificate chain may be any length equal to or greater than minChainLength. See the examples below for further discussion.
  • eeType
    takes one or more of the values app and enroll and indicates the type of certificates or requests that this instance of PsidGroupPermissions in the certificate is entitled to authorize. If this field indicates app, the chain is allowed to end in an authorization certificate, i.e., a certficate in which these permissions appear in an appPermissions field (in other words, if the field does not indicate app but the chain ends in an authorization certificate, the chain shall be considered invalid). If this field indicates enroll, the chain is allowed to end in an enrollment certificate, i.e., a certificate in which these permissions appear in a certReqPermissions permissions field), or both (in other words, if the field does not indicate app but the chain ends in an authorization certificate, the chain shall be considered invalid). Different instances of PsidGroupPermissions within a ToBeSignedCertificate may have different values for eeType.
12
Ieee1609Dot2BaseTypesPsidSsp

PsidSsp

This structure represents the permissions that the certificate holder has with respect to data for a single application area, identified by a Psid. If the ServiceSpecificPermissions field is omitted, it indicates that the certificate holder has the default permissions associated with that Psid.

Consistency with signed SPDU. As noted in 5.1.1, consistency between the SSP and the signed SPDU is defined by rules specific to the given PSID and is out of scope for this standard.

Consistency with issuing certificate.

If a certificate has an appPermissions entry A for which the ssp field is omitted, A is consistent with the issuing certificate if the issuing certificate contains a PsidSspRange P for which the following holds:
  • The psid field in P is equal to the psid field in A and one of the following is true:
    • The sspRange field in P indicates all.
    • The sspRange field in P indicates opaque and one of the entries in opaque is an OCTET STRING of length 0.
For consistency rules for other forms of the ssp field, see the following subclauses.
12
Ieee1609Dot2BaseTypesPsidSspRange

PsidSspRange

This structure represents the certificate issuing or requesting permissions of the certificate holder with respect to one particular set of application permissions.
  • psid
    identifies the application area.
  • sspRange
    identifies the SSPs associated with that PSID for which the holder may issue or request certificates. If sspRange is omitted, the holder may issue or request certificates for any SSP for that PSID.
12
ITS-ContainerPtActivation2
ITS-ContainerPtActivationData1
ITS-ContainerPtActivationType1
Ieee1609Dot2BaseTypesPublicEncryptionKey

PublicEncryptionKey

This structure specifies a public encryption key and the associated symmetric algorithm which is used for bulk data encryption when encrypting for that public key.
22
Ieee1609Dot2BaseTypesPublicVerificationKey

PublicVerificationKey

This structure represents a public key and states with what algorithm the public key is to be used. Cryptographic mechanisms are defined in 5.3.

An EccP256CurvePoint or EccP384CurvePoint within a PublicVerificationKey structure is invalid if it indicates the choice x-only.

Critical information fields: If present, this is a critical information field as defined in 5.2.6. An implementation that does not recognize the indicated CHOICE when verifying a signed SPDU shall indicate that the signed SPDU is invalid.
12
Ieee1609Dot2RecipientInfo

RecipientInfo

This data structure is used to transfer the data encryption key to an individual recipient of an EncryptedData. The option pskRecipInfo is selected if the EncryptedData was encrypted using the static encryption key approach specified in 1.1.1.1. The other options are selected if the EncryptedData was encrypted using the ephemeral encryption key approach specified in 1.1.1.1. The meanings of the choices are:

See Annex C.7 for guidance on when it may be appropriate to use each of these approaches.
  • pskRecipInfo:
    The ciphertext was encrypted directly using a symmetric key.
  • symmRecipInfo:
    The data encryption key was encrypted using a symmetric key.
  • certRecipInfo:
    The data encryption key was encrypted using a public key encryption scheme, where the public encryption key was obtained from a certificate. In this case, the parameter P1 to ECIES as defined in 5.3.4 is the hash of the certificate.
  • signedDataRecipInfo:
    The data encryption key was encrypted using a public encryption key, where the encryption key was obtained as the public response encryption key from a Signed-Data. In this case, the parameter P1 to ECIES as defined in 5.3.4 is the SHA-256 hash of the Ieee1609Dot2Data containing the response encryption key.
  • rekRecipInfo:
    The data encryption key was encrypted using a public key that was not obtained from a Signed¬Data. In this case, the parameter P1 to ECIES as defined in 5.3.4 is the hash of the empty string.
13
Ieee1609Dot2BaseTypesRectangularRegion

RectangularRegion

This structure specifies a rectangle formed by connecting in sequence: (northWest.latitude, northWest.longitude), (southEast.latitude, northWest.longitude), (southEast.latitude, southEast.longitude), and (northWest.latitude, southEast.longitude). The points are connected by lines of constant latitude or longitude. A point which contains an elevation component is considered to be within the rectangular region if its horizontal projection onto the reference ellipsoid lies within the region. A RectangularRegion is valid only if the northWest value is north and west of the southEast value, i.e., the two points cannot have equal latitude or equal longitude.
11
ITS-ContainerReferencePosition24
Ieee1609Dot2BaseTypesRegionAndSubregions

RegionAndSubregions

In this structure:

Critical information fields:
  • RegionAndSubregions is a critical information field as defined in 5.2.5. An implementation that does not detect or recognize the the region or subregions values when verifying a signed SPDU shall indicate that the signed SPDU is invalid.
Parameters:
  • region
    identifies a region within a country as specified under CountryAndRegions.
  • subregions
    identifies one or more subregions as specified under CountryAndSubregions.
12
ITS-ContainerRelevanceDistance
ITS-ContainerRelevanceTrafficDirection
ITS-ContainerRequestResponseIndication
ITS-ContainerRescueAndRecoveryWorkInProgressSubCauseCode
ITS-ContainerRestrictedTypes1
ITS-ContainerRoadType
ITS-ContainerRoadworksSubCauseCode
EtsiTs103759MbrCommonObservationsSecurity-HeaderIncWithSecurityProfile

Security-HeaderIncWithSecurityProfile

This data type is provided for an observation, where the security headerInfo is inconsistent with the security profile for that psid. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU for which the security headerInfo is being flagged as inconsistent with the security profile for that psid. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
1
EtsiTs103759MbrCommonObservationsSecurity-HeaderLocationOutsideCertificateValidity

Security-HeaderLocationOutsideCertificateValidity

This data type is provided for an observation, where the generationLocation in the security headerInfo is outside the validity region in the certificate. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU for which the generationLocation in the security headerInfo is being flagged as outside the validity region in the certificate. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
1
EtsiTs103759MbrCommonObservationsSecurity-HeaderPsidIncWithCertificate

Security-HeaderPsidIncWithCertificate

This data type is provided for an observation, where the psid in the security headerInfo is inconsistent with the psid in the certificate. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU for which the psid in the security headerInfo is being flagged as inconsistent with the psid in the certificate. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
1
EtsiTs103759MbrCommonObservationsSecurity-HeaderTimeOutsideCertificateValidity

Security-HeaderTimeOutsideCertificateValidity

This data type is provided for an observation, where the generationTime in the security headerInfo is outside the validity period of the certificate. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU for which the generationTime in the security headerInfo is being flagged as outside the validity period in the certificate. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
1
EtsiTs103759MbrCommonObservationsSecurity-MessageIdIncWithHeaderInfo

Security-MessageIdIncWithHeaderInfo

This data type is provided for an observation, where the messageID is inconsistent with the psid in the security headerInfo. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU for which the messageID is being flagged as inconsistent with the psid in the security headerInfo. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
1
EtsiTs103759MbrCommonObservationsSecurity-MessageIncWithSsp

Security-MessageIncWithSsp

This data type is provided for an observation, where the message is is inconsistent with the SSP in the certificate. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose content is being flagged as inconsisent with the SSP in the certificate. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
1
EtsiTs103759MbrCommonObservationsSecurity-MessageLocationOutsideCertificateValidity

Security-MessageLocationOutsideCertificateValidity

This data type is provided for an observation, where the location in the message is outside the validity region in the certificate. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU for which the location in the PDU is being flagged as outside the validity region in the certificate. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
1
ITS-ContainerSemiAxisLength1
ITS-ContainerSequenceNumber1
Ieee1609Dot2SequenceOfCertificate

SequenceOfCertificate

This type is used for clarity of definitions.
11
Ieee1609Dot2BaseTypesSequenceOfHashedId3

SequenceOfHashedId3

This type is used for clarity of definitions.
11
Ieee1609Dot2BaseTypesSequenceOfIdentifiedRegion

SequenceOfIdentifiedRegion

This type is used for clarity of definitions.
11
Ieee1609Dot2BaseTypesSequenceOfOctetString

SequenceOfOctetString

This type is used for clarity of definitions.
1
Ieee1609Dot2BaseTypesSequenceOfPsid

SequenceOfPsid

This type is used for clarity of definitions.
1
Ieee1609Dot2SequenceOfPsidGroupPermissions

SequenceOfPsidGroupPermissions

This type is used for clarity of definitions.
11
Ieee1609Dot2BaseTypesSequenceOfPsidSsp

SequenceOfPsidSsp

This type is used for clarity of definitions.
11
Ieee1609Dot2BaseTypesSequenceOfPsidSspRange

SequenceOfPsidSspRange

This type is used for clarity of definitions.
11
Ieee1609Dot2SequenceOfRecipientInfo

SequenceOfRecipientInfo

This type is used for clarity of definitions.
11
Ieee1609Dot2BaseTypesSequenceOfRectangularRegion

SequenceOfRectangularRegion

This type is used for clarity of definitions.
11
Ieee1609Dot2BaseTypesSequenceOfRegionAndSubregions

SequenceOfRegionAndSubregions

This type is used for clarity of definitions.
11
Ieee1609Dot2BaseTypesSequenceOfUint16

SequenceOfUint16

This type is used for clarity of definitions.
11
Ieee1609Dot2BaseTypesSequenceOfUint8

SequenceOfUint8

This type is used for clarity of definitions.
11
Ieee1609Dot2BaseTypesServiceSpecificPermissions

ServiceSpecificPermissions

This structure represents the Service Specific Permissions (SSP) relevant to a given entry in a PsidSsp. The meaning of the SSP is specific to the associated Psid. SSPs may be PSID-specific octet strings or bitmap-based. See Annex C for further discussion of how application specifiers may choose which SSP form to use.

Consistency with issuing certificate.

If a certificate has an appPermissions entry A for which the ssp field is opaque, A is consistent with the issuing certificate if the issuing certificate contains one of the following:
  • (OPTION 1) A SubjectPermissions field indicating the choice all and no PsidSspRange field containing the psid field in A;
  • (OPTION 2) A PsidSspRange P for which the following holds:
    • The psid field in P is equal to the psid field in A and one of the following is true:
      • The sspRange field in P indicates all.
      • The sspRange field in P indicates opaque and one of the entries in the opaque field in P is an OCTET STRING identical to the opaque field in A.
For consistency rules for other types of ServiceSpecificPermissions, see the following subclauses.
11
ITS-ContainerSignalViolationSubCauseCode
Ieee1609Dot2BaseTypesSignature

Signature

This structure represents a signature for a supported public key algorithm. It may be contained within SignedData or Certificate.

Critical information fields: If present, this is a critical information field as defined in 5.2.5. An implementation that does not recognize the indicated CHOICE for this type when verifying a signed SPDU shall indicate that the signed SPDU is invalid.
22
Ieee1609Dot2SignedData

SignedData

In this structure:
  • hashId
    indicates the hash algorithm to be used to generate the hash of the message for signing and verification.
  • tbsData
    contains the data that is hashed as input to the signature.
  • signer
    determines the keying material and hash algorithm used to sign the data.
  • signature
    contains the digital signature itself, calculated as specified in 5.3.1.
    • If signer indicates the choice self, then the signature calculation is parameterized as follows:
      • Data input is equal to the COER encoding of the tbsData field canonicalized according to the encoding considerations given in 6.3.6.
      • Verification type is equal to self.
      • Signer identifier input is equal to the empty string.
    • If signer indicates certificate or digest, then the signature calculation is parameterized as follows:
      • Data input is equal to the COER encoding of the tbsData field canonicalized according to the encoding considerations given in 6.3.6.
      • Verification type is equal to certificate.
      • Signer identifier input equal to the COER-encoding of the Certificate that is to be used to verify the SPDU, canonicalized according to the encoding considerations given in 6.4.3.
14
Ieee1609Dot2SignedDataPayload

SignedDataPayload

This structure contains the data payload of a ToBeSignedData. This structure contains at least one of data and extDataHash, and may contain both.
  • data
    contains data that is explicitly transported within the structure.
  • extDataHash
    contains the hash of data that is not explicitly transported within the structure, and which the creator of the structure wishes to cryptographically bind to the signature. For example, if a creator wanted to indicate that some large message was still valid, they could use the extDataHash field to send a Signed¬Data containing the hash of that large message without having to resend the message itself. Whether or not extDataHash is used, and how it is used, is SDEE-specific.
12
Ieee1609Dot2SignerIdentifier

SignerIdentifier

This structure allows the recipient of data to determine which keying material to use to authenticate the data. It also indicates the verification type to be used to generate the hash for verification, as specified in 5.3.1.
  • If the choice indicated is digest:
    • The structure contains the HashedId8 of the relevant certificate. The HashedId8 is calculated with the whole-certificate hash algorithm, determined as described in 6.4.3.
    • The verification type is certificate and the certificate data passed to the hash function as specified in 5.3.1 is the authorization certificate.
  • If the choice indicated is certificate:
    • The structure contains one or more Certificate structures, in order such that the first certificate is the authorization certificate and each subsequent certificate is the issuer of the one before it.
    • The verification type is certificate and the certificate data passed to the hash function as specified in 5.3.1 is the authorization certificate.
  • If the choice indicated is self:
    • The structure does not contain any data beyond the indication that the choice value is self.
    • The verification type is self-signed.
Critical information fields:
  1. If present, this is a critical information field as defined in 5.2.6. An implementation that does not recognize the CHOICE value for this type when verifying a signed SPDU shall indicate that the signed SPDU is invalid.
  2. If present, certificate is a critical information field as defined in 5.2.6. An implementation that does not support the number of certificates in certificate when verifying a signed SPDU shall indicate that the signed SPDU is invalid. A compliant implementation shall support certificate fields containing at least one certificate.
12
ITS-ContainerSlowVehicleSubCauseCode
ITS-ContainerSpecialTransportType
ITS-ContainerSpeed2
EtsiTs103759MbrCommonObservationsSpeed-ChangeTooLarge

Speed-ChangeTooLarge

This data type is provided for an observation of change in speed that is too large. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose speed is being flagged as inconsistent with the speed in the previous PDU. The v2xPdus field in that entry must contain at least the subject PDU and the PDU that immediately preceded it. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
1
ITS-ContainerSpeedConfidence1
ITS-ContainerSpeedLimit
ITS-ContainerSpeedValue1
EtsiTs103759MbrCommonObservationsSpeed-ValueTooLarge-DriveDirectionReverse

Speed-ValueTooLarge-DriveDirectionReverse

This data type is provided for an observation of speed too large for the reverse drive direction. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose speed is being flagged as too large for the reverse drive direction. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
1
EtsiTs103759MbrCommonObservationsSpeed-ValueTooLarge-ThresholdNoContext

Speed-ValueTooLarge-ThresholdNoContext

This data type is provided for an observation of "speed too large relative to threshold" misbehaviour. The observation is triggered if the speed in a single message is large than a particular threshold. The observation includes the threshold but does not indicate how the threshold was determined.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose speed is being flagged as too large. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
  • threshold
    This is the threshold such that if the speed is over that threshold, the subject message is categorized as misbehaviour. The threshold is encoded in units of meters per second. @note How the threshold is set is out of scope for this specification. It is recommended that implementations default to a threshold of 90 m/s.
11
EtsiTs103759MbrCommonObservationsSpeed-ValueTooLarge-VehicleType

Speed-ValueTooLarge-VehicleType

This data type is provided for an observation of speed too large for a given vehicle type. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose speed is being flagged as too large for the vehicle type. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
1
Ieee1609Dot2BaseTypesSspRange

SspRange

This structure identifies the SSPs associated with a PSID for which the holder may issue or request certificates.

Consistency with issuing certificate.

If a certificate has a PsidSspRange A for which the ssp field is opaque, A is consistent with the issuing certificate if the issuing certificate contains one of the following:
  • (OPTION 1) A SubjectPermissions field indicating the choice all and no PsidSspRange field containing the psid field in A;
  • (OPTION 2) a PsidSspRange P for which the following holds:
    • The psid field in P is equal to the psid field in A and one of the following is true:
      • The sspRange field in P indicates all.
      • The sspRange field in P indicates opaque, and the sspRange field in A indicates opaque, and every OCTET STRING within the opaque in A is a duplicate of an OCTET STRING within the opaque in P.
If a certificate has a PsidSspRange A for which the ssp field is all, A is consistent with the issuing certificate if the issuing certificate contains a PsidSspRange P for which the following holds:
  • (OPTION 1) A SubjectPermissions field indicating the choice all and no PsidSspRange field containing the psid field in A;
  • (OPTION 2) A PsidSspRange P for which the psid field in P is equal to the psid field in A and the sspRange field in P indicates all.
For consistency rules for other types of SspRange, see the following subclauses.

NOTE: The choice "all" may also be indicated by omitting the SspRange in the enclosing PsidSspRange structure. Omitting the SspRange is preferred to explicitly indicating "all".
12
EtsiTs103759MbrCommonObservationsStatic-Change

Static-Change

This data type is provided for an observation of change in static fields. The semantics of the BIT STRING and trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose one or more static fields since the previous PDU is being flagged as changed. The v2xPdus field in that entry must contain at least the subject PDU and the PDU that immediately preceded it. The PDUs may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
1
ITS-ContainerStationarySince
ITS-ContainerStationaryVehicleSubCauseCode
ITS-ContainerStationID2
ITS-ContainerStationType1
ITS-ContainerSteeringWheelAngle2
ITS-ContainerSteeringWheelAngleConfidence1
ITS-ContainerSteeringWheelAngleValue1
ITS-ContainerSubCauseCodeType1
Ieee1609Dot2BaseTypesSubjectAssurance

SubjectAssurance

This field contains the certificate holder’s assurance level, which indicates the security of both the platform and storage of secret keys as well as the confidence in this assessment.

This field is encoded as defined in Table 1, where "A" denotes bit fields specifying an assurance level, "R" reserved bit fields, and "C" bit fields specifying the confidence.

Table 1: Bitwise encoding of subject assurance
Bit number 7 6 5 4 3 2 1 0
Interpretation A A A R R R C C
In Table 1, bit number 0 denotes the least significant bit. Bit 7 to bit 5 denote the device's assurance levels, bit 4 to bit 2 are reserved for future use, and bit 1 and bit 0 denote the confidence.

The specification of these assurance levels as well as the encoding of the confidence levels is outside the scope of the present document. It can be assumed that a higher assurance value indicates that the holder is more trusted than the holder of a certificate with lower assurance value and the same confidence value.

NOTE: This field was originally specified in ETSI TS 103 097 [B7] and future uses of this field are anticipated to be consistent with future versions of that document.
1
Ieee1609Dot2SubjectPermissions

SubjectPermissions

This indicates the PSIDs and associated SSPs for which certificate issuance or request permissions are granted by a PsidGroupPermissions structure. If this takes the value explicit, the enclosing PsidGroupPermissions structure grants certificate issuance or request permissions for the indicated PSIDs and SSP Ranges. If this takes the value all, the enclosing PsidGroupPermissions structure grants certificate issuance or request permissions for all PSIDs not indicated by other PsidGroupPermissions in the same certIssuePermissions or certRequestPermissions field.

Critical information fields:
  • If present, this is a critical information field as defined in 5.2.6. An implementation that does not recognize the indicated CHOICE when verifying a signed SPDU shall indicate that the signed SPDU is invalid.
  • If present, explicit is a critical information field as defined in 5.2.6. An implementation that does not support the number of PsidSspRange in explicit when verifying a signed SPDU shall indicate that the signed SPDU is invalid. A compliant implementation shall support explicit fields containing at least eight entries.
11
Ieee1609Dot2BaseTypesSymmAlgorithm

SymmAlgorithm

This enumerated value indicates supported symmetric algorithms. The only symmetric algorithm supported in this version of this standard is AES-CCM as specified in 5.3.7.
1
Ieee1609Dot2SymmetricCiphertext

SymmetricCiphertext

This data structure encapsulates a ciphertext generated with an approved symmetric algorithm.

Critical information fields: If present, this is a critical information field as defined in 5.2.6. An implementation that does not recognize the indicated CHOICE value for this type in an encrypted SPDU shall reject the SPDU as invalid.
21
Ieee1609Dot2BaseTypesSymmetricEncryptionKey

SymmetricEncryptionKey

This structure provides the key bytes for use with an identified symmetric algorithm. The only supported symmetric algorithm is AES-128 in CCM mode as specified in 5.3.7.
1
Ieee1609Dot2SymmRecipientInfo

SymmRecipientInfo

This data structure contains the following fields:
  • recipientId
    contains the hash of the symmetric key encryption key that may be used to decrypt the data encryption key. It consists of the low-order 8 bytes of the SHA-256 hash of the COER encoding of a SymmetricEncryptionKey structure containing the symmetric key in question. The symmetric key may be established by any appropriate means agreed by the two parties to the exchange.
  • encKey
    contains the encrypted data encryption key within an AES-CCM ciphertext.
12
ITS-ContainerTemperature
Ieee1609Dot2BaseTypesThreeDLocation

ThreeDLocation

This structure contains an estimate of 3D location. The details of the structure are given in the definitions of the individual fields below.

NOTE: The units used in this data structure are consistent with the location data structures used in SAE J2735, though the encoding is incompatible.
23
Ieee1609Dot2BaseTypesTime32

Time32

This type gives the number of (TAI) seconds since 00:00:00 UTC, 1 January, 2004.
11
Ieee1609Dot2BaseTypesTime64

Time64

This type gives the number of (TAI) microseconds since 00:00:00 UTC, 1 January, 2004.
21
ITS-ContainerTimestampIts1
Ieee1609Dot2ToBeSignedCertificate

ToBeSignedCertificate

The fields in the ToBeSignedCertificate structure have the following meaning:

Encoding considerations: The encoding of toBeSigned which is input to the hash uses the compressed form for all public keys and reconstruction values that are elliptic curve points: that is, those points indicate a choice of compressed-y-0 or compressed-y-1. The encoding of the issuing certificate uses the compressed form for all public key and reconstruction values and takes the r value of an ECDSA signature, which in this standard is an ECC curve point, to be of type x-only.

For both implicit and explicit certificates, when the certificate is hashed to create or recover the public key (in the case of an implicit certificate) or to generate or verify the signature (in the case of an explicit certificate), the hash is Hash (Data input) || Hash ( Signer identifier input), where:
  • Data input is the COER encoding of toBeSigned, canonicalized as described above.
  • Signer identifier input depends on the verification type, which in turn depends on the choice indicated by issuer. If the choice indicated by issuer is self, the verification type is self-signed and the signer identifier input is the empty string. If the choice indicated by issuer is not self, the verification type is certificate and the signer identifier input is the COER encoding of the canonicalization per 6.4.3 of the certificate indicated by issuer.
In other words, for implicit certificates, the value H (CertU) in SEC 4, section 3, is for purposes of this standard taken to be H [H (canonicalized ToBeSignedCertificate from the subordinate certificate) || H (entirety of issuer Certificate)]. See 5.3.2 for further discussion, including material differences between this standard and SEC 4 regarding how the hash function output is converted from a bit string to an integer.

NOTE: This encoding of the implicit certificate for hashing has been changed from the encoding specified in IEEE Std 1609.2-2013 for consistency with the encoding of the explicit certificates. This definition of the encoding results in implicit and explicit certificates both being hashed as specified in 5.3.1.

Critical information fields:
  • If present, appPermissions is a critical information field as defined in 5.2.6. An implementation that does not support the number of PsidSsp in appPermissions shall reject the signed SPDU as invalid. A compliant implementation shall support appPermissions fields containing at least eight entries.
  • If present, certIssuePermissions is a critical information field as defined in 5.2.6. An implementation that does not support the number of PsidGroupPermissions in certIssuePermissions shall reject the signed SPDU as invalid. A compliant implementation shall support certIssuePermissions fields containing at least eight entries.
  • If present, certRequestPermissions is a critical information field as defined in 5.2.6. An implementation that does not support the number of PsidGroupPermissions in certRequestPermissions shall reject the signed SPDU as invalid. A compliant implementation shall support certRequestPermissions fields containing at least eight entries.
Parameters:
  • id
    contains information that is used to identify the certificate holder if necessary.
  • cracaId
    identifies the Certificate Revocation Authorization CA (CRACA) responsible for certificate revocation lists (CRLs) on which this certificate might appear. Use of the cracaId is specified in 5.1.3. The HashedId3 is calculated with the whole-certificate hash algorithm, determined as described in 6.4.12.
  • crlSeries
    represents the CRL series relevant to a particular Certificate Revocation Authorization CA (CRACA) on which the certificate might appear. Use of this field is specified in 5.1.3.
  • validityPeriod
    contains the validity period of the certificate.
  • region,
    if present, indicates the validity region of the certificate. If it is omitted the validity region is indicated as follows:
    • If enclosing certificate is self-signed, i.e., the choice indicated by the issuer field in the enclosing certificate structure is self, the certificate is valid worldwide.
    • Otherwise, the certificate has the same validity region as the certificate that issued it.
  • assuranceLevel
    indicates the assurance level of the certificate holder.
  • appPermissions
    indicates the permissions that the certificate holder has to sign application data with this certificate. A valid instance of appPermissions contains any particular Psid value in at most one entry.
  • certIssuePermissions
    indicates the permissions that the certificate holder has to sign certificates with this certificate. A valid instance of this array contains no more than one entry whose psidSspRange field indicates all. If the array has multiple entries and one entry has its psidSspRange field indicate all, then the entry indicating all specifies the permissions for all PSIDs other than the ones explicitly specified in the other entries. See the description of PsidGroupPermissions for further discussion.
  • certRequestPermissions
    indicates the permissions that the certificate holder has to sign certificate requests with this certificate. A valid instance of this array contains no more than one entry whose psidSspRange field indicates all. If the array has multiple entries and one entry has its psidSspRange field indicate all, then the entry indicating all specifies the permissions for all PSIDs other than the ones explicitly specified in the other entries. See the description of PsidGroupPermissions for further discussion.
  • canRequestRollover
    indicates that the certificate may be used to sign a request for another certificate with the same permissions. This field is provided for future use and its use is not defined in this version of this standard.
  • encryptionKey
    contains a public key for encryption for which the certificate holder holds the corresponding private key.
  • verifyKeyIndicator
    contains material that may be used to recover the public key that may be used to verify data signed by this certificate.
110
Ieee1609Dot2ToBeSignedData

ToBeSignedData

This structure contains the data to be hashed when generating or verifying a signature. See 6.3.4 for the specification of the input to the hash.

Encoding considerations: For encoding considerations associated with the headerInfo field, see 6.3.9.

Parameters:
  • payload
    contains data that is provided by the entity that invokes the SDS.
  • headerInfo
    contains additional data that is inserted by the SDS.
12
ITS-ContainerTraces1
ITS-ContainerTrafficConditionSubCauseCode
ITS-ContainerTrafficRule
ITS-ContainerTransmissionInterval
ITS-ContainerTurningRadius
Ieee1609Dot2BaseTypesTwoDLocation

TwoDLocation

This structure is used to define validity regions for use in certificates. The latitude and longitude fields contain the latitude and longitude as defined above.

NOTE: This data structure is consistent with the location encoding used in SAE J2735, except that values 900 000 001 for latitude (used to indicate that the latitude was not available) and 1 800 000 001 for longitude (used to indicate that the longitude was not available) are not valid.
32
Ieee1609Dot2BaseTypesUint16

Uint16

This atomic type is used in the definition of other data structures. It is for non-negative integers up to 65,535, i.e., (hex)ff ff.
10
Ieee1609Dot2BaseTypesUint3

Uint3

This atomic type is used in the definition of other data structures. It is for non-negative integers up to 7, i.e., (hex)07.
Ieee1609Dot2BaseTypesUint32

Uint32

This atomic type is used in the definition of other data structures. It is for non-negative integers up to 4,294,967,295, i.e., (hex)ff ff ff ff.
1
Ieee1609Dot2BaseTypesUint64

Uint64

This atomic type is used in the definition of other data structures. It is for non-negative integers up to 18,446,744,073,709,551,615, i.e., (hex)ff ff ff ff ff ff ff ff.
1
Ieee1609Dot2BaseTypesUint8

Uint8

This atomic type is used in the definition of other data structures. It is for non-negative integers up to 255, i.e., (hex)ff.
11
Ieee1609Dot2BaseTypesUnknownLatitude

UnknownLatitude

The value 900,000,001 indicates that the latitude was not available to the sender.
1
Ieee1609Dot2BaseTypesUnknownLongitude

UnknownLongitude

The value 1,800,000,001 indicates that the longitude was not available to the sender.
1
EtsiTs103759V2xPduStream

V2xPduStream

This data type contains PDU stream from a single sender.
  • id
    identifies the type of the PDU, meaning in this case what protocol headers are included from the stack.
  • v2xPdus
    is the PDU stream, i.e., a series of PDUs for the same AID sent by the same sender (where "sent by the same sender" means "signed by the same certificate"). The PDUs are ordered in chronological order of reception by the reporter. All PDUs in this field are of the same type, i.e., correspond to the same IdObsPdu. This field will always contain a "subject PDU", i.e., a PDU that is the subject of the observations. Additional PDUs may be included depending on which observations appear in the observations field. A specification of an observation is expected to include a specification of which PDUs are to be included in this field.
  • certificate
    contains the certificate that signed the PDUs if it is not explicitly included in one of the PDUs. (There is no need to include the entire certificate chain from the ITS station up to the Root CA, just the ITS station certificate is enough, as the MA is expected to have the rest of the certificates in the chain.) Note that if the sender certificate changes, PDUs signed by the new certificate and included in this report will be in a separate V2xPduStream instance within the v2xPduEvidence field of the TemplateAsr.
  • subjectPduIndex
    identifies which PDU within the v2xPdus sequence is the "subject PDU", i.e., the PDU associated with the observations.
14
ITS-ContainerValidityDuration
Ieee1609Dot2BaseTypesValidityPeriod

ValidityPeriod

This structure gives the validity period of a certificate. The start of the validity period is given by start and the end is given by start + duration.
  • start
    contains the starting time of the validity period.
  • duration
    contains the duration of the validity period.
12
ITS-ContainerVDS1
ITS-ContainerVehicleBreakdownSubCauseCode
ITS-ContainerVehicleIdentification2
ITS-ContainerVehicleLength2
ITS-ContainerVehicleLengthConfidenceIndication1
ITS-ContainerVehicleLengthValue1
ITS-ContainerVehicleMass
ITS-ContainerVehicleRole
ITS-ContainerVehicleWidth
Ieee1609Dot2VerificationKeyIndicator

VerificationKeyIndicator

The contents of this field depend on whether the certificate is an implicit or an explicit certificate.

Critical information fields: If present, this is a critical information field as defined in 5.2.5. An implementation that does not recognize the indicated CHOICE for this type when verifying a signed SPDU shall indicate that the signed SPDU is invalid.

Parameters:
  • verificationKey
    is included in explicit certificates. It contains the public key to be used to verify signatures generated by the holder of the Certificate.
  • reconstructionValue
    is included in implicit certificates. It contains the reconstruction value, which is used to recover the public key as specified in SEC 4 and 5.3.2.
12
ITS-ContainerVerticalAcceleration2
ITS-ContainerVerticalAccelerationValue1
ITS-ContainerWheelBaseVehicle
ITS-ContainerWMInumber1
ITS-ContainerWrongWayDrivingSubCauseCode
ITS-ContainerYawRate2
ITS-ContainerYawRateConfidence1
ITS-ContainerYawRateValue1
+
Parameterized Type Assignments Table
Parameterized Type Assignments Table + + + + + + + + + + + + +
Parameterized Type Assignments
Module nameType nameDescriptionParametersNumber of
incoming
references
Number of
outgoing
references
NameType or ClassDescription
EtsiTs103759MbSingleObservation

MbSingleObservation

This data type contains a single misbehaviour observation.
  • obsId
    identifies the observation within the set of observations for that target, e.g., target = speed, observation = "speed higher than plausible given the physical map". This identifier is drawn from an application-and-target-specific Information Object Set of single observations.
  • obs
    contains any parameters relevant to the observation. The observations are drawn from the provided Information Object Set.
SetMbSingleObsC-ASR-SINGLE-OBS21
EtsiTs103759NonV2xPduEvidenceItem

NonV2xPduEvidenceItem

This data type contains evidence, which may be referenced by one or more observations.
  • id
    identifies the evidence type.
  • evidence
    contains the evidence.
SetMbEvC-ASR-EV11
EtsiTs103759ObservationsByTarget

ObservationsByTarget

This data type contains all of the observations related to a particular "target" property, e.g., speed or security.
  • tgtId
    identifies the "target" of the observation, e.g., speed. This identifier is drawn from an application-specific Information Object Set of observations by target.
  • observations
    contains all the observations related to that target. The observations are drawn from the provided Information Object Set.
SetAsrObsByTgtC-ASR-OBS-BY-TGT11
EtsiTs103759TemplateAsr

TemplateAsr

This data type contains the template for a report on any ITS PDU.
  • observations
    identifies which detectors were triggered and why. It can include cross-references to the PDUs and evidence fields. The observations are drawn from a supplied application-specific observation Information Object Set.
  • v2xPduEvidence
    contains PDUs that triggered the detectors reported in the observations field, plus other PDUs sent for the same application (AID) by the same sender).
  • nonV2xPduEvidence
    is any information that was used by the detectors other than the V2X PDUs. If the report does not contain any observations that use other evidence (for example, if the report is simply that a speed value is implausibly high for any land vehicle, or that two V2X PDUs appear to show two different senders in the same physical space) then this field can be length 0. The evidence is drawn from a supplied application-specific evidence Information Object Set.
ObservationSetC-ASR-OBS-BY-TGT25
NonV2xPduEvidenceSetC-ASR-EV
+
Value Assignments Table
Value Assignments Table + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Value Assignments
Module nameValue nameTypeDescriptionNumber of
incoming
references
Number of
outgoing
references
EtsiTs103759c-AsrAppAgnosticPsid

c-AsrAppAgnostic

This data type contains the ITS-AID of the unknown service. @note This value is used for suspicious observations that are not or cannot be linked to a specific application.
11
EtsiTs103759c-AsrBsmPsid

c-AsrBsm

This data type contains the ITS-AID identifying services that use the Basic Safety Message as defined in SAE J2945/1, J2945/2, J3161/1.
11
EtsiTs103759c-AsrCamPsid

c-AsrCam

This data type contains the ITS-AID of the CA service.
11
EtsiTs103759c-AsrDenmPsid

c-AsrDenm

This data type contains the ITS-AID of the DEN service.
11
EtsiTs103759AsrBsmc-BsmTgt-BeaconCommonIdBsmTgt1
EtsiTs103759AsrBsmc-BsmTgt-LongAccCommonIdBsmTgt11
EtsiTs103759AsrBsmc-BsmTgt-PositionCommonIdBsmTgt11
EtsiTs103759AsrBsmc-BsmTgt-SecurityCommonIdBsmTgt1
EtsiTs103759AsrBsmc-BsmTgt-SpeedCommonIdBsmTgt11
EtsiTs103759AsrBsmc-BsmTgt-StaticCommonIdBsmTgt1
EtsiTs103759AsrCamc-CamTgt-BeaconCommonIdCamTgt11
EtsiTs103759AsrCamc-CamTgt-LongAccCommonIdCamTgt11
EtsiTs103759AsrCamc-CamTgt-PositionCommonIdCamTgt11
EtsiTs103759AsrCamc-CamTgt-SecurityCommonIdCamTgt11
EtsiTs103759AsrCamc-CamTgt-SpeedCommonIdCamTgt11
EtsiTs103759AsrCamc-CamTgt-StaticCommonIdCamTgt11
EtsiTs103759MbrCommonObservationsc-ObsBeacon-IntervalTooSmallIdMbObs11
EtsiTs103759MbrCommonObservationsc-ObsLongAcc-Implausible-BrakeIdMbObs11
EtsiTs103759MbrCommonObservationsc-ObsLongAcc-ValueTooLargeIdMbObs11
EtsiTs103759MbrCommonObservationsc-ObsLongAcc-ValueTooLarge-ThresholdNoContextIdMbObs11
EtsiTs103759c-ObsPdu-etsiGnIdObsPdu11
EtsiTs103759c-ObsPdu-ieee1609Dot2DataIdObsPdu11
EtsiTs103759c-ObsPdu-wsmpIdObsPdu11
EtsiTs103759MbrCommonObservationsc-ObsPos-IncWithPrev-TooFarIdMbObs11
EtsiTs103759MbrCommonObservationsc-ObsPos-IncWithPrev-TooSmallIdMbObs11
EtsiTs103759MbrCommonObservationsc-ObsPosition-ChangeTooLargeIdMbObs11
EtsiTs103759MbrCommonObservationsc-ObsSecurity-HeaderIncWithSecurityProfileIdMbObs11
EtsiTs103759MbrCommonObservationsc-ObsSecurity-HeaderLocationOutsideCertificateValidityIdMbObs11
EtsiTs103759MbrCommonObservationsc-ObsSecurity-HeaderPsidIncWithCertificateIdMbObs11
EtsiTs103759MbrCommonObservationsc-ObsSecurity-HeaderTimeOutsideCertificateValidityIdMbObs11
EtsiTs103759MbrCommonObservationsc-ObsSecurity-MessageIdIncWithHeaderInfoIdMbObs11
EtsiTs103759MbrCommonObservationsc-ObsSecurity-MessageIncWithSspIdMbObs11
EtsiTs103759MbrCommonObservationsc-ObsSecurity-MessageLocationOutsideCertificateValidityIdMbObs11
EtsiTs103759MbrCommonObservationsc-ObsSpeed-ChangeTooLargeIdMbObs11
EtsiTs103759MbrCommonObservationsc-ObsSpeed-ValueTooLarge-DriveDirectionReverseIdMbObs11
EtsiTs103759MbrCommonObservationsc-ObsSpeed-ValueTooLarge-ThresholdNoContextIdMbObs11
EtsiTs103759MbrCommonObservationsc-ObsSpeed-ValueTooLarge-VehicleTypeIdMbObs11
EtsiTs103759MbrCommonObservationsc-ObsStatic-ChangeIdMbObs11
Ieee1609Dot2etsiHeaderInfoContributorIdHeaderInfoContributorId11
Ieee1609Dot2iso21177ExtendedAuthPduFunctionalType1
Ieee1609Dot2tlsHandshakePduFunctionalType1
+
Class Assignments Table
Class Assignments Table + + + + + + + + + + + + + +
Class Assignments
Module nameClass nameDescriptionNumber of
incoming
references
Number of
outgoing
references
EtsiTs103759C-2ENT

C-2ENT

This structures uses single-byte IDs. If we run out of ID space in future, the Val type associated with ID 255 can also be structured hierarchically to extend the space.
41
EtsiTs103759C-ASR

C-ASR

This data type defines the IOC for AidSpecificReport.
  • aid
    contains the globally unique reference identifier of an AID-specific misbehaviour report.
  • Content
    contains the open type of the PDU identified by aid. This will be a TemplateAsr instantiated with AID-specific Information Object Sets.
21
EtsiTs103759C-ASR-EV

C-ASR-EV

This is the Information Object Class used to define evidence. @note No instances of this class are defined in this version of this document.
41
EtsiTs103759C-ASR-OBS-BY-TGT

C-ASR-OBS-BY-TGT

This is the Information Object Class used to define observations- -by-target.
41
EtsiTs103759C-ASR-SINGLE-OBS

C-ASR-SINGLE-OBS

This is the Information Object Class used to define single observations.
291
EtsiTs103759C-OBS-PDU

C-OBS-PDU

This is the Information Object Class used to define different types of observed PDUs.
21
Ieee1609Dot2IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION

IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION

This data structure defines the information object class that provides a "template" for defining extension blocks.
21
+
Object Assignments Table
Object Assignments Table + + + + + + + + + + + + + + + + + + + + + + + + + +
Object Assignments
Module nameObject nameClassDescriptionNumber of
incoming
references
Number of
outgoing
references
EtsiTs103759MbrCommonObservationsobs-Beacon-IntervalTooSmallC-ASR-SINGLE-OBS13
EtsiTs103759MbrCommonObservationsobs-LongAcc-Implausible-BrakeC-ASR-SINGLE-OBS13
EtsiTs103759MbrCommonObservationsobs-LongAcc-ValueTooLargeC-ASR-SINGLE-OBS13
EtsiTs103759MbrCommonObservationsobs-LongAcc-ValueTooLarge-ThresholdNoContextC-ASR-SINGLE-OBS13
EtsiTs103759MbrCommonObservationsobs-Pos-IncWithPrev-TooFarC-ASR-SINGLE-OBS13
EtsiTs103759MbrCommonObservationsobs-Pos-IncWithPrev-TooSmallC-ASR-SINGLE-OBS13
EtsiTs103759MbrCommonObservationsobs-Position-ChangeTooLargeC-ASR-SINGLE-OBS13
EtsiTs103759MbrCommonObservationsobs-Security-HeaderIncWithSecurityProfileC-ASR-SINGLE-OBS13
EtsiTs103759MbrCommonObservationsobs-Security-HeaderLocationOutsideCertificateValidityC-ASR-SINGLE-OBS13
EtsiTs103759MbrCommonObservationsobs-Security-HeaderPsidIncWithCertificateC-ASR-SINGLE-OBS13
EtsiTs103759MbrCommonObservationsobs-Security-HeaderTimeOutsideCertificateValidityC-ASR-SINGLE-OBS13
EtsiTs103759MbrCommonObservationsobs-Security-MessageIdIncWithHeaderInfoC-ASR-SINGLE-OBS13
EtsiTs103759MbrCommonObservationsobs-Security-MessageIncWithSspC-ASR-SINGLE-OBS13
EtsiTs103759MbrCommonObservationsobs-Security-MessageLocationOutsideCertificateValidityC-ASR-SINGLE-OBS13
EtsiTs103759MbrCommonObservationsobs-Speed-ChangeTooLargeC-ASR-SINGLE-OBS13
EtsiTs103759MbrCommonObservationsobs-Speed-ValueTooLarge-DriveDirectionReverseC-ASR-SINGLE-OBS13
EtsiTs103759MbrCommonObservationsobs-Speed-ValueTooLarge-ThresholdNoContextC-ASR-SINGLE-OBS13
EtsiTs103759MbrCommonObservationsobs-Speed-ValueTooLarge-VehicleTypeC-ASR-SINGLE-OBS13
EtsiTs103759MbrCommonObservationsobs-Static-ChangeC-ASR-SINGLE-OBS13
+
Object Set Assignments Table
Object Set Assignments Table + + + + + + + + + + + + + + + + + + + + + + +
Object Set Assignments
Module nameObject set nameClassDescriptionNumber of
incoming
references
Number of
outgoing
references
Ieee1609Dot2Ieee1609Dot2HeaderInfoContributedExtensionsIEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION

Ieee1609Dot2HeaderInfoContributedExtensions

This data structure defines the set of ContributedExtensionBlock Objects.
  • In
    this version of the standard, only the type EtsiOriginatingHeaderInfoExtension contributed by ETSI is supported. The information object EtsiOriginatingHeaderInfoExtension is imported from the EtsiTs103097ExtensionModule
12
EtsiTs103759SetAsrC-ASR

SetAsr

This data type defines the IOS for AidSpecificReport. See the ASN.1 modules where each set is defined for a description of that set.
19
EtsiTs103759AsrBsmSetMbEvBsmC-ASR-EV

SetMbEvBsm

This data type defines the IOS for BSM Evidence
11
EtsiTs103759AsrCamSetMbEvCamC-ASR-EV

SetMbEvCam

This data type defines the IOS for CAM Evidence.
11
EtsiTs103759MbrCommonObservationsSetMbObsCompleteBeaconC-ASR-SINGLE-OBS12
EtsiTs103759MbrCommonObservationsSetMbObsCompleteSecurityC-ASR-SINGLE-OBS18
EtsiTs103759MbrCommonObservationsSetMbObsCompleteStaticC-ASR-SINGLE-OBS12
EtsiTs103759MbrCommonObservationsSetMbObsEtsiOnlyLongAccC-ASR-SINGLE-OBS12
EtsiTs103759MbrCommonObservationsSetMbObsEtsiOnlyPositionC-ASR-SINGLE-OBS12
EtsiTs103759MbrCommonObservationsSetMbObsEtsiOnlySpeedC-ASR-SINGLE-OBS14
EtsiTs103759AsrBsmSetMbObsLongAcc-BsmC-ASR-SINGLE-OBS

SetMbObsLongAcc-Bsm

13
EtsiTs103759AsrBsmSetMbObsPosition-BsmC-ASR-SINGLE-OBS

SetMbObsPosition-Bsm

13
EtsiTs103759AsrBsmSetMbObsSpeed-BsmC-ASR-SINGLE-OBS

SetMbObsSpeed-Bsm

12
EtsiTs103759AsrBsmSetMbObsTgtsBsmC-ASR-OBS-BY-TGT

SetMbObsTgtsBsm

This is a complete set of observations for BSM as defined by the SCMS Manager. Application-specific trigger conditions and other relevant information are specified below.
18
EtsiTs103759AsrCamSetMbObsTgtsCamC-ASR-OBS-BY-TGT

SetMbObsTgtsCam

This is a complete set of observations for CAM. Application-specific trigger conditions and other relevant information are specified below.
  • SetMbObsCompleteBeacon
    • Beacon-IntervalTooSmall: The difference between the generation time of two consecutive CAMs is less than 80% of the value specified in EN 302 637-2 section 6.1.3. The difference is calculated as the difference between the two values of generationDeltaTime. The two CAMs presented shall have the difference in the generationTime from the security headerInfo be less than 65,535 milliseconds, and the generationTime in the second CAM greater than the generationTime in the first. If the generationDeltaTime value in the second CAM is less than the generationDeltaTime in the first, 65,536 milliseconds shall be added to the value in the second for purposes of determining the difference between the two generationDeltaTime values.
  • SetMbObsCompleteStatic
    • Static-Change: Any change in the values of one or more of the following fields: performanceClass, specialTransportType, stationType, vehicleLength, vehicleRole, vehicleWidth.

      Semantics of the BIT STRING: performanceClass(0), specialTransportType(1), stationType(2), vehicleLength(3), vehicleRole(4), vehicleWidth(5).
  • SetMbObsCompleteSecurity
    • Security-MessageIdIncWithHeaderInfo: The messageID is inconsistent with the security headerInfo, e.g., messageId = cam(2) but psid in the security headerInfo is not equal to 36, the PSID value of CAM.
    • Security-HeaderIncWithSecurityProfile: The security headerInfo is inconsistent with the security profile, e.g., generationTime is absent in the security headerInfo but is required to be present in the security profile.
    • Security-HeaderPsidIncWithCertificate: The psid in the security headerInfo is inconsistent with the appPermissions in the certificate, e.g., psid in the security headerInfo is equal to 36, but the appPermissions in the certificate does not include the value 36.
    • Security-MessageIncWithSsp: The message payload is inconsistent with the SSP in the certificate.
    • Security-HeaderTimeOutsideCertificateValidity: The generationTime in the security headerInfo is outside the validityPeriod in the certificate.
    • Security-MessageLocationOutsideCertificateValidity: The referencePosition in the message is outside the region in the certificate.
    • Security-HeaderLocationOutsideCertificateValidity: The generationLocation in the security headerInfo is outside the region in the certificate.
  • SetMbObsEtsiOnlyPosition
    • Position-ChangeTooLarge: The speed calculated from the change in referencePosition of two consecutive CAMs meets the trigger conditions of Speed-ValueTooLarge-VehicleType.
  • SetMbObsEtsiOnlySpeed
    • Speed-ValueTooLarge-VehicleType: The trigger conditions depend on the stationType as follows:
      • passengerCar(5): The speedValue is greater than 14,000. (Currently, the fastest car in the world has a top speed that is less than 500 km/h, i.e., 13,889 cm/s.)
      • motorcycle(4), bus(6), lightTruck(7), heavyTruck(8), trailer(9): The speedValue is greater than 8,500. (Currently, the top speed on most popular cars is less than 300 km/h, i.e., 8,333 cm/s.)
      • unknown(0), pedestrian(1), cyclist(2), moped(3), specialVehicles(10), tram(11) : The speedValue is greater than 3,000. (Currently, non-highway speed limits are usually well below 100 km/h, i.e., 2,778 cm/s.)
      • roadSideUnit(15): The speedValue is greater than 0. (Road side units shouldn't be transmitting while being transported.)
    • Speed-ValueTooLarge-DriveDirectionReverse: The driveDirection is backward (1) and the speedValue is greater than 3,000. (Usually, backward drives are far less than 50m long, and with maximum possible acceleration of 9 m/s^2 (see trigger conditions for LongAcc-ValueTooLarge), max attainable speed is sqrt(2*9*50) m/s, i.e., 3,000 cm/s.)
    • Speed-ChangeTooLarge: The acceleration calculated from the change in speedValue of two consecutive CAMs meets the trigger conditions of LongAcc-ValueTooLarge.
  • SetMbObsEtsiOnlyLongAcc
    • LongAcc-ValueTooLarge: The longitudinalAcceleration is greater than 90 dm/s^2. (Typical \mu (coefficient of friction between asphalt and rubber) is 0.9, so maximum possible acceleration is 0.9*9.8 m/s^2, i.e., 88.2 dm/s^2.)
114
EtsiTs103759SetObsPduC-OBS-PDU

SetObsPdu

This data type contains the IOS for the observed PDU.
17
+
Type Assignments Cross Reference Table
Type Assignments Cross Reference Table + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Type Assignments Cross Reference
Module nameType nameIncoming referencesOutgoing references
Module nameEntity nameNumberModule nameEntity nameNumber
ITS-ContainerAccelerationConfidenceITS-ContainerLateralAcceleration1
ITS-ContainerLongitudinalAcceleration1
ITS-ContainerVerticalAcceleration1
ITS-ContainerAccelerationControl
ITS-ContainerAccidentSubCauseCode
ITS-ContainerActionIDITS-ContainerSequenceNumber1
ITS-ContainerStationID1
ITS-ContainerAdverseWeatherCondition-AdhesionSubCauseCode
ITS-ContainerAdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode
ITS-ContainerAdverseWeatherCondition-PrecipitationSubCauseCode
ITS-ContainerAdverseWeatherCondition-VisibilitySubCauseCode
Ieee1609Dot2AesCcmCiphertextIeee1609Dot2SymmetricCiphertext1Ieee1609Dot2BaseTypesOpaque1
EtsiTs103759AidSpecificReportEtsiTs103759Mbr1EtsiTs103759C-ASR2
EtsiTs103759SetAsr2
ITS-ContainerAltitudeITS-ContainerReferencePosition1ITS-ContainerAltitudeConfidence1
ITS-ContainerAltitudeValue1
ITS-ContainerAltitudeConfidenceITS-ContainerAltitude1
ITS-ContainerAltitudeValueITS-ContainerAltitude1
EtsiTs103759AsrAppAgnosticAsrAppAgnosticEtsiTs103759SetAsr1
EtsiTs103759AsrBsmAsrBsmEtsiTs103759SetAsr1EtsiTs103759AsrBsmSetMbEvBsm1
EtsiTs103759AsrBsmSetMbObsTgtsBsm1
EtsiTs103759TemplateAsr1
EtsiTs103759AsrCamAsrCamEtsiTs103759SetAsr1EtsiTs103759AsrCamSetMbEvCam1
EtsiTs103759AsrCamSetMbObsTgtsCam1
EtsiTs103759TemplateAsr1
EtsiTs103759AsrDenmAsrDenmEtsiTs103759SetAsr1
Ieee1609Dot2BaseTypesBasePublicEncryptionKeyIeee1609Dot2BaseTypesPublicEncryptionKey1Ieee1609Dot2BaseTypesEccP256CurvePoint2
EtsiTs103759MbrCommonObservationsBeacon-IntervalTooSmallEtsiTs103759MbrCommonObservationsobs-Beacon-IntervalTooSmall1
Ieee1609Dot2BaseTypesBitmapSspIeee1609Dot2BaseTypesServiceSpecificPermissions1
Ieee1609Dot2BaseTypesBitmapSspRangeIeee1609Dot2BaseTypesSspRange1
ITS-ContainerCauseCodeITS-ContainerCauseCodeType1
ITS-ContainerSubCauseCodeType1
ITS-ContainerCauseCodeTypeITS-ContainerCauseCode1
ITS-ContainerCenDsrcTollingZoneITS-ContainerCenDsrcTollingZoneID1
ITS-ContainerLatitude1
ITS-ContainerLongitude1
ITS-ContainerCenDsrcTollingZoneIDITS-ContainerCenDsrcTollingZone1ITS-ContainerProtectedZoneID1
Ieee1609Dot2CertificateIeee1609Dot2HeaderInfo1Ieee1609Dot2CertificateBase1
Ieee1609Dot2SequenceOfCertificate1Ieee1609Dot2ExplicitCertificate1
EtsiTs103759V2xPduStream1Ieee1609Dot2ImplicitCertificate1
Ieee1609Dot2CertificateBaseIeee1609Dot2Certificate1Ieee1609Dot2CertificateType1
Ieee1609Dot2ExplicitCertificate1Ieee1609Dot2IssuerIdentifier1
Ieee1609Dot2ImplicitCertificate1Ieee1609Dot2BaseTypesSignature1
Ieee1609Dot2ToBeSignedCertificate1
Ieee1609Dot2BaseTypesUint81
Ieee1609Dot2CertificateIdIeee1609Dot2ToBeSignedCertificate1Ieee1609Dot2BaseTypesHostname1
Ieee1609Dot2LinkageData1
Ieee1609Dot2CertificateTypeIeee1609Dot2CertificateBase1
Ieee1609Dot2BaseTypesCircularRegionIeee1609Dot2BaseTypesGeographicRegion1Ieee1609Dot2BaseTypesTwoDLocation1
Ieee1609Dot2BaseTypesUint161
ITS-ContainerClosedLanesITS-ContainerDrivingLaneStatus1
ITS-ContainerHardShoulderStatus2
ITS-ContainerCollisionRiskSubCauseCode
Ieee1609Dot2ContributedExtensionBlockIeee1609Dot2ContributedExtensionBlocks1Ieee1609Dot2IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION2
Ieee1609Dot2Ieee1609Dot2HeaderInfoContributedExtensions2
Ieee1609Dot2ContributedExtensionBlocksIeee1609Dot2HeaderInfo1Ieee1609Dot2ContributedExtensionBlock1
Ieee1609Dot2CountersignatureIeee1609Dot2Ieee1609Dot2Data1
Ieee1609Dot2BaseTypesCountryAndRegionsIeee1609Dot2BaseTypesIdentifiedRegion1Ieee1609Dot2BaseTypesCountryOnly1
Ieee1609Dot2BaseTypesSequenceOfUint81
Ieee1609Dot2BaseTypesCountryAndSubregionsIeee1609Dot2BaseTypesIdentifiedRegion1Ieee1609Dot2BaseTypesCountryOnly1
Ieee1609Dot2BaseTypesSequenceOfRegionAndSubregions1
Ieee1609Dot2BaseTypesCountryOnlyIeee1609Dot2BaseTypesCountryAndRegions1Ieee1609Dot2BaseTypesUint161
Ieee1609Dot2BaseTypesCountryAndSubregions1
Ieee1609Dot2BaseTypesIdentifiedRegion1
Ieee1609Dot2BaseTypesCrlSeriesIeee1609Dot2MissingCrlIdentifier1Ieee1609Dot2BaseTypesUint161
Ieee1609Dot2ToBeSignedCertificate1
ITS-ContainerCurvatureITS-ContainerCurvatureConfidence1
ITS-ContainerCurvatureValue1
ITS-ContainerCurvatureCalculationMode
ITS-ContainerCurvatureConfidenceITS-ContainerCurvature1
ITS-ContainerCurvatureValueITS-ContainerCurvature1
ITS-ContainerDangerousEndOfQueueSubCauseCode
ITS-ContainerDangerousGoodsBasicITS-ContainerDangerousGoodsExtended1
ITS-ContainerDangerousGoodsExtendedITS-ContainerDangerousGoodsBasic1
ITS-ContainerPhoneNumber1
ITS-ContainerDangerousSituationSubCauseCode
ITS-ContainerDeltaAltitudeITS-ContainerDeltaReferencePosition1
ITS-ContainerDeltaLatitudeITS-ContainerDeltaReferencePosition1
ITS-ContainerDeltaLongitudeITS-ContainerDeltaReferencePosition1
ITS-ContainerDeltaReferencePositionITS-ContainerEventPoint1ITS-ContainerDeltaAltitude1
ITS-ContainerPathPoint1ITS-ContainerDeltaLatitude1
ITS-ContainerDeltaLongitude1
ITS-ContainerDigitalMapITS-ContainerReferencePosition1
ITS-ContainerDriveDirection
ITS-ContainerDrivingLaneStatusITS-ContainerClosedLanes1
Ieee1609Dot2BaseTypesDurationIeee1609Dot2BaseTypesValidityPeriod1Ieee1609Dot2BaseTypesUint167
Ieee1609Dot2BaseTypesEccP256CurvePointIeee1609Dot2BaseTypesBasePublicEncryptionKey2
Ieee1609Dot2BaseTypesEcdsaP256Signature1
Ieee1609Dot2BaseTypesEciesP256EncryptedKey1
Ieee1609Dot2BaseTypesPublicVerificationKey2
Ieee1609Dot2VerificationKeyIndicator1
Ieee1609Dot2BaseTypesEccP384CurvePointIeee1609Dot2BaseTypesEcdsaP384Signature1
Ieee1609Dot2BaseTypesPublicVerificationKey1
Ieee1609Dot2BaseTypesEcdsaP256SignatureIeee1609Dot2BaseTypesSignature2Ieee1609Dot2BaseTypesEccP256CurvePoint1
Ieee1609Dot2BaseTypesEcdsaP384SignatureIeee1609Dot2BaseTypesSignature1Ieee1609Dot2BaseTypesEccP384CurvePoint1
Ieee1609Dot2BaseTypesEciesP256EncryptedKeyIeee1609Dot2EncryptedDataEncryptionKey2Ieee1609Dot2BaseTypesEccP256CurvePoint1
Ieee1609Dot2BaseTypesElevationIeee1609Dot2BaseTypesThreeDLocation1Ieee1609Dot2BaseTypesUint161
ITS-ContainerEmbarkationStatus
ITS-ContainerEmergencyPriority
ITS-ContainerEmergencyVehicleApproachingSubCauseCode
Ieee1609Dot2EncryptedDataIeee1609Dot2Ieee1609Dot2Content1Ieee1609Dot2SequenceOfRecipientInfo1
Ieee1609Dot2SymmetricCiphertext1
Ieee1609Dot2EncryptedDataEncryptionKeyIeee1609Dot2PKRecipientInfo1Ieee1609Dot2BaseTypesEciesP256EncryptedKey2
Ieee1609Dot2BaseTypesEncryptionKeyIeee1609Dot2HeaderInfo1Ieee1609Dot2BaseTypesPublicEncryptionKey1
Ieee1609Dot2BaseTypesSymmetricEncryptionKey1
Ieee1609Dot2EndEntityTypeIeee1609Dot2PsidGroupPermissions1
ITS-ContainerEnergyStorageType
ITS-ContainerEventHistoryITS-ContainerEventPoint1
ITS-ContainerEventPointITS-ContainerEventHistory1ITS-ContainerDeltaReferencePosition1
ITS-ContainerInformationQuality1
ITS-ContainerPathDeltaTime1
Ieee1609Dot2ExplicitCertificateIeee1609Dot2Certificate1Ieee1609Dot2CertificateBase1
ITS-ContainerExteriorLights
Ieee1609Dot2BaseTypesGeographicRegionIeee1609Dot2ToBeSignedCertificate1Ieee1609Dot2BaseTypesCircularRegion1
Ieee1609Dot2BaseTypesPolygonalRegion1
Ieee1609Dot2BaseTypesSequenceOfIdentifiedRegion1
Ieee1609Dot2BaseTypesSequenceOfRectangularRegion1
Ieee1609Dot2BaseTypesGroupLinkageValueIeee1609Dot2LinkageData1
ITS-ContainerHardShoulderStatusITS-ContainerClosedLanes2
Ieee1609Dot2BaseTypesHashAlgorithmIeee1609Dot2IssuerIdentifier1
Ieee1609Dot2SignedData1
Ieee1609Dot2HashedDataIeee1609Dot2SignedDataPayload1
Ieee1609Dot2BaseTypesHashedId10
Ieee1609Dot2BaseTypesHashedId3Ieee1609Dot2HeaderInfo1
Ieee1609Dot2MissingCrlIdentifier1
Ieee1609Dot2BaseTypesSequenceOfHashedId31
Ieee1609Dot2ToBeSignedCertificate1
Ieee1609Dot2BaseTypesHashedId32
Ieee1609Dot2BaseTypesHashedId8Ieee1609Dot2IssuerIdentifier2
Ieee1609Dot2PKRecipientInfo1
Ieee1609Dot2PreSharedKeyRecipientInfo1
Ieee1609Dot2SignerIdentifier1
Ieee1609Dot2SymmRecipientInfo1
ITS-ContainerHazardousLocation-AnimalOnTheRoadSubCauseCode
ITS-ContainerHazardousLocation-DangerousCurveSubCauseCode
ITS-ContainerHazardousLocation-ObstacleOnTheRoadSubCauseCode
ITS-ContainerHazardousLocation-SurfaceConditionSubCauseCode
Ieee1609Dot2HeaderInfoIeee1609Dot2ToBeSignedData1Ieee1609Dot2Certificate1
Ieee1609Dot2ContributedExtensionBlocks1
Ieee1609Dot2BaseTypesEncryptionKey1
Ieee1609Dot2BaseTypesHashedId31
Ieee1609Dot2MissingCrlIdentifier1
Ieee1609Dot2PduFunctionalType1
Ieee1609Dot2BaseTypesPsid1
Ieee1609Dot2BaseTypesSequenceOfHashedId31
Ieee1609Dot2BaseTypesThreeDLocation1
Ieee1609Dot2BaseTypesTime642
Ieee1609Dot2HeaderInfoContributorIdIeee1609Dot2etsiHeaderInfoContributorId1
Ieee1609Dot2IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION1
ITS-ContainerHeadingITS-ContainerHeadingConfidence1
ITS-ContainerHeadingValue1
ITS-ContainerHeadingConfidenceITS-ContainerHeading1
ITS-ContainerHeadingValueITS-ContainerHeading1
ITS-ContainerPosConfidenceEllipse1
ITS-ContainerHeightLonCarr
Ieee1609Dot2BaseTypesHostnameIeee1609Dot2CertificateId1
ITS-ContainerHumanPresenceOnTheRoadSubCauseCode
ITS-ContainerHumanProblemSubCauseCode
EtsiTs103759AsrBsmIdBsmTgtEtsiTs103759AsrBsmc-BsmTgt-BeaconCommon1Ieee1609Dot2BaseTypesUint81
EtsiTs103759AsrBsmc-BsmTgt-LongAccCommon1
EtsiTs103759AsrBsmc-BsmTgt-PositionCommon1
EtsiTs103759AsrBsmc-BsmTgt-SecurityCommon1
EtsiTs103759AsrBsmc-BsmTgt-SpeedCommon1
EtsiTs103759AsrBsmc-BsmTgt-StaticCommon1
EtsiTs103759AsrCamIdCamTgtEtsiTs103759AsrCamc-CamTgt-BeaconCommon1Ieee1609Dot2BaseTypesUint81
EtsiTs103759AsrCamc-CamTgt-LongAccCommon1
EtsiTs103759AsrCamc-CamTgt-PositionCommon1
EtsiTs103759AsrCamc-CamTgt-SecurityCommon1
EtsiTs103759AsrCamc-CamTgt-SpeedCommon1
EtsiTs103759AsrCamc-CamTgt-StaticCommon1
Ieee1609Dot2BaseTypesIdentifiedRegionIeee1609Dot2BaseTypesSequenceOfIdentifiedRegion1Ieee1609Dot2BaseTypesCountryAndRegions1
Ieee1609Dot2BaseTypesCountryAndSubregions1
Ieee1609Dot2BaseTypesCountryOnly1
EtsiTs103759MbrCommonObservationsIdMbObsEtsiTs103759MbrCommonObservationsc-ObsBeacon-IntervalTooSmall1Ieee1609Dot2BaseTypesUint81
EtsiTs103759MbrCommonObservationsc-ObsLongAcc-Implausible-Brake1
EtsiTs103759MbrCommonObservationsc-ObsLongAcc-ValueTooLarge1
EtsiTs103759MbrCommonObservationsc-ObsLongAcc-ValueTooLarge-ThresholdNoContext1
EtsiTs103759MbrCommonObservationsc-ObsPos-IncWithPrev-TooFar1
EtsiTs103759MbrCommonObservationsc-ObsPos-IncWithPrev-TooSmall1
EtsiTs103759MbrCommonObservationsc-ObsPosition-ChangeTooLarge1
EtsiTs103759MbrCommonObservationsc-ObsSecurity-HeaderIncWithSecurityProfile1
EtsiTs103759MbrCommonObservationsc-ObsSecurity-HeaderLocationOutsideCertificateValidity1
EtsiTs103759MbrCommonObservationsc-ObsSecurity-HeaderPsidIncWithCertificate1
EtsiTs103759MbrCommonObservationsc-ObsSecurity-HeaderTimeOutsideCertificateValidity1
EtsiTs103759MbrCommonObservationsc-ObsSecurity-MessageIdIncWithHeaderInfo1
EtsiTs103759MbrCommonObservationsc-ObsSecurity-MessageIncWithSsp1
EtsiTs103759MbrCommonObservationsc-ObsSecurity-MessageLocationOutsideCertificateValidity1
EtsiTs103759MbrCommonObservationsc-ObsSpeed-ChangeTooLarge1
EtsiTs103759MbrCommonObservationsc-ObsSpeed-ValueTooLarge-DriveDirectionReverse1
EtsiTs103759MbrCommonObservationsc-ObsSpeed-ValueTooLarge-ThresholdNoContext1
EtsiTs103759MbrCommonObservationsc-ObsSpeed-ValueTooLarge-VehicleType1
EtsiTs103759MbrCommonObservationsc-ObsStatic-Change1
EtsiTs103759IdObsPduEtsiTs103759c-ObsPdu-etsiGn1Ieee1609Dot2BaseTypesUint81
EtsiTs103759c-ObsPdu-ieee1609Dot2Data1
EtsiTs103759c-ObsPdu-wsmp1
Ieee1609Dot2Ieee1609Dot2ContentIeee1609Dot2Ieee1609Dot2Data1Ieee1609Dot2EncryptedData1
Ieee1609Dot2BaseTypesOpaque2
Ieee1609Dot2SignedData1
Ieee1609Dot2Ieee1609Dot2DataIeee1609Dot2Countersignature1Ieee1609Dot2Ieee1609Dot2Content1
Ieee1609Dot2SignedDataPayload1Ieee1609Dot2BaseTypesUint81
Ieee1609Dot2ImplicitCertificateIeee1609Dot2Certificate1Ieee1609Dot2CertificateBase1
ITS-ContainerInformationQualityITS-ContainerEventPoint1
Ieee1609Dot2IssuerIdentifierIeee1609Dot2CertificateBase1Ieee1609Dot2BaseTypesHashAlgorithm1
Ieee1609Dot2BaseTypesHashedId82
ITS-ContainerItineraryPathITS-ContainerReferencePosition1
ITS-ContainerItsPduHeaderITS-ContainerStationID1
Ieee1609Dot2BaseTypesIValueIeee1609Dot2LinkageData1Ieee1609Dot2BaseTypesUint161
Ieee1609Dot2BaseTypesKnownLatitudeIeee1609Dot2BaseTypesNinetyDegreeInt1
Ieee1609Dot2BaseTypesKnownLongitudeIeee1609Dot2BaseTypesOneEightyDegreeInt1
Ieee1609Dot2BaseTypesLaId
ITS-ContainerLanePosition
ITS-ContainerLateralAccelerationITS-ContainerAccelerationConfidence1
ITS-ContainerLateralAccelerationValue1
ITS-ContainerLateralAccelerationValueITS-ContainerLateralAcceleration1
Ieee1609Dot2BaseTypesLatitudeIeee1609Dot2BaseTypesThreeDLocation1Ieee1609Dot2BaseTypesNinetyDegreeInt1
Ieee1609Dot2BaseTypesTwoDLocation1
ITS-ContainerLatitudeITS-ContainerCenDsrcTollingZone1
ITS-ContainerProtectedCommunicationZone1
ITS-ContainerReferencePosition1
ITS-ContainerLightBarSirenInUse
Ieee1609Dot2LinkageDataIeee1609Dot2CertificateId1Ieee1609Dot2BaseTypesGroupLinkageValue1
Ieee1609Dot2BaseTypesIValue1
Ieee1609Dot2BaseTypesLinkageValue1
Ieee1609Dot2BaseTypesLinkageSeed
Ieee1609Dot2BaseTypesLinkageValueIeee1609Dot2LinkageData1
EtsiTs103759MbrCommonObservationsLongAcc-Implausible-BrakeEtsiTs103759MbrCommonObservationsobs-LongAcc-Implausible-Brake1
EtsiTs103759MbrCommonObservationsLongAcc-ValueTooLargeEtsiTs103759MbrCommonObservationsobs-LongAcc-ValueTooLarge1
EtsiTs103759MbrCommonObservationsLongAcc-ValueTooLarge-ThresholdNoContextEtsiTs103759MbrCommonObservationsobs-LongAcc-ValueTooLarge-ThresholdNoContext1Ieee1609Dot2BaseTypesUint161
Ieee1609Dot2BaseTypesLongitudeIeee1609Dot2BaseTypesThreeDLocation1Ieee1609Dot2BaseTypesOneEightyDegreeInt1
Ieee1609Dot2BaseTypesTwoDLocation1
ITS-ContainerLongitudeITS-ContainerCenDsrcTollingZone1
ITS-ContainerProtectedCommunicationZone1
ITS-ContainerReferencePosition1
ITS-ContainerLongitudinalAccelerationITS-ContainerAccelerationConfidence1
ITS-ContainerLongitudinalAccelerationValue1
ITS-ContainerLongitudinalAccelerationValueITS-ContainerLongitudinalAcceleration1
EtsiTs103759MbrEtsiTs103759AidSpecificReport1
Ieee1609Dot2BaseTypesThreeDLocation1
Ieee1609Dot2BaseTypesTime641
Ieee1609Dot2BaseTypesUint81
Ieee1609Dot2MissingCrlIdentifierIeee1609Dot2HeaderInfo1Ieee1609Dot2BaseTypesCrlSeries1
Ieee1609Dot2BaseTypesHashedId31
Ieee1609Dot2BaseTypesNinetyDegreeIntIeee1609Dot2BaseTypesKnownLatitude1
Ieee1609Dot2BaseTypesLatitude1
Ieee1609Dot2BaseTypesUnknownLatitude1
ITS-ContainerNumberOfOccupants
EtsiTs103759ObsPduEtsiGnEtsiTs103759SetObsPdu1Ieee1609Dot2BaseTypesOpaque1
EtsiTs103759ObsPduIeee1609Dot2DataEtsiTs103759SetObsPdu1Ieee1609Dot2BaseTypesOpaque1
EtsiTs103759ObsPduWsmpEtsiTs103759SetObsPdu1Ieee1609Dot2BaseTypesOpaque1
Ieee1609Dot2BaseTypesOneEightyDegreeIntIeee1609Dot2BaseTypesKnownLongitude1
Ieee1609Dot2BaseTypesLongitude1
Ieee1609Dot2BaseTypesUnknownLongitude1
Ieee1609Dot2BaseTypesOpaqueIeee1609Dot2AesCcmCiphertext1
Ieee1609Dot2Ieee1609Dot2Content2
EtsiTs103759ObsPduEtsiGn1
EtsiTs103759ObsPduIeee1609Dot2Data1
EtsiTs103759ObsPduWsmp1
ITS-ContainerOpeningDaysHours
ITS-ContainerPathDeltaTimeITS-ContainerEventPoint1
ITS-ContainerPathPoint1
ITS-ContainerPathHistoryITS-ContainerTraces1ITS-ContainerPathPoint1
ITS-ContainerPathPointITS-ContainerPathHistory1ITS-ContainerDeltaReferencePosition1
ITS-ContainerPathDeltaTime1
Ieee1609Dot2PduFunctionalTypeIeee1609Dot2HeaderInfo1
Ieee1609Dot2iso21177ExtendedAuth1
Ieee1609Dot2tlsHandshake1
ITS-ContainerPerformanceClass
ITS-ContainerPhoneNumberITS-ContainerDangerousGoodsExtended1
Ieee1609Dot2PKRecipientInfoIeee1609Dot2RecipientInfo3Ieee1609Dot2EncryptedDataEncryptionKey1
Ieee1609Dot2BaseTypesHashedId81
Ieee1609Dot2BaseTypesPolygonalRegionIeee1609Dot2BaseTypesGeographicRegion1Ieee1609Dot2BaseTypesTwoDLocation1
ITS-ContainerPosCentMass
ITS-ContainerPosConfidenceEllipseITS-ContainerReferencePosition1ITS-ContainerHeadingValue1
ITS-ContainerSemiAxisLength2
ITS-ContainerPosFrontAx
EtsiTs103759MbrCommonObservationsPos-IncWithPrev-TooFarEtsiTs103759MbrCommonObservationsobs-Pos-IncWithPrev-TooFar1Ieee1609Dot2BaseTypesUint161
EtsiTs103759MbrCommonObservationsPos-IncWithPrev-TooSmallEtsiTs103759MbrCommonObservationsobs-Pos-IncWithPrev-TooSmall1
EtsiTs103759MbrCommonObservationsPosition-ChangeTooLargeEtsiTs103759MbrCommonObservationsobs-Position-ChangeTooLarge1
ITS-ContainerPositioningSolutionType
ITS-ContainerPositionOfOccupants
ITS-ContainerPositionOfPillarsITS-ContainerPosPillar1
ITS-ContainerPosLonCarr
ITS-ContainerPosPillarITS-ContainerPositionOfPillars1
ITS-ContainerPostCrashSubCauseCode
Ieee1609Dot2PreSharedKeyRecipientInfoIeee1609Dot2RecipientInfo1Ieee1609Dot2BaseTypesHashedId81
ITS-ContainerProtectedCommunicationZoneITS-ContainerProtectedCommunicationZonesRSU1ITS-ContainerLatitude1
ITS-ContainerLongitude1
ITS-ContainerProtectedZoneID1
ITS-ContainerProtectedZoneRadius1
ITS-ContainerProtectedZoneType1
ITS-ContainerTimestampIts1
ITS-ContainerProtectedCommunicationZonesRSUITS-ContainerProtectedCommunicationZone1
ITS-ContainerProtectedZoneIDITS-ContainerCenDsrcTollingZoneID1
ITS-ContainerProtectedCommunicationZone1
ITS-ContainerProtectedZoneRadiusITS-ContainerProtectedCommunicationZone1
ITS-ContainerProtectedZoneTypeITS-ContainerProtectedCommunicationZone1
Ieee1609Dot2BaseTypesPsidEtsiTs103759C-ASR1
EtsiTs103759c-AsrAppAgnostic1
EtsiTs103759c-AsrBsm1
EtsiTs103759c-AsrCam1
EtsiTs103759c-AsrDenm1
Ieee1609Dot2HeaderInfo1
Ieee1609Dot2BaseTypesPsidSsp1
Ieee1609Dot2BaseTypesPsidSspRange1
Ieee1609Dot2BaseTypesSequenceOfPsid1
Ieee1609Dot2PsidGroupPermissionsIeee1609Dot2SequenceOfPsidGroupPermissions1Ieee1609Dot2EndEntityType1
Ieee1609Dot2SubjectPermissions1
Ieee1609Dot2BaseTypesPsidSspIeee1609Dot2BaseTypesSequenceOfPsidSsp1Ieee1609Dot2BaseTypesPsid1
Ieee1609Dot2BaseTypesServiceSpecificPermissions1
Ieee1609Dot2BaseTypesPsidSspRangeIeee1609Dot2BaseTypesSequenceOfPsidSspRange1Ieee1609Dot2BaseTypesPsid1
Ieee1609Dot2BaseTypesSspRange1
ITS-ContainerPtActivationITS-ContainerPtActivationData1
ITS-ContainerPtActivationType1
ITS-ContainerPtActivationDataITS-ContainerPtActivation1
ITS-ContainerPtActivationTypeITS-ContainerPtActivation1
Ieee1609Dot2BaseTypesPublicEncryptionKeyIeee1609Dot2BaseTypesEncryptionKey1Ieee1609Dot2BaseTypesBasePublicEncryptionKey1
Ieee1609Dot2ToBeSignedCertificate1Ieee1609Dot2BaseTypesSymmAlgorithm1
Ieee1609Dot2BaseTypesPublicVerificationKeyIeee1609Dot2VerificationKeyIndicator1Ieee1609Dot2BaseTypesEccP256CurvePoint2
Ieee1609Dot2BaseTypesEccP384CurvePoint1
Ieee1609Dot2RecipientInfoIeee1609Dot2SequenceOfRecipientInfo1Ieee1609Dot2PKRecipientInfo3
Ieee1609Dot2PreSharedKeyRecipientInfo1
Ieee1609Dot2SymmRecipientInfo1
Ieee1609Dot2BaseTypesRectangularRegionIeee1609Dot2BaseTypesSequenceOfRectangularRegion1Ieee1609Dot2BaseTypesTwoDLocation2
ITS-ContainerReferencePositionITS-ContainerDigitalMap1ITS-ContainerAltitude1
ITS-ContainerItineraryPath1ITS-ContainerLatitude1
ITS-ContainerLongitude1
ITS-ContainerPosConfidenceEllipse1
Ieee1609Dot2BaseTypesRegionAndSubregionsIeee1609Dot2BaseTypesSequenceOfRegionAndSubregions1Ieee1609Dot2BaseTypesSequenceOfUint161
Ieee1609Dot2BaseTypesUint81
ITS-ContainerRelevanceDistance
ITS-ContainerRelevanceTrafficDirection
ITS-ContainerRequestResponseIndication
ITS-ContainerRescueAndRecoveryWorkInProgressSubCauseCode
ITS-ContainerRestrictedTypesITS-ContainerStationType1
ITS-ContainerRoadType
ITS-ContainerRoadworksSubCauseCode
EtsiTs103759MbrCommonObservationsSecurity-HeaderIncWithSecurityProfileEtsiTs103759MbrCommonObservationsobs-Security-HeaderIncWithSecurityProfile1
EtsiTs103759MbrCommonObservationsSecurity-HeaderLocationOutsideCertificateValidityEtsiTs103759MbrCommonObservationsobs-Security-HeaderLocationOutsideCertificateValidity1
EtsiTs103759MbrCommonObservationsSecurity-HeaderPsidIncWithCertificateEtsiTs103759MbrCommonObservationsobs-Security-HeaderPsidIncWithCertificate1
EtsiTs103759MbrCommonObservationsSecurity-HeaderTimeOutsideCertificateValidityEtsiTs103759MbrCommonObservationsobs-Security-HeaderTimeOutsideCertificateValidity1
EtsiTs103759MbrCommonObservationsSecurity-MessageIdIncWithHeaderInfoEtsiTs103759MbrCommonObservationsobs-Security-MessageIdIncWithHeaderInfo1
EtsiTs103759MbrCommonObservationsSecurity-MessageIncWithSspEtsiTs103759MbrCommonObservationsobs-Security-MessageIncWithSsp1
EtsiTs103759MbrCommonObservationsSecurity-MessageLocationOutsideCertificateValidityEtsiTs103759MbrCommonObservationsobs-Security-MessageLocationOutsideCertificateValidity1
ITS-ContainerSemiAxisLengthITS-ContainerPosConfidenceEllipse2
ITS-ContainerSequenceNumberITS-ContainerActionID1
Ieee1609Dot2SequenceOfCertificateIeee1609Dot2SignerIdentifier1Ieee1609Dot2Certificate1
Ieee1609Dot2BaseTypesSequenceOfHashedId3Ieee1609Dot2HeaderInfo1Ieee1609Dot2BaseTypesHashedId31
Ieee1609Dot2BaseTypesSequenceOfIdentifiedRegionIeee1609Dot2BaseTypesGeographicRegion1Ieee1609Dot2BaseTypesIdentifiedRegion1
Ieee1609Dot2BaseTypesSequenceOfOctetStringIeee1609Dot2BaseTypesSspRange1
Ieee1609Dot2BaseTypesSequenceOfPsidIeee1609Dot2BaseTypesPsid1
Ieee1609Dot2SequenceOfPsidGroupPermissionsIeee1609Dot2ToBeSignedCertificate2Ieee1609Dot2PsidGroupPermissions1
Ieee1609Dot2BaseTypesSequenceOfPsidSspIeee1609Dot2ToBeSignedCertificate1Ieee1609Dot2BaseTypesPsidSsp1
Ieee1609Dot2BaseTypesSequenceOfPsidSspRangeIeee1609Dot2SubjectPermissions1Ieee1609Dot2BaseTypesPsidSspRange1
Ieee1609Dot2SequenceOfRecipientInfoIeee1609Dot2EncryptedData1Ieee1609Dot2RecipientInfo1
Ieee1609Dot2BaseTypesSequenceOfRectangularRegionIeee1609Dot2BaseTypesGeographicRegion1Ieee1609Dot2BaseTypesRectangularRegion1
Ieee1609Dot2BaseTypesSequenceOfRegionAndSubregionsIeee1609Dot2BaseTypesCountryAndSubregions1Ieee1609Dot2BaseTypesRegionAndSubregions1
Ieee1609Dot2BaseTypesSequenceOfUint16Ieee1609Dot2BaseTypesRegionAndSubregions1Ieee1609Dot2BaseTypesUint161
Ieee1609Dot2BaseTypesSequenceOfUint8Ieee1609Dot2BaseTypesCountryAndRegions1Ieee1609Dot2BaseTypesUint81
Ieee1609Dot2BaseTypesServiceSpecificPermissionsIeee1609Dot2BaseTypesPsidSsp1Ieee1609Dot2BaseTypesBitmapSsp1
ITS-ContainerSignalViolationSubCauseCode
Ieee1609Dot2BaseTypesSignatureIeee1609Dot2CertificateBase1Ieee1609Dot2BaseTypesEcdsaP256Signature2
Ieee1609Dot2SignedData1Ieee1609Dot2BaseTypesEcdsaP384Signature1
Ieee1609Dot2SignedDataIeee1609Dot2Ieee1609Dot2Content1Ieee1609Dot2BaseTypesHashAlgorithm1
Ieee1609Dot2BaseTypesSignature1
Ieee1609Dot2SignerIdentifier1
Ieee1609Dot2ToBeSignedData1
Ieee1609Dot2SignedDataPayloadIeee1609Dot2ToBeSignedData1Ieee1609Dot2HashedData1
Ieee1609Dot2Ieee1609Dot2Data1
Ieee1609Dot2SignerIdentifierIeee1609Dot2SignedData1Ieee1609Dot2BaseTypesHashedId81
Ieee1609Dot2SequenceOfCertificate1
ITS-ContainerSlowVehicleSubCauseCode
ITS-ContainerSpecialTransportType
ITS-ContainerSpeedITS-ContainerSpeedConfidence1
ITS-ContainerSpeedValue1
EtsiTs103759MbrCommonObservationsSpeed-ChangeTooLargeEtsiTs103759MbrCommonObservationsobs-Speed-ChangeTooLarge1
ITS-ContainerSpeedConfidenceITS-ContainerSpeed1
ITS-ContainerSpeedLimit
ITS-ContainerSpeedValueITS-ContainerSpeed1
EtsiTs103759MbrCommonObservationsSpeed-ValueTooLarge-DriveDirectionReverseEtsiTs103759MbrCommonObservationsobs-Speed-ValueTooLarge-DriveDirectionReverse1
EtsiTs103759MbrCommonObservationsSpeed-ValueTooLarge-ThresholdNoContextEtsiTs103759MbrCommonObservationsobs-Speed-ValueTooLarge-ThresholdNoContext1Ieee1609Dot2BaseTypesUint161
EtsiTs103759MbrCommonObservationsSpeed-ValueTooLarge-VehicleTypeEtsiTs103759MbrCommonObservationsobs-Speed-ValueTooLarge-VehicleType1
Ieee1609Dot2BaseTypesSspRangeIeee1609Dot2BaseTypesPsidSspRange1Ieee1609Dot2BaseTypesBitmapSspRange1
Ieee1609Dot2BaseTypesSequenceOfOctetString1
EtsiTs103759MbrCommonObservationsStatic-ChangeEtsiTs103759MbrCommonObservationsobs-Static-Change1
ITS-ContainerStationarySince
ITS-ContainerStationaryVehicleSubCauseCode
ITS-ContainerStationIDITS-ContainerActionID1
ITS-ContainerItsPduHeader1
ITS-ContainerStationTypeITS-ContainerRestrictedTypes1
ITS-ContainerSteeringWheelAngleITS-ContainerSteeringWheelAngleConfidence1
ITS-ContainerSteeringWheelAngleValue1
ITS-ContainerSteeringWheelAngleConfidenceITS-ContainerSteeringWheelAngle1
ITS-ContainerSteeringWheelAngleValueITS-ContainerSteeringWheelAngle1
ITS-ContainerSubCauseCodeTypeITS-ContainerCauseCode1
Ieee1609Dot2BaseTypesSubjectAssuranceIeee1609Dot2ToBeSignedCertificate1
Ieee1609Dot2SubjectPermissionsIeee1609Dot2PsidGroupPermissions1Ieee1609Dot2BaseTypesSequenceOfPsidSspRange1
Ieee1609Dot2BaseTypesSymmAlgorithmIeee1609Dot2BaseTypesPublicEncryptionKey1
Ieee1609Dot2SymmetricCiphertextIeee1609Dot2EncryptedData1Ieee1609Dot2AesCcmCiphertext1
Ieee1609Dot2SymmRecipientInfo1
Ieee1609Dot2BaseTypesSymmetricEncryptionKeyIeee1609Dot2BaseTypesEncryptionKey1
Ieee1609Dot2SymmRecipientInfoIeee1609Dot2RecipientInfo1Ieee1609Dot2BaseTypesHashedId81
Ieee1609Dot2SymmetricCiphertext1
ITS-ContainerTemperature
Ieee1609Dot2BaseTypesThreeDLocationIeee1609Dot2HeaderInfo1Ieee1609Dot2BaseTypesElevation1
EtsiTs103759Mbr1Ieee1609Dot2BaseTypesLatitude1
Ieee1609Dot2BaseTypesLongitude1
Ieee1609Dot2BaseTypesTime32Ieee1609Dot2BaseTypesValidityPeriod1Ieee1609Dot2BaseTypesUint321
Ieee1609Dot2BaseTypesTime64Ieee1609Dot2HeaderInfo2Ieee1609Dot2BaseTypesUint641
EtsiTs103759Mbr1
ITS-ContainerTimestampItsITS-ContainerProtectedCommunicationZone1
Ieee1609Dot2ToBeSignedCertificateIeee1609Dot2CertificateBase1Ieee1609Dot2CertificateId1
Ieee1609Dot2BaseTypesCrlSeries1
Ieee1609Dot2BaseTypesGeographicRegion1
Ieee1609Dot2BaseTypesHashedId31
Ieee1609Dot2BaseTypesPublicEncryptionKey1
Ieee1609Dot2SequenceOfPsidGroupPermissions2
Ieee1609Dot2BaseTypesSequenceOfPsidSsp1
Ieee1609Dot2BaseTypesSubjectAssurance1
Ieee1609Dot2BaseTypesValidityPeriod1
Ieee1609Dot2VerificationKeyIndicator1
Ieee1609Dot2ToBeSignedDataIeee1609Dot2SignedData1Ieee1609Dot2HeaderInfo1
Ieee1609Dot2SignedDataPayload1
ITS-ContainerTracesITS-ContainerPathHistory1
ITS-ContainerTrafficConditionSubCauseCode
ITS-ContainerTrafficRule
ITS-ContainerTransmissionInterval
ITS-ContainerTurningRadius
Ieee1609Dot2BaseTypesTwoDLocationIeee1609Dot2BaseTypesCircularRegion1Ieee1609Dot2BaseTypesLatitude1
Ieee1609Dot2BaseTypesPolygonalRegion1Ieee1609Dot2BaseTypesLongitude1
Ieee1609Dot2BaseTypesRectangularRegion2
Ieee1609Dot2BaseTypesUint16Ieee1609Dot2BaseTypesCircularRegion1
Ieee1609Dot2BaseTypesCountryOnly1
Ieee1609Dot2BaseTypesCrlSeries1
Ieee1609Dot2BaseTypesDuration7
Ieee1609Dot2BaseTypesElevation1
Ieee1609Dot2BaseTypesIValue1
EtsiTs103759MbrCommonObservationsLongAcc-ValueTooLarge-ThresholdNoContext1
EtsiTs103759MbrCommonObservationsPos-IncWithPrev-TooFar1
Ieee1609Dot2BaseTypesSequenceOfUint161
EtsiTs103759MbrCommonObservationsSpeed-ValueTooLarge-ThresholdNoContext1
Ieee1609Dot2BaseTypesUint3
Ieee1609Dot2BaseTypesUint32Ieee1609Dot2BaseTypesTime321
Ieee1609Dot2BaseTypesUint64Ieee1609Dot2BaseTypesTime641
Ieee1609Dot2BaseTypesUint8EtsiTs103759C-2ENT1
Ieee1609Dot2CertificateBase1
EtsiTs103759AsrBsmIdBsmTgt1
EtsiTs103759AsrCamIdCamTgt1
EtsiTs103759MbrCommonObservationsIdMbObs1
EtsiTs103759IdObsPdu1
Ieee1609Dot2Ieee1609Dot2Data1
EtsiTs103759Mbr1
Ieee1609Dot2BaseTypesRegionAndSubregions1
Ieee1609Dot2BaseTypesSequenceOfUint81
EtsiTs103759V2xPduStream1
Ieee1609Dot2BaseTypesUnknownLatitudeIeee1609Dot2BaseTypesNinetyDegreeInt1
Ieee1609Dot2BaseTypesUnknownLongitudeIeee1609Dot2BaseTypesOneEightyDegreeInt1
EtsiTs103759V2xPduStreamEtsiTs103759TemplateAsr3Ieee1609Dot2Certificate1
EtsiTs103759C-OBS-PDU2
EtsiTs103759SetObsPdu2
Ieee1609Dot2BaseTypesUint81
ITS-ContainerValidityDuration
Ieee1609Dot2BaseTypesValidityPeriodIeee1609Dot2ToBeSignedCertificate1Ieee1609Dot2BaseTypesDuration1
Ieee1609Dot2BaseTypesTime321
ITS-ContainerVDSITS-ContainerVehicleIdentification1
ITS-ContainerVehicleBreakdownSubCauseCode
ITS-ContainerVehicleIdentificationITS-ContainerVDS1
ITS-ContainerWMInumber1
ITS-ContainerVehicleLengthITS-ContainerVehicleLengthConfidenceIndication1
ITS-ContainerVehicleLengthValue1
ITS-ContainerVehicleLengthConfidenceIndicationITS-ContainerVehicleLength1
ITS-ContainerVehicleLengthValueITS-ContainerVehicleLength1
ITS-ContainerVehicleMass
ITS-ContainerVehicleRole
ITS-ContainerVehicleWidth
Ieee1609Dot2VerificationKeyIndicatorIeee1609Dot2ToBeSignedCertificate1Ieee1609Dot2BaseTypesEccP256CurvePoint1
Ieee1609Dot2BaseTypesPublicVerificationKey1
ITS-ContainerVerticalAccelerationITS-ContainerAccelerationConfidence1
ITS-ContainerVerticalAccelerationValue1
ITS-ContainerVerticalAccelerationValueITS-ContainerVerticalAcceleration1
ITS-ContainerWheelBaseVehicle
ITS-ContainerWMInumberITS-ContainerVehicleIdentification1
ITS-ContainerWrongWayDrivingSubCauseCode
ITS-ContainerYawRateITS-ContainerYawRateConfidence1
ITS-ContainerYawRateValue1
ITS-ContainerYawRateConfidenceITS-ContainerYawRate1
ITS-ContainerYawRateValueITS-ContainerYawRate1
+
Value Assignments Cross Reference Table
Value Assignments Cross Reference Table + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Value Assignments Cross Reference
Module nameValue nameTypeIncoming referencesOutgoing references
Module nameEntity nameNumberModule nameEntity nameNumber
EtsiTs103759c-AsrAppAgnosticPsidEtsiTs103759SetAsr1Ieee1609Dot2BaseTypesPsid1
EtsiTs103759c-AsrBsmPsidEtsiTs103759SetAsr1Ieee1609Dot2BaseTypesPsid1
EtsiTs103759c-AsrCamPsidEtsiTs103759SetAsr1Ieee1609Dot2BaseTypesPsid1
EtsiTs103759c-AsrDenmPsidEtsiTs103759SetAsr1Ieee1609Dot2BaseTypesPsid1
EtsiTs103759AsrBsmc-BsmTgt-BeaconCommonIdBsmTgtEtsiTs103759AsrBsmIdBsmTgt1
EtsiTs103759AsrBsmc-BsmTgt-LongAccCommonIdBsmTgtEtsiTs103759AsrBsmSetMbObsTgtsBsm1EtsiTs103759AsrBsmIdBsmTgt1
EtsiTs103759AsrBsmc-BsmTgt-PositionCommonIdBsmTgtEtsiTs103759AsrBsmSetMbObsTgtsBsm1EtsiTs103759AsrBsmIdBsmTgt1
EtsiTs103759AsrBsmc-BsmTgt-SecurityCommonIdBsmTgtEtsiTs103759AsrBsmIdBsmTgt1
EtsiTs103759AsrBsmc-BsmTgt-SpeedCommonIdBsmTgtEtsiTs103759AsrBsmSetMbObsTgtsBsm1EtsiTs103759AsrBsmIdBsmTgt1
EtsiTs103759AsrBsmc-BsmTgt-StaticCommonIdBsmTgtEtsiTs103759AsrBsmIdBsmTgt1
EtsiTs103759AsrCamc-CamTgt-BeaconCommonIdCamTgtEtsiTs103759AsrCamSetMbObsTgtsCam1EtsiTs103759AsrCamIdCamTgt1
EtsiTs103759AsrCamc-CamTgt-LongAccCommonIdCamTgtEtsiTs103759AsrCamSetMbObsTgtsCam1EtsiTs103759AsrCamIdCamTgt1
EtsiTs103759AsrCamc-CamTgt-PositionCommonIdCamTgtEtsiTs103759AsrCamSetMbObsTgtsCam1EtsiTs103759AsrCamIdCamTgt1
EtsiTs103759AsrCamc-CamTgt-SecurityCommonIdCamTgtEtsiTs103759AsrCamSetMbObsTgtsCam1EtsiTs103759AsrCamIdCamTgt1
EtsiTs103759AsrCamc-CamTgt-SpeedCommonIdCamTgtEtsiTs103759AsrCamSetMbObsTgtsCam1EtsiTs103759AsrCamIdCamTgt1
EtsiTs103759AsrCamc-CamTgt-StaticCommonIdCamTgtEtsiTs103759AsrCamSetMbObsTgtsCam1EtsiTs103759AsrCamIdCamTgt1
EtsiTs103759MbrCommonObservationsc-ObsBeacon-IntervalTooSmallIdMbObsEtsiTs103759MbrCommonObservationsobs-Beacon-IntervalTooSmall1EtsiTs103759MbrCommonObservationsIdMbObs1
EtsiTs103759MbrCommonObservationsc-ObsLongAcc-Implausible-BrakeIdMbObsEtsiTs103759MbrCommonObservationsobs-LongAcc-Implausible-Brake1EtsiTs103759MbrCommonObservationsIdMbObs1
EtsiTs103759MbrCommonObservationsc-ObsLongAcc-ValueTooLargeIdMbObsEtsiTs103759MbrCommonObservationsobs-LongAcc-ValueTooLarge1EtsiTs103759MbrCommonObservationsIdMbObs1
EtsiTs103759MbrCommonObservationsc-ObsLongAcc-ValueTooLarge-ThresholdNoContextIdMbObsEtsiTs103759MbrCommonObservationsobs-LongAcc-ValueTooLarge-ThresholdNoContext1EtsiTs103759MbrCommonObservationsIdMbObs1
EtsiTs103759c-ObsPdu-etsiGnIdObsPduEtsiTs103759SetObsPdu1EtsiTs103759IdObsPdu1
EtsiTs103759c-ObsPdu-ieee1609Dot2DataIdObsPduEtsiTs103759SetObsPdu1EtsiTs103759IdObsPdu1
EtsiTs103759c-ObsPdu-wsmpIdObsPduEtsiTs103759SetObsPdu1EtsiTs103759IdObsPdu1
EtsiTs103759MbrCommonObservationsc-ObsPos-IncWithPrev-TooFarIdMbObsEtsiTs103759MbrCommonObservationsobs-Pos-IncWithPrev-TooFar1EtsiTs103759MbrCommonObservationsIdMbObs1
EtsiTs103759MbrCommonObservationsc-ObsPos-IncWithPrev-TooSmallIdMbObsEtsiTs103759MbrCommonObservationsobs-Pos-IncWithPrev-TooSmall1EtsiTs103759MbrCommonObservationsIdMbObs1
EtsiTs103759MbrCommonObservationsc-ObsPosition-ChangeTooLargeIdMbObsEtsiTs103759MbrCommonObservationsobs-Position-ChangeTooLarge1EtsiTs103759MbrCommonObservationsIdMbObs1
EtsiTs103759MbrCommonObservationsc-ObsSecurity-HeaderIncWithSecurityProfileIdMbObsEtsiTs103759MbrCommonObservationsobs-Security-HeaderIncWithSecurityProfile1EtsiTs103759MbrCommonObservationsIdMbObs1
EtsiTs103759MbrCommonObservationsc-ObsSecurity-HeaderLocationOutsideCertificateValidityIdMbObsEtsiTs103759MbrCommonObservationsobs-Security-HeaderLocationOutsideCertificateValidity1EtsiTs103759MbrCommonObservationsIdMbObs1
EtsiTs103759MbrCommonObservationsc-ObsSecurity-HeaderPsidIncWithCertificateIdMbObsEtsiTs103759MbrCommonObservationsobs-Security-HeaderPsidIncWithCertificate1EtsiTs103759MbrCommonObservationsIdMbObs1
EtsiTs103759MbrCommonObservationsc-ObsSecurity-HeaderTimeOutsideCertificateValidityIdMbObsEtsiTs103759MbrCommonObservationsobs-Security-HeaderTimeOutsideCertificateValidity1EtsiTs103759MbrCommonObservationsIdMbObs1
EtsiTs103759MbrCommonObservationsc-ObsSecurity-MessageIdIncWithHeaderInfoIdMbObsEtsiTs103759MbrCommonObservationsobs-Security-MessageIdIncWithHeaderInfo1EtsiTs103759MbrCommonObservationsIdMbObs1
EtsiTs103759MbrCommonObservationsc-ObsSecurity-MessageIncWithSspIdMbObsEtsiTs103759MbrCommonObservationsobs-Security-MessageIncWithSsp1EtsiTs103759MbrCommonObservationsIdMbObs1
EtsiTs103759MbrCommonObservationsc-ObsSecurity-MessageLocationOutsideCertificateValidityIdMbObsEtsiTs103759MbrCommonObservationsobs-Security-MessageLocationOutsideCertificateValidity1EtsiTs103759MbrCommonObservationsIdMbObs1
EtsiTs103759MbrCommonObservationsc-ObsSpeed-ChangeTooLargeIdMbObsEtsiTs103759MbrCommonObservationsobs-Speed-ChangeTooLarge1EtsiTs103759MbrCommonObservationsIdMbObs1
EtsiTs103759MbrCommonObservationsc-ObsSpeed-ValueTooLarge-DriveDirectionReverseIdMbObsEtsiTs103759MbrCommonObservationsobs-Speed-ValueTooLarge-DriveDirectionReverse1EtsiTs103759MbrCommonObservationsIdMbObs1
EtsiTs103759MbrCommonObservationsc-ObsSpeed-ValueTooLarge-ThresholdNoContextIdMbObsEtsiTs103759MbrCommonObservationsobs-Speed-ValueTooLarge-ThresholdNoContext1EtsiTs103759MbrCommonObservationsIdMbObs1
EtsiTs103759MbrCommonObservationsc-ObsSpeed-ValueTooLarge-VehicleTypeIdMbObsEtsiTs103759MbrCommonObservationsobs-Speed-ValueTooLarge-VehicleType1EtsiTs103759MbrCommonObservationsIdMbObs1
EtsiTs103759MbrCommonObservationsc-ObsStatic-ChangeIdMbObsEtsiTs103759MbrCommonObservationsobs-Static-Change1EtsiTs103759MbrCommonObservationsIdMbObs1
Ieee1609Dot2etsiHeaderInfoContributorIdHeaderInfoContributorIdIeee1609Dot2Ieee1609Dot2HeaderInfoContributedExtensions1Ieee1609Dot2HeaderInfoContributorId1
Ieee1609Dot2iso21177ExtendedAuthPduFunctionalTypeIeee1609Dot2PduFunctionalType1
Ieee1609Dot2tlsHandshakePduFunctionalTypeIeee1609Dot2PduFunctionalType1
+
Class Assignments Cross Reference Table
Class Assignments Cross Reference Table + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class Assignments Cross Reference
Module nameClass nameIncoming referencesOutgoing references
Module nameEntity nameNumberModule nameEntity nameNumber
EtsiTs103759C-2ENTEtsiTs103759C-ASR-EV1Ieee1609Dot2BaseTypesUint81
EtsiTs103759C-ASR-OBS-BY-TGT1
EtsiTs103759C-ASR-SINGLE-OBS1
EtsiTs103759C-OBS-PDU1
EtsiTs103759C-ASREtsiTs103759AidSpecificReport2Ieee1609Dot2BaseTypesPsid1
EtsiTs103759SetAsr1
EtsiTs103759C-ASR-EVEtsiTs103759NonV2xPduEvidenceItem9EtsiTs103759C-2ENT1
EtsiTs103759AsrBsmSetMbEvBsm1
EtsiTs103759AsrCamSetMbEvCam1
EtsiTs103759TemplateAsr3
EtsiTs103759C-ASR-OBS-BY-TGTEtsiTs103759ObservationsByTarget9EtsiTs103759C-2ENT1
EtsiTs103759AsrBsmSetMbObsTgtsBsm1
EtsiTs103759AsrCamSetMbObsTgtsCam1
EtsiTs103759TemplateAsr3
EtsiTs103759C-ASR-SINGLE-OBSEtsiTs103759MbSingleObservation30EtsiTs103759C-2ENT1
EtsiTs103759MbrCommonObservationsobs-Beacon-IntervalTooSmall1
EtsiTs103759MbrCommonObservationsobs-LongAcc-Implausible-Brake1
EtsiTs103759MbrCommonObservationsobs-LongAcc-ValueTooLarge1
EtsiTs103759MbrCommonObservationsobs-LongAcc-ValueTooLarge-ThresholdNoContext1
EtsiTs103759MbrCommonObservationsobs-Pos-IncWithPrev-TooFar1
EtsiTs103759MbrCommonObservationsobs-Pos-IncWithPrev-TooSmall1
EtsiTs103759MbrCommonObservationsobs-Position-ChangeTooLarge1
EtsiTs103759MbrCommonObservationsobs-Security-HeaderIncWithSecurityProfile1
EtsiTs103759MbrCommonObservationsobs-Security-HeaderLocationOutsideCertificateValidity1
EtsiTs103759MbrCommonObservationsobs-Security-HeaderPsidIncWithCertificate1
EtsiTs103759MbrCommonObservationsobs-Security-HeaderTimeOutsideCertificateValidity1
EtsiTs103759MbrCommonObservationsobs-Security-MessageIdIncWithHeaderInfo1
EtsiTs103759MbrCommonObservationsobs-Security-MessageIncWithSsp1
EtsiTs103759MbrCommonObservationsobs-Security-MessageLocationOutsideCertificateValidity1
EtsiTs103759MbrCommonObservationsobs-Speed-ChangeTooLarge1
EtsiTs103759MbrCommonObservationsobs-Speed-ValueTooLarge-DriveDirectionReverse1
EtsiTs103759MbrCommonObservationsobs-Speed-ValueTooLarge-ThresholdNoContext1
EtsiTs103759MbrCommonObservationsobs-Speed-ValueTooLarge-VehicleType1
EtsiTs103759MbrCommonObservationsobs-Static-Change1
EtsiTs103759MbrCommonObservationsSetMbObsCompleteBeacon1
EtsiTs103759MbrCommonObservationsSetMbObsCompleteSecurity1
EtsiTs103759MbrCommonObservationsSetMbObsCompleteStatic1
EtsiTs103759MbrCommonObservationsSetMbObsEtsiOnlyLongAcc1
EtsiTs103759MbrCommonObservationsSetMbObsEtsiOnlyPosition1
EtsiTs103759MbrCommonObservationsSetMbObsEtsiOnlySpeed1
EtsiTs103759AsrBsmSetMbObsLongAcc-Bsm1
EtsiTs103759AsrBsmSetMbObsPosition-Bsm1
EtsiTs103759AsrBsmSetMbObsSpeed-Bsm1
EtsiTs103759C-OBS-PDUEtsiTs103759SetObsPdu1EtsiTs103759C-2ENT1
EtsiTs103759V2xPduStream2
Ieee1609Dot2IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSIONIeee1609Dot2ContributedExtensionBlock2Ieee1609Dot2HeaderInfoContributorId1
Ieee1609Dot2Ieee1609Dot2HeaderInfoContributedExtensions1
+
Object Assignments Cross Reference Table
Object Assignments Cross Reference Table + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Object Assignments Cross Reference
Module nameObject nameClassIncoming referencesOutgoing references
Module nameEntity nameNumberModule nameEntity nameNumber
EtsiTs103759MbrCommonObservationsobs-Beacon-IntervalTooSmallC-ASR-SINGLE-OBSEtsiTs103759MbrCommonObservationsSetMbObsCompleteBeacon1EtsiTs103759MbrCommonObservationsBeacon-IntervalTooSmall1
EtsiTs103759C-ASR-SINGLE-OBS1
EtsiTs103759MbrCommonObservationsc-ObsBeacon-IntervalTooSmall1
EtsiTs103759MbrCommonObservationsobs-LongAcc-Implausible-BrakeC-ASR-SINGLE-OBSEtsiTs103759AsrBsmSetMbObsLongAcc-Bsm1EtsiTs103759C-ASR-SINGLE-OBS1
EtsiTs103759MbrCommonObservationsc-ObsLongAcc-Implausible-Brake1
EtsiTs103759MbrCommonObservationsLongAcc-Implausible-Brake1
EtsiTs103759MbrCommonObservationsobs-LongAcc-ValueTooLargeC-ASR-SINGLE-OBSEtsiTs103759MbrCommonObservationsSetMbObsEtsiOnlyLongAcc1EtsiTs103759C-ASR-SINGLE-OBS1
EtsiTs103759MbrCommonObservationsc-ObsLongAcc-ValueTooLarge1
EtsiTs103759MbrCommonObservationsLongAcc-ValueTooLarge1
EtsiTs103759MbrCommonObservationsobs-LongAcc-ValueTooLarge-ThresholdNoContextC-ASR-SINGLE-OBSEtsiTs103759AsrBsmSetMbObsLongAcc-Bsm1EtsiTs103759C-ASR-SINGLE-OBS1
EtsiTs103759MbrCommonObservationsc-ObsLongAcc-ValueTooLarge-ThresholdNoContext1
EtsiTs103759MbrCommonObservationsLongAcc-ValueTooLarge-ThresholdNoContext1
EtsiTs103759MbrCommonObservationsobs-Pos-IncWithPrev-TooFarC-ASR-SINGLE-OBSEtsiTs103759AsrBsmSetMbObsPosition-Bsm1EtsiTs103759C-ASR-SINGLE-OBS1
EtsiTs103759MbrCommonObservationsc-ObsPos-IncWithPrev-TooFar1
EtsiTs103759MbrCommonObservationsPos-IncWithPrev-TooFar1
EtsiTs103759MbrCommonObservationsobs-Pos-IncWithPrev-TooSmallC-ASR-SINGLE-OBSEtsiTs103759AsrBsmSetMbObsPosition-Bsm1EtsiTs103759C-ASR-SINGLE-OBS1
EtsiTs103759MbrCommonObservationsc-ObsPos-IncWithPrev-TooSmall1
EtsiTs103759MbrCommonObservationsPos-IncWithPrev-TooSmall1
EtsiTs103759MbrCommonObservationsobs-Position-ChangeTooLargeC-ASR-SINGLE-OBSEtsiTs103759MbrCommonObservationsSetMbObsEtsiOnlyPosition1EtsiTs103759C-ASR-SINGLE-OBS1
EtsiTs103759MbrCommonObservationsc-ObsPosition-ChangeTooLarge1
EtsiTs103759MbrCommonObservationsPosition-ChangeTooLarge1
EtsiTs103759MbrCommonObservationsobs-Security-HeaderIncWithSecurityProfileC-ASR-SINGLE-OBSEtsiTs103759MbrCommonObservationsSetMbObsCompleteSecurity1EtsiTs103759C-ASR-SINGLE-OBS1
EtsiTs103759MbrCommonObservationsc-ObsSecurity-HeaderIncWithSecurityProfile1
EtsiTs103759MbrCommonObservationsSecurity-HeaderIncWithSecurityProfile1
EtsiTs103759MbrCommonObservationsobs-Security-HeaderLocationOutsideCertificateValidityC-ASR-SINGLE-OBSEtsiTs103759MbrCommonObservationsSetMbObsCompleteSecurity1EtsiTs103759C-ASR-SINGLE-OBS1
EtsiTs103759MbrCommonObservationsc-ObsSecurity-HeaderLocationOutsideCertificateValidity1
EtsiTs103759MbrCommonObservationsSecurity-HeaderLocationOutsideCertificateValidity1
EtsiTs103759MbrCommonObservationsobs-Security-HeaderPsidIncWithCertificateC-ASR-SINGLE-OBSEtsiTs103759MbrCommonObservationsSetMbObsCompleteSecurity1EtsiTs103759C-ASR-SINGLE-OBS1
EtsiTs103759MbrCommonObservationsc-ObsSecurity-HeaderPsidIncWithCertificate1
EtsiTs103759MbrCommonObservationsSecurity-HeaderPsidIncWithCertificate1
EtsiTs103759MbrCommonObservationsobs-Security-HeaderTimeOutsideCertificateValidityC-ASR-SINGLE-OBSEtsiTs103759MbrCommonObservationsSetMbObsCompleteSecurity1EtsiTs103759C-ASR-SINGLE-OBS1
EtsiTs103759MbrCommonObservationsc-ObsSecurity-HeaderTimeOutsideCertificateValidity1
EtsiTs103759MbrCommonObservationsSecurity-HeaderTimeOutsideCertificateValidity1
EtsiTs103759MbrCommonObservationsobs-Security-MessageIdIncWithHeaderInfoC-ASR-SINGLE-OBSEtsiTs103759MbrCommonObservationsSetMbObsCompleteSecurity1EtsiTs103759C-ASR-SINGLE-OBS1
EtsiTs103759MbrCommonObservationsc-ObsSecurity-MessageIdIncWithHeaderInfo1
EtsiTs103759MbrCommonObservationsSecurity-MessageIdIncWithHeaderInfo1
EtsiTs103759MbrCommonObservationsobs-Security-MessageIncWithSspC-ASR-SINGLE-OBSEtsiTs103759MbrCommonObservationsSetMbObsCompleteSecurity1EtsiTs103759C-ASR-SINGLE-OBS1
EtsiTs103759MbrCommonObservationsc-ObsSecurity-MessageIncWithSsp1
EtsiTs103759MbrCommonObservationsSecurity-MessageIncWithSsp1
EtsiTs103759MbrCommonObservationsobs-Security-MessageLocationOutsideCertificateValidityC-ASR-SINGLE-OBSEtsiTs103759MbrCommonObservationsSetMbObsCompleteSecurity1EtsiTs103759C-ASR-SINGLE-OBS1
EtsiTs103759MbrCommonObservationsc-ObsSecurity-MessageLocationOutsideCertificateValidity1
EtsiTs103759MbrCommonObservationsSecurity-MessageLocationOutsideCertificateValidity1
EtsiTs103759MbrCommonObservationsobs-Speed-ChangeTooLargeC-ASR-SINGLE-OBSEtsiTs103759MbrCommonObservationsSetMbObsEtsiOnlySpeed1EtsiTs103759C-ASR-SINGLE-OBS1
EtsiTs103759MbrCommonObservationsc-ObsSpeed-ChangeTooLarge1
EtsiTs103759MbrCommonObservationsSpeed-ChangeTooLarge1
EtsiTs103759MbrCommonObservationsobs-Speed-ValueTooLarge-DriveDirectionReverseC-ASR-SINGLE-OBSEtsiTs103759MbrCommonObservationsSetMbObsEtsiOnlySpeed1EtsiTs103759C-ASR-SINGLE-OBS1
EtsiTs103759MbrCommonObservationsc-ObsSpeed-ValueTooLarge-DriveDirectionReverse1
EtsiTs103759MbrCommonObservationsSpeed-ValueTooLarge-DriveDirectionReverse1
EtsiTs103759MbrCommonObservationsobs-Speed-ValueTooLarge-ThresholdNoContextC-ASR-SINGLE-OBSEtsiTs103759AsrBsmSetMbObsSpeed-Bsm1EtsiTs103759C-ASR-SINGLE-OBS1
EtsiTs103759MbrCommonObservationsc-ObsSpeed-ValueTooLarge-ThresholdNoContext1
EtsiTs103759MbrCommonObservationsSpeed-ValueTooLarge-ThresholdNoContext1
EtsiTs103759MbrCommonObservationsobs-Speed-ValueTooLarge-VehicleTypeC-ASR-SINGLE-OBSEtsiTs103759MbrCommonObservationsSetMbObsEtsiOnlySpeed1EtsiTs103759C-ASR-SINGLE-OBS1
EtsiTs103759MbrCommonObservationsc-ObsSpeed-ValueTooLarge-VehicleType1
EtsiTs103759MbrCommonObservationsSpeed-ValueTooLarge-VehicleType1
EtsiTs103759MbrCommonObservationsobs-Static-ChangeC-ASR-SINGLE-OBSEtsiTs103759MbrCommonObservationsSetMbObsCompleteStatic1EtsiTs103759C-ASR-SINGLE-OBS1
EtsiTs103759MbrCommonObservationsc-ObsStatic-Change1
EtsiTs103759MbrCommonObservationsStatic-Change1
+
Object Set Assignments Cross Reference Table
Object Set Assignments Cross Reference Table + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Object Set Assignments Cross Reference
Module nameObject set nameClassIncoming referencesOutgoing references
Module nameEntity nameNumberModule nameEntity nameNumber
Ieee1609Dot2Ieee1609Dot2HeaderInfoContributedExtensionsIEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSIONIeee1609Dot2ContributedExtensionBlock2Ieee1609Dot2etsiHeaderInfoContributorId1
Ieee1609Dot2IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION1
EtsiTs103759SetAsrC-ASREtsiTs103759AidSpecificReport2EtsiTs103759AsrAppAgnosticAsrAppAgnostic1
EtsiTs103759AsrBsmAsrBsm1
EtsiTs103759AsrCamAsrCam1
EtsiTs103759AsrDenmAsrDenm1
EtsiTs103759C-ASR1
EtsiTs103759c-AsrAppAgnostic1
EtsiTs103759c-AsrBsm1
EtsiTs103759c-AsrCam1
EtsiTs103759c-AsrDenm1
EtsiTs103759AsrBsmSetMbEvBsmC-ASR-EVEtsiTs103759AsrBsmAsrBsm1EtsiTs103759C-ASR-EV1
EtsiTs103759AsrCamSetMbEvCamC-ASR-EVEtsiTs103759AsrCamAsrCam1EtsiTs103759C-ASR-EV1
EtsiTs103759MbrCommonObservationsSetMbObsCompleteBeaconC-ASR-SINGLE-OBSEtsiTs103759AsrCamSetMbObsTgtsCam1EtsiTs103759C-ASR-SINGLE-OBS1
EtsiTs103759MbrCommonObservationsobs-Beacon-IntervalTooSmall1
EtsiTs103759MbrCommonObservationsSetMbObsCompleteSecurityC-ASR-SINGLE-OBSEtsiTs103759AsrCamSetMbObsTgtsCam1EtsiTs103759C-ASR-SINGLE-OBS1
EtsiTs103759MbrCommonObservationsobs-Security-HeaderIncWithSecurityProfile1
EtsiTs103759MbrCommonObservationsobs-Security-HeaderLocationOutsideCertificateValidity1
EtsiTs103759MbrCommonObservationsobs-Security-HeaderPsidIncWithCertificate1
EtsiTs103759MbrCommonObservationsobs-Security-HeaderTimeOutsideCertificateValidity1
EtsiTs103759MbrCommonObservationsobs-Security-MessageIdIncWithHeaderInfo1
EtsiTs103759MbrCommonObservationsobs-Security-MessageIncWithSsp1
EtsiTs103759MbrCommonObservationsobs-Security-MessageLocationOutsideCertificateValidity1
EtsiTs103759MbrCommonObservationsSetMbObsCompleteStaticC-ASR-SINGLE-OBSEtsiTs103759AsrCamSetMbObsTgtsCam1EtsiTs103759C-ASR-SINGLE-OBS1
EtsiTs103759MbrCommonObservationsobs-Static-Change1
EtsiTs103759MbrCommonObservationsSetMbObsEtsiOnlyLongAccC-ASR-SINGLE-OBSEtsiTs103759AsrCamSetMbObsTgtsCam1EtsiTs103759C-ASR-SINGLE-OBS1
EtsiTs103759MbrCommonObservationsobs-LongAcc-ValueTooLarge1
EtsiTs103759MbrCommonObservationsSetMbObsEtsiOnlyPositionC-ASR-SINGLE-OBSEtsiTs103759AsrCamSetMbObsTgtsCam1EtsiTs103759C-ASR-SINGLE-OBS1
EtsiTs103759MbrCommonObservationsobs-Position-ChangeTooLarge1
EtsiTs103759MbrCommonObservationsSetMbObsEtsiOnlySpeedC-ASR-SINGLE-OBSEtsiTs103759AsrCamSetMbObsTgtsCam1EtsiTs103759C-ASR-SINGLE-OBS1
EtsiTs103759MbrCommonObservationsobs-Speed-ChangeTooLarge1
EtsiTs103759MbrCommonObservationsobs-Speed-ValueTooLarge-DriveDirectionReverse1
EtsiTs103759MbrCommonObservationsobs-Speed-ValueTooLarge-VehicleType1
EtsiTs103759AsrBsmSetMbObsLongAcc-BsmC-ASR-SINGLE-OBSEtsiTs103759AsrBsmSetMbObsTgtsBsm1EtsiTs103759C-ASR-SINGLE-OBS1
EtsiTs103759MbrCommonObservationsobs-LongAcc-Implausible-Brake1
EtsiTs103759MbrCommonObservationsobs-LongAcc-ValueTooLarge-ThresholdNoContext1
EtsiTs103759AsrBsmSetMbObsPosition-BsmC-ASR-SINGLE-OBSEtsiTs103759AsrBsmSetMbObsTgtsBsm1EtsiTs103759C-ASR-SINGLE-OBS1
EtsiTs103759MbrCommonObservationsobs-Pos-IncWithPrev-TooFar1
EtsiTs103759MbrCommonObservationsobs-Pos-IncWithPrev-TooSmall1
EtsiTs103759AsrBsmSetMbObsSpeed-BsmC-ASR-SINGLE-OBSEtsiTs103759AsrBsmSetMbObsTgtsBsm1EtsiTs103759C-ASR-SINGLE-OBS1
EtsiTs103759MbrCommonObservationsobs-Speed-ValueTooLarge-ThresholdNoContext1
EtsiTs103759AsrBsmSetMbObsTgtsBsmC-ASR-OBS-BY-TGTEtsiTs103759AsrBsmAsrBsm1EtsiTs103759C-ASR-OBS-BY-TGT1
EtsiTs103759AsrBsmc-BsmTgt-LongAccCommon1
EtsiTs103759AsrBsmc-BsmTgt-PositionCommon1
EtsiTs103759AsrBsmc-BsmTgt-SpeedCommon1
EtsiTs103759MbSingleObservation3
EtsiTs103759AsrBsmSetMbObsLongAcc-Bsm1
EtsiTs103759AsrBsmSetMbObsPosition-Bsm1
EtsiTs103759AsrBsmSetMbObsSpeed-Bsm1
EtsiTs103759AsrCamSetMbObsTgtsCamC-ASR-OBS-BY-TGTEtsiTs103759AsrCamAsrCam1EtsiTs103759C-ASR-OBS-BY-TGT1
EtsiTs103759AsrCamc-CamTgt-BeaconCommon1
EtsiTs103759AsrCamc-CamTgt-LongAccCommon1
EtsiTs103759AsrCamc-CamTgt-PositionCommon1
EtsiTs103759AsrCamc-CamTgt-SecurityCommon1
EtsiTs103759AsrCamc-CamTgt-SpeedCommon1
EtsiTs103759AsrCamc-CamTgt-StaticCommon1
EtsiTs103759MbSingleObservation6
EtsiTs103759MbrCommonObservationsSetMbObsCompleteBeacon1
EtsiTs103759MbrCommonObservationsSetMbObsCompleteSecurity1
EtsiTs103759MbrCommonObservationsSetMbObsCompleteStatic1
EtsiTs103759MbrCommonObservationsSetMbObsEtsiOnlyLongAcc1
EtsiTs103759MbrCommonObservationsSetMbObsEtsiOnlyPosition1
EtsiTs103759MbrCommonObservationsSetMbObsEtsiOnlySpeed1
EtsiTs103759SetObsPduC-OBS-PDUEtsiTs103759V2xPduStream2EtsiTs103759C-OBS-PDU1
EtsiTs103759c-ObsPdu-etsiGn1
EtsiTs103759c-ObsPdu-ieee1609Dot2Data1
EtsiTs103759c-ObsPdu-wsmp1
EtsiTs103759ObsPduEtsiGn1
EtsiTs103759ObsPduIeee1609Dot2Data1
EtsiTs103759ObsPduWsmp1
+
Errors Table
Errors Table + + + + + + + + + + +
Errors
LocationText in errorSeverityCodeDescription
File nameModule nameEntity namePlace
Ieee1609Dot2.asnIeee1609Dot2TextEtsiOriginatingHeaderInfoExtensionError15103The imported symbol group 'EtsiOriginatingHeaderInfoExtension FROM...' contains an unknown module name or module OID ('EtsiTs103097ExtensionModule')
Ieee1609Dot2.asnIeee1609Dot2Ieee1609Dot2HeaderInfoContributedExtensionsTextEtsiOriginatingHeaderInfoExtensionError11501The reference 'EtsiOriginatingHeaderInfoExtension' cannot be validated because the corresponding assignment is unknown or invalid
+

Schema Files

This section contains the schema files that constitute the ASN.1 schema.

Schema File EtsiTs103759.asn
Schema File EtsiTs103759.asn

EtsiTs103759 {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) ts (103759) general (1) core (1)

major-version-1 (1) minor-version-1 (1)}

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

EXPORTS

ALL;

EXPORTS;

IMPORTS

Certificate

FROM Ieee1609Dot2 {iso (1) identified-organization (3) ieee (111)

standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) base (1) schema (1)

major-version-2 (2) minor-version-3 (3)}

FROM Ieee1609Dot2 {}

Opaque, Psid, ThreeDLocation, Time64, Uint8

FROM Ieee1609Dot2BaseTypes {iso (1) identified-organization (3) ieee (111)

standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) base (1) base-types (2)

major-version-2 (2) minor-version-2 (2)}

FROM Ieee1609Dot2BaseTypes {}

AsrAppAgnostic

FROM EtsiTs103759AsrAppAgnostic {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) ts

(103759) aid-specific (2) appAgnostic (270549119) major-version-1 (1) minor-version-1 (1)}

AsrBsm

FROM EtsiTs103759AsrBsm {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) ts (103759)

aid-specific (2) bsm (32) major-version-1 (1) minor-version-1 (1)}

FROM EtsiTs103759AsrBsm {}

AsrCam

FROM EtsiTs103759AsrCam {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) ts (103759)

aid-specific (2) cam (36) major-version-1 (1) minor-version-1 (1)}

FROM EtsiTs103759AsrCam {}

AsrDenm

FROM EtsiTs103759AsrDenm {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) ts (103759)

aid-specific (2) denm (37) major-version-1 (1) minor-version-1 (1)};

FROM EtsiTs103759AsrDenm {};

IMPORTS;

Mbr

This data type is the general PDU for a misbehaviour report from an ITS-S to the MA responsible for reports of that type.
  • version
    contains the version number of this PDU definition. For this version of this data type it shall be equal to 2.
  • generationTime
    contains information on when this PDU was generated.
  • observationLocation
    is the location at which the last observation of a V2X PDU was made before the decision was taken to generate a report.
  • report
    contains the AID-specific misbehaviour report.
+

Mbr ::= SEQUENCE {

version Uint8,

generationTime Time64,

observationLocation ThreeDLocation,

report AidSpecificReport

}

Mbr ::= SEQUENCE {}

AidSpecificReport

This data type is the whole report on issues detected for a specific ITS-AID. This ITS-AID may identify an individual application, or may identify cross-application or non-application-specific misbehaviour cases.
  • aid
    contains the respective ITS-AID.
  • content
    contains the report contents, e.g., AsrCam. This will be a TemplateAsr instantiated with AID-specific Information Object Sets.
+

AidSpecificReport ::= SEQUENCE {

aid C-ASR.&aid ({SetAsr}),

content C-ASR.&Content ({SetAsr} {@.aid})

}

AidSpecificReport ::= SEQUENCE {}

C-ASR

This data type defines the IOC for AidSpecificReport.
  • aid
    contains the globally unique reference identifier of an AID-specific misbehaviour report.
  • Content
    contains the open type of the PDU identified by aid. This will be a TemplateAsr instantiated with AID-specific Information Object Sets.
+

C-ASR ::= CLASS {

&aid Psid UNIQUE,

&Content

}

C-ASR ::= CLASS {}

WITH SYNTAX {

&Content IDENTIFIED BY &aid

}

WITH SYNTAX {}

SetAsr

This data type defines the IOS for AidSpecificReport. See the ASN.1 modules where each set is defined for a description of that set.
+

SetAsr C-ASR ::= {

{AsrAppAgnostic IDENTIFIED BY c-AsrAppAgnostic} |

{AsrBsm IDENTIFIED BY c-AsrBsm} |

{AsrCam IDENTIFIED BY c-AsrCam} |

{AsrDenm IDENTIFIED BY c-AsrDenm},

...

}

SetAsr C-ASR ::= {}

c-AsrAppAgnostic

This data type contains the ITS-AID of the unknown service. @note This value is used for suspicious observations that are not or cannot be linked to a specific application.
+

c-AsrAppAgnostic Psid ::= 270549119

c-AsrBsm

This data type contains the ITS-AID identifying services that use the Basic Safety Message as defined in SAE J2945/1, J2945/2, J3161/1.
+

c-AsrBsm Psid ::= 32

c-AsrCam

This data type contains the ITS-AID of the CA service.
+

c-AsrCam Psid ::= 36

c-AsrDenm

This data type contains the ITS-AID of the DEN service.
+

c-AsrDenm Psid ::= 37

TemplateAsr

This data type contains the template for a report on any ITS PDU.
  • observations
    identifies which detectors were triggered and why. It can include cross-references to the PDUs and evidence fields. The observations are drawn from a supplied application-specific observation Information Object Set.
  • v2xPduEvidence
    contains PDUs that triggered the detectors reported in the observations field, plus other PDUs sent for the same application (AID) by the same sender).
  • nonV2xPduEvidence
    is any information that was used by the detectors other than the V2X PDUs. If the report does not contain any observations that use other evidence (for example, if the report is simply that a speed value is implausibly high for any land vehicle, or that two V2X PDUs appear to show two different senders in the same physical space) then this field can be length 0. The evidence is drawn from a supplied application-specific evidence Information Object Set.
+

TemplateAsr {C-ASR-OBS-BY-TGT: ObservationSet, C-ASR-EV: NonV2xPduEvidenceSet} ::= SEQUENCE {

observations SEQUENCE (SIZE (1..MAX)) OF ObservationsByTarget {{ObservationSet}},

v2xPduEvidence SEQUENCE (SIZE (1..MAX)) OF V2xPduStream,

nonV2xPduEvidence SEQUENCE (SIZE (0..MAX)) OF NonV2xPduEvidenceItem {{NonV2xPduEvidenceSet}}

}

TemplateAsr {C-ASR-OBS-BY-TGT: ObservationSet, C-ASR-EV: NonV2xPduEvidenceSet} ::= SEQUENCE {}

ObservationsByTarget

This data type contains all of the observations related to a particular "target" property, e.g., speed or security.
  • tgtId
    identifies the "target" of the observation, e.g., speed. This identifier is drawn from an application-specific Information Object Set of observations by target.
  • observations
    contains all the observations related to that target. The observations are drawn from the provided Information Object Set.
+

ObservationsByTarget {C-ASR-OBS-BY-TGT: SetAsrObsByTgt} ::= SEQUENCE {

tgtId C-ASR-OBS-BY-TGT.&id ({SetAsrObsByTgt}),

observations SEQUENCE OF C-ASR-OBS-BY-TGT.&Val ({SetAsrObsByTgt} {@.tgtId})

}

ObservationsByTarget {C-ASR-OBS-BY-TGT: SetAsrObsByTgt} ::= SEQUENCE {}

C-ASR-OBS-BY-TGT

This is the Information Object Class used to define observations- -by-target.
+

C-ASR-OBS-BY-TGT ::= C-2ENT

MbSingleObservation

This data type contains a single misbehaviour observation.
  • obsId
    identifies the observation within the set of observations for that target, e.g., target = speed, observation = "speed higher than plausible given the physical map". This identifier is drawn from an application-and-target-specific Information Object Set of single observations.
  • obs
    contains any parameters relevant to the observation. The observations are drawn from the provided Information Object Set.
+

MbSingleObservation {C-ASR-SINGLE-OBS: SetMbSingleObs} ::= SEQUENCE {}

C-ASR-SINGLE-OBS

This is the Information Object Class used to define single observations.
+

C-ASR-SINGLE-OBS ::= C-2ENT

V2xPduStream

This data type contains PDU stream from a single sender.
  • id
    identifies the type of the PDU, meaning in this case what protocol headers are included from the stack.
  • v2xPdus
    is the PDU stream, i.e., a series of PDUs for the same AID sent by the same sender (where "sent by the same sender" means "signed by the same certificate"). The PDUs are ordered in chronological order of reception by the reporter. All PDUs in this field are of the same type, i.e., correspond to the same IdObsPdu. This field will always contain a "subject PDU", i.e., a PDU that is the subject of the observations. Additional PDUs may be included depending on which observations appear in the observations field. A specification of an observation is expected to include a specification of which PDUs are to be included in this field.
  • certificate
    contains the certificate that signed the PDUs if it is not explicitly included in one of the PDUs. (There is no need to include the entire certificate chain from the ITS station up to the Root CA, just the ITS station certificate is enough, as the MA is expected to have the rest of the certificates in the chain.) Note that if the sender certificate changes, PDUs signed by the new certificate and included in this report will be in a separate V2xPduStream instance within the v2xPduEvidence field of the TemplateAsr.
  • subjectPduIndex
    identifies which PDU within the v2xPdus sequence is the "subject PDU", i.e., the PDU associated with the observations.
+

V2xPduStream ::= SEQUENCE {

type C-OBS-PDU.&id ({SetObsPdu}),

v2xPdus SEQUENCE (SIZE (1..255)) OF C-OBS-PDU.&Val ({SetObsPdu} {@.type}),

certificate Certificate OPTIONAL,

subjectPduIndex Uint8,

...

}

V2xPduStream ::= SEQUENCE {}

C-OBS-PDU

This is the Information Object Class used to define different types of observed PDUs.
+

C-OBS-PDU ::= C-2ENT

SetObsPdu

This data type contains the IOS for the observed PDU.
+

IdObsPdu

This data type contains the identifier of the type of observed PDU.
+

IdObsPdu ::= Uint8

c-ObsPdu-etsiGn IdObsPdu ::= 1

c-ObsPdu-ieee1609Dot2Data IdObsPdu ::= 2

c-ObsPdu-wsmp IdObsPdu ::= 3

ObsPduEtsiGn

ObsPduEtsiGn contains an ETSI geonetworking PDU, i.e., the first byte of every PDU in the v2xPdus array is the first byte of the geonetworking Basic Header.
+

ObsPduEtsiGn ::= Opaque

ObsPduIeee1609Dot2Data

  • ObsPduIeee1609Dot2Data
    contains an Ieee1609Dot2Data, i.e., the first byte of every PDU in the v2xPdus array is the version byte of the Ieee1609Dot2Data.
+

ObsPduIeee1609Dot2Data ::= Opaque

ObsPduWsmp

  • ObsPduWsmp
    contains a WAVE Short Messaging Protocol PDU, i.e., the first byte of every PDU in the v2xPdus array is the first byte of the WSMP N-Header.
+

ObsPduWsmp ::= Opaque

NonV2xPduEvidenceItem

This data type contains evidence, which may be referenced by one or more observations.
  • id
    identifies the evidence type.
  • evidence
    contains the evidence.
+

NonV2xPduEvidenceItem {C-ASR-EV: SetMbEv} ::= SEQUENCE {

id C-ASR-EV.&id ({SetMbEv}),

evidence C-ASR-EV.&Val ({SetMbEv} {@.id})

}

NonV2xPduEvidenceItem {C-ASR-EV: SetMbEv} ::= SEQUENCE {}

C-ASR-EV

This is the Information Object Class used to define evidence. @note No instances of this class are defined in this version of this document.
+

C-ASR-EV ::= C-2ENT

C-2ENT

This structures uses single-byte IDs. If we run out of ID space in future, the Val type associated with ID 255 can also be structured hierarchically to extend the space.
+

C-2ENT ::= CLASS {

&id Uint8,

&Val

}

C-2ENT ::= CLASS {}

WITH SYNTAX {

&Val BY &id

}

WITH SYNTAX {}

NonV2xPduEvidenceItem-1 {C-ASR-EV: SetMbEv} ::= SEQUENCE {

id C-ASR-EV.&id ({SetMbEv}),

evidence C-ASR-EV.&Val ({SetMbEv} {@.id})

}

NonV2xPduEvidenceItem-1 {C-ASR-EV: SetMbEv} ::= SEQUENCE {}

NonV2xPduEvidenceItem-2 {C-ASR-EV: SetMbEv} ::= SEQUENCE {

id C-ASR-EV.&id ({SetMbEv}),

evidence C-ASR-EV.&Val ({SetMbEv} {@.id})

}

NonV2xPduEvidenceItem-2 {C-ASR-EV: SetMbEv} ::= SEQUENCE {}

TemplateAsr-1 {C-ASR-OBS-BY-TGT: ObservationSet, C-ASR-EV: NonV2xPduEvidenceSet} ::= SEQUENCE {

observations SEQUENCE (SIZE (1..MAX)) OF ObservationsByTarget {{ObservationSet}},

v2xPduEvidence SEQUENCE (SIZE (1..MAX)) OF V2xPduStream,

nonV2xPduEvidence SEQUENCE (SIZE (0..MAX)) OF NonV2xPduEvidenceItem {{NonV2xPduEvidenceSet}}

}

TemplateAsr-2 {C-ASR-OBS-BY-TGT: ObservationSet, C-ASR-EV: NonV2xPduEvidenceSet} ::= SEQUENCE {

observations SEQUENCE (SIZE (1..MAX)) OF ObservationsByTarget {{ObservationSet}},

v2xPduEvidence SEQUENCE (SIZE (1..MAX)) OF V2xPduStream,

nonV2xPduEvidence SEQUENCE (SIZE (0..MAX)) OF NonV2xPduEvidenceItem {{NonV2xPduEvidenceSet}}

}

END

EtsiTs103759END

Schema File EtsiTs103759AsrAppAgnostic.asn
Schema File EtsiTs103759AsrAppAgnostic.asn

EtsiTs103759AsrAppAgnostic {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) ts (103759)

aid-specific (2) appAgnostic (270549119) major-version-1 (1) minor-version-1 (1)}

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

EXPORTS

ALL;

EXPORTS;

AsrAppAgnostic

This data type is defined as NULL for this version of the standard.
+

AsrAppAgnostic ::= NULL

END

Schema File EtsiTs103759AsrBsm.asn
Schema File EtsiTs103759AsrBsm.asn

EtsiTs103759AsrBsm {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) ts (103759) aid-specific (2)

bsm (32) major-version-1 (1) minor-version-1 (1)}

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

EXPORTS

ALL;

EXPORTS;

IMPORTS

C-ASR-EV, C-ASR-OBS-BY-TGT, C-ASR-SINGLE-OBS, MbSingleObservation, TemplateAsr

FROM EtsiTs103759 {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) ts (103759) general

(1) core (1) major-version-1 (1) minor-version-1 (1)}

FROM EtsiTs103759 {}

IdMbObs, obs-LongAcc-Implausible-Brake, obs-LongAcc-ValueTooLarge-ThresholdNoContext, obs-Pos-IncWithPrev-TooFar,

obs-Pos-IncWithPrev-TooSmall, obs-Speed-ValueTooLarge-ThresholdNoContext, SetMbObsCompleteBeacon,

SetMbObsCompleteStatic, SetMbObsCompleteSecurity

FROM EtsiTs103759MbrCommonObservations {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5)

ts (103759) general (1) common-observations (2) major-version-1 (1) minor-version-1 (1)}

ThreeDLocation, Uint8

FROM Ieee1609Dot2BaseTypes {iso (1) identified-organization (3) ieee (111)

standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) base (1) base-types (2)

major-version-2 (2) minor-version-2 (2)};

FROM Ieee1609Dot2BaseTypes {};

IMPORTS;

/* Identify target classes for BSM */

IdBsmTgt ::= Uint8

c-BsmTgt-BeaconCommon IdBsmTgt ::= 0

c-BsmTgt-StaticCommon IdBsmTgt ::= 1

c-BsmTgt-SecurityCommon IdBsmTgt ::= 2

c-BsmTgt-PositionCommon IdBsmTgt ::= 3

c-BsmTgt-SpeedCommon IdBsmTgt ::= 4

c-BsmTgt-LongAccCommon IdBsmTgt ::= 5

AsrBsm

This data type is for reporting BSM issues defined by the SCMS Manager.
+

AsrBsm ::= TemplateAsr {{SetMbObsTgtsBsm}, {SetMbEvBsm}}

SetMbObsPosition-Bsm

+

SetMbObsSpeed-Bsm

+

SetMbObsLongAcc-Bsm

+

SetMbObsTgtsBsm

This is a complete set of observations for BSM as defined by the SCMS Manager. Application-specific trigger conditions and other relevant information are specified below.
+

SetMbEvBsm

This data type defines the IOS for BSM Evidence
+

SetMbEvBsm C-ASR-EV ::= {...}

END

Schema File EtsiTs103759AsrCam.asn
Schema File EtsiTs103759AsrCam.asn

EtsiTs103759AsrCam {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) ts (103759) aid-specific (2)

cam (36) major-version-1 (1) minor-version-1 (1)}

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

EXPORTS

ALL;

EXPORTS;

IMPORTS

C-ASR-EV, C-ASR-OBS-BY-TGT, C-ASR-SINGLE-OBS, MbSingleObservation, TemplateAsr

FROM EtsiTs103759 {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) ts (103759) general

(1) core (1) major-version-1 (1) minor-version-1 (1)}

FROM EtsiTs103759 {}

IdMbObs, SetMbObsCompleteBeacon, SetMbObsCompleteSecurity, SetMbObsCompleteStatic, SetMbObsEtsiOnlyLongAcc,

SetMbObsEtsiOnlyPosition, SetMbObsEtsiOnlySpeed

FROM EtsiTs103759MbrCommonObservations {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5)

ts (103759) general (1) common-observations (2) major-version-1 (1) minor-version-1 (1)}

ThreeDLocation, Uint8

FROM Ieee1609Dot2BaseTypes {iso (1) identified-organization (3) ieee (111)

standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) base (1) base-types (2)

major-version-2 (2) minor-version-2 (2)};

FROM Ieee1609Dot2BaseTypes {};

IMPORTS;

AsrCam

This data type is for reporting CAM issues.
+

AsrCam ::= TemplateAsr {{SetMbObsTgtsCam}, {SetMbEvCam}}

/* Identify target classes for CAM */

IdCamTgt ::= Uint8

c-CamTgt-BeaconCommon IdCamTgt ::= 0

c-CamTgt-StaticCommon IdCamTgt ::= 1

c-CamTgt-SecurityCommon IdCamTgt ::= 2

c-CamTgt-PositionCommon IdCamTgt ::= 3

c-CamTgt-SpeedCommon IdCamTgt ::= 4

c-CamTgt-LongAccCommon IdCamTgt ::= 5

SetMbObsTgtsCam

This is a complete set of observations for CAM. Application-specific trigger conditions and other relevant information are specified below.
  • SetMbObsCompleteBeacon
    • Beacon-IntervalTooSmall: The difference between the generation time of two consecutive CAMs is less than 80% of the value specified in EN 302 637-2 section 6.1.3. The difference is calculated as the difference between the two values of generationDeltaTime. The two CAMs presented shall have the difference in the generationTime from the security headerInfo be less than 65,535 milliseconds, and the generationTime in the second CAM greater than the generationTime in the first. If the generationDeltaTime value in the second CAM is less than the generationDeltaTime in the first, 65,536 milliseconds shall be added to the value in the second for purposes of determining the difference between the two generationDeltaTime values.
  • SetMbObsCompleteStatic
    • Static-Change: Any change in the values of one or more of the following fields: performanceClass, specialTransportType, stationType, vehicleLength, vehicleRole, vehicleWidth.

      Semantics of the BIT STRING: performanceClass(0), specialTransportType(1), stationType(2), vehicleLength(3), vehicleRole(4), vehicleWidth(5).
  • SetMbObsCompleteSecurity
    • Security-MessageIdIncWithHeaderInfo: The messageID is inconsistent with the security headerInfo, e.g., messageId = cam(2) but psid in the security headerInfo is not equal to 36, the PSID value of CAM.
    • Security-HeaderIncWithSecurityProfile: The security headerInfo is inconsistent with the security profile, e.g., generationTime is absent in the security headerInfo but is required to be present in the security profile.
    • Security-HeaderPsidIncWithCertificate: The psid in the security headerInfo is inconsistent with the appPermissions in the certificate, e.g., psid in the security headerInfo is equal to 36, but the appPermissions in the certificate does not include the value 36.
    • Security-MessageIncWithSsp: The message payload is inconsistent with the SSP in the certificate.
    • Security-HeaderTimeOutsideCertificateValidity: The generationTime in the security headerInfo is outside the validityPeriod in the certificate.
    • Security-MessageLocationOutsideCertificateValidity: The referencePosition in the message is outside the region in the certificate.
    • Security-HeaderLocationOutsideCertificateValidity: The generationLocation in the security headerInfo is outside the region in the certificate.
  • SetMbObsEtsiOnlyPosition
    • Position-ChangeTooLarge: The speed calculated from the change in referencePosition of two consecutive CAMs meets the trigger conditions of Speed-ValueTooLarge-VehicleType.
  • SetMbObsEtsiOnlySpeed
    • Speed-ValueTooLarge-VehicleType: The trigger conditions depend on the stationType as follows:
      • passengerCar(5): The speedValue is greater than 14,000. (Currently, the fastest car in the world has a top speed that is less than 500 km/h, i.e., 13,889 cm/s.)
      • motorcycle(4), bus(6), lightTruck(7), heavyTruck(8), trailer(9): The speedValue is greater than 8,500. (Currently, the top speed on most popular cars is less than 300 km/h, i.e., 8,333 cm/s.)
      • unknown(0), pedestrian(1), cyclist(2), moped(3), specialVehicles(10), tram(11) : The speedValue is greater than 3,000. (Currently, non-highway speed limits are usually well below 100 km/h, i.e., 2,778 cm/s.)
      • roadSideUnit(15): The speedValue is greater than 0. (Road side units shouldn't be transmitting while being transported.)
    • Speed-ValueTooLarge-DriveDirectionReverse: The driveDirection is backward (1) and the speedValue is greater than 3,000. (Usually, backward drives are far less than 50m long, and with maximum possible acceleration of 9 m/s^2 (see trigger conditions for LongAcc-ValueTooLarge), max attainable speed is sqrt(2*9*50) m/s, i.e., 3,000 cm/s.)
    • Speed-ChangeTooLarge: The acceleration calculated from the change in speedValue of two consecutive CAMs meets the trigger conditions of LongAcc-ValueTooLarge.
  • SetMbObsEtsiOnlyLongAcc
    • LongAcc-ValueTooLarge: The longitudinalAcceleration is greater than 90 dm/s^2. (Typical \mu (coefficient of friction between asphalt and rubber) is 0.9, so maximum possible acceleration is 0.9*9.8 m/s^2, i.e., 88.2 dm/s^2.)
+

SetMbEvCam

This data type defines the IOS for CAM Evidence.
+

SetMbEvCam C-ASR-EV ::= {...}

END

Schema File EtsiTs103759AsrDenm.asn
Schema File EtsiTs103759AsrDenm.asn

EtsiTs103759AsrDenm {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) ts (103759) aid-specific (2)

denm (37) major-version-1 (1) minor-version-1 (1)}

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

EXPORTS

ALL;

EXPORTS;

AsrDenm

This data type is defined as NULL for this version of the standard.
+

AsrDenm ::= NULL

END

Schema File EtsiTs103759CommonObservations.asn
Schema File EtsiTs103759CommonObservations.asn

EtsiTs103759MbrCommonObservations {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) ts (103759)

general (1) common-observations (2) major-version-1 (1) minor-version-1 (1)}

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

EXPORTS

ALL;

EXPORTS;

IMPORTS

C-ASR-SINGLE-OBS

FROM EtsiTs103759 {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) ts (103759) general

(1) core (1) major-version-1 (1) minor-version-1 (1)}

FROM EtsiTs103759 {}

Time64, Uint8, Uint16

FROM Ieee1609Dot2BaseTypes {iso (1) identified-organization (3) ieee (111)

standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) base (1) base-types (2)

major-version-2 (2) minor-version-2 (2)};

FROM Ieee1609Dot2BaseTypes {};

IMPORTS;

IdMbObs

Identifier type for observations: synonym for Uint8
+

IdMbObs ::= Uint8

Beacon-IntervalTooSmall

This data type is provided for an observation of beacon interval that is too small. This doesn’t apply to repeated PDUs, but only to two distinct PDUs. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose interval since the previous PDU is being flagged as too small. The v2xPdus field in that entry must contain at least the subject PDU and the PDU that immediately preceded it. The PDUs may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
+

Beacon-IntervalTooSmall ::= NULL

-- IDs

c-ObsBeacon-IntervalTooSmall IdMbObs ::= 1 -- Class 2

-- Individual Information Objects

obs-Beacon-IntervalTooSmall C-ASR-SINGLE-OBS ::= {Beacon-IntervalTooSmall BY c-ObsBeacon-IntervalTooSmall}

-- Information Object Set

Static-Change

This data type is provided for an observation of change in static fields. The semantics of the BIT STRING and trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose one or more static fields since the previous PDU is being flagged as changed. The v2xPdus field in that entry must contain at least the subject PDU and the PDU that immediately preceded it. The PDUs may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
+

Static-Change ::= BIT STRING

-- IDs

c-ObsStatic-Change IdMbObs ::= 1 -- Class 2

-- Individual Information Objects

obs-Static-Change C-ASR-SINGLE-OBS ::= {Static-Change BY c-ObsStatic-Change}

-- Information Object Set

Security-MessageIdIncWithHeaderInfo

This data type is provided for an observation, where the messageID is inconsistent with the psid in the security headerInfo. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU for which the messageID is being flagged as inconsistent with the psid in the security headerInfo. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
+

Security-MessageIdIncWithHeaderInfo ::= NULL

Security-HeaderIncWithSecurityProfile

This data type is provided for an observation, where the security headerInfo is inconsistent with the security profile for that psid. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU for which the security headerInfo is being flagged as inconsistent with the security profile for that psid. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
+

Security-HeaderIncWithSecurityProfile ::= NULL

Security-HeaderPsidIncWithCertificate

This data type is provided for an observation, where the psid in the security headerInfo is inconsistent with the psid in the certificate. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU for which the psid in the security headerInfo is being flagged as inconsistent with the psid in the certificate. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
+

Security-HeaderPsidIncWithCertificate ::= NULL

Security-MessageIncWithSsp

This data type is provided for an observation, where the message is is inconsistent with the SSP in the certificate. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose content is being flagged as inconsisent with the SSP in the certificate. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
+

Security-MessageIncWithSsp ::= NULL

Security-HeaderTimeOutsideCertificateValidity

This data type is provided for an observation, where the generationTime in the security headerInfo is outside the validity period of the certificate. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU for which the generationTime in the security headerInfo is being flagged as outside the validity period in the certificate. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
+

Security-HeaderTimeOutsideCertificateValidity ::= NULL

Security-MessageLocationOutsideCertificateValidity

This data type is provided for an observation, where the location in the message is outside the validity region in the certificate. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU for which the location in the PDU is being flagged as outside the validity region in the certificate. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
+

Security-MessageLocationOutsideCertificateValidity ::= NULL

Security-HeaderLocationOutsideCertificateValidity

This data type is provided for an observation, where the generationLocation in the security headerInfo is outside the validity region in the certificate. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU for which the generationLocation in the security headerInfo is being flagged as outside the validity region in the certificate. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
+

Security-HeaderLocationOutsideCertificateValidity ::= NULL

-- IDs

c-ObsSecurity-MessageIdIncWithHeaderInfo IdMbObs ::= 1 -- Class 1

c-ObsSecurity-HeaderIncWithSecurityProfile IdMbObs ::= 2 -- Class 1

c-ObsSecurity-HeaderPsidIncWithCertificate IdMbObs ::= 3 -- Class 1

c-ObsSecurity-MessageIncWithSsp IdMbObs ::= 4 -- Class 1

c-ObsSecurity-HeaderTimeOutsideCertificateValidity IdMbObs ::= 5 -- Class 1

c-ObsSecurity-MessageLocationOutsideCertificateValidity IdMbObs ::= 6 -- Class 1

c-ObsSecurity-HeaderLocationOutsideCertificateValidity IdMbObs ::= 7 -- Class 1

-- Individual Information Objects

obs-Security-MessageLocationOutsideCertificateValidity C-ASR-SINGLE-OBS ::=

obs-Security-HeaderLocationOutsideCertificateValidity C-ASR-SINGLE-OBS ::=

-- Information Object Set

Pos-IncWithPrev-TooSmall

This data type is provided for an observation of "implausible constant position" misbehaviour. The observation is triggered if in two consecutive messages the speed is non-zero and the position change is 0.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose position is being flagged as inconsistent with the previous PDU. The v2xPdus field in that entry must contain at least the subject PDU and the PDU that immediately preceded it. The PDUs may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
+

Pos-IncWithPrev-TooSmall ::= NULL

Pos-IncWithPrev-TooFar

This data type is provided for an observation of "implausible random position" misbehaviour. The observation is triggered if two consecutive messages are inconsistent, i.e. if [(position in the first) + (velocity in the first)*(time between)] differs from (position in the second) by more than the gpsDrift.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose position is being flagged as inconsistent with the previous PDU. The v2xPdus field in that entry must contain at least the subject PDU and the PDU that immediately preceded it. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
  • gpsDrift
    This is the maximum amount of difference in position between two messages, sent 0.1 seconds apart, that the reporter believes can be explained by GPS drift. This quantity MAY be 0. The units of this quantity are thousandths of a meter.
+

Pos-IncWithPrev-TooFar ::= SEQUENCE {

gpsDrift Uint16

}

Pos-IncWithPrev-TooFar ::= SEQUENCE {}

Position-ChangeTooLarge

This data type is provided for an observation of change in position that is too large. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose position is being flagged as inconsistent with the previous PDU. The v2xPdus field in that entry must contain at least the subject PDU and the PDU that immediately preceded it. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
+

Position-ChangeTooLarge ::= NULL

-- IDs

c-ObsPos-IncWithPrev-TooSmall IdMbObs ::= 2 -- Level 2

c-ObsPos-IncWithPrev-TooFar IdMbObs ::= 3 -- Level 2

c-ObsPosition-ChangeTooLarge IdMbObs ::= 4 -- Class 2

-- Individual Information Objects

obs-Pos-IncWithPrev-TooSmall C-ASR-SINGLE-OBS ::= {Pos-IncWithPrev-TooSmall BY c-ObsPos-IncWithPrev-TooSmall}

obs-Pos-IncWithPrev-TooFar C-ASR-SINGLE-OBS ::= {Pos-IncWithPrev-TooFar BY c-ObsPos-IncWithPrev-TooFar}

obs-Position-ChangeTooLarge C-ASR-SINGLE-OBS ::= {Position-ChangeTooLarge BY c-ObsPosition-ChangeTooLarge}

-- Information Object Sets

-- SetMbObsCompletePosition C-ASR-SINGLE-OBS ::= {

-- obs-Pos-IncWithPrev-TooSmall |

-- obs-Pos-IncWithPrev-TooFar |

-- obs-Position-ChangeTooLarge,

-- ...

-- }

-- Information Object Sets

Speed-ValueTooLarge-ThresholdNoContext

This data type is provided for an observation of "speed too large relative to threshold" misbehaviour. The observation is triggered if the speed in a single message is large than a particular threshold. The observation includes the threshold but does not indicate how the threshold was determined.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose speed is being flagged as too large. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
  • threshold
    This is the threshold such that if the speed is over that threshold, the subject message is categorized as misbehaviour. The threshold is encoded in units of meters per second. @note How the threshold is set is out of scope for this specification. It is recommended that implementations default to a threshold of 90 m/s.
+

Speed-ValueTooLarge-VehicleType

This data type is provided for an observation of speed too large for a given vehicle type. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose speed is being flagged as too large for the vehicle type. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
+

Speed-ValueTooLarge-VehicleType ::= NULL

Speed-ValueTooLarge-DriveDirectionReverse

This data type is provided for an observation of speed too large for the reverse drive direction. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose speed is being flagged as too large for the reverse drive direction. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
+

Speed-ValueTooLarge-DriveDirectionReverse ::= NULL

Speed-ChangeTooLarge

This data type is provided for an observation of change in speed that is too large. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose speed is being flagged as inconsistent with the speed in the previous PDU. The v2xPdus field in that entry must contain at least the subject PDU and the PDU that immediately preceded it. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
+

Speed-ChangeTooLarge ::= NULL

-- IDs

c-ObsSpeed-ValueTooLarge-ThresholdNoContext IdMbObs ::= 2 -- Class 1

c-ObsSpeed-ValueTooLarge-VehicleType IdMbObs ::= 3 -- Class 1

c-ObsSpeed-ValueTooLarge-DriveDirectionReverse IdMbObs ::= 4 -- Class 1

c-ObsSpeed-ChangeTooLarge IdMbObs ::= 5 -- Class 1

-- Individual Information Objects

obs-Speed-ChangeTooLarge C-ASR-SINGLE-OBS ::= {Speed-ChangeTooLarge BY c-ObsSpeed-ChangeTooLarge}

-- Information Object Sets

-- SetMbObsCompleteSpeed C-ASR-SINGLE-OBS ::= {

-- obs-Speed-ValueTooLarge-ThresholdNoContext |

-- obs-Speed-ValueTooLarge-VehicleType |

-- obs-Speed-ValueTooLarge-DriveDirectionReverse |

-- obs-Speed-ChangeTooLarge,

-- ...

-- }

-- Information Object Sets

LongAcc-ValueTooLarge-ThresholdNoContext

This data type is provided for an observation of "(absolute) longitudinal acceleration too large relative to threshold" misbehaviour. The observation is triggered if the absolute value of the longitudinal acceleration in a single PDU is larger than a particular threshold. The observation includes the threshold but does not indicate how the threshold was determined.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose (absolute) longitudinal acceleration is being flagged as too large. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
  • threshold
    This is the threshold such that if the absolute value of acceleration is over that threshold, the subject message is categorized as misbehaviour. The threshold is encoded in units of 0.01 m/s^2. @note How the threshold is set is out of scope for this specification. It is recommended that implementations default to a threshold of 10 m/s^2.
+

LongAcc-Implausible-Brake

This data type is provided for an observation of "acceleration inconsistent with braking" misbehaviour. The observation is triggered if in a single message it is indicated that the brakes are being applied but the acceleration is positive.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU with brakes applied but positive acceleration. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
+

LongAcc-Implausible-Brake ::= NULL

LongAcc-ValueTooLarge

This data type is provided for an observation of longitudinal acceleration that is too large. The trigger conditions are provided in the application-specific files.
  • v2xPduEvidence: The v2xPduEvidence field must contain at least one entry. The observation applies to the first entry. The subjectPduIndex in that V2xPduStream points to the PDU whose longitudinal acceleration is being flagged as too large. The v2xPdus field in that entry must contain at least the subject PDU. The PDU may be of any supported type and shall be of type c-MbObsMsg-ieee1609Dot2Data unless another observation included in the same report requires a different PDU type.
  • nonV2xPduEvidence: No other evidence is required to be included to support this observation.
+

LongAcc-ValueTooLarge ::= NULL

-- IDs

c-ObsLongAcc-ValueTooLarge-ThresholdNoContext IdMbObs ::= 2 -- Class 1

c-ObsLongAcc-Implausible-Brake IdMbObs ::= 3 -- Class 2

c-ObsLongAcc-ValueTooLarge IdMbObs ::= 4 -- Class 1

-- Individual Information Objects

obs-LongAcc-ValueTooLarge C-ASR-SINGLE-OBS ::= {LongAcc-ValueTooLarge BY c-ObsLongAcc-ValueTooLarge}

-- Information Object Sets

-- SetMbObsCompleteLongAcc C-ASR-SINGLE-OBS ::= {

-- obs-LongAcc-ValueTooLarge-ThresholdNoContext |

-- obs-LongAcc-Implausible-Brake |

-- obs-LongAcc-ValueTooLarge,

-- ...

-- }

-- Information Object Sets

END

Schema File Ieee1609Dot2.asn
Schema File Ieee1609Dot2.asn

--***************************************************************************--

-- IEEE Std 1609.2: Data Types --

--***************************************************************************--

NOTE: Section references in this file are to clauses in IEEE Std 1609.2 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.
+

Ieee1609Dot2 {iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2)

wave-stds (1609) dot2 (2) base (1) schema (1) major-version-2 (2) minor-version-3 (3)}

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

EXPORTS

ALL;

EXPORTS;

IMPORTS

CrlSeries, EccP256CurvePoint, EciesP256EncryptedKey, EncryptionKey, GeographicRegion, GroupLinkageValue,

HashAlgorithm, HashedId3, HashedId8, Hostname, IValue, LinkageValue, Opaque, Psid, PsidSsp, PsidSspRange,

PublicEncryptionKey, PublicVerificationKey, SequenceOfHashedId3, SequenceOfPsidSsp, SequenceOfPsidSspRange,

ServiceSpecificPermissions, Signature, SubjectAssurance, SymmetricEncryptionKey, ThreeDLocation, Time64, Uint3,

Uint8, Uint16, Uint32, ValidityPeriod

FROM Ieee1609Dot2BaseTypes {iso (1) identified-organization (3) ieee (111)

standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) base (1) base-types (2)

major-version-2 (2) minor-version-2 (2)} WITH SUCCESSORS

FROM Ieee1609Dot2BaseTypes {} WITH SUCCESSORS

EtsiOriginatingHeaderInfoExtension

FROM EtsiTs103097ExtensionModule {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5)

secHeaders (103097) extension (2) version1 (1)} WITH SUCCESSORS;

FROM EtsiTs103097ExtensionModule {} WITH SUCCESSORS;

IMPORTS;

--***************************************************************************--

-- Secured Data --

--***************************************************************************--

Ieee1609Dot2Data

This data type is used to contain the other data types in this clause. The fields in the Ieee1609Dot2Data have the following meanings:
  • protocolVersion
    contains the current version of the protocol. The version specified in this document is version 3, represented by the integer 3. There are no major or minor version numbers.
  • content
    contains the content in the form of an Ieee1609Dot2Content.
+

Ieee1609Dot2Data ::= SEQUENCE {

protocolVersion Uint8 (3),

content Ieee1609Dot2Content

}

Ieee1609Dot2Data ::= SEQUENCE {}

Ieee1609Dot2Content

In this structure:
  • unsecuredData
    indicates that the content is an OCTET STRING to be consumed outside the SDS.
  • signedData
    indicates that the content has been signed according to this standard.
  • encryptedData
    indicates that the content has been encrypted according to this standard.
  • signedCertificateRequest
    indicates that the content is a certificate request. Further specification of certificate requests is not provided in this version of this standard.
+

Ieee1609Dot2Content ::= CHOICE {

unsecuredData Opaque,

signedData SignedData,

encryptedData EncryptedData,

signedCertificateRequest Opaque,

...

}

Ieee1609Dot2Content ::= CHOICE {}

SignedData

In this structure:
  • hashId
    indicates the hash algorithm to be used to generate the hash of the message for signing and verification.
  • tbsData
    contains the data that is hashed as input to the signature.
  • signer
    determines the keying material and hash algorithm used to sign the data.
  • signature
    contains the digital signature itself, calculated as specified in 5.3.1.
    • If signer indicates the choice self, then the signature calculation is parameterized as follows:
      • Data input is equal to the COER encoding of the tbsData field canonicalized according to the encoding considerations given in 6.3.6.
      • Verification type is equal to self.
      • Signer identifier input is equal to the empty string.
    • If signer indicates certificate or digest, then the signature calculation is parameterized as follows:
      • Data input is equal to the COER encoding of the tbsData field canonicalized according to the encoding considerations given in 6.3.6.
      • Verification type is equal to certificate.
      • Signer identifier input equal to the COER-encoding of the Certificate that is to be used to verify the SPDU, canonicalized according to the encoding considerations given in 6.4.3.
+

SignedData ::= SEQUENCE {

hashId HashAlgorithm,

tbsData ToBeSignedData,

signer SignerIdentifier,

signature Signature

}

SignedData ::= SEQUENCE {}

ToBeSignedData

This structure contains the data to be hashed when generating or verifying a signature. See 6.3.4 for the specification of the input to the hash.

Encoding considerations: For encoding considerations associated with the headerInfo field, see 6.3.9.

Parameters:
  • payload
    contains data that is provided by the entity that invokes the SDS.
  • headerInfo
    contains additional data that is inserted by the SDS.
+

ToBeSignedData ::= SEQUENCE {

payload SignedDataPayload,

headerInfo HeaderInfo

}

ToBeSignedData ::= SEQUENCE {}

SignedDataPayload

This structure contains the data payload of a ToBeSignedData. This structure contains at least one of data and extDataHash, and may contain both.
  • data
    contains data that is explicitly transported within the structure.
  • extDataHash
    contains the hash of data that is not explicitly transported within the structure, and which the creator of the structure wishes to cryptographically bind to the signature. For example, if a creator wanted to indicate that some large message was still valid, they could use the extDataHash field to send a Signed¬Data containing the hash of that large message without having to resend the message itself. Whether or not extDataHash is used, and how it is used, is SDEE-specific.
+

SignedDataPayload ::= SEQUENCE {

data Ieee1609Dot2Data OPTIONAL,

extDataHash HashedData OPTIONAL,

...

} (WITH COMPONENTS {

SignedDataPayload ::= SEQUENCE {} (WITH COMPONENTS {

...,

data PRESENT

} | WITH COMPONENTS {

...,

extDataHash PRESENT

})

} | WITH COMPONENTS {})

HashedData

This structure contains the hash of some data with a specified hash algorithm. The hash algorithms supported in this version of this standard are SHA-256 (in the root) and SHA-384 (in the first extension). The reserved extension is for future use.

Critical information fields: If present, this is a critical information field as defined in 5.2.6. An implementation that does not recognize the indicated CHOICE for this type when verifying a signed SPDU shall indicate that the signed SPDU is invalid.
+

HashedData ::= CHOICE {

sha256HashedData OCTET STRING (SIZE (32)),

...,

sha384HashedData OCTET STRING (SIZE (48)),

reserved OCTET STRING (SIZE (32))

}

HashedData ::= CHOICE {}

HeaderInfo

This structure contains information that is used to establish validity by the criteria of 5.2.

Encoding considerations: When the structure is encoded in order to be digested to generate or check a signature, if encryptionKey is present, and indicates the choice public, and contains a BasePublicEncryptionKey that is an elliptic curve point (i.e., of typeEccP256CurvePoint or EccP384CurvePoint), then the elliptic curve point is encoded in compressed form, i.e., such that the choice indicated within the Ecc*CurvePoint is compressed-y-0 or compressed-y-1.

Parameters:
  • psid
    indicates the application area with which the sender is claiming the payload should be associated.
  • generationTime
    indicates the time at which the structure was generated. See 5.2.5.2.2 and 5.2.5.2.3 for discussion of the use of this field.
  • expiryTime,
    if present, contains the time after which the data should no longer be considered relevant. If both generationTime and expiryTime are present, the signed SPDU is invalid if generationTime is not strictly earlier than expiryTime.
  • generationLocation,
    if present, contains the location at which the signature was generated.
  • p2pcdLearningRequest,
    if present, is used by the SDS to request certificates for which it has seen identifiers but does not know the entire certificate. A specification of this peer-to-peer certificate distribution (P2PCD) mechanism is given in Clause 8. This field is used for the out-of-band flavor of P2PCD and shall only be present if inlineP2pcdRequest is not present. The HashedId3 is calculated with the whole-certificate hash algorithm, determined as described in 6.4.3.
  • missingCrlIdentifier,
    if present, is used by the SDS to request CRLs which it knows to have been issued but have not received. This is provided for future use and the associated mechanism is not defined in this version of this standard.
  • encryptionKey,
    if present, is used to indicate that a further communication should be encrypted with the indicated key. One possible use of this key to encrypt a response is specified in 6.3.35, 6.3.37, and 6.3.34. An encryptionKey field of type symmetric should only be used if the Signed¬Data containing this field is securely encrypted by some means.
  • inlineP2pcdRequest,
    if present, is used by the SDS to request unknown certificates per the inline peer-to-peer certificate distribution mechanism is given in Clause 8. This field shall only be present if p2pcdLearningRequest is not present. The HashedId3 is calculated with the whole-certificate hash algorithm, determined as described in 6.4.3.
  • requestedCertificate,
    if present, is used by the SDS to provide certificates per the “inline� version of the peer-to-peer certificate distribution mechanism given in Clause 8.
  • pduFunctionalType,
    if present, is used to indicate that the SPDU is to be consumed by a process other than an application process as defined in ISO 21177 [B14a]. See 6.3.23b for more details.
  • contributedExtensions,
    if present, is used to provide extension blocks defined by identified contributing organizations.
+

HeaderInfo ::= SEQUENCE {

psid Psid,

generationTime Time64 OPTIONAL,

expiryTime Time64 OPTIONAL,

generationLocation ThreeDLocation OPTIONAL,

p2pcdLearningRequest HashedId3 OPTIONAL,

missingCrlIdentifier MissingCrlIdentifier OPTIONAL,

encryptionKey EncryptionKey OPTIONAL,

...,

inlineP2pcdRequest SequenceOfHashedId3 OPTIONAL,

requestedCertificate Certificate OPTIONAL,

pduFunctionalType PduFunctionalType OPTIONAL,

contributedExtensions ContributedExtensionBlocks OPTIONAL

}

HeaderInfo ::= SEQUENCE {}

MissingCrlIdentifier

This structure may be used to request a CRL that the SSME knows to have been issued but has not yet received. It is provided for future use and its use is not defined in this version of this standard.
  • cracaId
    is the HashedId3 of the CRACA, as defined in 5.1.3. The HashedId3 is calculated with the whole-certificate hash algorithm, determined as described in 6.4.3.
  • crlSeries
    is the requested CRL Series value. See 5.1.3 for more information.
+

MissingCrlIdentifier ::= SEQUENCE {

cracaId HashedId3,

crlSeries CrlSeries,

...

}

MissingCrlIdentifier ::= SEQUENCE {}

PduFunctionalType

This data structure identifies the functional entity that is intended to consume an SPDU, for the case where that functional entity is not an application process but security support services for an application process. Further details and the intended use of this field are defined in ISO 21177 [B14a].

An SPDU in which the pduFunctionalType field is present conforms to the security profile for that PduFunctionalType value (given in ISO 21177 [B14a]), not to the security profile for Application SPDUs for the PSID.
  • tlsHandshake
    indicates that the Signed SPDU is not to be directly consumed as an application PDU but is to be used to provide information about the holder’s permissions to a Transport Layer Security (TLS) (IETF 5246 [B13], IETF 8446 [B13a]) handshake process operating to secure communications to an application process. See IETF [B13b] and ISO 21177 [B14a] for further information.
  • iso21177ExtendedAuth
    indicates that the Signed SPDU is not to be directly consumed as an application PDU but is to be used to provide additional information about the holder’s permissions to the ISO 21177 Security Subsystem for an application process. See ISO 21177 [B14a] for further information.
+

PduFunctionalType ::= INTEGER (0..255)

tlsHandshake PduFunctionalType ::= 1

iso21177ExtendedAuth PduFunctionalType ::= 2

ContributedExtensionBlocks

This data structure defines a list of ContributedExtensionBlock
+

ContributedExtensionBlocks ::= SEQUENCE (SIZE (1..MAX)) OF ContributedExtensionBlock

ContributedExtensionBlock

This data structure defines the format of an extension block provided by an identified contributor by using the temnplate provided in the class IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION constraint to the objects in the set Ieee1609Dot2HeaderInfoContributedExtensions.
  • contributorId
    uniquely identifies the contributor
  • extns
    contains a list of extensions from that contributor.
+

IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION

This data structure defines the information object class that provides a "template" for defining extension blocks.
+

WITH SYNTAX {

&Extn IDENTIFIED BY &id

}

WITH SYNTAX {}

Ieee1609Dot2HeaderInfoContributedExtensions

This data structure defines the set of ContributedExtensionBlock Objects.
  • In
    this version of the standard, only the type EtsiOriginatingHeaderInfoExtension contributed by ETSI is supported. The information object EtsiOriginatingHeaderInfoExtension is imported from the EtsiTs103097ExtensionModule
+

HeaderInfoContributorId

This data structure defines the header info contributor id type and its values.
  • In
    this version of the standard, value 2 is assigned to ETSI.
+

HeaderInfoContributorId ::= INTEGER (0..255)

etsiHeaderInfoContributorId HeaderInfoContributorId ::= 2

SignerIdentifier

This structure allows the recipient of data to determine which keying material to use to authenticate the data. It also indicates the verification type to be used to generate the hash for verification, as specified in 5.3.1.
  • If the choice indicated is digest:
    • The structure contains the HashedId8 of the relevant certificate. The HashedId8 is calculated with the whole-certificate hash algorithm, determined as described in 6.4.3.
    • The verification type is certificate and the certificate data passed to the hash function as specified in 5.3.1 is the authorization certificate.
  • If the choice indicated is certificate:
    • The structure contains one or more Certificate structures, in order such that the first certificate is the authorization certificate and each subsequent certificate is the issuer of the one before it.
    • The verification type is certificate and the certificate data passed to the hash function as specified in 5.3.1 is the authorization certificate.
  • If the choice indicated is self:
    • The structure does not contain any data beyond the indication that the choice value is self.
    • The verification type is self-signed.
Critical information fields:
  1. If present, this is a critical information field as defined in 5.2.6. An implementation that does not recognize the CHOICE value for this type when verifying a signed SPDU shall indicate that the signed SPDU is invalid.
  2. If present, certificate is a critical information field as defined in 5.2.6. An implementation that does not support the number of certificates in certificate when verifying a signed SPDU shall indicate that the signed SPDU is invalid. A compliant implementation shall support certificate fields containing at least one certificate.
+

SignerIdentifier ::= CHOICE {

digest HashedId8,

certificate SequenceOfCertificate,

self NULL,

...

}

SignerIdentifier ::= CHOICE {}

--***************************************************************************--

-- Encrypted Data --

--***************************************************************************--

EncryptedData

This data structure encodes data that has been encrypted to one or more recipients using the recipients’ public or symmetric keys as specified in 1.1.1.

Critical information fields:
  • If present, recipients is a critical information field as defined in 5.2.6. An implementation that does not support the number of RecipientInfo in recipients when decrypted shall indicate that the encrypted SPDU could not be decrypted due to unsupported critical information fields. A compliant implementation shall support recipients fields containing at least eight entries.
Parameters:
  • recipients
    contains one or more RecipientInfos. These entries may be more than one RecipientInfo, and more than one type of RecipientInfo, as long as they are all indicating or containing the same data encryption key.
  • ciphertext
    contains the encrypted data. This is the encryption of an encoded Ieee1609Dot2Data structure as specified in 5.3.4.2.
+

EncryptedData ::= SEQUENCE {

recipients SequenceOfRecipientInfo,

ciphertext SymmetricCiphertext

}

EncryptedData ::= SEQUENCE {}

RecipientInfo

This data structure is used to transfer the data encryption key to an individual recipient of an EncryptedData. The option pskRecipInfo is selected if the EncryptedData was encrypted using the static encryption key approach specified in 1.1.1.1. The other options are selected if the EncryptedData was encrypted using the ephemeral encryption key approach specified in 1.1.1.1. The meanings of the choices are:

See Annex C.7 for guidance on when it may be appropriate to use each of these approaches.
  • pskRecipInfo:
    The ciphertext was encrypted directly using a symmetric key.
  • symmRecipInfo:
    The data encryption key was encrypted using a symmetric key.
  • certRecipInfo:
    The data encryption key was encrypted using a public key encryption scheme, where the public encryption key was obtained from a certificate. In this case, the parameter P1 to ECIES as defined in 5.3.4 is the hash of the certificate.
  • signedDataRecipInfo:
    The data encryption key was encrypted using a public encryption key, where the encryption key was obtained as the public response encryption key from a Signed-Data. In this case, the parameter P1 to ECIES as defined in 5.3.4 is the SHA-256 hash of the Ieee1609Dot2Data containing the response encryption key.
  • rekRecipInfo:
    The data encryption key was encrypted using a public key that was not obtained from a Signed¬Data. In this case, the parameter P1 to ECIES as defined in 5.3.4 is the hash of the empty string.
+

RecipientInfo ::= CHOICE {

pskRecipInfo PreSharedKeyRecipientInfo,

symmRecipInfo SymmRecipientInfo,

certRecipInfo PKRecipientInfo,

signedDataRecipInfo PKRecipientInfo,

rekRecipInfo PKRecipientInfo

}

RecipientInfo ::= CHOICE {}

SequenceOfRecipientInfo

This type is used for clarity of definitions.
+

SequenceOfRecipientInfo ::= SEQUENCE OF RecipientInfo

PreSharedKeyRecipientInfo

This data structure is used to indicate a symmetric key that may be used directly to decrypt a SymmetricCiphertext. It consists of the low-order 8 bytes of the SHA-256 hash of the COER encoding of a SymmetricEncryptionKey structure containing the symmetric key in question. The symmetric key may be established by any appropriate means agreed by the two parties to the exchange.
+

PreSharedKeyRecipientInfo ::= HashedId8

SymmRecipientInfo

This data structure contains the following fields:
  • recipientId
    contains the hash of the symmetric key encryption key that may be used to decrypt the data encryption key. It consists of the low-order 8 bytes of the SHA-256 hash of the COER encoding of a SymmetricEncryptionKey structure containing the symmetric key in question. The symmetric key may be established by any appropriate means agreed by the two parties to the exchange.
  • encKey
    contains the encrypted data encryption key within an AES-CCM ciphertext.
+

SymmRecipientInfo ::= SEQUENCE {

recipientId HashedId8,

encKey SymmetricCiphertext

}

SymmRecipientInfo ::= SEQUENCE {}

PKRecipientInfo

This data structure contains the following fields:
  • recipientId
    contains the hash of the container for the encryption public key as specified in the definition of RecipientInfo. Specifically, depending on the choice indicated by the containing RecipientInfo structure:
    • If the containing RecipientInfo structure indicates certRecipInfo, this field contains the HashedId8 of the certificate. The HashedId8 is calculated with the whole-certificate hash algorithm, determined as described in 6.4.3.
    • If the containing RecipientInfo structure indicates signedDataRecipInfo, this field contains the HashedId8 of the Ieee1609Dot2Data of type signed that contained the encryption key, with that Ieee1609Dot2Data canonicalized per 6.3.4. The HashedId8 is calculated with SHA-256.
    • If the containing RecipientInfo structure indicates rekRecipInfo, this field contains the HashedId8 of the COER encoding of a PublicEncryptionKey structure containing the response encryption key. The HashedId8 is calculated with SHA-256.
  • encKey
    contains the encrypted key.
+

PKRecipientInfo ::= SEQUENCE {

recipientId HashedId8,

encKey EncryptedDataEncryptionKey

}

PKRecipientInfo ::= SEQUENCE {}

EncryptedDataEncryptionKey

This data structure contains an encrypted data encryption key.

Critical information fields: If present and applicable to the receiving SDEE, this is a critical information field as defined in 5.2.6. If an implementation receives an encrypted SPDU and determines that one or more RecipientInfo fields are relevant to it, and if all of those RecipientInfos contain an EncryptedDataEncryptionKey such that the implementation does not recognize the indicated CHOICE, the implementation shall indicate that the encrypted SPDU is not decryptable.
+

EncryptedDataEncryptionKey ::= CHOICE {

eciesNistP256 EciesP256EncryptedKey,

eciesBrainpoolP256r1 EciesP256EncryptedKey,

...

}

EncryptedDataEncryptionKey ::= CHOICE {}

SymmetricCiphertext

This data structure encapsulates a ciphertext generated with an approved symmetric algorithm.

Critical information fields: If present, this is a critical information field as defined in 5.2.6. An implementation that does not recognize the indicated CHOICE value for this type in an encrypted SPDU shall reject the SPDU as invalid.
+

SymmetricCiphertext ::= CHOICE {

aes128ccm AesCcmCiphertext,

...

}

SymmetricCiphertext ::= CHOICE {}

AesCcmCiphertext

This data structure encapsulates an encrypted ciphertext for the AES-CCM symmetric algorithm. It contains the following fields:

The ciphertext is 16 bytes longer than the corresponding plaintext.

The plaintext resulting from a correct decryption of the ciphertext is a COER-encoded Ieee1609Dot2Data structure.
  • nonce
    contains the nonce N as specified in 5.3.7.
  • ccmCiphertext
    contains the ciphertext C as specified in 5.3.7.
+

AesCcmCiphertext ::= SEQUENCE {

nonce OCTET STRING (SIZE (12)),

ccmCiphertext Opaque

}

AesCcmCiphertext ::= SEQUENCE {}

Countersignature

This data structure is used to perform a countersignature over an already-signed SPDU. This is the profile of an Ieee1609Dot2Data containing a signedData. The tbsData within content is composed of a payload containing the hash (extDataHash) of the externally generated, pre-signed SPDU over which the countersignature is performed.
+

Countersignature ::= Ieee1609Dot2Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

...,

signedData (WITH COMPONENTS {

...,

tbsData (WITH COMPONENTS {

...,

payload (WITH COMPONENTS {

...,

data ABSENT,

extDataHash PRESENT

}),

payload (WITH COMPONENTS {}),

headerInfo (WITH COMPONENTS {

...,

generationTime PRESENT,

expiryTime ABSENT,

generationLocation ABSENT,

p2pcdLearningRequest ABSENT,

missingCrlIdentifier ABSENT,

encryptionKey ABSENT

})

headerInfo (WITH COMPONENTS {})

})

tbsData (WITH COMPONENTS {})

})

signedData (WITH COMPONENTS {})

})

content (WITH COMPONENTS {})

})

Countersignature ::= Ieee1609Dot2Data (WITH COMPONENTS {})

--***************************************************************************--

-- Certificates and other Security Management --

--***************************************************************************--

Certificate

This structure is a profile of the structure CertificateBase which specifies the valid combinations of fields to transmit implicit and explicit certificates.
+

Certificate ::= CertificateBase (ImplicitCertificate | ExplicitCertificate)

SequenceOfCertificate

This type is used for clarity of definitions.
+

SequenceOfCertificate ::= SEQUENCE OF Certificate

CertificateBase

The fields in this structure have the following meaning:

Encoding considerations: When a certificate is encoded for hashing, for example to generate its HashedId8, or when it is to be used as the signer identifier information for verification, it is canonicalized as follows:
  • The encoding of toBeSigned uses the compressed form for all elliptic curve points: that is, those points indicate a choice of compressed-y-0 or compressed-y-1.
  • The encoding of the signature, if present and if an ECDSA signature, takes the r value to be an EccP256CurvePoint or EccP384CurvePoint indicating the choice x-only.


Whole-certificate hash: If the entirety of a certificate is hashed to calculate a HashedId3, HashedId8, or HashedId10, the algorithm used for this purpose is known as the whole-certificate hash.
  • The whole-certificate hash is SHA-256 if the certificate is an implicit certificate.
  • The whole-certificate hash is SHA-256 if the certificate is an explicit certificate and toBeSigned.verifyKeyIndicator.verificationKey is an EccP256CurvePoint.
  • The whole-certificate hash is SHA-384 if the certificate is an explicit certificate and toBeSigned.verifyKeyIndicator.verificationKey is an EccP384CurvePoint.
Parameters:
  • version
    contains the version of the certificate format. In this version of the data structures, this field is set to 3.
  • type
    states whether the certificate is implicit or explicit. This field is set to explicit for explicit certificates and to implicit for implicit certificates. See ExplicitCertificate and ImplicitCertificate for more details.
  • issuer
    identifies the issuer of the certificate.
  • toBeSigned
    is the certificate contents. This field is an input to the hash when generating or verifying signatures for an explicit certificate, or generating or verifying the public key from the reconstruction value for an implicit certificate. The details of how this field are encoded are given in the description of the ToBeSignedCertificate type.
  • signature
    is included in an ExplicitCertificate. It is the signature, calculated by the signer identified in the issuer field, over the hash of toBeSigned. The hash is calculated as specified in 5.3.1, where:
    • Data input is the encoding of toBeSigned following the COER.
    • Signer identifier input depends on the verification type, which in turn depends on the choice indicated by issuer. If the choice indicated by issuer is self, the verification type is self-signed and the signer identifier input is the empty string. If the choice indicated by issuer is not self, the verification type is certificate and the signer identifier input is the canonicalized COER encoding of the certificate indicated by issuer. The canonicalization is carried out as specified in the Encoding considerations section of this subclause.
+

CertificateBase ::= SEQUENCE {

version Uint8 (3),

type CertificateType,

issuer IssuerIdentifier,

toBeSigned ToBeSignedCertificate,

signature Signature OPTIONAL

}

CertificateBase ::= SEQUENCE {}

CertificateType

This enumerated type indicates whether a certificate is explicit or implicit.

Critical information fields: If present, this is a critical information field as defined in 5.2.5. An implementation that does not recognize the indicated CHOICE for this type when verifying a signed SPDU shall indicate that the signed SPDU is invalid.
+

CertificateType ::= ENUMERATED {explicit, implicit, ...}

ImplicitCertificate

This is a profile of the CertificateBase structure providing all the fields necessary for an implicit certificate, and no others.
+

ImplicitCertificate ::= CertificateBase (WITH COMPONENTS {

...,

type (implicit),

toBeSigned (WITH COMPONENTS {

...,

verifyKeyIndicator (WITH COMPONENTS {reconstructionValue})

}),

toBeSigned (WITH COMPONENTS {}),

signature ABSENT

})

ImplicitCertificate ::= CertificateBase (WITH COMPONENTS {})

ExplicitCertificate

This is a profile of the CertificateBase structure providing all the fields necessary for an explicit certificate, and no others.
+

ExplicitCertificate ::= CertificateBase (WITH COMPONENTS {

...,

type (explicit),

toBeSigned (WITH COMPONENTS {

...,

verifyKeyIndicator (WITH COMPONENTS {verificationKey})

}),

toBeSigned (WITH COMPONENTS {}),

signature PRESENT

})

ExplicitCertificate ::= CertificateBase (WITH COMPONENTS {})

IssuerIdentifier

This structure allows the recipient of a certificate to determine which keying material to use to authenticate the certificate.

If the choice indicated is sha256AndDigest or sha384AndDigest:
  • The structure contains the HashedId8 of the issuing certificate, where the certificate is canonicalized as specified in 6.4.3 before hashing and the HashedId8 is calculated with the whole-certificate hash algorithm, determined as described in 6.4.3.
  • The hash algorithm to be used to generate the hash of the certificate for verification is SHA-256 (in the case of sha256AndDigest) or SHA-384 (in the case of sha384AndDigest).
  • The certificate is to be verified with the public key of the indicated issuing certificate.
If the choice indicated is self:
  • The structure indicates what hash algorithm is to be used to generate the hash of the certificate for verification.
  • The certificate is to be verified with the public key indicated by the verifyKeyIndicator field in theToBeSignedCertificate.


Critical information fields: If present, this is a critical information field as defined in 5.2.5. An implementation that does not recognize the indicated CHOICE for this type when verifying a signed SPDU shall indicate that the signed SPDU is invalid.
+

IssuerIdentifier ::= CHOICE {

sha256AndDigest HashedId8,

self HashAlgorithm,

...,

sha384AndDigest HashedId8

}

IssuerIdentifier ::= CHOICE {}

ToBeSignedCertificate

The fields in the ToBeSignedCertificate structure have the following meaning:

Encoding considerations: The encoding of toBeSigned which is input to the hash uses the compressed form for all public keys and reconstruction values that are elliptic curve points: that is, those points indicate a choice of compressed-y-0 or compressed-y-1. The encoding of the issuing certificate uses the compressed form for all public key and reconstruction values and takes the r value of an ECDSA signature, which in this standard is an ECC curve point, to be of type x-only.

For both implicit and explicit certificates, when the certificate is hashed to create or recover the public key (in the case of an implicit certificate) or to generate or verify the signature (in the case of an explicit certificate), the hash is Hash (Data input) || Hash ( Signer identifier input), where:
  • Data input is the COER encoding of toBeSigned, canonicalized as described above.
  • Signer identifier input depends on the verification type, which in turn depends on the choice indicated by issuer. If the choice indicated by issuer is self, the verification type is self-signed and the signer identifier input is the empty string. If the choice indicated by issuer is not self, the verification type is certificate and the signer identifier input is the COER encoding of the canonicalization per 6.4.3 of the certificate indicated by issuer.
In other words, for implicit certificates, the value H (CertU) in SEC 4, section 3, is for purposes of this standard taken to be H [H (canonicalized ToBeSignedCertificate from the subordinate certificate) || H (entirety of issuer Certificate)]. See 5.3.2 for further discussion, including material differences between this standard and SEC 4 regarding how the hash function output is converted from a bit string to an integer.

NOTE: This encoding of the implicit certificate for hashing has been changed from the encoding specified in IEEE Std 1609.2-2013 for consistency with the encoding of the explicit certificates. This definition of the encoding results in implicit and explicit certificates both being hashed as specified in 5.3.1.

Critical information fields:
  • If present, appPermissions is a critical information field as defined in 5.2.6. An implementation that does not support the number of PsidSsp in appPermissions shall reject the signed SPDU as invalid. A compliant implementation shall support appPermissions fields containing at least eight entries.
  • If present, certIssuePermissions is a critical information field as defined in 5.2.6. An implementation that does not support the number of PsidGroupPermissions in certIssuePermissions shall reject the signed SPDU as invalid. A compliant implementation shall support certIssuePermissions fields containing at least eight entries.
  • If present, certRequestPermissions is a critical information field as defined in 5.2.6. An implementation that does not support the number of PsidGroupPermissions in certRequestPermissions shall reject the signed SPDU as invalid. A compliant implementation shall support certRequestPermissions fields containing at least eight entries.
Parameters:
  • id
    contains information that is used to identify the certificate holder if necessary.
  • cracaId
    identifies the Certificate Revocation Authorization CA (CRACA) responsible for certificate revocation lists (CRLs) on which this certificate might appear. Use of the cracaId is specified in 5.1.3. The HashedId3 is calculated with the whole-certificate hash algorithm, determined as described in 6.4.12.
  • crlSeries
    represents the CRL series relevant to a particular Certificate Revocation Authorization CA (CRACA) on which the certificate might appear. Use of this field is specified in 5.1.3.
  • validityPeriod
    contains the validity period of the certificate.
  • region,
    if present, indicates the validity region of the certificate. If it is omitted the validity region is indicated as follows:
    • If enclosing certificate is self-signed, i.e., the choice indicated by the issuer field in the enclosing certificate structure is self, the certificate is valid worldwide.
    • Otherwise, the certificate has the same validity region as the certificate that issued it.
  • assuranceLevel
    indicates the assurance level of the certificate holder.
  • appPermissions
    indicates the permissions that the certificate holder has to sign application data with this certificate. A valid instance of appPermissions contains any particular Psid value in at most one entry.
  • certIssuePermissions
    indicates the permissions that the certificate holder has to sign certificates with this certificate. A valid instance of this array contains no more than one entry whose psidSspRange field indicates all. If the array has multiple entries and one entry has its psidSspRange field indicate all, then the entry indicating all specifies the permissions for all PSIDs other than the ones explicitly specified in the other entries. See the description of PsidGroupPermissions for further discussion.
  • certRequestPermissions
    indicates the permissions that the certificate holder has to sign certificate requests with this certificate. A valid instance of this array contains no more than one entry whose psidSspRange field indicates all. If the array has multiple entries and one entry has its psidSspRange field indicate all, then the entry indicating all specifies the permissions for all PSIDs other than the ones explicitly specified in the other entries. See the description of PsidGroupPermissions for further discussion.
  • canRequestRollover
    indicates that the certificate may be used to sign a request for another certificate with the same permissions. This field is provided for future use and its use is not defined in this version of this standard.
  • encryptionKey
    contains a public key for encryption for which the certificate holder holds the corresponding private key.
  • verifyKeyIndicator
    contains material that may be used to recover the public key that may be used to verify data signed by this certificate.
+

ToBeSignedCertificate ::= SEQUENCE {

id CertificateId,

cracaId HashedId3,

crlSeries CrlSeries,

validityPeriod ValidityPeriod,

region GeographicRegion OPTIONAL,

assuranceLevel SubjectAssurance OPTIONAL,

appPermissions SequenceOfPsidSsp OPTIONAL,

certIssuePermissions SequenceOfPsidGroupPermissions OPTIONAL,

certRequestPermissions SequenceOfPsidGroupPermissions OPTIONAL,

canRequestRollover NULL OPTIONAL,

encryptionKey PublicEncryptionKey OPTIONAL,

verifyKeyIndicator VerificationKeyIndicator,

...

} (WITH COMPONENTS {

ToBeSignedCertificate ::= SEQUENCE {} (WITH COMPONENTS {

...,

appPermissions PRESENT

} | WITH COMPONENTS {

...,

certIssuePermissions PRESENT

} | WITH COMPONENTS {

} | WITH COMPONENTS {} | WITH COMPONENTS {

...,

certRequestPermissions PRESENT

})

CertificateId

This structure contains information that is used to identify the certificate holder if necessary.

Critical information fields:
  • If present, this is a critical information field as defined in 5.2.6. An implementation that does not recognize the choice indicated in this field shall reject a signed SPDU as invalid.
Parameters:
  • linkageData
    is used to identify the certificate for revocation purposes in the case of certificates that appear on linked certificate CRLs. See 5.1.3 and 7.3 for further discussion.
  • name
    is used to identify the certificate holder in the case of non-anonymous certificates. The contents of this field are a matter of policy and should be human-readable.
  • binaryId
    supports identifiers that are not human-readable.
  • none
    indicates that the certificate does not include an identifier.
+

CertificateId ::= CHOICE {

linkageData LinkageData,

name Hostname,

binaryId OCTET STRING (SIZE (1..64)),

none NULL,

...

}

CertificateId ::= CHOICE {}

LinkageData

This structure contains information that is matched against information obtained from a linkage ID-based CRL to determine whether the containing certificate has been revoked. See 5.1.3.4 and 7.3 for details of use.
+

LinkageData ::= SEQUENCE {

iCert IValue,

linkage-value LinkageValue,

group-linkage-value GroupLinkageValue OPTIONAL

}

LinkageData ::= SEQUENCE {}

EndEntityType

This type indicates which type of permissions may appear in end-entity certificates the chain of whose permissions passes through the PsidGroupPermissions field containing this value. If app is indicated, the end-entity certificate may contain an appPermissions field. If enroll is indicated, the end-entity certificate may contain a certRequestPermissions field.
+

EndEntityType ::= BIT STRING {

app (0),

enroll (1)

} (SIZE (8)) (ALL EXCEPT {})

EndEntityType ::= BIT STRING {} (SIZE (8)) (ALL EXCEPT {})

PsidGroupPermissions

This structure states the permissions that a certificate holder has with respect to issuing and requesting certificates for a particular set of PSIDs. In this structure:

For examples, see D.5.3 and D.5.4.
  • subjectPermissions
    indicates PSIDs and SSP Ranges covered by this field.
  • minChainLength
    and chainLengthRange indicate how long the certificate chain from this certificate to the end-entity certificate is permitted to be. As specified in 5.1.2.1, the length of the certificate chain is the number of certificates "below" this certificate in the chain, down to and including the end-entity certificate. The length is permitted to be (a) greater than or equal to minChainLength certificates and (b) less than or equal to minChainLength + chainLengthRange certificates. A value of 0 for minChainLength is not permitted when this type appears in the certIssuePermissions field of a ToBeSignedCertificate; a certificate that has a value of 0 for this field is invalid. The value −1 for chainLengthRange is a special case: if the value of chainLengthRange is −1 it indicates that the certificate chain may be any length equal to or greater than minChainLength. See the examples below for further discussion.
  • eeType
    takes one or more of the values app and enroll and indicates the type of certificates or requests that this instance of PsidGroupPermissions in the certificate is entitled to authorize. If this field indicates app, the chain is allowed to end in an authorization certificate, i.e., a certficate in which these permissions appear in an appPermissions field (in other words, if the field does not indicate app but the chain ends in an authorization certificate, the chain shall be considered invalid). If this field indicates enroll, the chain is allowed to end in an enrollment certificate, i.e., a certificate in which these permissions appear in a certReqPermissions permissions field), or both (in other words, if the field does not indicate app but the chain ends in an authorization certificate, the chain shall be considered invalid). Different instances of PsidGroupPermissions within a ToBeSignedCertificate may have different values for eeType.
+

PsidGroupPermissions ::= SEQUENCE {

subjectPermissions SubjectPermissions,

minChainLength INTEGER DEFAULT 1,

chainLengthRange INTEGER DEFAULT 0,

eeType EndEntityType DEFAULT {app}

}

PsidGroupPermissions ::= SEQUENCE {}

SequenceOfPsidGroupPermissions

This type is used for clarity of definitions.
+

SequenceOfPsidGroupPermissions ::= SEQUENCE OF PsidGroupPermissions

SubjectPermissions

This indicates the PSIDs and associated SSPs for which certificate issuance or request permissions are granted by a PsidGroupPermissions structure. If this takes the value explicit, the enclosing PsidGroupPermissions structure grants certificate issuance or request permissions for the indicated PSIDs and SSP Ranges. If this takes the value all, the enclosing PsidGroupPermissions structure grants certificate issuance or request permissions for all PSIDs not indicated by other PsidGroupPermissions in the same certIssuePermissions or certRequestPermissions field.

Critical information fields:
  • If present, this is a critical information field as defined in 5.2.6. An implementation that does not recognize the indicated CHOICE when verifying a signed SPDU shall indicate that the signed SPDU is invalid.
  • If present, explicit is a critical information field as defined in 5.2.6. An implementation that does not support the number of PsidSspRange in explicit when verifying a signed SPDU shall indicate that the signed SPDU is invalid. A compliant implementation shall support explicit fields containing at least eight entries.
+

SubjectPermissions ::= CHOICE {

explicit SequenceOfPsidSspRange,

all NULL,

...

}

SubjectPermissions ::= CHOICE {}

VerificationKeyIndicator

The contents of this field depend on whether the certificate is an implicit or an explicit certificate.

Critical information fields: If present, this is a critical information field as defined in 5.2.5. An implementation that does not recognize the indicated CHOICE for this type when verifying a signed SPDU shall indicate that the signed SPDU is invalid.

Parameters:
  • verificationKey
    is included in explicit certificates. It contains the public key to be used to verify signatures generated by the holder of the Certificate.
  • reconstructionValue
    is included in implicit certificates. It contains the reconstruction value, which is used to recover the public key as specified in SEC 4 and 5.3.2.
+

VerificationKeyIndicator ::= CHOICE {

verificationKey PublicVerificationKey,

reconstructionValue EccP256CurvePoint,

...

}

VerificationKeyIndicator ::= CHOICE {}

END

Schema File Ieee1609Dot2BaseTypes.asn
Schema File Ieee1609Dot2BaseTypes.asn

--***************************************************************************--

-- IEEE Std 1609.2: Base Data Types --

--***************************************************************************--

NOTE: Section references in this file are to clauses in IEEE Std 1609.2 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.
+

Ieee1609Dot2BaseTypes {iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards

(2) wave-stds (1609) dot2 (2) base (1) base-types (2) major-version-2 (2) minor-version-2 (2)}

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

EXPORTS

ALL;

EXPORTS;

--***************************************************************************--

-- Integer Types --

--***************************************************************************--

Uint3

This atomic type is used in the definition of other data structures. It is for non-negative integers up to 7, i.e., (hex)07.
+

Uint3 ::= INTEGER (0..7)

Uint8

This atomic type is used in the definition of other data structures. It is for non-negative integers up to 255, i.e., (hex)ff.
+

Uint8 ::= INTEGER (0..255)

Uint16

This atomic type is used in the definition of other data structures. It is for non-negative integers up to 65,535, i.e., (hex)ff ff.
+

Uint16 ::= INTEGER (0..65535)

Uint32

This atomic type is used in the definition of other data structures. It is for non-negative integers up to 4,294,967,295, i.e., (hex)ff ff ff ff.
+

Uint32 ::= INTEGER (0..4294967295)

Uint64

This atomic type is used in the definition of other data structures. It is for non-negative integers up to 18,446,744,073,709,551,615, i.e., (hex)ff ff ff ff ff ff ff ff.
+

Uint64 ::= INTEGER (0..18446744073709551615)

SequenceOfUint8

This type is used for clarity of definitions.
+

SequenceOfUint8 ::= SEQUENCE OF Uint8

SequenceOfUint16

This type is used for clarity of definitions.
+

SequenceOfUint16 ::= SEQUENCE OF Uint16

--***************************************************************************--

-- OCTET STRING Types --

--***************************************************************************--

Opaque

This is a synonym for ASN.1 OCTET STRING, and is used in the definition of other data structures.
+

Opaque ::= OCTET STRING

HashedId3

This type contains the truncated hash of another data structure. The HashedId3 for a given data structure is calculated by calculating the hash of the encoded data structure and taking the low-order three bytes of the hash output. If the data structure is subject to canonicalization it is canonicalized before hashing. The low-order three bytes are the last three bytes of the hash when represented in network byte order. See Example below.

Example: Consider the SHA-256 hash of the empty string:
SHA-256("") = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

The HashedId3 derived from this hash corresponds to the following:
HashedId3 = 52b855.
+

HashedId3 ::= OCTET STRING (SIZE (3))

SequenceOfHashedId3

This type is used for clarity of definitions.
+

SequenceOfHashedId3 ::= SEQUENCE OF HashedId3

HashedId8

This type contains the truncated hash of another data structure. The HashedId8 for a given data structure is calculated by calculating the hash of the encoded data structure and taking the low-order eight bytes of the hash output. If the data structure is subject to canonicalization it is canonicalized before hashing. The low-order eight bytes are the last eight bytes of the hash when represented in network byte order. See Example below.

The hash algorithm to be used to calculate a HashedId8 within a structure depends on the context. In this standard, for each structure that includes a HashedId8 field, the corresponding text indicates how the hash algorithm is determined.

Example: Consider the SHA-256 hash of the empty string:
SHA-256("") = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

The HashedId8 derived from this hash corresponds to the following:
HashedId8 = a495991b7852b855.
+

HashedId8 ::= OCTET STRING (SIZE (8))

HashedId10

This type contains the truncated hash of another data structure. The HashedId10 for a given data structure is calculated by calculating the hash of the encoded data structure and taking the low-order ten bytes of the hash output. If the data structure is subject to canonicalization it is canonicalized before hashing. The low-order ten bytes are the last ten bytes of the hash when represented in network byte order. See Example below.

The hash algorithm to be used to calculate a HashedId10 within a structure depends on the context. In this standard, for each structure that includes a HashedId10 field, the corresponding text indicates how the hash algorithm is determined.

Example: Consider the SHA-256 hash of the empty string:
SHA-256("") = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

The HashedId10 derived from this hash corresponds to the following:
HashedId10 = 934ca495991b7852b855.
+

HashedId10 ::= OCTET STRING (SIZE (10))

HashedId32

This type contains the truncated hash of another data structure. The HashedId32 for a given data structure is calculated by calculating the hash of the encoded data structure and taking the low-order thirty two bytes of the hash output. If the data structure is subject to canonicalization it is canonicalized before hashing. The low-order thirty two bytes are the last thirty two bytes of the hash when represented in network byte order. See Example below.

The hash algorithm to be used to calculate a HashedId32 within a structure depends on the context. In this standard, for each structure that includes a HashedId32 field, the corresponding text indicates how the hash algorithm is determined.

Example: Consider the SHA-256 hash of the empty string:
SHA-256("") = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

The HashedId32 derived from this hash corresponds to the following:
HashedId32 = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.
+

HashedId32 ::= OCTET STRING (SIZE (32))

--***************************************************************************--

-- Time Structures --

--***************************************************************************--

Time32

This type gives the number of (TAI) seconds since 00:00:00 UTC, 1 January, 2004.
+

Time32 ::= Uint32

Time64

This type gives the number of (TAI) microseconds since 00:00:00 UTC, 1 January, 2004.
+

Time64 ::= Uint64

ValidityPeriod

This structure gives the validity period of a certificate. The start of the validity period is given by start and the end is given by start + duration.
  • start
    contains the starting time of the validity period.
  • duration
    contains the duration of the validity period.
+

ValidityPeriod ::= SEQUENCE {

start Time32,

duration Duration

}

ValidityPeriod ::= SEQUENCE {}

Duration

This structure represents the duration of validity of a certificate. The Uint16 value is the duration, given in the units denoted by the indicated choice. A year is considered to be 31556952 seconds, which is the average number of seconds in a year; if it is desired to map years more closely to wall-clock days, this can be done using the hours choice for up to seven years and the sixtyHours choice for up to 448. In this structure:
  • microseconds
    contains the duration in microseconds.
  • milliseconds
    contains the duration in milliseconds.
  • seconds
    contains the duration in seconds.
  • minutes
    contains the duration in minutes.
  • hours
    contains the duration in hours.
  • sixtyHours
    contains the duration in sixty-hour periods.
  • years
    contains the duration in years.
+

Duration ::= CHOICE {

microseconds Uint16,

milliseconds Uint16,

seconds Uint16,

minutes Uint16,

hours Uint16,

sixtyHours Uint16,

years Uint16

}

Duration ::= CHOICE {}

--***************************************************************************--

-- Location Structures --

--***************************************************************************--

GeographicRegion

This structure represents a geographic region of a specified form. A certificate is not valid if any part of the region indicated in its scope field lies outside the region indicated in the scope of its issuer.

Critical information fields:
  • If present, this is a critical information field as defined in 5.2.6. An implementation that does not recognize the indicated CHOICE when verifying a signed SPDU shall indicate that the signed SPDU is invalid.
  • If selected, rectangularRegion is a critical information field as defined in 5.2.6. An implementation that does not support the number of RectangularRegion in rectangularRegions when verifying a signed SPDU shall indicate that the signed SPDU is invalid. A compliant implementation shall support rectangularRegions fields containing at least eight entries.
  • If selected, identifiedRegion is a critical information field as defined in 5.2.6. An implementation that does not support the number of IdentifiedRegion in identifiedRegion shall reject the signed SPDU as invalid. A compliant implementation shall support identifiedRegion fields containing at least eight entries.
Parameters:
  • circularRegion
    contains a single instance of the CircularRegion structure.
  • rectangularRegion
    is an array of RectangularRegion structures containing at least one entry. This field is interpreted as a series of rectangles, which may overlap or be disjoint. The permitted region is any point within any of the rectangles.
  • polygonalRegion
    contains a single instance of the PolygonalRegion structure.
  • identifiedRegion
    is an array of IdentifiedRegion structures containing at least one entry. The permitted region is any point within any of the identified regions.
+

GeographicRegion ::= CHOICE {

circularRegion CircularRegion,

rectangularRegion SequenceOfRectangularRegion,

polygonalRegion PolygonalRegion,

identifiedRegion SequenceOfIdentifiedRegion,

...

}

GeographicRegion ::= CHOICE {}

CircularRegion

This structure specifies a circle with its center at center, its radius given in meters, and located tangential to the reference ellipsoid. The indicated region is all the points on the surface of the reference ellipsoid whose distance to the center point over the reference ellipsoid is less than or equal to the radius. A point which contains an elevation component is considered to be within the circular region if its horizontal projection onto the reference ellipsoid lies within the region.
+

CircularRegion ::= SEQUENCE {

center TwoDLocation,

radius Uint16

}

CircularRegion ::= SEQUENCE {}

RectangularRegion

This structure specifies a rectangle formed by connecting in sequence: (northWest.latitude, northWest.longitude), (southEast.latitude, northWest.longitude), (southEast.latitude, southEast.longitude), and (northWest.latitude, southEast.longitude). The points are connected by lines of constant latitude or longitude. A point which contains an elevation component is considered to be within the rectangular region if its horizontal projection onto the reference ellipsoid lies within the region. A RectangularRegion is valid only if the northWest value is north and west of the southEast value, i.e., the two points cannot have equal latitude or equal longitude.
+

RectangularRegion ::= SEQUENCE {

northWest TwoDLocation,

southEast TwoDLocation

}

RectangularRegion ::= SEQUENCE {}

SequenceOfRectangularRegion

This type is used for clarity of definitions.
+

SequenceOfRectangularRegion ::= SEQUENCE OF RectangularRegion

PolygonalRegion

This structure defines a region using a series of distinct geographic points, defined on the surface of the reference ellipsoid. The region is specified by connecting the points in the order they appear, with each pair of points connected by the geodesic on the reference ellipsoid. The polygon is completed by connecting the final point to the first point. The allowed region is the interior of the polygon and its boundary.

A point which contains an elevation component is considered to be within the polygonal region if its horizontal projection onto the reference ellipsoid lies within the region.

A valid PolygonalRegion contains at least three points. In a valid PolygonalRegion, the implied lines that make up the sides of the polygon do not intersect.

Critical information fields:
  • If present, this is a critical information field as defined in 5.2.6. An implementation that does not support the number of TwoDLocation in the PolygonalRegion when verifying a signed SPDU shall indicate that the signed SPDU is invalid. A compliant implementation shall support PolygonalRegions containing at least eight TwoDLocation entries.
+

PolygonalRegion ::= SEQUENCE SIZE (3..MAX) OF TwoDLocation

TwoDLocation

This structure is used to define validity regions for use in certificates. The latitude and longitude fields contain the latitude and longitude as defined above.

NOTE: This data structure is consistent with the location encoding used in SAE J2735, except that values 900 000 001 for latitude (used to indicate that the latitude was not available) and 1 800 000 001 for longitude (used to indicate that the longitude was not available) are not valid.
+

TwoDLocation ::= SEQUENCE {

latitude Latitude,

longitude Longitude

}

TwoDLocation ::= SEQUENCE {}

IdentifiedRegion

This structure indicates the region of validity of a certificate using region identifiers.

Critical information fields:
  • If present, this is a critical information field as defined in 5.2.6. An implementation that does not recognize the indicated CHOICE when verifying a signed SPDU shall indicate that the signed SPDU is invalid.
+

IdentifiedRegion ::= CHOICE {

countryOnly CountryOnly,

countryAndRegions CountryAndRegions,

countryAndSubregions CountryAndSubregions,

...

}

IdentifiedRegion ::= CHOICE {}

SequenceOfIdentifiedRegion

This type is used for clarity of definitions.
+

SequenceOfIdentifiedRegion ::= SEQUENCE OF IdentifiedRegion

CountryOnly

This is the integer representation of the country or area identifier as defined by the United Nations Statistics Division in October 2013 (see normative references in Clause 2).
+

CountryOnly ::= Uint16

CountryAndRegions

In this structure:
  • countryOnly
    is a CountryOnly as defined above.
  • region
    identifies one or more regions within the country. If countryOnly indicates the United States of America, the values in this field identify the state or statistically equivalent entity using the integer version of the 2010 FIPS codes as provided by the U.S. Census Bureau (see normative references in Clause 2). For other values of countryOnly, the meaning of region is not defined in this version of this standard.
+

CountryAndRegions ::= SEQUENCE {

countryOnly CountryOnly,

regions SequenceOfUint8

}

CountryAndRegions ::= SEQUENCE {}

CountryAndSubregions

In this structure:

Critical information fields:
  • If present, this is a critical information field as defined in 5.2.6. An implementation that does not recognize RegionAndSubregions or CountryAndSubregions values when verifying a signed SPDU shall indicate that the signed SPDU is invalid. A compliant implementation shall support CountryAndSubregions containing at least eight RegionAndSubregions entries.
Parameters:
  • country
    is a CountryOnly as defined above.
  • regionAndSubregions
    identifies one or more subregions within country. If country indicates the United States of America, the values in this field identify the county or county equivalent entity using the integer version of the 2010 FIPS codes as provided by the U.S. Census Bureau (see normative references in Clause 2). For other values of country, the meaning of regionAndSubregions is not defined in this version of this standard.
+

CountryAndSubregions ::= SEQUENCE {

country CountryOnly,

regionAndSubregions SequenceOfRegionAndSubregions

}

CountryAndSubregions ::= SEQUENCE {}

RegionAndSubregions

In this structure:

Critical information fields:
  • RegionAndSubregions is a critical information field as defined in 5.2.5. An implementation that does not detect or recognize the the region or subregions values when verifying a signed SPDU shall indicate that the signed SPDU is invalid.
Parameters:
  • region
    identifies a region within a country as specified under CountryAndRegions.
  • subregions
    identifies one or more subregions as specified under CountryAndSubregions.
+

RegionAndSubregions ::= SEQUENCE {

region Uint8,

subregions SequenceOfUint16

}

RegionAndSubregions ::= SEQUENCE {}

SequenceOfRegionAndSubregions

This type is used for clarity of definitions.
+

SequenceOfRegionAndSubregions ::= SEQUENCE OF RegionAndSubregions

ThreeDLocation

This structure contains an estimate of 3D location. The details of the structure are given in the definitions of the individual fields below.

NOTE: The units used in this data structure are consistent with the location data structures used in SAE J2735, though the encoding is incompatible.
+

ThreeDLocation ::= SEQUENCE {

latitude Latitude,

longitude Longitude,

elevation Elevation

}

ThreeDLocation ::= SEQUENCE {}

Latitude

This type contains an INTEGER encoding an estimate of the latitude with precision 1/10th microdegree relative to the World Geodetic System (WGS)-84 datum as defined in NIMA Technical Report TR8350.2.
+

Latitude ::= NinetyDegreeInt

Longitude

This type contains an INTEGER encoding an estimate of the longitude with precision 1/10th microdegree relative to the World Geodetic System (WGS)-84 datum as defined in NIMA Technical Report TR8350.2.
+

Longitude ::= OneEightyDegreeInt

Elevation

This structure contains an estimate of the geodetic altitude above or below the WGS84 ellipsoid. The 16-bit value is interpreted as an integer number of decimeters representing the height above a minimum height of −409.5 m, with the maximum height being 6143.9 m.
+

Elevation ::= Uint16

NinetyDegreeInt

The integer in the latitude field is no more than 900,000,000 and no less than −900,000,000, except that the value 900,000,001 is used to indicate the latitude was not available to the sender.
+

NinetyDegreeInt ::= INTEGER {

min (-900000000),

max (900000000),

unknown (900000001)

} (-900000000..900000001)

NinetyDegreeInt ::= INTEGER {} (-900000000..900000001)

KnownLatitude

The known latitudes are from -900,000,000 to +900,000,000 in 0.1 microdegree intervals.
+

KnownLatitude ::= NinetyDegreeInt (min..max)

UnknownLatitude

The value 900,000,001 indicates that the latitude was not available to the sender.
+

UnknownLatitude ::= NinetyDegreeInt (unknown)

OneEightyDegreeInt

The integer in the longitude field is no more than 1,800,000,000 and no less than −1,799,999,999, except that the value 1,800,000,001 is used to indicate that the longitude was not available to the sender.
+

OneEightyDegreeInt ::= INTEGER {

min (-1799999999),

max (1800000000),

unknown (1800000001)

} (-1799999999..1800000001)

OneEightyDegreeInt ::= INTEGER {} (-1799999999..1800000001)

KnownLongitude

The known longitudes are from -1,799,999,999 to +1,800,000,000 in 0.1 microdegree intervals.
+

KnownLongitude ::= OneEightyDegreeInt (min..max)

UnknownLongitude

The value 1,800,000,001 indicates that the longitude was not available to the sender.
+

UnknownLongitude ::= OneEightyDegreeInt (unknown)

--***************************************************************************--

-- Crypto Structures --

--***************************************************************************--

Signature

This structure represents a signature for a supported public key algorithm. It may be contained within SignedData or Certificate.

Critical information fields: If present, this is a critical information field as defined in 5.2.5. An implementation that does not recognize the indicated CHOICE for this type when verifying a signed SPDU shall indicate that the signed SPDU is invalid.
+

Signature ::= CHOICE {

ecdsaNistP256Signature EcdsaP256Signature,

ecdsaBrainpoolP256r1Signature EcdsaP256Signature,

...,

ecdsaBrainpoolP384r1Signature EcdsaP384Signature

}

Signature ::= CHOICE {}

EcdsaP256Signature

This structure represents an ECDSA signature. The signature is generated as specified in 5.3.1.

If the signature process followed the specification of FIPS 186-4 and output the integer r, r is represented as an EccP256CurvePoint indicating the selection x-only.

If the signature process followed the specification of SEC 1 and output the elliptic curve point R to allow for fast verification, R is represented as an EccP256CurvePoint indicating the choice compressed-y-0, compressed-y-1, or uncompressed at the sender’s discretion.

Encoding considerations: If this structure is encoded for hashing, the EccP256CurvePoint in rSig shall be taken to be of form x-only.

NOTE: When the signature is of form x-only, the x-value in rSig is an integer mod n, the order of the group; when the signature is of form compressed-y-*, the x-value in rSig is an integer mod p, the underlying prime defining the finite field. In principle this means that to convert a signature from form compressed-y-* to form x-only, the x-value should be checked to see if it lies between n and p and reduced mod n if so. In practice this check is unnecessary: Haase’s Theorem states that difference between n and p is always less than 2*square-root(p), and so the chance that an integer lies between n and p, for a 256-bit curve, is bounded above by approximately square-root(p)/p or 2^(−128). For the 256-bit curves in this standard, the exact values of n and p in hexadecimal are:

NISTp256:
  • p = FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF
  • n = FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551
Brainpoolp256:
  • p = A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F6E5377
  • n = A9FB57DBA1EEA9BC3E660A909D838D718C397AA3B561A6F7901E0E82974856A7
+

EcdsaP256Signature ::= SEQUENCE {

rSig EccP256CurvePoint,

sSig OCTET STRING (SIZE (32))

}

EcdsaP256Signature ::= SEQUENCE {}

EcdsaP384Signature

This structure represents an ECDSA signature. The signature is generated as specified in 5.3.1.

If the signature process followed the specification of FIPS 186-4 and output the integer r, r is represented as an EccP384CurvePoint indicating the selection x-only.

If the signature process followed the specification of SEC 1 and output the elliptic curve point R to allow for fast verification, R is represented as an EccP384CurvePoint indicating the choice compressed-y-0, compressed-y-1, or uncompressed at the sender’s discretion.

Encoding considerations: If this structure is encoded for hashing, the EccP256CurvePoint in rSig shall be taken to be of form x-only.

NOTE: When the signature is of form x-only, the x-value in rSig is an integer mod n, the order of the group; when the signature is of form compressed-y-*, the x-value in rSig is an integer mod p, the underlying prime defining the finite field. In principle this means that to convert a signature from form compressed-y-* to form x-only, the x-value should be checked to see if it lies between n and p and reduced mod n if so. In practice this check is unnecessary: Haase’s Theorem states that difference between n and p is always less than 2*square-root(p), and so the chance that an integer lies between n and p, for a 384-bit curve, is bounded above by approximately square-root(p)/p or 2^(−192). For the 384-bit curve in this standard, the exact values of n and p in hexadecimal are:
  • p = 8CB91E82A3386D280F5D6F7E50E641DF152F7109ED5456B412B1DA197FB71123 ACD3A729901D1A71874700133107EC53
  • n = 8CB91E82A3386D280F5D6F7E50E641DF152F7109ED5456B31F166E6CAC0425A7 CF3AB6AF6B7FC3103B883202E9046565
+

EcdsaP384Signature ::= SEQUENCE {

rSig EccP384CurvePoint,

sSig OCTET STRING (SIZE (48))

}

EcdsaP384Signature ::= SEQUENCE {}

EccP256CurvePoint

This structure specifies a point on an elliptic curve in Weierstrass form defined over a 256-bit prime number. This encompasses both NIST p256 as defined in FIPS 186-4 and Brainpool p256r1 as defined in RFC 5639. The fields in this structure are OCTET STRINGS produced with the elliptic curve point encoding and decoding methods defined in subclause 5.5.6 of IEEE Std 1363-2000. The x-coordinate is encoded as an unsigned integer of length 32 octets in network byte order for all values of the CHOICE; the encoding of the y-coordinate y depends on whether the point is x-only, compressed, or uncompressed. If the point is x-only, y is omitted. If the point is compressed, the value of type depends on the least significant bit of y: if the least significant bit of y is 0, type takes the value compressed-y-0, and if the least significant bit of y is 1, type takes the value compressed-y-1. If the point is uncompressed, y is encoded explicitly as an unsigned integer of length 32 octets in network byte order.
+

EccP256CurvePoint ::= CHOICE {

x-only OCTET STRING (SIZE (32)),

fill NULL,

compressed-y-0 OCTET STRING (SIZE (32)),

compressed-y-1 OCTET STRING (SIZE (32)),

uncompressedP256 SEQUENCE {

x OCTET STRING (SIZE (32)),

y OCTET STRING (SIZE (32))

}

uncompressedP256 SEQUENCE {}

}

EccP256CurvePoint ::= CHOICE {}

EccP384CurvePoint

This structure specifies a point on an elliptic curve in Weierstrass form defined over a 384-bit prime number. The only supported such curve in this standard is Brainpool p384r1 as defined in RFC 5639. The fields in this structure are OCTET STRINGS produced with the elliptic curve point encoding and decoding methods defined in subclause 5.5.6 of IEEE Std 1363-2000. The x-coordinate is encoded as an unsigned integer of length 48 octets in network byte order for all values of the CHOICE; the encoding of the y-coordinate y depends on whether the point is x-only, compressed, or uncompressed. If the point is x-only, y is omitted. If the point is compressed, the value of type depends on the least significant bit of y: if the least significant bit of y is 0, type takes the value compressed-y-0, and if the least significant bit of y is 1, type takes the value compressed-y-1. If the point is uncompressed, y is encoded explicitly as an unsigned integer of length 48 octets in network byte order.
+

EccP384CurvePoint ::= CHOICE {

x-only OCTET STRING (SIZE (48)),

fill NULL,

compressed-y-0 OCTET STRING (SIZE (48)),

compressed-y-1 OCTET STRING (SIZE (48)),

uncompressedP384 SEQUENCE {

x OCTET STRING (SIZE (48)),

y OCTET STRING (SIZE (48))

}

uncompressedP384 SEQUENCE {}

}

EccP384CurvePoint ::= CHOICE {}

SymmAlgorithm

This enumerated value indicates supported symmetric algorithms. The only symmetric algorithm supported in this version of this standard is AES-CCM as specified in 5.3.7.
+

SymmAlgorithm ::= ENUMERATED {aes128Ccm, ...}

HashAlgorithm

This structure identifies a hash algorithm. The value is sha256, indicates SHA-256 as specified in 5.3.3. The value sha384 indicates SHA-384 as specified in 5.3.3.

Critical information fields: This is a critical information field as defined in 5.2.6. An implementation that does not recognize the enumerated value of this type in a signed SPDU when verifying a signed SPDU shall indicate that the signed SPDU is invalid.
+

HashAlgorithm ::= ENUMERATED {sha256, ..., sha384}

EciesP256EncryptedKey

This data structure is used to transfer a 16-byte symmetric key encrypted using ECIES as specified in IEEE Std 1363a-2004.

Encryption and decryption are carried out as specified in 5.3.4.

Parameters:
  • v
    is the sender’s ephemeral public key, which is the output V from encryption as specified in 5.3.4.
  • c
    is the encrypted symmetric key, which is the output C from encryption as specified in 5.3.4. The algorithm for the symmetric key is identified by the CHOICE indicated in the following SymmetricCiphertext.
  • t
    is the authentication tag, which is the output tag from encryption as specified in 5.3.4.
+

EciesP256EncryptedKey ::= SEQUENCE {

v EccP256CurvePoint,

c OCTET STRING (SIZE (16)),

t OCTET STRING (SIZE (16))

}

EciesP256EncryptedKey ::= SEQUENCE {}

EncryptionKey

This structure contains an encryption key, which may be a public or a symmetric key.
+

EncryptionKey ::= CHOICE {

public PublicEncryptionKey,

symmetric SymmetricEncryptionKey

}

EncryptionKey ::= CHOICE {}

PublicEncryptionKey

This structure specifies a public encryption key and the associated symmetric algorithm which is used for bulk data encryption when encrypting for that public key.
+

PublicEncryptionKey ::= SEQUENCE {

supportedSymmAlg SymmAlgorithm,

publicKey BasePublicEncryptionKey

}

PublicEncryptionKey ::= SEQUENCE {}

BasePublicEncryptionKey

This structure specifies the bytes of a public encryption key for a particular algorithm. The only algorithm supported is ECIES over either the NIST P256 or the Brainpool P256r1 curve as specified in 5.3.4.
+

BasePublicEncryptionKey ::= CHOICE {

eciesNistP256 EccP256CurvePoint,

eciesBrainpoolP256r1 EccP256CurvePoint,

...

}

BasePublicEncryptionKey ::= CHOICE {}

PublicVerificationKey

This structure represents a public key and states with what algorithm the public key is to be used. Cryptographic mechanisms are defined in 5.3.

An EccP256CurvePoint or EccP384CurvePoint within a PublicVerificationKey structure is invalid if it indicates the choice x-only.

Critical information fields: If present, this is a critical information field as defined in 5.2.6. An implementation that does not recognize the indicated CHOICE when verifying a signed SPDU shall indicate that the signed SPDU is invalid.
+

PublicVerificationKey ::= CHOICE {

ecdsaNistP256 EccP256CurvePoint,

ecdsaBrainpoolP256r1 EccP256CurvePoint,

...,

ecdsaBrainpoolP384r1 EccP384CurvePoint

}

PublicVerificationKey ::= CHOICE {}

SymmetricEncryptionKey

This structure provides the key bytes for use with an identified symmetric algorithm. The only supported symmetric algorithm is AES-128 in CCM mode as specified in 5.3.7.
+

SymmetricEncryptionKey ::= CHOICE {

aes128Ccm OCTET STRING (SIZE (16)),

...

}

SymmetricEncryptionKey ::= CHOICE {}

--***************************************************************************--

-- PSID / ITS-AID --

--***************************************************************************--

PsidSsp

This structure represents the permissions that the certificate holder has with respect to data for a single application area, identified by a Psid. If the ServiceSpecificPermissions field is omitted, it indicates that the certificate holder has the default permissions associated with that Psid.

Consistency with signed SPDU. As noted in 5.1.1, consistency between the SSP and the signed SPDU is defined by rules specific to the given PSID and is out of scope for this standard.

Consistency with issuing certificate.

If a certificate has an appPermissions entry A for which the ssp field is omitted, A is consistent with the issuing certificate if the issuing certificate contains a PsidSspRange P for which the following holds:
  • The psid field in P is equal to the psid field in A and one of the following is true:
    • The sspRange field in P indicates all.
    • The sspRange field in P indicates opaque and one of the entries in opaque is an OCTET STRING of length 0.
For consistency rules for other forms of the ssp field, see the following subclauses.
+

PsidSsp ::= SEQUENCE {

psid Psid,

ssp ServiceSpecificPermissions OPTIONAL

}

PsidSsp ::= SEQUENCE {}

SequenceOfPsidSsp

This type is used for clarity of definitions.
+

SequenceOfPsidSsp ::= SEQUENCE OF PsidSsp

Psid

This type represents the PSID defined in IEEE Std 1609.12.
+

Psid ::= INTEGER (0..MAX)

SequenceOfPsid

This type is used for clarity of definitions.
+

SequenceOfPsid ::= SEQUENCE OF Psid

ServiceSpecificPermissions

This structure represents the Service Specific Permissions (SSP) relevant to a given entry in a PsidSsp. The meaning of the SSP is specific to the associated Psid. SSPs may be PSID-specific octet strings or bitmap-based. See Annex C for further discussion of how application specifiers may choose which SSP form to use.

Consistency with issuing certificate.

If a certificate has an appPermissions entry A for which the ssp field is opaque, A is consistent with the issuing certificate if the issuing certificate contains one of the following:
  • (OPTION 1) A SubjectPermissions field indicating the choice all and no PsidSspRange field containing the psid field in A;
  • (OPTION 2) A PsidSspRange P for which the following holds:
    • The psid field in P is equal to the psid field in A and one of the following is true:
      • The sspRange field in P indicates all.
      • The sspRange field in P indicates opaque and one of the entries in the opaque field in P is an OCTET STRING identical to the opaque field in A.
For consistency rules for other types of ServiceSpecificPermissions, see the following subclauses.
+

ServiceSpecificPermissions ::= CHOICE {

opaque OCTET STRING (SIZE (0..MAX)),

...,

bitmapSsp BitmapSsp

}

ServiceSpecificPermissions ::= CHOICE {}

BitmapSsp

This structure represents a bitmap representation of a SSP. The mapping of the bits of the bitmap to constraints on the signed SPDU is PSID-specific.

Consistency with issuing certificate.

If a certificate has an appPermissions entry A for which the ssp field is bitmapSsp, A is consistent with the issuing certificate if the issuing certificate contains one of the following:
  • (OPTION 1) A SubjectPermissions field indicating the choice all and no PsidSspRange field containing the psid field in A;
  • (OPTION 2) A PsidSspRange P for which the following holds:
    • The psid field in P is equal to the psid field in A and one of the following is true:
      • EITHER The sspRange field in P indicates all
      • OR The sspRange field in P indicates bitmapSspRange and for every bit set to 1 in the sspBitmask in P, the bit in the identical position in the sspValue in A is set equal to the bit in that position in the sspValue in P.
NOTE: A BitmapSsp B is consistent with a BitmapSspRange R if for every bit set to 1 in the sspBitmask in R, the bit in the identical position in B is set equal to the bit in that position in the sspValue in R. For each bit set to 0 in the sspBitmask in R, the corresponding bit in the identical position in B may be freely set to 0 or 1, i.e., if a bit is set to 0 in the sspBitmask in R, the value of corresponding bit in the identical position in B has no bearing on whether B and R are consistent.
+

BitmapSsp ::= OCTET STRING (SIZE (0..31))

PsidSspRange

This structure represents the certificate issuing or requesting permissions of the certificate holder with respect to one particular set of application permissions.
  • psid
    identifies the application area.
  • sspRange
    identifies the SSPs associated with that PSID for which the holder may issue or request certificates. If sspRange is omitted, the holder may issue or request certificates for any SSP for that PSID.
+

PsidSspRange ::= SEQUENCE {

psid Psid,

sspRange SspRange OPTIONAL

}

PsidSspRange ::= SEQUENCE {}

SequenceOfPsidSspRange

This type is used for clarity of definitions.
+

SequenceOfPsidSspRange ::= SEQUENCE OF PsidSspRange

SspRange

This structure identifies the SSPs associated with a PSID for which the holder may issue or request certificates.

Consistency with issuing certificate.

If a certificate has a PsidSspRange A for which the ssp field is opaque, A is consistent with the issuing certificate if the issuing certificate contains one of the following:
  • (OPTION 1) A SubjectPermissions field indicating the choice all and no PsidSspRange field containing the psid field in A;
  • (OPTION 2) a PsidSspRange P for which the following holds:
    • The psid field in P is equal to the psid field in A and one of the following is true:
      • The sspRange field in P indicates all.
      • The sspRange field in P indicates opaque, and the sspRange field in A indicates opaque, and every OCTET STRING within the opaque in A is a duplicate of an OCTET STRING within the opaque in P.
If a certificate has a PsidSspRange A for which the ssp field is all, A is consistent with the issuing certificate if the issuing certificate contains a PsidSspRange P for which the following holds:
  • (OPTION 1) A SubjectPermissions field indicating the choice all and no PsidSspRange field containing the psid field in A;
  • (OPTION 2) A PsidSspRange P for which the psid field in P is equal to the psid field in A and the sspRange field in P indicates all.
For consistency rules for other types of SspRange, see the following subclauses.

NOTE: The choice "all" may also be indicated by omitting the SspRange in the enclosing PsidSspRange structure. Omitting the SspRange is preferred to explicitly indicating "all".
+

SspRange ::= CHOICE {

opaque SequenceOfOctetString,

all NULL,

...,

bitmapSspRange BitmapSspRange

}

SspRange ::= CHOICE {}

BitmapSspRange

This structure represents a bitmap representation of a SSP. The sspValue indicates permissions. The sspBitmask contains an octet string used to permit or constrain sspValue fields in issued certificates. The sspValue and sspBitmask fields shall be of the same length.

Consistency with issuing certificate.

If a certificate has an PsidSspRange value P for which the sspRange field is bitmapSspRange, P is consistent with the issuing certificate if the issuing certificate contains one of the following:
  • (OPTION 1) A SubjectPermissions field indicating the choice all and no PsidSspRange field containing the psid field in P;
  • (OPTION 2) A PsidSspRange R for which the following holds:
    • The psid field in R is equal to the psid field in P and one of the following is true:
      • EITHER The sspRange field in R indicates all
      • OR The sspRange field in R indicates bitmapSspRange and for every bit set to 1 in the sspBitmask in R:
        • The bit in the identical position in the sspBitmask in P is set equal to 1, AND
        • The bit in the identical position in the sspValue in P is set equal to the bit in that position in the sspValue in R.

Reference ETSI TS 103 097 [B7] for more information on bitmask SSPs.
+

BitmapSspRange ::= SEQUENCE {

sspValue OCTET STRING (SIZE (1..32)),

sspBitmask OCTET STRING (SIZE (1..32))

}

BitmapSspRange ::= SEQUENCE {}

SequenceOfOctetString

This type is used for clarity of definitions.
+

SequenceOfOctetString ::= SEQUENCE (SIZE (0..MAX)) OF OCTET STRING (SIZE (0..MAX))

--***************************************************************************--

-- Certificate Components --

--***************************************************************************--

SubjectAssurance

This field contains the certificate holder’s assurance level, which indicates the security of both the platform and storage of secret keys as well as the confidence in this assessment.

This field is encoded as defined in Table 1, where "A" denotes bit fields specifying an assurance level, "R" reserved bit fields, and "C" bit fields specifying the confidence.

Table 1: Bitwise encoding of subject assurance
Bit number 7 6 5 4 3 2 1 0
Interpretation A A A R R R C C
In Table 1, bit number 0 denotes the least significant bit. Bit 7 to bit 5 denote the device's assurance levels, bit 4 to bit 2 are reserved for future use, and bit 1 and bit 0 denote the confidence.

The specification of these assurance levels as well as the encoding of the confidence levels is outside the scope of the present document. It can be assumed that a higher assurance value indicates that the holder is more trusted than the holder of a certificate with lower assurance value and the same confidence value.

NOTE: This field was originally specified in ETSI TS 103 097 [B7] and future uses of this field are anticipated to be consistent with future versions of that document.
+

SubjectAssurance ::= OCTET STRING (SIZE (1))

CrlSeries

This integer identifies a series of CRLs issued under the authority of a particular CRACA.
+

CrlSeries ::= Uint16

--***************************************************************************--

-- Pseudonym Linkage --

--***************************************************************************--

IValue

This atomic type is used in the definition of other data structures.
+

IValue ::= Uint16

Hostname

This is a UTF-8 string as defined in IETF RFC 3629. The contents are determined by policy.
+

Hostname ::= UTF8String (SIZE (0..255))

LinkageValue

This is the individual linkage value. See 5.1.3 and 7.3 for details of use.
+

LinkageValue ::= OCTET STRING (SIZE (9))

GroupLinkageValue

This is the group linkage value. See 5.1.3 and 7.3 for details of use.
+

GroupLinkageValue ::= SEQUENCE {

jValue OCTET STRING (SIZE (4)),

value OCTET STRING (SIZE (9))

}

GroupLinkageValue ::= SEQUENCE {}

LaId

This structure contains a LA Identifier for use in the algorithms specified in 5.1.3.4.
+

LaId ::= OCTET STRING (SIZE (2))

LinkageSeed

This structure contains a linkage seed value for use in the algorithms specified in 5.1.3.4.
+

LinkageSeed ::= OCTET STRING (SIZE (16))

END

Schema File ITS-Container.asn
Schema File ITS-Container.asn

ITS-Container {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2)}

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

ItsPduHeader ::= SEQUENCE {

protocolVersion INTEGER (0..255),

messageID INTEGER {

denm (1),

cam (2),

poi (3),

spatem (4),

mapem (5),

ivim (6),

ev-rsr (7),

tistpgtransaction (8),

srem (9),

ssem (10),

evcsn (11),

saem (12),

rtcmem (13)

} (0..255), -- Mantis #7209, #7005

messageID INTEGER {} (0..255), -- Mantis #7209, #7005

stationID StationID

}

ItsPduHeader ::= SEQUENCE {}

StationID ::= INTEGER (0..4294967295)

ReferencePosition ::= SEQUENCE {

latitude Latitude,

longitude Longitude,

positionConfidenceEllipse PosConfidenceEllipse,

altitude Altitude

}

ReferencePosition ::= SEQUENCE {}

DeltaReferencePosition ::= SEQUENCE {

deltaLatitude DeltaLatitude,

deltaLongitude DeltaLongitude,

deltaAltitude DeltaAltitude

}

DeltaReferencePosition ::= SEQUENCE {}

Longitude ::= INTEGER {

oneMicrodegreeEast (10),

oneMicrodegreeWest (-10),

unavailable (1800000001)

} (-1800000000..1800000001)

Longitude ::= INTEGER {} (-1800000000..1800000001)

Latitude ::= INTEGER {

oneMicrodegreeNorth (10),

oneMicrodegreeSouth (-10),

unavailable (900000001)

} (-900000000..900000001)

Latitude ::= INTEGER {} (-900000000..900000001)

Altitude ::= SEQUENCE {

altitudeValue AltitudeValue,

altitudeConfidence AltitudeConfidence

}

Altitude ::= SEQUENCE {}

AltitudeValue ::= INTEGER {

referenceEllipsoidSurface (0),

oneCentimeter (1),

unavailable (800001)

} (-100000..800001)

AltitudeValue ::= INTEGER {} (-100000..800001)

AltitudeConfidence ::= ENUMERATED {alt-000-01 (0), alt-000-02 (1), alt-000-05 (2), alt-000-10 (3),

alt-000-20 (4), alt-000-50 (5), alt-001-00 (6), alt-002-00 (7), alt-005-00 (8),

alt-010-00 (9), alt-020-00 (10), alt-050-00 (11), alt-100-00 (12), alt-200-00

(13), outOfRange (14), unavailable (15)}

AltitudeConfidence ::= ENUMERATED {}

DeltaLongitude ::= INTEGER {

oneMicrodegreeEast (10),

oneMicrodegreeWest (-10),

unavailable (131072)

} (-131071..131072)

DeltaLongitude ::= INTEGER {} (-131071..131072)

DeltaLatitude ::= INTEGER {

oneMicrodegreeNorth (10),

oneMicrodegreeSouth (-10),

unavailable (131072)

} (-131071..131072)

DeltaLatitude ::= INTEGER {} (-131071..131072)

DeltaAltitude ::= INTEGER {

oneCentimeterUp (1),

oneCentimeterDown (-1),

unavailable (12800)

} (-12700..12800)

DeltaAltitude ::= INTEGER {} (-12700..12800)

PosConfidenceEllipse ::= SEQUENCE {

semiMajorConfidence SemiAxisLength,

semiMinorConfidence SemiAxisLength,

semiMajorOrientation HeadingValue

}

PosConfidenceEllipse ::= SEQUENCE {}

PathPoint ::= SEQUENCE {

pathPosition DeltaReferencePosition,

pathDeltaTime PathDeltaTime OPTIONAL

}

PathPoint ::= SEQUENCE {}

PathDeltaTime ::= INTEGER {tenMilliSecondsInPast (1)} (1..65535, ...)

PtActivation ::= SEQUENCE {

ptActivationType PtActivationType,

ptActivationData PtActivationData

}

PtActivation ::= SEQUENCE {}

PtActivationType ::= INTEGER {

undefinedCodingType (0),

r09-16CodingType (1),

vdv-50149CodingType (2)

} (0..255)

PtActivationType ::= INTEGER {} (0..255)

PtActivationData ::= OCTET STRING (SIZE (1..20))

AccelerationControl ::= BIT STRING {

brakePedalEngaged (0),

gasPedalEngaged (1),

emergencyBrakeEngaged (2),

collisionWarningEngaged (3),

accEngaged (4),

cruiseControlEngaged (5),

speedLimiterEngaged (6)

} (SIZE (7))

AccelerationControl ::= BIT STRING {} (SIZE (7))

SemiAxisLength ::= INTEGER {

oneCentimeter (1),

outOfRange (4094),

unavailable (4095)

} (0..4095)

SemiAxisLength ::= INTEGER {} (0..4095)

CauseCode ::= SEQUENCE {

causeCode CauseCodeType,

subCauseCode SubCauseCodeType,

...

}

CauseCode ::= SEQUENCE {}

CauseCodeType ::= INTEGER {

reserved (0),

trafficCondition (1),

accident (2),

roadworks (3),

impassability (5),

adverseWeatherCondition-Adhesion (6),

aquaplannning (7),

hazardousLocation-SurfaceCondition (9),

hazardousLocation-ObstacleOnTheRoad (10),

hazardousLocation-AnimalOnTheRoad (11),

humanPresenceOnTheRoad (12),

wrongWayDriving (14),

rescueAndRecoveryWorkInProgress (15),

adverseWeatherCondition-ExtremeWeatherCondition (17),

adverseWeatherCondition-Visibility (18),

adverseWeatherCondition-Precipitation (19),

slowVehicle (26),

dangerousEndOfQueue (27),

vehicleBreakdown (91),

postCrash (92),

humanProblem (93),

stationaryVehicle (94),

emergencyVehicleApproaching (95),

hazardousLocation-DangerousCurve (96),

collisionRisk (97),

signalViolation (98),

dangerousSituation (99)

} (0..255)

CauseCodeType ::= INTEGER {} (0..255)

SubCauseCodeType ::= INTEGER (0..255)

TrafficConditionSubCauseCode ::= INTEGER {

unavailable (0),

increasedVolumeOfTraffic (1),

trafficJamSlowlyIncreasing (2),

trafficJamIncreasing (3),

trafficJamStronglyIncreasing (4),

trafficStationary (5),

trafficJamSlightlyDecreasing (6),

trafficJamDecreasing (7),

trafficJamStronglyDecreasing (8)

} (0..255)

TrafficConditionSubCauseCode ::= INTEGER {} (0..255)

AccidentSubCauseCode ::= INTEGER {

unavailable (0),

multiVehicleAccident (1),

heavyAccident (2),

accidentInvolvingLorry (3),

accidentInvolvingBus (4),

accidentInvolvingHazardousMaterials (5),

accidentOnOppositeLane (6),

unsecuredAccident (7),

assistanceRequested (8)

} (0..255)

AccidentSubCauseCode ::= INTEGER {} (0..255)

RoadworksSubCauseCode ::= INTEGER {

unavailable (0),

majorRoadworks (1),

roadMarkingWork (2),

slowMovingRoadMaintenance (3),

shortTermStationaryRoadworks (4),

streetCleaning (5),

winterService (6)

} (0..255)

RoadworksSubCauseCode ::= INTEGER {} (0..255)

HumanPresenceOnTheRoadSubCauseCode ::= INTEGER {

unavailable (0),

childrenOnRoadway (1),

cyclistOnRoadway (2),

motorcyclistOnRoadway (3)

} (0..255)

HumanPresenceOnTheRoadSubCauseCode ::= INTEGER {} (0..255)

WrongWayDrivingSubCauseCode ::= INTEGER {

unavailable (0),

wrongLane (1),

wrongDirection (2)

} (0..255)

WrongWayDrivingSubCauseCode ::= INTEGER {} (0..255)

AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode ::= INTEGER {

unavailable (0),

strongWinds (1),

damagingHail (2),

hurricane (3),

thunderstorm (4),

tornado (5),

blizzard (6)

} (0..255)

AdverseWeatherCondition-AdhesionSubCauseCode ::= INTEGER {

unavailable (0),

heavyFrostOnRoad (1),

fuelOnRoad (2),

mudOnRoad (3),

snowOnRoad (4),

iceOnRoad (5),

blackIceOnRoad (6),

oilOnRoad (7),

looseChippings (8),

instantBlackIce (9),

roadsSalted (10)

} (0..255)

AdverseWeatherCondition-AdhesionSubCauseCode ::= INTEGER {} (0..255)

AdverseWeatherCondition-VisibilitySubCauseCode ::= INTEGER {

unavailable (0),

fog (1),

smoke (2),

heavySnowfall (3),

heavyRain (4),

heavyHail (5),

lowSunGlare (6),

sandstorms (7),

swarmsOfInsects (8)

} (0..255)

AdverseWeatherCondition-PrecipitationSubCauseCode ::= INTEGER {

unavailable (0),

heavyRain (1),

heavySnowfall (2),

softHail (3)

} (0..255)

SlowVehicleSubCauseCode ::= INTEGER {

unavailable (0),

maintenanceVehicle (1),

vehiclesSlowingToLookAtAccident (2),

abnormalLoad (3),

abnormalWideLoad (4),

convoy (5),

snowplough (6),

deicing (7),

saltingVehicles (8)

} (0..255)

SlowVehicleSubCauseCode ::= INTEGER {} (0..255)

StationaryVehicleSubCauseCode ::= INTEGER {

unavailable (0),

humanProblem (1),

vehicleBreakdown (2),

postCrash (3),

publicTransportStop (4),

carryingDangerousGoods (5)

} (0..255)

StationaryVehicleSubCauseCode ::= INTEGER {} (0..255)

HumanProblemSubCauseCode ::= INTEGER {

unavailable (0),

glycemiaProblem (1),

heartProblem (2)

} (0..255)

HumanProblemSubCauseCode ::= INTEGER {} (0..255)

EmergencyVehicleApproachingSubCauseCode ::= INTEGER {

unavailable (0),

emergencyVehicleApproaching (1),

prioritizedVehicleApproaching (2)

} (0..255)

EmergencyVehicleApproachingSubCauseCode ::= INTEGER {} (0..255)

HazardousLocation-DangerousCurveSubCauseCode ::= INTEGER {

unavailable (0),

dangerousLeftTurnCurve (1),

dangerousRightTurnCurve (2),

multipleCurvesStartingWithUnknownTurningDirection (3),

multipleCurvesStartingWithLeftTurn (4),

multipleCurvesStartingWithRightTurn (5)

} (0..255)

HazardousLocation-DangerousCurveSubCauseCode ::= INTEGER {} (0..255)

HazardousLocation-SurfaceConditionSubCauseCode ::= INTEGER {

unavailable (0),

rockfalls (1),

earthquakeDamage (2),

sewerCollapse (3),

subsidence (4),

snowDrifts (5),

stormDamage (6),

burstPipe (7),

volcanoEruption (8),

fallingIce (9)

} (0..255)

HazardousLocation-ObstacleOnTheRoadSubCauseCode ::= INTEGER {

unavailable (0),

shedLoad (1),

partsOfVehicles (2),

partsOfTyres (3),

bigObjects (4),

fallenTrees (5),

hubCaps (6),

waitingVehicles (7)

} (0..255)

HazardousLocation-AnimalOnTheRoadSubCauseCode ::= INTEGER {

unavailable (0),

wildAnimals (1),

herdOfAnimals (2),

smallAnimals (3),

largeAnimals (4)

} (0..255)

HazardousLocation-AnimalOnTheRoadSubCauseCode ::= INTEGER {} (0..255)

CollisionRiskSubCauseCode ::= INTEGER {

unavailable (0),

longitudinalCollisionRisk (1),

crossingCollisionRisk (2),

lateralCollisionRisk (3),

vulnerableRoadUser (4)

} (0..255)

CollisionRiskSubCauseCode ::= INTEGER {} (0..255)

SignalViolationSubCauseCode ::= INTEGER {

unavailable (0),

stopSignViolation (1),

trafficLightViolation (2),

turningRegulationViolation (3)

} (0..255)

SignalViolationSubCauseCode ::= INTEGER {} (0..255)

RescueAndRecoveryWorkInProgressSubCauseCode ::= INTEGER {

unavailable (0),

emergencyVehicles (1),

rescueHelicopterLanding (2),

policeActivityOngoing (3),

medicalEmergencyOngoing (4),

childAbductionInProgress (5)

} (0..255)

RescueAndRecoveryWorkInProgressSubCauseCode ::= INTEGER {} (0..255)

DangerousEndOfQueueSubCauseCode ::= INTEGER {

unavailable (0),

suddenEndOfQueue (1),

queueOverHill (2),

queueAroundBend (3),

queueInTunnel (4)

} (0..255)

DangerousEndOfQueueSubCauseCode ::= INTEGER {} (0..255)

DangerousSituationSubCauseCode ::= INTEGER {

unavailable (0),

emergencyElectronicBrakeEngaged (1),

preCrashSystemEngaged (2),

espEngaged (3),

absEngaged (4),

aebEngaged (5),

brakeWarningEngaged (6),

collisionRiskWarningEngaged (7)

} (0..255)

DangerousSituationSubCauseCode ::= INTEGER {} (0..255)

VehicleBreakdownSubCauseCode ::= INTEGER {

unavailable (0),

lackOfFuel (1),

lackOfBatteryPower (2),

engineProblem (3),

transmissionProblem (4),

engineCoolingProblem (5),

brakingSystemProblem (6),

steeringProblem (7),

tyrePuncture (8),

tyrePressureProblem (9)

} (0..255)

VehicleBreakdownSubCauseCode ::= INTEGER {} (0..255)

PostCrashSubCauseCode ::= INTEGER {

unavailable (0),

accidentWithoutECallTriggered (1),

accidentWithECallManuallyTriggered (2),

accidentWithECallAutomaticallyTriggered (3),

accidentWithECallTriggeredWithoutAccessToCellularNetwork (4)

} (0..255)

PostCrashSubCauseCode ::= INTEGER {} (0..255)

Curvature ::= SEQUENCE {

curvatureValue CurvatureValue,

curvatureConfidence CurvatureConfidence

}

Curvature ::= SEQUENCE {}

CurvatureValue ::= INTEGER {

straight (0),