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),

unavailable (1023)

} (-1023..1023)

CurvatureValue ::= INTEGER {} (-1023..1023)

CurvatureConfidence ::= ENUMERATED {onePerMeter-0-00002 (0), onePerMeter-0-0001 (1), onePerMeter-0-0005

(2), onePerMeter-0-002 (3), onePerMeter-0-01 (4), onePerMeter-0-1 (5),

outOfRange (6), unavailable (7)}

CurvatureConfidence ::= ENUMERATED {}

CurvatureCalculationMode ::= ENUMERATED {yawRateUsed (0), yawRateNotUsed (1), unavailable (2), ...}

Heading ::= SEQUENCE {

headingValue HeadingValue,

headingConfidence HeadingConfidence

}

Heading ::= SEQUENCE {}

HeadingValue ::= INTEGER {

wgs84North (0),

wgs84East (900),

wgs84South (1800),

wgs84West (2700),

unavailable (3601)

} (0..3601)

HeadingValue ::= INTEGER {} (0..3601)

HeadingConfidence ::= INTEGER {

equalOrWithinZeroPointOneDegree (1),

equalOrWithinOneDegree (10),

outOfRange (126),

unavailable (127)

} (1..127)

HeadingConfidence ::= INTEGER {} (1..127)

LanePosition ::= INTEGER {

offTheRoad (-1),

hardShoulder (0),

outermostDrivingLane (1),

secondLaneFromOutside (2)

} (-1..14)

LanePosition ::= INTEGER {} (-1..14)

ClosedLanes ::= SEQUENCE {

innerhardShoulderStatus HardShoulderStatus OPTIONAL,

outerhardShoulderStatus HardShoulderStatus OPTIONAL,

drivingLaneStatus DrivingLaneStatus OPTIONAL,

...

}

ClosedLanes ::= SEQUENCE {}

HardShoulderStatus ::= ENUMERATED {availableForStopping (0), closed (1), availableForDriving (2)}

DrivingLaneStatus ::= BIT STRING (SIZE (1..13))

PerformanceClass ::= INTEGER {

unavailable (0),

performanceClassA (1),

performanceClassB (2)

} (0..7)

PerformanceClass ::= INTEGER {} (0..7)

SpeedValue ::= INTEGER {

standstill (0),

oneCentimeterPerSec (1),

unavailable (16383)

} (0..16383)

SpeedValue ::= INTEGER {} (0..16383)

SpeedConfidence ::= INTEGER {

equalOrWithinOneCentimeterPerSec (1),

equalOrWithinOneMeterPerSec (100),

outOfRange (126),

unavailable (127)

} (1..127)

SpeedConfidence ::= INTEGER {} (1..127)

VehicleMass ::= INTEGER {

hundredKg (1),

unavailable (1024)

} (1..1024)

VehicleMass ::= INTEGER {} (1..1024)

Speed ::= SEQUENCE {

speedValue SpeedValue,

speedConfidence SpeedConfidence

}

Speed ::= SEQUENCE {}

DriveDirection ::= ENUMERATED {forward (0), backward (1), unavailable (2)}

EmbarkationStatus ::= BOOLEAN

LongitudinalAcceleration ::= SEQUENCE {

longitudinalAccelerationValue LongitudinalAccelerationValue,

longitudinalAccelerationConfidence AccelerationConfidence

}

LongitudinalAcceleration ::= SEQUENCE {}

LongitudinalAccelerationValue ::= INTEGER {

pointOneMeterPerSecSquaredForward (1),

pointOneMeterPerSecSquaredBackward (-1),

unavailable (161)

} (-160..161)

LongitudinalAccelerationValue ::= INTEGER {} (-160..161)

AccelerationConfidence ::= INTEGER {

pointOneMeterPerSecSquared (1),

outOfRange (101),

unavailable (102)

} (0..102)

AccelerationConfidence ::= INTEGER {} (0..102)

LateralAcceleration ::= SEQUENCE {

lateralAccelerationValue LateralAccelerationValue,

lateralAccelerationConfidence AccelerationConfidence

}

LateralAcceleration ::= SEQUENCE {}

LateralAccelerationValue ::= INTEGER {

pointOneMeterPerSecSquaredToRight (-1),

pointOneMeterPerSecSquaredToLeft (1),

unavailable (161)

} (-160..161)

LateralAccelerationValue ::= INTEGER {} (-160..161)

VerticalAcceleration ::= SEQUENCE {

verticalAccelerationValue VerticalAccelerationValue,

verticalAccelerationConfidence AccelerationConfidence

}

VerticalAcceleration ::= SEQUENCE {}

VerticalAccelerationValue ::= INTEGER {

pointOneMeterPerSecSquaredUp (1),

pointOneMeterPerSecSquaredDown (-1),

unavailable (161)

} (-160..161)

VerticalAccelerationValue ::= INTEGER {} (-160..161)

StationType ::= INTEGER {

unknown (0),

pedestrian (1),

cyclist (2),

moped (3),

motorcycle (4),

passengerCar (5),

bus (6),

lightTruck (7),

heavyTruck (8),

trailer (9),

specialVehicles (10),

tram (11),

roadSideUnit (15)

} (0..255)

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

ExteriorLights ::= BIT STRING {

lowBeamHeadlightsOn (0),

highBeamHeadlightsOn (1),

leftTurnSignalOn (2),

rightTurnSignalOn (3),

daytimeRunningLightsOn (4),

reverseLightOn (5),

fogLightOn (6),

parkingLightsOn (7)

} (SIZE (8))

ExteriorLights ::= BIT STRING {} (SIZE (8))

DangerousGoodsBasic ::= ENUMERATED {explosives1 (0), explosives2 (1), explosives3 (2), explosives4 (3),

explosives5 (4), explosives6 (5), flammableGases (6), nonFlammableGases (7),

toxicGases (8), flammableLiquids (9), flammableSolids (10),

substancesLiableToSpontaneousCombustion (11),

substancesEmittingFlammableGasesUponContactWithWater (12), oxidizingSubstances

(13), organicPeroxides (14), toxicSubstances (15), infectiousSubstances

(16), radioactiveMaterial (17), corrosiveSubstances (18),

miscellaneousDangerousSubstances (19)}

DangerousGoodsBasic ::= ENUMERATED {}

DangerousGoodsExtended ::= SEQUENCE {

dangerousGoodsType DangerousGoodsBasic,

unNumber INTEGER (0..9999),

elevatedTemperature BOOLEAN,

tunnelsRestricted BOOLEAN,

limitedQuantity BOOLEAN,

emergencyActionCode IA5String (SIZE (1..24)) OPTIONAL,

phoneNumber PhoneNumber OPTIONAL,

companyName UTF8String (SIZE (1..24)) OPTIONAL,

...

}

DangerousGoodsExtended ::= SEQUENCE {}

SpecialTransportType ::= BIT STRING {

heavyLoad (0),

excessWidth (1),

excessLength (2),

excessHeight (3)

} (SIZE (4))

SpecialTransportType ::= BIT STRING {} (SIZE (4))

LightBarSirenInUse ::= BIT STRING {

lightBarActivated (0),

sirenActivated (1)

} (SIZE (2))

LightBarSirenInUse ::= BIT STRING {} (SIZE (2))

HeightLonCarr ::= INTEGER {

oneCentimeter (1),

unavailable (100)

} (1..100)

HeightLonCarr ::= INTEGER {} (1..100)

PosLonCarr ::= INTEGER {

oneCentimeter (1),

unavailable (127)

} (1..127)

PosLonCarr ::= INTEGER {} (1..127)

PosPillar ::= INTEGER {

tenCentimeters (1),

unavailable (30)

} (1..30)

PosPillar ::= INTEGER {} (1..30)

PosCentMass ::= INTEGER {

tenCentimeters (1),

unavailable (63)

} (1..63)

PosCentMass ::= INTEGER {} (1..63)

RequestResponseIndication ::= ENUMERATED {request (0), response (1)}

SpeedLimit ::= INTEGER {oneKmPerHour (1)} (1..255)

StationarySince ::= ENUMERATED {lessThan1Minute (0), lessThan2Minutes (1), lessThan15Minutes (2),

equalOrGreater15Minutes (3)}

StationarySince ::= ENUMERATED {}

Temperature ::= INTEGER {

equalOrSmallerThanMinus60Deg (-60),

oneDegreeCelsius (1),

equalOrGreaterThan67Deg (67)

} (-60..67)

Temperature ::= INTEGER {} (-60..67)

TrafficRule ::= ENUMERATED {noPassing (0), noPassingForTrucks (1), passToRight (2), passToLeft

(3), ...}

TrafficRule ::= ENUMERATED {}

WheelBaseVehicle ::= INTEGER {

tenCentimeters (1),

unavailable (127)

} (1..127)

WheelBaseVehicle ::= INTEGER {} (1..127)

TurningRadius ::= INTEGER {

point4Meters (1),

unavailable (255)

} (1..255)

TurningRadius ::= INTEGER {} (1..255)

PosFrontAx ::= INTEGER {

tenCentimeters (1),

unavailable (20)

} (1..20)

PosFrontAx ::= INTEGER {} (1..20)

PositionOfOccupants ::= BIT STRING {

row1LeftOccupied (0),

row1RightOccupied (1),

row1MidOccupied (2),

row1NotDetectable (3),

row1NotPresent (4),

row2LeftOccupied (5),

row2RightOccupied (6),

row2MidOccupied (7),

row2NotDetectable (8),

row2NotPresent (9),

row3LeftOccupied (10),

row3RightOccupied (11),

row3MidOccupied (12),

row3NotDetectable (13),

row3NotPresent (14),

row4LeftOccupied (15),

row4RightOccupied (16),

row4MidOccupied (17),

row4NotDetectable (18),

row4NotPresent (19)

} (SIZE (20))

PositionOfOccupants ::= BIT STRING {} (SIZE (20))

PositioningSolutionType ::= ENUMERATED {noPositioningSolution (0), sGNSS (1), dGNSS (2), sGNSSplusDR (3),

dGNSSplusDR (4), dR (5), ...}

PositioningSolutionType ::= ENUMERATED {}

VehicleIdentification ::= SEQUENCE {

wMInumber WMInumber OPTIONAL,

vDS VDS OPTIONAL,

...

}

VehicleIdentification ::= SEQUENCE {}

WMInumber ::= IA5String (SIZE (1..3))

VDS ::= IA5String (SIZE (6))

EnergyStorageType ::= BIT STRING {

hydrogenStorage (0),

electricEnergyStorage (1),

liquidPropaneGas (2),

compressedNaturalGas (3),

diesel (4),

gasoline (5),

ammonia (6)

} (SIZE (7))

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

VehicleLength ::= SEQUENCE {

vehicleLengthValue VehicleLengthValue,

vehicleLengthConfidenceIndication VehicleLengthConfidenceIndication

}

VehicleLength ::= SEQUENCE {}

VehicleLengthValue ::= INTEGER {

tenCentimeters (1),

outOfRange (1022),

unavailable (1023)

} (1..1023)

VehicleLengthValue ::= INTEGER {} (1..1023)

VehicleLengthConfidenceIndication ::= ENUMERATED {noTrailerPresent (0), trailerPresentWithKnownLength (1),

trailerPresentWithUnknownLength (2), trailerPresenceIsUnknown (3), unavailable

(4)}

VehicleLengthConfidenceIndication ::= ENUMERATED {}

VehicleWidth ::= INTEGER {

tenCentimeters (1),

outOfRange (61),

unavailable (62)

} (1..62)

VehicleWidth ::= INTEGER {} (1..62)

PathHistory ::= SEQUENCE (SIZE (0..40)) OF PathPoint

EmergencyPriority ::= BIT STRING {

requestForRightOfWay (0),

requestForFreeCrossingAtATrafficLight (1)

} (SIZE (2))

EmergencyPriority ::= BIT STRING {} (SIZE (2))

InformationQuality ::= INTEGER {

unavailable (0),

lowest (1),

highest (7)

} (0..7)

InformationQuality ::= INTEGER {} (0..7)

RoadType ::= ENUMERATED {urban-NoStructuralSeparationToOppositeLanes (0),

urban-WithStructuralSeparationToOppositeLanes (1),

nonUrban-NoStructuralSeparationToOppositeLanes (2),

nonUrban-WithStructuralSeparationToOppositeLanes (3)}

RoadType ::= ENUMERATED {}

SteeringWheelAngle ::= SEQUENCE {

steeringWheelAngleValue SteeringWheelAngleValue,

steeringWheelAngleConfidence SteeringWheelAngleConfidence

}

SteeringWheelAngle ::= SEQUENCE {}

SteeringWheelAngleValue ::= INTEGER {

straight (0),

onePointFiveDegreesToRight (-1),

onePointFiveDegreesToLeft (1),

unavailable (512)

} (-511..512)

SteeringWheelAngleValue ::= INTEGER {} (-511..512)

SteeringWheelAngleConfidence ::= INTEGER {

equalOrWithinOnePointFiveDegree (1),

outOfRange (126),

unavailable (127)

} (1..127)

SteeringWheelAngleConfidence ::= INTEGER {} (1..127)

TimestampIts ::= INTEGER {

utcStartOf2004 (0),

oneMillisecAfterUTCStartOf2004 (1)

} (0..4398046511103)

TimestampIts ::= INTEGER {} (0..4398046511103)

VehicleRole ::= ENUMERATED {default (0), publicTransport (1), specialTransport (2),

dangerousGoods (3), roadWork (4), rescue (5), emergency (6), safetyCar (7),

agriculture (8), commercial (9), military (10), roadOperator (11), taxi (12),

reserved1 (13), reserved2 (14), reserved3 (15)}

VehicleRole ::= ENUMERATED {}

YawRate ::= SEQUENCE {

yawRateValue YawRateValue,

yawRateConfidence YawRateConfidence

}

YawRate ::= SEQUENCE {}

YawRateValue ::= INTEGER {

straight (0),

degSec-000-01ToRight (-1),

degSec-000-01ToLeft (1),

unavailable (32767)

} (-32766..32767)

YawRateValue ::= INTEGER {} (-32766..32767)

YawRateConfidence ::= ENUMERATED {degSec-000-01 (0), degSec-000-05 (1), degSec-000-10 (2),

degSec-001-00 (3), degSec-005-00 (4), degSec-010-00 (5), degSec-100-00 (6),

outOfRange (7), unavailable (8)}

YawRateConfidence ::= ENUMERATED {}

ProtectedZoneType ::= ENUMERATED {permanentCenDsrcTolling (0), ..., temporaryCenDsrcTolling (1)}

RelevanceDistance ::= ENUMERATED {lessThan50m (0), lessThan100m (1), lessThan200m (2), lessThan500m

(3), lessThan1000m (4), lessThan5km (5), lessThan10km (6), over10km (7)}

RelevanceDistance ::= ENUMERATED {}

RelevanceTrafficDirection ::= ENUMERATED {allTrafficDirections (0), upstreamTraffic (1), downstreamTraffic

(2), oppositeTraffic (3)}

RelevanceTrafficDirection ::= ENUMERATED {}

TransmissionInterval ::= INTEGER {

oneMilliSecond (1),

tenSeconds (10000)

} (1..10000)

TransmissionInterval ::= INTEGER {} (1..10000)

ValidityDuration ::= INTEGER {

timeOfDetection (0),

oneSecondAfterDetection (1)

} (0..86400)

ValidityDuration ::= INTEGER {} (0..86400)

ActionID ::= SEQUENCE {

originatingStationID StationID,

sequenceNumber SequenceNumber

}

ActionID ::= SEQUENCE {}

ItineraryPath ::= SEQUENCE SIZE (1..40) OF ReferencePosition

ProtectedCommunicationZone ::= SEQUENCE {

protectedZoneType ProtectedZoneType,

expiryTime TimestampIts OPTIONAL,

protectedZoneLatitude Latitude,

protectedZoneLongitude Longitude,

protectedZoneRadius ProtectedZoneRadius OPTIONAL,

protectedZoneID ProtectedZoneID OPTIONAL,

...

}

ProtectedCommunicationZone ::= SEQUENCE {}

Traces ::= SEQUENCE SIZE (1..7) OF PathHistory

NumberOfOccupants ::= INTEGER {

oneOccupant (1),

unavailable (127)

} (0..127)

NumberOfOccupants ::= INTEGER {} (0..127)

SequenceNumber ::= INTEGER (0..65535)

PositionOfPillars ::= SEQUENCE (SIZE (1..3, ...)) OF PosPillar

RestrictedTypes ::= SEQUENCE (SIZE (1..3, ...)) OF StationType

EventHistory ::= SEQUENCE (SIZE (1..23)) OF EventPoint

EventPoint ::= SEQUENCE {

eventPosition DeltaReferencePosition,

eventDeltaTime PathDeltaTime OPTIONAL,

informationQuality InformationQuality

}

EventPoint ::= SEQUENCE {}

ProtectedCommunicationZonesRSU ::= SEQUENCE (SIZE (1..16)) OF ProtectedCommunicationZone

CenDsrcTollingZone ::= SEQUENCE {

protectedZoneLatitude Latitude,

protectedZoneLongitude Longitude,

cenDsrcTollingZoneID CenDsrcTollingZoneID OPTIONAL,

...

}

CenDsrcTollingZone ::= SEQUENCE {}

ProtectedZoneRadius ::= INTEGER {oneMeter (1)} (1..255, ...)

ProtectedZoneID ::= INTEGER (0..134217727)

CenDsrcTollingZoneID ::= ProtectedZoneID

DigitalMap ::= SEQUENCE (SIZE (1..256)) OF ReferencePosition

OpeningDaysHours ::= UTF8String

PhoneNumber ::= NumericString (SIZE (1..16))

END

ITS-ContainerEND

+ + -- GitLab From 8bbfbaf721a0353fe9fca79035ee53c77606417e Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 8 Dec 2021 14:15:59 +0100 Subject: [PATCH 03/66] sync with v2.1.1 of ieee1609.2; doc generation --- .gitlab-ci.mk | 24 ++++++++++++++++++++++++ .gitlab-ci.yml | 29 +++++++++++++++++++++++++++++ ieee1609dot2 | 2 +- 3 files changed, 54 insertions(+), 1 deletion(-) create mode 100755 .gitlab-ci.mk create mode 100755 .gitlab-ci.yml diff --git a/.gitlab-ci.mk b/.gitlab-ci.mk new file mode 100755 index 0000000..5c67479 --- /dev/null +++ b/.gitlab-ci.mk @@ -0,0 +1,24 @@ +ASN1_SRC := $(wildcard *.asn) + +ASN1_PDU := Ieee1609Dot2Data Certificate +#ASN1_KNOWN := DATE + +#ASN1CDIR ?= $(USERPROFILE)/Work/asn1c-fillabs +ifneq (,$(ASN1CDIR)) + ASN1C := $(ASN1CDIR)/asn1c/.libs/asn1c -S $(ASN1CDIR)/skeletons +else + ASN1C := asn1c +endif + +.PHONY: validate doc build + +validate: build + +doc: docs + python3 asn2md.py -o docs $(ASN1_SRC) + +docs: + mkdir -p $@ + +build: $(ASN1_SRC) $(ASN1_SRC_VALIDATE) + $(ASN1C) -E -F -fcompound-names $(addprefix -fknown-extern-type=,$(ASN1_KNOWN)) $(addprefix -pdu=,$(ASN1_PDU)) $^ >/dev/null diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100755 index 0000000..ec07377 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,29 @@ +variables: + GIT_SUBMODULE_STRATEGY: normal + +image: danya25/asn1c:0.0.5 + +validate: + stage: test + script: make -f .gitlab-ci.mk validate + only: + changes: + - "asn/*.asn" + +documentation: + stage: deploy + script: + - curl --header "PRIVATE-TOKEN:$CI_DOC_TOKEN" https://forge.etsi.org/rep/api/v4/projects/592/repository/files/asn2md.py?ref=master | python3 -c "import sys, json, base64; open('asn2md.py', 'wb').write(base64.b64decode(json.load(sys.stdin)['content']))" + - make -f .gitlab-ci.mk doc + - > + if [ -z "$(git status --untracked-files=no --porcelain)" ]; then + echo "No changes found"; + else + git add docs/*.md && + git commit -m "Documentation update" && + git remote rm origin && git remote add origin https://oauth2:$CI_DOC_TOKEN@forge.etsi.org/rep/$CI_PROJECT_PATH.git && + git push origin HEAD:$CI_COMMIT_REF_NAME; + fi + only: + changes: + - "asn/*.asn" diff --git a/ieee1609dot2 b/ieee1609dot2 index 0190d9f..ddf554e 160000 --- a/ieee1609dot2 +++ b/ieee1609dot2 @@ -1 +1 @@ -Subproject commit 0190d9fdb903da0a6cd1e3d529a35c827152a93a +Subproject commit ddf554e5e23398d578b9519f0e19682e3f058cfe -- GitLab From b4379b3e3c7501d4f07a5c58a3fd29bdba54cc6b Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 8 Dec 2021 14:18:14 +0100 Subject: [PATCH 04/66] doc generation --- .gitlab-ci.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.mk b/.gitlab-ci.mk index 5c67479..79ccd57 100755 --- a/.gitlab-ci.mk +++ b/.gitlab-ci.mk @@ -1,6 +1,6 @@ ASN1_SRC := $(wildcard *.asn) -ASN1_PDU := Ieee1609Dot2Data Certificate +ASN1_PDU := Mbr #ASN1_KNOWN := DATE #ASN1CDIR ?= $(USERPROFILE)/Work/asn1c-fillabs -- GitLab From 62ed91bfe95b2a9fc6557d6bbb96f9dd8ca13cc9 Mon Sep 17 00:00:00 2001 From: Virendra Kumar Date: Fri, 17 Dec 2021 08:33:27 -0500 Subject: [PATCH 05/66] Updated to the latest 1609dot2 based on Denis' commits --- ieee1609dot2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ieee1609dot2 b/ieee1609dot2 index ddf554e..0190d9f 160000 --- a/ieee1609dot2 +++ b/ieee1609dot2 @@ -1 +1 @@ -Subproject commit ddf554e5e23398d578b9519f0e19682e3f058cfe +Subproject commit 0190d9fdb903da0a6cd1e3d529a35c827152a93a -- GitLab From 59a118f3d0a8d16d915fe79232464af6e2d4a090 Mon Sep 17 00:00:00 2001 From: Virendra Kumar Date: Fri, 17 Dec 2021 08:44:34 -0500 Subject: [PATCH 06/66] Added a new submodule so that we can sign and encrypt the MBR --- .gitmodules | 3 +++ sec_ts103097 | 1 + 2 files changed, 4 insertions(+) create mode 160000 sec_ts103097 diff --git a/.gitmodules b/.gitmodules index 0981518..c65df36 100755 --- a/.gitmodules +++ b/.gitmodules @@ -5,3 +5,6 @@ [submodule "cdd"] path = cdd url = https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2.git +[submodule "sec_ts103097"] + path = sec_ts103097 + url = https://forge.etsi.org/rep/ITS/asn1/sec_ts103097.git diff --git a/sec_ts103097 b/sec_ts103097 new file mode 160000 index 0000000..5bb49cd --- /dev/null +++ b/sec_ts103097 @@ -0,0 +1 @@ +Subproject commit 5bb49cd927cde78bf88a2b0dac6b39ca9805a221 -- GitLab From 5efa8fb9b93e3b8cc0213cb7f32ed9d2f0aed432 Mon Sep 17 00:00:00 2001 From: Virendra Kumar Date: Fri, 17 Dec 2021 09:05:27 -0500 Subject: [PATCH 07/66] Updated the ieee1609dot2 submodule to v2.1.1 and added WITH SUCCESSORS to all the import statements --- EtsiTs103759.asn | 10 ++++++++-- EtsiTs103759AsrBsm.asn | 5 ++++- EtsiTs103759AsrCam.asn | 5 ++++- EtsiTs103759CommonObservations.asn | 4 +++- ieee1609dot2 | 2 +- 5 files changed, 20 insertions(+), 6 deletions(-) diff --git a/EtsiTs103759.asn b/EtsiTs103759.asn index a41873b..b0ecf3a 100755 --- a/EtsiTs103759.asn +++ b/EtsiTs103759.asn @@ -10,7 +10,8 @@ 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)} + dot2(2) base (1) schema (1) major-version-2(2) minor-version-4(4)} +WITH SUCCESSORS Opaque, Psid, @@ -19,27 +20,32 @@ FROM Ieee1609Dot2 {iso(1) identified-organization(3) ieee(111) 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)} + base(1) base-types(2) major-version-2(2) minor-version-3(3)} +WITH SUCCESSORS 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)} +WITH SUCCESSORS 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)} +WITH SUCCESSORS 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)} +WITH SUCCESSORS 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)} +WITH SUCCESSORS ; /** diff --git a/EtsiTs103759AsrBsm.asn b/EtsiTs103759AsrBsm.asn index 0f5199e..34eda8a 100644 --- a/EtsiTs103759AsrBsm.asn +++ b/EtsiTs103759AsrBsm.asn @@ -15,6 +15,7 @@ IMPORTS 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)} +WITH SUCCESSORS IdMbObs, obs-LongAcc-Implausible-Brake, @@ -28,12 +29,14 @@ FROM EtsiTs103759 {itu-t(0) identified-organization(4) etsi(0) 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)} +WITH SUCCESSORS 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)} + base(1) base-types(2) major-version-2(2) minor-version-3(3)} +WITH SUCCESSORS ; /* Identify target classes for BSM */ diff --git a/EtsiTs103759AsrCam.asn b/EtsiTs103759AsrCam.asn index 7abd1f8..2ec759f 100755 --- a/EtsiTs103759AsrCam.asn +++ b/EtsiTs103759AsrCam.asn @@ -15,6 +15,7 @@ IMPORTS 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)} +WITH SUCCESSORS IdMbObs, SetMbObsCompleteBeacon, @@ -26,12 +27,14 @@ FROM EtsiTs103759 {itu-t(0) identified-organization(4) etsi(0) 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)} +WITH SUCCESSORS 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)} + base(1) base-types(2) major-version-2(2) minor-version-3(3)} +WITH SUCCESSORS ; /** diff --git a/EtsiTs103759CommonObservations.asn b/EtsiTs103759CommonObservations.asn index dca105c..5db516a 100644 --- a/EtsiTs103759CommonObservations.asn +++ b/EtsiTs103759CommonObservations.asn @@ -11,13 +11,15 @@ IMPORTS 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)} +WITH SUCCESSORS 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)} + base(1) base-types(2) major-version-2(2) minor-version-3(3)} +WITH SUCCESSORS ; /** diff --git a/ieee1609dot2 b/ieee1609dot2 index 0190d9f..ddf554e 160000 --- a/ieee1609dot2 +++ b/ieee1609dot2 @@ -1 +1 @@ -Subproject commit 0190d9fdb903da0a6cd1e3d529a35c827152a93a +Subproject commit ddf554e5e23398d578b9519f0e19682e3f058cfe -- GitLab From 4f707fc51af865864ee17d40a4f5d370631a98c9 Mon Sep 17 00:00:00 2001 From: Virendra Kumar Date: Fri, 17 Dec 2021 09:52:42 -0500 Subject: [PATCH 08/66] Added EtsiTs103759Data-SignedAndEncrypted-Unicast for signed and encrypted MBRs --- EtsiTs103759.asn | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/EtsiTs103759.asn b/EtsiTs103759.asn index b0ecf3a..0a787de 100755 --- a/EtsiTs103759.asn +++ b/EtsiTs103759.asn @@ -7,6 +7,12 @@ DEFINITIONS AUTOMATIC TAGS ::= BEGIN EXPORTS ALL; IMPORTS + EtsiTs103097Data-SignedAndEncrypted-Unicast +FROM EtsiTs103097Module {itu-t(0) identified-organization(4) etsi(0) + itsDomain(5) wg5(5) secHeaders(103097) core(1) major-version-3(3) + minor-version-1(1)} +WITH SUCCESSORS + Certificate FROM Ieee1609Dot2 {iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) @@ -49,7 +55,7 @@ WITH SUCCESSORS ; /** - * @class Mbr + * @class EtsiTs103759Data * * @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. @@ -64,13 +70,27 @@ WITH SUCCESSORS * * @param report contains the AID-specific misbehaviour report. */ - Mbr ::= SEQUENCE { + EtsiTs103759Data ::= SEQUENCE { version Uint8, generationTime Time64, observationLocation ThreeDLocation, report AidSpecificReport } +/** + * @class EtsiTs103759Data-SignedAndEncrypted-Unicast + * + * @brief This structure is the SPDU used to send a signed and encrypted + * EtsiTs103759Data to the MA. For the signature to be valid the signing + * certificate shall conform to the authorization ticket profile given in + * clause 7.2.1 of ETSI TS 103 097 v2.1.1, where the appPermissions field in + * the authorization ticket allows signing misbehaviour reports. The signed + * EtsiTs103759Data shall be encrypted to the MA using the encryptionKey in + * the MA's certificate. + */ + EtsiTs103759Data-SignedAndEncrypted-Unicast ::= + EtsiTs103097Data-SignedAndEncrypted-Unicast {EtsiTs103759Data} + /** * @class AidSpecificReport * -- GitLab From 1c4648800b5ea1fa00539bb4925b5735b5186552 Mon Sep 17 00:00:00 2001 From: Virendra Kumar Date: Fri, 14 Jan 2022 11:48:36 -0500 Subject: [PATCH 09/66] Formatting (spacing, indentation, etc.) made consistent throughout the modules --- EtsiTs103759.asn | 158 ++++++++------- EtsiTs103759AsrAppAgnostic.asn | 2 +- EtsiTs103759AsrBsm.asn | 65 +++--- EtsiTs103759AsrCam.asn | 46 +++-- EtsiTs103759AsrDenm.asn | 2 +- EtsiTs103759CommonObservations.asn | 310 ++++++++++++++--------------- 6 files changed, 295 insertions(+), 288 deletions(-) diff --git a/EtsiTs103759.asn b/EtsiTs103759.asn index 0a787de..ead503d 100755 --- a/EtsiTs103759.asn +++ b/EtsiTs103759.asn @@ -70,12 +70,12 @@ WITH SUCCESSORS * * @param report contains the AID-specific misbehaviour report. */ - EtsiTs103759Data ::= SEQUENCE { - version Uint8, - generationTime Time64, - observationLocation ThreeDLocation, - report AidSpecificReport - } +EtsiTs103759Data ::= SEQUENCE { + version Uint8, + generationTime Time64, + observationLocation ThreeDLocation, + report AidSpecificReport +} /** * @class EtsiTs103759Data-SignedAndEncrypted-Unicast @@ -88,8 +88,10 @@ WITH SUCCESSORS * EtsiTs103759Data shall be encrypted to the MA using the encryptionKey in * the MA's certificate. */ - EtsiTs103759Data-SignedAndEncrypted-Unicast ::= - EtsiTs103097Data-SignedAndEncrypted-Unicast {EtsiTs103759Data} +EtsiTs103759Data-SignedAndEncrypted-Unicast ::= + EtsiTs103097Data-SignedAndEncrypted-Unicast { + EtsiTs103759Data +} /** * @class AidSpecificReport @@ -103,10 +105,10 @@ WITH SUCCESSORS * @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}) - } +AidSpecificReport ::= SEQUENCE { + aid C-ASR.&aid ({SetAsr}), + content C-ASR.&Content ({SetAsr}{@.aid}) +} /** * @class C-ASR @@ -120,10 +122,10 @@ WITH SUCCESSORS * will be a TemplateAsr instantiated with AID-specific Information Object * Sets. */ - C-ASR ::= CLASS { - &aid Psid UNIQUE, - &Content - } WITH SYNTAX {&Content IDENTIFIED BY &aid} +C-ASR ::= CLASS { + &aid Psid UNIQUE, + &Content +} WITH SYNTAX {&Content IDENTIFIED BY &aid} /** * @class SetAsr @@ -132,13 +134,13 @@ WITH SUCCESSORS * 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 ::= { + {AsrAppAgnostic IDENTIFIED BY c-AsrAppAgnostic} | + {AsrBsm IDENTIFIED BY c-AsrBsm} | + {AsrCam IDENTIFIED BY c-AsrCam} | + {AsrDenm IDENTIFIED BY c-AsrDenm}, + ... +} /** * @class c-AsrAppAgnostic @@ -148,28 +150,28 @@ WITH SUCCESSORS * @note This value is used for suspicious observations that are not * or cannot be linked to a specific application. */ - c-AsrAppAgnostic Psid ::= 270549119 +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 +c-AsrBsm Psid ::= 32 /** * @class c-AsrCam * * @brief This data type contains the ITS-AID of the CA service. */ - c-AsrCam Psid ::= 36 +c-AsrCam Psid ::= 36 /** * @class c-AsrDenm * * @brief This data type contains the ITS-AID of the DEN service. */ - c-AsrDenm Psid ::= 37 +c-AsrDenm Psid ::= 37 /** * @class TemplateAsr @@ -192,14 +194,15 @@ WITH SUCCESSORS * 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 { + 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 @@ -213,10 +216,11 @@ WITH SUCCESSORS * @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}) - } +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 @@ -224,7 +228,7 @@ WITH SUCCESSORS * @brief This is the Information Object Class used to define observations- * -by-target. */ - C-ASR-OBS-BY-TGT ::= C-2ENT +C-ASR-OBS-BY-TGT ::= C-2ENT /** * @class MbSingleObservation @@ -240,10 +244,10 @@ WITH SUCCESSORS * @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}) - } +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 @@ -251,7 +255,7 @@ WITH SUCCESSORS * @brief This is the Information Object Class used to define single * observations. */ - C-ASR-SINGLE-OBS ::= C-2ENT +C-ASR-SINGLE-OBS ::= C-2ENT /** * @class V2xPduStream @@ -283,14 +287,14 @@ WITH SUCCESSORS * @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, - ... - } +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 @@ -298,30 +302,30 @@ WITH SUCCESSORS * @brief This is the Information Object Class used to define different types * of observed PDUs. */ - C-OBS-PDU ::= C-2ENT +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}, - ... - } +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 +IdObsPdu ::= Uint8 - c-ObsPdu-etsiGn IdObsPdu ::= 1 - c-ObsPdu-ieee1609Dot2Data IdObsPdu ::= 2 - c-ObsPdu-wsmp IdObsPdu ::= 3 +c-ObsPdu-etsiGn IdObsPdu ::= 1 +c-ObsPdu-ieee1609Dot2Data IdObsPdu ::= 2 +c-ObsPdu-wsmp IdObsPdu ::= 3 /** * @class ObsPduEtsiGn @@ -330,7 +334,7 @@ WITH SUCCESSORS * byte of every PDU in the v2xPdus array is the first byte of the * geonetworking Basic Header. */ - ObsPduEtsiGn ::= Opaque +ObsPduEtsiGn ::= Opaque /** * @class ObsPduIeee1609Dot2Data @@ -339,7 +343,7 @@ WITH SUCCESSORS * byte of every PDU in the v2xPdus array is the version byte of the * Ieee1609Dot2Data. */ - ObsPduIeee1609Dot2Data ::= Opaque +ObsPduIeee1609Dot2Data ::= Opaque /** * @class ObsPduWsmp @@ -348,7 +352,7 @@ WITH SUCCESSORS * first byte of every PDU in the v2xPdus array is the first byte of the WSMP * N-Header. */ - ObsPduWsmp ::= Opaque +ObsPduWsmp ::= Opaque /** * @class NonV2xPduEvidenceItem @@ -360,10 +364,10 @@ WITH SUCCESSORS * * @param 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 { + id C-ASR-EV.&id ({SetMbEv}), + evidence C-ASR-EV.&Val ({SetMbEv}{@.id}) +} /** * @class C-ASR-EV @@ -372,7 +376,7 @@ WITH SUCCESSORS * * @note No instances of this class are defined in this version of this document. */ - C-ASR-EV ::= C-2ENT +C-ASR-EV ::= C-2ENT /** * @class C-2ENT @@ -381,9 +385,9 @@ WITH SUCCESSORS * 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} +C-2ENT ::= CLASS { + &id Uint8, + &Val +} WITH SYNTAX {&Val BY &id} -END +END \ No newline at end of file diff --git a/EtsiTs103759AsrAppAgnostic.asn b/EtsiTs103759AsrAppAgnostic.asn index 0cfeae8..5887bd2 100755 --- a/EtsiTs103759AsrAppAgnostic.asn +++ b/EtsiTs103759AsrAppAgnostic.asn @@ -11,6 +11,6 @@ EXPORTS ALL; * * @brief This data type is defined as NULL for this version of the standard. */ - AsrAppAgnostic ::= NULL +AsrAppAgnostic ::= NULL END \ No newline at end of file diff --git a/EtsiTs103759AsrBsm.asn b/EtsiTs103759AsrBsm.asn index 34eda8a..215b8e0 100644 --- a/EtsiTs103759AsrBsm.asn +++ b/EtsiTs103759AsrBsm.asn @@ -40,14 +40,14 @@ WITH SUCCESSORS ; /* Identify target classes for BSM */ - IdBsmTgt ::= Uint8 +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 +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 /* @@ -60,33 +60,33 @@ WITH SUCCESSORS * @brief This data type is for reporting BSM issues defined by the SCMS * Manager. */ - AsrBsm ::= TemplateAsr {{SetMbObsTgtsBsm}, {SetMbEvBsm}} +AsrBsm ::= TemplateAsr {{SetMbObsTgtsBsm}, {SetMbEvBsm}} /** * @class SetMbObsPosition-Bsm */ - SetMbObsPosition-Bsm C-ASR-SINGLE-OBS ::= { - obs-Pos-IncWithPrev-TooSmall | - obs-Pos-IncWithPrev-TooFar, - ... - } +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, - ... - } +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, - ... - } +SetMbObsLongAcc-Bsm C-ASR-SINGLE-OBS ::= { + obs-LongAcc-ValueTooLarge-ThresholdNoContext | + obs-LongAcc-Implausible-Brake, + ... +} /** * @class SetMbObsTgtsBsm @@ -95,20 +95,23 @@ WITH SUCCESSORS * 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}, - ... - } +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 ::= { - ... - } +SetMbEvBsm C-ASR-EV ::= { + ... +} END \ No newline at end of file diff --git a/EtsiTs103759AsrCam.asn b/EtsiTs103759AsrCam.asn index 2ec759f..524e6ad 100755 --- a/EtsiTs103759AsrCam.asn +++ b/EtsiTs103759AsrCam.asn @@ -42,18 +42,18 @@ WITH SUCCESSORS * * @brief This data type is for reporting CAM issues. */ - AsrCam ::= TemplateAsr {{SetMbObsTgtsCam}, {SetMbEvCam}} +AsrCam ::= TemplateAsr {{SetMbObsTgtsCam}, {SetMbEvCam}} /* Identify target classes for CAM */ - IdCamTgt ::= Uint8 +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 +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 @@ -167,23 +167,29 @@ WITH SUCCESSORS * 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}, - ... - } +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 ::= { - ... - } +SetMbEvCam C-ASR-EV ::= { + ... +} END \ No newline at end of file diff --git a/EtsiTs103759AsrDenm.asn b/EtsiTs103759AsrDenm.asn index 2128245..a3a5ad6 100755 --- a/EtsiTs103759AsrDenm.asn +++ b/EtsiTs103759AsrDenm.asn @@ -11,6 +11,6 @@ EXPORTS ALL; * * @brief This data type is defined as NULL for this version of the standard. */ - AsrDenm ::= NULL +AsrDenm ::= NULL END \ No newline at end of file diff --git a/EtsiTs103759CommonObservations.asn b/EtsiTs103759CommonObservations.asn index 5db516a..89c4e1c 100644 --- a/EtsiTs103759CommonObservations.asn +++ b/EtsiTs103759CommonObservations.asn @@ -27,7 +27,7 @@ WITH SUCCESSORS * * @brief Identifier type for observations: synonym for Uint8 */ - IdMbObs ::= Uint8 +IdMbObs ::= Uint8 /* * Beacon issues @@ -54,20 +54,20 @@ WITH SUCCESSORS * to support this observation. * */ - Beacon-IntervalTooSmall ::= NULL +Beacon-IntervalTooSmall ::= NULL -- IDs - c-ObsBeacon-IntervalTooSmall IdMbObs::= 1 -- Class 2 +c-ObsBeacon-IntervalTooSmall IdMbObs::= 1 -- Class 2 -- Individual Information Objects - obs-Beacon-IntervalTooSmall C-ASR-SINGLE-OBS ::= - { Beacon-IntervalTooSmall BY c-ObsBeacon-IntervalTooSmall } +obs-Beacon-IntervalTooSmall C-ASR-SINGLE-OBS ::= + {Beacon-IntervalTooSmall BY c-ObsBeacon-IntervalTooSmall} -- Information Object Set - SetMbObsCompleteBeacon C-ASR-SINGLE-OBS ::= { - obs-Beacon-IntervalTooSmall, - ... - } +SetMbObsCompleteBeacon C-ASR-SINGLE-OBS ::= { + obs-Beacon-IntervalTooSmall, + ... +} /* @@ -94,20 +94,20 @@ WITH SUCCESSORS * to support this observation. * */ - Static-Change ::= BIT STRING +Static-Change ::= BIT STRING -- IDs - c-ObsStatic-Change IdMbObs::= 1 -- Class 2 +c-ObsStatic-Change IdMbObs::= 1 -- Individual Information Objects - obs-Static-Change C-ASR-SINGLE-OBS ::= - { Static-Change BY c-ObsStatic-Change } +obs-Static-Change C-ASR-SINGLE-OBS ::= + {Static-Change BY c-ObsStatic-Change} -- Information Object Set - SetMbObsCompleteStatic C-ASR-SINGLE-OBS ::= { - obs-Static-Change , - ... - } +SetMbObsCompleteStatic C-ASR-SINGLE-OBS ::= { + obs-Static-Change, + ... +} /* @@ -134,7 +134,7 @@ WITH SUCCESSORS * to support this observation. * */ - Security-MessageIdIncWithHeaderInfo ::= NULL +Security-MessageIdIncWithHeaderInfo ::= NULL /** * @class Security-HeaderIncWithSecurityProfile @@ -156,7 +156,7 @@ WITH SUCCESSORS * to support this observation. * */ - Security-HeaderIncWithSecurityProfile ::= NULL +Security-HeaderIncWithSecurityProfile ::= NULL /** * @class Security-HeaderPsidIncWithCertificate @@ -178,7 +178,7 @@ WITH SUCCESSORS * to support this observation. * */ - Security-HeaderPsidIncWithCertificate ::= NULL +Security-HeaderPsidIncWithCertificate ::= NULL /** * @class Security-MessageIncWithSsp @@ -200,7 +200,7 @@ WITH SUCCESSORS * to support this observation. * */ - Security-MessageIncWithSsp ::= NULL +Security-MessageIncWithSsp ::= NULL /** * @class Security-HeaderTimeOutsideCertificateValidity @@ -223,7 +223,7 @@ WITH SUCCESSORS * to support this observation. * */ - Security-HeaderTimeOutsideCertificateValidity ::= NULL +Security-HeaderTimeOutsideCertificateValidity ::= NULL /** * @class Security-MessageLocationOutsideCertificateValidity @@ -245,7 +245,7 @@ WITH SUCCESSORS * to support this observation. * */ - Security-MessageLocationOutsideCertificateValidity ::= NULL +Security-MessageLocationOutsideCertificateValidity ::= NULL /** * @class Security-HeaderLocationOutsideCertificateValidity @@ -268,56 +268,65 @@ WITH SUCCESSORS * to support this observation. * */ - Security-HeaderLocationOutsideCertificateValidity ::= NULL +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 +c-ObsSecurity-MessageIdIncWithHeaderInfo IdMbObs ::= 1 +c-ObsSecurity-HeaderIncWithSecurityProfile IdMbObs ::= 2 +c-ObsSecurity-HeaderPsidIncWithCertificate IdMbObs ::= 3 +c-ObsSecurity-MessageIncWithSsp IdMbObs ::= 4 +c-ObsSecurity-HeaderTimeOutsideCertificateValidity IdMbObs ::= 5 +c-ObsSecurity-MessageLocationOutsideCertificateValidity IdMbObs ::= 6 +c-ObsSecurity-HeaderLocationOutsideCertificateValidity IdMbObs ::= 7 -- 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 } +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, - ... - } +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, + ... +} /* @@ -344,7 +353,7 @@ WITH SUCCESSORS * to support this observation. * */ - Pos-IncWithPrev-TooSmall ::= NULL +Pos-IncWithPrev-TooSmall ::= NULL /* * @class Pos-IncWithPrev-TooFar @@ -373,9 +382,9 @@ WITH SUCCESSORS * 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 { + gpsDrift Uint16 +} /** * @class Position-ChangeTooLarge @@ -397,35 +406,30 @@ WITH SUCCESSORS * to support this observation. * */ - Position-ChangeTooLarge ::= NULL +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 +c-ObsPos-IncWithPrev-TooSmall IdMbObs ::= 2 +c-ObsPos-IncWithPrev-TooFar IdMbObs ::= 3 +c-ObsPosition-ChangeTooLarge IdMbObs ::= 4 -- Individual Information Objects - obs-Pos-IncWithPrev-TooSmall C-ASR-SINGLE-OBS ::= - { Pos-IncWithPrev-TooSmall BY c-ObsPos-IncWithPrev-TooSmall } +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-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 } +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, - ... - } +SetMbObsEtsiOnlyPosition C-ASR-SINGLE-OBS ::= { + obs-Position-ChangeTooLarge, + ... +} /* @@ -460,9 +464,9 @@ WITH SUCCESSORS * @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 - } +Speed-ValueTooLarge-ThresholdNoContext ::= SEQUENCE { + threshold Uint16 +} /** * @class Speed-ValueTooLarge-VehicleType @@ -483,7 +487,7 @@ WITH SUCCESSORS * to support this observation. * */ - Speed-ValueTooLarge-VehicleType ::= NULL +Speed-ValueTooLarge-VehicleType ::= NULL /** * @class Speed-ValueTooLarge-DriveDirectionReverse @@ -504,7 +508,7 @@ WITH SUCCESSORS * to support this observation. * */ - Speed-ValueTooLarge-DriveDirectionReverse ::= NULL +Speed-ValueTooLarge-DriveDirectionReverse ::= NULL /** * @class Speed-ChangeTooLarge @@ -526,44 +530,39 @@ WITH SUCCESSORS * to support this observation. * */ - Speed-ChangeTooLarge ::= NULL +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 +c-ObsSpeed-ValueTooLarge-ThresholdNoContext IdMbObs::= 2 +c-ObsSpeed-ValueTooLarge-VehicleType IdMbObs::= 3 +c-ObsSpeed-ValueTooLarge-DriveDirectionReverse IdMbObs::= 4 +c-ObsSpeed-ChangeTooLarge IdMbObs::= 5 -- 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-VehicleType C-ASR-SINGLE-OBS ::= { + Speed-ValueTooLarge-VehicleType BY c-ObsSpeed-ValueTooLarge-VehicleType +} - obs-Speed-ValueTooLarge-DriveDirectionReverse C-ASR-SINGLE-OBS ::= - { Speed-ValueTooLarge-DriveDirectionReverse BY - c-ObsSpeed-ValueTooLarge-DriveDirectionReverse } +obs-Speed-ValueTooLarge-ThresholdNoContext C-ASR-SINGLE-OBS ::= { + Speed-ValueTooLarge-ThresholdNoContext BY + c-ObsSpeed-ValueTooLarge-ThresholdNoContext +} - obs-Speed-ChangeTooLarge C-ASR-SINGLE-OBS ::= - { Speed-ChangeTooLarge BY c-ObsSpeed-ChangeTooLarge } +obs-Speed-ValueTooLarge-DriveDirectionReverse C-ASR-SINGLE-OBS ::= { + Speed-ValueTooLarge-DriveDirectionReverse BY + c-ObsSpeed-ValueTooLarge-DriveDirectionReverse +} --- Information Object Sets --- SetMbObsCompleteSpeed C-ASR-SINGLE-OBS ::= { --- obs-Speed-ValueTooLarge-ThresholdNoContext | --- obs-Speed-ValueTooLarge-VehicleType | --- obs-Speed-ValueTooLarge-DriveDirectionReverse | --- obs-Speed-ChangeTooLarge, --- ... --- } +obs-Speed-ChangeTooLarge C-ASR-SINGLE-OBS ::= { + Speed-ChangeTooLarge BY c-ObsSpeed-ChangeTooLarge +} - SetMbObsEtsiOnlySpeed C-ASR-SINGLE-OBS ::= { - 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, + ... +} /* @@ -599,9 +598,9 @@ WITH SUCCESSORS * @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 - } +LongAcc-ValueTooLarge-ThresholdNoContext ::= SEQUENCE { + threshold Uint16 +} /* * @class LongAcc-Implausible-Brake @@ -623,7 +622,7 @@ WITH SUCCESSORS * to support this observation. * */ - LongAcc-Implausible-Brake ::= NULL +LongAcc-Implausible-Brake ::= NULL /** * @class LongAcc-ValueTooLarge @@ -644,35 +643,30 @@ WITH SUCCESSORS * to support this observation. * */ - LongAcc-ValueTooLarge ::= NULL +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 +c-ObsLongAcc-ValueTooLarge-ThresholdNoContext IdMbObs::= 2 +c-ObsLongAcc-Implausible-Brake IdMbObs::= 3 +c-ObsLongAcc-ValueTooLarge IdMbObs::= 4 -- 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, - ... - } +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 +} + +SetMbObsEtsiOnlyLongAcc C-ASR-SINGLE-OBS ::= { + obs-LongAcc-ValueTooLarge, + ... +} END \ No newline at end of file -- GitLab From 1773d165f852f69b05e532aab3bb3db415f19b84 Mon Sep 17 00:00:00 2001 From: Virendra Kumar Date: Fri, 14 Jan 2022 16:12:02 -0500 Subject: [PATCH 10/66] Documentation html updated --- documentation/schema.html | 5995 ++++++++++++++++++++----------------- 1 file changed, 3181 insertions(+), 2814 deletions(-) diff --git a/documentation/schema.html b/documentation/schema.html index db18320..8fa4b2f 100644 --- a/documentation/schema.html +++ b/documentation/schema.html @@ -6,8 +6,8 @@ -

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 +

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
@@ -15,17 +15,19 @@ - - - - - - - - - + + + + + + + + + + +
Schema Files
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)}
EtsiTs103097ExtensionModule.asnEtsiTs103097ExtensionModule{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) secHeaders (103097) extension (2) major-version-1 (1) minor-version-1 (1)}
EtsiTs103097Module.asnEtsiTs103097Module{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) secHeaders (103097) core (1) major-version-3 (3) minor-version-1 (1)}
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-4 (4)}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-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.
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 Table
Modules Table
@@ -33,449 +35,472 @@ - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Modules
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
EtsiTs103097ExtensionModule{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) secHeaders (103097) extension (2) major-version-1 (1) minor-version-1 (1)}13Ieee1609Dot21Ieee1609Dot2BaseTypes3
EtsiTs103097Module{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) secHeaders (103097) core (1) major-version-3 (3) minor-version-1 (1)}12EtsiTs1037591Ieee1609Dot22
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)}42EtsiTs103759AsrBsm9EtsiTs103097Module1
EtsiTs103759AsrCam9EtsiTs103759AsrAppAgnostic1
EtsiTs103759MbrCommonObservations25EtsiTs103759AsrBsm1
EtsiTs103759AsrCam1
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-4 (4)}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.43EtsiTs103097Module2EtsiTs103097ExtensionModule1
EtsiTs1037591Ieee1609Dot2BaseTypes41
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-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.72EtsiTs103097ExtensionModule3
EtsiTs10375914
EtsiTs103759AsrBsm1
EtsiTs103759AsrCam1
EtsiTs103759MbrCommonObservations4
Ieee1609Dot241
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 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
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
EtsiTs103097ExtensionModuleEtsiOriginatingHeaderInfoExtension
EtsiTs103097ExtensionModuleEtsiTs102941CrlRequest
EtsiTs103097ExtensionModuleEtsiTs102941DeltaCtlRequest
EtsiTs103097ModuleEtsiTs103097Data-SignedExternalPayload
EtsiTs103097ExtensionModuleEtsiTs103097HeaderInfoExtensionId
EtsiTs103759EtsiTs103759Data

EtsiTs103759Data

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.
EtsiTs103759EtsiTs103759Data-SignedAndEncrypted-Unicast

EtsiTs103759Data-SignedAndEncrypted-Unicast

This structure is the SPDU used to send a signed and encrypted EtsiTs103759Data to the MA. For the signature to be valid the signing certificate shall conform to the authorization ticket profile given in clause 7.2.1 of ETSI TS 103 097 v2.1.1, where the appPermissions field in the authorization ticket allows signing misbehaviour reports. The signed EtsiTs103759Data shall be encrypted to the MA using the encryptionKey in the MA's certificate.
ITS-ContainerEventHistory
EtsiTs103097ExtensionModuleExtensionModuleVersion
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
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 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
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.
43
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
EtsiTs103097ExtensionModuleEtsiOriginatingHeaderInfoExtension12
EtsiTs103097ExtensionModuleEtsiTs102941CrlRequest12
EtsiTs103097ExtensionModuleEtsiTs102941CtlRequest11
EtsiTs103097ExtensionModuleEtsiTs102941DeltaCtlRequest11
EtsiTs103097ModuleEtsiTs103097Certificate11
EtsiTs103097ModuleEtsiTs103097Data42
EtsiTs103097ModuleEtsiTs103097Data-SignedExternalPayload1
EtsiTs103097ExtensionModuleEtsiTs103097HeaderInfoExtensionId21
EtsiTs103759EtsiTs103759Data

EtsiTs103759Data

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.
14
EtsiTs103759EtsiTs103759Data-SignedAndEncrypted-Unicast

EtsiTs103759Data-SignedAndEncrypted-Unicast

This structure is the SPDU used to send a signed and encrypted EtsiTs103759Data to the MA. For the signature to be valid the signing certificate shall conform to the authorization ticket profile given in clause 7.2.1 of ETSI TS 103 097 v2.1.1, where the appPermissions field in the authorization ticket allows signing misbehaviour reports. The signed EtsiTs103759Data shall be encrypted to the MA using the encryptionKey in the MA's certificate.
2
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
EtsiTs103097ExtensionModuleExtensionModuleVersion
ITS-ContainerExteriorLights
EtsiTs103097ExtensionModuleExtId2
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.
7
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.
32
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
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.
21
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 Table
Parameterized Type Assignments Table
@@ -483,128 +508,139 @@ - - - - - + + + + + + + + + + + +
Parameterized Type Assignments
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
EtsiTs103097ModuleEtsiTs103097Data-EncryptedToBeEncryptedDataContent31
EtsiTs103097ModuleEtsiTs103097Data-Encrypted-UnicastToBeEncryptedDataContent2
EtsiTs103097ModuleEtsiTs103097Data-SignedToBeSignedDataContent21
EtsiTs103097ModuleEtsiTs103097Data-SignedAndEncryptedToBesignedAndEncryptedDataContent2
EtsiTs103097ModuleEtsiTs103097Data-SignedAndEncrypted-UnicastToBesignedAndEncryptedDataContent12
EtsiTs103097ModuleEtsiTs103097Data-UnsecuredToBeSentDataContent11
EtsiTs103097ExtensionModuleExtensionExtensionTypesEXT-TYPE11
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 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
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
EtsiTs103097ExtensionModuleetsiTs102941CrlRequestIdEtsiTs103097HeaderInfoExtensionId11
EtsiTs103097ExtensionModuleetsiTs102941DeltaCtlRequestIdEtsiTs103097HeaderInfoExtensionId11
Ieee1609Dot2iso21177ExtendedAuthPduFunctionalType1
Ieee1609Dot2tlsHandshakePduFunctionalType1
-
Class Assignments Table
Class Assignments Table +
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
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
EtsiTs103097ExtensionModuleEXT-TYPE21
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 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
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 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
EtsiTs103097ExtensionModuleEtsiTs103097HeaderInfoExtensionsEXT-TYPE15
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
13
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 Table
Type Assignments Cross Reference Table
@@ -612,494 +648,518 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Type Assignments Cross Reference
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
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
EtsiTs103759AidSpecificReportEtsiTs103759EtsiTs103759Data1EtsiTs103759C-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
Ieee1609Dot2CertificateEtsiTs103097ModuleEtsiTs103097Certificate1Ieee1609Dot2CertificateBase1
Ieee1609Dot2HeaderInfo1Ieee1609Dot2ExplicitCertificate1
Ieee1609Dot2SequenceOfCertificate1Ieee1609Dot2ImplicitCertificate1
EtsiTs103759V2xPduStream1
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
Ieee1609Dot2BaseTypesPublicVerificationKey2
Ieee1609Dot2BaseTypesEcdsaP256SignatureIeee1609Dot2BaseTypesSignature2Ieee1609Dot2BaseTypesEccP256CurvePoint1
Ieee1609Dot2BaseTypesEcdsaP384SignatureIeee1609Dot2BaseTypesSignature2Ieee1609Dot2BaseTypesEccP384CurvePoint1
Ieee1609Dot2BaseTypesEciesP256EncryptedKeyIeee1609Dot2EncryptedDataEncryptionKey2Ieee1609Dot2BaseTypesEccP256CurvePoint1
Ieee1609Dot2BaseTypesElevationIeee1609Dot2BaseTypesThreeDLocation1Ieee1609Dot2BaseTypesUint161
ITS-ContainerEmbarkationStatus
ITS-ContainerEmergencyPriority
ITS-ContainerEmergencyVehicleApproachingSubCauseCode
Ieee1609Dot2EncryptedDataIeee1609Dot2Ieee1609Dot2Content1Ieee1609Dot2SequenceOfRecipientInfo1
Ieee1609Dot2SymmetricCiphertext1
Ieee1609Dot2EncryptedDataEncryptionKeyIeee1609Dot2PKRecipientInfo1Ieee1609Dot2BaseTypesEciesP256EncryptedKey2
Ieee1609Dot2BaseTypesEncryptionKeyIeee1609Dot2HeaderInfo1Ieee1609Dot2BaseTypesPublicEncryptionKey1
Ieee1609Dot2BaseTypesSymmetricEncryptionKey1
Ieee1609Dot2EndEntityTypeIeee1609Dot2PsidGroupPermissions1
ITS-ContainerEnergyStorageType
EtsiTs103097ExtensionModuleEtsiOriginatingHeaderInfoExtensionIeee1609Dot2Ieee1609Dot2HeaderInfoContributedExtensions1EtsiTs103097ExtensionModuleEtsiTs103097HeaderInfoExtensions1
EtsiTs103097ExtensionModuleExtension1
EtsiTs103097ExtensionModuleEtsiTs102941CrlRequestEtsiTs103097ExtensionModuleEtsiTs103097HeaderInfoExtensions1Ieee1609Dot2BaseTypesHashedId81
Ieee1609Dot2BaseTypesTime321
EtsiTs103097ExtensionModuleEtsiTs102941CtlRequestEtsiTs103097ExtensionModuleEtsiTs102941DeltaCtlRequest1Ieee1609Dot2BaseTypesHashedId81
EtsiTs103097ExtensionModuleEtsiTs102941DeltaCtlRequestEtsiTs103097ExtensionModuleEtsiTs103097HeaderInfoExtensions1EtsiTs103097ExtensionModuleEtsiTs102941CtlRequest1
EtsiTs103097ModuleEtsiTs103097CertificateEtsiTs103097ModuleEtsiTs103097Data1Ieee1609Dot2Certificate1
EtsiTs103097ModuleEtsiTs103097DataEtsiTs103097ModuleEtsiTs103097Data-Encrypted2EtsiTs103097ModuleEtsiTs103097Certificate1
EtsiTs103097ModuleEtsiTs103097Data-Signed2Ieee1609Dot2Ieee1609Dot2Data1
EtsiTs103097ModuleEtsiTs103097Data-SignedExternalPayload1
EtsiTs103097ModuleEtsiTs103097Data-Unsecured1
EtsiTs103097ModuleEtsiTs103097Data-SignedExternalPayloadEtsiTs103097ModuleEtsiTs103097Data1
EtsiTs103097ExtensionModuleEtsiTs103097HeaderInfoExtensionIdEtsiTs103097ExtensionModuleetsiTs102941CrlRequestId1EtsiTs103097ExtensionModuleExtId1
EtsiTs103097ExtensionModuleetsiTs102941DeltaCtlRequestId1
EtsiTs103759EtsiTs103759DataEtsiTs103759EtsiTs103759Data-SignedAndEncrypted-Unicast1EtsiTs103759AidSpecificReport1
Ieee1609Dot2BaseTypesThreeDLocation1
Ieee1609Dot2BaseTypesTime641
Ieee1609Dot2BaseTypesUint81
EtsiTs103759EtsiTs103759Data-SignedAndEncrypted-UnicastEtsiTs103097ModuleEtsiTs103097Data-SignedAndEncrypted-Unicast1
EtsiTs103759EtsiTs103759Data1
ITS-ContainerEventHistoryITS-ContainerEventPoint1
ITS-ContainerEventPointITS-ContainerEventHistory1ITS-ContainerDeltaReferencePosition1
ITS-ContainerInformationQuality1
ITS-ContainerPathDeltaTime1
Ieee1609Dot2ExplicitCertificateIeee1609Dot2Certificate1Ieee1609Dot2CertificateBase1
EtsiTs103097ExtensionModuleExtensionModuleVersion
ITS-ContainerExteriorLights
EtsiTs103097ExtensionModuleExtIdEtsiTs103097ExtensionModuleEtsiTs103097HeaderInfoExtensionId1
EtsiTs103097ExtensionModuleEXT-TYPE1
Ieee1609Dot2BaseTypesGeographicRegionIeee1609Dot2ToBeSignedCertificate1Ieee1609Dot2BaseTypesCircularRegion1
Ieee1609Dot2BaseTypesPolygonalRegion1
Ieee1609Dot2BaseTypesSequenceOfIdentifiedRegion1
Ieee1609Dot2BaseTypesSequenceOfRectangularRegion1
Ieee1609Dot2BaseTypesGroupLinkageValueIeee1609Dot2LinkageData1
ITS-ContainerHardShoulderStatusITS-ContainerClosedLanes2
Ieee1609Dot2BaseTypesHashAlgorithmIeee1609Dot2IssuerIdentifier1
Ieee1609Dot2SignedData1
Ieee1609Dot2HashedDataIeee1609Dot2SignedDataPayload1
Ieee1609Dot2BaseTypesHashedId10
Ieee1609Dot2BaseTypesHashedId3Ieee1609Dot2HeaderInfo1
Ieee1609Dot2MissingCrlIdentifier1
Ieee1609Dot2BaseTypesSequenceOfHashedId31
Ieee1609Dot2ToBeSignedCertificate1
Ieee1609Dot2BaseTypesHashedId32
Ieee1609Dot2BaseTypesHashedId8EtsiTs103097ExtensionModuleEtsiTs102941CrlRequest1
EtsiTs103097ExtensionModuleEtsiTs102941CtlRequest1
Ieee1609Dot2IssuerIdentifier2
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
Ieee1609Dot2BaseTypesOpaque3
Ieee1609Dot2SignedData1
Ieee1609Dot2Ieee1609Dot2DataIeee1609Dot2Countersignature1Ieee1609Dot2Ieee1609Dot2Content1
EtsiTs103097ModuleEtsiTs103097Data1Ieee1609Dot2BaseTypesUint81
Ieee1609Dot2SignedDataPayload1
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
Ieee1609Dot2MissingCrlIdentifierIeee1609Dot2HeaderInfo1Ieee1609Dot2BaseTypesCrlSeries1
Ieee1609Dot2BaseTypesHashedId31
Ieee1609Dot2BaseTypesNinetyDegreeIntIeee1609Dot2BaseTypesKnownLatitude1
Ieee1609Dot2BaseTypesLatitude1
Ieee1609Dot2BaseTypesUnknownLatitude1
ITS-ContainerNumberOfOccupants
EtsiTs103759ObsPduEtsiGnEtsiTs103759SetObsPdu1Ieee1609Dot2BaseTypesOpaque1
EtsiTs103759ObsPduIeee1609Dot2DataEtsiTs103759SetObsPdu1Ieee1609Dot2BaseTypesOpaque1
EtsiTs103759ObsPduWsmpEtsiTs103759SetObsPdu1Ieee1609Dot2BaseTypesOpaque1
Ieee1609Dot2BaseTypesOneEightyDegreeIntIeee1609Dot2BaseTypesKnownLongitude1
Ieee1609Dot2BaseTypesLongitude1
Ieee1609Dot2BaseTypesUnknownLongitude1
Ieee1609Dot2BaseTypesOpaqueIeee1609Dot2AesCcmCiphertext1
Ieee1609Dot2Ieee1609Dot2Content3
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
Ieee1609Dot2BaseTypesEccP384CurvePoint2
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
Ieee1609Dot2SignedData1Ieee1609Dot2BaseTypesEcdsaP384Signature2
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
Ieee1609Dot2BaseTypesThreeDLocationEtsiTs103759EtsiTs103759Data1Ieee1609Dot2BaseTypesElevation1
Ieee1609Dot2HeaderInfo1Ieee1609Dot2BaseTypesLatitude1
Ieee1609Dot2BaseTypesLongitude1
Ieee1609Dot2BaseTypesTime32EtsiTs103097ExtensionModuleEtsiTs102941CrlRequest1Ieee1609Dot2BaseTypesUint321
Ieee1609Dot2BaseTypesValidityPeriod1
Ieee1609Dot2BaseTypesTime64EtsiTs103759EtsiTs103759Data1Ieee1609Dot2BaseTypesUint641
Ieee1609Dot2HeaderInfo2
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
EtsiTs103759EtsiTs103759Data1
EtsiTs103759AsrBsmIdBsmTgt1
EtsiTs103759AsrCamIdCamTgt1
EtsiTs103759MbrCommonObservationsIdMbObs1
EtsiTs103759IdObsPdu1
Ieee1609Dot2Ieee1609Dot2Data1
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
-
Parameterized Type Assignments Cross Reference Table
Parameterized Type Assignments Cross Reference Table +
Parameterized Type Assignments Cross Reference Table
Parameterized Type Assignments Cross Reference Table
@@ -1107,17 +1167,30 @@ - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + +
Parameterized Type Assignments Cross Reference
NameType or ClassModule nameEntity nameNumberModule nameEntity nameNumber
EtsiTs103759MbSingleObservationSetMbSingleObsC-ASR-SINGLE-OBSEtsiTs103759AsrBsmSetMbObsTgtsBsm3EtsiTs103759C-ASR-SINGLE-OBS30
EtsiTs103759AsrCamSetMbObsTgtsCam6
EtsiTs103759NonV2xPduEvidenceItemSetMbEvC-ASR-EVEtsiTs103759TemplateAsr3EtsiTs103759C-ASR-EV9
EtsiTs103759ObservationsByTargetSetAsrObsByTgtC-ASR-OBS-BY-TGTEtsiTs103759TemplateAsr3EtsiTs103759C-ASR-OBS-BY-TGT9
EtsiTs103759TemplateAsrObservationSetC-ASR-OBS-BY-TGTEtsiTs103759AsrBsmAsrBsm1EtsiTs103759C-ASR-EV3
NonV2xPduEvidenceSetC-ASR-EVEtsiTs103759AsrCamAsrCam1EtsiTs103759C-ASR-OBS-BY-TGT3
EtsiTs103759NonV2xPduEvidenceItem3
EtsiTs103759ObservationsByTarget3
EtsiTs103759V2xPduStream3
EtsiTs103097ModuleEtsiTs103097Data-EncryptedToBeEncryptedDataContentEtsiTs103097ModuleEtsiTs103097Data-Encrypted-Unicast1EtsiTs103097ModuleEtsiTs103097Data2
EtsiTs103097ModuleEtsiTs103097Data-SignedAndEncrypted1
EtsiTs103097ModuleEtsiTs103097Data-SignedAndEncrypted-Unicast2
EtsiTs103097ModuleEtsiTs103097Data-Encrypted-UnicastToBeEncryptedDataContentEtsiTs103097ModuleEtsiTs103097Data-Encrypted1
EtsiTs103097ModuleEtsiTs103097Data-Unsecured1
EtsiTs103097ModuleEtsiTs103097Data-SignedToBeSignedDataContentEtsiTs103097ModuleEtsiTs103097Data-SignedAndEncrypted1EtsiTs103097ModuleEtsiTs103097Data2
EtsiTs103097ModuleEtsiTs103097Data-SignedAndEncrypted-Unicast2
EtsiTs103097ModuleEtsiTs103097Data-SignedAndEncryptedToBesignedAndEncryptedDataContentEtsiTs103097ModuleEtsiTs103097Data-Encrypted1
EtsiTs103097ModuleEtsiTs103097Data-Signed1
EtsiTs103097ModuleEtsiTs103097Data-SignedAndEncrypted-UnicastToBesignedAndEncryptedDataContentEtsiTs103759EtsiTs103759Data-SignedAndEncrypted-Unicast1EtsiTs103097ModuleEtsiTs103097Data-Encrypted2
EtsiTs103097ModuleEtsiTs103097Data-Signed2
EtsiTs103097ModuleEtsiTs103097Data-UnsecuredToBeSentDataContentEtsiTs103097ModuleEtsiTs103097Data-Encrypted-Unicast1EtsiTs103097ModuleEtsiTs103097Data1
EtsiTs103097ExtensionModuleExtensionExtensionTypesEXT-TYPEEtsiTs103097ExtensionModuleEtsiOriginatingHeaderInfoExtension1EtsiTs103097ExtensionModuleEXT-TYPE6
EtsiTs103759MbSingleObservationSetMbSingleObsC-ASR-SINGLE-OBSEtsiTs103759AsrBsmSetMbObsTgtsBsm3EtsiTs103759C-ASR-SINGLE-OBS30
EtsiTs103759AsrCamSetMbObsTgtsCam6
EtsiTs103759NonV2xPduEvidenceItemSetMbEvC-ASR-EVEtsiTs103759TemplateAsr3EtsiTs103759C-ASR-EV9
EtsiTs103759ObservationsByTargetSetAsrObsByTgtC-ASR-OBS-BY-TGTEtsiTs103759TemplateAsr3EtsiTs103759C-ASR-OBS-BY-TGT9
EtsiTs103759TemplateAsrObservationSetC-ASR-OBS-BY-TGTEtsiTs103759AsrBsmAsrBsm1EtsiTs103759C-ASR-EV3
NonV2xPduEvidenceSetC-ASR-EVEtsiTs103759AsrCamAsrCam1EtsiTs103759C-ASR-OBS-BY-TGT3
EtsiTs103759NonV2xPduEvidenceItem3
EtsiTs103759ObservationsByTarget3
EtsiTs103759V2xPduStream3
-
Value Assignments Cross Reference Table
Value Assignments Cross Reference Table +
Value Assignments Cross Reference Table
Value Assignments Cross Reference Table
@@ -1125,49 +1198,51 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Value Assignments Cross Reference
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
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
EtsiTs103097ExtensionModuleetsiTs102941CrlRequestIdEtsiTs103097HeaderInfoExtensionIdEtsiTs103097ExtensionModuleEtsiTs103097HeaderInfoExtensions1EtsiTs103097ExtensionModuleEtsiTs103097HeaderInfoExtensionId1
EtsiTs103097ExtensionModuleetsiTs102941DeltaCtlRequestIdEtsiTs103097HeaderInfoExtensionIdEtsiTs103097ExtensionModuleEtsiTs103097HeaderInfoExtensions1EtsiTs103097ExtensionModuleEtsiTs103097HeaderInfoExtensionId1
Ieee1609Dot2iso21177ExtendedAuthPduFunctionalTypeIeee1609Dot2PduFunctionalType1
Ieee1609Dot2tlsHandshakePduFunctionalTypeIeee1609Dot2PduFunctionalType1
-
Class Assignments Cross Reference Table
Class Assignments Cross Reference Table +
Class Assignments Cross Reference Table
Class Assignments Cross Reference Table
@@ -1175,55 +1250,57 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class Assignments Cross Reference
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
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
EtsiTs103097ExtensionModuleEXT-TYPEEtsiTs103097ExtensionModuleEtsiTs103097HeaderInfoExtensions1EtsiTs103097ExtensionModuleExtId1
EtsiTs103097ExtensionModuleExtension6
Ieee1609Dot2IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSIONIeee1609Dot2ContributedExtensionBlock2Ieee1609Dot2HeaderInfoContributorId1
Ieee1609Dot2Ieee1609Dot2HeaderInfoContributedExtensions1
-
Object Assignments Cross Reference Table
Object Assignments Cross Reference Table +
Object Assignments Cross Reference Table
Object Assignments Cross Reference Table
@@ -1231,65 +1308,65 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Object Assignments Cross Reference
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
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 Table
Object Set Assignments Cross Reference Table
@@ -1297,91 +1374,395 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Object Set Assignments Cross Reference
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
EtsiTs103097ExtensionModuleEtsiTs103097HeaderInfoExtensionsEXT-TYPEEtsiTs103097ExtensionModuleEtsiOriginatingHeaderInfoExtension1EtsiTs103097ExtensionModuleEtsiTs102941CrlRequest1
EtsiTs103097ExtensionModuleetsiTs102941CrlRequestId1
EtsiTs103097ExtensionModuleEtsiTs102941DeltaCtlRequest1
EtsiTs103097ExtensionModuleetsiTs102941DeltaCtlRequestId1
EtsiTs103097ExtensionModuleEXT-TYPE1
Ieee1609Dot2Ieee1609Dot2HeaderInfoContributedExtensionsIEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSIONIeee1609Dot2ContributedExtensionBlock2Ieee1609Dot2etsiHeaderInfoContributorId1
EtsiTs103097ExtensionModuleEtsiOriginatingHeaderInfoExtension1
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)

Schema Files

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

Schema File EtsiTs103097ExtensionModule.asn
Schema File EtsiTs103097ExtensionModule.asn

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

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

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

IMPORTS

HashedId8, Time32

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-3 (3)} WITH SUCCESSORS;

FROM Ieee1609Dot2BaseTypes {} WITH SUCCESSORS;

IMPORTS;

ExtensionModuleVersion ::= INTEGER (1)

Extension {EXT-TYPE: ExtensionTypes} ::= SEQUENCE {

id EXT-TYPE.&extId ({ExtensionTypes}),

content EXT-TYPE.&ExtContent ({ExtensionTypes} {@.id})

}

Extension {EXT-TYPE: ExtensionTypes} ::= SEQUENCE {}

EXT-TYPE ::= CLASS {

&extId ExtId,

&ExtContent

}

EXT-TYPE ::= CLASS {}

WITH SYNTAX {

&ExtContent IDENTIFIED BY &extId

}

WITH SYNTAX {}

ExtId ::= INTEGER (0..255)

EtsiOriginatingHeaderInfoExtension ::= Extension {{EtsiTs103097HeaderInfoExtensions}}

EtsiTs103097HeaderInfoExtensionId ::= ExtId

etsiTs102941CrlRequestId EtsiTs103097HeaderInfoExtensionId ::= 1 --'01'H

etsiTs102941DeltaCtlRequestId EtsiTs103097HeaderInfoExtensionId ::= 2 --'02'H

EtsiTs102941CrlRequest ::= SEQUENCE {

issuerId HashedId8,

lastKnownUpdate Time32 OPTIONAL

}

EtsiTs102941CrlRequest ::= SEQUENCE {}

EtsiTs102941CtlRequest ::= SEQUENCE {

issuerId HashedId8,

lastKnownCtlSequence INTEGER (0..255) OPTIONAL

}

EtsiTs102941CtlRequest ::= SEQUENCE {}

EtsiTs102941DeltaCtlRequest ::= EtsiTs102941CtlRequest

END

Schema File EtsiTs103097Module.asn
Schema File EtsiTs103097Module.asn

EtsiTs103097Module {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) secHeaders (103097) core (1)

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

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

IMPORTS

Ieee1609Dot2Data, 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-4 (4)} WITH SUCCESSORS

FROM Ieee1609Dot2 {} WITH SUCCESSORS

ExtensionModuleVersion

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

secHeaders (103097) extension (2) major-version-1 (1) minor-version-1 (1)};

IMPORTS;

EtsiTs103097Certificate ::= Certificate (WITH COMPONENTS {

...,

toBeSigned (WITH COMPONENTS {

...,

id (WITH COMPONENTS {

...,

linkageData ABSENT,

binaryId ABSENT

}),

id (WITH COMPONENTS {}),

certRequestPermissions ABSENT,

canRequestRollover ABSENT

})

toBeSigned (WITH COMPONENTS {})

})

EtsiTs103097Certificate ::= Certificate (WITH COMPONENTS {})

EtsiTs103097Data ::= Ieee1609Dot2Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

...,

signedData (WITH COMPONENTS {

..., -- constraints on signed data headers

tbsData (WITH COMPONENTS {

headerInfo (WITH COMPONENTS {

...,

generationTime PRESENT,

p2pcdLearningRequest ABSENT,

missingCrlIdentifier ABSENT

})

headerInfo (WITH COMPONENTS {})

}),

tbsData (WITH COMPONENTS {}),

signer (WITH COMPONENTS {

..., --constraints on the certificate

certificate ((WITH COMPONENT (EtsiTs103097Certificate)) ^ (SIZE (1)))

})

signer (WITH COMPONENTS {})

}),

signedData (WITH COMPONENTS {}),

encryptedData (WITH COMPONENTS {

..., -- constraints on encrypted data headers

recipients (WITH COMPONENT ((WITH COMPONENTS {

...,

pskRecipInfo ABSENT,

symmRecipInfo ABSENT,

rekRecipInfo ABSENT

})))

recipients (WITH COMPONENT ((WITH COMPONENTS {})))

}),

encryptedData (WITH COMPONENTS {}),

signedCertificateRequest ABSENT

})

content (WITH COMPONENTS {})

})

EtsiTs103097Data ::= Ieee1609Dot2Data (WITH COMPONENTS {})

EtsiTs103097Data-Unsecured {ToBeSentDataContent} ::= EtsiTs103097Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {unsecuredData (CONTAINING ToBeSentDataContent)})

})

EtsiTs103097Data-Unsecured {ToBeSentDataContent} ::= EtsiTs103097Data (WITH COMPONENTS {})

EtsiTs103097Data-Signed {ToBeSignedDataContent} ::= EtsiTs103097Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

signedData (WITH COMPONENTS {

...,

tbsData (WITH COMPONENTS {

payload (WITH COMPONENTS {

data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {unsecuredData (CONTAINING

ToBeSignedDataContent)})

content (WITH COMPONENTS {})

}) PRESENT

data (WITH COMPONENTS {}) PRESENT

})

payload (WITH COMPONENTS {})

})

tbsData (WITH COMPONENTS {})

})

signedData (WITH COMPONENTS {})

})

content (WITH COMPONENTS {})

})

EtsiTs103097Data-Signed {ToBeSignedDataContent} ::= EtsiTs103097Data (WITH COMPONENTS {})

EtsiTs103097Data-SignedExternalPayload ::= EtsiTs103097Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

signedData (WITH COMPONENTS {

...,

tbsData (WITH COMPONENTS {payload (WITH COMPONENTS {extDataHash (WITH

COMPONENTS {sha256HashedData PRESENT}) PRESENT})})

tbsData (WITH COMPONENTS {})

})

signedData (WITH COMPONENTS {})

})

content (WITH COMPONENTS {})

})

EtsiTs103097Data-Encrypted {ToBeEncryptedDataContent} ::= EtsiTs103097Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

encryptedData (WITH COMPONENTS {

...,

ciphertext (WITH COMPONENTS {

...,

aes128ccm (WITH COMPONENTS {

...,

ccmCiphertext (CONSTRAINED BY {-- ccm encryption of --

ToBeEncryptedDataContent})

ccmCiphertext (CONSTRAINED BY {})

})

aes128ccm (WITH COMPONENTS {})

})

ciphertext (WITH COMPONENTS {})

})

encryptedData (WITH COMPONENTS {})

})

content (WITH COMPONENTS {})

})

EtsiTs103097Data-Encrypted {ToBeEncryptedDataContent} ::= EtsiTs103097Data (WITH COMPONENTS {})

EtsiTs103097Data-SignedAndEncrypted {ToBesignedAndEncryptedDataContent} ::= EtsiTs103097Data-Encrypted

{EtsiTs103097Data-Signed {ToBesignedAndEncryptedDataContent}}

EtsiTs103097Data-Encrypted-Unicast {ToBeEncryptedDataContent} ::= EtsiTs103097Data-Encrypted {} (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

encryptedData (WITH COMPONENTS {

...,

recipients (SIZE (1))

})

encryptedData (WITH COMPONENTS {})

})

content (WITH COMPONENTS {})

})

EtsiTs103097Data-SignedAndEncrypted-Unicast {ToBesignedAndEncryptedDataContent} ::= EtsiTs103097Data-Encrypted

{EtsiTs103097Data-Signed {ToBesignedAndEncryptedDataContent}} (WITH

COMPONENTS {

...,

content (WITH COMPONENTS {

encryptedData (WITH COMPONENTS {

...,

recipients (SIZE (1))

})

encryptedData (WITH COMPONENTS {})

})

content (WITH COMPONENTS {})

})

COMPONENTS {})

EtsiTs103097Data-Encrypted-1 {ToBeEncryptedDataContent} ::= EtsiTs103097Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

encryptedData (WITH COMPONENTS {

...,

ciphertext (WITH COMPONENTS {

...,

aes128ccm (WITH COMPONENTS {

...,

ccmCiphertext (CONSTRAINED BY {-- ccm encryption of --

ToBeEncryptedDataContent})

ccmCiphertext (CONSTRAINED BY {})

})

aes128ccm (WITH COMPONENTS {})

})

ciphertext (WITH COMPONENTS {})

})

encryptedData (WITH COMPONENTS {})

})

content (WITH COMPONENTS {})

})

EtsiTs103097Data-Signed-1 {ToBeSignedDataContent} ::= EtsiTs103097Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

signedData (WITH COMPONENTS {

...,

tbsData (WITH COMPONENTS {

payload (WITH COMPONENTS {

data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {unsecuredData (CONTAINING

ToBeSignedDataContent)})

content (WITH COMPONENTS {})

}) PRESENT

data (WITH COMPONENTS {}) PRESENT

})

payload (WITH COMPONENTS {})

})

tbsData (WITH COMPONENTS {})

})

signedData (WITH COMPONENTS {})

})

content (WITH COMPONENTS {})

})

EtsiTs103097Data-SignedAndEncrypted-Unicast-1 {ToBesignedAndEncryptedDataContent} ::= EtsiTs103097Data-Encrypted

{EtsiTs103097Data-Signed {ToBesignedAndEncryptedDataContent}} (WITH

COMPONENTS {

...,

content (WITH COMPONENTS {

encryptedData (WITH COMPONENTS {

...,

recipients (SIZE (1))

})

encryptedData (WITH COMPONENTS {})

})

content (WITH COMPONENTS {})

})

COMPONENTS {})

END

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;

IMPORTS

Certificate

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

EtsiTs103097Data-SignedAndEncrypted-Unicast

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

(103097) core (1) major-version-3 (3) minor-version-1 (1)} WITH SUCCESSORS

FROM EtsiTs103097Module {} WITH SUCCESSORS

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)

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

FROM Ieee1609Dot2 {} WITH SUCCESSORS

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 {}

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

FROM Ieee1609Dot2BaseTypes {} WITH SUCCESSORS

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)} WITH SUCCESSORS

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)} WITH SUCCESSORS

FROM EtsiTs103759AsrBsm {} WITH SUCCESSORS

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)} WITH SUCCESSORS

FROM EtsiTs103759AsrCam {} WITH SUCCESSORS

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)} WITH SUCCESSORS;

FROM EtsiTs103759AsrDenm {} WITH SUCCESSORS;

IMPORTS;

EtsiTs103759Data

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

EtsiTs103759Data ::= SEQUENCE {

version Uint8,

generationTime Time64,

observationLocation ThreeDLocation,

report AidSpecificReport

}

EtsiTs103759Data ::= SEQUENCE {}

EtsiTs103759Data-SignedAndEncrypted-Unicast

This structure is the SPDU used to send a signed and encrypted EtsiTs103759Data to the MA. For the signature to be valid the signing certificate shall conform to the authorization ticket profile given in clause 7.2.1 of ETSI TS 103 097 v2.1.1, where the appPermissions field in the authorization ticket allows signing misbehaviour reports. The signed EtsiTs103759Data shall be encrypted to the MA using the encryptionKey in the MA's certificate.
+

EtsiTs103759Data-SignedAndEncrypted-Unicast ::= EtsiTs103097Data-SignedAndEncrypted-Unicast {EtsiTs103759Data}

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

&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 ::= {

{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.
+>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-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-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-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.
+> 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 {

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.
+>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 {

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.
+>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.
+> 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.
+>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.
+> 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 {

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.
+>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.
+> 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.
+>SetObsPdu C-OBS-PDU ::= {}

IdObsPdu

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

IdObsPdu ::= Uint8

IdObsPdu ::= Uint8

c-ObsPdu-etsiGn IdObsPdu ::= 1

c-ObsPdu-etsiGn IdObsPdu ::= 1

c-ObsPdu-ieee1609Dot2Data IdObsPdu ::= 2

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.
+> 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.
+> 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.
+> 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.
+> 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 {

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.
+>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-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 {

&id Uint8,

&Val

}

C-2ENT ::= CLASS {}

C-2ENT ::= CLASS {}

WITH SYNTAX {

&Val BY &id

&Val BY &id

}

WITH SYNTAX {}

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

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

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

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

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

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

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

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

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

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 {

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

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

}

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

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 {

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

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

}

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

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

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

ObservationsByTarget-2 {C-ASR-OBS-BY-TGT: SetAsrObsByTgt} ::= 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-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-1 {C-ASR-OBS-BY-TGT: ObservationSet, C-ASR-EV: NonV2xPduEvidenceSet} ::= SEQUENCE {}

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}}

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}}

}

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

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)

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;

AsrAppAgnostic

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

AsrAppAgnostic ::= NULL

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)

EtsiTs103759AsrAppAgnosticEND

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;

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)

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)} WITH SUCCESSORS

FROM EtsiTs103759 {} WITH SUCCESSORS

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)} WITH SUCCESSORS

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 {};

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

FROM Ieee1609Dot2BaseTypes {} WITH SUCCESSORS;

IMPORTS;

/* Identify target classes for BSM */

IdBsmTgt ::= Uint8

IdBsmTgt ::= Uint8

c-BsmTgt-BeaconCommon IdBsmTgt ::= 0

c-BsmTgt-BeaconCommon IdBsmTgt ::= 0

c-BsmTgt-StaticCommon IdBsmTgt ::= 1

c-BsmTgt-StaticCommon IdBsmTgt ::= 1

c-BsmTgt-SecurityCommon IdBsmTgt ::= 2

c-BsmTgt-SecurityCommon IdBsmTgt ::= 2

c-BsmTgt-PositionCommon IdBsmTgt ::= 3

c-BsmTgt-PositionCommon IdBsmTgt ::= 3

c-BsmTgt-SpeedCommon IdBsmTgt ::= 4

c-BsmTgt-SpeedCommon IdBsmTgt ::= 4

c-BsmTgt-LongAccCommon IdBsmTgt ::= 5

AsrBsm

This data type is for reporting BSM issues defined by the SCMS Manager.
+> 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

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

SetMbObsPosition-Bsm

SetMbObsSpeed-Bsm

+>SetMbObsPosition-Bsm C-ASR-SINGLE-OBS ::= {}

SetMbObsSpeed-Bsm

SetMbObsLongAcc-Bsm

+>SetMbObsSpeed-Bsm C-ASR-SINGLE-OBS ::= {}

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.
+>SetMbObsLongAcc-Bsm C-ASR-SINGLE-OBS ::= {}

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
+>SetMbObsTgtsBsm C-ASR-OBS-BY-TGT ::= {}

SetMbEvBsm

This data type defines the IOS for BSM Evidence

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

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)

EtsiTs103759AsrBsmEND

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;

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)

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)} WITH SUCCESSORS

FROM EtsiTs103759 {} WITH SUCCESSORS

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)} WITH SUCCESSORS

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 {};

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

FROM Ieee1609Dot2BaseTypes {} WITH SUCCESSORS;

IMPORTS;

AsrCam

This data type is for reporting CAM issues.

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

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

/* Identify target classes for CAM */

IdCamTgt ::= Uint8

IdCamTgt ::= Uint8

c-CamTgt-BeaconCommon IdCamTgt ::= 0

c-CamTgt-BeaconCommon IdCamTgt ::= 0

c-CamTgt-StaticCommon IdCamTgt ::= 1

c-CamTgt-StaticCommon IdCamTgt ::= 1

c-CamTgt-SecurityCommon IdCamTgt ::= 2

c-CamTgt-SecurityCommon IdCamTgt ::= 2

c-CamTgt-PositionCommon IdCamTgt ::= 3

c-CamTgt-PositionCommon IdCamTgt ::= 3

c-CamTgt-SpeedCommon IdCamTgt ::= 4

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.)
+> 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.
+>SetMbObsTgtsCam C-ASR-OBS-BY-TGT ::= {}

SetMbEvCam

This data type defines the IOS for CAM Evidence.

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

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)

EtsiTs103759AsrCamEND

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;

AsrDenm

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

AsrDenm ::= NULL

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)

EtsiTs103759AsrDenmEND

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;

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)

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)} WITH SUCCESSORS

FROM EtsiTs103759 {} WITH SUCCESSORS

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 {};

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

FROM Ieee1609Dot2BaseTypes {} WITH SUCCESSORS;

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

Beacon-IntervalTooSmall ::= NULL

-- IDs

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

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

-- Individual Information Objects

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

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.
+>SetMbObsCompleteBeacon C-ASR-SINGLE-OBS ::= {}

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

Static-Change ::= BIT STRING

-- IDs

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

c-ObsStatic-Change IdMbObs ::= 1

-- Individual Information Objects

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

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.
+>SetMbObsCompleteStatic C-ASR-SINGLE-OBS ::= {}

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

Security-HeaderLocationOutsideCertificateValidity ::= NULL

-- IDs

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

c-ObsSecurity-MessageIdIncWithHeaderInfo IdMbObs ::= 1

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

c-ObsSecurity-HeaderIncWithSecurityProfile IdMbObs ::= 2

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

c-ObsSecurity-HeaderPsidIncWithCertificate IdMbObs ::= 3

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

c-ObsSecurity-MessageIncWithSsp IdMbObs ::= 4

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

c-ObsSecurity-HeaderTimeOutsideCertificateValidity IdMbObs ::= 5

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

c-ObsSecurity-MessageLocationOutsideCertificateValidity IdMbObs ::= 6

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

c-ObsSecurity-HeaderLocationOutsideCertificateValidity IdMbObs ::= 7

-- 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 ::=

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

obs-Security-HeaderLocationOutsideCertificateValidity 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.
+>SetMbObsCompleteSecurity C-ASR-SINGLE-OBS ::= {}

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-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 {

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

Position-ChangeTooLarge ::= NULL

-- IDs

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

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

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

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

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

c-ObsPosition-ChangeTooLarge IdMbObs ::= 4

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

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

obs-Position-ChangeTooLarge,

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}

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.
+>SetMbObsEtsiOnlyPosition C-ASR-SINGLE-OBS ::= {}

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-ThresholdNoContext ::= SEQUENCE {}

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

Speed-ChangeTooLarge ::= NULL

-- IDs

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

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

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

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

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

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

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

c-ObsSpeed-ChangeTooLarge IdMbObs ::= 5

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

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

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.
+>SetMbObsEtsiOnlySpeed C-ASR-SINGLE-OBS ::= {}

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-ValueTooLarge-ThresholdNoContext ::= SEQUENCE {}

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

LongAcc-ValueTooLarge ::= NULL

-- IDs

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

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

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

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

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

c-ObsLongAcc-ValueTooLarge IdMbObs ::= 4

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

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

SetMbObsEtsiOnlyLongAcc C-ASR-SINGLE-OBS ::= {}

END

Schema File Ieee1609Dot2.asn
Schema File Ieee1609Dot2.asn
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)}

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-4 (4)}

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

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)

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;

major-version-2 (2) minor-version-3 (3)} 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) version-1 (1) minor-version-1 (1)} 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

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 {

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.
+>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 {

unsecuredData Opaque,

signedData SignedData,

encryptedData EncryptedData,

signedCertificateRequest Opaque,

...,

signedX509CertificateRequest 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.
+>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 {

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.
+>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 {

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.
+>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,

SignedDataPayload ::= SEQUENCE {

data Ieee1609Dot2Data OPTIONAL,

extDataHash HashedData OPTIONAL,

...

} (WITH COMPONENTS {

SignedDataPayload ::= SEQUENCE {} (WITH COMPONENTS {

SignedDataPayload ::= SEQUENCE {} (WITH COMPONENTS {

...,

data PRESENT

data PRESENT

} | WITH COMPONENTS {

...,

extDataHash PRESENT

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)),

HashedData ::= CHOICE {

sha256HashedData OCTET STRING (SIZE (32)),

...,

sha384HashedData OCTET STRING (SIZE (48)),

reserved 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.
+>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,

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

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.
+>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 {

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.
+>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)

PduFunctionalType ::= INTEGER (0..255)

tlsHandshake PduFunctionalType ::= 1

tlsHandshake PduFunctionalType ::= 1

iso21177ExtendedAuth PduFunctionalType ::= 2

ContributedExtensionBlocks

This data structure defines a list of ContributedExtensionBlock
+> 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.
+> 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.
+>ContributedExtensionBlock ::= SEQUENCE {}

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

&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
+>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.
+>Ieee1609Dot2HeaderInfoContributedExtensions IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION ::= {}

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)

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.
+> 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 {

digest HashedId8,

certificate SequenceOfCertificate,

self NULL,

...

}

SignerIdentifier ::= CHOICE {}

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

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 {

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.
+>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 {

pskRecipInfo PreSharedKeyRecipientInfo,

symmRecipInfo SymmRecipientInfo,

certRecipInfo PKRecipientInfo,

signedDataRecipInfo PKRecipientInfo,

rekRecipInfo PKRecipientInfo

}

RecipientInfo ::= CHOICE {}

SequenceOfRecipientInfo

This type is used for clarity of definitions.
+>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.
+> 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.
+> 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 {

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.
+>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 {

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.
+>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 {

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.
+>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 {

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.
+>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 {

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.
+>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 {

Countersignature ::= Ieee1609Dot2Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

content (WITH COMPONENTS {

...,

signedData (WITH COMPONENTS {

signedData (WITH COMPONENTS {

...,

tbsData (WITH COMPONENTS {

tbsData (WITH COMPONENTS {

...,

payload (WITH COMPONENTS {

payload (WITH COMPONENTS {

...,

data ABSENT,

extDataHash PRESENT

data ABSENT,

extDataHash PRESENT

}),

payload (WITH COMPONENTS {}),

headerInfo (WITH COMPONENTS {

payload (WITH COMPONENTS {}),

headerInfo (WITH COMPONENTS {

...,

generationTime PRESENT,

expiryTime ABSENT,

generationLocation ABSENT,

p2pcdLearningRequest ABSENT,

missingCrlIdentifier ABSENT,

encryptionKey ABSENT

generationTime PRESENT,

expiryTime ABSENT,

generationLocation ABSENT,

p2pcdLearningRequest ABSENT,

missingCrlIdentifier ABSENT,

encryptionKey ABSENT

})

headerInfo (WITH COMPONENTS {})

headerInfo (WITH COMPONENTS {})

})

tbsData (WITH COMPONENTS {})

tbsData (WITH COMPONENTS {})

})

signedData (WITH COMPONENTS {})

signedData (WITH COMPONENTS {})

})

content (WITH COMPONENTS {})

content (WITH COMPONENTS {})

})

Countersignature ::= Ieee1609Dot2Data (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.
+> 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.
+> 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 {

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.
+>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.
+> 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 {

ImplicitCertificate ::= CertificateBase (WITH COMPONENTS {

...,

type (implicit),

toBeSigned (WITH COMPONENTS {

type (implicit),

toBeSigned (WITH COMPONENTS {

...,

verifyKeyIndicator (WITH COMPONENTS {reconstructionValue})

verifyKeyIndicator (WITH COMPONENTS {reconstructionValue})

}),

toBeSigned (WITH COMPONENTS {}),

signature ABSENT

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.
+>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 {

ExplicitCertificate ::= CertificateBase (WITH COMPONENTS {

...,

type (explicit),

toBeSigned (WITH COMPONENTS {

type (explicit),

toBeSigned (WITH COMPONENTS {

...,

verifyKeyIndicator (WITH COMPONENTS {verificationKey})

verifyKeyIndicator (WITH COMPONENTS {verificationKey})

}),

toBeSigned (WITH COMPONENTS {}),

signature PRESENT

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.
+>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,

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,

...

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,

...,

flags BIT STRING {cubk (0)} (SIZE (8)) OPTIONAL

} (WITH COMPONENTS {

ToBeSignedCertificate ::= SEQUENCE {} (WITH COMPONENTS {

ToBeSignedCertificate ::= SEQUENCE {} (WITH COMPONENTS {

...,

appPermissions PRESENT

appPermissions PRESENT

} | WITH COMPONENTS {

...,

certIssuePermissions PRESENT

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.
+> 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 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.
+>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 {

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.
+>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)

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.
+>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 {

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.
+>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.
+> 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 {

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.
+>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 {

verificationKey PublicVerificationKey,

reconstructionValue EccP256CurvePoint,

...

}

VerificationKeyIndicator ::= CHOICE {}

VerificationKeyIndicator ::= CHOICE {}

END

Schema File Ieee1609Dot2BaseTypes.asn
Schema File Ieee1609Dot2BaseTypes.asn

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)}

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-3 (3)}

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

-- 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.
+> 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.
+> 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.
+> 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.
+> 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.
+> 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.
+> SequenceOfUint8 ::= SEQUENCE OF Uint8

SequenceOfUint16

This type is used for clarity of definitions.

SequenceOfUint16 ::= SEQUENCE OF Uint16

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.
+> 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.
+> 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.
+> 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.
+> 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.
+> 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))

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.
+> 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.
+> 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 {

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.
+>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 {

microseconds Uint16,

milliseconds Uint16,

seconds Uint16,

minutes Uint16,

hours Uint16,

sixtyHours Uint16,

years Uint16

}

Duration ::= CHOICE {}

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

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 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.
+>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 {

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.
+>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 {

northWest TwoDLocation,

southEast TwoDLocation

}

RectangularRegion ::= SEQUENCE {}

SequenceOfRectangularRegion

This type is used for clarity of definitions.
+>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.
+> 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.
+> 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 {

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.
+>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 {

countryOnly CountryOnly,

countryAndRegions CountryAndRegions,

countryAndSubregions CountryAndSubregions,

...

}

IdentifiedRegion ::= CHOICE {}

SequenceOfIdentifiedRegion

This type is used for clarity of definitions.
+>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).
+> 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.
+> 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 {

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.
+>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 {

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.
+>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 {

region Uint8,

subregions SequenceOfUint16

}

RegionAndSubregions ::= SEQUENCE {}

SequenceOfRegionAndSubregions

This type is used for clarity of definitions.
+>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.
+> 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 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.
+>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.
+> 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.
+> 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.
+> 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)

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.
+>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.
+> 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.
+> 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)

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.
+>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.
+> KnownLongitude ::= OneEightyDegreeInt (min..max)

UnknownLongitude

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

UnknownLongitude ::= OneEightyDegreeInt (unknown)

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,

Signature ::= CHOICE {

ecdsaNistP256Signature EcdsaP256Signature,

ecdsaBrainpoolP256r1Signature EcdsaP256Signature,

...,

ecdsaBrainpoolP384r1Signature EcdsaP384Signature

ecdsaBrainpoolP384r1Signature EcdsaP384Signature,

ecdsaNistP384Signature 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
+>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 {

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
+>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 {

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.
+>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))

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.
+>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))

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.
+>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.
+> 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.
+> 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 {

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.
+>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 {

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.
+>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 {

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.
+>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 {

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.
+>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,

PublicVerificationKey ::= CHOICE {

ecdsaNistP256 EccP256CurvePoint,

ecdsaBrainpoolP256r1 EccP256CurvePoint,

...,

ecdsaBrainpoolP384r1 EccP384CurvePoint

ecdsaBrainpoolP384r1 EccP384CurvePoint,

ecdsaNistP384 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.
+>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 {

aes128Ccm OCTET STRING (SIZE (16)),

...

}

SymmetricEncryptionKey ::= CHOICE {}

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 {

psid Psid,

ssp ServiceSpecificPermissions OPTIONAL

}

PsidSsp ::= SEQUENCE {}

SequenceOfPsidSsp

This type is used for clarity of definitions.
+>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.
+> 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.
+> 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.
+> 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)),

ServiceSpecificPermissions ::= CHOICE {

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

...,

bitmapSsp BitmapSsp

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.
+>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.
+> 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 {

psid Psid,

sspRange SspRange OPTIONAL

}

PsidSspRange ::= SEQUENCE {}

SequenceOfPsidSspRange

This type is used for clarity of definitions.
+>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".
+> 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,

SspRange ::= CHOICE {

opaque SequenceOfOctetString,

all NULL,

...,

bitmapSspRange BitmapSspRange

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.
+>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 {

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

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

}

BitmapSspRange ::= SEQUENCE {}

SequenceOfOctetString

This type is used for clarity of definitions.
+>BitmapSspRange ::= SEQUENCE {}

SequenceOfOctetString

This type is used for clarity of definitions.

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

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.
+> SubjectAssurance ::= OCTET STRING (SIZE (1))

CrlSeries

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

CrlSeries ::= Uint16

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.
+> 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.
+> 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.
+> 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 {

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.
+>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.
+> 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))

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)}

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)

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

stationID StationID

}

ItsPduHeader ::= SEQUENCE {}

ItsPduHeader ::= SEQUENCE {}

StationID ::= INTEGER (0..4294967295)

StationID ::= INTEGER (0..4294967295)

ReferencePosition ::= SEQUENCE {

latitude Latitude,

longitude Longitude,

positionConfidenceEllipse PosConfidenceEllipse,

altitude Altitude

ReferencePosition ::= SEQUENCE {

latitude Latitude,

longitude Longitude,

positionConfidenceEllipse PosConfidenceEllipse,

altitude Altitude

}

ReferencePosition ::= SEQUENCE {}

ReferencePosition ::= SEQUENCE {}

DeltaReferencePosition ::= SEQUENCE {

deltaLatitude DeltaLatitude,

deltaLongitude DeltaLongitude,

deltaAltitude DeltaAltitude

DeltaReferencePosition ::= SEQUENCE {

deltaLatitude DeltaLatitude,

deltaLongitude DeltaLongitude,

deltaAltitude DeltaAltitude

}

DeltaReferencePosition ::= SEQUENCE {}

DeltaReferencePosition ::= SEQUENCE {}

Longitude ::= INTEGER {

oneMicrodegreeEast (10),

oneMicrodegreeWest (-10),

unavailable (1800000001)

Longitude ::= INTEGER {

oneMicrodegreeEast (10),

oneMicrodegreeWest (-10),

unavailable (1800000001)

} (-1800000000..1800000001)

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

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

Latitude ::= INTEGER {

oneMicrodegreeNorth (10),

oneMicrodegreeSouth (-10),

unavailable (900000001)

Latitude ::= INTEGER {

oneMicrodegreeNorth (10),

oneMicrodegreeSouth (-10),

unavailable (900000001)

} (-900000000..900000001)

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

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

Altitude ::= SEQUENCE {

altitudeValue AltitudeValue,

altitudeConfidence AltitudeConfidence

Altitude ::= SEQUENCE {

altitudeValue AltitudeValue,

altitudeConfidence AltitudeConfidence

}

Altitude ::= SEQUENCE {}

Altitude ::= SEQUENCE {}

AltitudeValue ::= INTEGER {

referenceEllipsoidSurface (0),

oneCentimeter (1),

unavailable (800001)

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)

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)

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

DeltaLatitude ::= INTEGER {

oneMicrodegreeNorth (10),

oneMicrodegreeSouth (-10),

unavailable (131072)

DeltaLatitude ::= INTEGER {

oneMicrodegreeNorth (10),

oneMicrodegreeSouth (-10),

unavailable (131072)

} (-131071..131072)

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

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

DeltaAltitude ::= INTEGER {

oneCentimeterUp (1),

oneCentimeterDown (-1),

unavailable (12800)

DeltaAltitude ::= INTEGER {

oneCentimeterUp (1),

oneCentimeterDown (-1),

unavailable (12800)

} (-12700..12800)

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

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

PosConfidenceEllipse ::= SEQUENCE {

semiMajorConfidence SemiAxisLength,

semiMinorConfidence SemiAxisLength,

semiMajorOrientation HeadingValue

PosConfidenceEllipse ::= SEQUENCE {

semiMajorConfidence SemiAxisLength,

semiMinorConfidence SemiAxisLength,

semiMajorOrientation HeadingValue

}

PosConfidenceEllipse ::= SEQUENCE {}

PosConfidenceEllipse ::= SEQUENCE {}

PathPoint ::= SEQUENCE {

pathPosition DeltaReferencePosition,

pathDeltaTime PathDeltaTime OPTIONAL

PathPoint ::= SEQUENCE {

pathPosition DeltaReferencePosition,

pathDeltaTime PathDeltaTime OPTIONAL

}

PathPoint ::= SEQUENCE {}

PathPoint ::= SEQUENCE {}

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

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

PtActivation ::= SEQUENCE {

ptActivationType PtActivationType,

ptActivationData PtActivationData

PtActivation ::= SEQUENCE {

ptActivationType PtActivationType,

ptActivationData PtActivationData

}

PtActivation ::= SEQUENCE {}

PtActivation ::= SEQUENCE {}

PtActivationType ::= INTEGER {

undefinedCodingType (0),

r09-16CodingType (1),

vdv-50149CodingType (2)

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)

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))

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

SemiAxisLength ::= INTEGER {

oneCentimeter (1),

outOfRange (4094),

unavailable (4095)

SemiAxisLength ::= INTEGER {

oneCentimeter (1),

outOfRange (4094),

unavailable (4095)

} (0..4095)

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

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

CauseCode ::= SEQUENCE {

causeCode CauseCodeType,

subCauseCode SubCauseCodeType,

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)

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)

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)

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)

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)

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

HumanPresenceOnTheRoadSubCauseCode ::= INTEGER {

unavailable (0),

childrenOnRoadway (1),

cyclistOnRoadway (2),

motorcyclistOnRoadway (3)

HumanPresenceOnTheRoadSubCauseCode ::= INTEGER {

unavailable (0),

childrenOnRoadway (1),

cyclistOnRoadway (2),

motorcyclistOnRoadway (3)

} (0..255)

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

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

WrongWayDrivingSubCauseCode ::= INTEGER {

unavailable (0),

wrongLane (1),

wrongDirection (2)

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)

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)

AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode ::= INTEGER {} (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)

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-VisibilitySubCauseCode ::= INTEGER {} (0..255)

AdverseWeatherCondition-PrecipitationSubCauseCode ::= INTEGER {

unavailable (0),

heavyRain (1),

heavySnowfall (2),

softHail (3)

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)

AdverseWeatherCondition-PrecipitationSubCauseCode ::= INTEGER {} (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)

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

StationaryVehicleSubCauseCode ::= INTEGER {

unavailable (0),

humanProblem (1),

vehicleBreakdown (2),

postCrash (3),

publicTransportStop (4),

carryingDangerousGoods (5)

} (0..255)

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

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

HumanProblemSubCauseCode ::= INTEGER {

unavailable (0),

glycemiaProblem (1),

heartProblem (2)

HumanProblemSubCauseCode ::= INTEGER {

unavailable (0),

glycemiaProblem (1),

heartProblem (2)

} (0..255)

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

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

EmergencyVehicleApproachingSubCauseCode ::= INTEGER {

unavailable (0),

emergencyVehicleApproaching (1),

prioritizedVehicleApproaching (2)

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)

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)

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)

HazardousLocation-SurfaceConditionSubCauseCode ::= INTEGER {} (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)

HazardousLocation-ObstacleOnTheRoadSubCauseCode ::= INTEGER {} (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)

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

CollisionRiskSubCauseCode ::= INTEGER {

unavailable (0),

longitudinalCollisionRisk (1),

crossingCollisionRisk (2),

lateralCollisionRisk (3),

vulnerableRoadUser (4)

} (0..255)

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

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

SignalViolationSubCauseCode ::= INTEGER {

unavailable (0),

stopSignViolation (1),

trafficLightViolation (2),

turningRegulationViolation (3)

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)

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)

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)

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)

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)

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

PostCrashSubCauseCode ::= INTEGER {

unavailable (0),

accidentWithoutECallTriggered (1),

accidentWithECallManuallyTriggered (2),

accidentWithECallAutomaticallyTriggered (3),

accidentWithECallTriggeredWithoutAccessToCellularNetwork (4)

} (0..255)

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

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

Curvature ::= SEQUENCE {

curvatureValue CurvatureValue,

curvatureConfidence CurvatureConfidence

Curvature ::= SEQUENCE {

curvatureValue CurvatureValue,

curvatureConfidence CurvatureConfidence

}

Curvature ::= SEQUENCE {}

Curvature ::= SEQUENCE {}

CurvatureValue ::= INTEGER {

straight (0),

unavailable (1023)

CurvatureValue ::= INTEGER {

straight (0),

unavailable (1023)

} (-1023..1023)

CurvatureValue ::= INTEGER {} (-1023..1023)

CurvatureValue ::= INTEGER {} (-1023..1023)

CurvatureConfidence ::= ENUMERATED {onePerMeter-0-00002 (0), onePerMeter-0-0001 (1), onePerMeter-0-0005

(2), onePerMeter-0-002 (3), onePerMeter-0-01 (4), onePerMeter-0-1 (5),

outOfRange (6), unavailable (7)}

CurvatureConfidence ::= ENUMERATED {}

CurvatureConfidence ::= ENUMERATED {onePerMeter-0-00002 (0), onePerMeter-0-0001 (1), onePerMeter-0-0005

(2), onePerMeter-0-002 (3), onePerMeter-0-01 (4), onePerMeter-0-1 (5),

outOfRange (6), unavailable (7)}

CurvatureConfidence ::= ENUMERATED {}

CurvatureCalculationMode ::= ENUMERATED {yawRateUsed (0), yawRateNotUsed (1), unavailable (2), ...}

CurvatureCalculationMode ::= ENUMERATED {yawRateUsed (0), yawRateNotUsed (1), unavailable (2), ...}

Heading ::= SEQUENCE {

headingValue HeadingValue,

headingConfidence HeadingConfidence

Heading ::= SEQUENCE {

headingValue HeadingValue,

headingConfidence HeadingConfidence

}

Heading ::= SEQUENCE {}

HeadingValue ::= INTEGER {

wgs84North (0),

wgs84East (900),

wgs84South (1800),

wgs84West (2700),

unavailable (3601)

Heading ::= SEQUENCE {}

HeadingValue ::= INTEGER {

wgs84North (0),

wgs84East (900),

wgs84South (1800),

wgs84West (2700),

unavailable (3601)

} (0..3601)

HeadingValue ::= INTEGER {} (0..3601)

HeadingValue ::= INTEGER {} (0..3601)

HeadingConfidence ::= INTEGER {

equalOrWithinZeroPointOneDegree (1),

equalOrWithinOneDegree (10),

outOfRange (126),

unavailable (127)

HeadingConfidence ::= INTEGER {

equalOrWithinZeroPointOneDegree (1),

equalOrWithinOneDegree (10),

outOfRange (126),

unavailable (127)

} (1..127)

HeadingConfidence ::= INTEGER {} (1..127)

HeadingConfidence ::= INTEGER {} (1..127)

LanePosition ::= INTEGER {

offTheRoad (-1),

hardShoulder (0),

outermostDrivingLane (1),

secondLaneFromOutside (2)

LanePosition ::= INTEGER {

offTheRoad (-1),

hardShoulder (0),

outermostDrivingLane (1),

secondLaneFromOutside (2)

} (-1..14)

LanePosition ::= INTEGER {} (-1..14)

LanePosition ::= INTEGER {} (-1..14)

ClosedLanes ::= SEQUENCE {

innerhardShoulderStatus HardShoulderStatus OPTIONAL,

outerhardShoulderStatus HardShoulderStatus OPTIONAL,

drivingLaneStatus DrivingLaneStatus OPTIONAL,

ClosedLanes ::= SEQUENCE {

innerhardShoulderStatus HardShoulderStatus OPTIONAL,

outerhardShoulderStatus HardShoulderStatus OPTIONAL,

drivingLaneStatus DrivingLaneStatus OPTIONAL,

...

}

ClosedLanes ::= SEQUENCE {}

ClosedLanes ::= SEQUENCE {}

HardShoulderStatus ::= ENUMERATED {availableForStopping (0), closed (1), availableForDriving (2)}

HardShoulderStatus ::= ENUMERATED {availableForStopping (0), closed (1), availableForDriving (2)}

DrivingLaneStatus ::= BIT STRING (SIZE (1..13))

DrivingLaneStatus ::= BIT STRING (SIZE (1..13))

PerformanceClass ::= INTEGER {

unavailable (0),

performanceClassA (1),

performanceClassB (2)

PerformanceClass ::= INTEGER {

unavailable (0),

performanceClassA (1),

performanceClassB (2)

} (0..7)

PerformanceClass ::= INTEGER {} (0..7)

PerformanceClass ::= INTEGER {} (0..7)

SpeedValue ::= INTEGER {

standstill (0),

oneCentimeterPerSec (1),

unavailable (16383)

SpeedValue ::= INTEGER {

standstill (0),

oneCentimeterPerSec (1),

unavailable (16383)

} (0..16383)

SpeedValue ::= INTEGER {} (0..16383)

SpeedValue ::= INTEGER {} (0..16383)

SpeedConfidence ::= INTEGER {

equalOrWithinOneCentimeterPerSec (1),

equalOrWithinOneMeterPerSec (100),

outOfRange (126),

unavailable (127)

SpeedConfidence ::= INTEGER {

equalOrWithinOneCentimeterPerSec (1),

equalOrWithinOneMeterPerSec (100),

outOfRange (126),

unavailable (127)

} (1..127)

SpeedConfidence ::= INTEGER {} (1..127)

SpeedConfidence ::= INTEGER {} (1..127)

VehicleMass ::= INTEGER {

hundredKg (1),

unavailable (1024)

VehicleMass ::= INTEGER {

hundredKg (1),

unavailable (1024)

} (1..1024)

VehicleMass ::= INTEGER {} (1..1024)

VehicleMass ::= INTEGER {} (1..1024)

Speed ::= SEQUENCE {

speedValue SpeedValue,

speedConfidence SpeedConfidence

Speed ::= SEQUENCE {

speedValue SpeedValue,

speedConfidence SpeedConfidence

}

Speed ::= SEQUENCE {}

Speed ::= SEQUENCE {}

DriveDirection ::= ENUMERATED {forward (0), backward (1), unavailable (2)}

DriveDirection ::= ENUMERATED {forward (0), backward (1), unavailable (2)}

EmbarkationStatus ::= BOOLEAN

EmbarkationStatus ::= BOOLEAN

LongitudinalAcceleration ::= SEQUENCE {

longitudinalAccelerationValue LongitudinalAccelerationValue,

longitudinalAccelerationConfidence AccelerationConfidence

LongitudinalAcceleration ::= SEQUENCE {

longitudinalAccelerationValue LongitudinalAccelerationValue,

longitudinalAccelerationConfidence AccelerationConfidence

}

LongitudinalAcceleration ::= SEQUENCE {}

LongitudinalAcceleration ::= SEQUENCE {}

LongitudinalAccelerationValue ::= INTEGER {

pointOneMeterPerSecSquaredForward (1),

pointOneMeterPerSecSquaredBackward (-1),

unavailable (161)

LongitudinalAccelerationValue ::= INTEGER {

pointOneMeterPerSecSquaredForward (1),

pointOneMeterPerSecSquaredBackward (-1),

unavailable (161)

} (-160..161)

LongitudinalAccelerationValue ::= INTEGER {} (-160..161)

LongitudinalAccelerationValue ::= INTEGER {} (-160..161)

AccelerationConfidence ::= INTEGER {

pointOneMeterPerSecSquared (1),

outOfRange (101),

unavailable (102)

AccelerationConfidence ::= INTEGER {

pointOneMeterPerSecSquared (1),

outOfRange (101),

unavailable (102)

} (0..102)

AccelerationConfidence ::= INTEGER {} (0..102)

AccelerationConfidence ::= INTEGER {} (0..102)

LateralAcceleration ::= SEQUENCE {

lateralAccelerationValue LateralAccelerationValue,

lateralAccelerationConfidence AccelerationConfidence

LateralAcceleration ::= SEQUENCE {

lateralAccelerationValue LateralAccelerationValue,

lateralAccelerationConfidence AccelerationConfidence

}

LateralAcceleration ::= SEQUENCE {}

LateralAcceleration ::= SEQUENCE {}

LateralAccelerationValue ::= INTEGER {

pointOneMeterPerSecSquaredToRight (-1),

pointOneMeterPerSecSquaredToLeft (1),

unavailable (161)

LateralAccelerationValue ::= INTEGER {

pointOneMeterPerSecSquaredToRight (-1),

pointOneMeterPerSecSquaredToLeft (1),

unavailable (161)

} (-160..161)

LateralAccelerationValue ::= INTEGER {} (-160..161)

LateralAccelerationValue ::= INTEGER {} (-160..161)

VerticalAcceleration ::= SEQUENCE {

verticalAccelerationValue VerticalAccelerationValue,

verticalAccelerationConfidence AccelerationConfidence

VerticalAcceleration ::= SEQUENCE {

verticalAccelerationValue VerticalAccelerationValue,

verticalAccelerationConfidence AccelerationConfidence

}

VerticalAcceleration ::= SEQUENCE {}

VerticalAcceleration ::= SEQUENCE {}

VerticalAccelerationValue ::= INTEGER {

pointOneMeterPerSecSquaredUp (1),

pointOneMeterPerSecSquaredDown (-1),

unavailable (161)

VerticalAccelerationValue ::= INTEGER {

pointOneMeterPerSecSquaredUp (1),

pointOneMeterPerSecSquaredDown (-1),

unavailable (161)

} (-160..161)

VerticalAccelerationValue ::= INTEGER {} (-160..161)

StationType ::= INTEGER {

unknown (0),

pedestrian (1),

cyclist (2),

moped (3),

motorcycle (4),

passengerCar (5),

bus (6),

lightTruck (7),

heavyTruck (8),

trailer (9),

specialVehicles (10),

tram (11),

roadSideUnit (15)

VerticalAccelerationValue ::= INTEGER {} (-160..161)

StationType ::= INTEGER {

unknown (0),

pedestrian (1),

cyclist (2),

moped (3),

motorcycle (4),

passengerCar (5),

bus (6),

lightTruck (7),

heavyTruck (8),

trailer (9),

specialVehicles (10),

tram (11),

roadSideUnit (15)

} (0..255)

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

ExteriorLights ::= BIT STRING {

lowBeamHeadlightsOn (0),

highBeamHeadlightsOn (1),

leftTurnSignalOn (2),

rightTurnSignalOn (3),

daytimeRunningLightsOn (4),

reverseLightOn (5),

fogLightOn (6),

parkingLightsOn (7)

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

ExteriorLights ::= BIT STRING {

lowBeamHeadlightsOn (0),

highBeamHeadlightsOn (1),

leftTurnSignalOn (2),

rightTurnSignalOn (3),

daytimeRunningLightsOn (4),

reverseLightOn (5),

fogLightOn (6),

parkingLightsOn (7)

} (SIZE (8))

ExteriorLights ::= BIT STRING {} (SIZE (8))

DangerousGoodsBasic ::= ENUMERATED {explosives1 (0), explosives2 (1), explosives3 (2), explosives4 (3),

explosives5 (4), explosives6 (5), flammableGases (6), nonFlammableGases (7),

toxicGases (8), flammableLiquids (9), flammableSolids (10),

substancesLiableToSpontaneousCombustion (11),

substancesEmittingFlammableGasesUponContactWithWater (12), oxidizingSubstances

(13), organicPeroxides (14), toxicSubstances (15), infectiousSubstances

(16), radioactiveMaterial (17), corrosiveSubstances (18),

miscellaneousDangerousSubstances (19)}

DangerousGoodsBasic ::= ENUMERATED {}

DangerousGoodsExtended ::= SEQUENCE {

dangerousGoodsType DangerousGoodsBasic,

unNumber INTEGER (0..9999),

elevatedTemperature BOOLEAN,

tunnelsRestricted BOOLEAN,

limitedQuantity BOOLEAN,

emergencyActionCode IA5String (SIZE (1..24)) OPTIONAL,

phoneNumber PhoneNumber OPTIONAL,

companyName UTF8String (SIZE (1..24)) OPTIONAL,

ExteriorLights ::= BIT STRING {} (SIZE (8))

DangerousGoodsBasic ::= ENUMERATED {explosives1 (0), explosives2 (1), explosives3 (2), explosives4 (3),

explosives5 (4), explosives6 (5), flammableGases (6), nonFlammableGases (7),

toxicGases (8), flammableLiquids (9), flammableSolids (10),

substancesLiableToSpontaneousCombustion (11),

substancesEmittingFlammableGasesUponContactWithWater (12), oxidizingSubstances

(13), organicPeroxides (14), toxicSubstances (15), infectiousSubstances

(16), radioactiveMaterial (17), corrosiveSubstances (18),

miscellaneousDangerousSubstances (19)}

DangerousGoodsBasic ::= ENUMERATED {}

DangerousGoodsExtended ::= SEQUENCE {

dangerousGoodsType DangerousGoodsBasic,

unNumber INTEGER (0..9999),

elevatedTemperature BOOLEAN,

tunnelsRestricted BOOLEAN,

limitedQuantity BOOLEAN,

emergencyActionCode IA5String (SIZE (1..24)) OPTIONAL,

phoneNumber PhoneNumber OPTIONAL,

companyName UTF8String (SIZE (1..24)) OPTIONAL,

...

}

DangerousGoodsExtended ::= SEQUENCE {}

DangerousGoodsExtended ::= SEQUENCE {}

SpecialTransportType ::= BIT STRING {

heavyLoad (0),

excessWidth (1),

excessLength (2),

excessHeight (3)

SpecialTransportType ::= BIT STRING {

heavyLoad (0),

excessWidth (1),

excessLength (2),

excessHeight (3)

} (SIZE (4))

SpecialTransportType ::= BIT STRING {} (SIZE (4))

SpecialTransportType ::= BIT STRING {} (SIZE (4))

LightBarSirenInUse ::= BIT STRING {

lightBarActivated (0),

sirenActivated (1)

LightBarSirenInUse ::= BIT STRING {

lightBarActivated (0),

sirenActivated (1)

} (SIZE (2))

LightBarSirenInUse ::= BIT STRING {} (SIZE (2))

LightBarSirenInUse ::= BIT STRING {} (SIZE (2))

HeightLonCarr ::= INTEGER {

oneCentimeter (1),

unavailable (100)

HeightLonCarr ::= INTEGER {

oneCentimeter (1),

unavailable (100)

} (1..100)

HeightLonCarr ::= INTEGER {} (1..100)

HeightLonCarr ::= INTEGER {} (1..100)

PosLonCarr ::= INTEGER {

oneCentimeter (1),

unavailable (127)

PosLonCarr ::= INTEGER {

oneCentimeter (1),

unavailable (127)

} (1..127)

PosLonCarr ::= INTEGER {} (1..127)

PosLonCarr ::= INTEGER {} (1..127)

PosPillar ::= INTEGER {

tenCentimeters (1),

unavailable (30)

PosPillar ::= INTEGER {

tenCentimeters (1),

unavailable (30)

} (1..30)

PosPillar ::= INTEGER {} (1..30)

PosPillar ::= INTEGER {} (1..30)

PosCentMass ::= INTEGER {

tenCentimeters (1),

unavailable (63)

PosCentMass ::= INTEGER {

tenCentimeters (1),

unavailable (63)

} (1..63)

PosCentMass ::= INTEGER {} (1..63)

PosCentMass ::= INTEGER {} (1..63)

RequestResponseIndication ::= ENUMERATED {request (0), response (1)}

RequestResponseIndication ::= ENUMERATED {request (0), response (1)}

SpeedLimit ::= INTEGER {oneKmPerHour (1)} (1..255)

SpeedLimit ::= INTEGER {oneKmPerHour (1)} (1..255)

StationarySince ::= ENUMERATED {lessThan1Minute (0), lessThan2Minutes (1), lessThan15Minutes (2),

equalOrGreater15Minutes (3)}

StationarySince ::= ENUMERATED {}

StationarySince ::= ENUMERATED {lessThan1Minute (0), lessThan2Minutes (1), lessThan15Minutes (2),

equalOrGreater15Minutes (3)}

StationarySince ::= ENUMERATED {}

Temperature ::= INTEGER {

equalOrSmallerThanMinus60Deg (-60),

oneDegreeCelsius (1),

equalOrGreaterThan67Deg (67)

Temperature ::= INTEGER {

equalOrSmallerThanMinus60Deg (-60),

oneDegreeCelsius (1),

equalOrGreaterThan67Deg (67)

} (-60..67)

Temperature ::= INTEGER {} (-60..67)

Temperature ::= INTEGER {} (-60..67)

TrafficRule ::= ENUMERATED {noPassing (0), noPassingForTrucks (1), passToRight (2), passToLeft

TrafficRule ::= ENUMERATED {noPassing (0), noPassingForTrucks (1), passToRight (2), passToLeft

(3), ...}

TrafficRule ::= ENUMERATED {}

TrafficRule ::= ENUMERATED {}

WheelBaseVehicle ::= INTEGER {

tenCentimeters (1),

unavailable (127)

WheelBaseVehicle ::= INTEGER {

tenCentimeters (1),

unavailable (127)

} (1..127)

WheelBaseVehicle ::= INTEGER {} (1..127)

WheelBaseVehicle ::= INTEGER {} (1..127)

TurningRadius ::= INTEGER {

point4Meters (1),

unavailable (255)

TurningRadius ::= INTEGER {

point4Meters (1),

unavailable (255)

} (1..255)

TurningRadius ::= INTEGER {} (1..255)

TurningRadius ::= INTEGER {} (1..255)

PosFrontAx ::= INTEGER {

tenCentimeters (1),

unavailable (20)

PosFrontAx ::= INTEGER {

tenCentimeters (1),

unavailable (20)

} (1..20)

PosFrontAx ::= INTEGER {} (1..20)

PositionOfOccupants ::= BIT STRING {

row1LeftOccupied (0),

row1RightOccupied (1),

row1MidOccupied (2),

row1NotDetectable (3),

row1NotPresent (4),

row2LeftOccupied (5),

row2RightOccupied (6),

row2MidOccupied (7),

row2NotDetectable (8),

row2NotPresent (9),

row3LeftOccupied (10),

row3RightOccupied (11),

row3MidOccupied (12),

row3NotDetectable (13),

row3NotPresent (14),

row4LeftOccupied (15),

row4RightOccupied (16),

row4MidOccupied (17),

row4NotDetectable (18),

row4NotPresent (19)

PosFrontAx ::= INTEGER {} (1..20)

PositionOfOccupants ::= BIT STRING {

row1LeftOccupied (0),

row1RightOccupied (1),

row1MidOccupied (2),

row1NotDetectable (3),

row1NotPresent (4),

row2LeftOccupied (5),

row2RightOccupied (6),

row2MidOccupied (7),

row2NotDetectable (8),

row2NotPresent (9),

row3LeftOccupied (10),

row3RightOccupied (11),

row3MidOccupied (12),

row3NotDetectable (13),

row3NotPresent (14),

row4LeftOccupied (15),

row4RightOccupied (16),

row4MidOccupied (17),

row4NotDetectable (18),

row4NotPresent (19)

} (SIZE (20))

PositionOfOccupants ::= BIT STRING {} (SIZE (20))

PositionOfOccupants ::= BIT STRING {} (SIZE (20))

PositioningSolutionType ::= ENUMERATED {noPositioningSolution (0), sGNSS (1), dGNSS (2), sGNSSplusDR (3),

dGNSSplusDR (4), dR (5), ...}

PositioningSolutionType ::= ENUMERATED {}

PositioningSolutionType ::= ENUMERATED {noPositioningSolution (0), sGNSS (1), dGNSS (2), sGNSSplusDR (3),

dGNSSplusDR (4), dR (5), ...}

PositioningSolutionType ::= ENUMERATED {}

VehicleIdentification ::= SEQUENCE {

wMInumber WMInumber OPTIONAL,

vDS VDS OPTIONAL,

VehicleIdentification ::= SEQUENCE {

wMInumber WMInumber OPTIONAL,

vDS VDS OPTIONAL,

...

}

VehicleIdentification ::= SEQUENCE {}

VehicleIdentification ::= SEQUENCE {}

WMInumber ::= IA5String (SIZE (1..3))

WMInumber ::= IA5String (SIZE (1..3))

VDS ::= IA5String (SIZE (6))

VDS ::= IA5String (SIZE (6))

EnergyStorageType ::= BIT STRING {

hydrogenStorage (0),

electricEnergyStorage (1),

liquidPropaneGas (2),

compressedNaturalGas (3),

diesel (4),

gasoline (5),

ammonia (6)

EnergyStorageType ::= BIT STRING {

hydrogenStorage (0),

electricEnergyStorage (1),

liquidPropaneGas (2),

compressedNaturalGas (3),

diesel (4),

gasoline (5),

ammonia (6)

} (SIZE (7))

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

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

VehicleLength ::= SEQUENCE {

vehicleLengthValue VehicleLengthValue,

vehicleLengthConfidenceIndication VehicleLengthConfidenceIndication

VehicleLength ::= SEQUENCE {

vehicleLengthValue VehicleLengthValue,

vehicleLengthConfidenceIndication VehicleLengthConfidenceIndication

}

VehicleLength ::= SEQUENCE {}

VehicleLength ::= SEQUENCE {}

VehicleLengthValue ::= INTEGER {

tenCentimeters (1),

outOfRange (1022),

unavailable (1023)

VehicleLengthValue ::= INTEGER {

tenCentimeters (1),

outOfRange (1022),

unavailable (1023)

} (1..1023)

VehicleLengthValue ::= INTEGER {} (1..1023)

VehicleLengthValue ::= INTEGER {} (1..1023)

VehicleLengthConfidenceIndication ::= ENUMERATED {noTrailerPresent (0), trailerPresentWithKnownLength (1),

trailerPresentWithUnknownLength (2), trailerPresenceIsUnknown (3), unavailable

VehicleLengthConfidenceIndication ::= ENUMERATED {noTrailerPresent (0), trailerPresentWithKnownLength (1),

trailerPresentWithUnknownLength (2), trailerPresenceIsUnknown (3), unavailable

(4)}

VehicleLengthConfidenceIndication ::= ENUMERATED {}

VehicleLengthConfidenceIndication ::= ENUMERATED {}

VehicleWidth ::= INTEGER {

tenCentimeters (1),

outOfRange (61),

unavailable (62)

VehicleWidth ::= INTEGER {

tenCentimeters (1),

outOfRange (61),

unavailable (62)

} (1..62)

VehicleWidth ::= INTEGER {} (1..62)

VehicleWidth ::= INTEGER {} (1..62)

PathHistory ::= SEQUENCE (SIZE (0..40)) OF PathPoint

PathHistory ::= SEQUENCE (SIZE (0..40)) OF PathPoint

EmergencyPriority ::= BIT STRING {

requestForRightOfWay (0),

requestForFreeCrossingAtATrafficLight (1)

EmergencyPriority ::= BIT STRING {

requestForRightOfWay (0),

requestForFreeCrossingAtATrafficLight (1)

} (SIZE (2))

EmergencyPriority ::= BIT STRING {} (SIZE (2))

EmergencyPriority ::= BIT STRING {} (SIZE (2))

InformationQuality ::= INTEGER {

unavailable (0),

lowest (1),

highest (7)

InformationQuality ::= INTEGER {

unavailable (0),

lowest (1),

highest (7)

} (0..7)

InformationQuality ::= INTEGER {} (0..7)

InformationQuality ::= INTEGER {} (0..7)

RoadType ::= ENUMERATED {urban-NoStructuralSeparationToOppositeLanes (0),

urban-WithStructuralSeparationToOppositeLanes (1),

nonUrban-NoStructuralSeparationToOppositeLanes (2),

nonUrban-WithStructuralSeparationToOppositeLanes (3)}

RoadType ::= ENUMERATED {}

RoadType ::= ENUMERATED {urban-NoStructuralSeparationToOppositeLanes (0),

urban-WithStructuralSeparationToOppositeLanes (1),

nonUrban-NoStructuralSeparationToOppositeLanes (2),

nonUrban-WithStructuralSeparationToOppositeLanes (3)}

RoadType ::= ENUMERATED {}

SteeringWheelAngle ::= SEQUENCE {

steeringWheelAngleValue SteeringWheelAngleValue,

steeringWheelAngleConfidence SteeringWheelAngleConfidence

SteeringWheelAngle ::= SEQUENCE {

steeringWheelAngleValue SteeringWheelAngleValue,

steeringWheelAngleConfidence SteeringWheelAngleConfidence

}

SteeringWheelAngle ::= SEQUENCE {}

SteeringWheelAngle ::= SEQUENCE {}

SteeringWheelAngleValue ::= INTEGER {

straight (0),

onePointFiveDegreesToRight (-1),

onePointFiveDegreesToLeft (1),

unavailable (512)

SteeringWheelAngleValue ::= INTEGER {

straight (0),

onePointFiveDegreesToRight (-1),

onePointFiveDegreesToLeft (1),

unavailable (512)

} (-511..512)

SteeringWheelAngleValue ::= INTEGER {} (-511..512)

SteeringWheelAngleValue ::= INTEGER {} (-511..512)

SteeringWheelAngleConfidence ::= INTEGER {

equalOrWithinOnePointFiveDegree (1),

outOfRange (126),

unavailable (127)

SteeringWheelAngleConfidence ::= INTEGER {

equalOrWithinOnePointFiveDegree (1),

outOfRange (126),

unavailable (127)

} (1..127)

SteeringWheelAngleConfidence ::= INTEGER {} (1..127)

SteeringWheelAngleConfidence ::= INTEGER {} (1..127)

TimestampIts ::= INTEGER {

utcStartOf2004 (0),

oneMillisecAfterUTCStartOf2004 (1)

TimestampIts ::= INTEGER {

utcStartOf2004 (0),

oneMillisecAfterUTCStartOf2004 (1)

} (0..4398046511103)

TimestampIts ::= INTEGER {} (0..4398046511103)

TimestampIts ::= INTEGER {} (0..4398046511103)

VehicleRole ::= ENUMERATED {default (0), publicTransport (1), specialTransport (2),

dangerousGoods (3), roadWork (4), rescue (5), emergency (6), safetyCar (7),

agriculture (8), commercial (9), military (10), roadOperator (11), taxi (12),

reserved1 (13), reserved2 (14), reserved3 (15)}

VehicleRole ::= ENUMERATED {}

VehicleRole ::= ENUMERATED {default (0), publicTransport (1), specialTransport (2),

dangerousGoods (3), roadWork (4), rescue (5), emergency (6), safetyCar (7),

agriculture (8), commercial (9), military (10), roadOperator (11), taxi (12),

reserved1 (13), reserved2 (14), reserved3 (15)}

VehicleRole ::= ENUMERATED {}

YawRate ::= SEQUENCE {

yawRateValue YawRateValue,

yawRateConfidence YawRateConfidence

YawRate ::= SEQUENCE {

yawRateValue YawRateValue,

yawRateConfidence YawRateConfidence

}

YawRate ::= SEQUENCE {}

YawRate ::= SEQUENCE {}

YawRateValue ::= INTEGER {

straight (0),

degSec-000-01ToRight (-1),

degSec-000-01ToLeft (1),

unavailable (32767)

YawRateValue ::= INTEGER {

straight (0),

degSec-000-01ToRight (-1),

degSec-000-01ToLeft (1),

unavailable (32767)

} (-32766..32767)

YawRateValue ::= INTEGER {} (-32766..32767)

YawRateValue ::= INTEGER {} (-32766..32767)

YawRateConfidence ::= ENUMERATED {degSec-000-01 (0), degSec-000-05 (1), degSec-000-10 (2),

degSec-001-00 (3), degSec-005-00 (4), degSec-010-00 (5), degSec-100-00 (6),

outOfRange (7), unavailable (8)}

YawRateConfidence ::= ENUMERATED {}

YawRateConfidence ::= ENUMERATED {degSec-000-01 (0), degSec-000-05 (1), degSec-000-10 (2),

degSec-001-00 (3), degSec-005-00 (4), degSec-010-00 (5), degSec-100-00 (6),

outOfRange (7), unavailable (8)}

YawRateConfidence ::= ENUMERATED {}

ProtectedZoneType ::= ENUMERATED {permanentCenDsrcTolling (0), ..., temporaryCenDsrcTolling (1)}

ProtectedZoneType ::= ENUMERATED {permanentCenDsrcTolling (0), ..., temporaryCenDsrcTolling (1)}

RelevanceDistance ::= ENUMERATED {lessThan50m (0), lessThan100m (1), lessThan200m (2), lessThan500m

(3), lessThan1000m (4), lessThan5km (5), lessThan10km (6), over10km (7)}

RelevanceDistance ::= ENUMERATED {}

RelevanceDistance ::= ENUMERATED {lessThan50m (0), lessThan100m (1), lessThan200m (2), lessThan500m

(3), lessThan1000m (4), lessThan5km (5), lessThan10km (6), over10km (7)}

RelevanceDistance ::= ENUMERATED {}

RelevanceTrafficDirection ::= ENUMERATED {allTrafficDirections (0), upstreamTraffic (1), downstreamTraffic

(2), oppositeTraffic (3)}

RelevanceTrafficDirection ::= ENUMERATED {}

RelevanceTrafficDirection ::= ENUMERATED {allTrafficDirections (0), upstreamTraffic (1), downstreamTraffic

(2), oppositeTraffic (3)}

RelevanceTrafficDirection ::= ENUMERATED {}

TransmissionInterval ::= INTEGER {

oneMilliSecond (1),

tenSeconds (10000)

TransmissionInterval ::= INTEGER {

oneMilliSecond (1),

tenSeconds (10000)

} (1..10000)

TransmissionInterval ::= INTEGER {} (1..10000)

TransmissionInterval ::= INTEGER {} (1..10000)

ValidityDuration ::= INTEGER {

timeOfDetection (0),

oneSecondAfterDetection (1)

ValidityDuration ::= INTEGER {

timeOfDetection (0),

oneSecondAfterDetection (1)

} (0..86400)

ValidityDuration ::= INTEGER {} (0..86400)

ValidityDuration ::= INTEGER {} (0..86400)

ActionID ::= SEQUENCE {

originatingStationID StationID,

sequenceNumber SequenceNumber

ActionID ::= SEQUENCE {

originatingStationID StationID,

sequenceNumber SequenceNumber

}

ActionID ::= SEQUENCE {}

ActionID ::= SEQUENCE {}

ItineraryPath ::= SEQUENCE SIZE (1..40) OF ReferencePosition

ItineraryPath ::= SEQUENCE SIZE (1..40) OF ReferencePosition

ProtectedCommunicationZone ::= SEQUENCE {

protectedZoneType ProtectedZoneType,

expiryTime TimestampIts OPTIONAL,

protectedZoneLatitude Latitude,

protectedZoneLongitude Longitude,

protectedZoneRadius ProtectedZoneRadius OPTIONAL,

protectedZoneID ProtectedZoneID OPTIONAL,

ProtectedCommunicationZone ::= SEQUENCE {

protectedZoneType ProtectedZoneType,

expiryTime TimestampIts OPTIONAL,

protectedZoneLatitude Latitude,

protectedZoneLongitude Longitude,

protectedZoneRadius ProtectedZoneRadius OPTIONAL,

protectedZoneID ProtectedZoneID OPTIONAL,

...

}

ProtectedCommunicationZone ::= SEQUENCE {}

ProtectedCommunicationZone ::= SEQUENCE {}

Traces ::= SEQUENCE SIZE (1..7) OF PathHistory

Traces ::= SEQUENCE SIZE (1..7) OF PathHistory

NumberOfOccupants ::= INTEGER {

oneOccupant (1),

unavailable (127)

NumberOfOccupants ::= INTEGER {

oneOccupant (1),

unavailable (127)

} (0..127)

NumberOfOccupants ::= INTEGER {} (0..127)

NumberOfOccupants ::= INTEGER {} (0..127)

SequenceNumber ::= INTEGER (0..65535)

SequenceNumber ::= INTEGER (0..65535)

PositionOfPillars ::= SEQUENCE (SIZE (1..3, ...)) OF PosPillar

PositionOfPillars ::= SEQUENCE (SIZE (1..3, ...)) OF PosPillar

RestrictedTypes ::= SEQUENCE (SIZE (1..3, ...)) OF StationType

RestrictedTypes ::= SEQUENCE (SIZE (1..3, ...)) OF StationType

EventHistory ::= SEQUENCE (SIZE (1..23)) OF EventPoint

EventHistory ::= SEQUENCE (SIZE (1..23)) OF EventPoint

EventPoint ::= SEQUENCE {

eventPosition DeltaReferencePosition,

eventDeltaTime PathDeltaTime OPTIONAL,

informationQuality InformationQuality

EventPoint ::= SEQUENCE {

eventPosition DeltaReferencePosition,

eventDeltaTime PathDeltaTime OPTIONAL,

informationQuality InformationQuality

}

EventPoint ::= SEQUENCE {}

EventPoint ::= SEQUENCE {}

ProtectedCommunicationZonesRSU ::= SEQUENCE (SIZE (1..16)) OF ProtectedCommunicationZone

ProtectedCommunicationZonesRSU ::= SEQUENCE (SIZE (1..16)) OF ProtectedCommunicationZone

CenDsrcTollingZone ::= SEQUENCE {

protectedZoneLatitude Latitude,

protectedZoneLongitude Longitude,

cenDsrcTollingZoneID CenDsrcTollingZoneID OPTIONAL,

CenDsrcTollingZone ::= SEQUENCE {

protectedZoneLatitude Latitude,

protectedZoneLongitude Longitude,

cenDsrcTollingZoneID CenDsrcTollingZoneID OPTIONAL,

...

}

CenDsrcTollingZone ::= SEQUENCE {}

CenDsrcTollingZone ::= SEQUENCE {}

ProtectedZoneRadius ::= INTEGER {oneMeter (1)} (1..255, ...)

ProtectedZoneRadius ::= INTEGER {oneMeter (1)} (1..255, ...)

ProtectedZoneID ::= INTEGER (0..134217727)

ProtectedZoneID ::= INTEGER (0..134217727)

CenDsrcTollingZoneID ::= ProtectedZoneID

CenDsrcTollingZoneID ::= ProtectedZoneID

DigitalMap ::= SEQUENCE (SIZE (1..256)) OF ReferencePosition

DigitalMap ::= SEQUENCE (SIZE (1..256)) OF ReferencePosition

OpeningDaysHours ::= UTF8String

OpeningDaysHours ::= UTF8String

PhoneNumber ::= NumericString (SIZE (1..16))

PhoneNumber ::= NumericString (SIZE (1..16))

END

ITS-ContainerEND

+>ITS-ContainerEND -- GitLab From c1bb5a22bb4409969174713c353ba610f936f939 Mon Sep 17 00:00:00 2001 From: Virendra Kumar Date: Mon, 24 Jan 2022 21:51:34 -0500 Subject: [PATCH 11/66] Removed all @class statements to be consistent with the new documentation style --- EtsiTs103759.asn | 45 ------------------------------ EtsiTs103759AsrAppAgnostic.asn | 2 -- EtsiTs103759AsrBsm.asn | 15 ---------- EtsiTs103759AsrCam.asn | 6 ---- EtsiTs103759AsrDenm.asn | 2 -- EtsiTs103759CommonObservations.asn | 40 -------------------------- 6 files changed, 110 deletions(-) diff --git a/EtsiTs103759.asn b/EtsiTs103759.asn index ead503d..0db9f5c 100755 --- a/EtsiTs103759.asn +++ b/EtsiTs103759.asn @@ -55,8 +55,6 @@ WITH SUCCESSORS ; /** - * @class EtsiTs103759Data - * * @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. * @@ -78,8 +76,6 @@ EtsiTs103759Data ::= SEQUENCE { } /** - * @class EtsiTs103759Data-SignedAndEncrypted-Unicast - * * @brief This structure is the SPDU used to send a signed and encrypted * EtsiTs103759Data to the MA. For the signature to be valid the signing * certificate shall conform to the authorization ticket profile given in @@ -94,8 +90,6 @@ EtsiTs103759Data-SignedAndEncrypted-Unicast ::= } /** - * @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. @@ -111,8 +105,6 @@ AidSpecificReport ::= SEQUENCE { } /** - * @class C-ASR - * * @brief This data type defines the IOC for AidSpecificReport. * * @param aid contains the globally unique reference identifier of an @@ -128,8 +120,6 @@ C-ASR ::= CLASS { } 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. * @@ -143,8 +133,6 @@ SetAsr C-ASR ::= { } /** - * @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 @@ -153,28 +141,22 @@ SetAsr C-ASR ::= { 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 @@ -205,7 +187,6 @@ TemplateAsr { } /** - * @class ObservationsByTarget * @brief This data type contains all of the observations related to a * particular "target" property, e.g., speed or security. * @@ -223,16 +204,12 @@ ObservationsByTarget {C-ASR-OBS-BY-TGT: SetAsrObsByTgt} ::= SEQUENCE { } /** - * @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 @@ -250,16 +227,12 @@ MbSingleObservation {C-ASR-SINGLE-OBS: SetMbSingleObs} ::= SEQUENCE { } /** - * @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 @@ -297,16 +270,12 @@ V2xPduStream ::= SEQUENCE { } /** - * @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 ::= { @@ -317,8 +286,6 @@ SetObsPdu C-OBS-PDU ::= { } /** - * @class IdObsPdu - * * @brief This data type contains the identifier of the type of observed PDU. */ IdObsPdu ::= Uint8 @@ -328,8 +295,6 @@ 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. @@ -337,8 +302,6 @@ c-ObsPdu-wsmp IdObsPdu ::= 3 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. @@ -346,8 +309,6 @@ ObsPduEtsiGn ::= Opaque 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. @@ -355,8 +316,6 @@ ObsPduIeee1609Dot2Data ::= Opaque ObsPduWsmp ::= Opaque /** - * @class NonV2xPduEvidenceItem - * * @brief This data type contains evidence, which may be referenced by one or * more observations. * @@ -370,8 +329,6 @@ NonV2xPduEvidenceItem {C-ASR-EV: SetMbEv} ::= SEQUENCE { } /** - * @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. @@ -379,8 +336,6 @@ NonV2xPduEvidenceItem {C-ASR-EV: SetMbEv} ::= SEQUENCE { 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. diff --git a/EtsiTs103759AsrAppAgnostic.asn b/EtsiTs103759AsrAppAgnostic.asn index 5887bd2..ccd456c 100755 --- a/EtsiTs103759AsrAppAgnostic.asn +++ b/EtsiTs103759AsrAppAgnostic.asn @@ -7,8 +7,6 @@ DEFINITIONS AUTOMATIC TAGS ::= BEGIN EXPORTS ALL; /** - * @class AsrAppAgnostic - * * @brief This data type is defined as NULL for this version of the standard. */ AsrAppAgnostic ::= NULL diff --git a/EtsiTs103759AsrBsm.asn b/EtsiTs103759AsrBsm.asn index 215b8e0..5cdfd82 100644 --- a/EtsiTs103759AsrBsm.asn +++ b/EtsiTs103759AsrBsm.asn @@ -55,33 +55,22 @@ c-BsmTgt-LongAccCommon IdBsmTgt ::= 5 */ /** - * @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, @@ -89,8 +78,6 @@ SetMbObsLongAcc-Bsm C-ASR-SINGLE-OBS ::= { } /** - * @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. @@ -106,8 +93,6 @@ SetMbObsTgtsBsm C-ASR-OBS-BY-TGT ::= { } /** - * @class SetMbEvBsm - * * @brief This data type defines the IOS for BSM Evidence */ SetMbEvBsm C-ASR-EV ::= { diff --git a/EtsiTs103759AsrCam.asn b/EtsiTs103759AsrCam.asn index 524e6ad..3fa2c97 100755 --- a/EtsiTs103759AsrCam.asn +++ b/EtsiTs103759AsrCam.asn @@ -38,8 +38,6 @@ WITH SUCCESSORS ; /** - * @class AsrCam - * * @brief This data type is for reporting CAM issues. */ AsrCam ::= TemplateAsr {{SetMbObsTgtsCam}, {SetMbEvCam}} @@ -56,8 +54,6 @@ 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. * @@ -184,8 +180,6 @@ SetMbObsTgtsCam C-ASR-OBS-BY-TGT ::= { } /** - * @class SetMbEvCam - * * @brief This data type defines the IOS for CAM Evidence. */ SetMbEvCam C-ASR-EV ::= { diff --git a/EtsiTs103759AsrDenm.asn b/EtsiTs103759AsrDenm.asn index a3a5ad6..c151a00 100755 --- a/EtsiTs103759AsrDenm.asn +++ b/EtsiTs103759AsrDenm.asn @@ -7,8 +7,6 @@ DEFINITIONS AUTOMATIC TAGS ::= BEGIN EXPORTS ALL; /** - * @class AsrDenm - * * @brief This data type is defined as NULL for this version of the standard. */ AsrDenm ::= NULL diff --git a/EtsiTs103759CommonObservations.asn b/EtsiTs103759CommonObservations.asn index 89c4e1c..80e074d 100644 --- a/EtsiTs103759CommonObservations.asn +++ b/EtsiTs103759CommonObservations.asn @@ -23,8 +23,6 @@ WITH SUCCESSORS ; /** - * @class IdMbObs - * * @brief Identifier type for observations: synonym for Uint8 */ IdMbObs ::= Uint8 @@ -34,8 +32,6 @@ IdMbObs ::= Uint8 */ /** - * @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 @@ -75,8 +71,6 @@ SetMbObsCompleteBeacon C-ASR-SINGLE-OBS ::= { */ /** - * @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. @@ -115,8 +109,6 @@ SetMbObsCompleteStatic C-ASR-SINGLE-OBS ::= { */ /** - * @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. @@ -137,8 +129,6 @@ SetMbObsCompleteStatic C-ASR-SINGLE-OBS ::= { 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. @@ -159,8 +149,6 @@ Security-MessageIdIncWithHeaderInfo ::= NULL 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. @@ -181,8 +169,6 @@ Security-HeaderIncWithSecurityProfile ::= NULL 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. @@ -203,8 +189,6 @@ Security-HeaderPsidIncWithCertificate ::= NULL 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 @@ -226,8 +210,6 @@ Security-MessageIncWithSsp ::= NULL 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. @@ -248,8 +230,6 @@ Security-HeaderTimeOutsideCertificateValidity ::= NULL 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 @@ -334,8 +314,6 @@ SetMbObsCompleteSecurity C-ASR-SINGLE-OBS ::= { */ /* - * @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. @@ -356,8 +334,6 @@ SetMbObsCompleteSecurity C-ASR-SINGLE-OBS ::= { 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) @@ -387,8 +363,6 @@ Pos-IncWithPrev-TooFar ::= SEQUENCE { } /** - * @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. @@ -437,8 +411,6 @@ SetMbObsEtsiOnlyPosition C-ASR-SINGLE-OBS ::= { */ /* - * @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 @@ -469,8 +441,6 @@ Speed-ValueTooLarge-ThresholdNoContext ::= SEQUENCE { } /** - * @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. @@ -490,8 +460,6 @@ Speed-ValueTooLarge-ThresholdNoContext ::= SEQUENCE { 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. @@ -511,8 +479,6 @@ Speed-ValueTooLarge-VehicleType ::= NULL 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. @@ -570,8 +536,6 @@ SetMbObsEtsiOnlySpeed C-ASR-SINGLE-OBS ::= { */ /* - * @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 @@ -603,8 +567,6 @@ LongAcc-ValueTooLarge-ThresholdNoContext ::= SEQUENCE { } /* - * @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 @@ -625,8 +587,6 @@ LongAcc-ValueTooLarge-ThresholdNoContext ::= SEQUENCE { 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. -- GitLab From 9923df9b77d84c1fdbb408527b52e5c7b98e0aaa Mon Sep 17 00:00:00 2001 From: Virendra Kumar Date: Mon, 24 Jan 2022 22:43:18 -0500 Subject: [PATCH 12/66] Added a colon after @param to be consistent with the new documentation convention --- EtsiTs103759.asn | 693 ++++++++++++++--------------- EtsiTs103759AsrAppAgnostic.asn | 26 +- EtsiTs103759AsrCam.asn | 376 ++++++++-------- EtsiTs103759AsrDenm.asn | 26 +- EtsiTs103759CommonObservations.asn | 6 +- 5 files changed, 563 insertions(+), 564 deletions(-) diff --git a/EtsiTs103759.asn b/EtsiTs103759.asn index 0db9f5c..cc7e272 100755 --- a/EtsiTs103759.asn +++ b/EtsiTs103759.asn @@ -1,348 +1,347 @@ -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 - EtsiTs103097Data-SignedAndEncrypted-Unicast -FROM EtsiTs103097Module {itu-t(0) identified-organization(4) etsi(0) - itsDomain(5) wg5(5) secHeaders(103097) core(1) major-version-3(3) - minor-version-1(1)} -WITH SUCCESSORS - - 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-4(4)} -WITH SUCCESSORS - - 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-3(3)} -WITH SUCCESSORS - - 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)} -WITH SUCCESSORS - - 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)} -WITH SUCCESSORS - - 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)} -WITH SUCCESSORS - - 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)} -WITH SUCCESSORS -; - -/** - * @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. - */ -EtsiTs103759Data ::= SEQUENCE { - version Uint8, - generationTime Time64, - observationLocation ThreeDLocation, - report AidSpecificReport -} - -/** - * @brief This structure is the SPDU used to send a signed and encrypted - * EtsiTs103759Data to the MA. For the signature to be valid the signing - * certificate shall conform to the authorization ticket profile given in - * clause 7.2.1 of ETSI TS 103 097 v2.1.1, where the appPermissions field in - * the authorization ticket allows signing misbehaviour reports. The signed - * EtsiTs103759Data shall be encrypted to the MA using the encryptionKey in - * the MA's certificate. - */ -EtsiTs103759Data-SignedAndEncrypted-Unicast ::= - EtsiTs103097Data-SignedAndEncrypted-Unicast { - EtsiTs103759Data -} - -/** - * @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}) -} - -/** - * @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} - -/** - * @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}, - ... -} - -/** - * @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 - -/** - * @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 - -/** - * @brief This data type contains the ITS-AID of the CA service. - */ -c-AsrCam Psid ::= 36 - -/** - * @brief This data type contains the ITS-AID of the DEN service. - */ -c-AsrDenm Psid ::= 37 - -/** - * @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}} -} - -/** - * @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}) -} - -/** - * @brief This is the Information Object Class used to define observations- - * -by-target. - */ -C-ASR-OBS-BY-TGT ::= C-2ENT - -/** - * @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}) -} - -/** - * @brief This is the Information Object Class used to define single - * observations. - */ -C-ASR-SINGLE-OBS ::= C-2ENT - -/** - * @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, - ... -} - -/** - * @brief This is the Information Object Class used to define different types - * of observed PDUs. - */ -C-OBS-PDU ::= C-2ENT - -/** - * @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}, - ... -} - -/** - * @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 - -/** - * @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 - -/** - * @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 - -/** - * @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 - -/** - * @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}) -} - -/** - * @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 - -/** - * @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} - +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 + EtsiTs103097Data-SignedAndEncrypted-Unicast +FROM EtsiTs103097Module {itu-t(0) identified-organization(4) etsi(0) + itsDomain(5) wg5(5) secHeaders(103097) core(1) major-version-3(3) + minor-version-1(1)} +WITH SUCCESSORS + + 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-4(4)} +WITH SUCCESSORS + + 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-3(3)} +WITH SUCCESSORS + + 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)} +WITH SUCCESSORS + + 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)} +WITH SUCCESSORS + + 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)} +WITH SUCCESSORS + + 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)} +WITH SUCCESSORS +; + +/** + * @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. + */ +EtsiTs103759Data ::= SEQUENCE { + version Uint8, + generationTime Time64, + observationLocation ThreeDLocation, + report AidSpecificReport +} + +/** + * @brief This structure is the SPDU used to send a signed and encrypted + * EtsiTs103759Data to the MA. For the signature to be valid the signing + * certificate shall conform to the authorization ticket profile given in + * clause 7.2.1 of ETSI TS 103 097 v2.1.1, where the appPermissions field in + * the authorization ticket allows signing misbehaviour reports. The signed + * EtsiTs103759Data shall be encrypted to the MA using the encryptionKey in + * the MA's certificate. + */ +EtsiTs103759Data-SignedAndEncrypted-Unicast ::= + EtsiTs103097Data-SignedAndEncrypted-Unicast { + EtsiTs103759Data +} + +/** + * @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}) +} + +/** + * @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} + +/** + * @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}, + ... +} + +/** + * @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 + +/** + * @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 + +/** + * @brief This data type contains the ITS-AID of the CA service. + */ +c-AsrCam Psid ::= 36 + +/** + * @brief This data type contains the ITS-AID of the DEN service. + */ +c-AsrDenm Psid ::= 37 + +/** + * @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}} +} + +/** + * @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}) +} + +/** + * @brief This is the Information Object Class used to define observations- + * -by-target. + */ +C-ASR-OBS-BY-TGT ::= C-2ENT + +/** + * @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}) +} + +/** + * @brief This is the Information Object Class used to define single + * observations. + */ +C-ASR-SINGLE-OBS ::= C-2ENT + +/** + * @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, + ... +} + +/** + * @brief This is the Information Object Class used to define different types + * of observed PDUs. + */ +C-OBS-PDU ::= C-2ENT + +/** + * @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}, + ... +} + +/** + * @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 + +/** + * @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 + +/** + * @brief 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 + +/** + * @brief 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 + +/** + * @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}) +} + +/** + * @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 + +/** + * @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 \ No newline at end of file diff --git a/EtsiTs103759AsrAppAgnostic.asn b/EtsiTs103759AsrAppAgnostic.asn index ccd456c..bdeef50 100755 --- a/EtsiTs103759AsrAppAgnostic.asn +++ b/EtsiTs103759AsrAppAgnostic.asn @@ -1,14 +1,14 @@ -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; - -/** - * @brief This data type is defined as NULL for this version of the standard. - */ -AsrAppAgnostic ::= NULL - +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; + +/** + * @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/EtsiTs103759AsrCam.asn b/EtsiTs103759AsrCam.asn index 3fa2c97..7b80bf7 100755 --- a/EtsiTs103759AsrCam.asn +++ b/EtsiTs103759AsrCam.asn @@ -1,189 +1,189 @@ -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)} -WITH SUCCESSORS - - 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)} -WITH SUCCESSORS - - 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-3(3)} -WITH SUCCESSORS -; - -/** - * @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 - -/** - * @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}, - ... -} - -/** - * @brief This data type defines the IOS for CAM Evidence. - */ -SetMbEvCam C-ASR-EV ::= { - ... -} - +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)} +WITH SUCCESSORS + + 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)} +WITH SUCCESSORS + + 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-3(3)} +WITH SUCCESSORS +; + +/** + * @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 + +/** + * @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}, + ... +} + +/** + * @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 index c151a00..ea9f6ee 100755 --- a/EtsiTs103759AsrDenm.asn +++ b/EtsiTs103759AsrDenm.asn @@ -1,14 +1,14 @@ -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; - -/** - * @brief This data type is defined as NULL for this version of the standard. - */ -AsrDenm ::= NULL - +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; + +/** + * @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 index 80e074d..6fc5261 100644 --- a/EtsiTs103759CommonObservations.asn +++ b/EtsiTs103759CommonObservations.asn @@ -353,7 +353,7 @@ Pos-IncWithPrev-TooSmall ::= NULL * to support this observation. * * - * @param gpsDrift This is the maximum amount of difference in position + * @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. @@ -429,7 +429,7 @@ SetMbObsEtsiOnlyPosition C-ASR-SINGLE-OBS ::= { * to support this observation. * * - * @param threshold This is the threshold such that if the speed is over that + * @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. * @@ -555,7 +555,7 @@ SetMbObsEtsiOnlySpeed C-ASR-SINGLE-OBS ::= { * to support this observation. * * - * @param threshold This is the threshold such that if the absolute value of + * @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. * -- GitLab From 74952c762e074cbd40b3f9128720374abc8fe3df Mon Sep 17 00:00:00 2001 From: Virendra Kumar Date: Mon, 24 Jan 2022 23:21:54 -0500 Subject: [PATCH 13/66] Bullet lists updated to be consistent with the new documentation style --- EtsiTs103759AsrCam.asn | 88 ++++++------- EtsiTs103759CommonObservations.asn | 190 ++++++++++++----------------- 2 files changed, 112 insertions(+), 166 deletions(-) diff --git a/EtsiTs103759AsrCam.asn b/EtsiTs103759AsrCam.asn index 7b80bf7..698b14b 100755 --- a/EtsiTs103759AsrCam.asn +++ b/EtsiTs103759AsrCam.asn @@ -58,8 +58,7 @@ c-CamTgt-LongAccCommon IdCamTgt ::= 5 * trigger conditions and other relevant information are specified below. * * @param SetMbObsCompleteBeacon: - *
    - *
  • Beacon-IntervalTooSmall: The difference between the generation + * - `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 @@ -69,99 +68,84 @@ c-CamTgt-LongAccCommon IdCamTgt ::= 5 * 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.
  • - *
+ * the two generationDeltaTime values. * * @param SetMbObsCompleteStatic: - *
    - *
  • Static-Change: Any change in the values of one or more of the + * - `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), + * - `Semantics of the BIT STRING`: performanceClass(0), * specialTransportType(1), stationType(2), vehicleLength(3), vehicleRole(4), - * vehicleWidth(5).
  • - *
+ * vehicleWidth(5). + * * * @param SetMbObsCompleteSecurity: - *
    - *
  • Security-MessageIdIncWithHeaderInfo: The messageID is inconsistent + * - `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 headerInfo is not equal to 36, the PSID value of CAM. * - *
  • Security-HeaderIncWithSecurityProfile: The security headerInfo is + * - `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.
  • + * profile. * - *
  • Security-HeaderPsidIncWithCertificate: The psid in the security + * - `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.
  • + * certificate does not include the value 36. * - *
  • Security-MessageIncWithSsp: The message payload is inconsistent - * with the SSP in the certificate.
  • + * - `Security-MessageIncWithSsp`: The message payload is inconsistent + * with the SSP in the certificate. * - *
  • Security-HeaderTimeOutsideCertificateValidity: The generationTime + * - `Security-HeaderTimeOutsideCertificateValidity`: The generationTime * in the security headerInfo is outside the validityPeriod in the certificate. - *
  • * - *
  • Security-MessageLocationOutsideCertificateValidity: The + * - `Security-MessageLocationOutsideCertificateValidity`: The * referencePosition in the message is outside the region in the certificate. - *
  • * - *
  • Security-HeaderLocationOutsideCertificateValidity: The + * - `Security-HeaderLocationOutsideCertificateValidity`: The * generationLocation in the security headerInfo is outside the region in the - * certificate.
  • - *
+ * certificate. * * @param SetMbObsEtsiOnlyPosition: - *
    - *
  • Position-ChangeTooLarge: The speed calculated from the change in + * - `Position-ChangeTooLarge`: The speed calculated from the change in * referencePosition of two consecutive CAMs meets the trigger conditions of - * Speed-ValueTooLarge-VehicleType.
  • - *
+ * Speed-ValueTooLarge-VehicleType. * * @param SetMbObsEtsiOnlySpeed: - *
    - *
  • Speed-ValueTooLarge-VehicleType: The trigger conditions depend on - * the stationType as follows:
      + * - `Speed-ValueTooLarge-VehicleType`: The trigger conditions depend on + * the stationType as follows: * - *
    • passengerCar(5): The speedValue is greater than 14,000. (Currently, the + * - `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 + * - `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.)
    • + * 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.)
    • + * - `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.)
    • - *
    - *
  • + * - `roadSideUnit(15)`: The speedValue is greater than 0. (Road side units + * shouldn't be transmitting while being transported.) * - *
  • Speed-ValueTooLarge-DriveDirectionReverse: The driveDirection is + * - `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 is sqrt(2*9*50) m/s, i.e., 3,000 cm/s.) * - *
  • Speed-ChangeTooLarge: The acceleration calculated from the change + * - `Speed-ChangeTooLarge`: The acceleration calculated from the change * in speedValue of two consecutive CAMs meets the trigger conditions of - * LongAcc-ValueTooLarge.
  • - *
+ * LongAcc-ValueTooLarge. * * @param SetMbObsEtsiOnlyLongAcc: - *
    - *
  • LongAcc-ValueTooLarge: The longitudinalAcceleration is greater + * - `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.)
  • - *
+ * 88.2 dm/s^2.) */ SetMbObsTgtsCam C-ASR-OBS-BY-TGT ::= { {MbSingleObservation{{SetMbObsCompleteBeacon}} BY diff --git a/EtsiTs103759CommonObservations.asn b/EtsiTs103759CommonObservations.asn index 6fc5261..92e19d8 100644 --- a/EtsiTs103759CommonObservations.asn +++ b/EtsiTs103759CommonObservations.asn @@ -36,19 +36,17 @@ IdMbObs ::= Uint8 * 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 + * - `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.
  • + * report requires a different PDU type. * - *
  • nonV2xPduEvidence: No other evidence is required to be included - * to support this observation.
  • - *
+ * - `nonV2xPduEvidence`: No other evidence is required to be included + * to support this observation. */ Beacon-IntervalTooSmall ::= NULL @@ -74,19 +72,17 @@ SetMbObsCompleteBeacon C-ASR-SINGLE-OBS ::= { * @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 + * - `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.
  • + * the same report requires a different PDU type. * - *
  • nonV2xPduEvidence: No other evidence is required to be included - * to support this observation.
  • - *
+ * - `nonV2xPduEvidence`: No other evidence is required to be included + * to support this observation. */ Static-Change ::= BIT STRING @@ -112,19 +108,17 @@ SetMbObsCompleteStatic C-ASR-SINGLE-OBS ::= { * @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 + * - `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.
  • + * same report requires a different PDU type. * - *
  • nonV2xPduEvidence: No other evidence is required to be included - * to support this observation.
  • - *
+ * - `nonV2xPduEvidence`: No other evidence is required to be included + * to support this observation. */ Security-MessageIdIncWithHeaderInfo ::= NULL @@ -132,19 +126,17 @@ Security-MessageIdIncWithHeaderInfo ::= NULL * @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 + * - `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.
  • + * report requires a different PDU type. * - *
  • nonV2xPduEvidence: No other evidence is required to be included - * to support this observation.
  • - *
+ * - `nonV2xPduEvidence`: No other evidence is required to be included + * to support this observation. */ Security-HeaderIncWithSecurityProfile ::= NULL @@ -152,19 +144,17 @@ Security-HeaderIncWithSecurityProfile ::= NULL * @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 + * - `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.
  • + * same report requires a different PDU type. * - *
  • nonV2xPduEvidence: No other evidence is required to be included - * to support this observation.
  • - *
+ * - `nonV2xPduEvidence`: No other evidence is required to be included + * to support this observation. */ Security-HeaderPsidIncWithCertificate ::= NULL @@ -172,19 +162,17 @@ Security-HeaderPsidIncWithCertificate ::= NULL * @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 + * - `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.
  • + * type. * - *
  • nonV2xPduEvidence: No other evidence is required to be included - * to support this observation.
  • - *
+ * - `nonV2xPduEvidence`: No other evidence is required to be included + * to support this observation. */ Security-MessageIncWithSsp ::= NULL @@ -193,19 +181,17 @@ Security-MessageIncWithSsp ::= NULL * 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 + * - `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.
  • + * same report requires a different PDU type. * - *
  • nonV2xPduEvidence: No other evidence is required to be included - * to support this observation.
  • - *
+ * - `nonV2xPduEvidence`: No other evidence is required to be included + * to support this observation. */ Security-HeaderTimeOutsideCertificateValidity ::= NULL @@ -213,19 +199,17 @@ Security-HeaderTimeOutsideCertificateValidity ::= NULL * @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 + * - `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.
  • + * report requires a different PDU type. * - *
  • nonV2xPduEvidence: No other evidence is required to be included - * to support this observation.
  • - *
+ * - `nonV2xPduEvidence`: No other evidence is required to be included + * to support this observation. */ Security-MessageLocationOutsideCertificateValidity ::= NULL @@ -234,19 +218,17 @@ Security-MessageLocationOutsideCertificateValidity ::= NULL * 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 + * - `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.
  • + * report requires a different PDU type. * - *
  • nonV2xPduEvidence: No other evidence is required to be included - * to support this observation.
  • - *
+ * - `nonV2xPduEvidence`: No other evidence is required to be included + * to support this observation. */ Security-HeaderLocationOutsideCertificateValidity ::= NULL @@ -317,19 +299,17 @@ SetMbObsCompleteSecurity C-ASR-SINGLE-OBS ::= { * @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 + * - `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.
  • + * report requires a different PDU type. * - *
  • nonV2xPduEvidence: No other evidence is required to be included - * to support this observation.
  • - *
+ * - `nonV2xPduEvidence`: No other evidence is required to be included + * to support this observation. */ Pos-IncWithPrev-TooSmall ::= NULL @@ -339,19 +319,17 @@ Pos-IncWithPrev-TooSmall ::= NULL * 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 + * - `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.
  • + * report requires a different PDU type. * - *
  • nonV2xPduEvidence: No other evidence is required to be included - * to support this observation.
  • - *
+ * - `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 @@ -366,19 +344,17 @@ Pos-IncWithPrev-TooFar ::= SEQUENCE { * @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 + * - `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.
  • + * report requires a different PDU type. * - *
  • nonV2xPduEvidence: No other evidence is required to be included - * to support this observation.
  • - *
+ * - `nonV2xPduEvidence`: No other evidence is required to be included + * to support this observation. */ Position-ChangeTooLarge ::= NULL @@ -416,18 +392,16 @@ SetMbObsEtsiOnlyPosition C-ASR-SINGLE-OBS ::= { * 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 + * - `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.
  • + * report requires a different PDU type. * - *
  • nonV2xPduEvidence: No other evidence is required to be included - * to support this observation.
  • - *
+ * - `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 @@ -444,18 +418,16 @@ Speed-ValueTooLarge-ThresholdNoContext ::= SEQUENCE { * @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 + * - `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.
  • + * same report requires a different PDU type. * - *
  • nonV2xPduEvidence: No other evidence is required to be included - * to support this observation.
  • - *
+ * - `nonV2xPduEvidence`: No other evidence is required to be included + * to support this observation. */ Speed-ValueTooLarge-VehicleType ::= NULL @@ -463,18 +435,16 @@ Speed-ValueTooLarge-VehicleType ::= NULL * @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 + * - `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.
  • + * included in the same report requires a different PDU type. * - *
  • nonV2xPduEvidence: No other evidence is required to be included - * to support this observation.
  • - *
+ * - `nonV2xPduEvidence`: No other evidence is required to be included + * to support this observation. */ Speed-ValueTooLarge-DriveDirectionReverse ::= NULL @@ -482,19 +452,17 @@ Speed-ValueTooLarge-DriveDirectionReverse ::= NULL * @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 + * - `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.
  • + * same report requires a different PDU type. * - *
  • nonV2xPduEvidence: No other evidence is required to be included - * to support this observation.
  • - *
+ * - `nonV2xPduEvidence`: No other evidence is required to be included + * to support this observation. */ Speed-ChangeTooLarge ::= NULL @@ -542,18 +510,16 @@ SetMbObsEtsiOnlySpeed C-ASR-SINGLE-OBS ::= { * 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 + * - `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.
  • + * included in the same report requires a different PDU type. * - *
  • nonV2xPduEvidence: No other evidence is required to be included - * to support this observation.
  • - *
+ * - `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 @@ -571,18 +537,16 @@ LongAcc-ValueTooLarge-ThresholdNoContext ::= SEQUENCE { * 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 + * - `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.
  • + * same report requires a different PDU type. * - *
  • nonV2xPduEvidence: No other evidence is required to be included - * to support this observation.
  • - *
+ * - `nonV2xPduEvidence`: No other evidence is required to be included + * to support this observation. */ LongAcc-Implausible-Brake ::= NULL @@ -590,18 +554,16 @@ LongAcc-Implausible-Brake ::= NULL * @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 + * - `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.
  • + * same report requires a different PDU type. * - *
  • nonV2xPduEvidence: No other evidence is required to be included - * to support this observation.
  • - *
+ * - `nonV2xPduEvidence`: No other evidence is required to be included + * to support this observation. */ LongAcc-ValueTooLarge ::= NULL -- GitLab From 695fc2cadfc0f6833dcaab2da51b144252a92388 Mon Sep 17 00:00:00 2001 From: Virendra Kumar Date: Mon, 24 Jan 2022 23:59:22 -0500 Subject: [PATCH 14/66] Documentation files updated --- docs/EtsiTs103759.md | 389 ++ docs/EtsiTs103759AsrAppAgnostic.md | 16 + docs/EtsiTs103759AsrBsm.md | 108 + docs/EtsiTs103759AsrCam.md | 124 + docs/EtsiTs103759AsrDenm.md | 16 + docs/EtsiTs103759MbrCommonObservations.md | 677 ++++ documentation/Asn1doc.css | 307 -- documentation/Asn1doc.js | 102 - documentation/schema.html | 4221 --------------------- 9 files changed, 1330 insertions(+), 4630 deletions(-) create mode 100644 docs/EtsiTs103759.md create mode 100644 docs/EtsiTs103759AsrAppAgnostic.md create mode 100644 docs/EtsiTs103759AsrBsm.md create mode 100644 docs/EtsiTs103759AsrCam.md create mode 100644 docs/EtsiTs103759AsrDenm.md create mode 100644 docs/EtsiTs103759MbrCommonObservations.md delete mode 100644 documentation/Asn1doc.css delete mode 100644 documentation/Asn1doc.js delete mode 100644 documentation/schema.html diff --git a/docs/EtsiTs103759.md b/docs/EtsiTs103759.md new file mode 100644 index 0000000..e6826f6 --- /dev/null +++ b/docs/EtsiTs103759.md @@ -0,0 +1,389 @@ +# ASN.1 module EtsiTs103759 + OID: _{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)}_ + +## Imports: + * **[EtsiTs103097Module](EtsiTs103097Module.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) secHeaders(103097) core(1) major-version-3(3) minor-version-1(1)} WITH SUCCESSORS*
+ + * **[Ieee1609Dot2](Ieee1609Dot2.md)** *{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-4(4)} WITH SUCCESSORS*
+ + * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-3(3)} WITH SUCCESSORS*
+ + * **[EtsiTs103759AsrAppAgnostic](EtsiTs103759AsrAppAgnostic.md)** *{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)} WITH SUCCESSORS*
+ + * **[EtsiTs103759AsrBsm](EtsiTs103759AsrBsm.md)** *{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)} WITH SUCCESSORS*
+ + * **[EtsiTs103759AsrCam](EtsiTs103759AsrCam.md)** *{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)} WITH SUCCESSORS*
+ + * **[EtsiTs103759AsrDenm](EtsiTs103759AsrDenm.md)** *{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)} WITH SUCCESSORS*
+ +## Data Elements: +### EtsiTs103759Data + + This data type is the general PDU for a misbehaviour report from an + ITS-S to the MA responsible for reports of that type. + +Fields: +* version [**Uint8**](Ieee1609Dot2BaseTypes.md#Uint8)
+contains the version number of this PDU definition. For this + version of this data type it shall be equal to 2. + +* generationTime [**Time64**](Ieee1609Dot2BaseTypes.md#Time64)
+contains information on when this PDU was generated. + +* observationLocation [**ThreeDLocation**](Ieee1609Dot2BaseTypes.md#ThreeDLocation)
+is the location at which the last observation of + a V2X PDU was made before the decision was taken to generate a report. + +* report [**AidSpecificReport**](#AidSpecificReport)
+contains the AID-specific misbehaviour report. + +```asn1 +EtsiTs103759Data ::= SEQUENCE { + version Uint8, + generationTime Time64, + observationLocation ThreeDLocation, + report AidSpecificReport +} +``` + +### EtsiTs103759Data-SignedAndEncrypted-Unicast + + This structure is the SPDU used to send a signed and encrypted + EtsiTs103759Data to the MA. For the signature to be valid the signing + certificate shall conform to the authorization ticket profile given in + clause 7.2.1 of ETSI TS 103 097 v2.1.1, where the appPermissions field in + the authorization ticket allows signing misbehaviour reports. The signed + EtsiTs103759Data shall be encrypted to the MA using the encryptionKey in + the MA's certificate. + + + +```asn1 +EtsiTs103759Data-SignedAndEncrypted-Unicast ::= + EtsiTs103097Data-SignedAndEncrypted-Unicast { + EtsiTs103759Data +} +``` + +### 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. + +Fields: +* aid [**C-ASR**](#C-ASR) .&aid ({SetAsr})
+contains the respective ITS-AID. + +* content [**C-ASR**](#C-ASR) .&Content ({SetAsr}{@.aid})
+contains the report contents, e.g., AsrCam. This will be a + TemplateAsr instantiated with AID-specific Information Object Sets. + +```asn1 +AidSpecificReport ::= SEQUENCE { + aid C-ASR.&aid ({SetAsr}), + content C-ASR.&Content ({SetAsr}{@.aid}) +} +``` + +### C-ASR + + This data type defines the IOC for AidSpecificReport. +```asn1 +C-ASR ::= CLASS { + &aid Psid UNIQUE, + &Content +} WITH SYNTAX {&Content IDENTIFIED BY &aid} +``` + +### 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. + + + +```asn1 +SetAsr C-ASR ::= { + {AsrAppAgnostic IDENTIFIED BY c-AsrAppAgnostic} | + {AsrBsm IDENTIFIED BY c-AsrBsm} | + {AsrCam IDENTIFIED BY c-AsrCam} | + {AsrDenm IDENTIFIED BY c-AsrDenm}, + ... +} +``` + + + +```asn1 +c-AsrAppAgnostic Psid ::= 270549119 +``` + + + +```asn1 +c-AsrBsm Psid ::= 32 +``` + + + +```asn1 +c-AsrCam Psid ::= 36 +``` + + + +```asn1 +c-AsrDenm Psid ::= 37 +``` + + + +```asn1 +} ::= SEQUENCE { + observations SEQUENCE (SIZE(1..MAX)) OF ObservationsByTarget + {{ObservationSet}}, + v2xPduEvidence SEQUENCE (SIZE(1..MAX)) OF V2xPduStream, + nonV2xPduEvidence SEQUENCE (SIZE(0..MAX)) OF NonV2xPduEvidenceItem + {{NonV2xPduEvidenceSet}} +} +``` + +### ObservationsByTarget + + This data type contains all of the observations related to a + particular "target" property, e.g., speed or security. + +Fields: +* tgtId [**C-ASR-OBS-BY-TGT**](#C-ASR-OBS-BY-TGT) .&id ({SetAsrObsByTgt})
+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 **SEQUENCE** OF C-ASR-OBS-BY-TGT.&Val
+contains all the observations related to that target. + The observations are drawn from the provided Information Object Set. + +```asn1 +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}) +} +``` + +### C-ASR-OBS-BY-TGT + + This is the Information Object Class used to define observations- + -by-target. + + + +```asn1 +C-ASR-OBS-BY-TGT ::= C-2ENT +``` + +### MbSingleObservation + + This data type contains a single misbehaviour observation. + +Fields: +* obsId [**C-ASR-SINGLE-OBS**](#C-ASR-SINGLE-OBS) .&id ({SetMbSingleObs})
+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 [**C-ASR-SINGLE-OBS**](#C-ASR-SINGLE-OBS) .&Val ({SetMbSingleObs}{@.obsId})
+contains any parameters relevant to the observation. The + observations are drawn from the provided Information Object Set. + +```asn1 +MbSingleObservation {C-ASR-SINGLE-OBS: SetMbSingleObs} ::= SEQUENCE { + obsId C-ASR-SINGLE-OBS.&id ({SetMbSingleObs}), + obs C-ASR-SINGLE-OBS.&Val ({SetMbSingleObs}{@.obsId}) +} +``` + +### C-ASR-SINGLE-OBS + + This is the Information Object Class used to define single + observations. + + + +```asn1 +C-ASR-SINGLE-OBS ::= C-2ENT +``` + +### V2xPduStream + + This data type contains PDU stream from a single sender. + +Fields: +* type [**C-OBS-PDU**](#C-OBS-PDU) .&id ({SetObsPdu})
+* v2xPdus **SEQUENCE** (SIZE(1..255)) OF C-OBS-PDU.&Val
+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 [**Certificate**](Ieee1609Dot2.md#Certificate) OPTIONAL
+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 [**Uint8**](Ieee1609Dot2BaseTypes.md#Uint8)
+identifies which PDU within the v2xPdus sequence + is the "subject PDU", i.e., the PDU associated with the observations. + +```asn1 +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, + ... +} +``` + +### C-OBS-PDU + + This is the Information Object Class used to define different types + of observed PDUs. + + + +```asn1 +C-OBS-PDU ::= C-2ENT +``` + +### SetObsPdu + + This data type contains the IOS for the observed PDU. + + + +```asn1 +SetObsPdu C-OBS-PDU ::= { + {ObsPduEtsiGn BY c-ObsPdu-etsiGn} | + {ObsPduIeee1609Dot2Data BY c-ObsPdu-ieee1609Dot2Data} | + {ObsPduWsmp BY c-ObsPdu-wsmp}, + ... +} +``` + +### IdObsPdu + + This data type contains the identifier of the type of observed PDU. + + + +```asn1 +IdObsPdu ::= Uint8 +``` + + + +```asn1 +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. + + + +```asn1 +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. + + + +```asn1 +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. + + + +```asn1 +ObsPduWsmp ::= Opaque +``` + +### NonV2xPduEvidenceItem + + This data type contains evidence, which may be referenced by one or + more observations. + +Fields: +* id [**C-ASR-EV**](#C-ASR-EV) .&id ({SetMbEv})
+identifies the evidence type. + +* evidence [**C-ASR-EV**](#C-ASR-EV) .&Val ({SetMbEv}{@.id})
+contains the evidence. + +```asn1 +NonV2xPduEvidenceItem {C-ASR-EV: SetMbEv} ::= SEQUENCE { + id C-ASR-EV.&id ({SetMbEv}), + evidence C-ASR-EV.&Val ({SetMbEv}{@.id}) +} +``` + +### 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. + + + +```asn1 +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. + + + +```asn1 +C-2ENT ::= CLASS { + &id Uint8, + &Val +} WITH SYNTAX {&Val BY &id} +``` + + + diff --git a/docs/EtsiTs103759AsrAppAgnostic.md b/docs/EtsiTs103759AsrAppAgnostic.md new file mode 100644 index 0000000..fcf3b2f --- /dev/null +++ b/docs/EtsiTs103759AsrAppAgnostic.md @@ -0,0 +1,16 @@ +# ASN.1 module EtsiTs103759AsrAppAgnostic + OID: _{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)}_ + +## Data Elements: +### AsrAppAgnostic + + This data type is defined as NULL for this version of the standard. + + + +```asn1 +AsrAppAgnostic ::= NULL +``` + + + diff --git a/docs/EtsiTs103759AsrBsm.md b/docs/EtsiTs103759AsrBsm.md new file mode 100644 index 0000000..a440cc0 --- /dev/null +++ b/docs/EtsiTs103759AsrBsm.md @@ -0,0 +1,108 @@ +# ASN.1 module EtsiTs103759AsrBsm + OID: _{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)}_ + +## Imports: + * **[EtsiTs103759](EtsiTs103759.md)** *{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)} WITH SUCCESSORS*
+ + * **[EtsiTs103759MbrCommonObservations](EtsiTs103759MbrCommonObservations.md)** *{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)} WITH SUCCESSORS*
+ + * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-3(3)} WITH SUCCESSORS*
+ +## Data Elements: +### IdBsmTgt + + + +```asn1 +IdBsmTgt ::= Uint8 +``` + + + +```asn1 +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. + + + +```asn1 +AsrBsm ::= TemplateAsr {{SetMbObsTgtsBsm}, {SetMbEvBsm}} +``` + +### SetMbObsPosition-Bsm + +Values: +* **obs-Pos-IncWithPrev-TooSmall** |
+```asn1 +SetMbObsPosition-Bsm C-ASR-SINGLE-OBS ::= { + obs-Pos-IncWithPrev-TooSmall | + obs-Pos-IncWithPrev-TooFar, + ... +} +``` + +### SetMbObsSpeed-Bsm + +```asn1 +SetMbObsSpeed-Bsm C-ASR-SINGLE-OBS ::= { + obs-Speed-ValueTooLarge-ThresholdNoContext, + ... +} +``` + +### SetMbObsLongAcc-Bsm + +Values: +* **obs-LongAcc-ValueTooLarge-ThresholdNoContext** |
+```asn1 +SetMbObsLongAcc-Bsm C-ASR-SINGLE-OBS ::= { + obs-LongAcc-ValueTooLarge-ThresholdNoContext | + obs-LongAcc-Implausible-Brake, + ... +} +``` + +### 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. + + + +```asn1 +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}, + ... +} +``` + +### SetMbEvBsm + + This data type defines the IOS for BSM Evidence + + + +```asn1 +SetMbEvBsm C-ASR-EV ::= { + ... +} +``` + + + diff --git a/docs/EtsiTs103759AsrCam.md b/docs/EtsiTs103759AsrCam.md new file mode 100644 index 0000000..a42f03c --- /dev/null +++ b/docs/EtsiTs103759AsrCam.md @@ -0,0 +1,124 @@ +# ASN.1 module EtsiTs103759AsrCam + OID: _{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)}_ + +## Imports: + * **[EtsiTs103759](EtsiTs103759.md)** *{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)} WITH SUCCESSORS*
+ + * **[EtsiTs103759MbrCommonObservations](EtsiTs103759MbrCommonObservations.md)** *{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)} WITH SUCCESSORS*
+ + * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-3(3)} WITH SUCCESSORS*
+ +## Data Elements: +### AsrCam + + This data type is for reporting CAM issues. + + + +```asn1 +AsrCam ::= TemplateAsr {{SetMbObsTgtsCam}, {SetMbEvCam}} +``` + +### IdCamTgt + + + +```asn1 +IdCamTgt ::= Uint8 +``` + + + +```asn1 +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. + + - `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. + + - `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. +```asn1 +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}, + ... +} +``` + +### SetMbEvCam + + This data type defines the IOS for CAM Evidence. + + + +```asn1 +SetMbEvCam C-ASR-EV ::= { + ... +} +``` + + + diff --git a/docs/EtsiTs103759AsrDenm.md b/docs/EtsiTs103759AsrDenm.md new file mode 100644 index 0000000..c524ac5 --- /dev/null +++ b/docs/EtsiTs103759AsrDenm.md @@ -0,0 +1,16 @@ +# ASN.1 module EtsiTs103759AsrDenm + OID: _{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)}_ + +## Data Elements: +### AsrDenm + + This data type is defined as NULL for this version of the standard. + + + +```asn1 +AsrDenm ::= NULL +``` + + + diff --git a/docs/EtsiTs103759MbrCommonObservations.md b/docs/EtsiTs103759MbrCommonObservations.md new file mode 100644 index 0000000..0a399ec --- /dev/null +++ b/docs/EtsiTs103759MbrCommonObservations.md @@ -0,0 +1,677 @@ +# ASN.1 module EtsiTs103759MbrCommonObservations + OID: _{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)}_ + +## Imports: + * **[EtsiTs103759](EtsiTs103759.md)** *{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)} WITH SUCCESSORS*
+ + * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-3(3)} WITH SUCCESSORS*
+ +## Data Elements: +### IdMbObs + + Identifier type for observations: synonym for Uint8 + + + +```asn1 +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. + + + +```asn1 +Beacon-IntervalTooSmall ::= NULL +``` + + + +```asn1 +c-ObsBeacon-IntervalTooSmall IdMbObs::= 1 +``` + + + +```asn1 +obs-Beacon-IntervalTooSmall C-ASR-SINGLE-OBS ::= + {Beacon-IntervalTooSmall BY c-ObsBeacon-IntervalTooSmall} +``` + +### SetMbObsCompleteBeacon + + + +```asn1 +SetMbObsCompleteBeacon C-ASR-SINGLE-OBS ::= { + obs-Beacon-IntervalTooSmall, + ... +} +``` + +### 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. + + + +```asn1 +Static-Change ::= BIT STRING +``` + + + +```asn1 +c-ObsStatic-Change IdMbObs::= 1 +``` + + + +```asn1 +obs-Static-Change C-ASR-SINGLE-OBS ::= + {Static-Change BY c-ObsStatic-Change} +``` + +### SetMbObsCompleteStatic + + + +```asn1 +SetMbObsCompleteStatic C-ASR-SINGLE-OBS ::= { + obs-Static-Change, + ... +} +``` + +### 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. + + + +```asn1 +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. + + + +```asn1 +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. + + + +```asn1 +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. + + + +```asn1 +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. + + + +```asn1 +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. + + + +```asn1 +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. + + + +```asn1 +Security-HeaderLocationOutsideCertificateValidity ::= NULL +``` + + + +```asn1 +c-ObsSecurity-MessageIdIncWithHeaderInfo IdMbObs ::= 1 +c-ObsSecurity-HeaderIncWithSecurityProfile IdMbObs ::= 2 +c-ObsSecurity-HeaderPsidIncWithCertificate IdMbObs ::= 3 +c-ObsSecurity-MessageIncWithSsp IdMbObs ::= 4 +c-ObsSecurity-HeaderTimeOutsideCertificateValidity IdMbObs ::= 5 +c-ObsSecurity-MessageLocationOutsideCertificateValidity IdMbObs ::= 6 +c-ObsSecurity-HeaderLocationOutsideCertificateValidity IdMbObs ::= 7 +``` + + + +```asn1 +obs-Security-MessageIdIncWithHeaderInfo C-ASR-SINGLE-OBS ::= { + Security-MessageIdIncWithHeaderInfo BY + c-ObsSecurity-MessageIdIncWithHeaderInfo +} +``` + + + +```asn1 +obs-Security-HeaderIncWithSecurityProfile C-ASR-SINGLE-OBS ::= { + Security-HeaderIncWithSecurityProfile BY + c-ObsSecurity-HeaderIncWithSecurityProfile +} +``` + + + +```asn1 +obs-Security-HeaderPsidIncWithCertificate C-ASR-SINGLE-OBS ::= { + Security-HeaderPsidIncWithCertificate BY + c-ObsSecurity-HeaderPsidIncWithCertificate +} +``` + + + +```asn1 +obs-Security-MessageIncWithSsp C-ASR-SINGLE-OBS ::= { + Security-MessageIncWithSsp BY c-ObsSecurity-MessageIncWithSsp +} +``` + + + +```asn1 +obs-Security-HeaderTimeOutsideCertificateValidity C-ASR-SINGLE-OBS ::= { + Security-HeaderTimeOutsideCertificateValidity BY + c-ObsSecurity-HeaderTimeOutsideCertificateValidity +} +``` + +### C-ASR-SINGLE-OBS + +Fields: +* Security-MessageLocationOutsideCertificateValidity [**BY**](#BY)
+```asn1 +C-ASR-SINGLE-OBS ::= { + Security-MessageLocationOutsideCertificateValidity BY + c-ObsSecurity-MessageLocationOutsideCertificateValidity +} +``` + +### C-ASR-SINGLE-OBS + +Fields: +* Security-HeaderLocationOutsideCertificateValidity [**BY**](#BY)
+```asn1 +C-ASR-SINGLE-OBS ::= { + Security-HeaderLocationOutsideCertificateValidity BY + c-ObsSecurity-HeaderLocationOutsideCertificateValidity +} +``` + +### SetMbObsCompleteSecurity + +Values: +* **obs-Security-MessageIdIncWithHeaderInfo** |
+* **obs-Security-HeaderIncWithSecurityProfile** |
+* **obs-Security-HeaderPsidIncWithCertificate** |
+* **obs-Security-MessageIncWithSsp** |
+* **obs-Security-HeaderTimeOutsideCertificateValidity** |
+* **obs-Security-MessageLocationOutsideCertificateValidity** |
+```asn1 +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, + ... +} +``` + +### Pos-IncWithPrev-TooSmall + + + +```asn1 +Pos-IncWithPrev-TooSmall ::= NULL +``` + +### Pos-IncWithPrev-TooFar + +Fields: +* gpsDrift [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
+```asn1 +Pos-IncWithPrev-TooFar ::= SEQUENCE { + gpsDrift Uint16 +} +``` + +### 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. + + + +```asn1 +Position-ChangeTooLarge ::= NULL +``` + + + +```asn1 +c-ObsPos-IncWithPrev-TooSmall IdMbObs ::= 2 +c-ObsPos-IncWithPrev-TooFar IdMbObs ::= 3 +c-ObsPosition-ChangeTooLarge IdMbObs ::= 4 +``` + + + +```asn1 +obs-Pos-IncWithPrev-TooSmall C-ASR-SINGLE-OBS ::= { + Pos-IncWithPrev-TooSmall BY c-ObsPos-IncWithPrev-TooSmall +} +``` + + + +```asn1 +obs-Pos-IncWithPrev-TooFar C-ASR-SINGLE-OBS ::= { + Pos-IncWithPrev-TooFar BY c-ObsPos-IncWithPrev-TooFar +} +``` + + + +```asn1 +obs-Position-ChangeTooLarge C-ASR-SINGLE-OBS ::= { + Position-ChangeTooLarge BY c-ObsPosition-ChangeTooLarge +} +``` + +### SetMbObsEtsiOnlyPosition + +```asn1 +SetMbObsEtsiOnlyPosition C-ASR-SINGLE-OBS ::= { + obs-Position-ChangeTooLarge, + ... +} +``` + +### Speed-ValueTooLarge-ThresholdNoContext + +Fields: +* threshold [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
+```asn1 +Speed-ValueTooLarge-ThresholdNoContext ::= SEQUENCE { + threshold Uint16 +} +``` + +### 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. + + + +```asn1 +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. + + + +```asn1 +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. + + + +```asn1 +Speed-ChangeTooLarge ::= NULL +``` + + + +```asn1 +c-ObsSpeed-ValueTooLarge-ThresholdNoContext IdMbObs::= 2 +c-ObsSpeed-ValueTooLarge-VehicleType IdMbObs::= 3 +c-ObsSpeed-ValueTooLarge-DriveDirectionReverse IdMbObs::= 4 +c-ObsSpeed-ChangeTooLarge IdMbObs::= 5 +``` + + + +```asn1 +obs-Speed-ValueTooLarge-VehicleType C-ASR-SINGLE-OBS ::= { + Speed-ValueTooLarge-VehicleType BY c-ObsSpeed-ValueTooLarge-VehicleType +} +``` + + + +```asn1 +obs-Speed-ValueTooLarge-ThresholdNoContext C-ASR-SINGLE-OBS ::= { + Speed-ValueTooLarge-ThresholdNoContext BY + c-ObsSpeed-ValueTooLarge-ThresholdNoContext +} +``` + + + +```asn1 +obs-Speed-ValueTooLarge-DriveDirectionReverse C-ASR-SINGLE-OBS ::= { + Speed-ValueTooLarge-DriveDirectionReverse BY + c-ObsSpeed-ValueTooLarge-DriveDirectionReverse +} +``` + + + +```asn1 +obs-Speed-ChangeTooLarge C-ASR-SINGLE-OBS ::= { + Speed-ChangeTooLarge BY c-ObsSpeed-ChangeTooLarge +} +``` + +### SetMbObsEtsiOnlySpeed + +Values: +* **obs-Speed-ValueTooLarge-VehicleType** |
+* **obs-Speed-ValueTooLarge-DriveDirectionReverse** |
+```asn1 +SetMbObsEtsiOnlySpeed C-ASR-SINGLE-OBS ::= { + obs-Speed-ValueTooLarge-VehicleType | + obs-Speed-ValueTooLarge-DriveDirectionReverse | + obs-Speed-ChangeTooLarge, + ... +} +``` + +### LongAcc-ValueTooLarge-ThresholdNoContext + +Fields: +* threshold [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
+```asn1 +LongAcc-ValueTooLarge-ThresholdNoContext ::= SEQUENCE { + threshold Uint16 +} +``` + +### LongAcc-Implausible-Brake + + + +```asn1 +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. + + + +```asn1 +LongAcc-ValueTooLarge ::= NULL +``` + + + +```asn1 +c-ObsLongAcc-ValueTooLarge-ThresholdNoContext IdMbObs::= 2 +c-ObsLongAcc-Implausible-Brake IdMbObs::= 3 +c-ObsLongAcc-ValueTooLarge IdMbObs::= 4 +``` + + + +```asn1 +obs-LongAcc-ValueTooLarge-ThresholdNoContext C-ASR-SINGLE-OBS ::= { + LongAcc-ValueTooLarge-ThresholdNoContext BY + c-ObsLongAcc-ValueTooLarge-ThresholdNoContext +} +``` + + + +```asn1 +obs-LongAcc-Implausible-Brake C-ASR-SINGLE-OBS ::= { + LongAcc-Implausible-Brake BY c-ObsLongAcc-Implausible-Brake +} +``` + + + +```asn1 +obs-LongAcc-ValueTooLarge C-ASR-SINGLE-OBS ::= { + LongAcc-ValueTooLarge BY c-ObsLongAcc-ValueTooLarge +} +``` + +### SetMbObsEtsiOnlyLongAcc + +```asn1 +SetMbObsEtsiOnlyLongAcc C-ASR-SINGLE-OBS ::= { + obs-LongAcc-ValueTooLarge, + ... +} +``` + + + diff --git a/documentation/Asn1doc.css b/documentation/Asn1doc.css deleted file mode 100644 index 2dd4667..0000000 --- a/documentation/Asn1doc.css +++ /dev/null @@ -1,307 +0,0 @@ - -.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 deleted file mode 100644 index ec81b40..0000000 --- a/documentation/Asn1doc.js +++ /dev/null @@ -1,102 +0,0 @@ - -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 deleted file mode 100644 index 8fa4b2f..0000000 --- a/documentation/schema.html +++ /dev/null @@ -1,4221 +0,0 @@ - - - - -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
EtsiTs103097ExtensionModule.asnEtsiTs103097ExtensionModule{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) secHeaders (103097) extension (2) major-version-1 (1) minor-version-1 (1)}
EtsiTs103097Module.asnEtsiTs103097Module{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) secHeaders (103097) core (1) major-version-3 (3) minor-version-1 (1)}
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-4 (4)}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-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.
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
EtsiTs103097ExtensionModule{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) secHeaders (103097) extension (2) major-version-1 (1) minor-version-1 (1)}13Ieee1609Dot21Ieee1609Dot2BaseTypes3
EtsiTs103097Module{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) secHeaders (103097) core (1) major-version-3 (3) minor-version-1 (1)}12EtsiTs1037591Ieee1609Dot22
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)}42EtsiTs103759AsrBsm9EtsiTs103097Module1
EtsiTs103759AsrCam9EtsiTs103759AsrAppAgnostic1
EtsiTs103759MbrCommonObservations25EtsiTs103759AsrBsm1
EtsiTs103759AsrCam1
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-4 (4)}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.43EtsiTs103097Module2EtsiTs103097ExtensionModule1
EtsiTs1037591Ieee1609Dot2BaseTypes41
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-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.72EtsiTs103097ExtensionModule3
EtsiTs10375914
EtsiTs103759AsrBsm1
EtsiTs103759AsrCam1
EtsiTs103759MbrCommonObservations4
Ieee1609Dot241
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
EtsiTs103097ExtensionModuleEtsiOriginatingHeaderInfoExtension
EtsiTs103097ExtensionModuleEtsiTs102941CrlRequest
EtsiTs103097ExtensionModuleEtsiTs102941DeltaCtlRequest
EtsiTs103097ModuleEtsiTs103097Data-SignedExternalPayload
EtsiTs103097ExtensionModuleEtsiTs103097HeaderInfoExtensionId
EtsiTs103759EtsiTs103759Data

EtsiTs103759Data

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.
EtsiTs103759EtsiTs103759Data-SignedAndEncrypted-Unicast

EtsiTs103759Data-SignedAndEncrypted-Unicast

This structure is the SPDU used to send a signed and encrypted EtsiTs103759Data to the MA. For the signature to be valid the signing certificate shall conform to the authorization ticket profile given in clause 7.2.1 of ETSI TS 103 097 v2.1.1, where the appPermissions field in the authorization ticket allows signing misbehaviour reports. The signed EtsiTs103759Data shall be encrypted to the MA using the encryptionKey in the MA's certificate.
ITS-ContainerEventHistory
EtsiTs103097ExtensionModuleExtensionModuleVersion
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
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.
43
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
EtsiTs103097ExtensionModuleEtsiOriginatingHeaderInfoExtension12
EtsiTs103097ExtensionModuleEtsiTs102941CrlRequest12
EtsiTs103097ExtensionModuleEtsiTs102941CtlRequest11
EtsiTs103097ExtensionModuleEtsiTs102941DeltaCtlRequest11
EtsiTs103097ModuleEtsiTs103097Certificate11
EtsiTs103097ModuleEtsiTs103097Data42
EtsiTs103097ModuleEtsiTs103097Data-SignedExternalPayload1
EtsiTs103097ExtensionModuleEtsiTs103097HeaderInfoExtensionId21
EtsiTs103759EtsiTs103759Data

EtsiTs103759Data

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.
14
EtsiTs103759EtsiTs103759Data-SignedAndEncrypted-Unicast

EtsiTs103759Data-SignedAndEncrypted-Unicast

This structure is the SPDU used to send a signed and encrypted EtsiTs103759Data to the MA. For the signature to be valid the signing certificate shall conform to the authorization ticket profile given in clause 7.2.1 of ETSI TS 103 097 v2.1.1, where the appPermissions field in the authorization ticket allows signing misbehaviour reports. The signed EtsiTs103759Data shall be encrypted to the MA using the encryptionKey in the MA's certificate.
2
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
EtsiTs103097ExtensionModuleExtensionModuleVersion
ITS-ContainerExteriorLights
EtsiTs103097ExtensionModuleExtId2
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.
7
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.
32
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
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.
21
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
EtsiTs103097ModuleEtsiTs103097Data-EncryptedToBeEncryptedDataContent31
EtsiTs103097ModuleEtsiTs103097Data-Encrypted-UnicastToBeEncryptedDataContent2
EtsiTs103097ModuleEtsiTs103097Data-SignedToBeSignedDataContent21
EtsiTs103097ModuleEtsiTs103097Data-SignedAndEncryptedToBesignedAndEncryptedDataContent2
EtsiTs103097ModuleEtsiTs103097Data-SignedAndEncrypted-UnicastToBesignedAndEncryptedDataContent12
EtsiTs103097ModuleEtsiTs103097Data-UnsecuredToBeSentDataContent11
EtsiTs103097ExtensionModuleExtensionExtensionTypesEXT-TYPE11
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
EtsiTs103097ExtensionModuleetsiTs102941CrlRequestIdEtsiTs103097HeaderInfoExtensionId11
EtsiTs103097ExtensionModuleetsiTs102941DeltaCtlRequestIdEtsiTs103097HeaderInfoExtensionId11
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
EtsiTs103097ExtensionModuleEXT-TYPE21
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
EtsiTs103097ExtensionModuleEtsiTs103097HeaderInfoExtensionsEXT-TYPE15
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
13
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
EtsiTs103759AidSpecificReportEtsiTs103759EtsiTs103759Data1EtsiTs103759C-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
Ieee1609Dot2CertificateEtsiTs103097ModuleEtsiTs103097Certificate1Ieee1609Dot2CertificateBase1
Ieee1609Dot2HeaderInfo1Ieee1609Dot2ExplicitCertificate1
Ieee1609Dot2SequenceOfCertificate1Ieee1609Dot2ImplicitCertificate1
EtsiTs103759V2xPduStream1
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
Ieee1609Dot2BaseTypesPublicVerificationKey2
Ieee1609Dot2BaseTypesEcdsaP256SignatureIeee1609Dot2BaseTypesSignature2Ieee1609Dot2BaseTypesEccP256CurvePoint1
Ieee1609Dot2BaseTypesEcdsaP384SignatureIeee1609Dot2BaseTypesSignature2Ieee1609Dot2BaseTypesEccP384CurvePoint1
Ieee1609Dot2BaseTypesEciesP256EncryptedKeyIeee1609Dot2EncryptedDataEncryptionKey2Ieee1609Dot2BaseTypesEccP256CurvePoint1
Ieee1609Dot2BaseTypesElevationIeee1609Dot2BaseTypesThreeDLocation1Ieee1609Dot2BaseTypesUint161
ITS-ContainerEmbarkationStatus
ITS-ContainerEmergencyPriority
ITS-ContainerEmergencyVehicleApproachingSubCauseCode
Ieee1609Dot2EncryptedDataIeee1609Dot2Ieee1609Dot2Content1Ieee1609Dot2SequenceOfRecipientInfo1
Ieee1609Dot2SymmetricCiphertext1
Ieee1609Dot2EncryptedDataEncryptionKeyIeee1609Dot2PKRecipientInfo1Ieee1609Dot2BaseTypesEciesP256EncryptedKey2
Ieee1609Dot2BaseTypesEncryptionKeyIeee1609Dot2HeaderInfo1Ieee1609Dot2BaseTypesPublicEncryptionKey1
Ieee1609Dot2BaseTypesSymmetricEncryptionKey1
Ieee1609Dot2EndEntityTypeIeee1609Dot2PsidGroupPermissions1
ITS-ContainerEnergyStorageType
EtsiTs103097ExtensionModuleEtsiOriginatingHeaderInfoExtensionIeee1609Dot2Ieee1609Dot2HeaderInfoContributedExtensions1EtsiTs103097ExtensionModuleEtsiTs103097HeaderInfoExtensions1
EtsiTs103097ExtensionModuleExtension1
EtsiTs103097ExtensionModuleEtsiTs102941CrlRequestEtsiTs103097ExtensionModuleEtsiTs103097HeaderInfoExtensions1Ieee1609Dot2BaseTypesHashedId81
Ieee1609Dot2BaseTypesTime321
EtsiTs103097ExtensionModuleEtsiTs102941CtlRequestEtsiTs103097ExtensionModuleEtsiTs102941DeltaCtlRequest1Ieee1609Dot2BaseTypesHashedId81
EtsiTs103097ExtensionModuleEtsiTs102941DeltaCtlRequestEtsiTs103097ExtensionModuleEtsiTs103097HeaderInfoExtensions1EtsiTs103097ExtensionModuleEtsiTs102941CtlRequest1
EtsiTs103097ModuleEtsiTs103097CertificateEtsiTs103097ModuleEtsiTs103097Data1Ieee1609Dot2Certificate1
EtsiTs103097ModuleEtsiTs103097DataEtsiTs103097ModuleEtsiTs103097Data-Encrypted2EtsiTs103097ModuleEtsiTs103097Certificate1
EtsiTs103097ModuleEtsiTs103097Data-Signed2Ieee1609Dot2Ieee1609Dot2Data1
EtsiTs103097ModuleEtsiTs103097Data-SignedExternalPayload1
EtsiTs103097ModuleEtsiTs103097Data-Unsecured1
EtsiTs103097ModuleEtsiTs103097Data-SignedExternalPayloadEtsiTs103097ModuleEtsiTs103097Data1
EtsiTs103097ExtensionModuleEtsiTs103097HeaderInfoExtensionIdEtsiTs103097ExtensionModuleetsiTs102941CrlRequestId1EtsiTs103097ExtensionModuleExtId1
EtsiTs103097ExtensionModuleetsiTs102941DeltaCtlRequestId1
EtsiTs103759EtsiTs103759DataEtsiTs103759EtsiTs103759Data-SignedAndEncrypted-Unicast1EtsiTs103759AidSpecificReport1
Ieee1609Dot2BaseTypesThreeDLocation1
Ieee1609Dot2BaseTypesTime641
Ieee1609Dot2BaseTypesUint81
EtsiTs103759EtsiTs103759Data-SignedAndEncrypted-UnicastEtsiTs103097ModuleEtsiTs103097Data-SignedAndEncrypted-Unicast1
EtsiTs103759EtsiTs103759Data1
ITS-ContainerEventHistoryITS-ContainerEventPoint1
ITS-ContainerEventPointITS-ContainerEventHistory1ITS-ContainerDeltaReferencePosition1
ITS-ContainerInformationQuality1
ITS-ContainerPathDeltaTime1
Ieee1609Dot2ExplicitCertificateIeee1609Dot2Certificate1Ieee1609Dot2CertificateBase1
EtsiTs103097ExtensionModuleExtensionModuleVersion
ITS-ContainerExteriorLights
EtsiTs103097ExtensionModuleExtIdEtsiTs103097ExtensionModuleEtsiTs103097HeaderInfoExtensionId1
EtsiTs103097ExtensionModuleEXT-TYPE1
Ieee1609Dot2BaseTypesGeographicRegionIeee1609Dot2ToBeSignedCertificate1Ieee1609Dot2BaseTypesCircularRegion1
Ieee1609Dot2BaseTypesPolygonalRegion1
Ieee1609Dot2BaseTypesSequenceOfIdentifiedRegion1
Ieee1609Dot2BaseTypesSequenceOfRectangularRegion1
Ieee1609Dot2BaseTypesGroupLinkageValueIeee1609Dot2LinkageData1
ITS-ContainerHardShoulderStatusITS-ContainerClosedLanes2
Ieee1609Dot2BaseTypesHashAlgorithmIeee1609Dot2IssuerIdentifier1
Ieee1609Dot2SignedData1
Ieee1609Dot2HashedDataIeee1609Dot2SignedDataPayload1
Ieee1609Dot2BaseTypesHashedId10
Ieee1609Dot2BaseTypesHashedId3Ieee1609Dot2HeaderInfo1
Ieee1609Dot2MissingCrlIdentifier1
Ieee1609Dot2BaseTypesSequenceOfHashedId31
Ieee1609Dot2ToBeSignedCertificate1
Ieee1609Dot2BaseTypesHashedId32
Ieee1609Dot2BaseTypesHashedId8EtsiTs103097ExtensionModuleEtsiTs102941CrlRequest1
EtsiTs103097ExtensionModuleEtsiTs102941CtlRequest1
Ieee1609Dot2IssuerIdentifier2
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
Ieee1609Dot2BaseTypesOpaque3
Ieee1609Dot2SignedData1
Ieee1609Dot2Ieee1609Dot2DataIeee1609Dot2Countersignature1Ieee1609Dot2Ieee1609Dot2Content1
EtsiTs103097ModuleEtsiTs103097Data1Ieee1609Dot2BaseTypesUint81
Ieee1609Dot2SignedDataPayload1
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
Ieee1609Dot2MissingCrlIdentifierIeee1609Dot2HeaderInfo1Ieee1609Dot2BaseTypesCrlSeries1
Ieee1609Dot2BaseTypesHashedId31
Ieee1609Dot2BaseTypesNinetyDegreeIntIeee1609Dot2BaseTypesKnownLatitude1
Ieee1609Dot2BaseTypesLatitude1
Ieee1609Dot2BaseTypesUnknownLatitude1
ITS-ContainerNumberOfOccupants
EtsiTs103759ObsPduEtsiGnEtsiTs103759SetObsPdu1Ieee1609Dot2BaseTypesOpaque1
EtsiTs103759ObsPduIeee1609Dot2DataEtsiTs103759SetObsPdu1Ieee1609Dot2BaseTypesOpaque1
EtsiTs103759ObsPduWsmpEtsiTs103759SetObsPdu1Ieee1609Dot2BaseTypesOpaque1
Ieee1609Dot2BaseTypesOneEightyDegreeIntIeee1609Dot2BaseTypesKnownLongitude1
Ieee1609Dot2BaseTypesLongitude1
Ieee1609Dot2BaseTypesUnknownLongitude1
Ieee1609Dot2BaseTypesOpaqueIeee1609Dot2AesCcmCiphertext1
Ieee1609Dot2Ieee1609Dot2Content3
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
Ieee1609Dot2BaseTypesEccP384CurvePoint2
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
Ieee1609Dot2SignedData1Ieee1609Dot2BaseTypesEcdsaP384Signature2
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
Ieee1609Dot2BaseTypesThreeDLocationEtsiTs103759EtsiTs103759Data1Ieee1609Dot2BaseTypesElevation1
Ieee1609Dot2HeaderInfo1Ieee1609Dot2BaseTypesLatitude1
Ieee1609Dot2BaseTypesLongitude1
Ieee1609Dot2BaseTypesTime32EtsiTs103097ExtensionModuleEtsiTs102941CrlRequest1Ieee1609Dot2BaseTypesUint321
Ieee1609Dot2BaseTypesValidityPeriod1
Ieee1609Dot2BaseTypesTime64EtsiTs103759EtsiTs103759Data1Ieee1609Dot2BaseTypesUint641
Ieee1609Dot2HeaderInfo2
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
EtsiTs103759EtsiTs103759Data1
EtsiTs103759AsrBsmIdBsmTgt1
EtsiTs103759AsrCamIdCamTgt1
EtsiTs103759MbrCommonObservationsIdMbObs1
EtsiTs103759IdObsPdu1
Ieee1609Dot2Ieee1609Dot2Data1
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
-
Parameterized Type Assignments Cross Reference Table
Parameterized Type Assignments Cross Reference Table - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Parameterized Type Assignments Cross Reference
Module nameType nameParametersIncoming referencesOutgoing references
NameType or ClassModule nameEntity nameNumberModule nameEntity nameNumber
EtsiTs103097ModuleEtsiTs103097Data-EncryptedToBeEncryptedDataContentEtsiTs103097ModuleEtsiTs103097Data-Encrypted-Unicast1EtsiTs103097ModuleEtsiTs103097Data2
EtsiTs103097ModuleEtsiTs103097Data-SignedAndEncrypted1
EtsiTs103097ModuleEtsiTs103097Data-SignedAndEncrypted-Unicast2
EtsiTs103097ModuleEtsiTs103097Data-Encrypted-UnicastToBeEncryptedDataContentEtsiTs103097ModuleEtsiTs103097Data-Encrypted1
EtsiTs103097ModuleEtsiTs103097Data-Unsecured1
EtsiTs103097ModuleEtsiTs103097Data-SignedToBeSignedDataContentEtsiTs103097ModuleEtsiTs103097Data-SignedAndEncrypted1EtsiTs103097ModuleEtsiTs103097Data2
EtsiTs103097ModuleEtsiTs103097Data-SignedAndEncrypted-Unicast2
EtsiTs103097ModuleEtsiTs103097Data-SignedAndEncryptedToBesignedAndEncryptedDataContentEtsiTs103097ModuleEtsiTs103097Data-Encrypted1
EtsiTs103097ModuleEtsiTs103097Data-Signed1
EtsiTs103097ModuleEtsiTs103097Data-SignedAndEncrypted-UnicastToBesignedAndEncryptedDataContentEtsiTs103759EtsiTs103759Data-SignedAndEncrypted-Unicast1EtsiTs103097ModuleEtsiTs103097Data-Encrypted2
EtsiTs103097ModuleEtsiTs103097Data-Signed2
EtsiTs103097ModuleEtsiTs103097Data-UnsecuredToBeSentDataContentEtsiTs103097ModuleEtsiTs103097Data-Encrypted-Unicast1EtsiTs103097ModuleEtsiTs103097Data1
EtsiTs103097ExtensionModuleExtensionExtensionTypesEXT-TYPEEtsiTs103097ExtensionModuleEtsiOriginatingHeaderInfoExtension1EtsiTs103097ExtensionModuleEXT-TYPE6
EtsiTs103759MbSingleObservationSetMbSingleObsC-ASR-SINGLE-OBSEtsiTs103759AsrBsmSetMbObsTgtsBsm3EtsiTs103759C-ASR-SINGLE-OBS30
EtsiTs103759AsrCamSetMbObsTgtsCam6
EtsiTs103759NonV2xPduEvidenceItemSetMbEvC-ASR-EVEtsiTs103759TemplateAsr3EtsiTs103759C-ASR-EV9
EtsiTs103759ObservationsByTargetSetAsrObsByTgtC-ASR-OBS-BY-TGTEtsiTs103759TemplateAsr3EtsiTs103759C-ASR-OBS-BY-TGT9
EtsiTs103759TemplateAsrObservationSetC-ASR-OBS-BY-TGTEtsiTs103759AsrBsmAsrBsm1EtsiTs103759C-ASR-EV3
NonV2xPduEvidenceSetC-ASR-EVEtsiTs103759AsrCamAsrCam1EtsiTs103759C-ASR-OBS-BY-TGT3
EtsiTs103759NonV2xPduEvidenceItem3
EtsiTs103759ObservationsByTarget3
EtsiTs103759V2xPduStream3
-
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
EtsiTs103097ExtensionModuleetsiTs102941CrlRequestIdEtsiTs103097HeaderInfoExtensionIdEtsiTs103097ExtensionModuleEtsiTs103097HeaderInfoExtensions1EtsiTs103097ExtensionModuleEtsiTs103097HeaderInfoExtensionId1
EtsiTs103097ExtensionModuleetsiTs102941DeltaCtlRequestIdEtsiTs103097HeaderInfoExtensionIdEtsiTs103097ExtensionModuleEtsiTs103097HeaderInfoExtensions1EtsiTs103097ExtensionModuleEtsiTs103097HeaderInfoExtensionId1
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
EtsiTs103097ExtensionModuleEXT-TYPEEtsiTs103097ExtensionModuleEtsiTs103097HeaderInfoExtensions1EtsiTs103097ExtensionModuleExtId1
EtsiTs103097ExtensionModuleExtension6
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
EtsiTs103097ExtensionModuleEtsiTs103097HeaderInfoExtensionsEXT-TYPEEtsiTs103097ExtensionModuleEtsiOriginatingHeaderInfoExtension1EtsiTs103097ExtensionModuleEtsiTs102941CrlRequest1
EtsiTs103097ExtensionModuleetsiTs102941CrlRequestId1
EtsiTs103097ExtensionModuleEtsiTs102941DeltaCtlRequest1
EtsiTs103097ExtensionModuleetsiTs102941DeltaCtlRequestId1
EtsiTs103097ExtensionModuleEXT-TYPE1
Ieee1609Dot2Ieee1609Dot2HeaderInfoContributedExtensionsIEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSIONIeee1609Dot2ContributedExtensionBlock2Ieee1609Dot2etsiHeaderInfoContributorId1
EtsiTs103097ExtensionModuleEtsiOriginatingHeaderInfoExtension1
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
-

Schema Files

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

Schema File EtsiTs103097ExtensionModule.asn
Schema File EtsiTs103097ExtensionModule.asn

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

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

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

IMPORTS

HashedId8, Time32

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-3 (3)} WITH SUCCESSORS;

FROM Ieee1609Dot2BaseTypes {} WITH SUCCESSORS;

IMPORTS;

ExtensionModuleVersion ::= INTEGER (1)

Extension {EXT-TYPE: ExtensionTypes} ::= SEQUENCE {

id EXT-TYPE.&extId ({ExtensionTypes}),

content EXT-TYPE.&ExtContent ({ExtensionTypes} {@.id})

}

Extension {EXT-TYPE: ExtensionTypes} ::= SEQUENCE {}

EXT-TYPE ::= CLASS {

&extId ExtId,

&ExtContent

}

EXT-TYPE ::= CLASS {}

WITH SYNTAX {

&ExtContent IDENTIFIED BY &extId

}

WITH SYNTAX {}

ExtId ::= INTEGER (0..255)

EtsiOriginatingHeaderInfoExtension ::= Extension {{EtsiTs103097HeaderInfoExtensions}}

EtsiTs103097HeaderInfoExtensionId ::= ExtId

etsiTs102941CrlRequestId EtsiTs103097HeaderInfoExtensionId ::= 1 --'01'H

etsiTs102941DeltaCtlRequestId EtsiTs103097HeaderInfoExtensionId ::= 2 --'02'H

EtsiTs102941CrlRequest ::= SEQUENCE {

issuerId HashedId8,

lastKnownUpdate Time32 OPTIONAL

}

EtsiTs102941CrlRequest ::= SEQUENCE {}

EtsiTs102941CtlRequest ::= SEQUENCE {

issuerId HashedId8,

lastKnownCtlSequence INTEGER (0..255) OPTIONAL

}

EtsiTs102941CtlRequest ::= SEQUENCE {}

EtsiTs102941DeltaCtlRequest ::= EtsiTs102941CtlRequest

END

Schema File EtsiTs103097Module.asn
Schema File EtsiTs103097Module.asn

EtsiTs103097Module {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg5 (5) secHeaders (103097) core (1)

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

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

IMPORTS

Ieee1609Dot2Data, 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-4 (4)} WITH SUCCESSORS

FROM Ieee1609Dot2 {} WITH SUCCESSORS

ExtensionModuleVersion

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

secHeaders (103097) extension (2) major-version-1 (1) minor-version-1 (1)};

IMPORTS;

EtsiTs103097Certificate ::= Certificate (WITH COMPONENTS {

...,

toBeSigned (WITH COMPONENTS {

...,

id (WITH COMPONENTS {

...,

linkageData ABSENT,

binaryId ABSENT

}),

id (WITH COMPONENTS {}),

certRequestPermissions ABSENT,

canRequestRollover ABSENT

})

toBeSigned (WITH COMPONENTS {})

})

EtsiTs103097Certificate ::= Certificate (WITH COMPONENTS {})

EtsiTs103097Data ::= Ieee1609Dot2Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

...,

signedData (WITH COMPONENTS {

..., -- constraints on signed data headers

tbsData (WITH COMPONENTS {

headerInfo (WITH COMPONENTS {

...,

generationTime PRESENT,

p2pcdLearningRequest ABSENT,

missingCrlIdentifier ABSENT

})

headerInfo (WITH COMPONENTS {})

}),

tbsData (WITH COMPONENTS {}),

signer (WITH COMPONENTS {

..., --constraints on the certificate

certificate ((WITH COMPONENT (EtsiTs103097Certificate)) ^ (SIZE (1)))

})

signer (WITH COMPONENTS {})

}),

signedData (WITH COMPONENTS {}),

encryptedData (WITH COMPONENTS {

..., -- constraints on encrypted data headers

recipients (WITH COMPONENT ((WITH COMPONENTS {

...,

pskRecipInfo ABSENT,

symmRecipInfo ABSENT,

rekRecipInfo ABSENT

})))

recipients (WITH COMPONENT ((WITH COMPONENTS {})))

}),

encryptedData (WITH COMPONENTS {}),

signedCertificateRequest ABSENT

})

content (WITH COMPONENTS {})

})

EtsiTs103097Data ::= Ieee1609Dot2Data (WITH COMPONENTS {})

EtsiTs103097Data-Unsecured {ToBeSentDataContent} ::= EtsiTs103097Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {unsecuredData (CONTAINING ToBeSentDataContent)})

})

EtsiTs103097Data-Unsecured {ToBeSentDataContent} ::= EtsiTs103097Data (WITH COMPONENTS {})

EtsiTs103097Data-Signed {ToBeSignedDataContent} ::= EtsiTs103097Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

signedData (WITH COMPONENTS {

...,

tbsData (WITH COMPONENTS {

payload (WITH COMPONENTS {

data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {unsecuredData (CONTAINING

ToBeSignedDataContent)})

content (WITH COMPONENTS {})

}) PRESENT

data (WITH COMPONENTS {}) PRESENT

})

payload (WITH COMPONENTS {})

})

tbsData (WITH COMPONENTS {})

})

signedData (WITH COMPONENTS {})

})

content (WITH COMPONENTS {})

})

EtsiTs103097Data-Signed {ToBeSignedDataContent} ::= EtsiTs103097Data (WITH COMPONENTS {})

EtsiTs103097Data-SignedExternalPayload ::= EtsiTs103097Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

signedData (WITH COMPONENTS {

...,

tbsData (WITH COMPONENTS {payload (WITH COMPONENTS {extDataHash (WITH

COMPONENTS {sha256HashedData PRESENT}) PRESENT})})

tbsData (WITH COMPONENTS {})

})

signedData (WITH COMPONENTS {})

})

content (WITH COMPONENTS {})

})

EtsiTs103097Data-Encrypted {ToBeEncryptedDataContent} ::= EtsiTs103097Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

encryptedData (WITH COMPONENTS {

...,

ciphertext (WITH COMPONENTS {

...,

aes128ccm (WITH COMPONENTS {

...,

ccmCiphertext (CONSTRAINED BY {-- ccm encryption of --

ToBeEncryptedDataContent})

ccmCiphertext (CONSTRAINED BY {})

})

aes128ccm (WITH COMPONENTS {})

})

ciphertext (WITH COMPONENTS {})

})

encryptedData (WITH COMPONENTS {})

})

content (WITH COMPONENTS {})

})

EtsiTs103097Data-Encrypted {ToBeEncryptedDataContent} ::= EtsiTs103097Data (WITH COMPONENTS {})

EtsiTs103097Data-SignedAndEncrypted {ToBesignedAndEncryptedDataContent} ::= EtsiTs103097Data-Encrypted

{EtsiTs103097Data-Signed {ToBesignedAndEncryptedDataContent}}

EtsiTs103097Data-Encrypted-Unicast {ToBeEncryptedDataContent} ::= EtsiTs103097Data-Encrypted {} (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

encryptedData (WITH COMPONENTS {

...,

recipients (SIZE (1))

})

encryptedData (WITH COMPONENTS {})

})

content (WITH COMPONENTS {})

})

EtsiTs103097Data-SignedAndEncrypted-Unicast {ToBesignedAndEncryptedDataContent} ::= EtsiTs103097Data-Encrypted

{EtsiTs103097Data-Signed {ToBesignedAndEncryptedDataContent}} (WITH

COMPONENTS {

...,

content (WITH COMPONENTS {

encryptedData (WITH COMPONENTS {

...,

recipients (SIZE (1))

})

encryptedData (WITH COMPONENTS {})

})

content (WITH COMPONENTS {})

})

COMPONENTS {})

EtsiTs103097Data-Encrypted-1 {ToBeEncryptedDataContent} ::= EtsiTs103097Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

encryptedData (WITH COMPONENTS {

...,

ciphertext (WITH COMPONENTS {

...,

aes128ccm (WITH COMPONENTS {

...,

ccmCiphertext (CONSTRAINED BY {-- ccm encryption of --

ToBeEncryptedDataContent})

ccmCiphertext (CONSTRAINED BY {})

})

aes128ccm (WITH COMPONENTS {})

})

ciphertext (WITH COMPONENTS {})

})

encryptedData (WITH COMPONENTS {})

})

content (WITH COMPONENTS {})

})

EtsiTs103097Data-Signed-1 {ToBeSignedDataContent} ::= EtsiTs103097Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

signedData (WITH COMPONENTS {

...,

tbsData (WITH COMPONENTS {

payload (WITH COMPONENTS {

data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {unsecuredData (CONTAINING

ToBeSignedDataContent)})

content (WITH COMPONENTS {})

}) PRESENT

data (WITH COMPONENTS {}) PRESENT

})

payload (WITH COMPONENTS {})

})

tbsData (WITH COMPONENTS {})

})

signedData (WITH COMPONENTS {})

})

content (WITH COMPONENTS {})

})

EtsiTs103097Data-SignedAndEncrypted-Unicast-1 {ToBesignedAndEncryptedDataContent} ::= EtsiTs103097Data-Encrypted

{EtsiTs103097Data-Signed {ToBesignedAndEncryptedDataContent}} (WITH

COMPONENTS {

...,

content (WITH COMPONENTS {

encryptedData (WITH COMPONENTS {

...,

recipients (SIZE (1))

})

encryptedData (WITH COMPONENTS {})

})

content (WITH COMPONENTS {})

})

COMPONENTS {})

END

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

EtsiTs103097Data-SignedAndEncrypted-Unicast

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

(103097) core (1) major-version-3 (3) minor-version-1 (1)} WITH SUCCESSORS

FROM EtsiTs103097Module {} WITH SUCCESSORS

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-4 (4)} WITH SUCCESSORS

FROM Ieee1609Dot2 {} WITH SUCCESSORS

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-3 (3)} WITH SUCCESSORS

FROM Ieee1609Dot2BaseTypes {} WITH SUCCESSORS

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)} WITH SUCCESSORS

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)} WITH SUCCESSORS

FROM EtsiTs103759AsrBsm {} WITH SUCCESSORS

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)} WITH SUCCESSORS

FROM EtsiTs103759AsrCam {} WITH SUCCESSORS

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)} WITH SUCCESSORS;

FROM EtsiTs103759AsrDenm {} WITH SUCCESSORS;

IMPORTS;

EtsiTs103759Data

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

EtsiTs103759Data ::= SEQUENCE {

version Uint8,

generationTime Time64,

observationLocation ThreeDLocation,

report AidSpecificReport

}

EtsiTs103759Data ::= SEQUENCE {}

EtsiTs103759Data-SignedAndEncrypted-Unicast

This structure is the SPDU used to send a signed and encrypted EtsiTs103759Data to the MA. For the signature to be valid the signing certificate shall conform to the authorization ticket profile given in clause 7.2.1 of ETSI TS 103 097 v2.1.1, where the appPermissions field in the authorization ticket allows signing misbehaviour reports. The signed EtsiTs103759Data shall be encrypted to the MA using the encryptionKey in the MA's certificate.
-

EtsiTs103759Data-SignedAndEncrypted-Unicast ::= EtsiTs103097Data-SignedAndEncrypted-Unicast {EtsiTs103759Data}

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)} WITH SUCCESSORS

FROM EtsiTs103759 {} WITH SUCCESSORS

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)} WITH SUCCESSORS

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-3 (3)} WITH SUCCESSORS;

FROM Ieee1609Dot2BaseTypes {} WITH SUCCESSORS;

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)} WITH SUCCESSORS

FROM EtsiTs103759 {} WITH SUCCESSORS

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)} WITH SUCCESSORS

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-3 (3)} WITH SUCCESSORS;

FROM Ieee1609Dot2BaseTypes {} WITH SUCCESSORS;

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)} WITH SUCCESSORS

FROM EtsiTs103759 {} WITH SUCCESSORS

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-3 (3)} WITH SUCCESSORS;

FROM Ieee1609Dot2BaseTypes {} WITH SUCCESSORS;

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

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

c-ObsSecurity-HeaderIncWithSecurityProfile IdMbObs ::= 2

c-ObsSecurity-HeaderPsidIncWithCertificate IdMbObs ::= 3

c-ObsSecurity-MessageIncWithSsp IdMbObs ::= 4

c-ObsSecurity-HeaderTimeOutsideCertificateValidity IdMbObs ::= 5

c-ObsSecurity-MessageLocationOutsideCertificateValidity IdMbObs ::= 6

c-ObsSecurity-HeaderLocationOutsideCertificateValidity IdMbObs ::= 7

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

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

c-ObsPosition-ChangeTooLarge IdMbObs ::= 4

-- 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}

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

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

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

c-ObsSpeed-ChangeTooLarge IdMbObs ::= 5

-- Individual Information Objects

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

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

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

c-ObsLongAcc-ValueTooLarge IdMbObs ::= 4

-- Individual Information Objects

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

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-4 (4)}

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-3 (3)} 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) version-1 (1) minor-version-1 (1)} 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,

...,

signedX509CertificateRequest 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,

...,

flags BIT STRING {cubk (0)} (SIZE (8)) OPTIONAL

} (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-3 (3)}

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,

ecdsaNistP384Signature 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,

ecdsaNistP384 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),

unavailable (1023)

} (-1023..1023)

CurvatureValue ::= INTEGER {} (-1023..1023)

CurvatureConfidence ::= ENUMERATED {onePerMeter-0-00002 (0), onePerMeter-0-0001 (1), onePerMeter-0-0005

(2), onePerMeter-0-002 (3), onePerMeter-0-01 (4), onePerMeter-0-1 (5),

outOfRange (6), unavailable (7)}

CurvatureConfidence ::= ENUMERATED {}

CurvatureCalculationMode ::= ENUMERATED {yawRateUsed (0), yawRateNotUsed (1), unavailable (2), ...}

Heading ::= SEQUENCE {

headingValue HeadingValue,

headingConfidence HeadingConfidence

}

Heading ::= SEQUENCE {}

HeadingValue ::= INTEGER {

wgs84North (0),

wgs84East (900),

wgs84South (1800),

wgs84West (2700),

unavailable (3601)

} (0..3601)

HeadingValue ::= INTEGER {} (0..3601)

HeadingConfidence ::= INTEGER {

equalOrWithinZeroPointOneDegree (1),

equalOrWithinOneDegree (10),

outOfRange (126),

unavailable (127)

} (1..127)

HeadingConfidence ::= INTEGER {} (1..127)

LanePosition ::= INTEGER {

offTheRoad (-1),

hardShoulder (0),

outermostDrivingLane (1),

secondLaneFromOutside (2)

} (-1..14)

LanePosition ::= INTEGER {} (-1..14)

ClosedLanes ::= SEQUENCE {

innerhardShoulderStatus HardShoulderStatus OPTIONAL,

outerhardShoulderStatus HardShoulderStatus OPTIONAL,

drivingLaneStatus DrivingLaneStatus OPTIONAL,

...

}

ClosedLanes ::= SEQUENCE {}

HardShoulderStatus ::= ENUMERATED {availableForStopping (0), closed (1), availableForDriving (2)}

DrivingLaneStatus ::= BIT STRING (SIZE (1..13))

PerformanceClass ::= INTEGER {

unavailable (0),

performanceClassA (1),

performanceClassB (2)

} (0..7)

PerformanceClass ::= INTEGER {} (0..7)

SpeedValue ::= INTEGER {

standstill (0),

oneCentimeterPerSec (1),

unavailable (16383)

} (0..16383)

SpeedValue ::= INTEGER {} (0..16383)

SpeedConfidence ::= INTEGER {

equalOrWithinOneCentimeterPerSec (1),

equalOrWithinOneMeterPerSec (100),

outOfRange (126),

unavailable (127)

} (1..127)

SpeedConfidence ::= INTEGER {} (1..127)

VehicleMass ::= INTEGER {

hundredKg (1),

unavailable (1024)

} (1..1024)

VehicleMass ::= INTEGER {} (1..1024)

Speed ::= SEQUENCE {

speedValue SpeedValue,

speedConfidence SpeedConfidence

}

Speed ::= SEQUENCE {}

DriveDirection ::= ENUMERATED {forward (0), backward (1), unavailable (2)}

EmbarkationStatus ::= BOOLEAN

LongitudinalAcceleration ::= SEQUENCE {

longitudinalAccelerationValue LongitudinalAccelerationValue,

longitudinalAccelerationConfidence AccelerationConfidence

}

LongitudinalAcceleration ::= SEQUENCE {}

LongitudinalAccelerationValue ::= INTEGER {

pointOneMeterPerSecSquaredForward (1),

pointOneMeterPerSecSquaredBackward (-1),

unavailable (161)

} (-160..161)

LongitudinalAccelerationValue ::= INTEGER {} (-160..161)

AccelerationConfidence ::= INTEGER {

pointOneMeterPerSecSquared (1),

outOfRange (101),

unavailable (102)

} (0..102)

AccelerationConfidence ::= INTEGER {} (0..102)

LateralAcceleration ::= SEQUENCE {

lateralAccelerationValue LateralAccelerationValue,

lateralAccelerationConfidence AccelerationConfidence

}

LateralAcceleration ::= SEQUENCE {}

LateralAccelerationValue ::= INTEGER {

pointOneMeterPerSecSquaredToRight (-1),

pointOneMeterPerSecSquaredToLeft (1),

unavailable (161)

} (-160..161)

LateralAccelerationValue ::= INTEGER {} (-160..161)

VerticalAcceleration ::= SEQUENCE {

verticalAccelerationValue VerticalAccelerationValue,

verticalAccelerationConfidence AccelerationConfidence

}

VerticalAcceleration ::= SEQUENCE {}

VerticalAccelerationValue ::= INTEGER {

pointOneMeterPerSecSquaredUp (1),

pointOneMeterPerSecSquaredDown (-1),

unavailable (161)

} (-160..161)

VerticalAccelerationValue ::= INTEGER {} (-160..161)

StationType ::= INTEGER {

unknown (0),

pedestrian (1),

cyclist (2),

moped (3),

motorcycle (4),

passengerCar (5),

bus (6),

lightTruck (7),

heavyTruck (8),

trailer (9),

specialVehicles (10),

tram (11),

roadSideUnit (15)

} (0..255)

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

ExteriorLights ::= BIT STRING {

lowBeamHeadlightsOn (0),

highBeamHeadlightsOn (1),

leftTurnSignalOn (2),

rightTurnSignalOn (3),

daytimeRunningLightsOn (4),

reverseLightOn (5),

fogLightOn (6),

parkingLightsOn (7)

} (SIZE (8))

ExteriorLights ::= BIT STRING {} (SIZE (8))

DangerousGoodsBasic ::= ENUMERATED {explosives1 (0), explosives2 (1), explosives3 (2), explosives4 (3),

explosives5 (4), explosives6 (5), flammableGases (6), nonFlammableGases (7),

toxicGases (8), flammableLiquids (9), flammableSolids (10),

substancesLiableToSpontaneousCombustion (11),

substancesEmittingFlammableGasesUponContactWithWater (12), oxidizingSubstances

(13), organicPeroxides (14), toxicSubstances (15), infectiousSubstances

(16), radioactiveMaterial (17), corrosiveSubstances (18),

miscellaneousDangerousSubstances (19)}

DangerousGoodsBasic ::= ENUMERATED {}

DangerousGoodsExtended ::= SEQUENCE {

dangerousGoodsType DangerousGoodsBasic,

unNumber INTEGER (0..9999),

elevatedTemperature BOOLEAN,

tunnelsRestricted BOOLEAN,

limitedQuantity BOOLEAN,

emergencyActionCode IA5String (SIZE (1..24)) OPTIONAL,

phoneNumber PhoneNumber OPTIONAL,

companyName UTF8String (SIZE (1..24)) OPTIONAL,

...

}

DangerousGoodsExtended ::= SEQUENCE {}

SpecialTransportType ::= BIT STRING {

heavyLoad (0),

excessWidth (1),

excessLength (2),

excessHeight (3)

} (SIZE (4))

SpecialTransportType ::= BIT STRING {} (SIZE (4))

LightBarSirenInUse ::= BIT STRING {

lightBarActivated (0),

sirenActivated (1)

} (SIZE (2))

LightBarSirenInUse ::= BIT STRING {} (SIZE (2))

HeightLonCarr ::= INTEGER {

oneCentimeter (1),

unavailable (100)

} (1..100)

HeightLonCarr ::= INTEGER {} (1..100)

PosLonCarr ::= INTEGER {

oneCentimeter (1),

unavailable (127)

} (1..127)

PosLonCarr ::= INTEGER {} (1..127)

PosPillar ::= INTEGER {

tenCentimeters (1),

unavailable (30)

} (1..30)

PosPillar ::= INTEGER {} (1..30)

PosCentMass ::= INTEGER {

tenCentimeters (1),

unavailable (63)

} (1..63)

PosCentMass ::= INTEGER {} (1..63)

RequestResponseIndication ::= ENUMERATED {request (0), response (1)}

SpeedLimit ::= INTEGER {oneKmPerHour (1)} (1..255)

StationarySince ::= ENUMERATED {lessThan1Minute (0), lessThan2Minutes (1), lessThan15Minutes (2),

equalOrGreater15Minutes (3)}

StationarySince ::= ENUMERATED {}

Temperature ::= INTEGER {

equalOrSmallerThanMinus60Deg (-60),

oneDegreeCelsius (1),

equalOrGreaterThan67Deg (67)

} (-60..67)

Temperature ::= INTEGER {} (-60..67)

TrafficRule ::= ENUMERATED {noPassing (0), noPassingForTrucks (1), passToRight (2), passToLeft

(3), ...}

TrafficRule ::= ENUMERATED {}

WheelBaseVehicle ::= INTEGER {

tenCentimeters (1),

unavailable (127)

} (1..127)

WheelBaseVehicle ::= INTEGER {} (1..127)

TurningRadius ::= INTEGER {

point4Meters (1),

unavailable (255)

} (1..255)

TurningRadius ::= INTEGER {} (1..255)

PosFrontAx ::= INTEGER {

tenCentimeters (1),

unavailable (20)

} (1..20)

PosFrontAx ::= INTEGER {} (1..20)

PositionOfOccupants ::= BIT STRING {

row1LeftOccupied (0),

row1RightOccupied (1),

row1MidOccupied (2),

row1NotDetectable (3),

row1NotPresent (4),

row2LeftOccupied (5),

row2RightOccupied (6),

row2MidOccupied (7),

row2NotDetectable (8),

row2NotPresent (9),

row3LeftOccupied (10),

row3RightOccupied (11),

row3MidOccupied (12),

row3NotDetectable (13),

row3NotPresent (14),

row4LeftOccupied (15),

row4RightOccupied (16),

row4MidOccupied (17),

row4NotDetectable (18),

row4NotPresent (19)

} (SIZE (20))

PositionOfOccupants ::= BIT STRING {} (SIZE (20))

PositioningSolutionType ::= ENUMERATED {noPositioningSolution (0), sGNSS (1), dGNSS (2), sGNSSplusDR (3),

dGNSSplusDR (4), dR (5), ...}

PositioningSolutionType ::= ENUMERATED {}

VehicleIdentification ::= SEQUENCE {

wMInumber WMInumber OPTIONAL,

vDS VDS OPTIONAL,

...

}

VehicleIdentification ::= SEQUENCE {}

WMInumber ::= IA5String (SIZE (1..3))

VDS ::= IA5String (SIZE (6))

EnergyStorageType ::= BIT STRING {

hydrogenStorage (0),

electricEnergyStorage (1),

liquidPropaneGas (2),

compressedNaturalGas (3),

diesel (4),

gasoline (5),

ammonia (6)

} (SIZE (7))

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

VehicleLength ::= SEQUENCE {

vehicleLengthValue VehicleLengthValue,

vehicleLengthConfidenceIndication VehicleLengthConfidenceIndication

}

VehicleLength ::= SEQUENCE {}

VehicleLengthValue ::= INTEGER {

tenCentimeters (1),

outOfRange (1022),

unavailable (1023)

} (1..1023)

VehicleLengthValue ::= INTEGER {} (1..1023)

VehicleLengthConfidenceIndication ::= ENUMERATED {noTrailerPresent (0), trailerPresentWithKnownLength (1),

trailerPresentWithUnknownLength (2), trailerPresenceIsUnknown (3), unavailable

(4)}

VehicleLengthConfidenceIndication ::= ENUMERATED {}

VehicleWidth ::= INTEGER {

tenCentimeters (1),

outOfRange (61),

unavailable (62)

} (1..62)

VehicleWidth ::= INTEGER {} (1..62)

PathHistory ::= SEQUENCE (SIZE (0..40)) OF PathPoint

EmergencyPriority ::= BIT STRING {

requestForRightOfWay (0),

requestForFreeCrossingAtATrafficLight (1)

} (SIZE (2))

EmergencyPriority ::= BIT STRING {} (SIZE (2))

InformationQuality ::= INTEGER {

unavailable (0),

lowest (1),

highest (7)

} (0..7)

InformationQuality ::= INTEGER {} (0..7)

RoadType ::= ENUMERATED {urban-NoStructuralSeparationToOppositeLanes (0),

urban-WithStructuralSeparationToOppositeLanes (1),

nonUrban-NoStructuralSeparationToOppositeLanes (2),

nonUrban-WithStructuralSeparationToOppositeLanes (3)}

RoadType ::= ENUMERATED {}

SteeringWheelAngle ::= SEQUENCE {

steeringWheelAngleValue SteeringWheelAngleValue,

steeringWheelAngleConfidence SteeringWheelAngleConfidence

}

SteeringWheelAngle ::= SEQUENCE {}

SteeringWheelAngleValue ::= INTEGER {

straight (0),

onePointFiveDegreesToRight (-1),

onePointFiveDegreesToLeft (1),

unavailable (512)

} (-511..512)

SteeringWheelAngleValue ::= INTEGER {} (-511..512)

SteeringWheelAngleConfidence ::= INTEGER {

equalOrWithinOnePointFiveDegree (1),

outOfRange (126),

unavailable (127)

} (1..127)

SteeringWheelAngleConfidence ::= INTEGER {} (1..127)

TimestampIts ::= INTEGER {

utcStartOf2004 (0),

oneMillisecAfterUTCStartOf2004 (1)

} (0..4398046511103)

TimestampIts ::= INTEGER {} (0..4398046511103)

VehicleRole ::= ENUMERATED {default (0), publicTransport (1), specialTransport (2),

dangerousGoods (3), roadWork (4), rescue (5), emergency (6), safetyCar (7),

agriculture (8), commercial (9), military (10), roadOperator (11), taxi (12),

reserved1 (13), reserved2 (14), reserved3 (15)}

VehicleRole ::= ENUMERATED {}

YawRate ::= SEQUENCE {

yawRateValue YawRateValue,

yawRateConfidence YawRateConfidence

}

YawRate ::= SEQUENCE {}

YawRateValue ::= INTEGER {

straight (0),

degSec-000-01ToRight (-1),

degSec-000-01ToLeft (1),

unavailable (32767)

} (-32766..32767)

YawRateValue ::= INTEGER {} (-32766..32767)

YawRateConfidence ::= ENUMERATED {degSec-000-01 (0), degSec-000-05 (1), degSec-000-10 (2),

degSec-001-00 (3), degSec-005-00 (4), degSec-010-00 (5), degSec-100-00 (6),

outOfRange (7), unavailable (8)}

YawRateConfidence ::= ENUMERATED {}

ProtectedZoneType ::= ENUMERATED {permanentCenDsrcTolling (0), ..., temporaryCenDsrcTolling (1)}

RelevanceDistance ::= ENUMERATED {lessThan50m (0), lessThan100m (1), lessThan200m (2), lessThan500m

(3), lessThan1000m (4), lessThan5km (5), lessThan10km (6), over10km (7)}

RelevanceDistance ::= ENUMERATED {}

RelevanceTrafficDirection ::= ENUMERATED {allTrafficDirections (0), upstreamTraffic (1), downstreamTraffic

(2), oppositeTraffic (3)}

RelevanceTrafficDirection ::= ENUMERATED {}

TransmissionInterval ::= INTEGER {

oneMilliSecond (1),

tenSeconds (10000)

} (1..10000)

TransmissionInterval ::= INTEGER {} (1..10000)

ValidityDuration ::= INTEGER {

timeOfDetection (0),

oneSecondAfterDetection (1)

} (0..86400)

ValidityDuration ::= INTEGER {} (0..86400)

ActionID ::= SEQUENCE {

originatingStationID StationID,

sequenceNumber SequenceNumber

}

ActionID ::= SEQUENCE {}

ItineraryPath ::= SEQUENCE SIZE (1..40) OF ReferencePosition

ProtectedCommunicationZone ::= SEQUENCE {

protectedZoneType ProtectedZoneType,

expiryTime TimestampIts OPTIONAL,

protectedZoneLatitude Latitude,

protectedZoneLongitude Longitude,

protectedZoneRadius ProtectedZoneRadius OPTIONAL,

protectedZoneID ProtectedZoneID OPTIONAL,

...

}

ProtectedCommunicationZone ::= SEQUENCE {}

Traces ::= SEQUENCE SIZE (1..7) OF PathHistory

NumberOfOccupants ::= INTEGER {

oneOccupant (1),

unavailable (127)

} (0..127)

NumberOfOccupants ::= INTEGER {} (0..127)

SequenceNumber ::= INTEGER (0..65535)

PositionOfPillars ::= SEQUENCE (SIZE (1..3, ...)) OF PosPillar

RestrictedTypes ::= SEQUENCE (SIZE (1..3, ...)) OF StationType

EventHistory ::= SEQUENCE (SIZE (1..23)) OF EventPoint

EventPoint ::= SEQUENCE {

eventPosition DeltaReferencePosition,

eventDeltaTime PathDeltaTime OPTIONAL,

informationQuality InformationQuality

}

EventPoint ::= SEQUENCE {}

ProtectedCommunicationZonesRSU ::= SEQUENCE (SIZE (1..16)) OF ProtectedCommunicationZone

CenDsrcTollingZone ::= SEQUENCE {

protectedZoneLatitude Latitude,

protectedZoneLongitude Longitude,

cenDsrcTollingZoneID CenDsrcTollingZoneID OPTIONAL,

...

}

CenDsrcTollingZone ::= SEQUENCE {}

ProtectedZoneRadius ::= INTEGER {oneMeter (1)} (1..255, ...)

ProtectedZoneID ::= INTEGER (0..134217727)

CenDsrcTollingZoneID ::= ProtectedZoneID

DigitalMap ::= SEQUENCE (SIZE (1..256)) OF ReferencePosition

OpeningDaysHours ::= UTF8String

PhoneNumber ::= NumericString (SIZE (1..16))

END

ITS-ContainerEND

- - -- GitLab From 401bdd9b2400eaf983f7aa8a4e865eb72c3e1a18 Mon Sep 17 00:00:00 2001 From: Virendra Kumar Date: Thu, 27 Jan 2022 14:39:23 -0500 Subject: [PATCH 15/66] Documentation html for people without .md viewer --- docs/EtsiTs103759.html | 1005 ++++++++++++++++ docs/EtsiTs103759AsrAppAgnostic.html | 812 +++++++++++++ docs/EtsiTs103759AsrBsm.html | 847 ++++++++++++++ docs/EtsiTs103759AsrCam.html | 883 ++++++++++++++ docs/EtsiTs103759AsrDenm.html | 812 +++++++++++++ docs/EtsiTs103759MbrCommonObservations.html | 1168 +++++++++++++++++++ 6 files changed, 5527 insertions(+) create mode 100644 docs/EtsiTs103759.html create mode 100644 docs/EtsiTs103759AsrAppAgnostic.html create mode 100644 docs/EtsiTs103759AsrBsm.html create mode 100644 docs/EtsiTs103759AsrCam.html create mode 100644 docs/EtsiTs103759AsrDenm.html create mode 100644 docs/EtsiTs103759MbrCommonObservations.html diff --git a/docs/EtsiTs103759.html b/docs/EtsiTs103759.html new file mode 100644 index 0000000..4351182 --- /dev/null +++ b/docs/EtsiTs103759.html @@ -0,0 +1,1005 @@ + + + + + EtsiTs103759 + + +

ASN.1 module EtsiTs103759

+

OID: {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)}

+

Imports:

+
    +
  • EtsiTs103097Module {itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) secHeaders(103097) core(1) major-version-3(3) minor-version-1(1)} WITH SUCCESSORS

    +
  • +
  • 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-4(4)} WITH SUCCESSORS

    +
  • +
  • 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-3(3)} WITH SUCCESSORS

    +
  • +
  • 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)} WITH SUCCESSORS

    +
  • +
  • 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)} WITH SUCCESSORS

    +
  • +
  • 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)} WITH SUCCESSORS

    +
  • +
  • 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)} WITH SUCCESSORS

    +
  • +
+

Data Elements:

+

EtsiTs103759Data

+

This data type is the general PDU for a misbehaviour report from an + ITS-S to the MA responsible for reports of that type.

+

Fields:

+
    +
  • version Uint8
    +contains the version number of this PDU definition. For this +version of this data type it shall be equal to 2.

    +
  • +
  • generationTime Time64
    +contains information on when this PDU was generated.

    +
  • +
  • observationLocation ThreeDLocation
    +is the location at which the last observation of +a V2X PDU was made before the decision was taken to generate a report.

    +
  • +
  • report AidSpecificReport
    +contains the AID-specific misbehaviour report.

    +
  • +
+
EtsiTs103759Data ::= SEQUENCE {
version Uint8,
generationTime Time64,
observationLocation ThreeDLocation,
report AidSpecificReport
}
+

EtsiTs103759Data-SignedAndEncrypted-Unicast

+

This structure is the SPDU used to send a signed and encrypted + EtsiTs103759Data to the MA. For the signature to be valid the signing + certificate shall conform to the authorization ticket profile given in + clause 7.2.1 of ETSI TS 103 097 v2.1.1, where the appPermissions field in + the authorization ticket allows signing misbehaviour reports. The signed + EtsiTs103759Data shall be encrypted to the MA using the encryptionKey in + the MA's certificate.

+
EtsiTs103759Data-SignedAndEncrypted-Unicast ::=
EtsiTs103097Data-SignedAndEncrypted-Unicast {
EtsiTs103759Data
}
+

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.

+

Fields:

+
    +
  • aid C-ASR .&aid ({SetAsr})
    +contains the respective ITS-AID.

    +
  • +
  • content C-ASR .&Content ({SetAsr}{@.aid})
    +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})
}
+

C-ASR

+

This data type defines the IOC for AidSpecificReport.

+
C-ASR ::= CLASS {
&aid Psid UNIQUE,
&Content
} WITH SYNTAX {&Content IDENTIFIED BY &aid}
+

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},
...
}
+
c-AsrAppAgnostic Psid ::= 270549119
+
c-AsrBsm Psid ::= 32
+
c-AsrCam Psid ::= 36
+
c-AsrDenm Psid ::= 37
+
} ::= SEQUENCE {
observations SEQUENCE (SIZE(1..MAX)) OF ObservationsByTarget
{{ObservationSet}},
v2xPduEvidence SEQUENCE (SIZE(1..MAX)) OF V2xPduStream,
nonV2xPduEvidence SEQUENCE (SIZE(0..MAX)) OF NonV2xPduEvidenceItem
{{NonV2xPduEvidenceSet}}
}
+

ObservationsByTarget

+

This data type contains all of the observations related to a + particular "target" property, e.g., speed or security.

+

Fields:

+
    +
  • tgtId C-ASR-OBS-BY-TGT .&id ({SetAsrObsByTgt})
    +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 SEQUENCE OF C-ASR-OBS-BY-TGT.&Val
    +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})
}
+

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.

+

Fields:

+
    +
  • obsId C-ASR-SINGLE-OBS .&id ({SetMbSingleObs})
    +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 C-ASR-SINGLE-OBS .&Val ({SetMbSingleObs}{@.obsId})
    +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})
}
+

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.

+

Fields:

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

    +
  • +
  • v2xPdus SEQUENCE (SIZE(1..255)) OF C-OBS-PDU.&Val
    +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 Certificate OPTIONAL
    +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 Uint8
    +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,
...
}
+

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.

+
SetObsPdu C-OBS-PDU ::= {
{ObsPduEtsiGn BY c-ObsPdu-etsiGn} |
{ObsPduIeee1609Dot2Data BY c-ObsPdu-ieee1609Dot2Data} |
{ObsPduWsmp BY c-ObsPdu-wsmp},
...
}
+

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.

+

Fields:

+
    +
  • id C-ASR-EV .&id ({SetMbEv})
    +identifies the evidence type.

    +
  • +
  • evidence C-ASR-EV .&Val ({SetMbEv}{@.id})
    +contains the evidence.

    +
  • +
+
NonV2xPduEvidenceItem {C-ASR-EV: SetMbEv} ::= SEQUENCE {
id C-ASR-EV.&id ({SetMbEv}),
evidence C-ASR-EV.&Val ({SetMbEv}{@.id})
}
+

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
} WITH SYNTAX {&Val BY &id}
+ diff --git a/docs/EtsiTs103759AsrAppAgnostic.html b/docs/EtsiTs103759AsrAppAgnostic.html new file mode 100644 index 0000000..5f28dff --- /dev/null +++ b/docs/EtsiTs103759AsrAppAgnostic.html @@ -0,0 +1,812 @@ + + + + + EtsiTs103759AsrAppAgnostic + + +

ASN.1 module EtsiTs103759AsrAppAgnostic

+

OID: {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)}

+

Data Elements:

+

AsrAppAgnostic

+

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

+
AsrAppAgnostic ::= NULL
+ diff --git a/docs/EtsiTs103759AsrBsm.html b/docs/EtsiTs103759AsrBsm.html new file mode 100644 index 0000000..9313c10 --- /dev/null +++ b/docs/EtsiTs103759AsrBsm.html @@ -0,0 +1,847 @@ + + + + + EtsiTs103759AsrBsm + + +

ASN.1 module EtsiTs103759AsrBsm

+

OID: {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)}

+

Imports:

+
    +
  • 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)} WITH SUCCESSORS

    +
  • +
  • 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)} WITH SUCCESSORS

    +
  • +
  • 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-3(3)} WITH SUCCESSORS

    +
  • +
+

Data Elements:

+

IdBsmTgt

+
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

+

Values:

+
    +
  • obs-Pos-IncWithPrev-TooSmall |
    SetMbObsPosition-Bsm C-ASR-SINGLE-OBS ::= {
    obs-Pos-IncWithPrev-TooSmall |
    obs-Pos-IncWithPrev-TooFar,
    ...
    }
    +
  • +
+

SetMbObsSpeed-Bsm

+
SetMbObsSpeed-Bsm C-ASR-SINGLE-OBS ::= {
obs-Speed-ValueTooLarge-ThresholdNoContext,
...
}
+

SetMbObsLongAcc-Bsm

+

Values:

+
    +
  • obs-LongAcc-ValueTooLarge-ThresholdNoContext |
    SetMbObsLongAcc-Bsm C-ASR-SINGLE-OBS ::= {
    obs-LongAcc-ValueTooLarge-ThresholdNoContext |
    obs-LongAcc-Implausible-Brake,
    ...
    }
    +
  • +
+

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.

+
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},
...
}
+

SetMbEvBsm

+

This data type defines the IOS for BSM Evidence

+
SetMbEvBsm C-ASR-EV ::= {
...
}
+ diff --git a/docs/EtsiTs103759AsrCam.html b/docs/EtsiTs103759AsrCam.html new file mode 100644 index 0000000..9ccb6ab --- /dev/null +++ b/docs/EtsiTs103759AsrCam.html @@ -0,0 +1,883 @@ + + + + + EtsiTs103759AsrCam + + +

ASN.1 module EtsiTs103759AsrCam

+

OID: {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)}

+

Imports:

+
    +
  • 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)} WITH SUCCESSORS

    +
  • +
  • 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)} WITH SUCCESSORS

    +
  • +
  • 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-3(3)} WITH SUCCESSORS

    +
  • +
+

Data Elements:

+

AsrCam

+

This data type is for reporting CAM issues.

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

IdCamTgt

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

+
    +
  • 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.

    +
      +
    • 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(2950) 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.

    +
    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},
    ...
    }
    +
  • +
+

SetMbEvCam

+

This data type defines the IOS for CAM Evidence.

+
SetMbEvCam C-ASR-EV ::= {
...
}
+ diff --git a/docs/EtsiTs103759AsrDenm.html b/docs/EtsiTs103759AsrDenm.html new file mode 100644 index 0000000..3dd4b4f --- /dev/null +++ b/docs/EtsiTs103759AsrDenm.html @@ -0,0 +1,812 @@ + + + + + EtsiTs103759AsrDenm + + +

ASN.1 module EtsiTs103759AsrDenm

+

OID: {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)}

+

Data Elements:

+

AsrDenm

+

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

+
AsrDenm ::= NULL
+ diff --git a/docs/EtsiTs103759MbrCommonObservations.html b/docs/EtsiTs103759MbrCommonObservations.html new file mode 100644 index 0000000..5ba4e5a --- /dev/null +++ b/docs/EtsiTs103759MbrCommonObservations.html @@ -0,0 +1,1168 @@ + + + + + EtsiTs103759MbrCommonObservations + + +

ASN.1 module EtsiTs103759MbrCommonObservations

+

OID: {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)}

+

Imports:

+
    +
  • 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)} WITH SUCCESSORS

    +
  • +
  • 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-3(3)} WITH SUCCESSORS

    +
  • +
+

Data Elements:

+

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
+
c-ObsBeacon-IntervalTooSmall IdMbObs::= 1
+
obs-Beacon-IntervalTooSmall C-ASR-SINGLE-OBS ::=
{Beacon-IntervalTooSmall BY c-ObsBeacon-IntervalTooSmall}
+

SetMbObsCompleteBeacon

+
SetMbObsCompleteBeacon C-ASR-SINGLE-OBS ::= {
obs-Beacon-IntervalTooSmall,
...
}
+

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
+
c-ObsStatic-Change IdMbObs::= 1
+
obs-Static-Change C-ASR-SINGLE-OBS ::=
{Static-Change BY c-ObsStatic-Change}
+

SetMbObsCompleteStatic

+
SetMbObsCompleteStatic C-ASR-SINGLE-OBS ::= {
obs-Static-Change,
...
}
+

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
+
c-ObsSecurity-MessageIdIncWithHeaderInfo IdMbObs ::= 1
c-ObsSecurity-HeaderIncWithSecurityProfile IdMbObs ::= 2
c-ObsSecurity-HeaderPsidIncWithCertificate IdMbObs ::= 3
c-ObsSecurity-MessageIncWithSsp IdMbObs ::= 4
c-ObsSecurity-HeaderTimeOutsideCertificateValidity IdMbObs ::= 5
c-ObsSecurity-MessageLocationOutsideCertificateValidity IdMbObs ::= 6
c-ObsSecurity-HeaderLocationOutsideCertificateValidity IdMbObs ::= 7
+
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
}
+

C-ASR-SINGLE-OBS

+

Fields:

+
    +
  • Security-MessageLocationOutsideCertificateValidity BY
    C-ASR-SINGLE-OBS ::= {
    Security-MessageLocationOutsideCertificateValidity BY
    c-ObsSecurity-MessageLocationOutsideCertificateValidity
    }
    +
  • +
+

C-ASR-SINGLE-OBS

+

Fields:

+
    +
  • Security-HeaderLocationOutsideCertificateValidity BY
    C-ASR-SINGLE-OBS ::= {
    Security-HeaderLocationOutsideCertificateValidity BY
    c-ObsSecurity-HeaderLocationOutsideCertificateValidity
    }
    +
  • +
+

SetMbObsCompleteSecurity

+

Values:

+
    +
  • obs-Security-MessageIdIncWithHeaderInfo |
  • +
  • obs-Security-HeaderIncWithSecurityProfile |
  • +
  • obs-Security-HeaderPsidIncWithCertificate |
  • +
  • obs-Security-MessageIncWithSsp |
  • +
  • obs-Security-HeaderTimeOutsideCertificateValidity |
  • +
  • obs-Security-MessageLocationOutsideCertificateValidity |
    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,
    ...
    }
    +
  • +
+

Pos-IncWithPrev-TooSmall

+
Pos-IncWithPrev-TooSmall ::= NULL
+

Pos-IncWithPrev-TooFar

+

Fields:

+
    +
  • gpsDrift Uint16
    Pos-IncWithPrev-TooFar ::= SEQUENCE {
    gpsDrift Uint16
    }
    +
  • +
+

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
+
c-ObsPos-IncWithPrev-TooSmall IdMbObs ::= 2
c-ObsPos-IncWithPrev-TooFar IdMbObs ::= 3
c-ObsPosition-ChangeTooLarge IdMbObs ::= 4
+
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
}
+

SetMbObsEtsiOnlyPosition

+
SetMbObsEtsiOnlyPosition C-ASR-SINGLE-OBS ::= {
obs-Position-ChangeTooLarge,
...
}
+

Speed-ValueTooLarge-ThresholdNoContext

+

Fields:

+
    +
  • threshold Uint16
    Speed-ValueTooLarge-ThresholdNoContext ::= SEQUENCE {
    threshold Uint16
    }
    +
  • +
+

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
+
c-ObsSpeed-ValueTooLarge-ThresholdNoContext IdMbObs::= 2
c-ObsSpeed-ValueTooLarge-VehicleType IdMbObs::= 3
c-ObsSpeed-ValueTooLarge-DriveDirectionReverse IdMbObs::= 4
c-ObsSpeed-ChangeTooLarge IdMbObs::= 5
+
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
}
+

SetMbObsEtsiOnlySpeed

+

Values:

+
    +
  • obs-Speed-ValueTooLarge-VehicleType |
  • +
  • obs-Speed-ValueTooLarge-DriveDirectionReverse |
    SetMbObsEtsiOnlySpeed C-ASR-SINGLE-OBS ::= {
    obs-Speed-ValueTooLarge-VehicleType |
    obs-Speed-ValueTooLarge-DriveDirectionReverse |
    obs-Speed-ChangeTooLarge,
    ...
    }
    +
  • +
+

LongAcc-ValueTooLarge-ThresholdNoContext

+

Fields:

+
    +
  • threshold Uint16
    LongAcc-ValueTooLarge-ThresholdNoContext ::= SEQUENCE {
    threshold Uint16
    }
    +
  • +
+

LongAcc-Implausible-Brake

+
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
+
c-ObsLongAcc-ValueTooLarge-ThresholdNoContext IdMbObs::= 2
c-ObsLongAcc-Implausible-Brake IdMbObs::= 3
c-ObsLongAcc-ValueTooLarge IdMbObs::= 4
+
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
}
+

SetMbObsEtsiOnlyLongAcc

+
SetMbObsEtsiOnlyLongAcc C-ASR-SINGLE-OBS ::= {
obs-LongAcc-ValueTooLarge,
...
}
+ -- GitLab From 98918b59c78d34418d1769dbe754fc8aea3d71fe Mon Sep 17 00:00:00 2001 From: Virendra Kumar Date: Fri, 11 Mar 2022 11:00:45 -0500 Subject: [PATCH 16/66] First attempt at including detectors for CSAE BSM --- Dev-TS103759.a1sproj | 31 ++++++++ EtsiTs103759.asn | 14 +++- EtsiTs103759AsrCbsm.asn | 169 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 213 insertions(+), 1 deletion(-) create mode 100644 Dev-TS103759.a1sproj create mode 100644 EtsiTs103759AsrCbsm.asn diff --git a/Dev-TS103759.a1sproj b/Dev-TS103759.a1sproj new file mode 100644 index 0000000..5d779f0 --- /dev/null +++ b/Dev-TS103759.a1sproj @@ -0,0 +1,31 @@ + + + EtsiTs103759.asn + EtsiTs103759AsrAppAgnostic.asn + EtsiTs103759AsrBsm.asn + EtsiTs103759AsrCam.asn + EtsiTs103759AsrCbsm.asn + EtsiTs103759AsrDenm.asn + EtsiTs103759CommonObservations.asn + cdd/ITS-Container.asn + ieee1609dot2/Ieee1609Dot2.asn + ieee1609dot2/Ieee1609Dot2BaseTypes.asn + sec_ts103097/EtsiTs103097ExtensionModule.asn + sec_ts103097/EtsiTs103097Module.asn + + + + + + + + + + + + + + + + + diff --git a/EtsiTs103759.asn b/EtsiTs103759.asn index cc7e272..4cf87df 100755 --- a/EtsiTs103759.asn +++ b/EtsiTs103759.asn @@ -47,6 +47,12 @@ FROM EtsiTs103759AsrCam {itu-t(0) identified-organization(4) etsi(0) major-version-1(1) minor-version-1(1)} WITH SUCCESSORS + AsrCbsm +FROM EtsiTs103759AsrCbsm {itu-t(0) identified-organization(4) etsi(0) + itsDomain(5) wg5(5) ts(103759) aid-specific(2) cbsm(80) + major-version-1(1) minor-version-1(1)} +WITH SUCCESSORS + AsrDenm FROM EtsiTs103759AsrDenm {itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103759) aid-specific(2) denm(37) @@ -128,7 +134,8 @@ SetAsr C-ASR ::= { {AsrBsm IDENTIFIED BY c-AsrBsm} | {AsrCam IDENTIFIED BY c-AsrCam} | {AsrDenm IDENTIFIED BY c-AsrDenm}, - ... + ..., + {AsrCbsm IDENTIFIED BY c-AsrCbsm} } /** @@ -155,6 +162,11 @@ c-AsrCam Psid ::= 36 */ c-AsrDenm Psid ::= 37 +/** + * @brief This data type contains the ITS-AID of the China BSM service. + */ +c-AsrCbsm Psid ::= 80 -- replace 80 with actual value + /** * @brief This data type contains the template for a report on any ITS PDU. * diff --git a/EtsiTs103759AsrCbsm.asn b/EtsiTs103759AsrCbsm.asn new file mode 100644 index 0000000..980e21e --- /dev/null +++ b/EtsiTs103759AsrCbsm.asn @@ -0,0 +1,169 @@ +EtsiTs103759AsrCbsm {itu-t(0) identified-organization(4) etsi(0) + itsDomain(5) wg5(5) ts(103759) aid-specific(2) cbsm(80) + 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)} +WITH SUCCESSORS + + 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)} +WITH SUCCESSORS + + 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-3(3)} +WITH SUCCESSORS +; + +/** + * @brief This data type is for reporting CSAE BSM issues. + */ +AsrCbsm ::= TemplateAsr {{SetMbObsTgtsCbsm}, {SetMbEvCbsm}} + + +/* Identify target classes for CSAE BSM */ +IdCbsmTgt ::= Uint8 + +c-CbsmTgt-BeaconCommon IdCbsmTgt ::= 0 +c-CbsmTgt-StaticCommon IdCbsmTgt ::= 1 +c-CbsmTgt-SecurityCommon IdCbsmTgt ::= 2 +c-CbsmTgt-PositionCommon IdCbsmTgt ::= 3 +c-CbsmTgt-SpeedCommon IdCbsmTgt ::= 4 +c-CbsmTgt-LongAccCommon IdCbsmTgt ::= 5 + +/** + * @brief This is a complete set of observations for CSAE BSM. + * Application-specific trigger conditions and other relevant information are + * specified below. + * + * @param SetMbObsCompleteBeacon: + * - `Beacon-IntervalTooSmall`: The difference between the generation + * time of two consecutive CSAE BSMs is less than 80% of the value specified in + * T/CSAE 53-2017. The difference is calculated as the difference between the + * two values of secMark. The two C-BSMs presented shall have the difference in + * the generationTime from the security headerInfo be less than 60,000 + * milliseconds, and the generationTime in the second C-BSM greater than the + * generationTime in the first. If the secMark value in the second C-BSM is + * less than the secMark in the first, 60,000 milliseconds shall be added to + * the value in the second for purposes of determining the difference between + * the two secMark values. + * + * @param SetMbObsCompleteStatic: + * - `Static-Change`: Any change in the values of one or more of the + * following fields: vehicleClass, size. + * - `Semantics of the BIT STRING`: vehicleClass(0), size(1). + * + * @param SetMbObsCompleteSecurity: + * - `Security-MessageIdIncWithHeaderInfo`: There is no field CSAE BSM + * equivalent to messageID, so this detector is not used for CSAE BSM. + * + * - `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. + * + * - `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 + * pos 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 + * pos of two consecutive CSAE BSMs meets the trigger conditions of + * Speed-ValueTooLarge-VehicleType. + * + * @param SetMbObsEtsiOnlySpeed: + * - `Speed-ValueTooLarge-VehicleType`: The trigger conditions depend on + * the vehicleClass as follows: + * + * - `passenger-Vehicle-TypeUnknown (10)`: The speed 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-TypeUnkown(40), transit-TypeUnknown(50), + * lightTruck_Vehicle_typeUnknown(20), truck-Vehicle-TypeUnknown(25), + * equipped-CargoTrailer(93)`: The speed 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),otherTraveler-pedestrian(82), otherTraveler-Bicycle(85), + * moped(3), specialVehicleClass(1), tram(11) : The speed is greater than + * 3,000. (Currently, non-highway speed limits are usually well below 100 + * km/h, i.e., 2,778 cm/s.) + * + * - `infrastructure-Fixed(15)`: The speed is greater than 0. (Road side + * units shouldn't be transmitting while being transported.) + * + * - `Speed-ValueTooLarge-DriveDirectionReverse`: The transmission State is + * reverseGears (3) and the speed 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 speed of two consecutive CSAE BSMs meets the trigger conditions of + * LongAcc-ValueTooLarge. + * + * @param SetMbObsEtsiOnlyLongAcc: + * - `LongAcc-ValueTooLarge`: The AccelerationSet4Way::long 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.) + */ +SetMbObsTgtsCbsm C-ASR-OBS-BY-TGT ::= { + {MbSingleObservation{{SetMbObsCompleteBeacon}} BY + c-CbsmTgt-BeaconCommon} | + {MbSingleObservation{{SetMbObsCompleteStatic}} BY + c-CbsmTgt-StaticCommon} | + {MbSingleObservation{{SetMbObsCompleteSecurity}} BY + c-CbsmTgt-SecurityCommon} | + {MbSingleObservation{{SetMbObsEtsiOnlyPosition}} BY + c-CbsmTgt-PositionCommon} | + {MbSingleObservation{{SetMbObsEtsiOnlySpeed}} BY + c-CbsmTgt-SpeedCommon} | + {MbSingleObservation{{SetMbObsEtsiOnlyLongAcc}} BY + c-CbsmTgt-LongAccCommon}, + ... +} + +/** + * @brief This data type defines the IOS for CSAE BSM Evidence. + */ +SetMbEvCbsm C-ASR-EV ::= { + ... +} + +END \ No newline at end of file -- GitLab From 19a4914de3142f3ca1ac9351a0639c77a96fc4b0 Mon Sep 17 00:00:00 2001 From: Virendra Kumar Date: Fri, 18 Mar 2022 09:39:52 -0400 Subject: [PATCH 17/66] Added different types of C-BSMs, fixed some units, etc. --- EtsiTs103759.asn | 43 +++++++++++++++++++++++------- EtsiTs103759AsrCbsm.asn | 33 ++++++++++++++++++----- EtsiTs103759CommonObservations.asn | 9 +++++++ 3 files changed, 69 insertions(+), 16 deletions(-) diff --git a/EtsiTs103759.asn b/EtsiTs103759.asn index 4cf87df..654c891 100755 --- a/EtsiTs103759.asn +++ b/EtsiTs103759.asn @@ -47,9 +47,12 @@ FROM EtsiTs103759AsrCam {itu-t(0) identified-organization(4) etsi(0) major-version-1(1) minor-version-1(1)} WITH SUCCESSORS - AsrCbsm + AsrCbsm, + AsrCbsmCritical, + AsrCbsmEmergency, + AsrCbsmCriticalEmergency FROM EtsiTs103759AsrCbsm {itu-t(0) identified-organization(4) etsi(0) - itsDomain(5) wg5(5) ts(103759) aid-specific(2) cbsm(80) + itsDomain(5) wg5(5) ts(103759) aid-specific(2) cbsm(111) major-version-1(1) minor-version-1(1)} WITH SUCCESSORS @@ -130,12 +133,15 @@ C-ASR ::= CLASS { * 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}, + {AsrAppAgnostic IDENTIFIED BY c-AsrAppAgnostic} | + {AsrBsm IDENTIFIED BY c-AsrBsm} | + {AsrCam IDENTIFIED BY c-AsrCam} | + {AsrDenm IDENTIFIED BY c-AsrDenm}, ..., - {AsrCbsm IDENTIFIED BY c-AsrCbsm} + {AsrCbsm IDENTIFIED BY c-AsrCbsm} | + {AsrCbsmCritical IDENTIFIED BY c-AsrCbsmCritical} | + {AsrCbsmEmergency IDENTIFIED BY c-AsrCbsmEmergency} | + {AsrCbsmCriticalEmergency IDENTIFIED BY c-AsrCbsmCriticalEmergency} } /** @@ -163,9 +169,28 @@ c-AsrCam Psid ::= 36 c-AsrDenm Psid ::= 37 /** - * @brief This data type contains the ITS-AID of the China BSM service. + * @brief This data type contains the ITS-AID of the China BSM service: + * normal BSM from normal vehicles. */ -c-AsrCbsm Psid ::= 80 -- replace 80 with actual value +c-AsrCbsm Psid ::= 111 + +/** + * @brief This data type contains the ITS-AID of the China BSM service: + * critical event BSM from normal vehicles. + */ +c-AsrCbsmCritical Psid ::= 112 + +/** + * @brief This data type contains the ITS-AID of the China BSM service: + * normal BSM from emergency vehicles. + */ +c-AsrCbsmEmergency Psid ::= 113 + +/** + * @brief This data type contains the ITS-AID of the China BSM service: + * critical event BSM from emergency vehicles. + */ +c-AsrCbsmCriticalEmergency Psid ::= 114 /** * @brief This data type contains the template for a report on any ITS PDU. diff --git a/EtsiTs103759AsrCbsm.asn b/EtsiTs103759AsrCbsm.asn index 980e21e..9391b50 100644 --- a/EtsiTs103759AsrCbsm.asn +++ b/EtsiTs103759AsrCbsm.asn @@ -1,5 +1,5 @@ EtsiTs103759AsrCbsm {itu-t(0) identified-organization(4) etsi(0) - itsDomain(5) wg5(5) ts(103759) aid-specific(2) cbsm(80) + itsDomain(5) wg5(5) ts(103759) aid-specific(2) cbsm(111) major-version-1(1) minor-version-1(1)} DEFINITIONS AUTOMATIC TAGS ::= BEGIN @@ -19,7 +19,7 @@ WITH SUCCESSORS IdMbObs, SetMbObsCompleteBeacon, - SetMbObsCompleteSecurity, + SetMbObsCbsmOnlySecurity, SetMbObsCompleteStatic, SetMbObsEtsiOnlyLongAcc, SetMbObsEtsiOnlyPosition, @@ -38,10 +38,29 @@ WITH SUCCESSORS ; /** - * @brief This data type is for reporting CSAE BSM issues. + * @brief This data type is for reporting China BSM service: + * normal BSM from normal vehicles. */ AsrCbsm ::= TemplateAsr {{SetMbObsTgtsCbsm}, {SetMbEvCbsm}} +/** + * @brief This data type is for reporting China BSM service: + * critical event BSM from normal vehicles. + */ +AsrCbsmCritical ::= TemplateAsr {{SetMbObsTgtsCbsm}, {SetMbEvCbsm}} + +/** + * @brief This data type is for reporting China BSM service: + * normal BSM from emergency vehicles. + */ +AsrCbsmEmergency ::= TemplateAsr {{SetMbObsTgtsCbsm}, {SetMbEvCbsm}} + +/** + * @brief This data type is for reporting China BSM service: + * critical event BSM from emergency vehicles. + */ +AsrCbsmCriticalEmergency ::= TemplateAsr {{SetMbObsTgtsCbsm}, {SetMbEvCbsm}} + /* Identify target classes for CSAE BSM */ IdCbsmTgt ::= Uint8 @@ -75,7 +94,7 @@ c-CbsmTgt-LongAccCommon IdCbsmTgt ::= 5 * following fields: vehicleClass, size. * - `Semantics of the BIT STRING`: vehicleClass(0), size(1). * - * @param SetMbObsCompleteSecurity: + * @param SetMbObsCbsmOnlySecurity: * - `Security-MessageIdIncWithHeaderInfo`: There is no field CSAE BSM * equivalent to messageID, so this detector is not used for CSAE BSM. * @@ -139,16 +158,16 @@ c-CbsmTgt-LongAccCommon IdCbsmTgt ::= 5 * * @param SetMbObsEtsiOnlyLongAcc: * - `LongAcc-ValueTooLarge`: The AccelerationSet4Way::long is greater than - * 90 dm/s^2. (Typical \mu (coefficient of friction between asphalt and + * 900 cm/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.) + * 882 cm/s^2.) */ SetMbObsTgtsCbsm C-ASR-OBS-BY-TGT ::= { {MbSingleObservation{{SetMbObsCompleteBeacon}} BY c-CbsmTgt-BeaconCommon} | {MbSingleObservation{{SetMbObsCompleteStatic}} BY c-CbsmTgt-StaticCommon} | - {MbSingleObservation{{SetMbObsCompleteSecurity}} BY + {MbSingleObservation{{SetMbObsCbsmOnlySecurity}} BY c-CbsmTgt-SecurityCommon} | {MbSingleObservation{{SetMbObsEtsiOnlyPosition}} BY c-CbsmTgt-PositionCommon} | diff --git a/EtsiTs103759CommonObservations.asn b/EtsiTs103759CommonObservations.asn index 92e19d8..0f8dc12 100644 --- a/EtsiTs103759CommonObservations.asn +++ b/EtsiTs103759CommonObservations.asn @@ -290,6 +290,15 @@ SetMbObsCompleteSecurity C-ASR-SINGLE-OBS ::= { ... } +SetMbObsCbsmOnlySecurity C-ASR-SINGLE-OBS ::= { + obs-Security-HeaderIncWithSecurityProfile | + obs-Security-HeaderPsidIncWithCertificate | + obs-Security-MessageIncWithSsp | + obs-Security-HeaderTimeOutsideCertificateValidity | + obs-Security-MessageLocationOutsideCertificateValidity | + obs-Security-HeaderLocationOutsideCertificateValidity, + ... +} /* * Position issues -- GitLab From 2e63ad8629f7702153ead6ad1dd90c77787da838 Mon Sep 17 00:00:00 2001 From: Virendra Kumar Date: Fri, 18 Mar 2022 11:14:08 -0400 Subject: [PATCH 18/66] Added the disclaimer about C-shift --- EtsiTs103759AsrCbsm.asn | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/EtsiTs103759AsrCbsm.asn b/EtsiTs103759AsrCbsm.asn index 9391b50..6571b6c 100644 --- a/EtsiTs103759AsrCbsm.asn +++ b/EtsiTs103759AsrCbsm.asn @@ -119,12 +119,14 @@ c-CbsmTgt-LongAccCommon IdCbsmTgt ::= 5 * generationLocation in the security headerInfo is outside the region in the * certificate. * - * @param SetMbObsEtsiOnlyPosition: + * @param SetMbObsEtsiOnlyPosition: Trigger conditions for these detectors + * might need to be updated to take C-shift into account. * - `Position-ChangeTooLarge`: The speed calculated from the change in * pos of two consecutive CSAE BSMs meets the trigger conditions of * Speed-ValueTooLarge-VehicleType. * - * @param SetMbObsEtsiOnlySpeed: + * @param SetMbObsEtsiOnlySpeed: Trigger conditions for these detectors + * might need to be updated to take C-shift into account. * - `Speed-ValueTooLarge-VehicleType`: The trigger conditions depend on * the vehicleClass as follows: * @@ -156,7 +158,8 @@ c-CbsmTgt-LongAccCommon IdCbsmTgt ::= 5 * in speed of two consecutive CSAE BSMs meets the trigger conditions of * LongAcc-ValueTooLarge. * - * @param SetMbObsEtsiOnlyLongAcc: + * @param SetMbObsEtsiOnlyLongAcc: Trigger conditions for these detectors + * might need to be updated to take C-shift into account. * - `LongAcc-ValueTooLarge`: The AccelerationSet4Way::long is greater than * 900 cm/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., -- GitLab From 50c7b590688afe4ab64d55f7f6c4d38e315f2a5f Mon Sep 17 00:00:00 2001 From: Virendra Kumar Date: Wed, 30 Mar 2022 09:04:21 -0400 Subject: [PATCH 19/66] Added relevant references where applicable. --- EtsiTs103759AsrCam.asn | 13 ++++++----- EtsiTs103759AsrCbsm.asn | 36 +++++++++++++++++++----------- EtsiTs103759CommonObservations.asn | 4 ++-- 3 files changed, 33 insertions(+), 20 deletions(-) diff --git a/EtsiTs103759AsrCam.asn b/EtsiTs103759AsrCam.asn index 698b14b..9029442 100755 --- a/EtsiTs103759AsrCam.asn +++ b/EtsiTs103759AsrCam.asn @@ -85,17 +85,20 @@ c-CamTgt-LongAccCommon IdCamTgt ::= 5 * 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. + * inconsistent with the security profile specified in ETSI TS 103 097 V2.1.1 + * (2021-10), 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., + * headerInfo is not contained in the appPermissions of 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. + * with the SSP in the certificate, as specified in ETSI EN 302 637-2 V1.4.1 + * (2019-04),e.g., publicTransportContainer is present in the + * specialVehicleContainer but the relevant SSP in the certificate does not + * permit publicTransportContainer. * * - `Security-HeaderTimeOutsideCertificateValidity`: The generationTime * in the security headerInfo is outside the validityPeriod in the certificate. diff --git a/EtsiTs103759AsrCbsm.asn b/EtsiTs103759AsrCbsm.asn index 6571b6c..01cd370 100644 --- a/EtsiTs103759AsrCbsm.asn +++ b/EtsiTs103759AsrCbsm.asn @@ -19,7 +19,7 @@ WITH SUCCESSORS IdMbObs, SetMbObsCompleteBeacon, - SetMbObsCbsmOnlySecurity, + SetMbObsCompleteSecurity, SetMbObsCompleteStatic, SetMbObsEtsiOnlyLongAcc, SetMbObsEtsiOnlyPosition, @@ -95,29 +95,39 @@ c-CbsmTgt-LongAccCommon IdCbsmTgt ::= 5 * - `Semantics of the BIT STRING`: vehicleClass(0), size(1). * * @param SetMbObsCbsmOnlySecurity: - * - `Security-MessageIdIncWithHeaderInfo`: There is no field CSAE BSM - * equivalent to messageID, so this detector is not used for CSAE BSM. + * - `Security-MessageIdIncWithHeaderInfo`: The selected field of + * MessageFrame is inconsistent with the security headerInfo, e.g., the + * field is bsmFrame and psid in the security headerInfo is not one of + * (111, 112, 113, 114), or, the field is not bsmFrame and psid in the + * security headerInfo is one of (111, 112, 113, 114). * * - `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. + * inconsistent with the security profile specified in [TBD], + * e.g., generationTime is absent in the security headerInfo and + * 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. + * headerInfo is not contained in the appPermissions of the certificate, e.g., + * psid in the security headerInfo is equal to 111, and the appPermissions in the + * certificate does not include the value 111. * * - `Security-MessageIncWithSsp`: The message payload is inconsistent - * with the SSP in the certificate. + * with the SSP in the certificate, as specified in [TBD], + * e.g., publicTransportContainer is present in the + * specialVehicleContainer and the relevant SSP in the certificate does not + * permit publicTransportContainer. * * - `Security-HeaderTimeOutsideCertificateValidity`: The generationTime * in the security headerInfo is outside the validityPeriod in the certificate. * - * - `Security-MessageLocationOutsideCertificateValidity`: The - * pos in the message is outside the region in the certificate. + * - `Security-MessageLocationOutsideCertificateValidity`: The pos in the + * message is outside the region in the certificate. Trigger condition for + * this detector might need to be updated to take C-shift into account. * * - `Security-HeaderLocationOutsideCertificateValidity`: The * generationLocation in the security headerInfo is outside the region in the - * certificate. + * certificate. Trigger condition for this detector might need to be updated + * to take C-shift into account. * * @param SetMbObsEtsiOnlyPosition: Trigger conditions for these detectors * might need to be updated to take C-shift into account. @@ -128,7 +138,7 @@ c-CbsmTgt-LongAccCommon IdCbsmTgt ::= 5 * @param SetMbObsEtsiOnlySpeed: Trigger conditions for these detectors * might need to be updated to take C-shift into account. * - `Speed-ValueTooLarge-VehicleType`: The trigger conditions depend on - * the vehicleClass as follows: + * the vehicleClass field of the BasicSafetyMessage as follows: * * - `passenger-Vehicle-TypeUnknown (10)`: The speed is greater than * 14,000. (Currently, the fastest car in the world has a top speed that is @@ -170,7 +180,7 @@ SetMbObsTgtsCbsm C-ASR-OBS-BY-TGT ::= { c-CbsmTgt-BeaconCommon} | {MbSingleObservation{{SetMbObsCompleteStatic}} BY c-CbsmTgt-StaticCommon} | - {MbSingleObservation{{SetMbObsCbsmOnlySecurity}} BY + {MbSingleObservation{{SetMbObsCompleteSecurity}} BY c-CbsmTgt-SecurityCommon} | {MbSingleObservation{{SetMbObsEtsiOnlyPosition}} BY c-CbsmTgt-PositionCommon} | diff --git a/EtsiTs103759CommonObservations.asn b/EtsiTs103759CommonObservations.asn index 0f8dc12..d0e44e1 100644 --- a/EtsiTs103759CommonObservations.asn +++ b/EtsiTs103759CommonObservations.asn @@ -290,7 +290,7 @@ SetMbObsCompleteSecurity C-ASR-SINGLE-OBS ::= { ... } -SetMbObsCbsmOnlySecurity C-ASR-SINGLE-OBS ::= { +/*SetMbObsCbsmOnlySecurity C-ASR-SINGLE-OBS ::= { obs-Security-HeaderIncWithSecurityProfile | obs-Security-HeaderPsidIncWithCertificate | obs-Security-MessageIncWithSsp | @@ -298,7 +298,7 @@ SetMbObsCbsmOnlySecurity C-ASR-SINGLE-OBS ::= { obs-Security-MessageLocationOutsideCertificateValidity | obs-Security-HeaderLocationOutsideCertificateValidity, ... -} +}*/ /* * Position issues -- GitLab From a252cc3971cbd46e9640c5d2c6163f22766e5627 Mon Sep 17 00:00:00 2001 From: Virendra Kumar Date: Wed, 6 Apr 2022 14:08:16 -0400 Subject: [PATCH 20/66] ASN.1 project file updated to include C-BSM file --- Dev-TS103759.a1sproj | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Dev-TS103759.a1sproj b/Dev-TS103759.a1sproj index 5d779f0..a3f1661 100644 --- a/Dev-TS103759.a1sproj +++ b/Dev-TS103759.a1sproj @@ -1,4 +1,4 @@ - + EtsiTs103759.asn EtsiTs103759AsrAppAgnostic.asn @@ -16,16 +16,16 @@ - + + - - - - - + - + + + + -- GitLab From 2f233f058b44454b9d6ef91e82bd7ba97680ee5a Mon Sep 17 00:00:00 2001 From: Virendra Kumar Date: Thu, 7 Apr 2022 17:07:01 -0400 Subject: [PATCH 21/66] Introduced the dummy versions of app-specific files. Actual app-specific files are in the corresponding folders. --- EtsiTs103759.asn | 19 +-- EtsiTs103759AsrAppAgnostic.asn | 2 +- EtsiTs103759AsrBsm.asn | 94 +------------- EtsiTs103759AsrCam.asn | 168 +----------------------- EtsiTs103759AsrCbsm.asn | 190 ++------------------------- EtsiTs103759AsrDenm.asn | 4 +- EtsiTs103759CommonObservations.asn | 32 +++-- bsm/EtsiTs103759AsrBsm.asn | 97 ++++++++++++++ cam/EtsiTs103759AsrCam.asn | 174 +++++++++++++++++++++++++ cbsm/EtsiTs103759AsrCbsm.asn | 200 +++++++++++++++++++++++++++++ denm/EtsiTs103759AsrDenm.asn | 14 ++ 11 files changed, 531 insertions(+), 463 deletions(-) create mode 100644 bsm/EtsiTs103759AsrBsm.asn create mode 100644 cam/EtsiTs103759AsrCam.asn create mode 100644 cbsm/EtsiTs103759AsrCbsm.asn create mode 100644 denm/EtsiTs103759AsrDenm.asn diff --git a/EtsiTs103759.asn b/EtsiTs103759.asn index 654c891..0cb1d91 100755 --- a/EtsiTs103759.asn +++ b/EtsiTs103759.asn @@ -7,18 +7,13 @@ DEFINITIONS AUTOMATIC TAGS ::= BEGIN EXPORTS ALL; IMPORTS + EtsiTs103097Certificate, EtsiTs103097Data-SignedAndEncrypted-Unicast FROM EtsiTs103097Module {itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) secHeaders(103097) core(1) major-version-3(3) minor-version-1(1)} WITH SUCCESSORS - 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-4(4)} -WITH SUCCESSORS - Opaque, Psid, ThreeDLocation, @@ -32,19 +27,19 @@ WITH SUCCESSORS 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)} + major-version-1(1) minor-version-0(0)} WITH SUCCESSORS 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)} + major-version-1(1) minor-version-0(0)} WITH SUCCESSORS 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)} + major-version-1(1) minor-version-0(0)} WITH SUCCESSORS AsrCbsm, @@ -53,13 +48,13 @@ WITH SUCCESSORS AsrCbsmCriticalEmergency FROM EtsiTs103759AsrCbsm {itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103759) aid-specific(2) cbsm(111) - major-version-1(1) minor-version-1(1)} + major-version-1(1) minor-version-0(0)} WITH SUCCESSORS 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)} + major-version-1(1) minor-version-0(0)} WITH SUCCESSORS ; @@ -300,7 +295,7 @@ V2xPduStream ::= SEQUENCE { type C-OBS-PDU.&id ({SetObsPdu}), v2xPdus SEQUENCE (SIZE(1..255)) OF C-OBS-PDU.&Val ({SetObsPdu}{@.type}), - certificate Certificate OPTIONAL, + certificate EtsiTs103097Certificate OPTIONAL, subjectPduIndex Uint8, ... } diff --git a/EtsiTs103759AsrAppAgnostic.asn b/EtsiTs103759AsrAppAgnostic.asn index bdeef50..59af4df 100755 --- a/EtsiTs103759AsrAppAgnostic.asn +++ b/EtsiTs103759AsrAppAgnostic.asn @@ -1,6 +1,6 @@ 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)} + major-version-1(1) minor-version-0(0)} DEFINITIONS AUTOMATIC TAGS ::= BEGIN diff --git a/EtsiTs103759AsrBsm.asn b/EtsiTs103759AsrBsm.asn index 5cdfd82..d035270 100644 --- a/EtsiTs103759AsrBsm.asn +++ b/EtsiTs103759AsrBsm.asn @@ -1,102 +1,14 @@ 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)} + major-version-1(1) minor-version-0(0)} 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)} -WITH SUCCESSORS - - 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)} -WITH SUCCESSORS - - 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-3(3)} -WITH SUCCESSORS -; - -/* 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 - */ - -/** - * @brief This data type is for reporting BSM issues defined by the SCMS - * Manager. - */ -AsrBsm ::= TemplateAsr {{SetMbObsTgtsBsm}, {SetMbEvBsm}} - -SetMbObsPosition-Bsm C-ASR-SINGLE-OBS ::= { - obs-Pos-IncWithPrev-TooSmall | - obs-Pos-IncWithPrev-TooFar, - ... -} - -SetMbObsSpeed-Bsm C-ASR-SINGLE-OBS ::= { - obs-Speed-ValueTooLarge-ThresholdNoContext, - ... -} - -SetMbObsLongAcc-Bsm C-ASR-SINGLE-OBS ::= { - obs-LongAcc-ValueTooLarge-ThresholdNoContext | - obs-LongAcc-Implausible-Brake, - ... -} - -/** - * @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}, - ... -} - /** - * @brief This data type defines the IOS for BSM Evidence + * @brief This data type is defined as NULL for version 0 of this file. */ -SetMbEvBsm C-ASR-EV ::= { - ... -} +AsrBsm ::= NULL END \ No newline at end of file diff --git a/EtsiTs103759AsrCam.asn b/EtsiTs103759AsrCam.asn index 9029442..5714f93 100755 --- a/EtsiTs103759AsrCam.asn +++ b/EtsiTs103759AsrCam.asn @@ -1,176 +1,14 @@ 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)} + major-version-1(1) minor-version-0(0)} 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)} -WITH SUCCESSORS - - 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)} -WITH SUCCESSORS - - 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-3(3)} -WITH SUCCESSORS -; - -/** - * @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 - -/** - * @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 specified in ETSI TS 103 097 V2.1.1 - * (2021-10), 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 not contained in the appPermissions of 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, as specified in ETSI EN 302 637-2 V1.4.1 - * (2019-04),e.g., publicTransportContainer is present in the - * specialVehicleContainer but the relevant SSP in the certificate does not - * permit publicTransportContainer. - * - * - `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}, - ... -} - /** - * @brief This data type defines the IOS for CAM Evidence. + * @brief This data type is defined as NULL for version 0 of this file. */ -SetMbEvCam C-ASR-EV ::= { - ... -} +AsrCam ::= NULL END \ No newline at end of file diff --git a/EtsiTs103759AsrCbsm.asn b/EtsiTs103759AsrCbsm.asn index 01cd370..04c57bb 100644 --- a/EtsiTs103759AsrCbsm.asn +++ b/EtsiTs103759AsrCbsm.asn @@ -1,201 +1,29 @@ EtsiTs103759AsrCbsm {itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103759) aid-specific(2) cbsm(111) - major-version-1(1) minor-version-1(1)} + major-version-1(1) minor-version-0(0)} 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)} -WITH SUCCESSORS - - 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)} -WITH SUCCESSORS - - 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-3(3)} -WITH SUCCESSORS -; - -/** - * @brief This data type is for reporting China BSM service: - * normal BSM from normal vehicles. - */ -AsrCbsm ::= TemplateAsr {{SetMbObsTgtsCbsm}, {SetMbEvCbsm}} - /** - * @brief This data type is for reporting China BSM service: - * critical event BSM from normal vehicles. + * @brief This data type is defined as NULL for version 0 of this file. */ -AsrCbsmCritical ::= TemplateAsr {{SetMbObsTgtsCbsm}, {SetMbEvCbsm}} +AsrCbsm ::= NULL /** - * @brief This data type is for reporting China BSM service: - * normal BSM from emergency vehicles. + * @brief This data type is defined as NULL for version 0 of this file. */ -AsrCbsmEmergency ::= TemplateAsr {{SetMbObsTgtsCbsm}, {SetMbEvCbsm}} - -/** - * @brief This data type is for reporting China BSM service: - * critical event BSM from emergency vehicles. - */ -AsrCbsmCriticalEmergency ::= TemplateAsr {{SetMbObsTgtsCbsm}, {SetMbEvCbsm}} - - -/* Identify target classes for CSAE BSM */ -IdCbsmTgt ::= Uint8 - -c-CbsmTgt-BeaconCommon IdCbsmTgt ::= 0 -c-CbsmTgt-StaticCommon IdCbsmTgt ::= 1 -c-CbsmTgt-SecurityCommon IdCbsmTgt ::= 2 -c-CbsmTgt-PositionCommon IdCbsmTgt ::= 3 -c-CbsmTgt-SpeedCommon IdCbsmTgt ::= 4 -c-CbsmTgt-LongAccCommon IdCbsmTgt ::= 5 +AsrCbsmCritical ::= NULL /** - * @brief This is a complete set of observations for CSAE BSM. - * Application-specific trigger conditions and other relevant information are - * specified below. - * - * @param SetMbObsCompleteBeacon: - * - `Beacon-IntervalTooSmall`: The difference between the generation - * time of two consecutive CSAE BSMs is less than 80% of the value specified in - * T/CSAE 53-2017. The difference is calculated as the difference between the - * two values of secMark. The two C-BSMs presented shall have the difference in - * the generationTime from the security headerInfo be less than 60,000 - * milliseconds, and the generationTime in the second C-BSM greater than the - * generationTime in the first. If the secMark value in the second C-BSM is - * less than the secMark in the first, 60,000 milliseconds shall be added to - * the value in the second for purposes of determining the difference between - * the two secMark values. - * - * @param SetMbObsCompleteStatic: - * - `Static-Change`: Any change in the values of one or more of the - * following fields: vehicleClass, size. - * - `Semantics of the BIT STRING`: vehicleClass(0), size(1). - * - * @param SetMbObsCbsmOnlySecurity: - * - `Security-MessageIdIncWithHeaderInfo`: The selected field of - * MessageFrame is inconsistent with the security headerInfo, e.g., the - * field is bsmFrame and psid in the security headerInfo is not one of - * (111, 112, 113, 114), or, the field is not bsmFrame and psid in the - * security headerInfo is one of (111, 112, 113, 114). - * - * - `Security-HeaderIncWithSecurityProfile`: The security headerInfo is - * inconsistent with the security profile specified in [TBD], - * e.g., generationTime is absent in the security headerInfo and - * is required to be present in the security profile. - * - * - `Security-HeaderPsidIncWithCertificate`: The psid in the security - * headerInfo is not contained in the appPermissions of the certificate, e.g., - * psid in the security headerInfo is equal to 111, and the appPermissions in the - * certificate does not include the value 111. - * - * - `Security-MessageIncWithSsp`: The message payload is inconsistent - * with the SSP in the certificate, as specified in [TBD], - * e.g., publicTransportContainer is present in the - * specialVehicleContainer and the relevant SSP in the certificate does not - * permit publicTransportContainer. - * - * - `Security-HeaderTimeOutsideCertificateValidity`: The generationTime - * in the security headerInfo is outside the validityPeriod in the certificate. - * - * - `Security-MessageLocationOutsideCertificateValidity`: The pos in the - * message is outside the region in the certificate. Trigger condition for - * this detector might need to be updated to take C-shift into account. - * - * - `Security-HeaderLocationOutsideCertificateValidity`: The - * generationLocation in the security headerInfo is outside the region in the - * certificate. Trigger condition for this detector might need to be updated - * to take C-shift into account. - * - * @param SetMbObsEtsiOnlyPosition: Trigger conditions for these detectors - * might need to be updated to take C-shift into account. - * - `Position-ChangeTooLarge`: The speed calculated from the change in - * pos of two consecutive CSAE BSMs meets the trigger conditions of - * Speed-ValueTooLarge-VehicleType. - * - * @param SetMbObsEtsiOnlySpeed: Trigger conditions for these detectors - * might need to be updated to take C-shift into account. - * - `Speed-ValueTooLarge-VehicleType`: The trigger conditions depend on - * the vehicleClass field of the BasicSafetyMessage as follows: - * - * - `passenger-Vehicle-TypeUnknown (10)`: The speed 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-TypeUnkown(40), transit-TypeUnknown(50), - * lightTruck_Vehicle_typeUnknown(20), truck-Vehicle-TypeUnknown(25), - * equipped-CargoTrailer(93)`: The speed 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),otherTraveler-pedestrian(82), otherTraveler-Bicycle(85), - * moped(3), specialVehicleClass(1), tram(11) : The speed is greater than - * 3,000. (Currently, non-highway speed limits are usually well below 100 - * km/h, i.e., 2,778 cm/s.) - * - * - `infrastructure-Fixed(15)`: The speed is greater than 0. (Road side - * units shouldn't be transmitting while being transported.) - * - * - `Speed-ValueTooLarge-DriveDirectionReverse`: The transmission State is - * reverseGears (3) and the speed 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 speed of two consecutive CSAE BSMs meets the trigger conditions of - * LongAcc-ValueTooLarge. - * - * @param SetMbObsEtsiOnlyLongAcc: Trigger conditions for these detectors - * might need to be updated to take C-shift into account. - * - `LongAcc-ValueTooLarge`: The AccelerationSet4Way::long is greater than - * 900 cm/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., - * 882 cm/s^2.) + * @brief This data type is defined as NULL for version 0 of this file. */ -SetMbObsTgtsCbsm C-ASR-OBS-BY-TGT ::= { - {MbSingleObservation{{SetMbObsCompleteBeacon}} BY - c-CbsmTgt-BeaconCommon} | - {MbSingleObservation{{SetMbObsCompleteStatic}} BY - c-CbsmTgt-StaticCommon} | - {MbSingleObservation{{SetMbObsCompleteSecurity}} BY - c-CbsmTgt-SecurityCommon} | - {MbSingleObservation{{SetMbObsEtsiOnlyPosition}} BY - c-CbsmTgt-PositionCommon} | - {MbSingleObservation{{SetMbObsEtsiOnlySpeed}} BY - c-CbsmTgt-SpeedCommon} | - {MbSingleObservation{{SetMbObsEtsiOnlyLongAcc}} BY - c-CbsmTgt-LongAccCommon}, - ... -} +AsrCbsmEmergency ::= NULL /** - * @brief This data type defines the IOS for CSAE BSM Evidence. + * @brief This data type is defined as NULL for version 0 of this file. */ -SetMbEvCbsm C-ASR-EV ::= { - ... -} +AsrCbsmCriticalEmergency ::= NULL END \ No newline at end of file diff --git a/EtsiTs103759AsrDenm.asn b/EtsiTs103759AsrDenm.asn index ea9f6ee..d0b1d56 100755 --- a/EtsiTs103759AsrDenm.asn +++ b/EtsiTs103759AsrDenm.asn @@ -1,13 +1,13 @@ 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)} + major-version-1(1) minor-version-0(0)} DEFINITIONS AUTOMATIC TAGS ::= BEGIN EXPORTS ALL; /** - * @brief This data type is defined as NULL for this version of the standard. + * @brief This data type is defined as NULL for version 0 of this file. */ AsrDenm ::= NULL diff --git a/EtsiTs103759CommonObservations.asn b/EtsiTs103759CommonObservations.asn index d0e44e1..506c49b 100644 --- a/EtsiTs103759CommonObservations.asn +++ b/EtsiTs103759CommonObservations.asn @@ -13,7 +13,6 @@ FROM EtsiTs103759 {itu-t(0) identified-organization(4) etsi(0) minor-version-1 (1)} WITH SUCCESSORS - Time64, Uint8, Uint16 FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111) @@ -290,16 +289,6 @@ SetMbObsCompleteSecurity C-ASR-SINGLE-OBS ::= { ... } -/*SetMbObsCbsmOnlySecurity C-ASR-SINGLE-OBS ::= { - obs-Security-HeaderIncWithSecurityProfile | - obs-Security-HeaderPsidIncWithCertificate | - obs-Security-MessageIncWithSsp | - obs-Security-HeaderTimeOutsideCertificateValidity | - obs-Security-MessageLocationOutsideCertificateValidity | - obs-Security-HeaderLocationOutsideCertificateValidity, - ... -}*/ - /* * Position issues */ @@ -385,6 +374,13 @@ obs-Position-ChangeTooLarge C-ASR-SINGLE-OBS ::= { Position-ChangeTooLarge BY c-ObsPosition-ChangeTooLarge } +SetMbObsPosition C-ASR-SINGLE-OBS ::= { + obs-Pos-IncWithPrev-TooSmall | + obs-Pos-IncWithPrev-TooFar | + obs-Position-ChangeTooLarge, + ... +} + SetMbObsEtsiOnlyPosition C-ASR-SINGLE-OBS ::= { obs-Position-ChangeTooLarge, ... @@ -500,6 +496,14 @@ obs-Speed-ChangeTooLarge C-ASR-SINGLE-OBS ::= { Speed-ChangeTooLarge BY c-ObsSpeed-ChangeTooLarge } +SetMbObsSpeed C-ASR-SINGLE-OBS ::= { + obs-Speed-ValueTooLarge-VehicleType | + obs-Speed-ValueTooLarge-ThresholdNoContext | + obs-Speed-ValueTooLarge-DriveDirectionReverse | + obs-Speed-ChangeTooLarge, + ... +} + SetMbObsEtsiOnlySpeed C-ASR-SINGLE-OBS ::= { obs-Speed-ValueTooLarge-VehicleType | obs-Speed-ValueTooLarge-DriveDirectionReverse | @@ -595,6 +599,12 @@ obs-LongAcc-ValueTooLarge C-ASR-SINGLE-OBS ::= { LongAcc-ValueTooLarge BY c-ObsLongAcc-ValueTooLarge } +SetMbObsLongAcc C-ASR-SINGLE-OBS ::= { + obs-LongAcc-Implausible-Brake | + obs-LongAcc-ValueTooLarge, + ... +} + SetMbObsEtsiOnlyLongAcc C-ASR-SINGLE-OBS ::= { obs-LongAcc-ValueTooLarge, ... diff --git a/bsm/EtsiTs103759AsrBsm.asn b/bsm/EtsiTs103759AsrBsm.asn new file mode 100644 index 0000000..c861878 --- /dev/null +++ b/bsm/EtsiTs103759AsrBsm.asn @@ -0,0 +1,97 @@ +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)} +WITH SUCCESSORS + + obs-LongAcc-Implausible-Brake, + obs-LongAcc-ValueTooLarge-ThresholdNoContext, + obs-Pos-IncWithPrev-TooFar, + obs-Pos-IncWithPrev-TooSmall, + obs-Speed-ValueTooLarge-ThresholdNoContext +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)} +WITH SUCCESSORS + + 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-3(3)} +WITH SUCCESSORS +; + +/* 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 + */ + +/** + * @brief This data type is for reporting BSM issues defined by the SCMS + * Manager. + */ +AsrBsm ::= TemplateAsr {{SetMbObsTgtsBsm}, {SetMbEvBsm}} + +SetMbObsPosition-Bsm C-ASR-SINGLE-OBS ::= { + obs-Pos-IncWithPrev-TooSmall | + obs-Pos-IncWithPrev-TooFar, + ... +} + +SetMbObsSpeed-Bsm C-ASR-SINGLE-OBS ::= { + obs-Speed-ValueTooLarge-ThresholdNoContext, + ... +} + +SetMbObsLongAcc-Bsm C-ASR-SINGLE-OBS ::= { + obs-LongAcc-ValueTooLarge-ThresholdNoContext | + obs-LongAcc-Implausible-Brake, + ... +} + +/** + * @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}, + ... +} + +/** + * @brief This data type defines the IOS for BSM Evidence + */ +SetMbEvBsm C-ASR-EV ::= { + ... +} + +END \ No newline at end of file diff --git a/cam/EtsiTs103759AsrCam.asn b/cam/EtsiTs103759AsrCam.asn new file mode 100644 index 0000000..d9b7495 --- /dev/null +++ b/cam/EtsiTs103759AsrCam.asn @@ -0,0 +1,174 @@ +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)} +WITH SUCCESSORS + + 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)} +WITH SUCCESSORS + + 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-3(3)} +WITH SUCCESSORS +; + +/** + * @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 + +/** + * @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 specified in ETSI TS 103 097 V2.1.1 + * (2021-10), 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 not contained in the appPermissions of 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, as specified in ETSI EN 302 637-2 V1.4.1 + * (2019-04),e.g., publicTransportContainer is present in the + * specialVehicleContainer but the relevant SSP in the certificate does not + * permit publicTransportContainer. + * + * - `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}, + ... +} + +/** + * @brief This data type defines the IOS for CAM Evidence. + */ +SetMbEvCam C-ASR-EV ::= { + ... +} + +END \ No newline at end of file diff --git a/cbsm/EtsiTs103759AsrCbsm.asn b/cbsm/EtsiTs103759AsrCbsm.asn new file mode 100644 index 0000000..85f49cf --- /dev/null +++ b/cbsm/EtsiTs103759AsrCbsm.asn @@ -0,0 +1,200 @@ +EtsiTs103759AsrCbsm {itu-t(0) identified-organization(4) etsi(0) + itsDomain(5) wg5(5) ts(103759) aid-specific(2) cbsm(111) + 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)} +WITH SUCCESSORS + +-- 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)} +WITH SUCCESSORS + + 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-3(3)} +WITH SUCCESSORS +; + +/** + * @brief This data type is for reporting China BSM service: + * normal BSM from normal vehicles. + */ +AsrCbsm ::= TemplateAsr {{SetMbObsTgtsCbsm}, {SetMbEvCbsm}} + +/** + * @brief This data type is for reporting China BSM service: + * critical event BSM from normal vehicles. + */ +AsrCbsmCritical ::= TemplateAsr {{SetMbObsTgtsCbsm}, {SetMbEvCbsm}} + +/** + * @brief This data type is for reporting China BSM service: + * normal BSM from emergency vehicles. + */ +AsrCbsmEmergency ::= TemplateAsr {{SetMbObsTgtsCbsm}, {SetMbEvCbsm}} + +/** + * @brief This data type is for reporting China BSM service: + * critical event BSM from emergency vehicles. + */ +AsrCbsmCriticalEmergency ::= TemplateAsr {{SetMbObsTgtsCbsm}, {SetMbEvCbsm}} + + +/* Identify target classes for CSAE BSM */ +IdCbsmTgt ::= Uint8 + +c-CbsmTgt-BeaconCommon IdCbsmTgt ::= 0 +c-CbsmTgt-StaticCommon IdCbsmTgt ::= 1 +c-CbsmTgt-SecurityCommon IdCbsmTgt ::= 2 +c-CbsmTgt-PositionCommon IdCbsmTgt ::= 3 +c-CbsmTgt-SpeedCommon IdCbsmTgt ::= 4 +c-CbsmTgt-LongAccCommon IdCbsmTgt ::= 5 + +/** + * @brief This is a complete set of observations for CSAE BSM. + * Application-specific trigger conditions and other relevant information are + * specified below. + * + * @param SetMbObsCompleteBeacon: + * - `Beacon-IntervalTooSmall`: The difference between the generation + * time of two consecutive CSAE BSMs is less than 80% of the value specified in + * T/CSAE 53-2017. The difference is calculated as the difference between the + * two values of secMark. The two C-BSMs presented shall have the difference in + * the generationTime from the security headerInfo be less than 60,000 + * milliseconds, and the generationTime in the second C-BSM greater than the + * generationTime in the first. If the secMark value in the second C-BSM is + * less than the secMark in the first, 60,000 milliseconds shall be added to + * the value in the second for purposes of determining the difference between + * the two secMark values. + * + * @param SetMbObsCompleteStatic: + * - `Static-Change`: Any change in the values of one or more of the + * following fields: vehicleClass, size. + * - `Semantics of the BIT STRING`: vehicleClass(0), size(1). + * + * @param SetMbObsCbsmOnlySecurity: + * - `Security-MessageIdIncWithHeaderInfo`: The selected field of + * MessageFrame is inconsistent with the security headerInfo, e.g., the + * field is bsmFrame and psid in the security headerInfo is not one of + * (111, 112, 113, 114), or, the field is not bsmFrame and psid in the + * security headerInfo is one of (111, 112, 113, 114). + * + * - `Security-HeaderIncWithSecurityProfile`: The security headerInfo is + * inconsistent with the security profile specified in [TBD], + * e.g., generationTime is absent in the security headerInfo and + * is required to be present in the security profile. + * + * - `Security-HeaderPsidIncWithCertificate`: The psid in the security + * headerInfo is not contained in the appPermissions of the certificate, e.g., + * psid in the security headerInfo is equal to 111, and the appPermissions in the + * certificate does not include the value 111. + * + * - `Security-MessageIncWithSsp`: The message payload is inconsistent + * with the SSP in the certificate, as specified in [TBD], + * e.g., publicTransportContainer is present in the + * specialVehicleContainer and the relevant SSP in the certificate does not + * permit publicTransportContainer. + * + * - `Security-HeaderTimeOutsideCertificateValidity`: The generationTime + * in the security headerInfo is outside the validityPeriod in the certificate. + * + * - `Security-MessageLocationOutsideCertificateValidity`: The pos in the + * message is outside the region in the certificate. Trigger condition for + * this detector might need to be updated to take C-shift into account. + * + * - `Security-HeaderLocationOutsideCertificateValidity`: The + * generationLocation in the security headerInfo is outside the region in the + * certificate. Trigger condition for this detector might need to be updated + * to take C-shift into account. + * + * @param SetMbObsEtsiOnlyPosition: Trigger conditions for these detectors + * might need to be updated to take C-shift into account. + * - `Position-ChangeTooLarge`: The speed calculated from the change in + * pos of two consecutive CSAE BSMs meets the trigger conditions of + * Speed-ValueTooLarge-VehicleType. + * + * @param SetMbObsEtsiOnlySpeed: Trigger conditions for these detectors + * might need to be updated to take C-shift into account. + * - `Speed-ValueTooLarge-VehicleType`: The trigger conditions depend on + * the vehicleClass field of the BasicSafetyMessage as follows: + * + * - `passenger-Vehicle-TypeUnknown (10)`: The speed 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-TypeUnkown(40), transit-TypeUnknown(50), + * lightTruck_Vehicle_typeUnknown(20), truck-Vehicle-TypeUnknown(25), + * equipped-CargoTrailer(93)`: The speed 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),otherTraveler-pedestrian(82), otherTraveler-Bicycle(85), + * moped(3), specialVehicleClass(1), tram(11) : The speed is greater than + * 3,000. (Currently, non-highway speed limits are usually well below 100 + * km/h, i.e., 2,778 cm/s.) + * + * - `infrastructure-Fixed(15)`: The speed is greater than 0. (Road side + * units shouldn't be transmitting while being transported.) + * + * - `Speed-ValueTooLarge-DriveDirectionReverse`: The transmission State is + * reverseGears (3) and the speed 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 speed of two consecutive CSAE BSMs meets the trigger conditions of + * LongAcc-ValueTooLarge. + * + * @param SetMbObsEtsiOnlyLongAcc: Trigger conditions for these detectors + * might need to be updated to take C-shift into account. + * - `LongAcc-ValueTooLarge`: The AccelerationSet4Way::long is greater than + * 900 cm/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., + * 882 cm/s^2.) + */ +SetMbObsTgtsCbsm C-ASR-OBS-BY-TGT ::= { + {MbSingleObservation{{SetMbObsCompleteBeacon}} BY + c-CbsmTgt-BeaconCommon} | + {MbSingleObservation{{SetMbObsCompleteStatic}} BY + c-CbsmTgt-StaticCommon} | + {MbSingleObservation{{SetMbObsCompleteSecurity}} BY + c-CbsmTgt-SecurityCommon} | + {MbSingleObservation{{SetMbObsEtsiOnlyPosition}} BY + c-CbsmTgt-PositionCommon} | + {MbSingleObservation{{SetMbObsEtsiOnlySpeed}} BY + c-CbsmTgt-SpeedCommon} | + {MbSingleObservation{{SetMbObsEtsiOnlyLongAcc}} BY + c-CbsmTgt-LongAccCommon}, + ... +} + +/** + * @brief This data type defines the IOS for CSAE BSM Evidence. + */ +SetMbEvCbsm C-ASR-EV ::= { + ... +} + +END \ No newline at end of file diff --git a/denm/EtsiTs103759AsrDenm.asn b/denm/EtsiTs103759AsrDenm.asn new file mode 100644 index 0000000..ea9f6ee --- /dev/null +++ b/denm/EtsiTs103759AsrDenm.asn @@ -0,0 +1,14 @@ +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; + +/** + * @brief This data type is defined as NULL for this version of the standard. + */ +AsrDenm ::= NULL + +END \ No newline at end of file -- GitLab From cd77e5670b16a8cd13bded2f34a7bc3e7eb8104c Mon Sep 17 00:00:00 2001 From: Virendra Kumar Date: Thu, 7 Apr 2022 17:13:47 -0400 Subject: [PATCH 22/66] Removed non-ETSI app-specific folders from this branch --- bsm/EtsiTs103759AsrBsm.asn | 97 ----------------- cbsm/EtsiTs103759AsrCbsm.asn | 200 ----------------------------------- 2 files changed, 297 deletions(-) delete mode 100644 bsm/EtsiTs103759AsrBsm.asn delete mode 100644 cbsm/EtsiTs103759AsrCbsm.asn diff --git a/bsm/EtsiTs103759AsrBsm.asn b/bsm/EtsiTs103759AsrBsm.asn deleted file mode 100644 index c861878..0000000 --- a/bsm/EtsiTs103759AsrBsm.asn +++ /dev/null @@ -1,97 +0,0 @@ -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)} -WITH SUCCESSORS - - obs-LongAcc-Implausible-Brake, - obs-LongAcc-ValueTooLarge-ThresholdNoContext, - obs-Pos-IncWithPrev-TooFar, - obs-Pos-IncWithPrev-TooSmall, - obs-Speed-ValueTooLarge-ThresholdNoContext -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)} -WITH SUCCESSORS - - 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-3(3)} -WITH SUCCESSORS -; - -/* 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 - */ - -/** - * @brief This data type is for reporting BSM issues defined by the SCMS - * Manager. - */ -AsrBsm ::= TemplateAsr {{SetMbObsTgtsBsm}, {SetMbEvBsm}} - -SetMbObsPosition-Bsm C-ASR-SINGLE-OBS ::= { - obs-Pos-IncWithPrev-TooSmall | - obs-Pos-IncWithPrev-TooFar, - ... -} - -SetMbObsSpeed-Bsm C-ASR-SINGLE-OBS ::= { - obs-Speed-ValueTooLarge-ThresholdNoContext, - ... -} - -SetMbObsLongAcc-Bsm C-ASR-SINGLE-OBS ::= { - obs-LongAcc-ValueTooLarge-ThresholdNoContext | - obs-LongAcc-Implausible-Brake, - ... -} - -/** - * @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}, - ... -} - -/** - * @brief This data type defines the IOS for BSM Evidence - */ -SetMbEvBsm C-ASR-EV ::= { - ... -} - -END \ No newline at end of file diff --git a/cbsm/EtsiTs103759AsrCbsm.asn b/cbsm/EtsiTs103759AsrCbsm.asn deleted file mode 100644 index 85f49cf..0000000 --- a/cbsm/EtsiTs103759AsrCbsm.asn +++ /dev/null @@ -1,200 +0,0 @@ -EtsiTs103759AsrCbsm {itu-t(0) identified-organization(4) etsi(0) - itsDomain(5) wg5(5) ts(103759) aid-specific(2) cbsm(111) - 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)} -WITH SUCCESSORS - --- 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)} -WITH SUCCESSORS - - 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-3(3)} -WITH SUCCESSORS -; - -/** - * @brief This data type is for reporting China BSM service: - * normal BSM from normal vehicles. - */ -AsrCbsm ::= TemplateAsr {{SetMbObsTgtsCbsm}, {SetMbEvCbsm}} - -/** - * @brief This data type is for reporting China BSM service: - * critical event BSM from normal vehicles. - */ -AsrCbsmCritical ::= TemplateAsr {{SetMbObsTgtsCbsm}, {SetMbEvCbsm}} - -/** - * @brief This data type is for reporting China BSM service: - * normal BSM from emergency vehicles. - */ -AsrCbsmEmergency ::= TemplateAsr {{SetMbObsTgtsCbsm}, {SetMbEvCbsm}} - -/** - * @brief This data type is for reporting China BSM service: - * critical event BSM from emergency vehicles. - */ -AsrCbsmCriticalEmergency ::= TemplateAsr {{SetMbObsTgtsCbsm}, {SetMbEvCbsm}} - - -/* Identify target classes for CSAE BSM */ -IdCbsmTgt ::= Uint8 - -c-CbsmTgt-BeaconCommon IdCbsmTgt ::= 0 -c-CbsmTgt-StaticCommon IdCbsmTgt ::= 1 -c-CbsmTgt-SecurityCommon IdCbsmTgt ::= 2 -c-CbsmTgt-PositionCommon IdCbsmTgt ::= 3 -c-CbsmTgt-SpeedCommon IdCbsmTgt ::= 4 -c-CbsmTgt-LongAccCommon IdCbsmTgt ::= 5 - -/** - * @brief This is a complete set of observations for CSAE BSM. - * Application-specific trigger conditions and other relevant information are - * specified below. - * - * @param SetMbObsCompleteBeacon: - * - `Beacon-IntervalTooSmall`: The difference between the generation - * time of two consecutive CSAE BSMs is less than 80% of the value specified in - * T/CSAE 53-2017. The difference is calculated as the difference between the - * two values of secMark. The two C-BSMs presented shall have the difference in - * the generationTime from the security headerInfo be less than 60,000 - * milliseconds, and the generationTime in the second C-BSM greater than the - * generationTime in the first. If the secMark value in the second C-BSM is - * less than the secMark in the first, 60,000 milliseconds shall be added to - * the value in the second for purposes of determining the difference between - * the two secMark values. - * - * @param SetMbObsCompleteStatic: - * - `Static-Change`: Any change in the values of one or more of the - * following fields: vehicleClass, size. - * - `Semantics of the BIT STRING`: vehicleClass(0), size(1). - * - * @param SetMbObsCbsmOnlySecurity: - * - `Security-MessageIdIncWithHeaderInfo`: The selected field of - * MessageFrame is inconsistent with the security headerInfo, e.g., the - * field is bsmFrame and psid in the security headerInfo is not one of - * (111, 112, 113, 114), or, the field is not bsmFrame and psid in the - * security headerInfo is one of (111, 112, 113, 114). - * - * - `Security-HeaderIncWithSecurityProfile`: The security headerInfo is - * inconsistent with the security profile specified in [TBD], - * e.g., generationTime is absent in the security headerInfo and - * is required to be present in the security profile. - * - * - `Security-HeaderPsidIncWithCertificate`: The psid in the security - * headerInfo is not contained in the appPermissions of the certificate, e.g., - * psid in the security headerInfo is equal to 111, and the appPermissions in the - * certificate does not include the value 111. - * - * - `Security-MessageIncWithSsp`: The message payload is inconsistent - * with the SSP in the certificate, as specified in [TBD], - * e.g., publicTransportContainer is present in the - * specialVehicleContainer and the relevant SSP in the certificate does not - * permit publicTransportContainer. - * - * - `Security-HeaderTimeOutsideCertificateValidity`: The generationTime - * in the security headerInfo is outside the validityPeriod in the certificate. - * - * - `Security-MessageLocationOutsideCertificateValidity`: The pos in the - * message is outside the region in the certificate. Trigger condition for - * this detector might need to be updated to take C-shift into account. - * - * - `Security-HeaderLocationOutsideCertificateValidity`: The - * generationLocation in the security headerInfo is outside the region in the - * certificate. Trigger condition for this detector might need to be updated - * to take C-shift into account. - * - * @param SetMbObsEtsiOnlyPosition: Trigger conditions for these detectors - * might need to be updated to take C-shift into account. - * - `Position-ChangeTooLarge`: The speed calculated from the change in - * pos of two consecutive CSAE BSMs meets the trigger conditions of - * Speed-ValueTooLarge-VehicleType. - * - * @param SetMbObsEtsiOnlySpeed: Trigger conditions for these detectors - * might need to be updated to take C-shift into account. - * - `Speed-ValueTooLarge-VehicleType`: The trigger conditions depend on - * the vehicleClass field of the BasicSafetyMessage as follows: - * - * - `passenger-Vehicle-TypeUnknown (10)`: The speed 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-TypeUnkown(40), transit-TypeUnknown(50), - * lightTruck_Vehicle_typeUnknown(20), truck-Vehicle-TypeUnknown(25), - * equipped-CargoTrailer(93)`: The speed 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),otherTraveler-pedestrian(82), otherTraveler-Bicycle(85), - * moped(3), specialVehicleClass(1), tram(11) : The speed is greater than - * 3,000. (Currently, non-highway speed limits are usually well below 100 - * km/h, i.e., 2,778 cm/s.) - * - * - `infrastructure-Fixed(15)`: The speed is greater than 0. (Road side - * units shouldn't be transmitting while being transported.) - * - * - `Speed-ValueTooLarge-DriveDirectionReverse`: The transmission State is - * reverseGears (3) and the speed 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 speed of two consecutive CSAE BSMs meets the trigger conditions of - * LongAcc-ValueTooLarge. - * - * @param SetMbObsEtsiOnlyLongAcc: Trigger conditions for these detectors - * might need to be updated to take C-shift into account. - * - `LongAcc-ValueTooLarge`: The AccelerationSet4Way::long is greater than - * 900 cm/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., - * 882 cm/s^2.) - */ -SetMbObsTgtsCbsm C-ASR-OBS-BY-TGT ::= { - {MbSingleObservation{{SetMbObsCompleteBeacon}} BY - c-CbsmTgt-BeaconCommon} | - {MbSingleObservation{{SetMbObsCompleteStatic}} BY - c-CbsmTgt-StaticCommon} | - {MbSingleObservation{{SetMbObsCompleteSecurity}} BY - c-CbsmTgt-SecurityCommon} | - {MbSingleObservation{{SetMbObsEtsiOnlyPosition}} BY - c-CbsmTgt-PositionCommon} | - {MbSingleObservation{{SetMbObsEtsiOnlySpeed}} BY - c-CbsmTgt-SpeedCommon} | - {MbSingleObservation{{SetMbObsEtsiOnlyLongAcc}} BY - c-CbsmTgt-LongAccCommon}, - ... -} - -/** - * @brief This data type defines the IOS for CSAE BSM Evidence. - */ -SetMbEvCbsm C-ASR-EV ::= { - ... -} - -END \ No newline at end of file -- GitLab From 23f9153fe04a9f18a85e8989583293937091e08c Mon Sep 17 00:00:00 2001 From: Virendra Kumar Date: Thu, 7 Apr 2022 17:47:59 -0400 Subject: [PATCH 23/66] Removed OSS ASN.1 project file --- Dev-TS103759.a1sproj | 31 ------------------------------- 1 file changed, 31 deletions(-) delete mode 100644 Dev-TS103759.a1sproj diff --git a/Dev-TS103759.a1sproj b/Dev-TS103759.a1sproj deleted file mode 100644 index a3f1661..0000000 --- a/Dev-TS103759.a1sproj +++ /dev/null @@ -1,31 +0,0 @@ - - - EtsiTs103759.asn - EtsiTs103759AsrAppAgnostic.asn - EtsiTs103759AsrBsm.asn - EtsiTs103759AsrCam.asn - EtsiTs103759AsrCbsm.asn - EtsiTs103759AsrDenm.asn - EtsiTs103759CommonObservations.asn - cdd/ITS-Container.asn - ieee1609dot2/Ieee1609Dot2.asn - ieee1609dot2/Ieee1609Dot2BaseTypes.asn - sec_ts103097/EtsiTs103097ExtensionModule.asn - sec_ts103097/EtsiTs103097Module.asn - - - - - - - - - - - - - - - - - -- GitLab From b9cce648187e0ab065db7646443a6d3a06679094 Mon Sep 17 00:00:00 2001 From: Virendra Kumar Date: Wed, 18 May 2022 11:28:13 -0400 Subject: [PATCH 24/66] Removed US and China specific files. Also removed minor-version-1 of DENM file as that's identical to minor-version-0 --- EtsiTs103759.asn | 28 ++++------------------------ EtsiTs103759AsrBsm.asn | 14 -------------- EtsiTs103759AsrCbsm.asn | 29 ----------------------------- denm/EtsiTs103759AsrDenm.asn | 14 -------------- 4 files changed, 4 insertions(+), 81 deletions(-) delete mode 100644 EtsiTs103759AsrBsm.asn delete mode 100644 EtsiTs103759AsrCbsm.asn delete mode 100644 denm/EtsiTs103759AsrDenm.asn diff --git a/EtsiTs103759.asn b/EtsiTs103759.asn index 0cb1d91..42cbf3c 100755 --- a/EtsiTs103759.asn +++ b/EtsiTs103759.asn @@ -30,27 +30,12 @@ FROM EtsiTs103759AsrAppAgnostic {itu-t(0) identified-organization(4) etsi(0) major-version-1(1) minor-version-0(0)} WITH SUCCESSORS - 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-0(0)} -WITH SUCCESSORS - 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-0(0)} WITH SUCCESSORS - AsrCbsm, - AsrCbsmCritical, - AsrCbsmEmergency, - AsrCbsmCriticalEmergency -FROM EtsiTs103759AsrCbsm {itu-t(0) identified-organization(4) etsi(0) - itsDomain(5) wg5(5) ts(103759) aid-specific(2) cbsm(111) - major-version-1(1) minor-version-0(0)} -WITH SUCCESSORS - AsrDenm FROM EtsiTs103759AsrDenm {itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103759) aid-specific(2) denm(37) @@ -128,15 +113,10 @@ C-ASR ::= CLASS { * 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}, - ..., - {AsrCbsm IDENTIFIED BY c-AsrCbsm} | - {AsrCbsmCritical IDENTIFIED BY c-AsrCbsmCritical} | - {AsrCbsmEmergency IDENTIFIED BY c-AsrCbsmEmergency} | - {AsrCbsmCriticalEmergency IDENTIFIED BY c-AsrCbsmCriticalEmergency} + {AsrAppAgnostic IDENTIFIED BY c-AsrAppAgnostic} | + {AsrCam IDENTIFIED BY c-AsrCam} | + {AsrDenm IDENTIFIED BY c-AsrDenm}, + ... } /** diff --git a/EtsiTs103759AsrBsm.asn b/EtsiTs103759AsrBsm.asn deleted file mode 100644 index d035270..0000000 --- a/EtsiTs103759AsrBsm.asn +++ /dev/null @@ -1,14 +0,0 @@ -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-0(0)} - -DEFINITIONS AUTOMATIC TAGS ::= BEGIN - -EXPORTS ALL; - -/** - * @brief This data type is defined as NULL for version 0 of this file. - */ -AsrBsm ::= NULL - -END \ No newline at end of file diff --git a/EtsiTs103759AsrCbsm.asn b/EtsiTs103759AsrCbsm.asn deleted file mode 100644 index 04c57bb..0000000 --- a/EtsiTs103759AsrCbsm.asn +++ /dev/null @@ -1,29 +0,0 @@ -EtsiTs103759AsrCbsm {itu-t(0) identified-organization(4) etsi(0) - itsDomain(5) wg5(5) ts(103759) aid-specific(2) cbsm(111) - major-version-1(1) minor-version-0(0)} - -DEFINITIONS AUTOMATIC TAGS ::= BEGIN - -EXPORTS ALL; - -/** - * @brief This data type is defined as NULL for version 0 of this file. - */ -AsrCbsm ::= NULL - -/** - * @brief This data type is defined as NULL for version 0 of this file. - */ -AsrCbsmCritical ::= NULL - -/** - * @brief This data type is defined as NULL for version 0 of this file. - */ -AsrCbsmEmergency ::= NULL - -/** - * @brief This data type is defined as NULL for version 0 of this file. - */ -AsrCbsmCriticalEmergency ::= NULL - -END \ No newline at end of file diff --git a/denm/EtsiTs103759AsrDenm.asn b/denm/EtsiTs103759AsrDenm.asn deleted file mode 100644 index ea9f6ee..0000000 --- a/denm/EtsiTs103759AsrDenm.asn +++ /dev/null @@ -1,14 +0,0 @@ -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; - -/** - * @brief This data type is defined as NULL for this version of the standard. - */ -AsrDenm ::= NULL - -END \ No newline at end of file -- GitLab From b2adad675e0c1b1378d3427440f01ae4f3e334b4 Mon Sep 17 00:00:00 2001 From: Virendra Kumar Date: Wed, 18 May 2022 13:14:29 -0400 Subject: [PATCH 25/66] Documentation updated, remaining stuff about BSM and C-BSM removed --- EtsiTs103759.asn | 37 ++---- docs/EtsiTs103759.html | 23 ++-- docs/EtsiTs103759.md | 28 ++--- docs/EtsiTs103759AsrAppAgnostic.html | 2 +- docs/EtsiTs103759AsrAppAgnostic.md | 2 +- docs/EtsiTs103759AsrBsm.md | 108 ------------------ ...9AsrBsm.html => EtsiTs103759AsrCam-0.html} | 47 +------- docs/EtsiTs103759AsrCam-0.md | 16 +++ ...9AsrCam.html => EtsiTs103759AsrCam-1.html} | 13 ++- ...03759AsrCam.md => EtsiTs103759AsrCam-1.md} | 13 ++- docs/EtsiTs103759AsrDenm.html | 4 +- docs/EtsiTs103759AsrDenm.md | 4 +- docs/EtsiTs103759MbrCommonObservations.html | 21 ++++ docs/EtsiTs103759MbrCommonObservations.md | 42 +++++++ 14 files changed, 138 insertions(+), 222 deletions(-) delete mode 100644 docs/EtsiTs103759AsrBsm.md rename docs/{EtsiTs103759AsrBsm.html => EtsiTs103759AsrCam-0.html} (82%) create mode 100644 docs/EtsiTs103759AsrCam-0.md rename docs/{EtsiTs103759AsrCam.html => EtsiTs103759AsrCam-1.html} (98%) rename docs/{EtsiTs103759AsrCam.md => EtsiTs103759AsrCam-1.md} (89%) diff --git a/EtsiTs103759.asn b/EtsiTs103759.asn index 42cbf3c..7770b27 100755 --- a/EtsiTs103759.asn +++ b/EtsiTs103759.asn @@ -47,6 +47,13 @@ WITH SUCCESSORS * @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. * + * Note (normative): AID-specific modules (EtsiTs103759AsrAppAgnostic, + * EtsiTs103759AsrCam, EtsiTs103759AsrDenm) have been imported using + * WITH SUCCESSORS to enable importing one or more of those modules with + * minor-version greater than 0 without requiring any change in the import + * statements. This standard requires at least one of these AID-specific + * modules to have minor-version greater than 0. + * * @param version: contains the version number of this PDU definition. For this * version of this data type it shall be equal to 2. * @@ -127,12 +134,6 @@ SetAsr C-ASR ::= { */ c-AsrAppAgnostic Psid ::= 270549119 -/** - * @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 - /** * @brief This data type contains the ITS-AID of the CA service. */ @@ -143,30 +144,6 @@ c-AsrCam Psid ::= 36 */ c-AsrDenm Psid ::= 37 -/** - * @brief This data type contains the ITS-AID of the China BSM service: - * normal BSM from normal vehicles. - */ -c-AsrCbsm Psid ::= 111 - -/** - * @brief This data type contains the ITS-AID of the China BSM service: - * critical event BSM from normal vehicles. - */ -c-AsrCbsmCritical Psid ::= 112 - -/** - * @brief This data type contains the ITS-AID of the China BSM service: - * normal BSM from emergency vehicles. - */ -c-AsrCbsmEmergency Psid ::= 113 - -/** - * @brief This data type contains the ITS-AID of the China BSM service: - * critical event BSM from emergency vehicles. - */ -c-AsrCbsmCriticalEmergency Psid ::= 114 - /** * @brief This data type contains the template for a report on any ITS PDU. * diff --git a/docs/EtsiTs103759.html b/docs/EtsiTs103759.html index 4351182..f8c37a9 100644 --- a/docs/EtsiTs103759.html +++ b/docs/EtsiTs103759.html @@ -809,23 +809,25 @@ pre.editor-colors .fold-marker:after {
  • EtsiTs103097Module {itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) secHeaders(103097) core(1) major-version-3(3) minor-version-1(1)} WITH SUCCESSORS

  • -
  • 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-4(4)} WITH SUCCESSORS

    -
  • 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-3(3)} WITH SUCCESSORS

  • -
  • 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)} WITH SUCCESSORS

    -
  • -
  • 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)} WITH SUCCESSORS

    +
  • 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-0(0)} WITH SUCCESSORS

  • -
  • 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)} WITH SUCCESSORS

    +
  • 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-0(0)} WITH SUCCESSORS

  • -
  • 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)} WITH SUCCESSORS

    +
  • 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-0(0)} WITH SUCCESSORS

Data Elements:

EtsiTs103759Data

This data type is the general PDU for a misbehaviour report from an ITS-S to the MA responsible for reports of that type.

+

Note (normative): AID-specific modules (EtsiTs103759AsrAppAgnostic, + EtsiTs103759AsrCam, EtsiTs103759AsrDenm) have been imported using + WITH SUCCESSORS to enable importing one or more of those modules with + minor-version greater than 0 without requiring any change in the import + statements. This standard requires at least one of these AID-specific + modules to have minor-version greater than 0.

Fields:

  • version Uint8
    @@ -874,9 +876,8 @@ TemplateAsr instantiated with AID-specific Information Object Sets.

    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 ::= {
    {AsrAppAgnostic IDENTIFIED BY c-AsrAppAgnostic} |
    {AsrCam IDENTIFIED BY c-AsrCam} |
    {AsrDenm IDENTIFIED BY c-AsrDenm},
    ...
    }
    c-AsrAppAgnostic Psid ::= 270549119
    -
    c-AsrBsm Psid ::= 32
    c-AsrCam Psid ::= 36
    c-AsrDenm Psid ::= 37
    } ::= SEQUENCE {
    observations SEQUENCE (SIZE(1..MAX)) OF ObservationsByTarget
    {{ObservationSet}},
    v2xPduEvidence SEQUENCE (SIZE(1..MAX)) OF V2xPduStream,
    nonV2xPduEvidence SEQUENCE (SIZE(0..MAX)) OF NonV2xPduEvidenceItem
    {{NonV2xPduEvidenceSet}}
    }
    @@ -938,7 +939,7 @@ 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 Certificate OPTIONAL
    +

  • certificate EtsiTs103097Certificate OPTIONAL
    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 @@ -953,7 +954,7 @@ 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 {
type C-OBS-PDU.&id ({SetObsPdu}),
v2xPdus SEQUENCE (SIZE(1..255)) OF C-OBS-PDU.&Val
({SetObsPdu}{@.type}),
certificate EtsiTs103097Certificate OPTIONAL,
subjectPduIndex Uint8,
...
}

C-OBS-PDU

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

diff --git a/docs/EtsiTs103759.md b/docs/EtsiTs103759.md index e6826f6..40a927b 100644 --- a/docs/EtsiTs103759.md +++ b/docs/EtsiTs103759.md @@ -4,17 +4,13 @@ ## Imports: * **[EtsiTs103097Module](EtsiTs103097Module.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) secHeaders(103097) core(1) major-version-3(3) minor-version-1(1)} WITH SUCCESSORS*
- * **[Ieee1609Dot2](Ieee1609Dot2.md)** *{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-4(4)} WITH SUCCESSORS*
- * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-3(3)} WITH SUCCESSORS*
- * **[EtsiTs103759AsrAppAgnostic](EtsiTs103759AsrAppAgnostic.md)** *{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)} WITH SUCCESSORS*
- - * **[EtsiTs103759AsrBsm](EtsiTs103759AsrBsm.md)** *{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)} WITH SUCCESSORS*
+ * **[EtsiTs103759AsrAppAgnostic](EtsiTs103759AsrAppAgnostic.md)** *{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-0(0)} WITH SUCCESSORS*
- * **[EtsiTs103759AsrCam](EtsiTs103759AsrCam.md)** *{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)} WITH SUCCESSORS*
+ * **[EtsiTs103759AsrCam](EtsiTs103759AsrCam.md)** *{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-0(0)} WITH SUCCESSORS*
- * **[EtsiTs103759AsrDenm](EtsiTs103759AsrDenm.md)** *{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)} WITH SUCCESSORS*
+ * **[EtsiTs103759AsrDenm](EtsiTs103759AsrDenm.md)** *{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-0(0)} WITH SUCCESSORS*
## Data Elements: ### EtsiTs103759Data @@ -22,6 +18,13 @@ This data type is the general PDU for a misbehaviour report from an ITS-S to the MA responsible for reports of that type. + Note (normative): AID-specific modules (EtsiTs103759AsrAppAgnostic, + EtsiTs103759AsrCam, EtsiTs103759AsrDenm) have been imported using + WITH SUCCESSORS to enable importing one or more of those modules with + minor-version greater than 0 without requiring any change in the import + statements. This standard requires at least one of these AID-specific + modules to have minor-version greater than 0. + Fields: * version [**Uint8**](Ieee1609Dot2BaseTypes.md#Uint8)
contains the version number of this PDU definition. For this @@ -106,7 +109,6 @@ C-ASR ::= CLASS { ```asn1 SetAsr C-ASR ::= { {AsrAppAgnostic IDENTIFIED BY c-AsrAppAgnostic} | - {AsrBsm IDENTIFIED BY c-AsrBsm} | {AsrCam IDENTIFIED BY c-AsrCam} | {AsrDenm IDENTIFIED BY c-AsrDenm}, ... @@ -121,12 +123,6 @@ c-AsrAppAgnostic Psid ::= 270549119 -```asn1 -c-AsrBsm Psid ::= 32 -``` - - - ```asn1 c-AsrCam Psid ::= 36 ``` @@ -234,7 +230,7 @@ is the PDU stream, i.e., a series of PDUs for the same AID 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 [**Certificate**](Ieee1609Dot2.md#Certificate) OPTIONAL
+* certificate [**EtsiTs103097Certificate**](EtsiTs103097Module.md#EtsiTs103097Certificate) OPTIONAL
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 @@ -253,7 +249,7 @@ V2xPduStream ::= SEQUENCE { type C-OBS-PDU.&id ({SetObsPdu}), v2xPdus SEQUENCE (SIZE(1..255)) OF C-OBS-PDU.&Val ({SetObsPdu}{@.type}), - certificate Certificate OPTIONAL, + certificate EtsiTs103097Certificate OPTIONAL, subjectPduIndex Uint8, ... } diff --git a/docs/EtsiTs103759AsrAppAgnostic.html b/docs/EtsiTs103759AsrAppAgnostic.html index 5f28dff..073abfc 100644 --- a/docs/EtsiTs103759AsrAppAgnostic.html +++ b/docs/EtsiTs103759AsrAppAgnostic.html @@ -804,7 +804,7 @@ pre.editor-colors .fold-marker:after {

ASN.1 module EtsiTs103759AsrAppAgnostic

-

OID: {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)}

+

OID: {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-0(0)}

Data Elements:

AsrAppAgnostic

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

diff --git a/docs/EtsiTs103759AsrAppAgnostic.md b/docs/EtsiTs103759AsrAppAgnostic.md index fcf3b2f..30a57c7 100644 --- a/docs/EtsiTs103759AsrAppAgnostic.md +++ b/docs/EtsiTs103759AsrAppAgnostic.md @@ -1,5 +1,5 @@ # ASN.1 module EtsiTs103759AsrAppAgnostic - OID: _{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)}_ + OID: _{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-0(0)}_ ## Data Elements: ### AsrAppAgnostic diff --git a/docs/EtsiTs103759AsrBsm.md b/docs/EtsiTs103759AsrBsm.md deleted file mode 100644 index a440cc0..0000000 --- a/docs/EtsiTs103759AsrBsm.md +++ /dev/null @@ -1,108 +0,0 @@ -# ASN.1 module EtsiTs103759AsrBsm - OID: _{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)}_ - -## Imports: - * **[EtsiTs103759](EtsiTs103759.md)** *{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)} WITH SUCCESSORS*
- - * **[EtsiTs103759MbrCommonObservations](EtsiTs103759MbrCommonObservations.md)** *{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)} WITH SUCCESSORS*
- - * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-3(3)} WITH SUCCESSORS*
- -## Data Elements: -### IdBsmTgt - - - -```asn1 -IdBsmTgt ::= Uint8 -``` - - - -```asn1 -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. - - - -```asn1 -AsrBsm ::= TemplateAsr {{SetMbObsTgtsBsm}, {SetMbEvBsm}} -``` - -### SetMbObsPosition-Bsm - -Values: -* **obs-Pos-IncWithPrev-TooSmall** |
-```asn1 -SetMbObsPosition-Bsm C-ASR-SINGLE-OBS ::= { - obs-Pos-IncWithPrev-TooSmall | - obs-Pos-IncWithPrev-TooFar, - ... -} -``` - -### SetMbObsSpeed-Bsm - -```asn1 -SetMbObsSpeed-Bsm C-ASR-SINGLE-OBS ::= { - obs-Speed-ValueTooLarge-ThresholdNoContext, - ... -} -``` - -### SetMbObsLongAcc-Bsm - -Values: -* **obs-LongAcc-ValueTooLarge-ThresholdNoContext** |
-```asn1 -SetMbObsLongAcc-Bsm C-ASR-SINGLE-OBS ::= { - obs-LongAcc-ValueTooLarge-ThresholdNoContext | - obs-LongAcc-Implausible-Brake, - ... -} -``` - -### 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. - - - -```asn1 -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}, - ... -} -``` - -### SetMbEvBsm - - This data type defines the IOS for BSM Evidence - - - -```asn1 -SetMbEvBsm C-ASR-EV ::= { - ... -} -``` - - - diff --git a/docs/EtsiTs103759AsrBsm.html b/docs/EtsiTs103759AsrCam-0.html similarity index 82% rename from docs/EtsiTs103759AsrBsm.html rename to docs/EtsiTs103759AsrCam-0.html index 9313c10..7d62657 100644 --- a/docs/EtsiTs103759AsrBsm.html +++ b/docs/EtsiTs103759AsrCam-0.html @@ -2,7 +2,7 @@ - EtsiTs103759AsrBsm + EtsiTs103759AsrCam -

ASN.1 module EtsiTs103759AsrBsm

-

OID: {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)}

-

Imports:

-
    -
  • 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)} WITH SUCCESSORS

    -
  • -
  • 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)} WITH SUCCESSORS

    -
  • -
  • 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-3(3)} WITH SUCCESSORS

    -
  • -
+

ASN.1 module EtsiTs103759AsrCam

+

OID: {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-0(0)}

Data Elements:

-

IdBsmTgt

-
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

-

Values:

-
    -
  • obs-Pos-IncWithPrev-TooSmall |
    SetMbObsPosition-Bsm C-ASR-SINGLE-OBS ::= {
    obs-Pos-IncWithPrev-TooSmall |
    obs-Pos-IncWithPrev-TooFar,
    ...
    }
    -
  • -
-

SetMbObsSpeed-Bsm

-
SetMbObsSpeed-Bsm C-ASR-SINGLE-OBS ::= {
obs-Speed-ValueTooLarge-ThresholdNoContext,
...
}
-

SetMbObsLongAcc-Bsm

-

Values:

-
    -
  • obs-LongAcc-ValueTooLarge-ThresholdNoContext |
    SetMbObsLongAcc-Bsm C-ASR-SINGLE-OBS ::= {
    obs-LongAcc-ValueTooLarge-ThresholdNoContext |
    obs-LongAcc-Implausible-Brake,
    ...
    }
    -
  • -
-

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.

-
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},
...
}
-

SetMbEvBsm

-

This data type defines the IOS for BSM Evidence

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

AsrCam

+

This data type is defined as NULL for version 0 of this file.

+
AsrCam ::= NULL
diff --git a/docs/EtsiTs103759AsrCam-0.md b/docs/EtsiTs103759AsrCam-0.md new file mode 100644 index 0000000..0b5b05b --- /dev/null +++ b/docs/EtsiTs103759AsrCam-0.md @@ -0,0 +1,16 @@ +# ASN.1 module EtsiTs103759AsrCam + OID: _{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-0(0)}_ + +## Data Elements: +### AsrCam + + This data type is defined as NULL for version 0 of this file. + + + +```asn1 +AsrCam ::= NULL +``` + + + diff --git a/docs/EtsiTs103759AsrCam.html b/docs/EtsiTs103759AsrCam-1.html similarity index 98% rename from docs/EtsiTs103759AsrCam.html rename to docs/EtsiTs103759AsrCam-1.html index 9ccb6ab..27853c6 100644 --- a/docs/EtsiTs103759AsrCam.html +++ b/docs/EtsiTs103759AsrCam-1.html @@ -826,17 +826,20 @@ pre.editor-colors .fold-marker:after { trigger conditions and other relevant information are specified below.

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

    +inconsistent with the security profile specified in ETSI TS 103 097 V2.1.1 +(2021-10), 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., +headerInfo is not contained in the appPermissions of 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.

    +with the SSP in the certificate, as specified in ETSI EN 302 637-2 V1.4.1 +(2019-04),e.g., publicTransportContainer is present in the +specialVehicleContainer but the relevant SSP in the certificate does not +permit publicTransportContainer.

  • Security-HeaderTimeOutsideCertificateValidity: The generationTime in the security headerInfo is outside the validityPeriod in the certificate.

    diff --git a/docs/EtsiTs103759AsrCam.md b/docs/EtsiTs103759AsrCam-1.md similarity index 89% rename from docs/EtsiTs103759AsrCam.md rename to docs/EtsiTs103759AsrCam-1.md index a42f03c..66c0141 100644 --- a/docs/EtsiTs103759AsrCam.md +++ b/docs/EtsiTs103759AsrCam-1.md @@ -44,17 +44,20 @@ c-CamTgt-LongAccCommon IdCamTgt ::= 5 trigger conditions and other relevant information are specified below. - `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. + inconsistent with the security profile specified in ETSI TS 103 097 V2.1.1 + (2021-10), 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., + headerInfo is not contained in the appPermissions of 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. + with the SSP in the certificate, as specified in ETSI EN 302 637-2 V1.4.1 + (2019-04),e.g., publicTransportContainer is present in the + specialVehicleContainer but the relevant SSP in the certificate does not + permit publicTransportContainer. - `Security-HeaderTimeOutsideCertificateValidity`: The generationTime in the security headerInfo is outside the validityPeriod in the certificate. diff --git a/docs/EtsiTs103759AsrDenm.html b/docs/EtsiTs103759AsrDenm.html index 3dd4b4f..1503388 100644 --- a/docs/EtsiTs103759AsrDenm.html +++ b/docs/EtsiTs103759AsrDenm.html @@ -804,9 +804,9 @@ pre.editor-colors .fold-marker:after {

    ASN.1 module EtsiTs103759AsrDenm

    -

    OID: {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)}

    +

    OID: {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-0(0)}

    Data Elements:

    AsrDenm

    -

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

    +

    This data type is defined as NULL for version 0 of this file.

    AsrDenm ::= NULL
    diff --git a/docs/EtsiTs103759AsrDenm.md b/docs/EtsiTs103759AsrDenm.md index c524ac5..82297db 100644 --- a/docs/EtsiTs103759AsrDenm.md +++ b/docs/EtsiTs103759AsrDenm.md @@ -1,10 +1,10 @@ # ASN.1 module EtsiTs103759AsrDenm - OID: _{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)}_ + OID: _{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-0(0)}_ ## Data Elements: ### AsrDenm - This data type is defined as NULL for this version of the standard. + This data type is defined as NULL for version 0 of this file. diff --git a/docs/EtsiTs103759MbrCommonObservations.html b/docs/EtsiTs103759MbrCommonObservations.html index 5ba4e5a..74a091b 100644 --- a/docs/EtsiTs103759MbrCommonObservations.html +++ b/docs/EtsiTs103759MbrCommonObservations.html @@ -1058,6 +1058,13 @@ to support this observation.

    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
    }
    +

    SetMbObsPosition

    +

    Values:

    +
      +
    • obs-Pos-IncWithPrev-TooSmall |
    • +
    • obs-Pos-IncWithPrev-TooFar |
      SetMbObsPosition C-ASR-SINGLE-OBS ::= {
      obs-Pos-IncWithPrev-TooSmall |
      obs-Pos-IncWithPrev-TooFar |
      obs-Position-ChangeTooLarge,
      ...
      }
      +
    • +

    SetMbObsEtsiOnlyPosition

    SetMbObsEtsiOnlyPosition C-ASR-SINGLE-OBS ::= {
    obs-Position-ChangeTooLarge,
    ...
    }

    Speed-ValueTooLarge-ThresholdNoContext

    @@ -1126,6 +1133,14 @@ to support this observation.

    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
    }
    +

    SetMbObsSpeed

    +

    Values:

    +
      +
    • obs-Speed-ValueTooLarge-VehicleType |
    • +
    • obs-Speed-ValueTooLarge-ThresholdNoContext |
    • +
    • obs-Speed-ValueTooLarge-DriveDirectionReverse |
      SetMbObsSpeed C-ASR-SINGLE-OBS ::= {
      obs-Speed-ValueTooLarge-VehicleType |
      obs-Speed-ValueTooLarge-ThresholdNoContext |
      obs-Speed-ValueTooLarge-DriveDirectionReverse |
      obs-Speed-ChangeTooLarge,
      ...
      }
      +
    • +

    SetMbObsEtsiOnlySpeed

    Values:

      @@ -1163,6 +1178,12 @@ to support this observation.

      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
      }
      +

      SetMbObsLongAcc

      +

      Values:

      +
        +
      • obs-LongAcc-Implausible-Brake |
        SetMbObsLongAcc C-ASR-SINGLE-OBS ::= {
        obs-LongAcc-Implausible-Brake |
        obs-LongAcc-ValueTooLarge,
        ...
        }
        +
      • +

      SetMbObsEtsiOnlyLongAcc

      SetMbObsEtsiOnlyLongAcc C-ASR-SINGLE-OBS ::= {
      obs-LongAcc-ValueTooLarge,
      ...
      }
      diff --git a/docs/EtsiTs103759MbrCommonObservations.md b/docs/EtsiTs103759MbrCommonObservations.md index 0a399ec..5a2a4be 100644 --- a/docs/EtsiTs103759MbrCommonObservations.md +++ b/docs/EtsiTs103759MbrCommonObservations.md @@ -448,6 +448,20 @@ obs-Position-ChangeTooLarge C-ASR-SINGLE-OBS ::= { } ``` +### SetMbObsPosition + +Values: +* **obs-Pos-IncWithPrev-TooSmall** |
      +* **obs-Pos-IncWithPrev-TooFar** |
      +```asn1 +SetMbObsPosition C-ASR-SINGLE-OBS ::= { + obs-Pos-IncWithPrev-TooSmall | + obs-Pos-IncWithPrev-TooFar | + obs-Position-ChangeTooLarge, + ... +} +``` + ### SetMbObsEtsiOnlyPosition ```asn1 @@ -577,6 +591,22 @@ obs-Speed-ChangeTooLarge C-ASR-SINGLE-OBS ::= { } ``` +### SetMbObsSpeed + +Values: +* **obs-Speed-ValueTooLarge-VehicleType** |
      +* **obs-Speed-ValueTooLarge-ThresholdNoContext** |
      +* **obs-Speed-ValueTooLarge-DriveDirectionReverse** |
      +```asn1 +SetMbObsSpeed C-ASR-SINGLE-OBS ::= { + obs-Speed-ValueTooLarge-VehicleType | + obs-Speed-ValueTooLarge-ThresholdNoContext | + obs-Speed-ValueTooLarge-DriveDirectionReverse | + obs-Speed-ChangeTooLarge, + ... +} +``` + ### SetMbObsEtsiOnlySpeed Values: @@ -664,6 +694,18 @@ obs-LongAcc-ValueTooLarge C-ASR-SINGLE-OBS ::= { } ``` +### SetMbObsLongAcc + +Values: +* **obs-LongAcc-Implausible-Brake** |
      +```asn1 +SetMbObsLongAcc C-ASR-SINGLE-OBS ::= { + obs-LongAcc-Implausible-Brake | + obs-LongAcc-ValueTooLarge, + ... +} +``` + ### SetMbObsEtsiOnlyLongAcc ```asn1 -- GitLab From f93d80129277346e44bd61ca6da118c08d910024 Mon Sep 17 00:00:00 2001 From: Virendra Kumar Date: Mon, 23 May 2022 14:08:55 -0400 Subject: [PATCH 26/66] Moved the statement about minor-version from Note to the description of the main structure. --- EtsiTs103759.asn | 14 ++++++-------- docs/EtsiTs103759.html | 13 ++++++------- docs/EtsiTs103759.md | 14 ++++++-------- 3 files changed, 18 insertions(+), 23 deletions(-) diff --git a/EtsiTs103759.asn b/EtsiTs103759.asn index 7770b27..ea3f5dc 100755 --- a/EtsiTs103759.asn +++ b/EtsiTs103759.asn @@ -45,14 +45,12 @@ WITH SUCCESSORS /** * @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. - * - * Note (normative): AID-specific modules (EtsiTs103759AsrAppAgnostic, - * EtsiTs103759AsrCam, EtsiTs103759AsrDenm) have been imported using - * WITH SUCCESSORS to enable importing one or more of those modules with - * minor-version greater than 0 without requiring any change in the import - * statements. This standard requires at least one of these AID-specific - * modules to have minor-version greater than 0. + * ITS-S to the MA responsible for reports of that type. AID-specific modules + * (EtsiTs103759AsrAppAgnostic, EtsiTs103759AsrCam, EtsiTs103759AsrDenm) have + * been imported using WITH SUCCESSORS to enable importing one or more of those + * modules with minor-version greater than 0 without requiring any change in the + * import statements. At least one of these AID-specific modules shall have + * minor-version greater than 0. * * @param version: contains the version number of this PDU definition. For this * version of this data type it shall be equal to 2. diff --git a/docs/EtsiTs103759.html b/docs/EtsiTs103759.html index f8c37a9..0251eb0 100644 --- a/docs/EtsiTs103759.html +++ b/docs/EtsiTs103759.html @@ -821,13 +821,12 @@ pre.editor-colors .fold-marker:after {

      Data Elements:

      EtsiTs103759Data

      This data type is the general PDU for a misbehaviour report from an - ITS-S to the MA responsible for reports of that type.

      -

      Note (normative): AID-specific modules (EtsiTs103759AsrAppAgnostic, - EtsiTs103759AsrCam, EtsiTs103759AsrDenm) have been imported using - WITH SUCCESSORS to enable importing one or more of those modules with - minor-version greater than 0 without requiring any change in the import - statements. This standard requires at least one of these AID-specific - modules to have minor-version greater than 0.

      + ITS-S to the MA responsible for reports of that type. AID-specific modules + (EtsiTs103759AsrAppAgnostic, EtsiTs103759AsrCam, EtsiTs103759AsrDenm) have + been imported using WITH SUCCESSORS to enable importing one or more of those + modules with minor-version greater than 0 without requiring any change in the + import statements. At least one of these AID-specific modules shall have + minor-version greater than 0.

      Fields:

      • version Uint8
        diff --git a/docs/EtsiTs103759.md b/docs/EtsiTs103759.md index 40a927b..df83f66 100644 --- a/docs/EtsiTs103759.md +++ b/docs/EtsiTs103759.md @@ -16,14 +16,12 @@ ### EtsiTs103759Data This data type is the general PDU for a misbehaviour report from an - ITS-S to the MA responsible for reports of that type. - - Note (normative): AID-specific modules (EtsiTs103759AsrAppAgnostic, - EtsiTs103759AsrCam, EtsiTs103759AsrDenm) have been imported using - WITH SUCCESSORS to enable importing one or more of those modules with - minor-version greater than 0 without requiring any change in the import - statements. This standard requires at least one of these AID-specific - modules to have minor-version greater than 0. + ITS-S to the MA responsible for reports of that type. AID-specific modules + (EtsiTs103759AsrAppAgnostic, EtsiTs103759AsrCam, EtsiTs103759AsrDenm) have + been imported using WITH SUCCESSORS to enable importing one or more of those + modules with minor-version greater than 0 without requiring any change in the + import statements. At least one of these AID-specific modules shall have + minor-version greater than 0. Fields: * version [**Uint8**](Ieee1609Dot2BaseTypes.md#Uint8)
        -- GitLab From 6fbc47c3221095cf828beba11a59fec3c0c981b7 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Mon, 13 Jun 2022 13:06:18 +0000 Subject: [PATCH 27/66] Fixes to avoid documentation generation issues --- .gitlab-ci.mk | 24 - .gitlab-ci.yml | 32 +- .gitmodules | 5 +- asn2md.py | 326 +++++ cam/EtsiTs103759AsrCam.asn | 111 +- docs/EtsiTs103097ExtensionModule.md | 101 ++ docs/EtsiTs103097Module.md | 151 ++ docs/EtsiTs103759.md | 318 ++-- docs/EtsiTs103759AsrAppAgnostic.md | 8 +- docs/EtsiTs103759AsrCam-0.md | 16 - docs/EtsiTs103759AsrCam-1.md | 127 -- docs/EtsiTs103759AsrCam.md | 162 +++ docs/EtsiTs103759AsrDenm.md | 8 +- docs/EtsiTs103759MbrCommonObservations.md | 457 +++--- docs/ITS-Container.md | 1176 +++++++++++++++ docs/Ieee1609Dot2.md | 1517 +++++++++++++++++++ docs/Ieee1609Dot2BaseTypes.md | 1613 +++++++++++++++++++++ ieee1609dot2 | 1 - 18 files changed, 5476 insertions(+), 677 deletions(-) delete mode 100755 .gitlab-ci.mk create mode 100755 asn2md.py create mode 100644 docs/EtsiTs103097ExtensionModule.md create mode 100644 docs/EtsiTs103097Module.md delete mode 100644 docs/EtsiTs103759AsrCam-0.md delete mode 100644 docs/EtsiTs103759AsrCam-1.md create mode 100644 docs/EtsiTs103759AsrCam.md create mode 100644 docs/ITS-Container.md create mode 100644 docs/Ieee1609Dot2.md create mode 100644 docs/Ieee1609Dot2BaseTypes.md delete mode 160000 ieee1609dot2 diff --git a/.gitlab-ci.mk b/.gitlab-ci.mk deleted file mode 100755 index 79ccd57..0000000 --- a/.gitlab-ci.mk +++ /dev/null @@ -1,24 +0,0 @@ -ASN1_SRC := $(wildcard *.asn) - -ASN1_PDU := Mbr -#ASN1_KNOWN := DATE - -#ASN1CDIR ?= $(USERPROFILE)/Work/asn1c-fillabs -ifneq (,$(ASN1CDIR)) - ASN1C := $(ASN1CDIR)/asn1c/.libs/asn1c -S $(ASN1CDIR)/skeletons -else - ASN1C := asn1c -endif - -.PHONY: validate doc build - -validate: build - -doc: docs - python3 asn2md.py -o docs $(ASN1_SRC) - -docs: - mkdir -p $@ - -build: $(ASN1_SRC) $(ASN1_SRC_VALIDATE) - $(ASN1C) -E -F -fcompound-names $(addprefix -fknown-extern-type=,$(ASN1_KNOWN)) $(addprefix -pdu=,$(ASN1_PDU)) $^ >/dev/null diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ec07377..d2ff86e 100755 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,29 +1,21 @@ -variables: - GIT_SUBMODULE_STRATEGY: normal +include: + - project: 'forge-tools/asn2md' + file: '/gitlab-ci/base.yml' -image: danya25/asn1c:0.0.5 +variables: + ASN1_SRC: '*.asn cam/*.asn cdd/*.asn sec_ts103097/*.asn sec_ts103097/ieee1609dot2/*.asn' + GIT_SUBMODULE_STRATEGY: recursive validate: - stage: test - script: make -f .gitlab-ci.mk validate + extends: .validate only: changes: - - "asn/*.asn" + - '*.asn' + - 'cam/*.asn' + documentation: - stage: deploy - script: - - curl --header "PRIVATE-TOKEN:$CI_DOC_TOKEN" https://forge.etsi.org/rep/api/v4/projects/592/repository/files/asn2md.py?ref=master | python3 -c "import sys, json, base64; open('asn2md.py', 'wb').write(base64.b64decode(json.load(sys.stdin)['content']))" - - make -f .gitlab-ci.mk doc - - > - if [ -z "$(git status --untracked-files=no --porcelain)" ]; then - echo "No changes found"; - else - git add docs/*.md && - git commit -m "Documentation update" && - git remote rm origin && git remote add origin https://oauth2:$CI_DOC_TOKEN@forge.etsi.org/rep/$CI_PROJECT_PATH.git && - git push origin HEAD:$CI_COMMIT_REF_NAME; - fi + extends: .documentation only: changes: - - "asn/*.asn" + - '*.asn' diff --git a/.gitmodules b/.gitmodules index c65df36..850a944 100755 --- a/.gitmodules +++ b/.gitmodules @@ -1,10 +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 [submodule "sec_ts103097"] path = sec_ts103097 url = https://forge.etsi.org/rep/ITS/asn1/sec_ts103097.git + branch = release2 diff --git a/asn2md.py b/asn2md.py new file mode 100755 index 0000000..71ca8e2 --- /dev/null +++ b/asn2md.py @@ -0,0 +1,326 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import argparse # parse arguments +import os.path # getting extension from file +import sys # output and stuff +import re # for regular expressions +import copy # for copy +if (sys.version_info > (3, 0)): + import urllib.parse # +else: + import urllib # + +## extract doxygen-tag namespace +RE_MODULE = re.compile( r'^\s*([A-Z][\w-]*)\s*({.*?})?\s*DEFINITIONS.*?::=\s*?BEGIN(.*)END', re.VERBOSE | re.MULTILINE | re.DOTALL) + +RE_SPACES = re.compile(r'\s+') + +RE_COMMENTS = re.compile(r'^\s*--.*?\n|--.*?(?:--|$)|/\*.*?\*/[\t ]*\n?', re.MULTILINE|re.DOTALL) + +RE_BASIC_TYPES = re.compile(r'^OCTET\s+STRING|BIT\s+STRING|BOOLEAN|INTEGER|FLOAT|SEQUENCE|SET|NULL') + +#RE_TYPE_BODY_1 = re.compile(r'.*?{(.*)}\s*WITH', re.MULTILINE|re.DOTALL) +#RE_TYPE_BODY_2 = re.compile(r'.*?{(.*)}\s*(?:WITH.*|\(.*?\)|\s*$)', re.MULTILINE|re.DOTALL) +RE_TYPE_BODY = re.compile(r'.*?{(.*)}\s*(?:WITH.*|\(.*?\)|\s*$)', re.MULTILINE|re.DOTALL) + +#RE_FIELDS = re.compile(r'^\s*(?:/\*\*.*?\*/)|^\s*([\w-]+?)\s+(OCTET\s+STRING|BIT\s+STRING|[A-Z][.\w-]+)?(.*?)(?:,((?:\s*--!?<.*?\n)*)|((?:--!?<.*?\n)*)$)', re.MULTILINE | re.DOTALL| re.VERBOSE) +RE_FIELDS = re.compile(r'^\s*/\*.*?\*/|^\s*--\!.*?\n|^[\s&]*([\w-]+)\s+(OCTET\s+STRING|BIT\s+STRING|[A-Z][\w-]+)?((?:{[^}]*}|\([^)]*\)|.)*?)(?:,|(--)|$)', re.MULTILINE | re.DOTALL) + +RE_EXPORTS = re.compile(r'^\s*EXPORTS.*?;', re.DOTALL | re.MULTILINE) + +RE_IMPORTS = re.compile(r'^\s*IMPORTS\s*(.*?);', re.DOTALL | re.MULTILINE) + +RE_IMPORT_ELEMENTS = re.compile(r'^([,\s\w-]*?)FROM\s*([\w-]+)\s*({[^}]*}(?:\s+WITH\s+SUCCESSORS)?)?', re.MULTILINE) + +RE_IMPORT_ELEMENT_TYPE = re.compile(r'[^,\s]+') + +RE_DOXY_ASN_COMMENTS = re.compile(r'^\s*--[-!#](:?$|\s(.*))', re.MULTILINE) + +RE_DOXY_C_COMMENTS = re.compile(r'^\s*/\*\*\s(.*?)\*/', re.MULTILINE | re.DOTALL) + +RE_DOXY_C_COMMENTS_I = re.compile(r'\s*\*+') +RE_STRIPSTAR = re.compile(r'^\s*\*', re.MULTILINE) + + +RE_DOXY_REF = re.compile(r'@ref\s+([\w-]+)') +RE_DOXY_CLASS = re.compile(r'@(?:class|struct|details):?\s+([\w-]+)') +RE_DOXY_DETAILS = re.compile(r'@details:?\s+[\w-]+') +RE_DOXY_STRIP_SINGLE_TAG = re.compile(r'@(?:brief|url)\s+') +RE_DOXY_STRIP_TAG = re.compile(r'\s*@(?:class|struct|details):?\s+[\w-]+') +RE_DOXY_UNIT = re.compile(r'^\s*@unit:?\s+(.+)\n', re.MULTILINE) +RE_DOXY_REVISION = re.compile(r'^\s*@revision:?\s+(.+)\n', re.MULTILINE) +RE_DOXY_BRIEF = re.compile(r'^\s*@brief[\s:]+(.+)\n', re.MULTILINE) +RE_DOXY_CATEGORY = re.compile(r'^\s*@category[\s:]+(.+)\n', re.MULTILINE) +RE_DOXY_PARAM = re.compile(r'^\s*@(?:param|field):?\s+([\w-]+)\s*(.*?)\n\s*$', re.MULTILINE | re.DOTALL) + +RE_DOXY_SECTION = re.compile(r"^\s*@(brief|note|(class|struct|param|field|details)\s+([-\w]+)):?(.*?)(?=\n\s*@|\n\s*\n|\Z)", re.MULTILINE | re.DOTALL) + +# RE_TYPE = re.compile(r'(([A-Z][\w-]*)\s*::=[\w \t]+(?:{+(.*?)}+)?.*?)\n\s*\n', re.MULTILINE | re.DOTALL) +RE_TYPE = re.compile(r'^\s*([A-Z][\w-]*)?\s*([{} \t:\w-]*?)?::=([\w \t]+.*?)\n\s*\n', re.MULTILINE | re.DOTALL) +RE_OPTIONS = re.compile(r'^\s*@options[\s:]+(.+)', re.MULTILINE) +RE_DOXY_OTHER = re.compile(r'\^(\w+)', re.MULTILINE) + +extTypes = {} +cpos = 0 +o_args = [] + +def urlquote(s): + if (sys.version_info > (3, 0)): + return urllib.parse.quote_plus(s) + else: + return urllib.quote_plus(s) + +def indentLines(content:str, indent): + ret='' + lines = content.splitlines() + for l in lines: + ret += ''.ljust(indent or 0) + l +'\n' + return ret + +def parseText(content, indent=None): + + def repl_ref(m): + return '[**{0}**]({1}#{0})'.format(m.group(1), extTypes.get(m.group(1),'')) + content = RE_DOXY_REF.sub(repl_ref, content) + + content = RE_DOXY_STRIP_TAG.sub('', content) + + content = RE_DOXY_STRIP_SINGLE_TAG.sub('', content) + + content = re.sub('\^(\w+)', '\\1', content) + + return indentLines(content, indent) + +def parseInlineComments(content:str, indent=None): + # keep into account only '--<' comments + lines = content.splitlines() + content = '' + for l in lines: + l = l.lstrip() + if l.startswith('--< '): + content += l[4:] + '\n' + elif l.startswith('--!< '): + content += l[5:] + '\n' + else: + continue + return parseText(content, indent) + +def parseDoxyComments(content:str): + # keep only '--! ' and /** */ comments + # convert '--! ' comments to C-style + content = RE_DOXY_ASN_COMMENTS.sub(r'/** *\g<1>*/', content) + ret = '' + for m in RE_DOXY_C_COMMENTS.finditer(content): + ret += RE_STRIPSTAR.sub('', m.group(1)) + return ret + +def parseModule(mname, content): + global cpos + cpos = 0 + ret = '' + m = RE_IMPORTS.search(content) + if m is not None: + pos = 0 + if m.group(1) is not None: + ret += '## Imports:\n' + s = m.group(1) + for fm in RE_IMPORT_ELEMENTS.finditer(s): + imName = fm.group(2) + for im in RE_IMPORT_ELEMENT_TYPE.finditer(fm.group(1)): + extTypes[im.group(0)] = imName+'.md' + ret += ' * **[{0}]({0}.md)** *{1}*
        \n'.format(imName, RE_SPACES.sub(' ', fm.group(3) or '')) + ret += parseText(parseDoxyComments(s[pos:fm.start()])+'\n', 2) + pos = fm.end() + ret += parseText(parseDoxyComments(s[pos:])) + cpos = m.end() + + m = RE_EXPORTS.search(content) + if m is not None: + if cpos < m.end(): + cpos = m.end() + + # parse types + def repl_type (m, doc): + title = t = m.group(1) # type name + f_params = {} + s_unit = '' + s_category = '' + s_note = '' + s_revision = '' + options = copy.copy(o_args) + if doc : # doc is the prepending comment. Check if not None and not Empty + doc = parseDoxyComments(doc) + + # parse options + def repl_options(m): + nonlocal options + if m.group(1) is not None: + for o in m.group(1).split(','): + setattr(options, o.strip().replace('-', '_'), True) + return '' + doc=RE_OPTIONS.sub(repl_options, doc) + + def repl_section (m): + nonlocal title + nonlocal t + nonlocal f_params + nonlocal s_note + ret = '' + l = m.group(4).lstrip(":, \t").lstrip('\n') + if m.group(2) is not None: + # this can be class|struct|details|param|field + if m.group(3) == t: + ret = parseText(l) + else: + if len(l): + f_params[m.group(3)] = parseText(l, 2) + elif m.group(1) == 'brief': + if o_args.brief_as_title: + title = parseText(l) + else: + ret = parseText(l) + elif m.group(1) == 'note': + s_note = '\n>>>\n' + 'NOTE: ' + parseText(l).rstrip() + '\n>>>\n' + else: + ret = m.string[m.start():m.end()] + return ret + doc = RE_DOXY_SECTION.sub(repl_section, doc) + + def repl_category(m): + nonlocal s_category + s_category = '\n    **Categories**: ' + for l in m.group(1).split(','): +# s_category += '[{0}](#{1}) '.format(l.strip(), urlquote(l.strip())) + s_category += l.strip() + ' ' + s_category += '\n' + return '' + doc = RE_DOXY_CATEGORY.sub(repl_category, doc) + + def repl_unit(m): + nonlocal s_unit + s_unit = '\n    **Unit**: _' + m.group(1).strip() + '_\n' + return '' + doc = RE_DOXY_UNIT.sub(repl_unit, doc) + + def repl_revision(m): + nonlocal s_revision + s_revision = '\n    **Revision**: _' + m.group(1).strip() + '_\n' + return '' + doc = RE_DOXY_REVISION.sub(repl_revision, doc) + else: + doc = '' + + ret = '' + if t is not None: + fields = '' + ret = '\n### {1}\n'.format(t, title) + parseText(doc) + + # parse fields and get out fields descriptions + if m.group(3) is not None: + # check if contain fields + fm = RE_TYPE_BODY.search(m.group(3)) + if fm is not None and fm.group(1) is not None: + typeBody = fm.group(1).strip() + if typeBody is not None: + fTitle = '' + field = '' + pos = 0 + for fm in RE_FIELDS.finditer(typeBody): + if fm.group(1) is not None: + # add description to the previous type + if len(field): + fields += parseInlineComments(fm.string[pos:fm.start()], 3) + field = '' + f = fm.group(1).strip() + ext = fm.group(3) or '' + if f in f_params: + field = f_params.pop(f) + '\n\n' + if fm.group(2) is not None: + fTitle = 'Fields:\n' + if len(field) or not o_args.no_auto_fields: + t = fm.group(2).strip() + if RE_BASIC_TYPES.match(t) is not None: + field = '* {0} **{1}** {2}
        \n'.format(f, t, ext) + field + else: + field = '* {0} [**{1}**]({2}#{1}) {3}
        \n'.format(f, t, extTypes.get(t,''), ext) + field + else: + fTitle = 'Values:\n' + if len(field) or not o_args.no_auto_values: + field = '* **{0}** {1}
        \n'.format(f, ext) + field + if len(field): + field += parseText(fm.string[pos:fm.start()], 3) + pos = fm.end() + if fm.group(4) is not None: + # keep '--' for the next round + pos -= 2 + if len(field): + fields += field + if len(field): + fields += parseInlineComments(typeBody[pos:], 3) + # add all other fields defined as @params + if 'force_all_fields' in options or 'force_all_fields' in o_args: + for f in f_params: + fields += '* {}
        \n{}\n\n'.format(f, f_params[f]) + if len(fields): + ret = ret.strip() + '\n\n' + fTitle + fields + else: + if title: + ret = '### {}\n\n'.format(title) + l = parseText(parseDoxyComments(doc)) + if len(l): + ret += l + '\n\n' + for p in f_params: + ret += '* `{0}` {1}\n'.format(p, f_params[p]) + + return ret + s_unit + s_category + s_revision + s_note + '```asn1\n' + RE_COMMENTS.sub('', m.group(0).strip()) +'\n```\n\n' + + pos = 0 + ret += '## Data Elements:\n' + for m in RE_TYPE.finditer(content[cpos:]): + ret += repl_type (m, m.string[pos:m.start()]) + pos = m.end() + return ret + + +def parseAsn(outDir, content) : + # iterate modules in the file + pos= 0 + cnt = 0 + for m in RE_MODULE.finditer(content): + ret = '# ASN.1 module {}\n OID: _{}_\n'.format(m.group(1), RE_SPACES.sub(' ', m.group(2))) + ret += parseDoxyComments(content[pos:m.start()]) + '\n' + if m.group(3) is not None: + ret += parseModule(m.group(1), m.group(3)) + ret += '\n\n' + open(outDir + '/' + m.group(1) + '.md', "w",encoding='utf-8').write(ret) + pos = m.end() + cnt += 1 + return cnt + +def main(): + global o_args + ap = argparse.ArgumentParser(description='ASN.1 to markdown converter') + ap.add_argument('--out', '-o', type=str, default='.', help='output directory') + ap.add_argument('--brief-as-title', '-B', default=False, action='store_true', help='Do not treat @brief line as type header') + ap.add_argument('--force-all-fields', '-f', default=False,action='store_true', help='Add all fields in the list even if empty') + ap.add_argument('--no-auto-fields', '-F', default=False,action='store_true', help='Add fields only if @param or @field is defined') + ap.add_argument('--no-auto-values', '-V', default=False,action='store_true', help='Do not add named values or enums') + ap.add_argument('modules', action='store', nargs='+', help='ASN.1 files') + o_args = ap.parse_args() + + if not o_args.modules: + ap.print_help() + exit(1) + + cnt = 0 + for a in o_args.modules: + try: + content = open(a, encoding='latin-1').read() + cnt += parseAsn(o_args.out, content) + except IOError as e: + sys.stderr.write(e[1]+"\n") + print("{} modules porcessed\n".format(cnt)) + +if __name__ == '__main__': + main() diff --git a/cam/EtsiTs103759AsrCam.asn b/cam/EtsiTs103759AsrCam.asn index d9b7495..0f38260 100644 --- a/cam/EtsiTs103759AsrCam.asn +++ b/cam/EtsiTs103759AsrCam.asn @@ -57,96 +57,85 @@ c-CamTgt-LongAccCommon IdCamTgt ::= 5 * * @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. + * 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. + * 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). + * 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. - * + * 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 specified in ETSI TS 103 097 V2.1.1 - * (2021-10), e.g., generationTime is absent in the security headerInfo but - * is required to be present in the security profile. - * + * inconsistent with the security profile specified in ETSI TS 103 097 V2.1.1 + * (2021-10), 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 not contained in the appPermissions of 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. - * + * headerInfo is not contained in the appPermissions of 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, as specified in ETSI EN 302 637-2 V1.4.1 - * (2019-04),e.g., publicTransportContainer is present in the - * specialVehicleContainer but the relevant SSP in the certificate does not - * permit publicTransportContainer. - * + * with the SSP in the certificate, as specified in ETSI EN 302 637-2 V1.4.1 + * (2019-04),e.g., publicTransportContainer is present in the + * specialVehicleContainer but the relevant SSP in the certificate does not + * permit publicTransportContainer. * - `Security-HeaderTimeOutsideCertificateValidity`: The generationTime - * in the security headerInfo is outside the validityPeriod in the certificate. - * + * 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. - * + * 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. + * 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. + * 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: - * + * 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.) - * + * 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.) - * + * 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.) - * + * 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.) + * 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. + * 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.) + * 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 diff --git a/docs/EtsiTs103097ExtensionModule.md b/docs/EtsiTs103097ExtensionModule.md new file mode 100644 index 0000000..be8779e --- /dev/null +++ b/docs/EtsiTs103097ExtensionModule.md @@ -0,0 +1,101 @@ +# ASN.1 module EtsiTs103097ExtensionModule + OID: _{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) secHeaders(103097) extension(2) major-version-1(1) minor-version-1(1)}_ + +## Imports: + * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-3 (3)} WITH SUCCESSORS*
        + +## Data Elements: + +### ExtensionModuleVersion +```asn1 +ExtensionModuleVersion::= INTEGER(1) +``` + +### Extension + +Fields: +* id [**EXT-TYPE**](#EXT-TYPE) .&extId({ExtensionTypes})
        +* content [**EXT-TYPE**](#EXT-TYPE) .&ExtContent({ExtensionTypes}{@.id})
        + +```asn1 +Extension {EXT-TYPE : ExtensionTypes} ::= SEQUENCE { + id EXT-TYPE.&extId({ExtensionTypes}), + content EXT-TYPE.&ExtContent({ExtensionTypes}{@.id}) +} +``` + +### EXT-TYPE + +Fields: +* extId [**ExtId**](#ExtId)
        +```asn1 +EXT-TYPE ::= CLASS { + &extId ExtId, + &ExtContent +} WITH SYNTAX {&ExtContent IDENTIFIED BY &extId} +``` + + +### ExtId +```asn1 +ExtId ::= INTEGER(0..255) +``` + + +### EtsiOriginatingHeaderInfoExtension +```asn1 +EtsiOriginatingHeaderInfoExtension ::= Extension{{EtsiTs103097HeaderInfoExtensions}} +``` + + +### EtsiTs103097HeaderInfoExtensionId +```asn1 +EtsiTs103097HeaderInfoExtensionId ::= ExtId + etsiTs102941CrlRequestId EtsiTs103097HeaderInfoExtensionId ::= 1 + etsiTs102941DeltaCtlRequestId EtsiTs103097HeaderInfoExtensionId ::= 2 +``` + + +### EtsiTs103097HeaderInfoExtensions +```asn1 +EtsiTs103097HeaderInfoExtensions EXT-TYPE ::= { + { EtsiTs102941CrlRequest IDENTIFIED BY etsiTs102941CrlRequestId } | + { EtsiTs102941DeltaCtlRequest IDENTIFIED BY etsiTs102941DeltaCtlRequestId }, + ... +} +``` + +### EtsiTs102941CrlRequest + +Fields: +* issuerId [**HashedId8**](Ieee1609Dot2BaseTypes.md#HashedId8)
        +* lastKnownUpdate [**Time32**](Ieee1609Dot2BaseTypes.md#Time32) OPTIONAL
        + +```asn1 +EtsiTs102941CrlRequest::= SEQUENCE { + issuerId HashedId8, + lastKnownUpdate Time32 OPTIONAL +} +``` + +### EtsiTs102941CtlRequest + +Fields: +* issuerId [**HashedId8**](Ieee1609Dot2BaseTypes.md#HashedId8)
        +* lastKnownCtlSequence **INTEGER** (0..255) OPTIONAL
        + +```asn1 +EtsiTs102941CtlRequest::= SEQUENCE { + issuerId HashedId8, + lastKnownCtlSequence INTEGER (0..255) OPTIONAL +} +``` + + +### EtsiTs102941DeltaCtlRequest +```asn1 +EtsiTs102941DeltaCtlRequest::= EtsiTs102941CtlRequest +``` + + + diff --git a/docs/EtsiTs103097Module.md b/docs/EtsiTs103097Module.md new file mode 100644 index 0000000..91d7844 --- /dev/null +++ b/docs/EtsiTs103097Module.md @@ -0,0 +1,151 @@ +# ASN.1 module EtsiTs103097Module + OID: _{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) secHeaders(103097) core(1) major-version-3(3) minor-version-1(1)}_ + +## Imports: + * **[Ieee1609Dot2](Ieee1609Dot2.md)** *{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-4(4)} WITH SUCCESSORS*
        + + * **[EtsiTs103097ExtensionModule](EtsiTs103097ExtensionModule.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) secHeaders(103097) extension(2) major-version-1(1) minor-version-1(1)}*
        + +## Data Elements: + +### EtsiTs103097Certificate +```asn1 +EtsiTs103097Certificate::= Certificate (WITH COMPONENTS{..., + toBeSigned (WITH COMPONENTS{..., + id (WITH COMPONENTS{..., + linkageData ABSENT, + binaryId ABSENT + }), + certRequestPermissions ABSENT, + canRequestRollover ABSENT + }) +}) +``` + + +### EtsiTs103097Data +```asn1 +EtsiTs103097Data::=Ieee1609Dot2Data (WITH COMPONENTS {..., + content (WITH COMPONENTS {..., + signedData (WITH COMPONENTS {..., + tbsData (WITH COMPONENTS { + headerInfo (WITH COMPONENTS {..., + generationTime PRESENT, + p2pcdLearningRequest ABSENT, + missingCrlIdentifier ABSENT + }) + }), + signer (WITH COMPONENTS {..., + certificate ((WITH COMPONENT (EtsiTs103097Certificate))^(SIZE(1))) + }) + }), + encryptedData (WITH COMPONENTS {..., + recipients (WITH COMPONENT ( + (WITH COMPONENTS {..., + pskRecipInfo ABSENT, + symmRecipInfo ABSENT, + rekRecipInfo ABSENT + }) + )) + }), + signedCertificateRequest ABSENT + }) +}) +``` + + +### EtsiTs103097Data-Unsecured +```asn1 +EtsiTs103097Data-Unsecured {ToBeSentDataContent} ::= EtsiTs103097Data (WITH COMPONENTS {..., + content (WITH COMPONENTS { + unsecuredData (CONTAINING ToBeSentDataContent) + }) +}) +``` + + +### EtsiTs103097Data-Signed +```asn1 +EtsiTs103097Data-Signed {ToBeSignedDataContent} ::= EtsiTs103097Data (WITH COMPONENTS {..., + content (WITH COMPONENTS { + signedData (WITH COMPONENTS {..., + tbsData (WITH COMPONENTS { + payload (WITH COMPONENTS { + data (WITH COMPONENTS {..., + content (WITH COMPONENTS { + unsecuredData (CONTAINING ToBeSignedDataContent) + }) + }) PRESENT + }) + }) + }) + }) +}) +``` + + +### EtsiTs103097Data-SignedExternalPayload +```asn1 +EtsiTs103097Data-SignedExternalPayload ::= EtsiTs103097Data (WITH COMPONENTS {..., + content (WITH COMPONENTS { + signedData (WITH COMPONENTS {..., + tbsData (WITH COMPONENTS { + payload (WITH COMPONENTS { + extDataHash (WITH COMPONENTS { + sha256HashedData PRESENT + }) PRESENT + }) + }) + }) + }) +}) +``` + + +### EtsiTs103097Data-Encrypted +```asn1 +EtsiTs103097Data-Encrypted {ToBeEncryptedDataContent} ::= EtsiTs103097Data (WITH COMPONENTS {..., + content (WITH COMPONENTS { + encryptedData (WITH COMPONENTS {..., + ciphertext (WITH COMPONENTS {..., + aes128ccm (WITH COMPONENTS {..., + ccmCiphertext (CONSTRAINED BY { ToBeEncryptedDataContent}) + }) + }) + }) + }) +}) +``` + + +### EtsiTs103097Data-SignedAndEncrypted +```asn1 +EtsiTs103097Data-SignedAndEncrypted {ToBesignedAndEncryptedDataContent} ::= EtsiTs103097Data-Encrypted {EtsiTs103097Data-Signed {ToBesignedAndEncryptedDataContent}} +``` + + +### EtsiTs103097Data-Encrypted-Unicast +```asn1 +EtsiTs103097Data-Encrypted-Unicast {ToBeEncryptedDataContent} ::= EtsiTs103097Data-Encrypted { EtsiTs103097Data-Unsecured{ToBeEncryptedDataContent}} (WITH COMPONENTS {..., + content (WITH COMPONENTS { + encryptedData (WITH COMPONENTS {..., + recipients (SIZE(1)) + }) + }) +}) +``` + + +### EtsiTs103097Data-SignedAndEncrypted-Unicast +```asn1 +EtsiTs103097Data-SignedAndEncrypted-Unicast {ToBesignedAndEncryptedDataContent} ::= EtsiTs103097Data-Encrypted {EtsiTs103097Data-Signed {ToBesignedAndEncryptedDataContent}} (WITH COMPONENTS {..., + content (WITH COMPONENTS { + encryptedData (WITH COMPONENTS {..., + recipients (SIZE(1)) + }) + }) +}) +``` + + + diff --git a/docs/EtsiTs103759.md b/docs/EtsiTs103759.md index df83f66..3d3f6ff 100644 --- a/docs/EtsiTs103759.md +++ b/docs/EtsiTs103759.md @@ -3,41 +3,48 @@ ## Imports: * **[EtsiTs103097Module](EtsiTs103097Module.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) secHeaders(103097) core(1) major-version-3(3) minor-version-1(1)} WITH SUCCESSORS*
        - + * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-3(3)} WITH SUCCESSORS*
        - + * **[EtsiTs103759AsrAppAgnostic](EtsiTs103759AsrAppAgnostic.md)** *{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-0(0)} WITH SUCCESSORS*
        - + * **[EtsiTs103759AsrCam](EtsiTs103759AsrCam.md)** *{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-0(0)} WITH SUCCESSORS*
        - + * **[EtsiTs103759AsrDenm](EtsiTs103759AsrDenm.md)** *{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-0(0)} WITH SUCCESSORS*
        - + ## Data Elements: ### EtsiTs103759Data - - This data type is the general PDU for a misbehaviour report from an - ITS-S to the MA responsible for reports of that type. AID-specific modules - (EtsiTs103759AsrAppAgnostic, EtsiTs103759AsrCam, EtsiTs103759AsrDenm) have - been imported using WITH SUCCESSORS to enable importing one or more of those - modules with minor-version greater than 0 without requiring any change in the - import statements. At least one of these AID-specific modules shall have +This data type is the general PDU for a misbehaviour report from an + ITS-S to the MA responsible for reports of that type. AID-specific modules + (EtsiTs103759AsrAppAgnostic, EtsiTs103759AsrCam, EtsiTs103759AsrDenm) have + been imported using WITH SUCCESSORS to enable importing one or more of those + modules with minor-version greater than 0 without requiring any change in the + import statements. At least one of these AID-specific modules shall have minor-version greater than 0. Fields: * version [**Uint8**](Ieee1609Dot2BaseTypes.md#Uint8)
        -contains the version number of this PDU definition. For this - version of this data type it shall be equal to 2. + contains the version number of this PDU definition. For this + version of this data type it shall be equal to 2. + * generationTime [**Time64**](Ieee1609Dot2BaseTypes.md#Time64)
        -contains information on when this PDU was generated. + contains information on when this PDU was generated. + + * observationLocation [**ThreeDLocation**](Ieee1609Dot2BaseTypes.md#ThreeDLocation)
        -is the location at which the last observation of - a V2X PDU was made before the decision was taken to generate a report. + is the location at which the last observation of + a V2X PDU was made before the decision was taken to generate a report. + + * report [**AidSpecificReport**](#AidSpecificReport)
        -contains the AID-specific misbehaviour report. + contains the AID-specific misbehaviour report. + + + ```asn1 EtsiTs103759Data ::= SEQUENCE { version Uint8, @@ -47,18 +54,16 @@ EtsiTs103759Data ::= SEQUENCE { } ``` -### EtsiTs103759Data-SignedAndEncrypted-Unicast - This structure is the SPDU used to send a signed and encrypted - EtsiTs103759Data to the MA. For the signature to be valid the signing - certificate shall conform to the authorization ticket profile given in - clause 7.2.1 of ETSI TS 103 097 v2.1.1, where the appPermissions field in - the authorization ticket allows signing misbehaviour reports. The signed - EtsiTs103759Data shall be encrypted to the MA using the encryptionKey in +### EtsiTs103759Data-SignedAndEncrypted-Unicast +This structure is the SPDU used to send a signed and encrypted + EtsiTs103759Data to the MA. For the signature to be valid the signing + certificate shall conform to the authorization ticket profile given in + clause 7.2.1 of ETSI TS 103 097 v2.1.1, where the appPermissions field in + the authorization ticket allows signing misbehaviour reports. The signed + EtsiTs103759Data shall be encrypted to the MA using the encryptionKey in the MA's certificate. - - - + ```asn1 EtsiTs103759Data-SignedAndEncrypted-Unicast ::= EtsiTs103097Data-SignedAndEncrypted-Unicast { @@ -67,19 +72,22 @@ EtsiTs103759Data-SignedAndEncrypted-Unicast ::= ``` ### AidSpecificReport - - This data type is the whole report on issues detected for a specific +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. Fields: * aid [**C-ASR**](#C-ASR) .&aid ({SetAsr})
        -contains the respective ITS-AID. + contains the respective ITS-AID. + * content [**C-ASR**](#C-ASR) .&Content ({SetAsr}{@.aid})
        -contains the report contents, e.g., AsrCam. This will be a - TemplateAsr instantiated with AID-specific Information Object Sets. + contains the report contents, e.g., AsrCam. This will be a + TemplateAsr instantiated with AID-specific Information Object Sets. + + + ```asn1 AidSpecificReport ::= SEQUENCE { aid C-ASR.&aid ({SetAsr}), @@ -88,8 +96,21 @@ AidSpecificReport ::= SEQUENCE { ``` ### C-ASR +This data type defines the IOC for AidSpecificReport. + +Fields: +* aid [**Psid**](Ieee1609Dot2BaseTypes.md#Psid) UNIQUE
        + contains the globally unique reference identifier of an + AID-specific misbehaviour report. + + + contains the open type of the PDU identified by aid. This + will be a TemplateAsr instantiated with AID-specific Information Object + Sets. + - This data type defines the IOC for AidSpecificReport. + + ```asn1 C-ASR ::= CLASS { &aid Psid UNIQUE, @@ -97,13 +118,11 @@ C-ASR ::= CLASS { } WITH SYNTAX {&Content IDENTIFIED BY &aid} ``` -### SetAsr - This data type defines the IOS for AidSpecificReport. See the ASN.1 +### 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. - - - + ```asn1 SetAsr C-ASR ::= { {AsrAppAgnostic IDENTIFIED BY c-AsrAppAgnostic} | @@ -114,24 +133,39 @@ SetAsr C-ASR ::= { ``` - +>>> +NOTE: This value is used for suspicious observations that are not + or cannot be linked to a specific application. +>>> ```asn1 c-AsrAppAgnostic Psid ::= 270549119 ``` - - ```asn1 c-AsrCam Psid ::= 36 ``` - - ```asn1 c-AsrDenm Psid ::= 37 ``` +* `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. + ```asn1 } ::= SEQUENCE { @@ -144,20 +178,23 @@ c-AsrDenm Psid ::= 37 ``` ### ObservationsByTarget - - This data type contains all of the observations related to a +This data type contains all of the observations related to a particular "target" property, e.g., speed or security. Fields: * tgtId [**C-ASR-OBS-BY-TGT**](#C-ASR-OBS-BY-TGT) .&id ({SetAsrObsByTgt})
        -identifies the "target" of the observation, e.g., speed. This - identifier is drawn from an application-specific Information Object Set of - observations by target. + 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 **SEQUENCE** OF C-ASR-OBS-BY-TGT.&Val
        -contains all the observations related to that target. - The observations are drawn from the provided Information Object Set. + contains all the observations related to that target. + The observations are drawn from the provided Information Object Set. + + + ```asn1 ObservationsByTarget {C-ASR-OBS-BY-TGT: SetAsrObsByTgt} ::= SEQUENCE { tgtId C-ASR-OBS-BY-TGT.&id ({SetAsrObsByTgt}), @@ -166,33 +203,34 @@ ObservationsByTarget {C-ASR-OBS-BY-TGT: SetAsrObsByTgt} ::= SEQUENCE { } ``` -### C-ASR-OBS-BY-TGT - This is the Information Object Class used to define observations- +### C-ASR-OBS-BY-TGT +This is the Information Object Class used to define observations- -by-target. - - - + ```asn1 C-ASR-OBS-BY-TGT ::= C-2ENT ``` ### MbSingleObservation - - This data type contains a single misbehaviour observation. +This data type contains a single misbehaviour observation. Fields: * obsId [**C-ASR-SINGLE-OBS**](#C-ASR-SINGLE-OBS) .&id ({SetMbSingleObs})
        -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. + 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 [**C-ASR-SINGLE-OBS**](#C-ASR-SINGLE-OBS) .&Val ({SetMbSingleObs}{@.obsId})
        -contains any parameters relevant to the observation. The - observations are drawn from the provided Information Object Set. + contains any parameters relevant to the observation. The + observations are drawn from the provided Information Object Set. + + + ```asn1 MbSingleObservation {C-ASR-SINGLE-OBS: SetMbSingleObs} ::= SEQUENCE { obsId C-ASR-SINGLE-OBS.&id ({SetMbSingleObs}), @@ -200,47 +238,57 @@ MbSingleObservation {C-ASR-SINGLE-OBS: SetMbSingleObs} ::= SEQUENCE { } ``` -### C-ASR-SINGLE-OBS - This is the Information Object Class used to define single +### C-ASR-SINGLE-OBS +This is the Information Object Class used to define single observations. - - - + ```asn1 C-ASR-SINGLE-OBS ::= C-2ENT ``` ### V2xPduStream - - This data type contains PDU stream from a single sender. +This data type contains PDU stream from a single sender. Fields: * type [**C-OBS-PDU**](#C-OBS-PDU) .&id ({SetObsPdu})
        * v2xPdus **SEQUENCE** (SIZE(1..255)) OF C-OBS-PDU.&Val
        -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. - + 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 [**EtsiTs103097Certificate**](EtsiTs103097Module.md#EtsiTs103097Certificate) OPTIONAL
        -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. - + 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. + + + + ({SetObsPdu}{@.type}), * subjectPduIndex [**Uint8**](Ieee1609Dot2BaseTypes.md#Uint8)
        -identifies which PDU within the v2xPdus sequence - is the "subject PDU", i.e., the PDU associated with the observations. + identifies which PDU within the v2xPdus sequence + is the "subject PDU", i.e., the PDU associated with the observations. + + + + +* id
        + identifies the type of the PDU, meaning in this case + what protocol headers are included from the stack. + ```asn1 V2xPduStream ::= SEQUENCE { @@ -253,23 +301,19 @@ V2xPduStream ::= SEQUENCE { } ``` -### C-OBS-PDU - This is the Information Object Class used to define different types +### C-OBS-PDU +This is the Information Object Class used to define different types of observed PDUs. - - - + ```asn1 C-OBS-PDU ::= C-2ENT ``` -### SetObsPdu - - This data type contains the IOS for the observed PDU. - - +### SetObsPdu +This data type contains the IOS for the observed PDU. + ```asn1 SetObsPdu C-OBS-PDU ::= { {ObsPduEtsiGn BY c-ObsPdu-etsiGn} | @@ -279,72 +323,65 @@ SetObsPdu C-OBS-PDU ::= { } ``` -### IdObsPdu - - This data type contains the identifier of the type of observed PDU. - - +### IdObsPdu +This data type contains the identifier of the type of observed PDU. + ```asn1 IdObsPdu ::= Uint8 ``` - - ```asn1 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 +### 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. - - - + ```asn1 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 +### ObsPduIeee1609Dot2Data +ObsPduIeee1609Dot2Data contains an Ieee1609Dot2Data, i.e., the first + byte of every PDU in the v2xPdus array is the version byte of the Ieee1609Dot2Data. - - - + ```asn1 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 +### 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. - - - + ```asn1 ObsPduWsmp ::= Opaque ``` ### NonV2xPduEvidenceItem - - This data type contains evidence, which may be referenced by one or +This data type contains evidence, which may be referenced by one or more observations. Fields: * id [**C-ASR-EV**](#C-ASR-EV) .&id ({SetMbEv})
        -identifies the evidence type. + identifies the evidence type. + * evidence [**C-ASR-EV**](#C-ASR-EV) .&Val ({SetMbEv}{@.id})
        -contains the evidence. + contains the evidence. + + + ```asn1 NonV2xPduEvidenceItem {C-ASR-EV: SetMbEv} ::= SEQUENCE { id C-ASR-EV.&id ({SetMbEv}), @@ -352,26 +389,25 @@ 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 +This is the Information Object Class used to define evidence. +>>> +NOTE: No instances of this class are defined in this version of this document. +>>> ```asn1 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 +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. - - +Fields: +* id [**Uint8**](Ieee1609Dot2BaseTypes.md#Uint8)
        ```asn1 C-2ENT ::= CLASS { &id Uint8, diff --git a/docs/EtsiTs103759AsrAppAgnostic.md b/docs/EtsiTs103759AsrAppAgnostic.md index 30a57c7..ad252af 100644 --- a/docs/EtsiTs103759AsrAppAgnostic.md +++ b/docs/EtsiTs103759AsrAppAgnostic.md @@ -2,12 +2,10 @@ OID: _{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-0(0)}_ ## Data Elements: -### AsrAppAgnostic - - This data type is defined as NULL for this version of the standard. - - +### AsrAppAgnostic +This data type is defined as NULL for this version of the standard. + ```asn1 AsrAppAgnostic ::= NULL ``` diff --git a/docs/EtsiTs103759AsrCam-0.md b/docs/EtsiTs103759AsrCam-0.md deleted file mode 100644 index 0b5b05b..0000000 --- a/docs/EtsiTs103759AsrCam-0.md +++ /dev/null @@ -1,16 +0,0 @@ -# ASN.1 module EtsiTs103759AsrCam - OID: _{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-0(0)}_ - -## Data Elements: -### AsrCam - - This data type is defined as NULL for version 0 of this file. - - - -```asn1 -AsrCam ::= NULL -``` - - - diff --git a/docs/EtsiTs103759AsrCam-1.md b/docs/EtsiTs103759AsrCam-1.md deleted file mode 100644 index 66c0141..0000000 --- a/docs/EtsiTs103759AsrCam-1.md +++ /dev/null @@ -1,127 +0,0 @@ -# ASN.1 module EtsiTs103759AsrCam - OID: _{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)}_ - -## Imports: - * **[EtsiTs103759](EtsiTs103759.md)** *{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)} WITH SUCCESSORS*
        - - * **[EtsiTs103759MbrCommonObservations](EtsiTs103759MbrCommonObservations.md)** *{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)} WITH SUCCESSORS*
        - - * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-3(3)} WITH SUCCESSORS*
        - -## Data Elements: -### AsrCam - - This data type is for reporting CAM issues. - - - -```asn1 -AsrCam ::= TemplateAsr {{SetMbObsTgtsCam}, {SetMbEvCam}} -``` - -### IdCamTgt - - - -```asn1 -IdCamTgt ::= Uint8 -``` - - - -```asn1 -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. - - - `Security-HeaderIncWithSecurityProfile`: The security headerInfo is - inconsistent with the security profile specified in ETSI TS 103 097 V2.1.1 - (2021-10), 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 not contained in the appPermissions of 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, as specified in ETSI EN 302 637-2 V1.4.1 - (2019-04),e.g., publicTransportContainer is present in the - specialVehicleContainer but the relevant SSP in the certificate does not - permit publicTransportContainer. - - - `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. - - - `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. -```asn1 -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}, - ... -} -``` - -### SetMbEvCam - - This data type defines the IOS for CAM Evidence. - - - -```asn1 -SetMbEvCam C-ASR-EV ::= { - ... -} -``` - - - diff --git a/docs/EtsiTs103759AsrCam.md b/docs/EtsiTs103759AsrCam.md new file mode 100644 index 0000000..96051db --- /dev/null +++ b/docs/EtsiTs103759AsrCam.md @@ -0,0 +1,162 @@ +# ASN.1 module EtsiTs103759AsrCam + OID: _{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)}_ + +## Imports: + * **[EtsiTs103759](EtsiTs103759.md)** *{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)} WITH SUCCESSORS*
        + + * **[EtsiTs103759MbrCommonObservations](EtsiTs103759MbrCommonObservations.md)** *{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)} WITH SUCCESSORS*
        + + * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-3(3)} WITH SUCCESSORS*
        + +## Data Elements: + +### AsrCam +This data type is for reporting CAM issues. + +```asn1 +AsrCam ::= TemplateAsr {{SetMbObsTgtsCam}, {SetMbEvCam}} +``` + + +### IdCamTgt +```asn1 +IdCamTgt ::= Uint8 +``` + +```asn1 +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. + + + + + + + + - `Speed-ChangeTooLarge`: The acceleration calculated from the change + in speedValue of two consecutive CAMs meets the trigger conditions of + LongAcc-ValueTooLarge. + +* 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 specified in ETSI TS 103 097 V2.1.1 + (2021-10), 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 not contained in the appPermissions of 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, as specified in ETSI EN 302 637-2 V1.4.1 + (2019-04),e.g., publicTransportContainer is present in the + specialVehicleContainer but the relevant SSP in the certificate does not + permit publicTransportContainer. + - `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/s2 (see trigger conditions for LongAcc-ValueTooLarge), max attainable + speed is sqrt(2*9*50) m/s, i.e., 3,000 cm/s.) + + +* SetMbObsEtsiOnlyLongAcc
        + - `LongAcc-ValueTooLarge`: The longitudinalAcceleration is greater + than 90 dm/s2. (Typical \mu (coefficient of friction between asphalt and + rubber) is 0.9, so maximum possible acceleration is 0.9*9.8 m/s2, i.e., + 88.2 dm/s2.) + + + +```asn1 +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}, + ... +} +``` + + +### SetMbEvCam +This data type defines the IOS for CAM Evidence. + +```asn1 +SetMbEvCam C-ASR-EV ::= { + ... +} +``` + + + diff --git a/docs/EtsiTs103759AsrDenm.md b/docs/EtsiTs103759AsrDenm.md index 82297db..2056ba6 100644 --- a/docs/EtsiTs103759AsrDenm.md +++ b/docs/EtsiTs103759AsrDenm.md @@ -2,12 +2,10 @@ OID: _{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-0(0)}_ ## Data Elements: -### AsrDenm - - This data type is defined as NULL for version 0 of this file. - - +### AsrDenm +This data type is defined as NULL for version 0 of this file. + ```asn1 AsrDenm ::= NULL ``` diff --git a/docs/EtsiTs103759MbrCommonObservations.md b/docs/EtsiTs103759MbrCommonObservations.md index 5a2a4be..26bbd80 100644 --- a/docs/EtsiTs103759MbrCommonObservations.md +++ b/docs/EtsiTs103759MbrCommonObservations.md @@ -3,61 +3,52 @@ ## Imports: * **[EtsiTs103759](EtsiTs103759.md)** *{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)} WITH SUCCESSORS*
        - + * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-3(3)} WITH SUCCESSORS*
        - + ## Data Elements: -### IdMbObs - - Identifier type for observations: synonym for Uint8 - - +### IdMbObs +Identifier type for observations: synonym for Uint8 + ```asn1 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 +### 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. - - + - `nonV2xPduEvidence`: No other evidence is required to be included + to support this observation. + ```asn1 Beacon-IntervalTooSmall ::= NULL ``` - - ```asn1 c-ObsBeacon-IntervalTooSmall IdMbObs::= 1 ``` - - ```asn1 obs-Beacon-IntervalTooSmall C-ASR-SINGLE-OBS ::= {Beacon-IntervalTooSmall BY c-ObsBeacon-IntervalTooSmall} ``` -### SetMbObsCompleteBeacon - - +### SetMbObsCompleteBeacon ```asn1 SetMbObsCompleteBeacon C-ASR-SINGLE-OBS ::= { obs-Beacon-IntervalTooSmall, @@ -65,46 +56,39 @@ SetMbObsCompleteBeacon C-ASR-SINGLE-OBS ::= { } ``` -### Static-Change - This data type is provided for an observation of change in static +### 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 + - `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 + 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. - - + - `nonV2xPduEvidence`: No other evidence is required to be included + to support this observation. + ```asn1 Static-Change ::= BIT STRING ``` - - ```asn1 c-ObsStatic-Change IdMbObs::= 1 ``` - - ```asn1 obs-Static-Change C-ASR-SINGLE-OBS ::= {Static-Change BY c-ObsStatic-Change} ``` -### SetMbObsCompleteStatic - - +### SetMbObsCompleteStatic ```asn1 SetMbObsCompleteStatic C-ASR-SINGLE-OBS ::= { obs-Static-Change, @@ -112,171 +96,162 @@ SetMbObsCompleteStatic C-ASR-SINGLE-OBS ::= { } ``` -### Security-MessageIdIncWithHeaderInfo - This data type is provided for an observation, where the messageID - is inconsistent with the psid in the security headerInfo. The trigger +### 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 + - `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 + 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. - - + - `nonV2xPduEvidence`: No other evidence is required to be included + to support this observation. + ```asn1 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 +### 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 + - `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 + 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. - - + - `nonV2xPduEvidence`: No other evidence is required to be included + to support this observation. + ```asn1 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 +### 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 + - `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. - - + - `nonV2xPduEvidence`: No other evidence is required to be included + to support this observation. + ```asn1 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 +### 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 + - `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. - - + - `nonV2xPduEvidence`: No other evidence is required to be included + to support this observation. + ```asn1 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 +### 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 + - `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. - - + - `nonV2xPduEvidence`: No other evidence is required to be included + to support this observation. + ```asn1 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 +### 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 + - `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 + 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. - - + - `nonV2xPduEvidence`: No other evidence is required to be included + to support this observation. + ```asn1 Security-MessageLocationOutsideCertificateValidity ::= NULL ``` -### Security-HeaderLocationOutsideCertificateValidity - This data type is provided for an observation, where the +### 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 + 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 + - `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 + 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. - - + - `nonV2xPduEvidence`: No other evidence is required to be included + to support this observation. + ```asn1 Security-HeaderLocationOutsideCertificateValidity ::= NULL ``` - - ```asn1 c-ObsSecurity-MessageIdIncWithHeaderInfo IdMbObs ::= 1 c-ObsSecurity-HeaderIncWithSecurityProfile IdMbObs ::= 2 @@ -287,8 +262,6 @@ c-ObsSecurity-MessageLocationOutsideCertificateValidity IdMbObs ::= 6 c-ObsSecurity-HeaderLocationOutsideCertificateValidity IdMbObs ::= 7 ``` - - ```asn1 obs-Security-MessageIdIncWithHeaderInfo C-ASR-SINGLE-OBS ::= { Security-MessageIdIncWithHeaderInfo BY @@ -296,8 +269,6 @@ obs-Security-MessageIdIncWithHeaderInfo C-ASR-SINGLE-OBS ::= { } ``` - - ```asn1 obs-Security-HeaderIncWithSecurityProfile C-ASR-SINGLE-OBS ::= { Security-HeaderIncWithSecurityProfile BY @@ -305,8 +276,6 @@ obs-Security-HeaderIncWithSecurityProfile C-ASR-SINGLE-OBS ::= { } ``` - - ```asn1 obs-Security-HeaderPsidIncWithCertificate C-ASR-SINGLE-OBS ::= { Security-HeaderPsidIncWithCertificate BY @@ -314,16 +283,12 @@ obs-Security-HeaderPsidIncWithCertificate C-ASR-SINGLE-OBS ::= { } ``` - - ```asn1 obs-Security-MessageIncWithSsp C-ASR-SINGLE-OBS ::= { Security-MessageIncWithSsp BY c-ObsSecurity-MessageIncWithSsp } ``` - - ```asn1 obs-Security-HeaderTimeOutsideCertificateValidity C-ASR-SINGLE-OBS ::= { Security-HeaderTimeOutsideCertificateValidity BY @@ -353,15 +318,8 @@ C-ASR-SINGLE-OBS ::= { } ``` -### SetMbObsCompleteSecurity -Values: -* **obs-Security-MessageIdIncWithHeaderInfo** |
        -* **obs-Security-HeaderIncWithSecurityProfile** |
        -* **obs-Security-HeaderPsidIncWithCertificate** |
        -* **obs-Security-MessageIncWithSsp** |
        -* **obs-Security-HeaderTimeOutsideCertificateValidity** |
        -* **obs-Security-MessageLocationOutsideCertificateValidity** |
        +### SetMbObsCompleteSecurity ```asn1 SetMbObsCompleteSecurity C-ASR-SINGLE-OBS ::= { obs-Security-MessageIdIncWithHeaderInfo | @@ -375,10 +333,8 @@ SetMbObsCompleteSecurity C-ASR-SINGLE-OBS ::= { } ``` -### Pos-IncWithPrev-TooSmall - - +### Pos-IncWithPrev-TooSmall ```asn1 Pos-IncWithPrev-TooSmall ::= NULL ``` @@ -393,66 +349,54 @@ 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 +### 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 + - `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. - - + - `nonV2xPduEvidence`: No other evidence is required to be included + to support this observation. + ```asn1 Position-ChangeTooLarge ::= NULL ``` - - ```asn1 c-ObsPos-IncWithPrev-TooSmall IdMbObs ::= 2 c-ObsPos-IncWithPrev-TooFar IdMbObs ::= 3 c-ObsPosition-ChangeTooLarge IdMbObs ::= 4 ``` - - ```asn1 obs-Pos-IncWithPrev-TooSmall C-ASR-SINGLE-OBS ::= { Pos-IncWithPrev-TooSmall BY c-ObsPos-IncWithPrev-TooSmall } ``` - - ```asn1 obs-Pos-IncWithPrev-TooFar C-ASR-SINGLE-OBS ::= { Pos-IncWithPrev-TooFar BY c-ObsPos-IncWithPrev-TooFar } ``` - - ```asn1 obs-Position-ChangeTooLarge C-ASR-SINGLE-OBS ::= { Position-ChangeTooLarge BY c-ObsPosition-ChangeTooLarge } ``` -### SetMbObsPosition -Values: -* **obs-Pos-IncWithPrev-TooSmall** |
        -* **obs-Pos-IncWithPrev-TooFar** |
        +### SetMbObsPosition ```asn1 SetMbObsPosition C-ASR-SINGLE-OBS ::= { obs-Pos-IncWithPrev-TooSmall | @@ -462,8 +406,8 @@ SetMbObsPosition C-ASR-SINGLE-OBS ::= { } ``` -### SetMbObsEtsiOnlyPosition +### SetMbObsEtsiOnlyPosition ```asn1 SetMbObsEtsiOnlyPosition C-ASR-SINGLE-OBS ::= { obs-Position-ChangeTooLarge, @@ -481,75 +425,70 @@ Speed-ValueTooLarge-ThresholdNoContext ::= SEQUENCE { } ``` -### Speed-ValueTooLarge-VehicleType - This data type is provided for an observation of speed too large +### 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 + - `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. - - + - `nonV2xPduEvidence`: No other evidence is required to be included + to support this observation. + ```asn1 Speed-ValueTooLarge-VehicleType ::= NULL ``` -### Speed-ValueTooLarge-DriveDirectionReverse - This data type is provided for an observation of speed too large +### 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 + - `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. - - + - `nonV2xPduEvidence`: No other evidence is required to be included + to support this observation. + ```asn1 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 +### 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 + - `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 + 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 + 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. - - + - `nonV2xPduEvidence`: No other evidence is required to be included + to support this observation. + ```asn1 Speed-ChangeTooLarge ::= NULL ``` - - ```asn1 c-ObsSpeed-ValueTooLarge-ThresholdNoContext IdMbObs::= 2 c-ObsSpeed-ValueTooLarge-VehicleType IdMbObs::= 3 @@ -557,16 +496,12 @@ c-ObsSpeed-ValueTooLarge-DriveDirectionReverse IdMbObs::= 4 c-ObsSpeed-ChangeTooLarge IdMbObs::= 5 ``` - - ```asn1 obs-Speed-ValueTooLarge-VehicleType C-ASR-SINGLE-OBS ::= { Speed-ValueTooLarge-VehicleType BY c-ObsSpeed-ValueTooLarge-VehicleType } ``` - - ```asn1 obs-Speed-ValueTooLarge-ThresholdNoContext C-ASR-SINGLE-OBS ::= { Speed-ValueTooLarge-ThresholdNoContext BY @@ -574,8 +509,6 @@ obs-Speed-ValueTooLarge-ThresholdNoContext C-ASR-SINGLE-OBS ::= { } ``` - - ```asn1 obs-Speed-ValueTooLarge-DriveDirectionReverse C-ASR-SINGLE-OBS ::= { Speed-ValueTooLarge-DriveDirectionReverse BY @@ -583,20 +516,14 @@ obs-Speed-ValueTooLarge-DriveDirectionReverse C-ASR-SINGLE-OBS ::= { } ``` - - ```asn1 obs-Speed-ChangeTooLarge C-ASR-SINGLE-OBS ::= { Speed-ChangeTooLarge BY c-ObsSpeed-ChangeTooLarge } ``` -### SetMbObsSpeed -Values: -* **obs-Speed-ValueTooLarge-VehicleType** |
        -* **obs-Speed-ValueTooLarge-ThresholdNoContext** |
        -* **obs-Speed-ValueTooLarge-DriveDirectionReverse** |
        +### SetMbObsSpeed ```asn1 SetMbObsSpeed C-ASR-SINGLE-OBS ::= { obs-Speed-ValueTooLarge-VehicleType | @@ -607,11 +534,8 @@ SetMbObsSpeed C-ASR-SINGLE-OBS ::= { } ``` -### SetMbObsEtsiOnlySpeed -Values: -* **obs-Speed-ValueTooLarge-VehicleType** |
        -* **obs-Speed-ValueTooLarge-DriveDirectionReverse** |
        +### SetMbObsEtsiOnlySpeed ```asn1 SetMbObsEtsiOnlySpeed C-ASR-SINGLE-OBS ::= { obs-Speed-ValueTooLarge-VehicleType | @@ -631,46 +555,39 @@ LongAcc-ValueTooLarge-ThresholdNoContext ::= SEQUENCE { } ``` -### LongAcc-Implausible-Brake - - +### LongAcc-Implausible-Brake ```asn1 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 +### 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 + - `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. - - + - `nonV2xPduEvidence`: No other evidence is required to be included + to support this observation. + ```asn1 LongAcc-ValueTooLarge ::= NULL ``` - - ```asn1 c-ObsLongAcc-ValueTooLarge-ThresholdNoContext IdMbObs::= 2 c-ObsLongAcc-Implausible-Brake IdMbObs::= 3 c-ObsLongAcc-ValueTooLarge IdMbObs::= 4 ``` - - ```asn1 obs-LongAcc-ValueTooLarge-ThresholdNoContext C-ASR-SINGLE-OBS ::= { LongAcc-ValueTooLarge-ThresholdNoContext BY @@ -678,26 +595,20 @@ obs-LongAcc-ValueTooLarge-ThresholdNoContext C-ASR-SINGLE-OBS ::= { } ``` - - ```asn1 obs-LongAcc-Implausible-Brake C-ASR-SINGLE-OBS ::= { LongAcc-Implausible-Brake BY c-ObsLongAcc-Implausible-Brake } ``` - - ```asn1 obs-LongAcc-ValueTooLarge C-ASR-SINGLE-OBS ::= { LongAcc-ValueTooLarge BY c-ObsLongAcc-ValueTooLarge } ``` -### SetMbObsLongAcc -Values: -* **obs-LongAcc-Implausible-Brake** |
        +### SetMbObsLongAcc ```asn1 SetMbObsLongAcc C-ASR-SINGLE-OBS ::= { obs-LongAcc-Implausible-Brake | @@ -706,8 +617,8 @@ SetMbObsLongAcc C-ASR-SINGLE-OBS ::= { } ``` -### SetMbObsEtsiOnlyLongAcc +### SetMbObsEtsiOnlyLongAcc ```asn1 SetMbObsEtsiOnlyLongAcc C-ASR-SINGLE-OBS ::= { obs-LongAcc-ValueTooLarge, diff --git a/docs/ITS-Container.md b/docs/ITS-Container.md new file mode 100644 index 0000000..2618e34 --- /dev/null +++ b/docs/ITS-Container.md @@ -0,0 +1,1176 @@ +# ASN.1 module ITS-Container + OID: _{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }_ + +## Data Elements: +### ItsPduHeader + +Fields: +* 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)
        + +* stationID [**StationID**](#StationID)
        + -- Mantis #7209, #7005 +```asn1 +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), + stationID StationID +} +``` + + +### StationID +```asn1 +StationID ::= INTEGER(0..4294967295) +``` + +### ReferencePosition + +Fields: +* latitude [**Latitude**](#Latitude)
        +* longitude [**Longitude**](#Longitude)
        + +* positionConfidenceEllipse [**PosConfidenceEllipse**](#PosConfidenceEllipse)
        + +* altitude [**Altitude**](#Altitude)
        + +```asn1 +ReferencePosition ::= SEQUENCE { + latitude Latitude, + longitude Longitude, + positionConfidenceEllipse PosConfidenceEllipse , + altitude Altitude +} +``` + +### DeltaReferencePosition + +Fields: +* deltaLatitude [**DeltaLatitude**](#DeltaLatitude)
        +* deltaLongitude [**DeltaLongitude**](#DeltaLongitude)
        + +* deltaAltitude [**DeltaAltitude**](#DeltaAltitude)
        + +```asn1 +DeltaReferencePosition ::= SEQUENCE { + deltaLatitude DeltaLatitude, + deltaLongitude DeltaLongitude, + deltaAltitude DeltaAltitude +} +``` + + +### Longitude +```asn1 +Longitude ::= INTEGER {oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unavailable(1800000001)} (-1800000000..1800000001) +``` + + +### Latitude +```asn1 +Latitude ::= INTEGER {oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10), unavailable(900000001)} (-900000000..900000001) +``` + +### Altitude + +Fields: +* altitudeValue [**AltitudeValue**](#AltitudeValue)
        +* altitudeConfidence [**AltitudeConfidence**](#AltitudeConfidence)
        + +```asn1 +Altitude ::= SEQUENCE { + altitudeValue AltitudeValue, + altitudeConfidence AltitudeConfidence +} +``` + + +### AltitudeValue +```asn1 +AltitudeValue ::= INTEGER {referenceEllipsoidSurface(0), oneCentimeter(1), unavailable(800001)} (-100000..800001) +``` + + +### AltitudeConfidence +```asn1 +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) +} +``` + + +### DeltaLongitude +```asn1 +DeltaLongitude ::= INTEGER {oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unavailable(131072)} (-131071..131072) +``` + + +### DeltaLatitude +```asn1 +DeltaLatitude ::= INTEGER {oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10) , unavailable(131072)} (-131071..131072) +``` + + +### DeltaAltitude +```asn1 +DeltaAltitude ::= INTEGER {oneCentimeterUp (1), oneCentimeterDown (-1), unavailable(12800)} (-12700..12800) +``` + +### PosConfidenceEllipse + +Fields: +* semiMajorConfidence [**SemiAxisLength**](#SemiAxisLength)
        +* semiMinorConfidence [**SemiAxisLength**](#SemiAxisLength)
        + +* semiMajorOrientation [**HeadingValue**](#HeadingValue)
        + +```asn1 +PosConfidenceEllipse ::= SEQUENCE { + semiMajorConfidence SemiAxisLength, + semiMinorConfidence SemiAxisLength, + semiMajorOrientation HeadingValue +} +``` + +### PathPoint + +Fields: +* pathPosition [**DeltaReferencePosition**](#DeltaReferencePosition)
        +* pathDeltaTime [**PathDeltaTime**](#PathDeltaTime) OPTIONAL
        + +```asn1 +PathPoint ::= SEQUENCE { + pathPosition DeltaReferencePosition, + pathDeltaTime PathDeltaTime OPTIONAL +} +``` + + +### PathDeltaTime +```asn1 +PathDeltaTime ::= INTEGER {tenMilliSecondsInPast(1)} (1..65535, ...) +``` + +### PtActivation + +Fields: +* ptActivationType [**PtActivationType**](#PtActivationType)
        +* ptActivationData [**PtActivationData**](#PtActivationData)
        + +```asn1 +PtActivation ::= SEQUENCE { + ptActivationType PtActivationType, + ptActivationData PtActivationData +} +``` + + +### PtActivationType +```asn1 +PtActivationType ::= INTEGER {undefinedCodingType(0), r09-16CodingType(1), vdv-50149CodingType(2)} (0..255) +``` + + +### PtActivationData +```asn1 +PtActivationData ::= OCTET STRING (SIZE(1..20)) +``` + + +### AccelerationControl +```asn1 +AccelerationControl ::= BIT STRING { + brakePedalEngaged (0), + gasPedalEngaged (1), + emergencyBrakeEngaged (2), + collisionWarningEngaged (3), + accEngaged (4), + cruiseControlEngaged (5), + speedLimiterEngaged (6) +} (SIZE(7)) +``` + + +### SemiAxisLength +```asn1 +SemiAxisLength ::= INTEGER{oneCentimeter(1), outOfRange(4094), unavailable(4095)} (0..4095) +``` + +### CauseCode + +Fields: +* causeCode [**CauseCodeType**](#CauseCodeType)
        +* subCauseCode [**SubCauseCodeType**](#SubCauseCodeType)
        + +```asn1 +CauseCode ::= SEQUENCE { + causeCode CauseCodeType, + subCauseCode SubCauseCodeType, + ... +} +``` + + +### CauseCodeType +```asn1 +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) +``` + + +### SubCauseCodeType +```asn1 +SubCauseCodeType ::= INTEGER (0..255) +``` + + +### TrafficConditionSubCauseCode +```asn1 +TrafficConditionSubCauseCode ::= INTEGER {unavailable(0), increasedVolumeOfTraffic(1), trafficJamSlowlyIncreasing(2), trafficJamIncreasing(3), trafficJamStronglyIncreasing(4), trafficStationary(5), trafficJamSlightlyDecreasing(6), trafficJamDecreasing(7), trafficJamStronglyDecreasing(8)} (0..255) +``` + + +### AccidentSubCauseCode +```asn1 +AccidentSubCauseCode ::= INTEGER {unavailable(0), multiVehicleAccident(1), heavyAccident(2), accidentInvolvingLorry(3), accidentInvolvingBus(4), accidentInvolvingHazardousMaterials(5), accidentOnOppositeLane(6), unsecuredAccident(7), assistanceRequested(8)} (0..255) +``` + + +### RoadworksSubCauseCode +```asn1 +RoadworksSubCauseCode ::= INTEGER {unavailable(0), majorRoadworks(1), roadMarkingWork(2), slowMovingRoadMaintenance(3), shortTermStationaryRoadworks(4), streetCleaning(5), winterService(6)} (0..255) +``` + + +### HumanPresenceOnTheRoadSubCauseCode +```asn1 +HumanPresenceOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), childrenOnRoadway(1), cyclistOnRoadway(2), motorcyclistOnRoadway(3)} (0..255) +``` + + +### WrongWayDrivingSubCauseCode +```asn1 +WrongWayDrivingSubCauseCode ::= INTEGER {unavailable(0), wrongLane(1), wrongDirection(2)} (0..255) +``` + + +### AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode +```asn1 +AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode ::= INTEGER {unavailable(0), strongWinds(1), damagingHail(2), hurricane(3), thunderstorm(4), tornado(5), blizzard(6)} (0..255) +``` + + +### AdverseWeatherCondition-AdhesionSubCauseCode +```asn1 +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-VisibilitySubCauseCode +```asn1 +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 +```asn1 +AdverseWeatherCondition-PrecipitationSubCauseCode ::= INTEGER {unavailable(0), heavyRain(1), heavySnowfall(2), softHail(3)} (0..255) +``` + + +### SlowVehicleSubCauseCode +```asn1 +SlowVehicleSubCauseCode ::= INTEGER {unavailable(0), maintenanceVehicle(1), vehiclesSlowingToLookAtAccident(2), abnormalLoad(3), abnormalWideLoad(4), convoy(5), snowplough(6), deicing(7), saltingVehicles(8)} (0..255) +``` + + +### StationaryVehicleSubCauseCode +```asn1 +StationaryVehicleSubCauseCode ::= INTEGER {unavailable(0), humanProblem(1), vehicleBreakdown(2), postCrash(3), publicTransportStop(4), carryingDangerousGoods(5)} (0..255) +``` + + +### HumanProblemSubCauseCode +```asn1 +HumanProblemSubCauseCode ::= INTEGER {unavailable(0), glycemiaProblem(1), heartProblem(2)} (0..255) +``` + + +### EmergencyVehicleApproachingSubCauseCode +```asn1 +EmergencyVehicleApproachingSubCauseCode ::= INTEGER {unavailable(0), emergencyVehicleApproaching(1), prioritizedVehicleApproaching(2)} (0..255) +``` + + +### HazardousLocation-DangerousCurveSubCauseCode +```asn1 +HazardousLocation-DangerousCurveSubCauseCode ::= INTEGER {unavailable(0), dangerousLeftTurnCurve(1), dangerousRightTurnCurve(2), multipleCurvesStartingWithUnknownTurningDirection(3), multipleCurvesStartingWithLeftTurn(4), multipleCurvesStartingWithRightTurn(5)} (0..255) +``` + + +### HazardousLocation-SurfaceConditionSubCauseCode +```asn1 +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 +```asn1 +HazardousLocation-ObstacleOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), shedLoad(1), partsOfVehicles(2), partsOfTyres(3), bigObjects(4), fallenTrees(5), hubCaps(6), waitingVehicles(7)} (0..255) +``` + + +### HazardousLocation-AnimalOnTheRoadSubCauseCode +```asn1 +HazardousLocation-AnimalOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), wildAnimals(1), herdOfAnimals(2), smallAnimals(3), largeAnimals(4)} (0..255) +``` + + +### CollisionRiskSubCauseCode +```asn1 +CollisionRiskSubCauseCode ::= INTEGER {unavailable(0), longitudinalCollisionRisk(1), crossingCollisionRisk(2), lateralCollisionRisk(3), vulnerableRoadUser(4)} (0..255) +``` + + +### SignalViolationSubCauseCode +```asn1 +SignalViolationSubCauseCode ::= INTEGER {unavailable(0), stopSignViolation(1), trafficLightViolation(2), turningRegulationViolation(3)} (0..255) +``` + + +### RescueAndRecoveryWorkInProgressSubCauseCode +```asn1 +RescueAndRecoveryWorkInProgressSubCauseCode ::= INTEGER {unavailable(0), emergencyVehicles(1), rescueHelicopterLanding(2), policeActivityOngoing(3), medicalEmergencyOngoing(4), childAbductionInProgress(5)} (0..255) +``` + + +### DangerousEndOfQueueSubCauseCode +```asn1 +DangerousEndOfQueueSubCauseCode ::= INTEGER {unavailable(0), suddenEndOfQueue(1), queueOverHill(2), queueAroundBend(3), queueInTunnel(4)} (0..255) +``` + + +### DangerousSituationSubCauseCode +```asn1 +DangerousSituationSubCauseCode ::= INTEGER {unavailable(0), emergencyElectronicBrakeEngaged(1), preCrashSystemEngaged(2), espEngaged(3), absEngaged(4), aebEngaged(5), brakeWarningEngaged(6), collisionRiskWarningEngaged(7)} (0..255) +``` + + +### VehicleBreakdownSubCauseCode +```asn1 +VehicleBreakdownSubCauseCode ::= INTEGER {unavailable(0), lackOfFuel (1), lackOfBatteryPower (2), engineProblem(3), transmissionProblem(4), engineCoolingProblem(5), brakingSystemProblem(6), steeringProblem(7), tyrePuncture(8), tyrePressureProblem(9)} (0..255) +``` + + +### PostCrashSubCauseCode +```asn1 +PostCrashSubCauseCode ::= INTEGER {unavailable(0), accidentWithoutECallTriggered (1), accidentWithECallManuallyTriggered (2), accidentWithECallAutomaticallyTriggered (3), accidentWithECallTriggeredWithoutAccessToCellularNetwork(4)} (0..255) +``` + +### Curvature + +Fields: +* curvatureValue [**CurvatureValue**](#CurvatureValue)
        +* curvatureConfidence [**CurvatureConfidence**](#CurvatureConfidence)
        + +```asn1 +Curvature ::= SEQUENCE { + curvatureValue CurvatureValue, + curvatureConfidence CurvatureConfidence +} +``` + + +### CurvatureValue +```asn1 +CurvatureValue ::= INTEGER {straight(0), unavailable(1023)} (-1023..1023) +``` + + +### CurvatureConfidence +```asn1 +CurvatureConfidence ::= ENUMERATED { + onePerMeter-0-00002 (0), + onePerMeter-0-0001 (1), + onePerMeter-0-0005 (2), + onePerMeter-0-002 (3), + onePerMeter-0-01 (4), + onePerMeter-0-1 (5), + outOfRange (6), + unavailable (7) +} +``` + + +### CurvatureCalculationMode +```asn1 +CurvatureCalculationMode ::= ENUMERATED {yawRateUsed(0), yawRateNotUsed(1), unavailable(2), ...} +``` + +### Heading + +Fields: +* headingValue [**HeadingValue**](#HeadingValue)
        +* headingConfidence [**HeadingConfidence**](#HeadingConfidence)
        + +```asn1 +Heading ::= SEQUENCE { + headingValue HeadingValue, + headingConfidence HeadingConfidence +} +``` + + +### HeadingValue +```asn1 +HeadingValue ::= INTEGER {wgs84North(0), wgs84East(900), wgs84South(1800), wgs84West(2700), unavailable(3601)} (0..3601) +``` + + +### HeadingConfidence +```asn1 +HeadingConfidence ::= INTEGER {equalOrWithinZeroPointOneDegree (1), equalOrWithinOneDegree (10), outOfRange(126), unavailable(127)} (1..127) +``` + + +### LanePosition +```asn1 +LanePosition::= INTEGER {offTheRoad(-1), hardShoulder(0), +outermostDrivingLane(1), secondLaneFromOutside(2)} (-1..14) +``` + +### ClosedLanes + +Fields: +* innerhardShoulderStatus [**HardShoulderStatus**](#HardShoulderStatus) OPTIONAL
        +* outerhardShoulderStatus [**HardShoulderStatus**](#HardShoulderStatus) OPTIONAL
        + +* drivingLaneStatus [**DrivingLaneStatus**](#DrivingLaneStatus) OPTIONAL
        + +```asn1 +ClosedLanes ::= SEQUENCE { + innerhardShoulderStatus HardShoulderStatus OPTIONAL, + outerhardShoulderStatus HardShoulderStatus OPTIONAL, + drivingLaneStatus DrivingLaneStatus OPTIONAL, + ... +} +``` + + +### HardShoulderStatus +```asn1 +HardShoulderStatus ::= ENUMERATED {availableForStopping(0), closed(1), availableForDriving(2)} +``` + + +### DrivingLaneStatus +```asn1 +DrivingLaneStatus ::= BIT STRING (SIZE (1..13)) +``` + + +### PerformanceClass +```asn1 +PerformanceClass ::= INTEGER {unavailable(0), performanceClassA(1), performanceClassB(2)} (0..7) +``` + + +### SpeedValue +```asn1 +SpeedValue ::= INTEGER {standstill(0), oneCentimeterPerSec(1), unavailable(16383)} (0..16383) +``` + + +### SpeedConfidence +```asn1 +SpeedConfidence ::= INTEGER {equalOrWithinOneCentimeterPerSec(1), equalOrWithinOneMeterPerSec(100), outOfRange(126), unavailable(127)} (1..127) +``` + + +### VehicleMass +```asn1 +VehicleMass ::= INTEGER {hundredKg(1), unavailable(1024)} (1..1024) +``` + +### Speed + +Fields: +* speedValue [**SpeedValue**](#SpeedValue)
        +* speedConfidence [**SpeedConfidence**](#SpeedConfidence)
        + +```asn1 +Speed ::= SEQUENCE { + speedValue SpeedValue, + speedConfidence SpeedConfidence +} +``` + + +### DriveDirection +```asn1 +DriveDirection ::= ENUMERATED {forward (0), backward (1), unavailable (2)} +``` + + +### EmbarkationStatus +```asn1 +EmbarkationStatus ::= BOOLEAN +``` + +### LongitudinalAcceleration + +Fields: +* longitudinalAccelerationValue [**LongitudinalAccelerationValue**](#LongitudinalAccelerationValue)
        +* longitudinalAccelerationConfidence [**AccelerationConfidence**](#AccelerationConfidence)
        + +```asn1 +LongitudinalAcceleration ::= SEQUENCE { + longitudinalAccelerationValue LongitudinalAccelerationValue, + longitudinalAccelerationConfidence AccelerationConfidence +} +``` + + +### LongitudinalAccelerationValue +```asn1 +LongitudinalAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredForward(1), pointOneMeterPerSecSquaredBackward(-1), unavailable(161)} (-160 .. 161) +``` + + +### AccelerationConfidence +```asn1 +AccelerationConfidence ::= INTEGER {pointOneMeterPerSecSquared(1), outOfRange(101), unavailable(102)} (0 .. 102) +``` + +### LateralAcceleration + +Fields: +* lateralAccelerationValue [**LateralAccelerationValue**](#LateralAccelerationValue)
        +* lateralAccelerationConfidence [**AccelerationConfidence**](#AccelerationConfidence)
        + +```asn1 +LateralAcceleration ::= SEQUENCE { + lateralAccelerationValue LateralAccelerationValue, + lateralAccelerationConfidence AccelerationConfidence +} +``` + + +### LateralAccelerationValue +```asn1 +LateralAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredToRight(-1), pointOneMeterPerSecSquaredToLeft(1), unavailable(161)} (-160 .. 161) +``` + +### VerticalAcceleration + +Fields: +* verticalAccelerationValue [**VerticalAccelerationValue**](#VerticalAccelerationValue)
        +* verticalAccelerationConfidence [**AccelerationConfidence**](#AccelerationConfidence)
        + +```asn1 +VerticalAcceleration ::= SEQUENCE { + verticalAccelerationValue VerticalAccelerationValue, + verticalAccelerationConfidence AccelerationConfidence +} +``` + + +### VerticalAccelerationValue +```asn1 +VerticalAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredUp(1), pointOneMeterPerSecSquaredDown(-1), unavailable(161)} (-160 .. 161) +``` + + +### StationType +```asn1 +StationType ::= INTEGER {unknown(0), pedestrian(1), cyclist(2), moped(3), motorcycle(4), passengerCar(5), bus(6), +lightTruck(7), heavyTruck(8), trailer(9), specialVehicles(10), tram(11), roadSideUnit(15)} (0..255) +``` + + +### ExteriorLights +```asn1 +ExteriorLights ::= BIT STRING { + lowBeamHeadlightsOn (0), + highBeamHeadlightsOn (1), + leftTurnSignalOn (2), + rightTurnSignalOn (3), + daytimeRunningLightsOn (4), + reverseLightOn (5), + fogLightOn (6), + parkingLightsOn (7) +} (SIZE(8)) +``` + + +### DangerousGoodsBasic +```asn1 +DangerousGoodsBasic::= ENUMERATED { + explosives1(0), + explosives2(1), + explosives3(2), + explosives4(3), + explosives5(4), + explosives6(5), + flammableGases(6), + nonFlammableGases(7), + toxicGases(8), + flammableLiquids(9), + flammableSolids(10), + substancesLiableToSpontaneousCombustion(11), + substancesEmittingFlammableGasesUponContactWithWater(12), + oxidizingSubstances(13), + organicPeroxides(14), + toxicSubstances(15), + infectiousSubstances(16), + radioactiveMaterial(17), + corrosiveSubstances(18), + miscellaneousDangerousSubstances(19) +} +``` + +### DangerousGoodsExtended + +Fields: +* dangerousGoodsType [**DangerousGoodsBasic**](#DangerousGoodsBasic)
        +* unNumber **INTEGER** (0..9999)
        + +* elevatedTemperature **BOOLEAN**
        + +* tunnelsRestricted **BOOLEAN**
        + +* limitedQuantity **BOOLEAN**
        + +* emergencyActionCode [**IA5String**](#IA5String) (SIZE (1..24)) OPTIONAL
        + +* phoneNumber [**PhoneNumber**](#PhoneNumber) OPTIONAL
        + +* companyName [**UTF8String**](#UTF8String) (SIZE (1..24)) OPTIONAL
        + +```asn1 +DangerousGoodsExtended ::= SEQUENCE { + dangerousGoodsType DangerousGoodsBasic, + unNumber INTEGER (0..9999), + elevatedTemperature BOOLEAN, + tunnelsRestricted BOOLEAN, + limitedQuantity BOOLEAN, + emergencyActionCode IA5String (SIZE (1..24)) OPTIONAL, + phoneNumber PhoneNumber OPTIONAL, + companyName UTF8String (SIZE (1..24)) OPTIONAL, + ... +} +``` + + +### SpecialTransportType +```asn1 +SpecialTransportType ::= BIT STRING {heavyLoad(0), excessWidth(1), excessLength(2), excessHeight(3)} (SIZE(4)) +``` + + +### LightBarSirenInUse +```asn1 +LightBarSirenInUse ::= BIT STRING { + lightBarActivated (0), + sirenActivated (1) +} (SIZE(2)) +``` + + +### HeightLonCarr +```asn1 +HeightLonCarr ::= INTEGER {oneCentimeter(1), unavailable(100)} (1..100) +``` + + +### PosLonCarr +```asn1 +PosLonCarr ::= INTEGER {oneCentimeter(1), unavailable(127)} (1..127) +``` + + +### PosPillar +```asn1 +PosPillar ::= INTEGER {tenCentimeters(1), unavailable(30)} (1..30) +``` + + +### PosCentMass +```asn1 +PosCentMass ::= INTEGER {tenCentimeters(1), unavailable(63)} (1..63) +``` + + +### RequestResponseIndication +```asn1 +RequestResponseIndication ::= ENUMERATED {request(0), response(1)} +``` + + +### SpeedLimit +```asn1 +SpeedLimit ::= INTEGER {oneKmPerHour(1)} (1..255) +``` + + +### StationarySince +```asn1 +StationarySince ::= ENUMERATED {lessThan1Minute(0), lessThan2Minutes(1), lessThan15Minutes(2), equalOrGreater15Minutes(3)} +``` + + +### Temperature +```asn1 +Temperature ::= INTEGER {equalOrSmallerThanMinus60Deg (-60), oneDegreeCelsius(1), equalOrGreaterThan67Deg(67)} (-60..67) +``` + + +### TrafficRule +```asn1 +TrafficRule ::= ENUMERATED {noPassing(0), noPassingForTrucks(1), passToRight(2), passToLeft(3), ... +} +``` + + +### WheelBaseVehicle +```asn1 +WheelBaseVehicle ::= INTEGER {tenCentimeters(1), unavailable(127)} (1..127) +``` + + +### TurningRadius +```asn1 +TurningRadius ::= INTEGER {point4Meters(1), unavailable(255)} (1..255) +``` + + +### PosFrontAx +```asn1 +PosFrontAx ::= INTEGER {tenCentimeters(1), unavailable(20)} (1..20) +``` + + +### PositionOfOccupants +```asn1 +PositionOfOccupants ::= BIT STRING { + row1LeftOccupied (0), + row1RightOccupied (1), + row1MidOccupied (2), + row1NotDetectable (3), + row1NotPresent (4), + row2LeftOccupied (5), + row2RightOccupied (6), + row2MidOccupied (7), + row2NotDetectable (8), + row2NotPresent (9), + row3LeftOccupied (10), + row3RightOccupied (11), + row3MidOccupied (12), + row3NotDetectable (13), + row3NotPresent (14), + row4LeftOccupied (15), + row4RightOccupied (16), + row4MidOccupied (17), + row4NotDetectable (18), + row4NotPresent (19)} (SIZE(20)) +``` + + +### PositioningSolutionType +```asn1 +PositioningSolutionType ::= ENUMERATED {noPositioningSolution(0), sGNSS(1), dGNSS(2), sGNSSplusDR(3), dGNSSplusDR(4), dR(5), ...} +``` + +### VehicleIdentification + +Fields: +* wMInumber [**WMInumber**](#WMInumber) OPTIONAL
        +* vDS [**VDS**](#VDS) OPTIONAL
        + +```asn1 +VehicleIdentification ::= SEQUENCE { + wMInumber WMInumber OPTIONAL, + vDS VDS OPTIONAL, + ... +} +``` + + +### WMInumber +```asn1 +WMInumber ::= IA5String (SIZE(1..3)) +``` + + +### VDS +```asn1 +VDS ::= IA5String (SIZE(6)) +``` + + +### EnergyStorageType +```asn1 +EnergyStorageType ::= BIT STRING {hydrogenStorage(0), electricEnergyStorage(1), liquidPropaneGas(2), compressedNaturalGas(3), diesel(4), gasoline(5), ammonia(6)} (SIZE(7)) +``` + +### VehicleLength + +Fields: +* vehicleLengthValue [**VehicleLengthValue**](#VehicleLengthValue)
        +* vehicleLengthConfidenceIndication [**VehicleLengthConfidenceIndication**](#VehicleLengthConfidenceIndication)
        + +```asn1 +VehicleLength ::= SEQUENCE { + vehicleLengthValue VehicleLengthValue, + vehicleLengthConfidenceIndication VehicleLengthConfidenceIndication +} +``` + + +### VehicleLengthValue +```asn1 +VehicleLengthValue ::= INTEGER {tenCentimeters(1), outOfRange(1022), unavailable(1023)} (1..1023) +``` + + +### VehicleLengthConfidenceIndication +```asn1 +VehicleLengthConfidenceIndication ::= ENUMERATED {noTrailerPresent(0), trailerPresentWithKnownLength(1), trailerPresentWithUnknownLength(2), trailerPresenceIsUnknown(3), unavailable(4)} +``` + + +### VehicleWidth +```asn1 +VehicleWidth ::= INTEGER {tenCentimeters(1), outOfRange(61), unavailable(62)} (1..62) +``` + + +### PathHistory +```asn1 +PathHistory::= SEQUENCE (SIZE(0..40)) OF PathPoint +``` + + +### EmergencyPriority +```asn1 +EmergencyPriority ::= BIT STRING {requestForRightOfWay(0), requestForFreeCrossingAtATrafficLight(1)} (SIZE(2)) +``` + + +### InformationQuality +```asn1 +InformationQuality ::= INTEGER {unavailable(0), lowest(1), highest(7)} (0..7) +``` + + +### RoadType +```asn1 +RoadType ::= ENUMERATED { + urban-NoStructuralSeparationToOppositeLanes(0), + urban-WithStructuralSeparationToOppositeLanes(1), + nonUrban-NoStructuralSeparationToOppositeLanes(2), + nonUrban-WithStructuralSeparationToOppositeLanes(3)} +``` + +### SteeringWheelAngle + +Fields: +* steeringWheelAngleValue [**SteeringWheelAngleValue**](#SteeringWheelAngleValue)
        +* steeringWheelAngleConfidence [**SteeringWheelAngleConfidence**](#SteeringWheelAngleConfidence)
        + +```asn1 +SteeringWheelAngle ::= SEQUENCE { + steeringWheelAngleValue SteeringWheelAngleValue, + steeringWheelAngleConfidence SteeringWheelAngleConfidence +} +``` + + +### SteeringWheelAngleValue +```asn1 +SteeringWheelAngleValue ::= INTEGER {straight(0), onePointFiveDegreesToRight(-1), onePointFiveDegreesToLeft(1), unavailable(512)} (-511..512) +``` + + +### SteeringWheelAngleConfidence +```asn1 +SteeringWheelAngleConfidence ::= INTEGER {equalOrWithinOnePointFiveDegree (1), outOfRange(126), unavailable(127)} (1..127) +``` + + +### TimestampIts +```asn1 +TimestampIts ::= INTEGER {utcStartOf2004(0), oneMillisecAfterUTCStartOf2004(1)} (0..4398046511103) +``` + + +### VehicleRole +```asn1 +VehicleRole ::= ENUMERATED {default(0), publicTransport(1), specialTransport(2), dangerousGoods(3), roadWork(4), rescue(5), emergency(6), safetyCar(7), agriculture(8), commercial(9), military(10), roadOperator(11), taxi(12), reserved1(13), reserved2(14), reserved3(15)} +``` + +### YawRate + +Fields: +* yawRateValue [**YawRateValue**](#YawRateValue)
        +* yawRateConfidence [**YawRateConfidence**](#YawRateConfidence)
        + +```asn1 +YawRate::= SEQUENCE { + yawRateValue YawRateValue, + yawRateConfidence YawRateConfidence +} +``` + + +### YawRateValue +```asn1 +YawRateValue ::= INTEGER {straight(0), degSec-000-01ToRight(-1), degSec-000-01ToLeft(1), unavailable(32767)} (-32766..32767) +``` + + +### YawRateConfidence +```asn1 +YawRateConfidence ::= ENUMERATED { + degSec-000-01 (0), + degSec-000-05 (1), + degSec-000-10 (2), + degSec-001-00 (3), + degSec-005-00 (4), + degSec-010-00 (5), + degSec-100-00 (6), + outOfRange (7), + unavailable (8) +} +``` + + +### ProtectedZoneType +```asn1 +ProtectedZoneType::= ENUMERATED { permanentCenDsrcTolling (0), ..., temporaryCenDsrcTolling (1) } +``` + + +### RelevanceDistance +```asn1 +RelevanceDistance ::= ENUMERATED {lessThan50m(0), lessThan100m(1), lessThan200m(2), lessThan500m(3), lessThan1000m(4), lessThan5km(5), lessThan10km(6), over10km(7)} +``` + + +### RelevanceTrafficDirection +```asn1 +RelevanceTrafficDirection ::= ENUMERATED {allTrafficDirections(0), upstreamTraffic(1), downstreamTraffic(2), oppositeTraffic(3)} +``` + + +### TransmissionInterval +```asn1 +TransmissionInterval ::= INTEGER {oneMilliSecond(1), tenSeconds(10000)} (1..10000) +``` + + +### ValidityDuration +```asn1 +ValidityDuration ::= INTEGER {timeOfDetection(0), oneSecondAfterDetection(1)} (0..86400) +``` + +### ActionID + +Fields: +* originatingStationID [**StationID**](#StationID)
        +* sequenceNumber [**SequenceNumber**](#SequenceNumber)
        + +```asn1 +ActionID ::= SEQUENCE { + originatingStationID StationID, + sequenceNumber SequenceNumber +} +``` + + +### ItineraryPath +```asn1 +ItineraryPath ::= SEQUENCE SIZE(1..40) OF ReferencePosition +``` + +### ProtectedCommunicationZone + +Fields: +* protectedZoneType [**ProtectedZoneType**](#ProtectedZoneType)
        +* expiryTime [**TimestampIts**](#TimestampIts) OPTIONAL
        + +* protectedZoneLatitude [**Latitude**](#Latitude)
        + +* protectedZoneLongitude [**Longitude**](#Longitude)
        + +* protectedZoneRadius [**ProtectedZoneRadius**](#ProtectedZoneRadius) OPTIONAL
        + +* protectedZoneID [**ProtectedZoneID**](#ProtectedZoneID) OPTIONAL
        + +```asn1 +ProtectedCommunicationZone ::= SEQUENCE { + protectedZoneType ProtectedZoneType, + expiryTime TimestampIts OPTIONAL, + protectedZoneLatitude Latitude, + protectedZoneLongitude Longitude, + protectedZoneRadius ProtectedZoneRadius OPTIONAL, + protectedZoneID ProtectedZoneID OPTIONAL, + ... +} +``` + + +### Traces +```asn1 +Traces ::= SEQUENCE SIZE(1..7) OF PathHistory +``` + + +### NumberOfOccupants +```asn1 +NumberOfOccupants ::= INTEGER {oneOccupant (1), unavailable(127)} (0 .. 127) +``` + + +### SequenceNumber +```asn1 +SequenceNumber ::= INTEGER (0..65535) +``` + + +### PositionOfPillars +```asn1 +PositionOfPillars ::= SEQUENCE (SIZE(1..3, ...)) OF PosPillar +``` + + +### RestrictedTypes +```asn1 +RestrictedTypes ::= SEQUENCE (SIZE(1..3, ...)) OF StationType +``` + + +### EventHistory +```asn1 +EventHistory::= SEQUENCE (SIZE(1..23)) OF EventPoint +``` + +### EventPoint + +Fields: +* eventPosition [**DeltaReferencePosition**](#DeltaReferencePosition)
        +* eventDeltaTime [**PathDeltaTime**](#PathDeltaTime) OPTIONAL
        + +* informationQuality [**InformationQuality**](#InformationQuality)
        + +```asn1 +EventPoint ::= SEQUENCE { + eventPosition DeltaReferencePosition, + eventDeltaTime PathDeltaTime OPTIONAL, + informationQuality InformationQuality +} +``` + + +### ProtectedCommunicationZonesRSU +```asn1 +ProtectedCommunicationZonesRSU ::= SEQUENCE (SIZE(1..16)) OF ProtectedCommunicationZone +``` + +### CenDsrcTollingZone + +Fields: +* protectedZoneLatitude [**Latitude**](#Latitude)
        +* protectedZoneLongitude [**Longitude**](#Longitude)
        + +* cenDsrcTollingZoneID [**CenDsrcTollingZoneID**](#CenDsrcTollingZoneID) OPTIONAL
        + +```asn1 +CenDsrcTollingZone ::= SEQUENCE { + protectedZoneLatitude Latitude, + protectedZoneLongitude Longitude, + cenDsrcTollingZoneID CenDsrcTollingZoneID OPTIONAL, + ... +} +``` + + +### ProtectedZoneRadius +```asn1 +ProtectedZoneRadius ::= INTEGER {oneMeter(1)} (1..255,...) +``` + + +### ProtectedZoneID +```asn1 +ProtectedZoneID ::= INTEGER (0.. 134217727) +``` + + +### CenDsrcTollingZoneID +```asn1 +CenDsrcTollingZoneID ::= ProtectedZoneID +``` + + +### DigitalMap +```asn1 +DigitalMap ::= SEQUENCE (SIZE(1..256)) OF ReferencePosition +``` + + +### OpeningDaysHours +```asn1 +OpeningDaysHours ::= UTF8String +``` + + +### PhoneNumber +```asn1 +PhoneNumber ::= NumericString (SIZE(1..16)) +``` + + + diff --git a/docs/Ieee1609Dot2.md b/docs/Ieee1609Dot2.md new file mode 100644 index 0000000..02a0abf --- /dev/null +++ b/docs/Ieee1609Dot2.md @@ -0,0 +1,1517 @@ +# ASN.1 module Ieee1609Dot2 + OID: _{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-4(4)}_ + @brief 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. + +## Imports: + * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-3(3)} WITH SUCCESSORS*
        + + * **[EtsiTs103097ExtensionModule](EtsiTs103097ExtensionModule.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) secHeaders(103097) extension(2) version-1(1) minor-version-1(1)} WITH SUCCESSORS*
        + +## Data Elements: +### Ieee1609Dot2Data + +This data type is used to contain the other data types in this + clause. The fields in the Ieee1609Dot2Data have the following meanings: + +Fields: +* protocolVersion [**Uint8**](Ieee1609Dot2BaseTypes.md#Uint8) (3)
        + 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 [**Ieee1609Dot2Content**](#Ieee1609Dot2Content)
        + contains the content in the form of an Ieee1609Dot2Content. + + + + +```asn1 +Ieee1609Dot2Data ::= SEQUENCE { + protocolVersion Uint8(3), + content Ieee1609Dot2Content + } +``` + +### Ieee1609Dot2Content + +In this structure: + +Fields: +* unsecuredData [**Opaque**](Ieee1609Dot2BaseTypes.md#Opaque)
        + indicates that the content is an OCTET STRING to be + consumed outside the SDS. + + +* signedData [**SignedData**](#SignedData)
        + indicates that the content has been signed according to + this standard. + + + +* encryptedData [**EncryptedData**](#EncryptedData)
        + indicates that the content has been encrypted + according to this standard. + + + +* signedCertificateRequest [**Opaque**](Ieee1609Dot2BaseTypes.md#Opaque)
        + indicates that the content is a + certificate request. Further specification of certificate requests is not + provided in this version of this standard. + + + + +* signedX509CertificateRequest [**Opaque**](Ieee1609Dot2BaseTypes.md#Opaque)
        + + ..., +```asn1 +Ieee1609Dot2Content ::= CHOICE { + unsecuredData Opaque, + signedData SignedData, + encryptedData EncryptedData, + signedCertificateRequest Opaque, + ..., + signedX509CertificateRequest Opaque + } +``` + +### SignedData + +In this structure: + + + + + + +

      • 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.
      • +
      +
    + +Fields: +* hashId [**HashAlgorithm**](Ieee1609Dot2BaseTypes.md#HashAlgorithm)
    + indicates the hash algorithm to be used to generate the hash + of the message for signing and verification. + + +* tbsData [**ToBeSignedData**](#ToBeSignedData)
    + contains the data that is hashed as input to the signature. + + + +* signer [**SignerIdentifier**](#SignerIdentifier)
    + determines the keying material and hash algorithm used to + sign the data. + + + +* signature [**Signature**](Ieee1609Dot2BaseTypes.md#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.
      • + + + +```asn1 +SignedData ::= SEQUENCE { + hashId HashAlgorithm, + tbsData ToBeSignedData, + signer SignerIdentifier, + signature Signature + } +``` + +### 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: + +Fields: +* payload [**SignedDataPayload**](#SignedDataPayload)
        + contains data that is provided by the entity that invokes + the SDS. + + +* headerInfo [**HeaderInfo**](#HeaderInfo)
        + contains additional data that is inserted by the SDS. + + + + +```asn1 +ToBeSignedData ::= SEQUENCE { + payload SignedDataPayload, + headerInfo HeaderInfo + } +``` + +### SignedDataPayload + +This structure contains the data payload of a ToBeSignedData. This + structure contains at least one of data and extDataHash, and may contain + both. + +Fields: +* data [**Ieee1609Dot2Data**](Ieee1609Dot2.md#Ieee1609Dot2Data) OPTIONAL
        + contains data that is explicitly transported within the + structure. + + +* extDataHash [**HashedData**](#HashedData) OPTIONAL
        + 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. + + + + +```asn1 +SignedDataPayload ::= SEQUENCE { + data Ieee1609Dot2Data OPTIONAL, + extDataHash HashedData OPTIONAL, + ... + } (WITH COMPONENTS {..., data PRESENT} | + WITH COMPONENTS {..., extDataHash PRESENT}) +``` + +### 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. + +Fields: +* sha256HashedData **OCTET STRING** (SIZE(32))
        +* sha384HashedData **OCTET STRING** (SIZE(48))
        + + ..., +* reserved **OCTET STRING** (SIZE(32))
        + +```asn1 +HashedData::= CHOICE { + sha256HashedData OCTET STRING (SIZE(32)), + ..., + sha384HashedData OCTET STRING (SIZE(48)), + reserved OCTET STRING (SIZE(32)) + } +``` + +### 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: + +Fields: +* psid [**Psid**](Ieee1609Dot2BaseTypes.md#Psid)
        + indicates the application area with which the sender is + claiming the payload should be associated. + + +* generationTime [**Time64**](Ieee1609Dot2BaseTypes.md#Time64) OPTIONAL
        + 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 [**Time64**](Ieee1609Dot2BaseTypes.md#Time64) OPTIONAL
        + 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 [**ThreeDLocation**](Ieee1609Dot2BaseTypes.md#ThreeDLocation) OPTIONAL
        + if present, contains the location at which the + signature was generated. + + + +* p2pcdLearningRequest [**HashedId3**](Ieee1609Dot2BaseTypes.md#HashedId3) OPTIONAL
        + 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 [**MissingCrlIdentifier**](#MissingCrlIdentifier) OPTIONAL
        + 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 [**EncryptionKey**](Ieee1609Dot2BaseTypes.md#EncryptionKey) OPTIONAL
        + 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 [**SequenceOfHashedId3**](Ieee1609Dot2BaseTypes.md#SequenceOfHashedId3) OPTIONAL
        + 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 [**Certificate**](Ieee1609Dot2.md#Certificate) OPTIONAL
        + 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 [**PduFunctionalType**](#PduFunctionalType) OPTIONAL
        + 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 [**ContributedExtensionBlocks**](#ContributedExtensionBlocks) OPTIONAL
        + if present, is used to provide extension blocks + defined by identified contributing organizations. + + + + +```asn1 +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 + } +``` + +### 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. + +Fields: +* cracaId [**HashedId3**](Ieee1609Dot2BaseTypes.md#HashedId3)
        + 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 [**CrlSeries**](Ieee1609Dot2BaseTypes.md#CrlSeries)
        + is the requested CRL Series value. See 5.1.3 for more + information. + + + + +```asn1 +MissingCrlIdentifier ::= SEQUENCE { + cracaId HashedId3, + crlSeries CrlSeries, + ... + } +``` + + +### 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. + +```asn1 +PduFunctionalType ::= INTEGER (0..255) + tlsHandshake PduFunctionalType ::= 1 + iso21177ExtendedAuth PduFunctionalType ::= 2 +``` + + +### ContributedExtensionBlocks + +This data structure defines a list of ContributedExtensionBlock + +```asn1 +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. + +Fields: +* contributorId [**IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION**](#IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION) .
        + uniquely identifies the contributor + + +* extns **SEQUENCE** (SIZE(1..MAX)) OF IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION.
        + contains a list of extensions from that contributor. + + + + + &id({Ieee1609Dot2HeaderInfoContributedExtensions}), +```asn1 +ContributedExtensionBlock ::= SEQUENCE { + contributorId IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION. + &id({Ieee1609Dot2HeaderInfoContributedExtensions}), + extns SEQUENCE (SIZE(1..MAX)) OF IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION. + &Extn({Ieee1609Dot2HeaderInfoContributedExtensions}{@.contributorId}) +} +``` + +### IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION + +This data structure defines the information object class that + provides a "template" for defining extension blocks. + +Fields: +* id [**HeaderInfoContributorId**](#HeaderInfoContributorId) UNIQUE
        +```asn1 +IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION ::= CLASS { + &id HeaderInfoContributorId UNIQUE, + &Extn + } WITH SYNTAX {&Extn IDENTIFIED BY &id} +``` + +### 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 + + + +```asn1 +Ieee1609Dot2HeaderInfoContributedExtensions + IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION ::= { + {EtsiOriginatingHeaderInfoExtension IDENTIFIED BY etsiHeaderInfoContributorId}, + ... + } +``` + + +### HeaderInfoContributorId + +This data structure defines the header info contributor id type + and its values. + +```asn1 +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. + +
        3. 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.
        4. +
        + +Fields: +* digest [**HashedId8**](Ieee1609Dot2BaseTypes.md#HashedId8)
        +* certificate [**SequenceOfCertificate**](#SequenceOfCertificate)
        + +* self **NULL**
        + +```asn1 +SignerIdentifier ::= CHOICE { + digest HashedId8, + certificate SequenceOfCertificate, + self NULL, + ... + } +``` + +### 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: + +Fields: +* recipients [**SequenceOfRecipientInfo**](#SequenceOfRecipientInfo)
        + 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 [**SymmetricCiphertext**](#SymmetricCiphertext)
        + contains the encrypted data. This is the encryption of + an encoded Ieee1609Dot2Data structure as specified in 5.3.4.2. + + + + +```asn1 +EncryptedData ::= SEQUENCE { + recipients SequenceOfRecipientInfo, + ciphertext SymmetricCiphertext + } +``` + +### 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. + +Fields: +* pskRecipInfo [**PreSharedKeyRecipientInfo**](#PreSharedKeyRecipientInfo)
        + The ciphertext was encrypted directly using a + symmetric key. + + +* symmRecipInfo [**SymmRecipientInfo**](#SymmRecipientInfo)
        + The data encryption key was encrypted using a + symmetric key. + + + +* certRecipInfo [**PKRecipientInfo**](#PKRecipientInfo)
        + 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 [**PKRecipientInfo**](#PKRecipientInfo)
        + 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 [**PKRecipientInfo**](#PKRecipientInfo)
        + 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. + + + + +```asn1 +RecipientInfo ::= CHOICE { + pskRecipInfo PreSharedKeyRecipientInfo, + symmRecipInfo SymmRecipientInfo, + certRecipInfo PKRecipientInfo, + signedDataRecipInfo PKRecipientInfo, + rekRecipInfo PKRecipientInfo + } +``` + + +### SequenceOfRecipientInfo + +This type is used for clarity of definitions. + +```asn1 +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. + +```asn1 +PreSharedKeyRecipientInfo ::= HashedId8 +``` + +### SymmRecipientInfo + +This data structure contains the following fields: + +Fields: +* recipientId [**HashedId8**](Ieee1609Dot2BaseTypes.md#HashedId8)
        + 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 [**SymmetricCiphertext**](#SymmetricCiphertext)
        + contains the encrypted data encryption key within an AES-CCM + ciphertext. + + + + +```asn1 +SymmRecipientInfo ::= SEQUENCE { + recipientId HashedId8, + encKey SymmetricCiphertext + } +``` + +### PKRecipientInfo + +This data structure contains the following fields: + + + +
      • 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.
      • +
      + +Fields: +* recipientId [**HashedId8**](Ieee1609Dot2BaseTypes.md#HashedId8)
      + 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.
      • + + +* encKey [**EncryptedDataEncryptionKey**](#EncryptedDataEncryptionKey)
        + contains the encrypted key. + + + + +```asn1 +PKRecipientInfo ::= SEQUENCE { + recipientId HashedId8, + encKey EncryptedDataEncryptionKey + } +``` + +### 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. + +Fields: +* eciesNistP256 [**EciesP256EncryptedKey**](Ieee1609Dot2BaseTypes.md#EciesP256EncryptedKey)
        +* eciesBrainpoolP256r1 [**EciesP256EncryptedKey**](Ieee1609Dot2BaseTypes.md#EciesP256EncryptedKey)
        + +```asn1 +EncryptedDataEncryptionKey ::= CHOICE { + eciesNistP256 EciesP256EncryptedKey, + eciesBrainpoolP256r1 EciesP256EncryptedKey, + ... + } +``` + +### 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. + +Fields: +* aes128ccm [**AesCcmCiphertext**](#AesCcmCiphertext)
        +```asn1 +SymmetricCiphertext ::= CHOICE { + aes128ccm AesCcmCiphertext, + ... + } +``` + +### 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. + +Fields: +* nonce **OCTET STRING** (SIZE (12))
        + contains the nonce N as specified in 5.3.7. + + +* ccmCiphertext [**Opaque**](Ieee1609Dot2BaseTypes.md#Opaque)
        + contains the ciphertext C as specified in 5.3.7. + + + + +```asn1 +AesCcmCiphertext ::= SEQUENCE { + nonce OCTET STRING (SIZE (12)), + ccmCiphertext Opaque + } +``` + + +### 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. + +```asn1 +Countersignature ::= Ieee1609Dot2Data (WITH COMPONENTS {..., + content (WITH COMPONENTS {..., + signedData (WITH COMPONENTS {..., + tbsData (WITH COMPONENTS {..., + payload (WITH COMPONENTS {..., + data ABSENT, + extDataHash PRESENT + }), + headerInfo(WITH COMPONENTS {..., + generationTime PRESENT, + expiryTime ABSENT, + generationLocation ABSENT, + p2pcdLearningRequest ABSENT, + missingCrlIdentifier ABSENT, + encryptionKey ABSENT + }) + }) + }) + }) + }) +``` + + +### Certificate + +This structure is a profile of the structure CertificateBase which + specifies the valid combinations of fields to transmit implicit and + explicit certificates. + +```asn1 +Certificate ::= CertificateBase (ImplicitCertificate | ExplicitCertificate) +``` + + +### SequenceOfCertificate + +This type is used for clarity of definitions. + +```asn1 +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: + + + + + + +
      • 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.
      • +
      + +Fields: +* version [**Uint8**](Ieee1609Dot2BaseTypes.md#Uint8) (3)
      + contains the version of the certificate format. In this + version of the data structures, this field is set to 3. + + +* type [**CertificateType**](#CertificateType)
      + 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 [**IssuerIdentifier**](#IssuerIdentifier)
      + identifies the issuer of the certificate. + + + +* toBeSigned [**ToBeSignedCertificate**](#ToBeSignedCertificate)
      + 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 [**Signature**](Ieee1609Dot2BaseTypes.md#Signature) OPTIONAL
      + 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.
      • + + + +```asn1 +CertificateBase ::= SEQUENCE { + version Uint8(3), + type CertificateType, + issuer IssuerIdentifier, + toBeSigned ToBeSignedCertificate, + signature Signature OPTIONAL + } +``` + + +### 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. + +```asn1 +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. + +```asn1 +ImplicitCertificate ::= CertificateBase (WITH COMPONENTS {..., + type(implicit), + toBeSigned(WITH COMPONENTS {..., + verifyKeyIndicator(WITH COMPONENTS {reconstructionValue}) + }), + signature ABSENT + }) +``` + + +### ExplicitCertificate + +This is a profile of the CertificateBase structure providing all + the fields necessary for an explicit certificate, and no others. + +```asn1 +ExplicitCertificate ::= CertificateBase (WITH COMPONENTS {..., + type(explicit), + toBeSigned(WITH COMPONENTS {..., + verifyKeyIndicator(WITH COMPONENTS {verificationKey}) + }), + signature PRESENT + }) +``` + +### 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. + +Fields: +* sha256AndDigest [**HashedId8**](Ieee1609Dot2BaseTypes.md#HashedId8)
        +* self [**HashAlgorithm**](Ieee1609Dot2BaseTypes.md#HashAlgorithm)
        + +* sha384AndDigest [**HashedId8**](Ieee1609Dot2BaseTypes.md#HashedId8)
        + + ..., +```asn1 +IssuerIdentifier ::= CHOICE { + sha256AndDigest HashedId8, + self HashAlgorithm, + ..., + sha384AndDigest HashedId8 + } +``` + +### 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: + + + + + + +
      • Otherwise, the certificate has the same validity region as the + certificate that issued it.
      • +
      + +Fields: +* id [**CertificateId**](#CertificateId)
      + contains information that is used to identify the certificate + holder if necessary. + + +* cracaId [**HashedId3**](Ieee1609Dot2BaseTypes.md#HashedId3)
      + 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 [**CrlSeries**](Ieee1609Dot2BaseTypes.md#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 [**ValidityPeriod**](Ieee1609Dot2BaseTypes.md#ValidityPeriod)
      + contains the validity period of the certificate. + + + +* region [**GeographicRegion**](Ieee1609Dot2BaseTypes.md#GeographicRegion) OPTIONAL
      + 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.
      • + + + +* assuranceLevel [**SubjectAssurance**](Ieee1609Dot2BaseTypes.md#SubjectAssurance) OPTIONAL
        + indicates the assurance level of the certificate + holder. + + + +* appPermissions [**SequenceOfPsidSsp**](Ieee1609Dot2BaseTypes.md#SequenceOfPsidSsp) OPTIONAL
        + 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 [**SequenceOfPsidGroupPermissions**](#SequenceOfPsidGroupPermissions) OPTIONAL
        + 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 [**SequenceOfPsidGroupPermissions**](#SequenceOfPsidGroupPermissions) OPTIONAL
        + 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 **NULL** OPTIONAL
        + 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 [**PublicEncryptionKey**](Ieee1609Dot2BaseTypes.md#PublicEncryptionKey) OPTIONAL
        + contains a public key for encryption for which the + certificate holder holds the corresponding private key. + + + +* verifyKeyIndicator [**VerificationKeyIndicator**](#VerificationKeyIndicator)
        + contains material that may be used to recover + the public key that may be used to verify data signed by this certificate. + + + + +* flags **BIT STRING** {cubk (0)} (SIZE (8)) OPTIONAL
        + + ..., +```asn1 +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, + ..., + flags BIT STRING {cubk (0)} (SIZE (8)) OPTIONAL + } + (WITH COMPONENTS { ..., appPermissions PRESENT} | + WITH COMPONENTS { ..., certIssuePermissions PRESENT} | + 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: + +Fields: +* linkageData [**LinkageData**](#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 [**Hostname**](Ieee1609Dot2BaseTypes.md#Hostname)
        + 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 **OCTET STRING** (SIZE(1..64))
        + supports identifiers that are not human-readable. + + + +* none **NULL**
        + indicates that the certificate does not include an identifier. + + + + +```asn1 +CertificateId ::= CHOICE { + linkageData LinkageData, + name Hostname, + binaryId OCTET STRING(SIZE(1..64)), + none NULL, + ... + } +``` + +### 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. + +Fields: +* iCert [**IValue**](Ieee1609Dot2BaseTypes.md#IValue)
        +* linkage-value [**LinkageValue**](Ieee1609Dot2BaseTypes.md#LinkageValue)
        + +* group-linkage-value [**GroupLinkageValue**](Ieee1609Dot2BaseTypes.md#GroupLinkageValue) OPTIONAL
        + +```asn1 +LinkageData ::= SEQUENCE { + iCert IValue, + linkage-value LinkageValue, + group-linkage-value GroupLinkageValue OPTIONAL + } +``` + + +### 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. + +```asn1 +EndEntityType ::= BIT STRING { + app (0), + enroll (1) + } (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. + +Fields: +* subjectPermissions [**SubjectPermissions**](#SubjectPermissions)
        + indicates PSIDs and SSP Ranges covered by this + field. + + +* minChainLength **INTEGER** DEFAULT 1
        + 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. + + + +* chainLengthRange **INTEGER** DEFAULT 0
        + +* eeType [**EndEntityType**](#EndEntityType) DEFAULT {app}
        + 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. + + + + +```asn1 +PsidGroupPermissions ::= SEQUENCE { + subjectPermissions SubjectPermissions, + minChainLength INTEGER DEFAULT 1, + chainLengthRange INTEGER DEFAULT 0, + eeType EndEntityType DEFAULT {app} + } +``` + + +### SequenceOfPsidGroupPermissions + +This type is used for clarity of definitions. + +```asn1 +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.
        • +
        + +Fields: +* explicit [**SequenceOfPsidSspRange**](Ieee1609Dot2BaseTypes.md#SequenceOfPsidSspRange)
        +* all **NULL**
        + +```asn1 +SubjectPermissions ::= CHOICE { + explicit SequenceOfPsidSspRange, + all NULL, + ... + } +``` + +### 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: + +Fields: +* verificationKey [**PublicVerificationKey**](Ieee1609Dot2BaseTypes.md#PublicVerificationKey)
        + is included in explicit certificates. It contains + the public key to be used to verify signatures generated by the holder of + the Certificate. + + +* reconstructionValue [**EccP256CurvePoint**](Ieee1609Dot2BaseTypes.md#EccP256CurvePoint)
        + 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. + + + + +```asn1 +VerificationKeyIndicator ::= CHOICE { + verificationKey PublicVerificationKey, + reconstructionValue EccP256CurvePoint, + ... + } +``` + + + diff --git a/docs/Ieee1609Dot2BaseTypes.md b/docs/Ieee1609Dot2BaseTypes.md new file mode 100644 index 0000000..90733e8 --- /dev/null +++ b/docs/Ieee1609Dot2BaseTypes.md @@ -0,0 +1,1613 @@ +# ASN.1 module Ieee1609Dot2BaseTypes + OID: _{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-3(3)}_ + @brief 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. + +## Data Elements: + +### 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. + +```asn1 +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. + +```asn1 +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. + +```asn1 +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. + +```asn1 +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. + +```asn1 +Uint64 ::= INTEGER (0..18446744073709551615) +``` + + +### SequenceOfUint8 + +This type is used for clarity of definitions. + +```asn1 +SequenceOfUint8 ::= SEQUENCE OF Uint8 +``` + + +### SequenceOfUint16 + +This type is used for clarity of definitions. + +```asn1 +SequenceOfUint16 ::= SEQUENCE OF Uint16 +``` + + +### Opaque + +This is a synonym for ASN.1 OCTET STRING, and is used in the + definition of other data structures. + +```asn1 +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. + +```asn1 +HashedId3 ::= OCTET STRING (SIZE(3)) +``` + + +### SequenceOfHashedId3 + +This type is used for clarity of definitions. + +```asn1 +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. + +```asn1 +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. + +```asn1 +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. + +```asn1 +HashedId32 ::= OCTET STRING (SIZE(32)) +``` + + +### Time32 + +This type gives the number of (TAI) seconds since 00:00:00 UTC, 1 + January, 2004. + +```asn1 +Time32 ::= Uint32 +``` + + +### Time64 + +This type gives the number of (TAI) microseconds since 00:00:00 + UTC, 1 January, 2004. + +```asn1 +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. + +Fields: +* start [**Time32**](Ieee1609Dot2BaseTypes.md#Time32)
        + contains the starting time of the validity period. + + +* duration [**Duration**](#Duration)
        + contains the duration of the validity period. + + + + +```asn1 +ValidityPeriod ::= SEQUENCE { + start Time32, + duration Duration + } +``` + +### 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: + +Fields: +* microseconds [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
        + contains the duration in microseconds. + + +* milliseconds [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
        + contains the duration in milliseconds. + + + +* seconds [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
        + contains the duration in seconds. + + + +* minutes [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
        + contains the duration in minutes. + + + +* hours [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
        + contains the duration in hours. + + + +* sixtyHours [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
        + contains the duration in sixty-hour periods. + + + +* years [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
        + contains the duration in years. + + + + +```asn1 +Duration ::= CHOICE { + microseconds Uint16, + milliseconds Uint16, + seconds Uint16, + minutes Uint16, + hours Uint16, + sixtyHours Uint16, + years Uint16 + } +``` + +### 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: + +Fields: +* circularRegion [**CircularRegion**](#CircularRegion)
        + contains a single instance of the CircularRegion + structure. + + +* rectangularRegion [**SequenceOfRectangularRegion**](#SequenceOfRectangularRegion)
        + 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 [**PolygonalRegion**](#PolygonalRegion)
        + contains a single instance of the PolygonalRegion + structure. + + + +* identifiedRegion [**SequenceOfIdentifiedRegion**](#SequenceOfIdentifiedRegion)
        + is an array of IdentifiedRegion structures + containing at least one entry. The permitted region is any point within + any of the identified regions. + + + + +```asn1 +GeographicRegion ::= CHOICE { + circularRegion CircularRegion, + rectangularRegion SequenceOfRectangularRegion, + polygonalRegion PolygonalRegion, + identifiedRegion SequenceOfIdentifiedRegion, + ... + } +``` + +### 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. + +Fields: +* center [**TwoDLocation**](#TwoDLocation)
        +* radius [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
        + +```asn1 +CircularRegion ::= SEQUENCE { + center TwoDLocation, + radius Uint16 + } +``` + +### 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. + +Fields: +* northWest [**TwoDLocation**](#TwoDLocation)
        +* southEast [**TwoDLocation**](#TwoDLocation)
        + +```asn1 +RectangularRegion ::= SEQUENCE { + northWest TwoDLocation, + southEast TwoDLocation + } +``` + + +### SequenceOfRectangularRegion + +This type is used for clarity of definitions. + +```asn1 +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.
        • +
        + +```asn1 +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. + +Fields: +* latitude [**Latitude**](#Latitude)
        +* longitude [**Longitude**](#Longitude)
        + +```asn1 +TwoDLocation ::= SEQUENCE { + latitude Latitude, + longitude Longitude + } +``` + +### 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.
        • +
        + +Fields: +* countryOnly [**CountryOnly**](#CountryOnly)
        +* countryAndRegions [**CountryAndRegions**](#CountryAndRegions)
        + +* countryAndSubregions [**CountryAndSubregions**](#CountryAndSubregions)
        + +```asn1 +IdentifiedRegion ::= CHOICE { + countryOnly CountryOnly, + countryAndRegions CountryAndRegions, + countryAndSubregions CountryAndSubregions, + ... + } +``` + + +### SequenceOfIdentifiedRegion + +This type is used for clarity of definitions. + +```asn1 +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). + +```asn1 +CountryOnly ::= Uint16 +``` + +### CountryAndRegions + +In this structure: + +Fields: +* countryOnly [**CountryOnly**](#CountryOnly)
        + is a CountryOnly as defined above. + + +* regions [**SequenceOfUint8**](#SequenceOfUint8)
        + +* 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. + + + +```asn1 +CountryAndRegions ::= SEQUENCE { + countryOnly CountryOnly, + regions SequenceOfUint8 + } +``` + +### 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: + +Fields: +* country [**CountryOnly**](#CountryOnly)
        + is a CountryOnly as defined above. + + +* regionAndSubregions [**SequenceOfRegionAndSubregions**](#SequenceOfRegionAndSubregions)
        + 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. + + + + +```asn1 +CountryAndSubregions ::= SEQUENCE { + country CountryOnly, + regionAndSubregions SequenceOfRegionAndSubregions + } +``` + +### 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: + +Fields: +* region [**Uint8**](Ieee1609Dot2BaseTypes.md#Uint8)
        + identifies a region within a country as specified under + CountryAndRegions. + + +* subregions [**SequenceOfUint16**](#SequenceOfUint16)
        + identifies one or more subregions as specified under + CountryAndSubregions. + + + + +```asn1 +RegionAndSubregions ::= SEQUENCE { + region Uint8, + subregions SequenceOfUint16 + } +``` + + +### SequenceOfRegionAndSubregions + +This type is used for clarity of definitions. + +```asn1 +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. + +Fields: +* latitude [**Latitude**](#Latitude)
        +* longitude [**Longitude**](#Longitude)
        + +* elevation [**Elevation**](#Elevation)
        + +```asn1 +ThreeDLocation ::= SEQUENCE { + latitude Latitude, + longitude Longitude, + elevation Elevation + } +``` + + +### 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. + +```asn1 +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. + +```asn1 +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. + +```asn1 +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. + +```asn1 +NinetyDegreeInt ::= INTEGER { + min (-900000000), + max (900000000), + unknown (900000001) + } (-900000000..900000001) +``` + + +### KnownLatitude + +The known latitudes are from -900,000,000 to +900,000,000 in 0.1 + microdegree intervals. + +```asn1 +KnownLatitude ::= NinetyDegreeInt (min..max) +``` + + +### UnknownLatitude + +The value 900,000,001 indicates that the latitude was not + available to the sender. + +```asn1 +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. + +```asn1 +OneEightyDegreeInt ::= INTEGER { + min (-1799999999), + max (1800000000), + unknown (1800000001) + } (-1799999999..1800000001) +``` + + +### KnownLongitude + +The known longitudes are from -1,799,999,999 to +1,800,000,000 in + 0.1 microdegree intervals. + +```asn1 +KnownLongitude ::= OneEightyDegreeInt (min..max) +``` + + +### UnknownLongitude + +The value 1,800,000,001 indicates that the longitude was not + available to the sender. + +```asn1 +UnknownLongitude ::= OneEightyDegreeInt (unknown) +``` + +### 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. + +Fields: +* ecdsaNistP256Signature [**EcdsaP256Signature**](#EcdsaP256Signature)
        +* ecdsaBrainpoolP256r1Signature [**EcdsaP256Signature**](#EcdsaP256Signature)
        + +* ecdsaBrainpoolP384r1Signature [**EcdsaP384Signature**](#EcdsaP384Signature)
        + + ..., +* ecdsaNistP384Signature [**EcdsaP384Signature**](#EcdsaP384Signature)
        + +```asn1 +Signature ::= CHOICE { + ecdsaNistP256Signature EcdsaP256Signature, + ecdsaBrainpoolP256r1Signature EcdsaP256Signature, + ..., + ecdsaBrainpoolP384r1Signature EcdsaP384Signature, + ecdsaNistP384Signature EcdsaP384Signature + } +``` + +### 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 +
        • +
        + +Fields: +* rSig [**EccP256CurvePoint**](Ieee1609Dot2BaseTypes.md#EccP256CurvePoint)
        +* sSig **OCTET STRING** (SIZE (32))
        + +```asn1 +EcdsaP256Signature ::= SEQUENCE { + rSig EccP256CurvePoint, + sSig OCTET STRING (SIZE (32)) + } +``` + +### 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
        • +
        + +Fields: +* rSig [**EccP384CurvePoint**](#EccP384CurvePoint)
        +* sSig **OCTET STRING** (SIZE (48))
        + +```asn1 +EcdsaP384Signature ::= SEQUENCE { + rSig EccP384CurvePoint, + sSig OCTET STRING (SIZE (48)) + } +``` + +### 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. + +Fields: +* 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)) + }
        + +```asn1 +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)) + } + } +``` + +### 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. + +Fields: +* 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)) + }
        + +```asn1 +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)) + } + } +``` + + +### 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. + +```asn1 +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. + +```asn1 +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: + +Fields: +* v [**EccP256CurvePoint**](Ieee1609Dot2BaseTypes.md#EccP256CurvePoint)
        + is the sender’s ephemeral public key, which is the output V from + encryption as specified in 5.3.4. + + +* c **OCTET STRING** (SIZE (16))
        + 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 **OCTET STRING** (SIZE (16))
        + is the authentication tag, which is the output tag from + encryption as specified in 5.3.4. + + + + +```asn1 +EciesP256EncryptedKey ::= SEQUENCE { + v EccP256CurvePoint, + c OCTET STRING (SIZE (16)), + t OCTET STRING (SIZE (16)) + } +``` + +### EncryptionKey + +This structure contains an encryption key, which may be a public or + a symmetric key. + +Fields: +* public [**PublicEncryptionKey**](Ieee1609Dot2BaseTypes.md#PublicEncryptionKey)
        +* symmetric [**SymmetricEncryptionKey**](Ieee1609Dot2BaseTypes.md#SymmetricEncryptionKey)
        + +```asn1 +EncryptionKey ::= CHOICE { + public PublicEncryptionKey, + symmetric SymmetricEncryptionKey + } +``` + +### 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. + +Fields: +* supportedSymmAlg [**SymmAlgorithm**](#SymmAlgorithm)
        +* publicKey [**BasePublicEncryptionKey**](#BasePublicEncryptionKey)
        + +```asn1 +PublicEncryptionKey ::= SEQUENCE { + supportedSymmAlg SymmAlgorithm, + publicKey BasePublicEncryptionKey + } +``` + +### 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. + +Fields: +* eciesNistP256 [**EccP256CurvePoint**](Ieee1609Dot2BaseTypes.md#EccP256CurvePoint)
        +* eciesBrainpoolP256r1 [**EccP256CurvePoint**](Ieee1609Dot2BaseTypes.md#EccP256CurvePoint)
        + +```asn1 +BasePublicEncryptionKey ::= CHOICE { + eciesNistP256 EccP256CurvePoint, + eciesBrainpoolP256r1 EccP256CurvePoint, + ... + } +``` + +### 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. + +Fields: +* ecdsaNistP256 [**EccP256CurvePoint**](Ieee1609Dot2BaseTypes.md#EccP256CurvePoint)
        +* ecdsaBrainpoolP256r1 [**EccP256CurvePoint**](Ieee1609Dot2BaseTypes.md#EccP256CurvePoint)
        + +* ecdsaBrainpoolP384r1 [**EccP384CurvePoint**](#EccP384CurvePoint)
        + + ..., +* ecdsaNistP384 [**EccP384CurvePoint**](#EccP384CurvePoint)
        + +```asn1 +PublicVerificationKey ::= CHOICE { + ecdsaNistP256 EccP256CurvePoint, + ecdsaBrainpoolP256r1 EccP256CurvePoint, + ..., + ecdsaBrainpoolP384r1 EccP384CurvePoint, + ecdsaNistP384 EccP384CurvePoint + } +``` + +### 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. + +Fields: +* aes128Ccm **OCTET STRING** (SIZE(16))
        +```asn1 +SymmetricEncryptionKey ::= CHOICE { + aes128Ccm OCTET STRING(SIZE(16)), + ... + } +``` + +### 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. + +Fields: +* psid [**Psid**](Ieee1609Dot2BaseTypes.md#Psid)
        +* ssp [**ServiceSpecificPermissions**](Ieee1609Dot2BaseTypes.md#ServiceSpecificPermissions) OPTIONAL
        + +```asn1 +PsidSsp ::= SEQUENCE { + psid Psid, + ssp ServiceSpecificPermissions OPTIONAL + } +``` + + +### SequenceOfPsidSsp + +This type is used for clarity of definitions. + +```asn1 +SequenceOfPsidSsp ::= SEQUENCE OF PsidSsp +``` + + +### Psid + +This type represents the PSID defined in IEEE Std 1609.12. + +```asn1 +Psid ::= INTEGER (0..MAX) +``` + + +### SequenceOfPsid + +This type is used for clarity of definitions. + +```asn1 +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. + +Fields: +* opaque **OCTET STRING** (SIZE(0..MAX))
        +* bitmapSsp [**BitmapSsp**](#BitmapSsp)
        + + ..., +```asn1 +ServiceSpecificPermissions ::= CHOICE { + opaque OCTET STRING (SIZE(0..MAX)), + ..., + bitmapSsp BitmapSsp + } +``` + + +### 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. + +```asn1 +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. + +Fields: +* psid [**Psid**](Ieee1609Dot2BaseTypes.md#Psid)
        + identifies the application area. + + +* sspRange [**SspRange**](#SspRange) OPTIONAL
        + 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. + + + + +```asn1 +PsidSspRange ::= SEQUENCE { + psid Psid, + sspRange SspRange OPTIONAL + } +``` + + +### SequenceOfPsidSspRange + +This type is used for clarity of definitions. + +```asn1 +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". + +Fields: +* opaque [**SequenceOfOctetString**](#SequenceOfOctetString)
        +* all **NULL**
        + +* bitmapSspRange [**BitmapSspRange**](#BitmapSspRange)
        + + ... , +```asn1 +SspRange ::= CHOICE { + opaque SequenceOfOctetString, + all NULL, + ... , + bitmapSspRange BitmapSspRange + } +``` + +### 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. + +Fields: +* sspValue **OCTET STRING** (SIZE(1..32))
        +* sspBitmask **OCTET STRING** (SIZE(1..32))
        + +```asn1 +BitmapSspRange ::= SEQUENCE { + sspValue OCTET STRING (SIZE(1..32)), + sspBitmask OCTET STRING (SIZE(1..32)) + } +``` + + +### SequenceOfOctetString + +This type is used for clarity of definitions. + +```asn1 +SequenceOfOctetString ::= + SEQUENCE (SIZE (0..MAX)) OF OCTET STRING (SIZE(0..MAX)) +``` + + +### 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 43 2 1 0
        Interpretation A A A RR 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. + +```asn1 +SubjectAssurance ::= OCTET STRING (SIZE(1)) +``` + + +### CrlSeries + +This integer identifies a series of CRLs issued under the authority + of a particular CRACA. + +```asn1 +CrlSeries ::= Uint16 +``` + + +### IValue + +This atomic type is used in the definition of other data structures. + +```asn1 +IValue ::= Uint16 +``` + + +### Hostname + +This is a UTF-8 string as defined in IETF RFC 3629. The contents + are determined by policy. + +```asn1 +Hostname ::= UTF8String (SIZE(0..255)) +``` + + +### LinkageValue + +This is the individual linkage value. See 5.1.3 and 7.3 for details + of use. + +```asn1 +LinkageValue ::= OCTET STRING (SIZE(9)) +``` + +### GroupLinkageValue + +This is the group linkage value. See 5.1.3 and 7.3 for details of + use. + +Fields: +* jValue **OCTET STRING** (SIZE(4))
        +* value **OCTET STRING** (SIZE(9))
        + +```asn1 +GroupLinkageValue ::= SEQUENCE { + jValue OCTET STRING (SIZE(4)), + value OCTET STRING (SIZE(9)) + } +``` + + +### LaId + +This structure contains a LA Identifier for use in the algorithms + specified in 5.1.3.4. + +```asn1 +LaId ::= OCTET STRING (SIZE(2)) +``` + + +### LinkageSeed + +This structure contains a linkage seed value for use in the + algorithms specified in 5.1.3.4. + +```asn1 +LinkageSeed ::= OCTET STRING (SIZE(16)) +``` + + + diff --git a/ieee1609dot2 b/ieee1609dot2 deleted file mode 160000 index ddf554e..0000000 --- a/ieee1609dot2 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ddf554e5e23398d578b9519f0e19682e3f058cfe -- GitLab From e2f4f8a4c63c751deed2cd8466f52865f6a07051 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Tue, 19 Jul 2022 13:43:51 +0200 Subject: [PATCH 28/66] fix asn2md: improve type detection --- asn2md.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/asn2md.py b/asn2md.py index 71ca8e2..004dcf6 100755 --- a/asn2md.py +++ b/asn2md.py @@ -57,7 +57,9 @@ RE_DOXY_PARAM = re.compile(r'^\s*@(?:param|field):?\s+([\w-]+)\s*(.*?)\n\s*$', r RE_DOXY_SECTION = re.compile(r"^\s*@(brief|note|(class|struct|param|field|details)\s+([-\w]+)):?(.*?)(?=\n\s*@|\n\s*\n|\Z)", re.MULTILINE | re.DOTALL) # RE_TYPE = re.compile(r'(([A-Z][\w-]*)\s*::=[\w \t]+(?:{+(.*?)}+)?.*?)\n\s*\n', re.MULTILINE | re.DOTALL) -RE_TYPE = re.compile(r'^\s*([A-Z][\w-]*)?\s*([{} \t:\w-]*?)?::=([\w \t]+.*?)\n\s*\n', re.MULTILINE | re.DOTALL) +#RE_TYPE = re.compile(r'^\s*([A-Z][\w-]*)?\s*([{} \t:\w-]*?)?::=([\w \t]+.*?)\n\s*\n', re.MULTILINE | re.DOTALL) +RE_TYPE = re.compile(r'^\s*([\w-]*?)?\s*([A-Z][\w-]*)\s*({[\s,:\w-]*?})?\s*::=\s*([\w \t]+.*?)\n\s*\n', re.MULTILINE | re.DOTALL) + RE_OPTIONS = re.compile(r'^\s*@options[\s:]+(.+)', re.MULTILINE) RE_DOXY_OTHER = re.compile(r'\^(\w+)', re.MULTILINE) @@ -142,7 +144,8 @@ def parseModule(mname, content): # parse types def repl_type (m, doc): - title = t = m.group(1) # type name + t = m.group(2) # type name + title = m.group(1) or t f_params = {} s_unit = '' s_category = '' @@ -212,14 +215,16 @@ def parseModule(mname, content): doc = '' ret = '' - if t is not None: + + if m.group(1) is None: + # this is a type definition. define anchor fields = '' ret = '\n### {1}\n'.format(t, title) + parseText(doc) # parse fields and get out fields descriptions - if m.group(3) is not None: + if m.group(4) is not None: # check if contain fields - fm = RE_TYPE_BODY.search(m.group(3)) + fm = RE_TYPE_BODY.search(m.group(4)) if fm is not None and fm.group(1) is not None: typeBody = fm.group(1).strip() if typeBody is not None: @@ -265,6 +270,7 @@ def parseModule(mname, content): if len(fields): ret = ret.strip() + '\n\n' + fTitle + fields else: + # This is a named value if title: ret = '### {}\n\n'.format(title) l = parseText(parseDoxyComments(doc)) -- GitLab From 179238879a57b3fb7bda4c399354161202bdb0c6 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Tue, 19 Jul 2022 13:45:08 +0200 Subject: [PATCH 29/66] tune IdObsPdu for better doc extraction --- EtsiTs103759.asn | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/EtsiTs103759.asn b/EtsiTs103759.asn index ea3f5dc..82581c6 100755 --- a/EtsiTs103759.asn +++ b/EtsiTs103759.asn @@ -273,9 +273,12 @@ SetObsPdu C-OBS-PDU ::= { /** * @brief This data type contains the identifier of the type of observed PDU. + * + * @param c-ObsPdu-etsiGn The PDU is of ETSI GeoNetworking type + * @param c-ObsPdu-ieee1609Dot2Data The PDU contains the @ref Ieee1609Dot2Data structure + * @param c-ObsPdu-wsmp The PDU contains the WSMP data type defined in IEEE 1609.3 */ IdObsPdu ::= Uint8 - c-ObsPdu-etsiGn IdObsPdu ::= 1 c-ObsPdu-ieee1609Dot2Data IdObsPdu ::= 2 c-ObsPdu-wsmp IdObsPdu ::= 3 -- GitLab From af9eb9b0232a8393d3031e1f2d0e9616ea640063 Mon Sep 17 00:00:00 2001 From: "ASN.1 Checker" Date: Tue, 19 Jul 2022 11:52:21 +0000 Subject: [PATCH 30/66] Documentation update --- docs/EtsiTs103097ExtensionModule.md | 34 +- docs/EtsiTs103097Module.md | 18 +- docs/EtsiTs103759.md | 215 +--- docs/EtsiTs103759AsrAppAgnostic.md | 4 +- docs/EtsiTs103759AsrCam.md | 50 +- docs/EtsiTs103759AsrDenm.md | 4 +- docs/EtsiTs103759MbrCommonObservations.md | 350 ++----- docs/ITS-Container.md | 404 +++----- docs/Ieee1609Dot2.md | 992 +++--------------- docs/Ieee1609Dot2BaseTypes.md | 1153 ++------------------- 10 files changed, 531 insertions(+), 2693 deletions(-) diff --git a/docs/EtsiTs103097ExtensionModule.md b/docs/EtsiTs103097ExtensionModule.md index be8779e..a05014e 100644 --- a/docs/EtsiTs103097ExtensionModule.md +++ b/docs/EtsiTs103097ExtensionModule.md @@ -5,18 +5,14 @@ * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-3 (3)} WITH SUCCESSORS*
        ## Data Elements: +### ExtensionModuleVersion -### ExtensionModuleVersion ```asn1 ExtensionModuleVersion::= INTEGER(1) ``` -### Extension +### Extension -Fields: -* id [**EXT-TYPE**](#EXT-TYPE) .&extId({ExtensionTypes})
        -* content [**EXT-TYPE**](#EXT-TYPE) .&ExtContent({ExtensionTypes}{@.id})
        - ```asn1 Extension {EXT-TYPE : ExtensionTypes} ::= SEQUENCE { id EXT-TYPE.&extId({ExtensionTypes}), @@ -24,10 +20,8 @@ Extension {EXT-TYPE : ExtensionTypes} ::= SEQUENCE { } ``` -### EXT-TYPE +### EXT-TYPE -Fields: -* extId [**ExtId**](#ExtId)
        ```asn1 EXT-TYPE ::= CLASS { &extId ExtId, @@ -35,28 +29,28 @@ EXT-TYPE ::= CLASS { } WITH SYNTAX {&ExtContent IDENTIFIED BY &extId} ``` +### ExtId -### ExtId ```asn1 ExtId ::= INTEGER(0..255) ``` +### EtsiOriginatingHeaderInfoExtension -### EtsiOriginatingHeaderInfoExtension ```asn1 EtsiOriginatingHeaderInfoExtension ::= Extension{{EtsiTs103097HeaderInfoExtensions}} ``` +### EtsiTs103097HeaderInfoExtensionId -### EtsiTs103097HeaderInfoExtensionId ```asn1 EtsiTs103097HeaderInfoExtensionId ::= ExtId etsiTs102941CrlRequestId EtsiTs103097HeaderInfoExtensionId ::= 1 etsiTs102941DeltaCtlRequestId EtsiTs103097HeaderInfoExtensionId ::= 2 ``` +### EtsiTs103097HeaderInfoExtensions -### EtsiTs103097HeaderInfoExtensions ```asn1 EtsiTs103097HeaderInfoExtensions EXT-TYPE ::= { { EtsiTs102941CrlRequest IDENTIFIED BY etsiTs102941CrlRequestId } | @@ -65,12 +59,8 @@ EtsiTs103097HeaderInfoExtensions EXT-TYPE ::= { } ``` -### EtsiTs102941CrlRequest +### EtsiTs102941CrlRequest -Fields: -* issuerId [**HashedId8**](Ieee1609Dot2BaseTypes.md#HashedId8)
        -* lastKnownUpdate [**Time32**](Ieee1609Dot2BaseTypes.md#Time32) OPTIONAL
        - ```asn1 EtsiTs102941CrlRequest::= SEQUENCE { issuerId HashedId8, @@ -78,12 +68,8 @@ EtsiTs102941CrlRequest::= SEQUENCE { } ``` -### EtsiTs102941CtlRequest +### EtsiTs102941CtlRequest -Fields: -* issuerId [**HashedId8**](Ieee1609Dot2BaseTypes.md#HashedId8)
        -* lastKnownCtlSequence **INTEGER** (0..255) OPTIONAL
        - ```asn1 EtsiTs102941CtlRequest::= SEQUENCE { issuerId HashedId8, @@ -91,8 +77,8 @@ EtsiTs102941CtlRequest::= SEQUENCE { } ``` +### EtsiTs102941DeltaCtlRequest -### EtsiTs102941DeltaCtlRequest ```asn1 EtsiTs102941DeltaCtlRequest::= EtsiTs102941CtlRequest ``` diff --git a/docs/EtsiTs103097Module.md b/docs/EtsiTs103097Module.md index 91d7844..7ee5463 100644 --- a/docs/EtsiTs103097Module.md +++ b/docs/EtsiTs103097Module.md @@ -7,8 +7,8 @@ * **[EtsiTs103097ExtensionModule](EtsiTs103097ExtensionModule.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) secHeaders(103097) extension(2) major-version-1(1) minor-version-1(1)}*
        ## Data Elements: +### EtsiTs103097Certificate -### EtsiTs103097Certificate ```asn1 EtsiTs103097Certificate::= Certificate (WITH COMPONENTS{..., toBeSigned (WITH COMPONENTS{..., @@ -22,8 +22,8 @@ EtsiTs103097Certificate::= Certificate (WITH COMPONENTS{..., }) ``` +### EtsiTs103097Data -### EtsiTs103097Data ```asn1 EtsiTs103097Data::=Ieee1609Dot2Data (WITH COMPONENTS {..., content (WITH COMPONENTS {..., @@ -53,8 +53,8 @@ EtsiTs103097Data::=Ieee1609Dot2Data (WITH COMPONENTS {..., }) ``` +### EtsiTs103097Data-Unsecured -### EtsiTs103097Data-Unsecured ```asn1 EtsiTs103097Data-Unsecured {ToBeSentDataContent} ::= EtsiTs103097Data (WITH COMPONENTS {..., content (WITH COMPONENTS { @@ -63,8 +63,8 @@ EtsiTs103097Data-Unsecured {ToBeSentDataContent} ::= EtsiTs103097Data (WITH COMP }) ``` +### EtsiTs103097Data-Signed -### EtsiTs103097Data-Signed ```asn1 EtsiTs103097Data-Signed {ToBeSignedDataContent} ::= EtsiTs103097Data (WITH COMPONENTS {..., content (WITH COMPONENTS { @@ -83,8 +83,8 @@ EtsiTs103097Data-Signed {ToBeSignedDataContent} ::= EtsiTs103097Data (WITH COMPO }) ``` +### EtsiTs103097Data-SignedExternalPayload -### EtsiTs103097Data-SignedExternalPayload ```asn1 EtsiTs103097Data-SignedExternalPayload ::= EtsiTs103097Data (WITH COMPONENTS {..., content (WITH COMPONENTS { @@ -101,8 +101,8 @@ EtsiTs103097Data-SignedExternalPayload ::= EtsiTs103097Data (WITH COMPONENTS {.. }) ``` +### EtsiTs103097Data-Encrypted -### EtsiTs103097Data-Encrypted ```asn1 EtsiTs103097Data-Encrypted {ToBeEncryptedDataContent} ::= EtsiTs103097Data (WITH COMPONENTS {..., content (WITH COMPONENTS { @@ -117,14 +117,14 @@ EtsiTs103097Data-Encrypted {ToBeEncryptedDataContent} ::= EtsiTs103097Data (WITH }) ``` +### EtsiTs103097Data-SignedAndEncrypted -### EtsiTs103097Data-SignedAndEncrypted ```asn1 EtsiTs103097Data-SignedAndEncrypted {ToBesignedAndEncryptedDataContent} ::= EtsiTs103097Data-Encrypted {EtsiTs103097Data-Signed {ToBesignedAndEncryptedDataContent}} ``` +### EtsiTs103097Data-Encrypted-Unicast -### EtsiTs103097Data-Encrypted-Unicast ```asn1 EtsiTs103097Data-Encrypted-Unicast {ToBeEncryptedDataContent} ::= EtsiTs103097Data-Encrypted { EtsiTs103097Data-Unsecured{ToBeEncryptedDataContent}} (WITH COMPONENTS {..., content (WITH COMPONENTS { @@ -135,8 +135,8 @@ EtsiTs103097Data-Encrypted-Unicast {ToBeEncryptedDataContent} ::= EtsiTs103097Da }) ``` +### EtsiTs103097Data-SignedAndEncrypted-Unicast -### EtsiTs103097Data-SignedAndEncrypted-Unicast ```asn1 EtsiTs103097Data-SignedAndEncrypted-Unicast {ToBesignedAndEncryptedDataContent} ::= EtsiTs103097Data-Encrypted {EtsiTs103097Data-Signed {ToBesignedAndEncryptedDataContent}} (WITH COMPONENTS {..., content (WITH COMPONENTS { diff --git a/docs/EtsiTs103759.md b/docs/EtsiTs103759.md index 3d3f6ff..55a1c3f 100644 --- a/docs/EtsiTs103759.md +++ b/docs/EtsiTs103759.md @@ -13,38 +13,19 @@ * **[EtsiTs103759AsrDenm](EtsiTs103759AsrDenm.md)** *{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-0(0)} WITH SUCCESSORS*
        ## Data Elements: -### EtsiTs103759Data -This data type is the general PDU for a misbehaviour report from an - ITS-S to the MA responsible for reports of that type. AID-specific modules - (EtsiTs103759AsrAppAgnostic, EtsiTs103759AsrCam, EtsiTs103759AsrDenm) have - been imported using WITH SUCCESSORS to enable importing one or more of those - modules with minor-version greater than 0 without requiring any change in the - import statements. At least one of these AID-specific modules shall have - minor-version greater than 0. - -Fields: -* version [**Uint8**](Ieee1609Dot2BaseTypes.md#Uint8)
        - contains the version number of this PDU definition. For this - version of this data type it shall be equal to 2. - +### EtsiTs103759Data -* generationTime [**Time64**](Ieee1609Dot2BaseTypes.md#Time64)
        - contains information on when this PDU was generated. +* `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 [**ThreeDLocation**](Ieee1609Dot2BaseTypes.md#ThreeDLocation)
        - is the location at which the last observation of +* `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 [**AidSpecificReport**](#AidSpecificReport)
        - contains the AID-specific misbehaviour report. +* `report` contains the AID-specific misbehaviour report. - - ```asn1 EtsiTs103759Data ::= SEQUENCE { version Uint8, @@ -54,16 +35,8 @@ EtsiTs103759Data ::= SEQUENCE { } ``` +### EtsiTs103759Data-SignedAndEncrypted-Unicast -### EtsiTs103759Data-SignedAndEncrypted-Unicast -This structure is the SPDU used to send a signed and encrypted - EtsiTs103759Data to the MA. For the signature to be valid the signing - certificate shall conform to the authorization ticket profile given in - clause 7.2.1 of ETSI TS 103 097 v2.1.1, where the appPermissions field in - the authorization ticket allows signing misbehaviour reports. The signed - EtsiTs103759Data shall be encrypted to the MA using the encryptionKey in - the MA's certificate. - ```asn1 EtsiTs103759Data-SignedAndEncrypted-Unicast ::= EtsiTs103097Data-SignedAndEncrypted-Unicast { @@ -71,23 +44,14 @@ EtsiTs103759Data-SignedAndEncrypted-Unicast ::= } ``` -### 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. +### AidSpecificReport -Fields: -* aid [**C-ASR**](#C-ASR) .&aid ({SetAsr})
        - contains the respective ITS-AID. +* `aid` contains the respective ITS-AID. - -* content [**C-ASR**](#C-ASR) .&Content ({SetAsr}{@.aid})
        - contains the report contents, e.g., AsrCam. This will be a +* `content` contains the report contents, e.g., AsrCam. This will be a TemplateAsr instantiated with AID-specific Information Object Sets. - - ```asn1 AidSpecificReport ::= SEQUENCE { aid C-ASR.&aid ({SetAsr}), @@ -95,22 +59,16 @@ AidSpecificReport ::= SEQUENCE { } ``` -### C-ASR -This data type defines the IOC for AidSpecificReport. +### C-ASR -Fields: -* aid [**Psid**](Ieee1609Dot2BaseTypes.md#Psid) UNIQUE
        - contains the globally unique reference identifier of an +* `aid` contains the globally unique reference identifier of an AID-specific misbehaviour report. - - contains the open type of the PDU identified by aid. This +* `Content` contains the open type of the PDU identified by aid. This will be a TemplateAsr instantiated with AID-specific Information Object Sets. - - ```asn1 C-ASR ::= CLASS { &aid Psid UNIQUE, @@ -118,11 +76,8 @@ C-ASR ::= CLASS { } WITH SYNTAX {&Content IDENTIFIED BY &aid} ``` +### SetAsr -### 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. - ```asn1 SetAsr C-ASR ::= { {AsrAppAgnostic IDENTIFIED BY c-AsrAppAgnostic} | @@ -132,6 +87,8 @@ SetAsr C-ASR ::= { } ``` +### c-AsrAppAgnostic + >>> NOTE: This value is used for suspicious observations that are not @@ -141,14 +98,20 @@ NOTE: This value is used for suspicious observations that are not c-AsrAppAgnostic Psid ::= 270549119 ``` +### c-AsrCam + ```asn1 c-AsrCam Psid ::= 36 ``` +### c-AsrDenm + ```asn1 c-AsrDenm Psid ::= 37 ``` +### TemplateAsr + * `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 @@ -168,6 +131,8 @@ c-AsrDenm Psid ::= 37 ```asn1 +TemplateAsr { + C-ASR-OBS-BY-TGT: ObservationSet, C-ASR-EV: NonV2xPduEvidenceSet } ::= SEQUENCE { observations SEQUENCE (SIZE(1..MAX)) OF ObservationsByTarget {{ObservationSet}}, @@ -177,24 +142,16 @@ c-AsrDenm Psid ::= 37 } ``` -### ObservationsByTarget -This data type contains all of the observations related to a - particular "target" property, e.g., speed or security. +### ObservationsByTarget -Fields: -* tgtId [**C-ASR-OBS-BY-TGT**](#C-ASR-OBS-BY-TGT) .&id ({SetAsrObsByTgt})
        - identifies the "target" of the observation, e.g., speed. This +* `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 **SEQUENCE** OF C-ASR-OBS-BY-TGT.&Val
        - contains all the observations related to that target. +* `observations` contains all the observations related to that target. The observations are drawn from the provided Information Object Set. - - ```asn1 ObservationsByTarget {C-ASR-OBS-BY-TGT: SetAsrObsByTgt} ::= SEQUENCE { tgtId C-ASR-OBS-BY-TGT.&id ({SetAsrObsByTgt}), @@ -203,34 +160,24 @@ ObservationsByTarget {C-ASR-OBS-BY-TGT: SetAsrObsByTgt} ::= SEQUENCE { } ``` +### C-ASR-OBS-BY-TGT -### C-ASR-OBS-BY-TGT -This is the Information Object Class used to define observations- - -by-target. - ```asn1 C-ASR-OBS-BY-TGT ::= C-2ENT ``` -### MbSingleObservation -This data type contains a single misbehaviour observation. +### MbSingleObservation -Fields: -* obsId [**C-ASR-SINGLE-OBS**](#C-ASR-SINGLE-OBS) .&id ({SetMbSingleObs})
        - identifies the observation within the set of observations +* `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 [**C-ASR-SINGLE-OBS**](#C-ASR-SINGLE-OBS) .&Val ({SetMbSingleObs}{@.obsId})
        - contains any parameters relevant to the observation. The +* `obs` contains any parameters relevant to the observation. The observations are drawn from the provided Information Object Set. - - ```asn1 MbSingleObservation {C-ASR-SINGLE-OBS: SetMbSingleObs} ::= SEQUENCE { obsId C-ASR-SINGLE-OBS.&id ({SetMbSingleObs}), @@ -238,22 +185,18 @@ MbSingleObservation {C-ASR-SINGLE-OBS: SetMbSingleObs} ::= SEQUENCE { } ``` +### C-ASR-SINGLE-OBS -### C-ASR-SINGLE-OBS -This is the Information Object Class used to define single - observations. - ```asn1 C-ASR-SINGLE-OBS ::= C-2ENT ``` -### V2xPduStream -This data type contains PDU stream from a single sender. +### V2xPduStream -Fields: -* type [**C-OBS-PDU**](#C-OBS-PDU) .&id ({SetObsPdu})
        -* v2xPdus **SEQUENCE** (SIZE(1..255)) OF C-OBS-PDU.&Val
        - is the PDU stream, i.e., a series of PDUs for the same AID +* `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, @@ -263,10 +206,7 @@ Fields: 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 [**EtsiTs103097Certificate**](EtsiTs103097Module.md#EtsiTs103097Certificate) OPTIONAL
        - contains the certificate that signed the PDUs if it is +* `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 @@ -275,21 +215,10 @@ Fields: will be in a separate V2xPduStream instance within the v2xPduEvidence field of the TemplateAsr. - - - ({SetObsPdu}{@.type}), -* subjectPduIndex [**Uint8**](Ieee1609Dot2BaseTypes.md#Uint8)
        - identifies which PDU within the v2xPdus sequence +* `subjectPduIndex` identifies which PDU within the v2xPdus sequence is the "subject PDU", i.e., the PDU associated with the observations. - - -* id
        - identifies the type of the PDU, meaning in this case - what protocol headers are included from the stack. - - ```asn1 V2xPduStream ::= SEQUENCE { type C-OBS-PDU.&id ({SetObsPdu}), @@ -301,19 +230,14 @@ V2xPduStream ::= SEQUENCE { } ``` +### C-OBS-PDU -### C-OBS-PDU -This is the Information Object Class used to define different types - of observed PDUs. - ```asn1 C-OBS-PDU ::= C-2ENT ``` +### SetObsPdu -### SetObsPdu -This data type contains the IOS for the observed PDU. - ```asn1 SetObsPdu C-OBS-PDU ::= { {ObsPduEtsiGn BY c-ObsPdu-etsiGn} | @@ -323,65 +247,47 @@ SetObsPdu C-OBS-PDU ::= { } ``` +### IdObsPdu -### IdObsPdu -This data type contains the identifier of the type of observed PDU. - -```asn1 -IdObsPdu ::= Uint8 -``` +* `c-ObsPdu-etsiGn` The PDU is of ETSI GeoNetworking type + +* `c-ObsPdu-ieee1609Dot2Data` The PDU contains the [**Ieee1609Dot2Data**](#Ieee1609Dot2Data) structure + +* `c-ObsPdu-wsmp` The PDU contains the WSMP data type defined in IEEE 1609.3 + ```asn1 +IdObsPdu ::= Uint8 c-ObsPdu-etsiGn IdObsPdu ::= 1 c-ObsPdu-ieee1609Dot2Data IdObsPdu ::= 2 c-ObsPdu-wsmp IdObsPdu ::= 3 ``` +### ObsPduEtsiGn -### 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. - ```asn1 ObsPduEtsiGn ::= Opaque ``` +### ObsPduIeee1609Dot2Data -### ObsPduIeee1609Dot2Data -ObsPduIeee1609Dot2Data contains an Ieee1609Dot2Data, i.e., the first - byte of every PDU in the v2xPdus array is the version byte of the - Ieee1609Dot2Data. - ```asn1 ObsPduIeee1609Dot2Data ::= Opaque ``` +### ObsPduWsmp -### 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. - ```asn1 ObsPduWsmp ::= Opaque ``` -### NonV2xPduEvidenceItem -This data type contains evidence, which may be referenced by one or - more observations. - -Fields: -* id [**C-ASR-EV**](#C-ASR-EV) .&id ({SetMbEv})
        - identifies the evidence type. +### NonV2xPduEvidenceItem +* `id` identifies the evidence type. -* evidence [**C-ASR-EV**](#C-ASR-EV) .&Val ({SetMbEv}{@.id})
        - contains the evidence. +* `evidence` contains the evidence. - - ```asn1 NonV2xPduEvidenceItem {C-ASR-EV: SetMbEv} ::= SEQUENCE { id C-ASR-EV.&id ({SetMbEv}), @@ -389,9 +295,7 @@ NonV2xPduEvidenceItem {C-ASR-EV: SetMbEv} ::= SEQUENCE { } ``` - -### C-ASR-EV -This is the Information Object Class used to define evidence. +### C-ASR-EV >>> @@ -401,13 +305,8 @@ 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 -Fields: -* id [**Uint8**](Ieee1609Dot2BaseTypes.md#Uint8)
        ```asn1 C-2ENT ::= CLASS { &id Uint8, diff --git a/docs/EtsiTs103759AsrAppAgnostic.md b/docs/EtsiTs103759AsrAppAgnostic.md index ad252af..c85274e 100644 --- a/docs/EtsiTs103759AsrAppAgnostic.md +++ b/docs/EtsiTs103759AsrAppAgnostic.md @@ -2,10 +2,8 @@ OID: _{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-0(0)}_ ## Data Elements: +### AsrAppAgnostic -### AsrAppAgnostic -This data type is defined as NULL for this version of the standard. - ```asn1 AsrAppAgnostic ::= NULL ``` diff --git a/docs/EtsiTs103759AsrCam.md b/docs/EtsiTs103759AsrCam.md index 96051db..ad46940 100644 --- a/docs/EtsiTs103759AsrCam.md +++ b/docs/EtsiTs103759AsrCam.md @@ -9,20 +9,20 @@ * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-3(3)} WITH SUCCESSORS*
        ## Data Elements: +### AsrCam -### AsrCam -This data type is for reporting CAM issues. - ```asn1 AsrCam ::= TemplateAsr {{SetMbObsTgtsCam}, {SetMbEvCam}} ``` +### IdCamTgt -### IdCamTgt ```asn1 IdCamTgt ::= Uint8 ``` +### c-CamTgt-BeaconCommon + ```asn1 c-CamTgt-BeaconCommon IdCamTgt ::= 0 c-CamTgt-StaticCommon IdCamTgt ::= 1 @@ -32,22 +32,9 @@ 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. - - - - - - +### SetMbObsTgtsCam - - `Speed-ChangeTooLarge`: The acceleration calculated from the change - in speedValue of two consecutive CAMs meets the trigger conditions of - LongAcc-ValueTooLarge. - -* SetMbObsCompleteBeacon
        - - `Beacon-IntervalTooSmall`: The difference between the generation +* `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 @@ -59,18 +46,14 @@ This is a complete set of observations for CAM. Application-specific 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 +* `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 +* `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 @@ -94,15 +77,11 @@ This is a complete set of observations for CAM. Application-specific generationLocation in the security headerInfo is outside the region in the certificate. - -* SetMbObsEtsiOnlyPosition
        - - `Position-ChangeTooLarge`: The speed calculated from the change in +* `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 +* `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., @@ -121,15 +100,12 @@ This is a complete set of observations for CAM. Application-specific 9 m/s2 (see trigger conditions for LongAcc-ValueTooLarge), max attainable speed is sqrt(2*9*50) m/s, i.e., 3,000 cm/s.) - -* SetMbObsEtsiOnlyLongAcc
        - - `LongAcc-ValueTooLarge`: The longitudinalAcceleration is greater +* `SetMbObsEtsiOnlyLongAcc` - `LongAcc-ValueTooLarge`: The longitudinalAcceleration is greater than 90 dm/s2. (Typical \mu (coefficient of friction between asphalt and rubber) is 0.9, so maximum possible acceleration is 0.9*9.8 m/s2, i.e., 88.2 dm/s2.) - ```asn1 SetMbObsTgtsCam C-ASR-OBS-BY-TGT ::= { {MbSingleObservation{{SetMbObsCompleteBeacon}} BY @@ -148,10 +124,8 @@ SetMbObsTgtsCam C-ASR-OBS-BY-TGT ::= { } ``` +### SetMbEvCam -### SetMbEvCam -This data type defines the IOS for CAM Evidence. - ```asn1 SetMbEvCam C-ASR-EV ::= { ... diff --git a/docs/EtsiTs103759AsrDenm.md b/docs/EtsiTs103759AsrDenm.md index 2056ba6..f676989 100644 --- a/docs/EtsiTs103759AsrDenm.md +++ b/docs/EtsiTs103759AsrDenm.md @@ -2,10 +2,8 @@ OID: _{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-0(0)}_ ## Data Elements: +### AsrDenm -### AsrDenm -This data type is defined as NULL for version 0 of this file. - ```asn1 AsrDenm ::= NULL ``` diff --git a/docs/EtsiTs103759MbrCommonObservations.md b/docs/EtsiTs103759MbrCommonObservations.md index 26bbd80..28ee76b 100644 --- a/docs/EtsiTs103759MbrCommonObservations.md +++ b/docs/EtsiTs103759MbrCommonObservations.md @@ -7,48 +7,33 @@ * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-3(3)} WITH SUCCESSORS*
        ## Data Elements: +### IdMbObs -### IdMbObs -Identifier type for observations: synonym for Uint8 - ```asn1 IdMbObs ::= Uint8 ``` +### Beacon-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. - ```asn1 Beacon-IntervalTooSmall ::= NULL ``` +### c-ObsBeacon-IntervalTooSmall + ```asn1 c-ObsBeacon-IntervalTooSmall IdMbObs::= 1 ``` +### obs-Beacon-IntervalTooSmall + ```asn1 obs-Beacon-IntervalTooSmall C-ASR-SINGLE-OBS ::= {Beacon-IntervalTooSmall BY c-ObsBeacon-IntervalTooSmall} ``` +### SetMbObsCompleteBeacon -### SetMbObsCompleteBeacon ```asn1 SetMbObsCompleteBeacon C-ASR-SINGLE-OBS ::= { obs-Beacon-IntervalTooSmall, @@ -56,39 +41,27 @@ SetMbObsCompleteBeacon C-ASR-SINGLE-OBS ::= { } ``` +### Static-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. - ```asn1 Static-Change ::= BIT STRING ``` +### c-ObsStatic-Change + ```asn1 c-ObsStatic-Change IdMbObs::= 1 ``` +### obs-Static-Change + ```asn1 obs-Static-Change C-ASR-SINGLE-OBS ::= {Static-Change BY c-ObsStatic-Change} ``` +### SetMbObsCompleteStatic -### SetMbObsCompleteStatic ```asn1 SetMbObsCompleteStatic C-ASR-SINGLE-OBS ::= { obs-Static-Change, @@ -96,162 +69,50 @@ SetMbObsCompleteStatic C-ASR-SINGLE-OBS ::= { } ``` +### Security-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. - ```asn1 Security-MessageIdIncWithHeaderInfo ::= NULL ``` +### Security-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. - ```asn1 Security-HeaderIncWithSecurityProfile ::= NULL ``` +### Security-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. - ```asn1 Security-HeaderPsidIncWithCertificate ::= NULL ``` +### Security-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. - ```asn1 Security-MessageIncWithSsp ::= NULL ``` +### Security-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. - ```asn1 Security-HeaderTimeOutsideCertificateValidity ::= NULL ``` +### Security-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. - ```asn1 Security-MessageLocationOutsideCertificateValidity ::= NULL ``` +### Security-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. - ```asn1 Security-HeaderLocationOutsideCertificateValidity ::= NULL ``` +### c-ObsSecurity-MessageIdIncWithHeaderInfo + ```asn1 c-ObsSecurity-MessageIdIncWithHeaderInfo IdMbObs ::= 1 c-ObsSecurity-HeaderIncWithSecurityProfile IdMbObs ::= 2 @@ -262,6 +123,8 @@ c-ObsSecurity-MessageLocationOutsideCertificateValidity IdMbObs ::= 6 c-ObsSecurity-HeaderLocationOutsideCertificateValidity IdMbObs ::= 7 ``` +### obs-Security-MessageIdIncWithHeaderInfo + ```asn1 obs-Security-MessageIdIncWithHeaderInfo C-ASR-SINGLE-OBS ::= { Security-MessageIdIncWithHeaderInfo BY @@ -269,6 +132,8 @@ obs-Security-MessageIdIncWithHeaderInfo C-ASR-SINGLE-OBS ::= { } ``` +### obs-Security-HeaderIncWithSecurityProfile + ```asn1 obs-Security-HeaderIncWithSecurityProfile C-ASR-SINGLE-OBS ::= { Security-HeaderIncWithSecurityProfile BY @@ -276,6 +141,8 @@ obs-Security-HeaderIncWithSecurityProfile C-ASR-SINGLE-OBS ::= { } ``` +### obs-Security-HeaderPsidIncWithCertificate + ```asn1 obs-Security-HeaderPsidIncWithCertificate C-ASR-SINGLE-OBS ::= { Security-HeaderPsidIncWithCertificate BY @@ -283,12 +150,16 @@ obs-Security-HeaderPsidIncWithCertificate C-ASR-SINGLE-OBS ::= { } ``` +### obs-Security-MessageIncWithSsp + ```asn1 obs-Security-MessageIncWithSsp C-ASR-SINGLE-OBS ::= { Security-MessageIncWithSsp BY c-ObsSecurity-MessageIncWithSsp } ``` +### obs-Security-HeaderTimeOutsideCertificateValidity + ```asn1 obs-Security-HeaderTimeOutsideCertificateValidity C-ASR-SINGLE-OBS ::= { Security-HeaderTimeOutsideCertificateValidity BY @@ -296,30 +167,28 @@ obs-Security-HeaderTimeOutsideCertificateValidity C-ASR-SINGLE-OBS ::= { } ``` -### C-ASR-SINGLE-OBS +### obs-Security-MessageLocationOutsideCertificateValidity -Fields: -* Security-MessageLocationOutsideCertificateValidity [**BY**](#BY)
        ```asn1 -C-ASR-SINGLE-OBS ::= { +obs-Security-MessageLocationOutsideCertificateValidity + C-ASR-SINGLE-OBS ::= { Security-MessageLocationOutsideCertificateValidity BY c-ObsSecurity-MessageLocationOutsideCertificateValidity } ``` -### C-ASR-SINGLE-OBS +### obs-Security-HeaderLocationOutsideCertificateValidity -Fields: -* Security-HeaderLocationOutsideCertificateValidity [**BY**](#BY)
        ```asn1 -C-ASR-SINGLE-OBS ::= { +obs-Security-HeaderLocationOutsideCertificateValidity + C-ASR-SINGLE-OBS ::= { Security-HeaderLocationOutsideCertificateValidity BY c-ObsSecurity-HeaderLocationOutsideCertificateValidity } ``` +### SetMbObsCompleteSecurity -### SetMbObsCompleteSecurity ```asn1 SetMbObsCompleteSecurity C-ASR-SINGLE-OBS ::= { obs-Security-MessageIdIncWithHeaderInfo | @@ -333,70 +202,60 @@ SetMbObsCompleteSecurity C-ASR-SINGLE-OBS ::= { } ``` +### Pos-IncWithPrev-TooSmall -### Pos-IncWithPrev-TooSmall ```asn1 Pos-IncWithPrev-TooSmall ::= NULL ``` -### Pos-IncWithPrev-TooFar +### Pos-IncWithPrev-TooFar -Fields: -* gpsDrift [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
        ```asn1 Pos-IncWithPrev-TooFar ::= SEQUENCE { gpsDrift Uint16 } ``` +### Position-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. - ```asn1 Position-ChangeTooLarge ::= NULL ``` +### c-ObsPos-IncWithPrev-TooSmall + ```asn1 c-ObsPos-IncWithPrev-TooSmall IdMbObs ::= 2 c-ObsPos-IncWithPrev-TooFar IdMbObs ::= 3 c-ObsPosition-ChangeTooLarge IdMbObs ::= 4 ``` +### obs-Pos-IncWithPrev-TooSmall + ```asn1 obs-Pos-IncWithPrev-TooSmall C-ASR-SINGLE-OBS ::= { Pos-IncWithPrev-TooSmall BY c-ObsPos-IncWithPrev-TooSmall } ``` +### obs-Pos-IncWithPrev-TooFar + ```asn1 obs-Pos-IncWithPrev-TooFar C-ASR-SINGLE-OBS ::= { Pos-IncWithPrev-TooFar BY c-ObsPos-IncWithPrev-TooFar } ``` +### obs-Position-ChangeTooLarge + ```asn1 obs-Position-ChangeTooLarge C-ASR-SINGLE-OBS ::= { Position-ChangeTooLarge BY c-ObsPosition-ChangeTooLarge } ``` +### SetMbObsPosition -### SetMbObsPosition ```asn1 SetMbObsPosition C-ASR-SINGLE-OBS ::= { obs-Pos-IncWithPrev-TooSmall | @@ -406,8 +265,8 @@ SetMbObsPosition C-ASR-SINGLE-OBS ::= { } ``` +### SetMbObsEtsiOnlyPosition -### SetMbObsEtsiOnlyPosition ```asn1 SetMbObsEtsiOnlyPosition C-ASR-SINGLE-OBS ::= { obs-Position-ChangeTooLarge, @@ -415,80 +274,34 @@ SetMbObsEtsiOnlyPosition C-ASR-SINGLE-OBS ::= { } ``` -### Speed-ValueTooLarge-ThresholdNoContext +### Speed-ValueTooLarge-ThresholdNoContext -Fields: -* threshold [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
        ```asn1 Speed-ValueTooLarge-ThresholdNoContext ::= SEQUENCE { threshold Uint16 } ``` +### Speed-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. - ```asn1 Speed-ValueTooLarge-VehicleType ::= NULL ``` +### Speed-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. - ```asn1 Speed-ValueTooLarge-DriveDirectionReverse ::= NULL ``` +### Speed-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. - ```asn1 Speed-ChangeTooLarge ::= NULL ``` +### c-ObsSpeed-ValueTooLarge-ThresholdNoContext + ```asn1 c-ObsSpeed-ValueTooLarge-ThresholdNoContext IdMbObs::= 2 c-ObsSpeed-ValueTooLarge-VehicleType IdMbObs::= 3 @@ -496,12 +309,16 @@ c-ObsSpeed-ValueTooLarge-DriveDirectionReverse IdMbObs::= 4 c-ObsSpeed-ChangeTooLarge IdMbObs::= 5 ``` +### obs-Speed-ValueTooLarge-VehicleType + ```asn1 obs-Speed-ValueTooLarge-VehicleType C-ASR-SINGLE-OBS ::= { Speed-ValueTooLarge-VehicleType BY c-ObsSpeed-ValueTooLarge-VehicleType } ``` +### obs-Speed-ValueTooLarge-ThresholdNoContext + ```asn1 obs-Speed-ValueTooLarge-ThresholdNoContext C-ASR-SINGLE-OBS ::= { Speed-ValueTooLarge-ThresholdNoContext BY @@ -509,6 +326,8 @@ obs-Speed-ValueTooLarge-ThresholdNoContext C-ASR-SINGLE-OBS ::= { } ``` +### obs-Speed-ValueTooLarge-DriveDirectionReverse + ```asn1 obs-Speed-ValueTooLarge-DriveDirectionReverse C-ASR-SINGLE-OBS ::= { Speed-ValueTooLarge-DriveDirectionReverse BY @@ -516,14 +335,16 @@ obs-Speed-ValueTooLarge-DriveDirectionReverse C-ASR-SINGLE-OBS ::= { } ``` +### obs-Speed-ChangeTooLarge + ```asn1 obs-Speed-ChangeTooLarge C-ASR-SINGLE-OBS ::= { Speed-ChangeTooLarge BY c-ObsSpeed-ChangeTooLarge } ``` +### SetMbObsSpeed -### SetMbObsSpeed ```asn1 SetMbObsSpeed C-ASR-SINGLE-OBS ::= { obs-Speed-ValueTooLarge-VehicleType | @@ -534,8 +355,8 @@ SetMbObsSpeed C-ASR-SINGLE-OBS ::= { } ``` +### SetMbObsEtsiOnlySpeed -### SetMbObsEtsiOnlySpeed ```asn1 SetMbObsEtsiOnlySpeed C-ASR-SINGLE-OBS ::= { obs-Speed-ValueTooLarge-VehicleType | @@ -545,49 +366,36 @@ SetMbObsEtsiOnlySpeed C-ASR-SINGLE-OBS ::= { } ``` -### LongAcc-ValueTooLarge-ThresholdNoContext +### LongAcc-ValueTooLarge-ThresholdNoContext -Fields: -* threshold [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
        ```asn1 LongAcc-ValueTooLarge-ThresholdNoContext ::= SEQUENCE { threshold Uint16 } ``` +### LongAcc-Implausible-Brake -### LongAcc-Implausible-Brake ```asn1 LongAcc-Implausible-Brake ::= NULL ``` +### LongAcc-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. - ```asn1 LongAcc-ValueTooLarge ::= NULL ``` +### c-ObsLongAcc-ValueTooLarge-ThresholdNoContext + ```asn1 c-ObsLongAcc-ValueTooLarge-ThresholdNoContext IdMbObs::= 2 c-ObsLongAcc-Implausible-Brake IdMbObs::= 3 c-ObsLongAcc-ValueTooLarge IdMbObs::= 4 ``` +### obs-LongAcc-ValueTooLarge-ThresholdNoContext + ```asn1 obs-LongAcc-ValueTooLarge-ThresholdNoContext C-ASR-SINGLE-OBS ::= { LongAcc-ValueTooLarge-ThresholdNoContext BY @@ -595,20 +403,24 @@ obs-LongAcc-ValueTooLarge-ThresholdNoContext C-ASR-SINGLE-OBS ::= { } ``` +### obs-LongAcc-Implausible-Brake + ```asn1 obs-LongAcc-Implausible-Brake C-ASR-SINGLE-OBS ::= { LongAcc-Implausible-Brake BY c-ObsLongAcc-Implausible-Brake } ``` +### obs-LongAcc-ValueTooLarge + ```asn1 obs-LongAcc-ValueTooLarge C-ASR-SINGLE-OBS ::= { LongAcc-ValueTooLarge BY c-ObsLongAcc-ValueTooLarge } ``` +### SetMbObsLongAcc -### SetMbObsLongAcc ```asn1 SetMbObsLongAcc C-ASR-SINGLE-OBS ::= { obs-LongAcc-Implausible-Brake | @@ -617,8 +429,8 @@ SetMbObsLongAcc C-ASR-SINGLE-OBS ::= { } ``` +### SetMbObsEtsiOnlyLongAcc -### SetMbObsEtsiOnlyLongAcc ```asn1 SetMbObsEtsiOnlyLongAcc C-ASR-SINGLE-OBS ::= { obs-LongAcc-ValueTooLarge, diff --git a/docs/ITS-Container.md b/docs/ITS-Container.md index 2618e34..2b7ea89 100644 --- a/docs/ITS-Container.md +++ b/docs/ITS-Container.md @@ -2,14 +2,8 @@ OID: _{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }_ ## Data Elements: -### ItsPduHeader +### ItsPduHeader -Fields: -* 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)
        - -* stationID [**StationID**](#StationID)
        - -- Mantis #7209, #7005 ```asn1 ItsPduHeader ::= SEQUENCE { protocolVersion INTEGER (0..255), @@ -18,22 +12,14 @@ ItsPduHeader ::= SEQUENCE { } ``` +### StationID -### StationID ```asn1 StationID ::= INTEGER(0..4294967295) ``` -### ReferencePosition +### ReferencePosition -Fields: -* latitude [**Latitude**](#Latitude)
        -* longitude [**Longitude**](#Longitude)
        - -* positionConfidenceEllipse [**PosConfidenceEllipse**](#PosConfidenceEllipse)
        - -* altitude [**Altitude**](#Altitude)
        - ```asn1 ReferencePosition ::= SEQUENCE { latitude Latitude, @@ -43,14 +29,8 @@ ReferencePosition ::= SEQUENCE { } ``` -### DeltaReferencePosition +### DeltaReferencePosition -Fields: -* deltaLatitude [**DeltaLatitude**](#DeltaLatitude)
        -* deltaLongitude [**DeltaLongitude**](#DeltaLongitude)
        - -* deltaAltitude [**DeltaAltitude**](#DeltaAltitude)
        - ```asn1 DeltaReferencePosition ::= SEQUENCE { deltaLatitude DeltaLatitude, @@ -59,24 +39,20 @@ DeltaReferencePosition ::= SEQUENCE { } ``` +### Longitude -### Longitude ```asn1 Longitude ::= INTEGER {oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unavailable(1800000001)} (-1800000000..1800000001) ``` +### Latitude -### Latitude ```asn1 Latitude ::= INTEGER {oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10), unavailable(900000001)} (-900000000..900000001) ``` -### Altitude +### Altitude -Fields: -* altitudeValue [**AltitudeValue**](#AltitudeValue)
        -* altitudeConfidence [**AltitudeConfidence**](#AltitudeConfidence)
        - ```asn1 Altitude ::= SEQUENCE { altitudeValue AltitudeValue, @@ -84,14 +60,14 @@ Altitude ::= SEQUENCE { } ``` +### AltitudeValue -### AltitudeValue ```asn1 AltitudeValue ::= INTEGER {referenceEllipsoidSurface(0), oneCentimeter(1), unavailable(800001)} (-100000..800001) ``` +### AltitudeConfidence -### AltitudeConfidence ```asn1 AltitudeConfidence ::= ENUMERATED { alt-000-01 (0), @@ -113,32 +89,26 @@ AltitudeConfidence ::= ENUMERATED { } ``` +### DeltaLongitude -### DeltaLongitude ```asn1 DeltaLongitude ::= INTEGER {oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unavailable(131072)} (-131071..131072) ``` +### DeltaLatitude -### DeltaLatitude ```asn1 DeltaLatitude ::= INTEGER {oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10) , unavailable(131072)} (-131071..131072) ``` +### DeltaAltitude -### DeltaAltitude ```asn1 DeltaAltitude ::= INTEGER {oneCentimeterUp (1), oneCentimeterDown (-1), unavailable(12800)} (-12700..12800) ``` -### PosConfidenceEllipse +### PosConfidenceEllipse -Fields: -* semiMajorConfidence [**SemiAxisLength**](#SemiAxisLength)
        -* semiMinorConfidence [**SemiAxisLength**](#SemiAxisLength)
        - -* semiMajorOrientation [**HeadingValue**](#HeadingValue)
        - ```asn1 PosConfidenceEllipse ::= SEQUENCE { semiMajorConfidence SemiAxisLength, @@ -147,12 +117,8 @@ PosConfidenceEllipse ::= SEQUENCE { } ``` -### PathPoint +### PathPoint -Fields: -* pathPosition [**DeltaReferencePosition**](#DeltaReferencePosition)
        -* pathDeltaTime [**PathDeltaTime**](#PathDeltaTime) OPTIONAL
        - ```asn1 PathPoint ::= SEQUENCE { pathPosition DeltaReferencePosition, @@ -160,18 +126,14 @@ PathPoint ::= SEQUENCE { } ``` +### PathDeltaTime -### PathDeltaTime ```asn1 PathDeltaTime ::= INTEGER {tenMilliSecondsInPast(1)} (1..65535, ...) ``` -### PtActivation +### PtActivation -Fields: -* ptActivationType [**PtActivationType**](#PtActivationType)
        -* ptActivationData [**PtActivationData**](#PtActivationData)
        - ```asn1 PtActivation ::= SEQUENCE { ptActivationType PtActivationType, @@ -179,20 +141,20 @@ PtActivation ::= SEQUENCE { } ``` +### PtActivationType -### PtActivationType ```asn1 PtActivationType ::= INTEGER {undefinedCodingType(0), r09-16CodingType(1), vdv-50149CodingType(2)} (0..255) ``` +### PtActivationData -### PtActivationData ```asn1 PtActivationData ::= OCTET STRING (SIZE(1..20)) ``` +### AccelerationControl -### AccelerationControl ```asn1 AccelerationControl ::= BIT STRING { brakePedalEngaged (0), @@ -205,18 +167,14 @@ AccelerationControl ::= BIT STRING { } (SIZE(7)) ``` +### SemiAxisLength -### SemiAxisLength ```asn1 SemiAxisLength ::= INTEGER{oneCentimeter(1), outOfRange(4094), unavailable(4095)} (0..4095) ``` -### CauseCode +### CauseCode -Fields: -* causeCode [**CauseCodeType**](#CauseCodeType)
        -* subCauseCode [**SubCauseCodeType**](#SubCauseCodeType)
        - ```asn1 CauseCode ::= SEQUENCE { causeCode CauseCodeType, @@ -225,8 +183,8 @@ CauseCode ::= SEQUENCE { } ``` +### CauseCodeType -### CauseCodeType ```asn1 CauseCodeType ::= INTEGER { reserved (0), @@ -259,162 +217,158 @@ CauseCodeType ::= INTEGER { } (0..255) ``` +### SubCauseCodeType -### SubCauseCodeType ```asn1 SubCauseCodeType ::= INTEGER (0..255) ``` +### TrafficConditionSubCauseCode -### TrafficConditionSubCauseCode ```asn1 TrafficConditionSubCauseCode ::= INTEGER {unavailable(0), increasedVolumeOfTraffic(1), trafficJamSlowlyIncreasing(2), trafficJamIncreasing(3), trafficJamStronglyIncreasing(4), trafficStationary(5), trafficJamSlightlyDecreasing(6), trafficJamDecreasing(7), trafficJamStronglyDecreasing(8)} (0..255) ``` +### AccidentSubCauseCode -### AccidentSubCauseCode ```asn1 AccidentSubCauseCode ::= INTEGER {unavailable(0), multiVehicleAccident(1), heavyAccident(2), accidentInvolvingLorry(3), accidentInvolvingBus(4), accidentInvolvingHazardousMaterials(5), accidentOnOppositeLane(6), unsecuredAccident(7), assistanceRequested(8)} (0..255) ``` +### RoadworksSubCauseCode -### RoadworksSubCauseCode ```asn1 RoadworksSubCauseCode ::= INTEGER {unavailable(0), majorRoadworks(1), roadMarkingWork(2), slowMovingRoadMaintenance(3), shortTermStationaryRoadworks(4), streetCleaning(5), winterService(6)} (0..255) ``` +### HumanPresenceOnTheRoadSubCauseCode -### HumanPresenceOnTheRoadSubCauseCode ```asn1 HumanPresenceOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), childrenOnRoadway(1), cyclistOnRoadway(2), motorcyclistOnRoadway(3)} (0..255) ``` +### WrongWayDrivingSubCauseCode -### WrongWayDrivingSubCauseCode ```asn1 WrongWayDrivingSubCauseCode ::= INTEGER {unavailable(0), wrongLane(1), wrongDirection(2)} (0..255) ``` +### AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode -### AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode ```asn1 AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode ::= INTEGER {unavailable(0), strongWinds(1), damagingHail(2), hurricane(3), thunderstorm(4), tornado(5), blizzard(6)} (0..255) ``` +### AdverseWeatherCondition-AdhesionSubCauseCode -### AdverseWeatherCondition-AdhesionSubCauseCode ```asn1 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-VisibilitySubCauseCode -### AdverseWeatherCondition-VisibilitySubCauseCode ```asn1 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 -### AdverseWeatherCondition-PrecipitationSubCauseCode ```asn1 AdverseWeatherCondition-PrecipitationSubCauseCode ::= INTEGER {unavailable(0), heavyRain(1), heavySnowfall(2), softHail(3)} (0..255) ``` +### SlowVehicleSubCauseCode -### SlowVehicleSubCauseCode ```asn1 SlowVehicleSubCauseCode ::= INTEGER {unavailable(0), maintenanceVehicle(1), vehiclesSlowingToLookAtAccident(2), abnormalLoad(3), abnormalWideLoad(4), convoy(5), snowplough(6), deicing(7), saltingVehicles(8)} (0..255) ``` +### StationaryVehicleSubCauseCode -### StationaryVehicleSubCauseCode ```asn1 StationaryVehicleSubCauseCode ::= INTEGER {unavailable(0), humanProblem(1), vehicleBreakdown(2), postCrash(3), publicTransportStop(4), carryingDangerousGoods(5)} (0..255) ``` +### HumanProblemSubCauseCode -### HumanProblemSubCauseCode ```asn1 HumanProblemSubCauseCode ::= INTEGER {unavailable(0), glycemiaProblem(1), heartProblem(2)} (0..255) ``` +### EmergencyVehicleApproachingSubCauseCode -### EmergencyVehicleApproachingSubCauseCode ```asn1 EmergencyVehicleApproachingSubCauseCode ::= INTEGER {unavailable(0), emergencyVehicleApproaching(1), prioritizedVehicleApproaching(2)} (0..255) ``` +### HazardousLocation-DangerousCurveSubCauseCode -### HazardousLocation-DangerousCurveSubCauseCode ```asn1 HazardousLocation-DangerousCurveSubCauseCode ::= INTEGER {unavailable(0), dangerousLeftTurnCurve(1), dangerousRightTurnCurve(2), multipleCurvesStartingWithUnknownTurningDirection(3), multipleCurvesStartingWithLeftTurn(4), multipleCurvesStartingWithRightTurn(5)} (0..255) ``` +### HazardousLocation-SurfaceConditionSubCauseCode -### HazardousLocation-SurfaceConditionSubCauseCode ```asn1 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 -### HazardousLocation-ObstacleOnTheRoadSubCauseCode ```asn1 HazardousLocation-ObstacleOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), shedLoad(1), partsOfVehicles(2), partsOfTyres(3), bigObjects(4), fallenTrees(5), hubCaps(6), waitingVehicles(7)} (0..255) ``` +### HazardousLocation-AnimalOnTheRoadSubCauseCode -### HazardousLocation-AnimalOnTheRoadSubCauseCode ```asn1 HazardousLocation-AnimalOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), wildAnimals(1), herdOfAnimals(2), smallAnimals(3), largeAnimals(4)} (0..255) ``` +### CollisionRiskSubCauseCode -### CollisionRiskSubCauseCode ```asn1 CollisionRiskSubCauseCode ::= INTEGER {unavailable(0), longitudinalCollisionRisk(1), crossingCollisionRisk(2), lateralCollisionRisk(3), vulnerableRoadUser(4)} (0..255) ``` +### SignalViolationSubCauseCode -### SignalViolationSubCauseCode ```asn1 SignalViolationSubCauseCode ::= INTEGER {unavailable(0), stopSignViolation(1), trafficLightViolation(2), turningRegulationViolation(3)} (0..255) ``` +### RescueAndRecoveryWorkInProgressSubCauseCode -### RescueAndRecoveryWorkInProgressSubCauseCode ```asn1 RescueAndRecoveryWorkInProgressSubCauseCode ::= INTEGER {unavailable(0), emergencyVehicles(1), rescueHelicopterLanding(2), policeActivityOngoing(3), medicalEmergencyOngoing(4), childAbductionInProgress(5)} (0..255) ``` +### DangerousEndOfQueueSubCauseCode -### DangerousEndOfQueueSubCauseCode ```asn1 DangerousEndOfQueueSubCauseCode ::= INTEGER {unavailable(0), suddenEndOfQueue(1), queueOverHill(2), queueAroundBend(3), queueInTunnel(4)} (0..255) ``` +### DangerousSituationSubCauseCode -### DangerousSituationSubCauseCode ```asn1 DangerousSituationSubCauseCode ::= INTEGER {unavailable(0), emergencyElectronicBrakeEngaged(1), preCrashSystemEngaged(2), espEngaged(3), absEngaged(4), aebEngaged(5), brakeWarningEngaged(6), collisionRiskWarningEngaged(7)} (0..255) ``` +### VehicleBreakdownSubCauseCode -### VehicleBreakdownSubCauseCode ```asn1 VehicleBreakdownSubCauseCode ::= INTEGER {unavailable(0), lackOfFuel (1), lackOfBatteryPower (2), engineProblem(3), transmissionProblem(4), engineCoolingProblem(5), brakingSystemProblem(6), steeringProblem(7), tyrePuncture(8), tyrePressureProblem(9)} (0..255) ``` +### PostCrashSubCauseCode -### PostCrashSubCauseCode ```asn1 PostCrashSubCauseCode ::= INTEGER {unavailable(0), accidentWithoutECallTriggered (1), accidentWithECallManuallyTriggered (2), accidentWithECallAutomaticallyTriggered (3), accidentWithECallTriggeredWithoutAccessToCellularNetwork(4)} (0..255) ``` -### Curvature +### Curvature -Fields: -* curvatureValue [**CurvatureValue**](#CurvatureValue)
        -* curvatureConfidence [**CurvatureConfidence**](#CurvatureConfidence)
        - ```asn1 Curvature ::= SEQUENCE { curvatureValue CurvatureValue, @@ -422,14 +376,14 @@ Curvature ::= SEQUENCE { } ``` +### CurvatureValue -### CurvatureValue ```asn1 CurvatureValue ::= INTEGER {straight(0), unavailable(1023)} (-1023..1023) ``` +### CurvatureConfidence -### CurvatureConfidence ```asn1 CurvatureConfidence ::= ENUMERATED { onePerMeter-0-00002 (0), @@ -443,18 +397,14 @@ CurvatureConfidence ::= ENUMERATED { } ``` +### CurvatureCalculationMode -### CurvatureCalculationMode ```asn1 CurvatureCalculationMode ::= ENUMERATED {yawRateUsed(0), yawRateNotUsed(1), unavailable(2), ...} ``` -### Heading +### Heading -Fields: -* headingValue [**HeadingValue**](#HeadingValue)
        -* headingConfidence [**HeadingConfidence**](#HeadingConfidence)
        - ```asn1 Heading ::= SEQUENCE { headingValue HeadingValue, @@ -462,33 +412,27 @@ Heading ::= SEQUENCE { } ``` +### HeadingValue -### HeadingValue ```asn1 HeadingValue ::= INTEGER {wgs84North(0), wgs84East(900), wgs84South(1800), wgs84West(2700), unavailable(3601)} (0..3601) ``` +### HeadingConfidence -### HeadingConfidence ```asn1 HeadingConfidence ::= INTEGER {equalOrWithinZeroPointOneDegree (1), equalOrWithinOneDegree (10), outOfRange(126), unavailable(127)} (1..127) ``` +### LanePosition -### LanePosition ```asn1 LanePosition::= INTEGER {offTheRoad(-1), hardShoulder(0), outermostDrivingLane(1), secondLaneFromOutside(2)} (-1..14) ``` -### ClosedLanes +### ClosedLanes -Fields: -* innerhardShoulderStatus [**HardShoulderStatus**](#HardShoulderStatus) OPTIONAL
        -* outerhardShoulderStatus [**HardShoulderStatus**](#HardShoulderStatus) OPTIONAL
        - -* drivingLaneStatus [**DrivingLaneStatus**](#DrivingLaneStatus) OPTIONAL
        - ```asn1 ClosedLanes ::= SEQUENCE { innerhardShoulderStatus HardShoulderStatus OPTIONAL, @@ -498,48 +442,44 @@ ClosedLanes ::= SEQUENCE { } ``` +### HardShoulderStatus -### HardShoulderStatus ```asn1 HardShoulderStatus ::= ENUMERATED {availableForStopping(0), closed(1), availableForDriving(2)} ``` +### DrivingLaneStatus -### DrivingLaneStatus ```asn1 DrivingLaneStatus ::= BIT STRING (SIZE (1..13)) ``` +### PerformanceClass -### PerformanceClass ```asn1 PerformanceClass ::= INTEGER {unavailable(0), performanceClassA(1), performanceClassB(2)} (0..7) ``` +### SpeedValue -### SpeedValue ```asn1 SpeedValue ::= INTEGER {standstill(0), oneCentimeterPerSec(1), unavailable(16383)} (0..16383) ``` +### SpeedConfidence -### SpeedConfidence ```asn1 SpeedConfidence ::= INTEGER {equalOrWithinOneCentimeterPerSec(1), equalOrWithinOneMeterPerSec(100), outOfRange(126), unavailable(127)} (1..127) ``` +### VehicleMass -### VehicleMass ```asn1 VehicleMass ::= INTEGER {hundredKg(1), unavailable(1024)} (1..1024) ``` -### Speed +### Speed -Fields: -* speedValue [**SpeedValue**](#SpeedValue)
        -* speedConfidence [**SpeedConfidence**](#SpeedConfidence)
        - ```asn1 Speed ::= SEQUENCE { speedValue SpeedValue, @@ -547,24 +487,20 @@ Speed ::= SEQUENCE { } ``` +### DriveDirection -### DriveDirection ```asn1 DriveDirection ::= ENUMERATED {forward (0), backward (1), unavailable (2)} ``` +### EmbarkationStatus -### EmbarkationStatus ```asn1 EmbarkationStatus ::= BOOLEAN ``` -### LongitudinalAcceleration +### LongitudinalAcceleration -Fields: -* longitudinalAccelerationValue [**LongitudinalAccelerationValue**](#LongitudinalAccelerationValue)
        -* longitudinalAccelerationConfidence [**AccelerationConfidence**](#AccelerationConfidence)
        - ```asn1 LongitudinalAcceleration ::= SEQUENCE { longitudinalAccelerationValue LongitudinalAccelerationValue, @@ -572,24 +508,20 @@ LongitudinalAcceleration ::= SEQUENCE { } ``` +### LongitudinalAccelerationValue -### LongitudinalAccelerationValue ```asn1 LongitudinalAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredForward(1), pointOneMeterPerSecSquaredBackward(-1), unavailable(161)} (-160 .. 161) ``` +### AccelerationConfidence -### AccelerationConfidence ```asn1 AccelerationConfidence ::= INTEGER {pointOneMeterPerSecSquared(1), outOfRange(101), unavailable(102)} (0 .. 102) ``` -### LateralAcceleration +### LateralAcceleration -Fields: -* lateralAccelerationValue [**LateralAccelerationValue**](#LateralAccelerationValue)
        -* lateralAccelerationConfidence [**AccelerationConfidence**](#AccelerationConfidence)
        - ```asn1 LateralAcceleration ::= SEQUENCE { lateralAccelerationValue LateralAccelerationValue, @@ -597,18 +529,14 @@ LateralAcceleration ::= SEQUENCE { } ``` +### LateralAccelerationValue -### LateralAccelerationValue ```asn1 LateralAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredToRight(-1), pointOneMeterPerSecSquaredToLeft(1), unavailable(161)} (-160 .. 161) ``` -### VerticalAcceleration +### VerticalAcceleration -Fields: -* verticalAccelerationValue [**VerticalAccelerationValue**](#VerticalAccelerationValue)
        -* verticalAccelerationConfidence [**AccelerationConfidence**](#AccelerationConfidence)
        - ```asn1 VerticalAcceleration ::= SEQUENCE { verticalAccelerationValue VerticalAccelerationValue, @@ -616,21 +544,21 @@ VerticalAcceleration ::= SEQUENCE { } ``` +### VerticalAccelerationValue -### VerticalAccelerationValue ```asn1 VerticalAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredUp(1), pointOneMeterPerSecSquaredDown(-1), unavailable(161)} (-160 .. 161) ``` +### StationType -### StationType ```asn1 StationType ::= INTEGER {unknown(0), pedestrian(1), cyclist(2), moped(3), motorcycle(4), passengerCar(5), bus(6), lightTruck(7), heavyTruck(8), trailer(9), specialVehicles(10), tram(11), roadSideUnit(15)} (0..255) ``` +### ExteriorLights -### ExteriorLights ```asn1 ExteriorLights ::= BIT STRING { lowBeamHeadlightsOn (0), @@ -644,8 +572,8 @@ ExteriorLights ::= BIT STRING { } (SIZE(8)) ``` +### DangerousGoodsBasic -### DangerousGoodsBasic ```asn1 DangerousGoodsBasic::= ENUMERATED { explosives1(0), @@ -671,24 +599,8 @@ DangerousGoodsBasic::= ENUMERATED { } ``` -### DangerousGoodsExtended - -Fields: -* dangerousGoodsType [**DangerousGoodsBasic**](#DangerousGoodsBasic)
        -* unNumber **INTEGER** (0..9999)
        - -* elevatedTemperature **BOOLEAN**
        - -* tunnelsRestricted **BOOLEAN**
        - -* limitedQuantity **BOOLEAN**
        - -* emergencyActionCode [**IA5String**](#IA5String) (SIZE (1..24)) OPTIONAL
        - -* phoneNumber [**PhoneNumber**](#PhoneNumber) OPTIONAL
        - -* companyName [**UTF8String**](#UTF8String) (SIZE (1..24)) OPTIONAL
        - +### DangerousGoodsExtended + ```asn1 DangerousGoodsExtended ::= SEQUENCE { dangerousGoodsType DangerousGoodsBasic, @@ -703,14 +615,14 @@ DangerousGoodsExtended ::= SEQUENCE { } ``` +### SpecialTransportType -### SpecialTransportType ```asn1 SpecialTransportType ::= BIT STRING {heavyLoad(0), excessWidth(1), excessLength(2), excessHeight(3)} (SIZE(4)) ``` +### LightBarSirenInUse -### LightBarSirenInUse ```asn1 LightBarSirenInUse ::= BIT STRING { lightBarActivated (0), @@ -718,81 +630,81 @@ LightBarSirenInUse ::= BIT STRING { } (SIZE(2)) ``` +### HeightLonCarr -### HeightLonCarr ```asn1 HeightLonCarr ::= INTEGER {oneCentimeter(1), unavailable(100)} (1..100) ``` +### PosLonCarr -### PosLonCarr ```asn1 PosLonCarr ::= INTEGER {oneCentimeter(1), unavailable(127)} (1..127) ``` +### PosPillar -### PosPillar ```asn1 PosPillar ::= INTEGER {tenCentimeters(1), unavailable(30)} (1..30) ``` +### PosCentMass -### PosCentMass ```asn1 PosCentMass ::= INTEGER {tenCentimeters(1), unavailable(63)} (1..63) ``` +### RequestResponseIndication -### RequestResponseIndication ```asn1 RequestResponseIndication ::= ENUMERATED {request(0), response(1)} ``` +### SpeedLimit -### SpeedLimit ```asn1 SpeedLimit ::= INTEGER {oneKmPerHour(1)} (1..255) ``` +### StationarySince -### StationarySince ```asn1 StationarySince ::= ENUMERATED {lessThan1Minute(0), lessThan2Minutes(1), lessThan15Minutes(2), equalOrGreater15Minutes(3)} ``` +### Temperature -### Temperature ```asn1 Temperature ::= INTEGER {equalOrSmallerThanMinus60Deg (-60), oneDegreeCelsius(1), equalOrGreaterThan67Deg(67)} (-60..67) ``` +### TrafficRule -### TrafficRule ```asn1 TrafficRule ::= ENUMERATED {noPassing(0), noPassingForTrucks(1), passToRight(2), passToLeft(3), ... } ``` +### WheelBaseVehicle -### WheelBaseVehicle ```asn1 WheelBaseVehicle ::= INTEGER {tenCentimeters(1), unavailable(127)} (1..127) ``` +### TurningRadius -### TurningRadius ```asn1 TurningRadius ::= INTEGER {point4Meters(1), unavailable(255)} (1..255) ``` +### PosFrontAx -### PosFrontAx ```asn1 PosFrontAx ::= INTEGER {tenCentimeters(1), unavailable(20)} (1..20) ``` +### PositionOfOccupants -### PositionOfOccupants ```asn1 PositionOfOccupants ::= BIT STRING { row1LeftOccupied (0), @@ -817,18 +729,14 @@ PositionOfOccupants ::= BIT STRING { row4NotPresent (19)} (SIZE(20)) ``` +### PositioningSolutionType -### PositioningSolutionType ```asn1 PositioningSolutionType ::= ENUMERATED {noPositioningSolution(0), sGNSS(1), dGNSS(2), sGNSSplusDR(3), dGNSSplusDR(4), dR(5), ...} ``` -### VehicleIdentification +### VehicleIdentification -Fields: -* wMInumber [**WMInumber**](#WMInumber) OPTIONAL
        -* vDS [**VDS**](#VDS) OPTIONAL
        - ```asn1 VehicleIdentification ::= SEQUENCE { wMInumber WMInumber OPTIONAL, @@ -837,30 +745,26 @@ VehicleIdentification ::= SEQUENCE { } ``` +### WMInumber -### WMInumber ```asn1 WMInumber ::= IA5String (SIZE(1..3)) ``` +### VDS -### VDS ```asn1 VDS ::= IA5String (SIZE(6)) ``` +### EnergyStorageType -### EnergyStorageType ```asn1 EnergyStorageType ::= BIT STRING {hydrogenStorage(0), electricEnergyStorage(1), liquidPropaneGas(2), compressedNaturalGas(3), diesel(4), gasoline(5), ammonia(6)} (SIZE(7)) ``` -### VehicleLength +### VehicleLength -Fields: -* vehicleLengthValue [**VehicleLengthValue**](#VehicleLengthValue)
        -* vehicleLengthConfidenceIndication [**VehicleLengthConfidenceIndication**](#VehicleLengthConfidenceIndication)
        - ```asn1 VehicleLength ::= SEQUENCE { vehicleLengthValue VehicleLengthValue, @@ -868,44 +772,44 @@ VehicleLength ::= SEQUENCE { } ``` +### VehicleLengthValue -### VehicleLengthValue ```asn1 VehicleLengthValue ::= INTEGER {tenCentimeters(1), outOfRange(1022), unavailable(1023)} (1..1023) ``` +### VehicleLengthConfidenceIndication -### VehicleLengthConfidenceIndication ```asn1 VehicleLengthConfidenceIndication ::= ENUMERATED {noTrailerPresent(0), trailerPresentWithKnownLength(1), trailerPresentWithUnknownLength(2), trailerPresenceIsUnknown(3), unavailable(4)} ``` +### VehicleWidth -### VehicleWidth ```asn1 VehicleWidth ::= INTEGER {tenCentimeters(1), outOfRange(61), unavailable(62)} (1..62) ``` +### PathHistory -### PathHistory ```asn1 PathHistory::= SEQUENCE (SIZE(0..40)) OF PathPoint ``` +### EmergencyPriority -### EmergencyPriority ```asn1 EmergencyPriority ::= BIT STRING {requestForRightOfWay(0), requestForFreeCrossingAtATrafficLight(1)} (SIZE(2)) ``` +### InformationQuality -### InformationQuality ```asn1 InformationQuality ::= INTEGER {unavailable(0), lowest(1), highest(7)} (0..7) ``` +### RoadType -### RoadType ```asn1 RoadType ::= ENUMERATED { urban-NoStructuralSeparationToOppositeLanes(0), @@ -914,12 +818,8 @@ RoadType ::= ENUMERATED { nonUrban-WithStructuralSeparationToOppositeLanes(3)} ``` -### SteeringWheelAngle +### SteeringWheelAngle -Fields: -* steeringWheelAngleValue [**SteeringWheelAngleValue**](#SteeringWheelAngleValue)
        -* steeringWheelAngleConfidence [**SteeringWheelAngleConfidence**](#SteeringWheelAngleConfidence)
        - ```asn1 SteeringWheelAngle ::= SEQUENCE { steeringWheelAngleValue SteeringWheelAngleValue, @@ -927,36 +827,32 @@ SteeringWheelAngle ::= SEQUENCE { } ``` +### SteeringWheelAngleValue -### SteeringWheelAngleValue ```asn1 SteeringWheelAngleValue ::= INTEGER {straight(0), onePointFiveDegreesToRight(-1), onePointFiveDegreesToLeft(1), unavailable(512)} (-511..512) ``` +### SteeringWheelAngleConfidence -### SteeringWheelAngleConfidence ```asn1 SteeringWheelAngleConfidence ::= INTEGER {equalOrWithinOnePointFiveDegree (1), outOfRange(126), unavailable(127)} (1..127) ``` +### TimestampIts -### TimestampIts ```asn1 TimestampIts ::= INTEGER {utcStartOf2004(0), oneMillisecAfterUTCStartOf2004(1)} (0..4398046511103) ``` +### VehicleRole -### VehicleRole ```asn1 VehicleRole ::= ENUMERATED {default(0), publicTransport(1), specialTransport(2), dangerousGoods(3), roadWork(4), rescue(5), emergency(6), safetyCar(7), agriculture(8), commercial(9), military(10), roadOperator(11), taxi(12), reserved1(13), reserved2(14), reserved3(15)} ``` -### YawRate +### YawRate -Fields: -* yawRateValue [**YawRateValue**](#YawRateValue)
        -* yawRateConfidence [**YawRateConfidence**](#YawRateConfidence)
        - ```asn1 YawRate::= SEQUENCE { yawRateValue YawRateValue, @@ -964,14 +860,14 @@ YawRate::= SEQUENCE { } ``` +### YawRateValue -### YawRateValue ```asn1 YawRateValue ::= INTEGER {straight(0), degSec-000-01ToRight(-1), degSec-000-01ToLeft(1), unavailable(32767)} (-32766..32767) ``` +### YawRateConfidence -### YawRateConfidence ```asn1 YawRateConfidence ::= ENUMERATED { degSec-000-01 (0), @@ -986,42 +882,38 @@ YawRateConfidence ::= ENUMERATED { } ``` +### ProtectedZoneType -### ProtectedZoneType ```asn1 ProtectedZoneType::= ENUMERATED { permanentCenDsrcTolling (0), ..., temporaryCenDsrcTolling (1) } ``` +### RelevanceDistance -### RelevanceDistance ```asn1 RelevanceDistance ::= ENUMERATED {lessThan50m(0), lessThan100m(1), lessThan200m(2), lessThan500m(3), lessThan1000m(4), lessThan5km(5), lessThan10km(6), over10km(7)} ``` +### RelevanceTrafficDirection -### RelevanceTrafficDirection ```asn1 RelevanceTrafficDirection ::= ENUMERATED {allTrafficDirections(0), upstreamTraffic(1), downstreamTraffic(2), oppositeTraffic(3)} ``` +### TransmissionInterval -### TransmissionInterval ```asn1 TransmissionInterval ::= INTEGER {oneMilliSecond(1), tenSeconds(10000)} (1..10000) ``` +### ValidityDuration -### ValidityDuration ```asn1 ValidityDuration ::= INTEGER {timeOfDetection(0), oneSecondAfterDetection(1)} (0..86400) ``` -### ActionID +### ActionID -Fields: -* originatingStationID [**StationID**](#StationID)
        -* sequenceNumber [**SequenceNumber**](#SequenceNumber)
        - ```asn1 ActionID ::= SEQUENCE { originatingStationID StationID, @@ -1029,26 +921,14 @@ ActionID ::= SEQUENCE { } ``` +### ItineraryPath -### ItineraryPath ```asn1 ItineraryPath ::= SEQUENCE SIZE(1..40) OF ReferencePosition ``` -### ProtectedCommunicationZone +### ProtectedCommunicationZone -Fields: -* protectedZoneType [**ProtectedZoneType**](#ProtectedZoneType)
        -* expiryTime [**TimestampIts**](#TimestampIts) OPTIONAL
        - -* protectedZoneLatitude [**Latitude**](#Latitude)
        - -* protectedZoneLongitude [**Longitude**](#Longitude)
        - -* protectedZoneRadius [**ProtectedZoneRadius**](#ProtectedZoneRadius) OPTIONAL
        - -* protectedZoneID [**ProtectedZoneID**](#ProtectedZoneID) OPTIONAL
        - ```asn1 ProtectedCommunicationZone ::= SEQUENCE { protectedZoneType ProtectedZoneType, @@ -1061,50 +941,44 @@ ProtectedCommunicationZone ::= SEQUENCE { } ``` +### Traces -### Traces ```asn1 Traces ::= SEQUENCE SIZE(1..7) OF PathHistory ``` +### NumberOfOccupants -### NumberOfOccupants ```asn1 NumberOfOccupants ::= INTEGER {oneOccupant (1), unavailable(127)} (0 .. 127) ``` +### SequenceNumber -### SequenceNumber ```asn1 SequenceNumber ::= INTEGER (0..65535) ``` +### PositionOfPillars -### PositionOfPillars ```asn1 PositionOfPillars ::= SEQUENCE (SIZE(1..3, ...)) OF PosPillar ``` +### RestrictedTypes -### RestrictedTypes ```asn1 RestrictedTypes ::= SEQUENCE (SIZE(1..3, ...)) OF StationType ``` +### EventHistory -### EventHistory ```asn1 EventHistory::= SEQUENCE (SIZE(1..23)) OF EventPoint ``` -### EventPoint +### EventPoint -Fields: -* eventPosition [**DeltaReferencePosition**](#DeltaReferencePosition)
        -* eventDeltaTime [**PathDeltaTime**](#PathDeltaTime) OPTIONAL
        - -* informationQuality [**InformationQuality**](#InformationQuality)
        - ```asn1 EventPoint ::= SEQUENCE { eventPosition DeltaReferencePosition, @@ -1113,20 +987,14 @@ EventPoint ::= SEQUENCE { } ``` +### ProtectedCommunicationZonesRSU -### ProtectedCommunicationZonesRSU ```asn1 ProtectedCommunicationZonesRSU ::= SEQUENCE (SIZE(1..16)) OF ProtectedCommunicationZone ``` -### CenDsrcTollingZone +### CenDsrcTollingZone -Fields: -* protectedZoneLatitude [**Latitude**](#Latitude)
        -* protectedZoneLongitude [**Longitude**](#Longitude)
        - -* cenDsrcTollingZoneID [**CenDsrcTollingZoneID**](#CenDsrcTollingZoneID) OPTIONAL
        - ```asn1 CenDsrcTollingZone ::= SEQUENCE { protectedZoneLatitude Latitude, @@ -1136,38 +1004,38 @@ CenDsrcTollingZone ::= SEQUENCE { } ``` +### ProtectedZoneRadius -### ProtectedZoneRadius ```asn1 ProtectedZoneRadius ::= INTEGER {oneMeter(1)} (1..255,...) ``` +### ProtectedZoneID -### ProtectedZoneID ```asn1 ProtectedZoneID ::= INTEGER (0.. 134217727) ``` +### CenDsrcTollingZoneID -### CenDsrcTollingZoneID ```asn1 CenDsrcTollingZoneID ::= ProtectedZoneID ``` +### DigitalMap -### DigitalMap ```asn1 DigitalMap ::= SEQUENCE (SIZE(1..256)) OF ReferencePosition ``` +### OpeningDaysHours -### OpeningDaysHours ```asn1 OpeningDaysHours ::= UTF8String ``` +### PhoneNumber -### PhoneNumber ```asn1 PhoneNumber ::= NumericString (SIZE(1..16)) ``` diff --git a/docs/Ieee1609Dot2.md b/docs/Ieee1609Dot2.md index 02a0abf..a965a7c 100644 --- a/docs/Ieee1609Dot2.md +++ b/docs/Ieee1609Dot2.md @@ -10,24 +10,15 @@ * **[EtsiTs103097ExtensionModule](EtsiTs103097ExtensionModule.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) secHeaders(103097) extension(2) version-1(1) minor-version-1(1)} WITH SUCCESSORS*
        ## Data Elements: -### Ieee1609Dot2Data +### Ieee1609Dot2Data -This data type is used to contain the other data types in this - clause. The fields in the Ieee1609Dot2Data have the following meanings: - -Fields: -* protocolVersion [**Uint8**](Ieee1609Dot2BaseTypes.md#Uint8) (3)
        - contains the current version of the protocol. The +* `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 [**Ieee1609Dot2Content**](#Ieee1609Dot2Content)
        - contains the content in the form of an Ieee1609Dot2Content. +* `content` contains the content in the form of an Ieee1609Dot2Content. - - ```asn1 Ieee1609Dot2Data ::= SEQUENCE { protocolVersion Uint8(3), @@ -35,39 +26,22 @@ Ieee1609Dot2Data ::= SEQUENCE { } ``` -### Ieee1609Dot2Content +### Ieee1609Dot2Content -In this structure: - -Fields: -* unsecuredData [**Opaque**](Ieee1609Dot2BaseTypes.md#Opaque)
        - indicates that the content is an OCTET STRING to be +* `unsecuredData` indicates that the content is an OCTET STRING to be consumed outside the SDS. - -* signedData [**SignedData**](#SignedData)
        - indicates that the content has been signed according to +* `signedData` indicates that the content has been signed according to this standard. - - -* encryptedData [**EncryptedData**](#EncryptedData)
        - indicates that the content has been encrypted +* `encryptedData` indicates that the content has been encrypted according to this standard. - - -* signedCertificateRequest [**Opaque**](Ieee1609Dot2BaseTypes.md#Opaque)
        - indicates that the content is a +* `signedCertificateRequest` indicates that the content is a certificate request. Further specification of certificate requests is not provided in this version of this standard. - - -* signedX509CertificateRequest [**Opaque**](Ieee1609Dot2BaseTypes.md#Opaque)
        - - ..., ```asn1 Ieee1609Dot2Content ::= CHOICE { unsecuredData Opaque, @@ -79,53 +53,17 @@ Ieee1609Dot2Content ::= CHOICE { } ``` -### SignedData - -In this structure: - - +### SignedData - - - -
      • 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.
      • -
      -
    - -Fields: -* hashId [**HashAlgorithm**](Ieee1609Dot2BaseTypes.md#HashAlgorithm)
    - indicates the hash algorithm to be used to generate the hash +* `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. -* tbsData [**ToBeSignedData**](#ToBeSignedData)
    - contains the data that is hashed as input to the signature. - - - -* signer [**SignerIdentifier**](#SignerIdentifier)
    - determines the keying material and hash algorithm used to +* `signer` determines the keying material and hash algorithm used to sign the data. - - -* signature [**Signature**](Ieee1609Dot2BaseTypes.md#Signature)
    - contains the digital signature itself, calculated as +* `signature` contains the digital signature itself, calculated as specified in 5.3.1.
    • If signer indicates the choice self, then the signature calculation @@ -134,8 +72,6 @@ Fields:
    • Data input is equal to the COER encoding of the tbsData field canonicalized according to the encoding considerations given in 6.3.6.
    • - - ```asn1 SignedData ::= SEQUENCE { hashId HashAlgorithm, @@ -145,30 +81,14 @@ SignedData ::= SEQUENCE { } ``` -### ToBeSignedData +### 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: - -Fields: -* payload [**SignedDataPayload**](#SignedDataPayload)
      - contains data that is provided by the entity that invokes +* `payload` contains data that is provided by the entity that invokes the SDS. - -* headerInfo [**HeaderInfo**](#HeaderInfo)
      - contains additional data that is inserted by the SDS. +* `headerInfo` contains additional data that is inserted by the SDS. - - ```asn1 ToBeSignedData ::= SEQUENCE { payload SignedDataPayload, @@ -176,20 +96,12 @@ 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. +### SignedDataPayload -Fields: -* data [**Ieee1609Dot2Data**](Ieee1609Dot2.md#Ieee1609Dot2Data) OPTIONAL
      - contains data that is explicitly transported within the +* `data` contains data that is explicitly transported within the structure. - -* extDataHash [**HashedData**](#HashedData) OPTIONAL
      - contains the hash of data that is not explicitly +* `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 @@ -198,8 +110,6 @@ Fields: or not extDataHash is used, and how it is used, is SDEE-specific. - - ```asn1 SignedDataPayload ::= SEQUENCE { data Ieee1609Dot2Data OPTIONAL, @@ -209,26 +119,8 @@ SignedDataPayload ::= SEQUENCE { WITH COMPONENTS {..., extDataHash PRESENT}) ``` -### 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. +### HashedData - -

      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. - -Fields: -* sha256HashedData **OCTET STRING** (SIZE(32))
      -* sha384HashedData **OCTET STRING** (SIZE(48))
      - - ..., -* reserved **OCTET STRING** (SIZE(32))
      - ```asn1 HashedData::= CHOICE { sha256HashedData OCTET STRING (SIZE(32)), @@ -238,51 +130,24 @@ 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. +### HeaderInfo -

      Parameters: - -Fields: -* psid [**Psid**](Ieee1609Dot2BaseTypes.md#Psid)
      - indicates the application area with which the sender is +* `psid` indicates the application area with which the sender is claiming the payload should be associated. - -* generationTime [**Time64**](Ieee1609Dot2BaseTypes.md#Time64) OPTIONAL
      - indicates the time at which the structure was +* `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 [**Time64**](Ieee1609Dot2BaseTypes.md#Time64) OPTIONAL
      - if present, contains the time after which the data +* `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 [**ThreeDLocation**](Ieee1609Dot2BaseTypes.md#ThreeDLocation) OPTIONAL
      - if present, contains the location at which the +* `generationLocation` if present, contains the location at which the signature was generated. - - -* p2pcdLearningRequest [**HashedId3**](Ieee1609Dot2BaseTypes.md#HashedId3) OPTIONAL
      - if present, is used by the SDS to request +* `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 @@ -290,56 +155,35 @@ Fields: inlineP2pcdRequest is not present. The HashedId3 is calculated with the whole-certificate hash algorithm, determined as described in 6.4.3. - - -* missingCrlIdentifier [**MissingCrlIdentifier**](#MissingCrlIdentifier) OPTIONAL
      - if present, is used by the SDS to request +* `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 [**EncryptionKey**](Ieee1609Dot2BaseTypes.md#EncryptionKey) OPTIONAL
      - if present, is used to indicate that a further +* `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 [**SequenceOfHashedId3**](Ieee1609Dot2BaseTypes.md#SequenceOfHashedId3) OPTIONAL
      - if present, is used by the SDS to request +* `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 [**Certificate**](Ieee1609Dot2.md#Certificate) OPTIONAL
      - if present, is used by the SDS to provide +* `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 [**PduFunctionalType**](#PduFunctionalType) OPTIONAL
      - if present, is used to indicate that the SPDU is +* `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 [**ContributedExtensionBlocks**](#ContributedExtensionBlocks) OPTIONAL
      - if present, is used to provide extension blocks +* `contributedExtensions` if present, is used to provide extension blocks defined by identified contributing organizations. - - ```asn1 HeaderInfo ::= SEQUENCE { psid Psid, @@ -357,26 +201,16 @@ 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. +### MissingCrlIdentifier -Fields: -* cracaId [**HashedId3**](Ieee1609Dot2BaseTypes.md#HashedId3)
      - is the HashedId3 of the CRACA, as defined in 5.1.3. The +* `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 [**CrlSeries**](Ieee1609Dot2BaseTypes.md#CrlSeries)
      - is the requested CRL Series value. See 5.1.3 for more +* `crlSeries` is the requested CRL Series value. See 5.1.3 for more information. - - ```asn1 MissingCrlIdentifier ::= SEQUENCE { cracaId HashedId3, @@ -385,20 +219,21 @@ MissingCrlIdentifier ::= SEQUENCE { } ``` +### PduFunctionalType -### PduFunctionalType +* `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. -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. +* `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. + ```asn1 PduFunctionalType ::= INTEGER (0..255) @@ -406,34 +241,19 @@ PduFunctionalType ::= INTEGER (0..255) iso21177ExtendedAuth PduFunctionalType ::= 2 ``` +### ContributedExtensionBlocks -### ContributedExtensionBlocks - -This data structure defines a list of ContributedExtensionBlock - ```asn1 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. +### ContributedExtensionBlock -Fields: -* contributorId [**IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION**](#IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION) .
      - uniquely identifies the contributor +* `contributorId` uniquely identifies the contributor - -* extns **SEQUENCE** (SIZE(1..MAX)) OF IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION.
      - contains a list of extensions from that contributor. +* `extns` contains a list of extensions from that contributor. - - - &id({Ieee1609Dot2HeaderInfoContributedExtensions}), ```asn1 ContributedExtensionBlock ::= SEQUENCE { contributorId IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION. @@ -443,13 +263,8 @@ ContributedExtensionBlock ::= SEQUENCE { } ``` -### IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION - -This data structure defines the information object class that - provides a "template" for defining extension blocks. +### IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION -Fields: -* id [**HeaderInfoContributorId**](#HeaderInfoContributorId) UNIQUE
      ```asn1 IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION ::= CLASS { &id HeaderInfoContributorId UNIQUE, @@ -457,19 +272,14 @@ IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION ::= CLASS { } WITH SYNTAX {&Extn IDENTIFIED BY &id} ``` -### Ieee1609Dot2HeaderInfoContributedExtensions +### Ieee1609Dot2HeaderInfoContributedExtensions -This data structure defines the set of ContributedExtensionBlock - Objects. - -* In
      - this version of the standard, only the type +* `In` this version of the standard, only the type EtsiOriginatingHeaderInfoExtension contributed by ETSI is supported. The information object EtsiOriginatingHeaderInfoExtension is imported from the EtsiTs103097ExtensionModule - ```asn1 Ieee1609Dot2HeaderInfoContributedExtensions IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION ::= { @@ -478,76 +288,18 @@ Ieee1609Dot2HeaderInfoContributedExtensions } ``` +### HeaderInfoContributorId -### 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. + ```asn1 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. - -
      3. 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.
      4. -
      - -Fields: -* digest [**HashedId8**](Ieee1609Dot2BaseTypes.md#HashedId8)
      -* certificate [**SequenceOfCertificate**](#SequenceOfCertificate)
      - -* self **NULL**
      - +### SignerIdentifier + ```asn1 SignerIdentifier ::= CHOICE { digest HashedId8, @@ -557,40 +309,17 @@ SignerIdentifier ::= CHOICE { } ``` -### 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. - +### EncryptedData -

      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: - -Fields: -* recipients [**SequenceOfRecipientInfo**](#SequenceOfRecipientInfo)
      - contains one or more RecipientInfos. These entries may +* `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 [**SymmetricCiphertext**](#SymmetricCiphertext)
      - contains the encrypted data. This is the encryption of +* `ciphertext` contains the encrypted data. This is the encryption of an encoded Ieee1609Dot2Data structure as specified in 5.3.4.2. - - ```asn1 EncryptedData ::= SEQUENCE { recipients SequenceOfRecipientInfo, @@ -598,56 +327,30 @@ 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. +### RecipientInfo -Fields: -* pskRecipInfo [**PreSharedKeyRecipientInfo**](#PreSharedKeyRecipientInfo)
      - The ciphertext was encrypted directly using a +* `pskRecipInfo` The ciphertext was encrypted directly using a symmetric key. - -* symmRecipInfo [**SymmRecipientInfo**](#SymmRecipientInfo)
      - The data encryption key was encrypted using a +* `symmRecipInfo` The data encryption key was encrypted using a symmetric key. - - -* certRecipInfo [**PKRecipientInfo**](#PKRecipientInfo)
      - The data encryption key was encrypted using a public +* `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 [**PKRecipientInfo**](#PKRecipientInfo)
      - The data encryption key was encrypted using a +* `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 [**PKRecipientInfo**](#PKRecipientInfo)
      - The data encryption key was encrypted using a public +* `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. - - ```asn1 RecipientInfo ::= CHOICE { pskRecipInfo PreSharedKeyRecipientInfo, @@ -658,50 +361,31 @@ RecipientInfo ::= CHOICE { } ``` +### SequenceOfRecipientInfo -### SequenceOfRecipientInfo - -This type is used for clarity of definitions. - ```asn1 SequenceOfRecipientInfo ::= SEQUENCE OF RecipientInfo ``` +### PreSharedKeyRecipientInfo -### 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. - ```asn1 PreSharedKeyRecipientInfo ::= HashedId8 ``` -### SymmRecipientInfo +### SymmRecipientInfo -This data structure contains the following fields: - -Fields: -* recipientId [**HashedId8**](Ieee1609Dot2BaseTypes.md#HashedId8)
      - contains the hash of the symmetric key encryption key +* `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 [**SymmetricCiphertext**](#SymmetricCiphertext)
      - contains the encrypted data encryption key within an AES-CCM +* `encKey` contains the encrypted data encryption key within an AES-CCM ciphertext. - - ```asn1 SymmRecipientInfo ::= SEQUENCE { recipientId HashedId8, @@ -709,27 +393,9 @@ SymmRecipientInfo ::= SEQUENCE { } ``` -### PKRecipientInfo - -This data structure contains the following fields: - - - -
    • 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.
    • +### PKRecipientInfo -
    • 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.
    • -
    - -Fields: -* recipientId [**HashedId8**](Ieee1609Dot2BaseTypes.md#HashedId8)
    - contains the hash of the container for the encryption +* `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:
      @@ -738,13 +404,9 @@ Fields: calculated with the whole-certificate hash algorithm, determined as described in 6.4.3. - -* encKey [**EncryptedDataEncryptionKey**](#EncryptedDataEncryptionKey)
      - contains the encrypted key. +* `encKey` contains the encrypted key. - - ```asn1 PKRecipientInfo ::= SEQUENCE { recipientId HashedId8, @@ -752,23 +414,8 @@ PKRecipientInfo ::= SEQUENCE { } ``` -### EncryptedDataEncryptionKey - -This data structure contains an encrypted data encryption key. +### EncryptedDataEncryptionKey - -

      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. - -Fields: -* eciesNistP256 [**EciesP256EncryptedKey**](Ieee1609Dot2BaseTypes.md#EciesP256EncryptedKey)
      -* eciesBrainpoolP256r1 [**EciesP256EncryptedKey**](Ieee1609Dot2BaseTypes.md#EciesP256EncryptedKey)
      - ```asn1 EncryptedDataEncryptionKey ::= CHOICE { eciesNistP256 EciesP256EncryptedKey, @@ -777,19 +424,8 @@ EncryptedDataEncryptionKey ::= CHOICE { } ``` -### SymmetricCiphertext - -This data structure encapsulates a ciphertext generated with an - approved symmetric algorithm. +### SymmetricCiphertext - -

      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. - -Fields: -* aes128ccm [**AesCcmCiphertext**](#AesCcmCiphertext)
      ```asn1 SymmetricCiphertext ::= CHOICE { aes128ccm AesCcmCiphertext, @@ -797,28 +433,13 @@ 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. - -Fields: -* nonce **OCTET STRING** (SIZE (12))
      - contains the nonce N as specified in 5.3.7. +### AesCcmCiphertext +* `nonce` contains the nonce N as specified in 5.3.7. -* ccmCiphertext [**Opaque**](Ieee1609Dot2BaseTypes.md#Opaque)
      - contains the ciphertext C as specified in 5.3.7. +* `ccmCiphertext` contains the ciphertext C as specified in 5.3.7. - - ```asn1 AesCcmCiphertext ::= SEQUENCE { nonce OCTET STRING (SIZE (12)), @@ -826,15 +447,8 @@ AesCcmCiphertext ::= SEQUENCE { } ``` +### Countersignature -### 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. - ```asn1 Countersignature ::= Ieee1609Dot2Data (WITH COMPONENTS {..., content (WITH COMPONENTS {..., @@ -858,116 +472,43 @@ Countersignature ::= Ieee1609Dot2Data (WITH COMPONENTS {..., }) ``` +### Certificate -### Certificate - -This structure is a profile of the structure CertificateBase which - specifies the valid combinations of fields to transmit implicit and - explicit certificates. - ```asn1 Certificate ::= CertificateBase (ImplicitCertificate | ExplicitCertificate) ``` +### SequenceOfCertificate -### SequenceOfCertificate - -This type is used for clarity of definitions. - ```asn1 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.
      • -
      +### CertificateBase - Parameters: - - - - - - -
    • 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.
    • -
    - -Fields: -* version [**Uint8**](Ieee1609Dot2BaseTypes.md#Uint8) (3)
    - contains the version of the certificate format. In this +* `version` contains the version of the certificate format. In this version of the data structures, this field is set to 3. - -* type [**CertificateType**](#CertificateType)
    - states whether the certificate is implicit or explicit. This +* `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. - -* issuer [**IssuerIdentifier**](#IssuerIdentifier)
    - identifies the issuer of the certificate. - - - -* toBeSigned [**ToBeSignedCertificate**](#ToBeSignedCertificate)
    - is the certificate contents. This field is an input to +* `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 [**Signature**](Ieee1609Dot2BaseTypes.md#Signature) OPTIONAL
    - is included in an ExplicitCertificate. It is the +* `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.
    • - - ```asn1 CertificateBase ::= SEQUENCE { version Uint8(3), @@ -978,18 +519,8 @@ CertificateBase ::= SEQUENCE { } ``` +### CertificateType -### 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. - ```asn1 CertificateType ::= ENUMERATED { explicit, @@ -998,12 +529,8 @@ CertificateType ::= ENUMERATED { } ``` +### ImplicitCertificate -### ImplicitCertificate - -This is a profile of the CertificateBase structure providing all - the fields necessary for an implicit certificate, and no others. - ```asn1 ImplicitCertificate ::= CertificateBase (WITH COMPONENTS {..., type(implicit), @@ -1014,12 +541,8 @@ ImplicitCertificate ::= CertificateBase (WITH COMPONENTS {..., }) ``` +### ExplicitCertificate -### ExplicitCertificate - -This is a profile of the CertificateBase structure providing all - the fields necessary for an explicit certificate, and no others. - ```asn1 ExplicitCertificate ::= CertificateBase (WITH COMPONENTS {..., type(explicit), @@ -1030,48 +553,8 @@ 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.
      • +### IssuerIdentifier -
      • 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. - -Fields: -* sha256AndDigest [**HashedId8**](Ieee1609Dot2BaseTypes.md#HashedId8)
      -* self [**HashAlgorithm**](Ieee1609Dot2BaseTypes.md#HashAlgorithm)
      - -* sha384AndDigest [**HashedId8**](Ieee1609Dot2BaseTypes.md#HashedId8)
      - - ..., ```asn1 IssuerIdentifier ::= CHOICE { sha256AndDigest HashedId8, @@ -1081,136 +564,39 @@ IssuerIdentifier ::= CHOICE { } ``` -### ToBeSignedCertificate +### 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: - - - - - - -
    • Otherwise, the certificate has the same validity region as the - certificate that issued it.
    • -
    - -Fields: -* id [**CertificateId**](#CertificateId)
    - contains information that is used to identify the certificate +* `id` contains information that is used to identify the certificate holder if necessary. - -* cracaId [**HashedId3**](Ieee1609Dot2BaseTypes.md#HashedId3)
    - identifies the Certificate Revocation Authorization CA +* `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 [**CrlSeries**](Ieee1609Dot2BaseTypes.md#CrlSeries)
    - represents the CRL series relevant to a particular +* `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. - -* validityPeriod [**ValidityPeriod**](Ieee1609Dot2BaseTypes.md#ValidityPeriod)
    - contains the validity period of the certificate. - - - -* region [**GeographicRegion**](Ieee1609Dot2BaseTypes.md#GeographicRegion) OPTIONAL
    - if present, indicates the validity region of the +* `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.
    • - - -* assuranceLevel [**SubjectAssurance**](Ieee1609Dot2BaseTypes.md#SubjectAssurance) OPTIONAL
      - indicates the assurance level of the certificate +* `assuranceLevel` indicates the assurance level of the certificate holder. - - -* appPermissions [**SequenceOfPsidSsp**](Ieee1609Dot2BaseTypes.md#SequenceOfPsidSsp) OPTIONAL
      - indicates the permissions that the certificate +* `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 [**SequenceOfPsidGroupPermissions**](#SequenceOfPsidGroupPermissions) OPTIONAL
      - indicates the permissions that the certificate +* `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 @@ -1219,10 +605,7 @@ Fields: the other entries. See the description of PsidGroupPermissions for further discussion. - - -* certRequestPermissions [**SequenceOfPsidGroupPermissions**](#SequenceOfPsidGroupPermissions) OPTIONAL
      - indicates the permissions that the +* `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 @@ -1231,32 +614,18 @@ Fields: explicitly specified in the other entries. See the description of PsidGroupPermissions for further discussion. - - -* canRequestRollover **NULL** OPTIONAL
      - indicates that the certificate may be used to +* `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 [**PublicEncryptionKey**](Ieee1609Dot2BaseTypes.md#PublicEncryptionKey) OPTIONAL
      - contains a public key for encryption for which the +* `encryptionKey` contains a public key for encryption for which the certificate holder holds the corresponding private key. - - -* verifyKeyIndicator [**VerificationKeyIndicator**](#VerificationKeyIndicator)
      - contains material that may be used to recover +* `verifyKeyIndicator` contains material that may be used to recover the public key that may be used to verify data signed by this certificate. - - -* flags **BIT STRING** {cubk (0)} (SIZE (8)) OPTIONAL
      - - ..., ```asn1 ToBeSignedCertificate ::= SEQUENCE { id CertificateId, @@ -1279,46 +648,21 @@ ToBeSignedCertificate ::= SEQUENCE { 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.
      • -
      +### CertificateId - Parameters: - -Fields: -* linkageData [**LinkageData**](#LinkageData)
      - is used to identify the certificate for revocation +* `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 [**Hostname**](Ieee1609Dot2BaseTypes.md#Hostname)
      - is used to identify the certificate holder in the case of +* `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. - -* binaryId **OCTET STRING** (SIZE(1..64))
      - supports identifiers that are not human-readable. - - - -* none **NULL**
      - indicates that the certificate does not include an identifier. +* `none` indicates that the certificate does not include an identifier. - - ```asn1 CertificateId ::= CHOICE { linkageData LinkageData, @@ -1329,19 +673,8 @@ CertificateId ::= CHOICE { } ``` -### LinkageData +### 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. - -Fields: -* iCert [**IValue**](Ieee1609Dot2BaseTypes.md#IValue)
      -* linkage-value [**LinkageValue**](Ieee1609Dot2BaseTypes.md#LinkageValue)
      - -* group-linkage-value [**GroupLinkageValue**](Ieee1609Dot2BaseTypes.md#GroupLinkageValue) OPTIONAL
      - ```asn1 LinkageData ::= SEQUENCE { iCert IValue, @@ -1350,16 +683,8 @@ LinkageData ::= SEQUENCE { } ``` +### EndEntityType -### 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. - ```asn1 EndEntityType ::= BIT STRING { app (0), @@ -1367,23 +692,12 @@ 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. +### PsidGroupPermissions -Fields: -* subjectPermissions [**SubjectPermissions**](#SubjectPermissions)
      - indicates PSIDs and SSP Ranges covered by this +* `subjectPermissions` indicates PSIDs and SSP Ranges covered by this field. - -* minChainLength **INTEGER** DEFAULT 1
      - and chainLengthRange indicate how long the +* `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, @@ -1397,12 +711,7 @@ Fields: it indicates that the certificate chain may be any length equal to or greater than minChainLength. See the examples below for further discussion. - - -* chainLengthRange **INTEGER** DEFAULT 0
      - -* eeType [**EndEntityType**](#EndEntityType) DEFAULT {app}
      - takes one or more of the values app and enroll and indicates +* `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 @@ -1418,8 +727,6 @@ Fields: may have different values for eeType. - - ```asn1 PsidGroupPermissions ::= SEQUENCE { subjectPermissions SubjectPermissions, @@ -1429,46 +736,14 @@ PsidGroupPermissions ::= SEQUENCE { } ``` +### SequenceOfPsidGroupPermissions -### SequenceOfPsidGroupPermissions - -This type is used for clarity of definitions. - ```asn1 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.
      • -
      - -Fields: -* explicit [**SequenceOfPsidSspRange**](Ieee1609Dot2BaseTypes.md#SequenceOfPsidSspRange)
      -* all **NULL**
      - +### SubjectPermissions + ```asn1 SubjectPermissions ::= CHOICE { explicit SequenceOfPsidSspRange, @@ -1477,34 +752,17 @@ SubjectPermissions ::= CHOICE { } ``` -### VerificationKeyIndicator +### 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: - -Fields: -* verificationKey [**PublicVerificationKey**](Ieee1609Dot2BaseTypes.md#PublicVerificationKey)
      - is included in explicit certificates. It contains +* `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 [**EccP256CurvePoint**](Ieee1609Dot2BaseTypes.md#EccP256CurvePoint)
      - is included in implicit certificates. It +* `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. - - ```asn1 VerificationKeyIndicator ::= CHOICE { verificationKey PublicVerificationKey, diff --git a/docs/Ieee1609Dot2BaseTypes.md b/docs/Ieee1609Dot2BaseTypes.md index 90733e8..e0acea5 100644 --- a/docs/Ieee1609Dot2BaseTypes.md +++ b/docs/Ieee1609Dot2BaseTypes.md @@ -5,247 +5,103 @@ abbreviations used in this file are specified in 3.2. ## Data Elements: +### Uint3 -### 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. - ```asn1 Uint3 ::= INTEGER (0..7) ``` +### Uint8 -### 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. - ```asn1 Uint8 ::= INTEGER (0..255) ``` +### Uint16 -### 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. - ```asn1 Uint16 ::= INTEGER (0..65535) ``` +### Uint32 -### 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. - ```asn1 Uint32 ::= INTEGER (0..4294967295) ``` +### Uint64 -### 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. - ```asn1 Uint64 ::= INTEGER (0..18446744073709551615) ``` +### SequenceOfUint8 -### SequenceOfUint8 - -This type is used for clarity of definitions. - ```asn1 SequenceOfUint8 ::= SEQUENCE OF Uint8 ``` +### SequenceOfUint16 -### SequenceOfUint16 - -This type is used for clarity of definitions. - ```asn1 SequenceOfUint16 ::= SEQUENCE OF Uint16 ``` +### Opaque -### Opaque - -This is a synonym for ASN.1 OCTET STRING, and is used in the - definition of other data structures. - ```asn1 Opaque ::= OCTET STRING ``` +### HashedId3 -### 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. - ```asn1 HashedId3 ::= OCTET STRING (SIZE(3)) ``` +### SequenceOfHashedId3 -### SequenceOfHashedId3 - -This type is used for clarity of definitions. - ```asn1 SequenceOfHashedId3 ::= SEQUENCE OF HashedId3 ``` +### HashedId8 -### 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. - ```asn1 HashedId8 ::= OCTET STRING (SIZE(8)) ``` +### HashedId10 -### 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. - ```asn1 HashedId10 ::= OCTET STRING (SIZE(10)) ``` +### HashedId32 -### 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. - ```asn1 HashedId32 ::= OCTET STRING (SIZE(32)) ``` +### Time32 -### Time32 - -This type gives the number of (TAI) seconds since 00:00:00 UTC, 1 - January, 2004. - ```asn1 Time32 ::= Uint32 ``` +### Time64 -### Time64 - -This type gives the number of (TAI) microseconds since 00:00:00 - UTC, 1 January, 2004. - ```asn1 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. +### ValidityPeriod -Fields: -* start [**Time32**](Ieee1609Dot2BaseTypes.md#Time32)
      - contains the starting time of the validity period. +* `start` contains the starting time of the validity period. - -* duration [**Duration**](#Duration)
      - contains the duration of the validity period. +* `duration` contains the duration of the validity period. - - ```asn1 ValidityPeriod ::= SEQUENCE { start Time32, @@ -253,52 +109,23 @@ ValidityPeriod ::= SEQUENCE { } ``` -### Duration +### 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. -Fields: -* microseconds [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
      - contains the duration in microseconds. +* `milliseconds` contains the duration in milliseconds. +* `seconds` contains the duration in seconds. -* milliseconds [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
      - contains the duration in milliseconds. +* `minutes` contains the duration in minutes. +* `hours` contains the duration in hours. - -* seconds [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
      - contains the duration in seconds. - +* `sixtyHours` contains the duration in sixty-hour periods. +* `years` contains the duration in years. -* minutes [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
      - contains the duration in minutes. - - - -* hours [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
      - contains the duration in hours. - - -* sixtyHours [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
      - contains the duration in sixty-hour periods. - - - -* years [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
      - contains the duration in years. - - - - ```asn1 Duration ::= CHOICE { microseconds Uint16, @@ -311,62 +138,24 @@ Duration ::= CHOICE { } ``` -### GeographicRegion +### 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: - -Fields: -* circularRegion [**CircularRegion**](#CircularRegion)
      - contains a single instance of the CircularRegion +* `circularRegion` contains a single instance of the CircularRegion structure. - -* rectangularRegion [**SequenceOfRectangularRegion**](#SequenceOfRectangularRegion)
      - is an array of RectangularRegion structures +* `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 [**PolygonalRegion**](#PolygonalRegion)
      - contains a single instance of the PolygonalRegion +* `polygonalRegion` contains a single instance of the PolygonalRegion structure. - - -* identifiedRegion [**SequenceOfIdentifiedRegion**](#SequenceOfIdentifiedRegion)
      - is an array of IdentifiedRegion structures +* `identifiedRegion` is an array of IdentifiedRegion structures containing at least one entry. The permitted region is any point within any of the identified regions. - - ```asn1 GeographicRegion ::= CHOICE { circularRegion CircularRegion, @@ -377,20 +166,8 @@ 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 -Fields: -* center [**TwoDLocation**](#TwoDLocation)
      -* radius [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
      - ```asn1 CircularRegion ::= SEQUENCE { center TwoDLocation, @@ -398,23 +175,8 @@ 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 -Fields: -* northWest [**TwoDLocation**](#TwoDLocation)
      -* southEast [**TwoDLocation**](#TwoDLocation)
      - ```asn1 RectangularRegion ::= SEQUENCE { northWest TwoDLocation, @@ -422,65 +184,20 @@ RectangularRegion ::= SEQUENCE { } ``` +### SequenceOfRectangularRegion -### SequenceOfRectangularRegion - -This type is used for clarity of definitions. - ```asn1 SequenceOfRectangularRegion ::= SEQUENCE OF RectangularRegion ``` +### PolygonalRegion -### 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.
      • -
      - ```asn1 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. - +### TwoDLocation -

      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. - -Fields: -* latitude [**Latitude**](#Latitude)
      -* longitude [**Longitude**](#Longitude)
      - ```asn1 TwoDLocation ::= SEQUENCE { latitude Latitude, @@ -488,25 +205,8 @@ TwoDLocation ::= SEQUENCE { } ``` -### IdentifiedRegion - -This structure indicates the region of validity of a certificate - using region identifiers. - +### IdentifiedRegion -

      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.
      • -
      - -Fields: -* countryOnly [**CountryOnly**](#CountryOnly)
      -* countryAndRegions [**CountryAndRegions**](#CountryAndRegions)
      - -* countryAndSubregions [**CountryAndSubregions**](#CountryAndSubregions)
      - ```asn1 IdentifiedRegion ::= CHOICE { countryOnly CountryOnly, @@ -516,39 +216,23 @@ IdentifiedRegion ::= CHOICE { } ``` +### SequenceOfIdentifiedRegion -### SequenceOfIdentifiedRegion - -This type is used for clarity of definitions. - ```asn1 SequenceOfIdentifiedRegion ::= SEQUENCE OF IdentifiedRegion ``` +### CountryOnly -### 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). - ```asn1 CountryOnly ::= Uint16 ``` -### CountryAndRegions - -In this structure: - -Fields: -* countryOnly [**CountryOnly**](#CountryOnly)
      - is a CountryOnly as defined above. +### CountryAndRegions +* `countryOnly` is a CountryOnly as defined above. -* regions [**SequenceOfUint8**](#SequenceOfUint8)
      - -* region
      - identifies one or more regions within the country. If +* `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 @@ -557,7 +241,6 @@ Fields: standard. - ```asn1 CountryAndRegions ::= SEQUENCE { countryOnly CountryOnly, @@ -565,29 +248,11 @@ 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.
      • -
      - +### CountryAndSubregions - Parameters: +* `country` is a CountryOnly as defined above. -Fields: -* country [**CountryOnly**](#CountryOnly)
      - is a CountryOnly as defined above. - - -* regionAndSubregions [**SequenceOfRegionAndSubregions**](#SequenceOfRegionAndSubregions)
      - identifies one or more subregions within +* `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 @@ -596,8 +261,6 @@ Fields: of this standard. - - ```asn1 CountryAndSubregions ::= SEQUENCE { country CountryOnly, @@ -605,33 +268,15 @@ 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.
      • -
      +### RegionAndSubregions - - Parameters: - -Fields: -* region [**Uint8**](Ieee1609Dot2BaseTypes.md#Uint8)
      - identifies a region within a country as specified under +* `region` identifies a region within a country as specified under CountryAndRegions. - -* subregions [**SequenceOfUint16**](#SequenceOfUint16)
      - identifies one or more subregions as specified under +* `subregions` identifies one or more subregions as specified under CountryAndSubregions. - - ```asn1 RegionAndSubregions ::= SEQUENCE { region Uint8, @@ -639,31 +284,14 @@ RegionAndSubregions ::= SEQUENCE { } ``` +### SequenceOfRegionAndSubregions -### SequenceOfRegionAndSubregions - -This type is used for clarity of definitions. - ```asn1 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 -Fields: -* latitude [**Latitude**](#Latitude)
      -* longitude [**Longitude**](#Longitude)
      - -* elevation [**Elevation**](#Elevation)
      - ```asn1 ThreeDLocation ::= SEQUENCE { latitude Latitude, @@ -672,47 +300,26 @@ ThreeDLocation ::= SEQUENCE { } ``` +### Latitude -### 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. - ```asn1 Latitude ::= NinetyDegreeInt ``` +### Longitude -### 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. - ```asn1 Longitude ::= OneEightyDegreeInt ``` +### Elevation -### 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. - ```asn1 Elevation ::= Uint16 ``` +### NinetyDegreeInt -### 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. - ```asn1 NinetyDegreeInt ::= INTEGER { min (-900000000), @@ -721,33 +328,20 @@ NinetyDegreeInt ::= INTEGER { } (-900000000..900000001) ``` +### KnownLatitude -### KnownLatitude - -The known latitudes are from -900,000,000 to +900,000,000 in 0.1 - microdegree intervals. - ```asn1 KnownLatitude ::= NinetyDegreeInt (min..max) ``` +### UnknownLatitude -### UnknownLatitude - -The value 900,000,001 indicates that the latitude was not - available to the sender. - ```asn1 UnknownLatitude ::= NinetyDegreeInt (unknown) ``` +### OneEightyDegreeInt -### 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. - ```asn1 OneEightyDegreeInt ::= INTEGER { min (-1799999999), @@ -756,46 +350,20 @@ OneEightyDegreeInt ::= INTEGER { } (-1799999999..1800000001) ``` +### KnownLongitude -### KnownLongitude - -The known longitudes are from -1,799,999,999 to +1,800,000,000 in - 0.1 microdegree intervals. - ```asn1 KnownLongitude ::= OneEightyDegreeInt (min..max) ``` +### UnknownLongitude -### UnknownLongitude - -The value 1,800,000,001 indicates that the longitude was not - available to the sender. - ```asn1 UnknownLongitude ::= OneEightyDegreeInt (unknown) ``` -### Signature - -This structure represents a signature for a supported public key - algorithm. It may be contained within SignedData or Certificate. +### Signature - -

      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. - -Fields: -* ecdsaNistP256Signature [**EcdsaP256Signature**](#EcdsaP256Signature)
      -* ecdsaBrainpoolP256r1Signature [**EcdsaP256Signature**](#EcdsaP256Signature)
      - -* ecdsaBrainpoolP384r1Signature [**EcdsaP384Signature**](#EcdsaP384Signature)
      - - ..., -* ecdsaNistP384Signature [**EcdsaP384Signature**](#EcdsaP384Signature)
      - ```asn1 Signature ::= CHOICE { ecdsaNistP256Signature EcdsaP256Signature, @@ -806,56 +374,8 @@ 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 -
      • -
      - -Fields: -* rSig [**EccP256CurvePoint**](Ieee1609Dot2BaseTypes.md#EccP256CurvePoint)
      -* sSig **OCTET STRING** (SIZE (32))
      - +### EcdsaP256Signature + ```asn1 EcdsaP256Signature ::= SEQUENCE { rSig EccP256CurvePoint, @@ -863,47 +383,8 @@ EcdsaP256Signature ::= SEQUENCE { } ``` -### EcdsaP384Signature - -This structure represents an ECDSA signature. The signature is - generated as specified in 5.3.1. - +### EcdsaP384Signature -

      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
      • -
      - -Fields: -* rSig [**EccP384CurvePoint**](#EccP384CurvePoint)
      -* sSig **OCTET STRING** (SIZE (48))
      - ```asn1 EcdsaP384Signature ::= SEQUENCE { rSig EccP384CurvePoint, @@ -911,36 +392,8 @@ 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. - -Fields: -* 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)) - }
      - +### EccP256CurvePoint + ```asn1 EccP256CurvePoint ::= CHOICE { x-only OCTET STRING (SIZE (32)), @@ -954,36 +407,8 @@ 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. - -Fields: -* 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)) - }
      - +### EccP384CurvePoint + ```asn1 EccP384CurvePoint ::= CHOICE { x-only OCTET STRING (SIZE (48)), @@ -997,13 +422,8 @@ EccP384CurvePoint ::= CHOICE { } ``` +### SymmAlgorithm -### 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. - ```asn1 SymmAlgorithm ::= ENUMERATED { aes128Ccm, @@ -1011,19 +431,8 @@ SymmAlgorithm ::= ENUMERATED { } ``` +### HashAlgorithm -### 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. - ```asn1 HashAlgorithm ::= ENUMERATED { sha256, @@ -1032,36 +441,19 @@ HashAlgorithm ::= ENUMERATED { } ``` -### EciesP256EncryptedKey +### 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: - -Fields: -* v [**EccP256CurvePoint**](Ieee1609Dot2BaseTypes.md#EccP256CurvePoint)
      - is the sender’s ephemeral public key, which is the output V from +* `v` is the sender’s ephemeral public key, which is the output V from encryption as specified in 5.3.4. - -* c **OCTET STRING** (SIZE (16))
      - is the encrypted symmetric key, which is the output C from +* `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 **OCTET STRING** (SIZE (16))
      - is the authentication tag, which is the output tag from +* `t` is the authentication tag, which is the output tag from encryption as specified in 5.3.4. - - ```asn1 EciesP256EncryptedKey ::= SEQUENCE { v EccP256CurvePoint, @@ -1070,15 +462,8 @@ EciesP256EncryptedKey ::= SEQUENCE { } ``` -### EncryptionKey +### EncryptionKey -This structure contains an encryption key, which may be a public or - a symmetric key. - -Fields: -* public [**PublicEncryptionKey**](Ieee1609Dot2BaseTypes.md#PublicEncryptionKey)
      -* symmetric [**SymmetricEncryptionKey**](Ieee1609Dot2BaseTypes.md#SymmetricEncryptionKey)
      - ```asn1 EncryptionKey ::= CHOICE { public PublicEncryptionKey, @@ -1086,16 +471,8 @@ 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 -Fields: -* supportedSymmAlg [**SymmAlgorithm**](#SymmAlgorithm)
      -* publicKey [**BasePublicEncryptionKey**](#BasePublicEncryptionKey)
      - ```asn1 PublicEncryptionKey ::= SEQUENCE { supportedSymmAlg SymmAlgorithm, @@ -1103,16 +480,8 @@ 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 -Fields: -* eciesNistP256 [**EccP256CurvePoint**](Ieee1609Dot2BaseTypes.md#EccP256CurvePoint)
      -* eciesBrainpoolP256r1 [**EccP256CurvePoint**](Ieee1609Dot2BaseTypes.md#EccP256CurvePoint)
      - ```asn1 BasePublicEncryptionKey ::= CHOICE { eciesNistP256 EccP256CurvePoint, @@ -1121,31 +490,8 @@ 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. +### PublicVerificationKey -

      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. - -Fields: -* ecdsaNistP256 [**EccP256CurvePoint**](Ieee1609Dot2BaseTypes.md#EccP256CurvePoint)
      -* ecdsaBrainpoolP256r1 [**EccP256CurvePoint**](Ieee1609Dot2BaseTypes.md#EccP256CurvePoint)
      - -* ecdsaBrainpoolP384r1 [**EccP384CurvePoint**](#EccP384CurvePoint)
      - - ..., -* ecdsaNistP384 [**EccP384CurvePoint**](#EccP384CurvePoint)
      - ```asn1 PublicVerificationKey ::= CHOICE { ecdsaNistP256 EccP256CurvePoint, @@ -1156,14 +502,8 @@ PublicVerificationKey ::= CHOICE { } ``` -### SymmetricEncryptionKey +### 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. - -Fields: -* aes128Ccm **OCTET STRING** (SIZE(16))
      ```asn1 SymmetricEncryptionKey ::= CHOICE { aes128Ccm OCTET STRING(SIZE(16)), @@ -1171,42 +511,8 @@ SymmetricEncryptionKey ::= CHOICE { } ``` -### 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. +### PsidSsp -

      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. - -Fields: -* psid [**Psid**](Ieee1609Dot2BaseTypes.md#Psid)
      -* ssp [**ServiceSpecificPermissions**](Ieee1609Dot2BaseTypes.md#ServiceSpecificPermissions) OPTIONAL
      - ```asn1 PsidSsp ::= SEQUENCE { psid Psid, @@ -1214,73 +520,26 @@ PsidSsp ::= SEQUENCE { } ``` +### SequenceOfPsidSsp -### SequenceOfPsidSsp - -This type is used for clarity of definitions. - ```asn1 SequenceOfPsidSsp ::= SEQUENCE OF PsidSsp ``` +### Psid -### Psid - -This type represents the PSID defined in IEEE Std 1609.12. - ```asn1 Psid ::= INTEGER (0..MAX) ``` +### SequenceOfPsid -### SequenceOfPsid - -This type is used for clarity of definitions. - ```asn1 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 -Fields: -* opaque **OCTET STRING** (SIZE(0..MAX))
      -* bitmapSsp [**BitmapSsp**](#BitmapSsp)
      - - ..., ```asn1 ServiceSpecificPermissions ::= CHOICE { opaque OCTET STRING (SIZE(0..MAX)), @@ -1289,69 +548,21 @@ ServiceSpecificPermissions ::= CHOICE { } ``` +### BitmapSsp -### 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. - ```asn1 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. - -Fields: -* psid [**Psid**](Ieee1609Dot2BaseTypes.md#Psid)
      - identifies the application area. +### PsidSspRange +* `psid` identifies the application area. -* sspRange [**SspRange**](#SspRange) OPTIONAL
      - identifies the SSPs associated with that PSID for which +* `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. - - ```asn1 PsidSspRange ::= SEQUENCE { psid Psid, @@ -1359,69 +570,14 @@ PsidSspRange ::= SEQUENCE { } ``` +### SequenceOfPsidSspRange -### SequenceOfPsidSspRange - -This type is used for clarity of definitions. - ```asn1 SequenceOfPsidSspRange ::= SEQUENCE OF PsidSspRange ``` -### SspRange +### 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". - -Fields: -* opaque [**SequenceOfOctetString**](#SequenceOfOctetString)
      -* all **NULL**
      - -* bitmapSspRange [**BitmapSspRange**](#BitmapSspRange)
      - - ... , ```asn1 SspRange ::= CHOICE { opaque SequenceOfOctetString, @@ -1431,49 +587,8 @@ 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 -Fields: -* sspValue **OCTET STRING** (SIZE(1..32))
      -* sspBitmask **OCTET STRING** (SIZE(1..32))
      - ```asn1 BitmapSspRange ::= SEQUENCE { sspValue OCTET STRING (SIZE(1..32)), @@ -1481,107 +596,45 @@ BitmapSspRange ::= SEQUENCE { } ``` +### SequenceOfOctetString -### SequenceOfOctetString - -This type is used for clarity of definitions. - ```asn1 SequenceOfOctetString ::= SEQUENCE (SIZE (0..MAX)) OF OCTET STRING (SIZE(0..MAX)) ``` +### SubjectAssurance -### 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 43 2 1 0
      Interpretation A A A RR 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. - ```asn1 SubjectAssurance ::= OCTET STRING (SIZE(1)) ``` +### CrlSeries -### CrlSeries - -This integer identifies a series of CRLs issued under the authority - of a particular CRACA. - ```asn1 CrlSeries ::= Uint16 ``` +### IValue -### IValue - -This atomic type is used in the definition of other data structures. - ```asn1 IValue ::= Uint16 ``` +### Hostname -### Hostname - -This is a UTF-8 string as defined in IETF RFC 3629. The contents - are determined by policy. - ```asn1 Hostname ::= UTF8String (SIZE(0..255)) ``` +### LinkageValue -### LinkageValue - -This is the individual linkage value. See 5.1.3 and 7.3 for details - of use. - ```asn1 LinkageValue ::= OCTET STRING (SIZE(9)) ``` -### GroupLinkageValue +### GroupLinkageValue -This is the group linkage value. See 5.1.3 and 7.3 for details of - use. - -Fields: -* jValue **OCTET STRING** (SIZE(4))
      -* value **OCTET STRING** (SIZE(9))
      - ```asn1 GroupLinkageValue ::= SEQUENCE { jValue OCTET STRING (SIZE(4)), @@ -1589,22 +642,14 @@ GroupLinkageValue ::= SEQUENCE { } ``` +### LaId -### LaId - -This structure contains a LA Identifier for use in the algorithms - specified in 5.1.3.4. - ```asn1 LaId ::= OCTET STRING (SIZE(2)) ``` +### LinkageSeed -### LinkageSeed - -This structure contains a linkage seed value for use in the - algorithms specified in 5.1.3.4. - ```asn1 LinkageSeed ::= OCTET STRING (SIZE(16)) ``` -- GitLab From bea0293d523104a2b1c64012ff3beda8af8bf2ae Mon Sep 17 00:00:00 2001 From: Virendra Kumar Date: Wed, 31 Aug 2022 09:14:13 -0400 Subject: [PATCH 31/66] Removed unnecessary files, replaced dummy CAM file with the real one from cam folder, deleted cam folder, removed unused detectors defined for BSMs, renamed the observations IOS to include Cam in their names --- .gitmodules | 3 - EtsiTs103759AsrCam.asn | 166 ++++++++++++++++++++++++++- EtsiTs103759CommonObservations.asn | 150 +------------------------ cam/EtsiTs103759AsrCam.asn | 174 ----------------------------- cdd | 1 - 5 files changed, 169 insertions(+), 325 deletions(-) delete mode 100644 cam/EtsiTs103759AsrCam.asn delete mode 160000 cdd diff --git a/.gitmodules b/.gitmodules index c65df36..ec80cbd 100755 --- a/.gitmodules +++ b/.gitmodules @@ -2,9 +2,6 @@ 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 [submodule "sec_ts103097"] path = sec_ts103097 url = https://forge.etsi.org/rep/ITS/asn1/sec_ts103097.git diff --git a/EtsiTs103759AsrCam.asn b/EtsiTs103759AsrCam.asn index 5714f93..14faddb 100755 --- a/EtsiTs103759AsrCam.asn +++ b/EtsiTs103759AsrCam.asn @@ -1,14 +1,174 @@ 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-0(0)} + 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)} +WITH SUCCESSORS + + SetMbObsCamBeacon, + SetMbObsCamSecurity, + SetMbObsCamStatic, + SetMbObsCamLongAcc, + SetMbObsCamPosition, + SetMbObsCamSpeed +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)} +WITH SUCCESSORS + + 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-3(3)} +WITH SUCCESSORS +; + +/** + * @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 + +/** + * @brief This is a complete set of observations for CAM. Application-specific + * trigger conditions and other relevant information are specified below. + * + * @param SetMbObsCamBeacon: + * - `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 SetMbObsCamStatic: + * - `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 SetMbObsCamSecurity: + * - `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 specified in ETSI TS 103 097 V2.1.1 + * (2021-10), 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 not contained in the appPermissions of 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, as specified in ETSI EN 302 637-2 V1.4.1 + * (2019-04),e.g., publicTransportContainer is present in the + * specialVehicleContainer but the relevant SSP in the certificate does not + * permit publicTransportContainer. + * + * - `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{{SetMbObsCamBeacon}} BY + c-CamTgt-BeaconCommon} | + {MbSingleObservation{{SetMbObsCamStatic}} BY + c-CamTgt-StaticCommon} | + {MbSingleObservation{{SetMbObsCamSecurity}} BY + c-CamTgt-SecurityCommon} | + {MbSingleObservation{{SetMbObsCamPosition}} BY + c-CamTgt-PositionCommon} | + {MbSingleObservation{{SetMbObsCamSpeed}} BY + c-CamTgt-SpeedCommon} | + {MbSingleObservation{{SetMbObsCamLongAcc}} BY + c-CamTgt-LongAccCommon}, + ... +} + /** - * @brief This data type is defined as NULL for version 0 of this file. + * @brief This data type defines the IOS for CAM Evidence. */ -AsrCam ::= NULL +SetMbEvCam C-ASR-EV ::= { + ... +} END \ No newline at end of file diff --git a/EtsiTs103759CommonObservations.asn b/EtsiTs103759CommonObservations.asn index 506c49b..6dce4b2 100644 --- a/EtsiTs103759CommonObservations.asn +++ b/EtsiTs103759CommonObservations.asn @@ -57,7 +57,7 @@ obs-Beacon-IntervalTooSmall C-ASR-SINGLE-OBS ::= {Beacon-IntervalTooSmall BY c-ObsBeacon-IntervalTooSmall} -- Information Object Set -SetMbObsCompleteBeacon C-ASR-SINGLE-OBS ::= { +SetMbObsCamBeacon C-ASR-SINGLE-OBS ::= { obs-Beacon-IntervalTooSmall, ... } @@ -93,7 +93,7 @@ obs-Static-Change C-ASR-SINGLE-OBS ::= {Static-Change BY c-ObsStatic-Change} -- Information Object Set -SetMbObsCompleteStatic C-ASR-SINGLE-OBS ::= { +SetMbObsCamStatic C-ASR-SINGLE-OBS ::= { obs-Static-Change, ... } @@ -278,7 +278,7 @@ obs-Security-HeaderLocationOutsideCertificateValidity } -- Information Object Set -SetMbObsCompleteSecurity C-ASR-SINGLE-OBS ::= { +SetMbObsCamSecurity C-ASR-SINGLE-OBS ::= { obs-Security-MessageIdIncWithHeaderInfo | obs-Security-HeaderIncWithSecurityProfile | obs-Security-HeaderPsidIncWithCertificate | @@ -293,51 +293,6 @@ SetMbObsCompleteSecurity C-ASR-SINGLE-OBS ::= { * Position issues */ -/* - * @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 - -/* - * @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 -} - /** * @brief This data type is provided for an observation of change in position * that is too large. The trigger conditions are provided in the @@ -357,31 +312,15 @@ Pos-IncWithPrev-TooFar ::= SEQUENCE { Position-ChangeTooLarge ::= NULL -- IDs -c-ObsPos-IncWithPrev-TooSmall IdMbObs ::= 2 -c-ObsPos-IncWithPrev-TooFar IdMbObs ::= 3 c-ObsPosition-ChangeTooLarge IdMbObs ::= 4 -- 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 } -SetMbObsPosition C-ASR-SINGLE-OBS ::= { - obs-Pos-IncWithPrev-TooSmall | - obs-Pos-IncWithPrev-TooFar | - obs-Position-ChangeTooLarge, - ... -} - -SetMbObsEtsiOnlyPosition C-ASR-SINGLE-OBS ::= { +SetMbObsCamPosition C-ASR-SINGLE-OBS ::= { obs-Position-ChangeTooLarge, ... } @@ -472,7 +411,6 @@ Speed-ValueTooLarge-DriveDirectionReverse ::= NULL Speed-ChangeTooLarge ::= NULL -- IDs -c-ObsSpeed-ValueTooLarge-ThresholdNoContext IdMbObs::= 2 c-ObsSpeed-ValueTooLarge-VehicleType IdMbObs::= 3 c-ObsSpeed-ValueTooLarge-DriveDirectionReverse IdMbObs::= 4 c-ObsSpeed-ChangeTooLarge IdMbObs::= 5 @@ -482,11 +420,6 @@ 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 @@ -496,15 +429,7 @@ obs-Speed-ChangeTooLarge C-ASR-SINGLE-OBS ::= { Speed-ChangeTooLarge BY c-ObsSpeed-ChangeTooLarge } -SetMbObsSpeed C-ASR-SINGLE-OBS ::= { - obs-Speed-ValueTooLarge-VehicleType | - obs-Speed-ValueTooLarge-ThresholdNoContext | - obs-Speed-ValueTooLarge-DriveDirectionReverse | - obs-Speed-ChangeTooLarge, - ... -} - -SetMbObsEtsiOnlySpeed C-ASR-SINGLE-OBS ::= { +SetMbObsCamSpeed C-ASR-SINGLE-OBS ::= { obs-Speed-ValueTooLarge-VehicleType | obs-Speed-ValueTooLarge-DriveDirectionReverse | obs-Speed-ChangeTooLarge, @@ -516,53 +441,6 @@ SetMbObsEtsiOnlySpeed C-ASR-SINGLE-OBS ::= { * Longitudinal acceleration issues */ -/* - * @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 -} - -/* - * @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 - /** * @brief This data type is provided for an observation of longitudinal * acceleration that is too large. The trigger conditions are provided in the @@ -581,31 +459,15 @@ LongAcc-Implausible-Brake ::= NULL LongAcc-ValueTooLarge ::= NULL -- IDs -c-ObsLongAcc-ValueTooLarge-ThresholdNoContext IdMbObs::= 2 -c-ObsLongAcc-Implausible-Brake IdMbObs::= 3 c-ObsLongAcc-ValueTooLarge IdMbObs::= 4 -- 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 } -SetMbObsLongAcc C-ASR-SINGLE-OBS ::= { - obs-LongAcc-Implausible-Brake | - obs-LongAcc-ValueTooLarge, - ... -} - -SetMbObsEtsiOnlyLongAcc C-ASR-SINGLE-OBS ::= { +SetMbObsCamLongAcc C-ASR-SINGLE-OBS ::= { obs-LongAcc-ValueTooLarge, ... } diff --git a/cam/EtsiTs103759AsrCam.asn b/cam/EtsiTs103759AsrCam.asn deleted file mode 100644 index d9b7495..0000000 --- a/cam/EtsiTs103759AsrCam.asn +++ /dev/null @@ -1,174 +0,0 @@ -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)} -WITH SUCCESSORS - - 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)} -WITH SUCCESSORS - - 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-3(3)} -WITH SUCCESSORS -; - -/** - * @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 - -/** - * @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 specified in ETSI TS 103 097 V2.1.1 - * (2021-10), 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 not contained in the appPermissions of 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, as specified in ETSI EN 302 637-2 V1.4.1 - * (2019-04),e.g., publicTransportContainer is present in the - * specialVehicleContainer but the relevant SSP in the certificate does not - * permit publicTransportContainer. - * - * - `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}, - ... -} - -/** - * @brief This data type defines the IOS for CAM Evidence. - */ -SetMbEvCam C-ASR-EV ::= { - ... -} - -END \ No newline at end of file diff --git a/cdd b/cdd deleted file mode 160000 index 2d2450e..0000000 --- a/cdd +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 2d2450e79aab4c7032ef615b72ddefaf2e5ba8a9 -- GitLab From 50fe7ccf32d986110d7b765698c282965cd1e449 Mon Sep 17 00:00:00 2001 From: Virendra Kumar Date: Wed, 31 Aug 2022 09:33:59 -0400 Subject: [PATCH 32/66] Updated documentation files --- docs/EtsiTs103759AsrCam-0.html | 812 ------------------ docs/EtsiTs103759AsrCam-0.md | 16 - ...9AsrCam-1.html => EtsiTs103759AsrCam.html} | 2 +- ...03759AsrCam-1.md => EtsiTs103759AsrCam.md} | 12 +- docs/EtsiTs103759MbrCommonObservations.html | 72 +- docs/EtsiTs103759MbrCommonObservations.md | 149 +--- 6 files changed, 34 insertions(+), 1029 deletions(-) delete mode 100644 docs/EtsiTs103759AsrCam-0.html delete mode 100644 docs/EtsiTs103759AsrCam-0.md rename docs/{EtsiTs103759AsrCam-1.html => EtsiTs103759AsrCam.html} (95%) rename docs/{EtsiTs103759AsrCam-1.md => EtsiTs103759AsrCam.md} (93%) diff --git a/docs/EtsiTs103759AsrCam-0.html b/docs/EtsiTs103759AsrCam-0.html deleted file mode 100644 index 7d62657..0000000 --- a/docs/EtsiTs103759AsrCam-0.html +++ /dev/null @@ -1,812 +0,0 @@ - - - - - EtsiTs103759AsrCam - - -

      ASN.1 module EtsiTs103759AsrCam

      -

      OID: {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-0(0)}

      -

      Data Elements:

      -

      AsrCam

      -

      This data type is defined as NULL for version 0 of this file.

      -
      AsrCam ::= NULL
      - diff --git a/docs/EtsiTs103759AsrCam-0.md b/docs/EtsiTs103759AsrCam-0.md deleted file mode 100644 index 0b5b05b..0000000 --- a/docs/EtsiTs103759AsrCam-0.md +++ /dev/null @@ -1,16 +0,0 @@ -# ASN.1 module EtsiTs103759AsrCam - OID: _{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-0(0)}_ - -## Data Elements: -### AsrCam - - This data type is defined as NULL for version 0 of this file. - - - -```asn1 -AsrCam ::= NULL -``` - - - diff --git a/docs/EtsiTs103759AsrCam-1.html b/docs/EtsiTs103759AsrCam.html similarity index 95% rename from docs/EtsiTs103759AsrCam-1.html rename to docs/EtsiTs103759AsrCam.html index 27853c6..6e685af 100644 --- a/docs/EtsiTs103759AsrCam-1.html +++ b/docs/EtsiTs103759AsrCam.html @@ -877,7 +877,7 @@ speed is sqrt(2950) 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.

      -
      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},
      ...
      }
      +
      SetMbObsTgtsCam C-ASR-OBS-BY-TGT ::= {
      {MbSingleObservation{{SetMbObsCamBeacon}} BY
      c-CamTgt-BeaconCommon} |
      {MbSingleObservation{{SetMbObsCamStatic}} BY
      c-CamTgt-StaticCommon} |
      {MbSingleObservation{{SetMbObsCamSecurity}} BY
      c-CamTgt-SecurityCommon} |
      {MbSingleObservation{{SetMbObsCamPosition}} BY
      c-CamTgt-PositionCommon} |
      {MbSingleObservation{{SetMbObsCamSpeed}} BY
      c-CamTgt-SpeedCommon} |
      {MbSingleObservation{{SetMbObsCamLongAcc}} BY
      c-CamTgt-LongAccCommon},
      ...
      }

    SetMbEvCam

    diff --git a/docs/EtsiTs103759AsrCam-1.md b/docs/EtsiTs103759AsrCam.md similarity index 93% rename from docs/EtsiTs103759AsrCam-1.md rename to docs/EtsiTs103759AsrCam.md index 66c0141..39bbb5c 100644 --- a/docs/EtsiTs103759AsrCam-1.md +++ b/docs/EtsiTs103759AsrCam.md @@ -95,17 +95,17 @@ c-CamTgt-LongAccCommon IdCamTgt ::= 5 LongAcc-ValueTooLarge. ```asn1 SetMbObsTgtsCam C-ASR-OBS-BY-TGT ::= { - {MbSingleObservation{{SetMbObsCompleteBeacon}} BY + {MbSingleObservation{{SetMbObsCamBeacon}} BY c-CamTgt-BeaconCommon} | - {MbSingleObservation{{SetMbObsCompleteStatic}} BY + {MbSingleObservation{{SetMbObsCamStatic}} BY c-CamTgt-StaticCommon} | - {MbSingleObservation{{SetMbObsCompleteSecurity}} BY + {MbSingleObservation{{SetMbObsCamSecurity}} BY c-CamTgt-SecurityCommon} | - {MbSingleObservation{{SetMbObsEtsiOnlyPosition}} BY + {MbSingleObservation{{SetMbObsCamPosition}} BY c-CamTgt-PositionCommon} | - {MbSingleObservation{{SetMbObsEtsiOnlySpeed}} BY + {MbSingleObservation{{SetMbObsCamSpeed}} BY c-CamTgt-SpeedCommon} | - {MbSingleObservation{{SetMbObsEtsiOnlyLongAcc}} BY + {MbSingleObservation{{SetMbObsCamLongAcc}} BY c-CamTgt-LongAccCommon}, ... } diff --git a/docs/EtsiTs103759MbrCommonObservations.html b/docs/EtsiTs103759MbrCommonObservations.html index 74a091b..bb8d4d3 100644 --- a/docs/EtsiTs103759MbrCommonObservations.html +++ b/docs/EtsiTs103759MbrCommonObservations.html @@ -838,8 +838,8 @@ to support this observation.

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

    SetMbObsCompleteBeacon

    -
    SetMbObsCompleteBeacon C-ASR-SINGLE-OBS ::= {
    obs-Beacon-IntervalTooSmall,
    ...
    }
    +

    SetMbObsCamBeacon

    +
    SetMbObsCamBeacon C-ASR-SINGLE-OBS ::= {
    obs-Beacon-IntervalTooSmall,
    ...
    }

    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 @@ -861,8 +861,8 @@ to support this observation.

    Static-Change ::= BIT STRING
    c-ObsStatic-Change IdMbObs::= 1
    obs-Static-Change C-ASR-SINGLE-OBS ::=
    {Static-Change BY c-ObsStatic-Change}
    -

    SetMbObsCompleteStatic

    -
    SetMbObsCompleteStatic C-ASR-SINGLE-OBS ::= {
    obs-Static-Change,
    ...
    }
    +

    SetMbObsCamStatic

    +
    SetMbObsCamStatic C-ASR-SINGLE-OBS ::= {
    obs-Static-Change,
    ...
    }

    Security-MessageIdIncWithHeaderInfo

    This data type is provided for an observation, where the messageID is inconsistent with the psid in the security headerInfo. The trigger @@ -1016,7 +1016,7 @@ to support this observation.

  • Security-HeaderLocationOutsideCertificateValidity BY
    C-ASR-SINGLE-OBS ::= {
    Security-HeaderLocationOutsideCertificateValidity BY
    c-ObsSecurity-HeaderLocationOutsideCertificateValidity
    }
-

SetMbObsCompleteSecurity

+

SetMbObsCamSecurity

Values:

  • obs-Security-MessageIdIncWithHeaderInfo |
  • @@ -1024,15 +1024,7 @@ to support this observation.

  • obs-Security-HeaderPsidIncWithCertificate |
  • obs-Security-MessageIncWithSsp |
  • obs-Security-HeaderTimeOutsideCertificateValidity |
  • -
  • obs-Security-MessageLocationOutsideCertificateValidity |
    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,
    ...
    }
    -
  • -
-

Pos-IncWithPrev-TooSmall

-
Pos-IncWithPrev-TooSmall ::= NULL
-

Pos-IncWithPrev-TooFar

-

Fields:

-
    -
  • gpsDrift Uint16
    Pos-IncWithPrev-TooFar ::= SEQUENCE {
    gpsDrift Uint16
    }
    +
  • obs-Security-MessageLocationOutsideCertificateValidity |
    SetMbObsCamSecurity 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-ChangeTooLarge

@@ -1054,19 +1046,10 @@ to support this observation.

Position-ChangeTooLarge ::= NULL
-
c-ObsPos-IncWithPrev-TooSmall IdMbObs ::= 2
c-ObsPos-IncWithPrev-TooFar IdMbObs ::= 3
c-ObsPosition-ChangeTooLarge IdMbObs ::= 4
-
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
}
+
c-ObsPosition-ChangeTooLarge IdMbObs ::= 4
obs-Position-ChangeTooLarge C-ASR-SINGLE-OBS ::= {
Position-ChangeTooLarge BY c-ObsPosition-ChangeTooLarge
}
-

SetMbObsPosition

-

Values:

-
    -
  • obs-Pos-IncWithPrev-TooSmall |
  • -
  • obs-Pos-IncWithPrev-TooFar |
    SetMbObsPosition C-ASR-SINGLE-OBS ::= {
    obs-Pos-IncWithPrev-TooSmall |
    obs-Pos-IncWithPrev-TooFar |
    obs-Position-ChangeTooLarge,
    ...
    }
    -
  • -
-

SetMbObsEtsiOnlyPosition

-
SetMbObsEtsiOnlyPosition C-ASR-SINGLE-OBS ::= {
obs-Position-ChangeTooLarge,
...
}
+

SetMbObsCamPosition

+
SetMbObsCamPosition C-ASR-SINGLE-OBS ::= {
obs-Position-ChangeTooLarge,
...
}

Speed-ValueTooLarge-ThresholdNoContext

Fields:

    @@ -1128,34 +1111,17 @@ to support this observation.

Speed-ChangeTooLarge ::= NULL
-
c-ObsSpeed-ValueTooLarge-ThresholdNoContext IdMbObs::= 2
c-ObsSpeed-ValueTooLarge-VehicleType IdMbObs::= 3
c-ObsSpeed-ValueTooLarge-DriveDirectionReverse IdMbObs::= 4
c-ObsSpeed-ChangeTooLarge IdMbObs::= 5
+
c-ObsSpeed-ValueTooLarge-VehicleType IdMbObs::= 3
c-ObsSpeed-ValueTooLarge-DriveDirectionReverse IdMbObs::= 4
c-ObsSpeed-ChangeTooLarge IdMbObs::= 5
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
}
-

SetMbObsSpeed

+

SetMbObsCamSpeed

Values:

  • obs-Speed-ValueTooLarge-VehicleType |
  • -
  • obs-Speed-ValueTooLarge-ThresholdNoContext |
  • -
  • obs-Speed-ValueTooLarge-DriveDirectionReverse |
    SetMbObsSpeed C-ASR-SINGLE-OBS ::= {
    obs-Speed-ValueTooLarge-VehicleType |
    obs-Speed-ValueTooLarge-ThresholdNoContext |
    obs-Speed-ValueTooLarge-DriveDirectionReverse |
    obs-Speed-ChangeTooLarge,
    ...
    }
    +
  • obs-Speed-ValueTooLarge-DriveDirectionReverse |
    SetMbObsCamSpeed C-ASR-SINGLE-OBS ::= {
    obs-Speed-ValueTooLarge-VehicleType |
    obs-Speed-ValueTooLarge-DriveDirectionReverse |
    obs-Speed-ChangeTooLarge,
    ...
    }
-

SetMbObsEtsiOnlySpeed

-

Values:

-
    -
  • obs-Speed-ValueTooLarge-VehicleType |
  • -
  • obs-Speed-ValueTooLarge-DriveDirectionReverse |
    SetMbObsEtsiOnlySpeed C-ASR-SINGLE-OBS ::= {
    obs-Speed-ValueTooLarge-VehicleType |
    obs-Speed-ValueTooLarge-DriveDirectionReverse |
    obs-Speed-ChangeTooLarge,
    ...
    }
    -
  • -
-

LongAcc-ValueTooLarge-ThresholdNoContext

-

Fields:

-
    -
  • threshold Uint16
    LongAcc-ValueTooLarge-ThresholdNoContext ::= SEQUENCE {
    threshold Uint16
    }
    -
  • -
-

LongAcc-Implausible-Brake

-
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 @@ -1174,16 +1140,8 @@ to support this observation.

LongAcc-ValueTooLarge ::= NULL
-
c-ObsLongAcc-ValueTooLarge-ThresholdNoContext IdMbObs::= 2
c-ObsLongAcc-Implausible-Brake IdMbObs::= 3
c-ObsLongAcc-ValueTooLarge IdMbObs::= 4
-
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
}
+
c-ObsLongAcc-ValueTooLarge IdMbObs::= 4
obs-LongAcc-ValueTooLarge C-ASR-SINGLE-OBS ::= {
LongAcc-ValueTooLarge BY c-ObsLongAcc-ValueTooLarge
}
-

SetMbObsLongAcc

-

Values:

-
    -
  • obs-LongAcc-Implausible-Brake |
    SetMbObsLongAcc C-ASR-SINGLE-OBS ::= {
    obs-LongAcc-Implausible-Brake |
    obs-LongAcc-ValueTooLarge,
    ...
    }
    -
  • -
-

SetMbObsEtsiOnlyLongAcc

-
SetMbObsEtsiOnlyLongAcc C-ASR-SINGLE-OBS ::= {
obs-LongAcc-ValueTooLarge,
...
}
+

SetMbObsCamLongAcc

+
SetMbObsCamLongAcc C-ASR-SINGLE-OBS ::= {
obs-LongAcc-ValueTooLarge,
...
}
diff --git a/docs/EtsiTs103759MbrCommonObservations.md b/docs/EtsiTs103759MbrCommonObservations.md index 5a2a4be..61cdedf 100644 --- a/docs/EtsiTs103759MbrCommonObservations.md +++ b/docs/EtsiTs103759MbrCommonObservations.md @@ -54,12 +54,12 @@ obs-Beacon-IntervalTooSmall C-ASR-SINGLE-OBS ::= {Beacon-IntervalTooSmall BY c-ObsBeacon-IntervalTooSmall} ``` -### SetMbObsCompleteBeacon +### SetMbObsCamBeacon ```asn1 -SetMbObsCompleteBeacon C-ASR-SINGLE-OBS ::= { +SetMbObsCamBeacon C-ASR-SINGLE-OBS ::= { obs-Beacon-IntervalTooSmall, ... } @@ -101,12 +101,12 @@ obs-Static-Change C-ASR-SINGLE-OBS ::= {Static-Change BY c-ObsStatic-Change} ``` -### SetMbObsCompleteStatic +### SetMbObsCamStatic ```asn1 -SetMbObsCompleteStatic C-ASR-SINGLE-OBS ::= { +SetMbObsCamStatic C-ASR-SINGLE-OBS ::= { obs-Static-Change, ... } @@ -353,7 +353,7 @@ C-ASR-SINGLE-OBS ::= { } ``` -### SetMbObsCompleteSecurity +### SetMbObsCamSecurity Values: * **obs-Security-MessageIdIncWithHeaderInfo** |
@@ -363,7 +363,7 @@ Values: * **obs-Security-HeaderTimeOutsideCertificateValidity** |
* **obs-Security-MessageLocationOutsideCertificateValidity** |
```asn1 -SetMbObsCompleteSecurity C-ASR-SINGLE-OBS ::= { +SetMbObsCamSecurity C-ASR-SINGLE-OBS ::= { obs-Security-MessageIdIncWithHeaderInfo | obs-Security-HeaderIncWithSecurityProfile | obs-Security-HeaderPsidIncWithCertificate | @@ -375,24 +375,6 @@ SetMbObsCompleteSecurity C-ASR-SINGLE-OBS ::= { } ``` -### Pos-IncWithPrev-TooSmall - - - -```asn1 -Pos-IncWithPrev-TooSmall ::= NULL -``` - -### Pos-IncWithPrev-TooFar - -Fields: -* gpsDrift [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
-```asn1 -Pos-IncWithPrev-TooFar ::= SEQUENCE { - gpsDrift Uint16 -} -``` - ### Position-ChangeTooLarge This data type is provided for an observation of change in position @@ -419,53 +401,21 @@ Position-ChangeTooLarge ::= NULL ```asn1 -c-ObsPos-IncWithPrev-TooSmall IdMbObs ::= 2 -c-ObsPos-IncWithPrev-TooFar IdMbObs ::= 3 c-ObsPosition-ChangeTooLarge IdMbObs ::= 4 ``` -```asn1 -obs-Pos-IncWithPrev-TooSmall C-ASR-SINGLE-OBS ::= { - Pos-IncWithPrev-TooSmall BY c-ObsPos-IncWithPrev-TooSmall -} -``` - - - -```asn1 -obs-Pos-IncWithPrev-TooFar C-ASR-SINGLE-OBS ::= { - Pos-IncWithPrev-TooFar BY c-ObsPos-IncWithPrev-TooFar -} -``` - - - ```asn1 obs-Position-ChangeTooLarge C-ASR-SINGLE-OBS ::= { Position-ChangeTooLarge BY c-ObsPosition-ChangeTooLarge } ``` -### SetMbObsPosition - -Values: -* **obs-Pos-IncWithPrev-TooSmall** |
-* **obs-Pos-IncWithPrev-TooFar** |
-```asn1 -SetMbObsPosition C-ASR-SINGLE-OBS ::= { - obs-Pos-IncWithPrev-TooSmall | - obs-Pos-IncWithPrev-TooFar | - obs-Position-ChangeTooLarge, - ... -} -``` - -### SetMbObsEtsiOnlyPosition +### SetMbObsCamPosition ```asn1 -SetMbObsEtsiOnlyPosition C-ASR-SINGLE-OBS ::= { +SetMbObsCamPosition C-ASR-SINGLE-OBS ::= { obs-Position-ChangeTooLarge, ... } @@ -551,7 +501,6 @@ Speed-ChangeTooLarge ::= NULL ```asn1 -c-ObsSpeed-ValueTooLarge-ThresholdNoContext IdMbObs::= 2 c-ObsSpeed-ValueTooLarge-VehicleType IdMbObs::= 3 c-ObsSpeed-ValueTooLarge-DriveDirectionReverse IdMbObs::= 4 c-ObsSpeed-ChangeTooLarge IdMbObs::= 5 @@ -567,15 +516,6 @@ obs-Speed-ValueTooLarge-VehicleType C-ASR-SINGLE-OBS ::= { -```asn1 -obs-Speed-ValueTooLarge-ThresholdNoContext C-ASR-SINGLE-OBS ::= { - Speed-ValueTooLarge-ThresholdNoContext BY - c-ObsSpeed-ValueTooLarge-ThresholdNoContext -} -``` - - - ```asn1 obs-Speed-ValueTooLarge-DriveDirectionReverse C-ASR-SINGLE-OBS ::= { Speed-ValueTooLarge-DriveDirectionReverse BY @@ -591,29 +531,13 @@ obs-Speed-ChangeTooLarge C-ASR-SINGLE-OBS ::= { } ``` -### SetMbObsSpeed - -Values: -* **obs-Speed-ValueTooLarge-VehicleType** |
-* **obs-Speed-ValueTooLarge-ThresholdNoContext** |
-* **obs-Speed-ValueTooLarge-DriveDirectionReverse** |
-```asn1 -SetMbObsSpeed C-ASR-SINGLE-OBS ::= { - obs-Speed-ValueTooLarge-VehicleType | - obs-Speed-ValueTooLarge-ThresholdNoContext | - obs-Speed-ValueTooLarge-DriveDirectionReverse | - obs-Speed-ChangeTooLarge, - ... -} -``` - -### SetMbObsEtsiOnlySpeed +### SetMbObsCamSpeed Values: * **obs-Speed-ValueTooLarge-VehicleType** |
* **obs-Speed-ValueTooLarge-DriveDirectionReverse** |
```asn1 -SetMbObsEtsiOnlySpeed C-ASR-SINGLE-OBS ::= { +SetMbObsCamSpeed C-ASR-SINGLE-OBS ::= { obs-Speed-ValueTooLarge-VehicleType | obs-Speed-ValueTooLarge-DriveDirectionReverse | obs-Speed-ChangeTooLarge, @@ -621,24 +545,6 @@ SetMbObsEtsiOnlySpeed C-ASR-SINGLE-OBS ::= { } ``` -### LongAcc-ValueTooLarge-ThresholdNoContext - -Fields: -* threshold [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
-```asn1 -LongAcc-ValueTooLarge-ThresholdNoContext ::= SEQUENCE { - threshold Uint16 -} -``` - -### LongAcc-Implausible-Brake - - - -```asn1 -LongAcc-Implausible-Brake ::= NULL -``` - ### LongAcc-ValueTooLarge This data type is provided for an observation of longitudinal @@ -664,52 +570,21 @@ LongAcc-ValueTooLarge ::= NULL ```asn1 -c-ObsLongAcc-ValueTooLarge-ThresholdNoContext IdMbObs::= 2 -c-ObsLongAcc-Implausible-Brake IdMbObs::= 3 c-ObsLongAcc-ValueTooLarge IdMbObs::= 4 ``` -```asn1 -obs-LongAcc-ValueTooLarge-ThresholdNoContext C-ASR-SINGLE-OBS ::= { - LongAcc-ValueTooLarge-ThresholdNoContext BY - c-ObsLongAcc-ValueTooLarge-ThresholdNoContext -} -``` - - - -```asn1 -obs-LongAcc-Implausible-Brake C-ASR-SINGLE-OBS ::= { - LongAcc-Implausible-Brake BY c-ObsLongAcc-Implausible-Brake -} -``` - - - ```asn1 obs-LongAcc-ValueTooLarge C-ASR-SINGLE-OBS ::= { LongAcc-ValueTooLarge BY c-ObsLongAcc-ValueTooLarge } ``` -### SetMbObsLongAcc - -Values: -* **obs-LongAcc-Implausible-Brake** |
-```asn1 -SetMbObsLongAcc C-ASR-SINGLE-OBS ::= { - obs-LongAcc-Implausible-Brake | - obs-LongAcc-ValueTooLarge, - ... -} -``` - -### SetMbObsEtsiOnlyLongAcc +### SetMbObsCamLongAcc ```asn1 -SetMbObsEtsiOnlyLongAcc C-ASR-SINGLE-OBS ::= { +SetMbObsCamLongAcc C-ASR-SINGLE-OBS ::= { obs-LongAcc-ValueTooLarge, ... } -- GitLab From 64044b156a9ab2076e47ffd15d085b22cb841f2d Mon Sep 17 00:00:00 2001 From: Virendra Kumar Date: Wed, 31 Aug 2022 10:16:56 -0400 Subject: [PATCH 33/66] Updated documentation files --- docs/EtsiTs103097ExtensionModule.md | 87 --- docs/EtsiTs103097Module.md | 151 ---- docs/EtsiTs103759.md | 305 +++++--- docs/EtsiTs103759AsrAppAgnostic.md | 6 +- docs/EtsiTs103759AsrDenm.md | 6 +- docs/ITS-Container.md | 1044 --------------------------- docs/Ieee1609Dot2.md | 775 -------------------- docs/Ieee1609Dot2BaseTypes.md | 658 ----------------- 8 files changed, 195 insertions(+), 2837 deletions(-) delete mode 100644 docs/EtsiTs103097ExtensionModule.md delete mode 100644 docs/EtsiTs103097Module.md delete mode 100644 docs/ITS-Container.md delete mode 100644 docs/Ieee1609Dot2.md delete mode 100644 docs/Ieee1609Dot2BaseTypes.md diff --git a/docs/EtsiTs103097ExtensionModule.md b/docs/EtsiTs103097ExtensionModule.md deleted file mode 100644 index a05014e..0000000 --- a/docs/EtsiTs103097ExtensionModule.md +++ /dev/null @@ -1,87 +0,0 @@ -# ASN.1 module EtsiTs103097ExtensionModule - OID: _{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) secHeaders(103097) extension(2) major-version-1(1) minor-version-1(1)}_ - -## Imports: - * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-3 (3)} WITH SUCCESSORS*
- -## Data Elements: -### ExtensionModuleVersion - -```asn1 -ExtensionModuleVersion::= INTEGER(1) -``` - -### Extension - -```asn1 -Extension {EXT-TYPE : ExtensionTypes} ::= SEQUENCE { - id EXT-TYPE.&extId({ExtensionTypes}), - content EXT-TYPE.&ExtContent({ExtensionTypes}{@.id}) -} -``` - -### EXT-TYPE - -```asn1 -EXT-TYPE ::= CLASS { - &extId ExtId, - &ExtContent -} WITH SYNTAX {&ExtContent IDENTIFIED BY &extId} -``` - -### ExtId - -```asn1 -ExtId ::= INTEGER(0..255) -``` - -### EtsiOriginatingHeaderInfoExtension - -```asn1 -EtsiOriginatingHeaderInfoExtension ::= Extension{{EtsiTs103097HeaderInfoExtensions}} -``` - -### EtsiTs103097HeaderInfoExtensionId - -```asn1 -EtsiTs103097HeaderInfoExtensionId ::= ExtId - etsiTs102941CrlRequestId EtsiTs103097HeaderInfoExtensionId ::= 1 - etsiTs102941DeltaCtlRequestId EtsiTs103097HeaderInfoExtensionId ::= 2 -``` - -### EtsiTs103097HeaderInfoExtensions - -```asn1 -EtsiTs103097HeaderInfoExtensions EXT-TYPE ::= { - { EtsiTs102941CrlRequest IDENTIFIED BY etsiTs102941CrlRequestId } | - { EtsiTs102941DeltaCtlRequest IDENTIFIED BY etsiTs102941DeltaCtlRequestId }, - ... -} -``` - -### EtsiTs102941CrlRequest - -```asn1 -EtsiTs102941CrlRequest::= SEQUENCE { - issuerId HashedId8, - lastKnownUpdate Time32 OPTIONAL -} -``` - -### EtsiTs102941CtlRequest - -```asn1 -EtsiTs102941CtlRequest::= SEQUENCE { - issuerId HashedId8, - lastKnownCtlSequence INTEGER (0..255) OPTIONAL -} -``` - -### EtsiTs102941DeltaCtlRequest - -```asn1 -EtsiTs102941DeltaCtlRequest::= EtsiTs102941CtlRequest -``` - - - diff --git a/docs/EtsiTs103097Module.md b/docs/EtsiTs103097Module.md deleted file mode 100644 index 7ee5463..0000000 --- a/docs/EtsiTs103097Module.md +++ /dev/null @@ -1,151 +0,0 @@ -# ASN.1 module EtsiTs103097Module - OID: _{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) secHeaders(103097) core(1) major-version-3(3) minor-version-1(1)}_ - -## Imports: - * **[Ieee1609Dot2](Ieee1609Dot2.md)** *{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-4(4)} WITH SUCCESSORS*
- - * **[EtsiTs103097ExtensionModule](EtsiTs103097ExtensionModule.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) secHeaders(103097) extension(2) major-version-1(1) minor-version-1(1)}*
- -## Data Elements: -### EtsiTs103097Certificate - -```asn1 -EtsiTs103097Certificate::= Certificate (WITH COMPONENTS{..., - toBeSigned (WITH COMPONENTS{..., - id (WITH COMPONENTS{..., - linkageData ABSENT, - binaryId ABSENT - }), - certRequestPermissions ABSENT, - canRequestRollover ABSENT - }) -}) -``` - -### EtsiTs103097Data - -```asn1 -EtsiTs103097Data::=Ieee1609Dot2Data (WITH COMPONENTS {..., - content (WITH COMPONENTS {..., - signedData (WITH COMPONENTS {..., - tbsData (WITH COMPONENTS { - headerInfo (WITH COMPONENTS {..., - generationTime PRESENT, - p2pcdLearningRequest ABSENT, - missingCrlIdentifier ABSENT - }) - }), - signer (WITH COMPONENTS {..., - certificate ((WITH COMPONENT (EtsiTs103097Certificate))^(SIZE(1))) - }) - }), - encryptedData (WITH COMPONENTS {..., - recipients (WITH COMPONENT ( - (WITH COMPONENTS {..., - pskRecipInfo ABSENT, - symmRecipInfo ABSENT, - rekRecipInfo ABSENT - }) - )) - }), - signedCertificateRequest ABSENT - }) -}) -``` - -### EtsiTs103097Data-Unsecured - -```asn1 -EtsiTs103097Data-Unsecured {ToBeSentDataContent} ::= EtsiTs103097Data (WITH COMPONENTS {..., - content (WITH COMPONENTS { - unsecuredData (CONTAINING ToBeSentDataContent) - }) -}) -``` - -### EtsiTs103097Data-Signed - -```asn1 -EtsiTs103097Data-Signed {ToBeSignedDataContent} ::= EtsiTs103097Data (WITH COMPONENTS {..., - content (WITH COMPONENTS { - signedData (WITH COMPONENTS {..., - tbsData (WITH COMPONENTS { - payload (WITH COMPONENTS { - data (WITH COMPONENTS {..., - content (WITH COMPONENTS { - unsecuredData (CONTAINING ToBeSignedDataContent) - }) - }) PRESENT - }) - }) - }) - }) -}) -``` - -### EtsiTs103097Data-SignedExternalPayload - -```asn1 -EtsiTs103097Data-SignedExternalPayload ::= EtsiTs103097Data (WITH COMPONENTS {..., - content (WITH COMPONENTS { - signedData (WITH COMPONENTS {..., - tbsData (WITH COMPONENTS { - payload (WITH COMPONENTS { - extDataHash (WITH COMPONENTS { - sha256HashedData PRESENT - }) PRESENT - }) - }) - }) - }) -}) -``` - -### EtsiTs103097Data-Encrypted - -```asn1 -EtsiTs103097Data-Encrypted {ToBeEncryptedDataContent} ::= EtsiTs103097Data (WITH COMPONENTS {..., - content (WITH COMPONENTS { - encryptedData (WITH COMPONENTS {..., - ciphertext (WITH COMPONENTS {..., - aes128ccm (WITH COMPONENTS {..., - ccmCiphertext (CONSTRAINED BY { ToBeEncryptedDataContent}) - }) - }) - }) - }) -}) -``` - -### EtsiTs103097Data-SignedAndEncrypted - -```asn1 -EtsiTs103097Data-SignedAndEncrypted {ToBesignedAndEncryptedDataContent} ::= EtsiTs103097Data-Encrypted {EtsiTs103097Data-Signed {ToBesignedAndEncryptedDataContent}} -``` - -### EtsiTs103097Data-Encrypted-Unicast - -```asn1 -EtsiTs103097Data-Encrypted-Unicast {ToBeEncryptedDataContent} ::= EtsiTs103097Data-Encrypted { EtsiTs103097Data-Unsecured{ToBeEncryptedDataContent}} (WITH COMPONENTS {..., - content (WITH COMPONENTS { - encryptedData (WITH COMPONENTS {..., - recipients (SIZE(1)) - }) - }) -}) -``` - -### EtsiTs103097Data-SignedAndEncrypted-Unicast - -```asn1 -EtsiTs103097Data-SignedAndEncrypted-Unicast {ToBesignedAndEncryptedDataContent} ::= EtsiTs103097Data-Encrypted {EtsiTs103097Data-Signed {ToBesignedAndEncryptedDataContent}} (WITH COMPONENTS {..., - content (WITH COMPONENTS { - encryptedData (WITH COMPONENTS {..., - recipients (SIZE(1)) - }) - }) -}) -``` - - - diff --git a/docs/EtsiTs103759.md b/docs/EtsiTs103759.md index 55a1c3f..df83f66 100644 --- a/docs/EtsiTs103759.md +++ b/docs/EtsiTs103759.md @@ -3,28 +3,40 @@ ## Imports: * **[EtsiTs103097Module](EtsiTs103097Module.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) secHeaders(103097) core(1) major-version-3(3) minor-version-1(1)} WITH SUCCESSORS*
- + * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-3(3)} WITH SUCCESSORS*
- + * **[EtsiTs103759AsrAppAgnostic](EtsiTs103759AsrAppAgnostic.md)** *{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-0(0)} WITH SUCCESSORS*
- + * **[EtsiTs103759AsrCam](EtsiTs103759AsrCam.md)** *{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-0(0)} WITH SUCCESSORS*
- + * **[EtsiTs103759AsrDenm](EtsiTs103759AsrDenm.md)** *{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-0(0)} WITH SUCCESSORS*
- + ## Data Elements: -### EtsiTs103759Data +### EtsiTs103759Data + + This data type is the general PDU for a misbehaviour report from an + ITS-S to the MA responsible for reports of that type. AID-specific modules + (EtsiTs103759AsrAppAgnostic, EtsiTs103759AsrCam, EtsiTs103759AsrDenm) have + been imported using WITH SUCCESSORS to enable importing one or more of those + modules with minor-version greater than 0 without requiring any change in the + import statements. At least one of these AID-specific modules shall have + minor-version greater than 0. -* `version` contains the version number of this PDU definition. For this - version of this data type it shall be equal to 2. +Fields: +* version [**Uint8**](Ieee1609Dot2BaseTypes.md#Uint8)
+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. +* generationTime [**Time64**](Ieee1609Dot2BaseTypes.md#Time64)
+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. +* observationLocation [**ThreeDLocation**](Ieee1609Dot2BaseTypes.md#ThreeDLocation)
+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. - +* report [**AidSpecificReport**](#AidSpecificReport)
+contains the AID-specific misbehaviour report. ```asn1 EtsiTs103759Data ::= SEQUENCE { @@ -35,7 +47,17 @@ EtsiTs103759Data ::= SEQUENCE { } ``` -### EtsiTs103759Data-SignedAndEncrypted-Unicast +### EtsiTs103759Data-SignedAndEncrypted-Unicast + + This structure is the SPDU used to send a signed and encrypted + EtsiTs103759Data to the MA. For the signature to be valid the signing + certificate shall conform to the authorization ticket profile given in + clause 7.2.1 of ETSI TS 103 097 v2.1.1, where the appPermissions field in + the authorization ticket allows signing misbehaviour reports. The signed + EtsiTs103759Data shall be encrypted to the MA using the encryptionKey in + the MA's certificate. + + ```asn1 EtsiTs103759Data-SignedAndEncrypted-Unicast ::= @@ -44,13 +66,19 @@ EtsiTs103759Data-SignedAndEncrypted-Unicast ::= } ``` -### AidSpecificReport +### AidSpecificReport -* `aid` contains the respective ITS-AID. + 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. -* `content` contains the report contents, e.g., AsrCam. This will be a - TemplateAsr instantiated with AID-specific Information Object Sets. - +Fields: +* aid [**C-ASR**](#C-ASR) .&aid ({SetAsr})
+contains the respective ITS-AID. + +* content [**C-ASR**](#C-ASR) .&Content ({SetAsr}{@.aid})
+contains the report contents, e.g., AsrCam. This will be a + TemplateAsr instantiated with AID-specific Information Object Sets. ```asn1 AidSpecificReport ::= SEQUENCE { @@ -59,16 +87,9 @@ AidSpecificReport ::= SEQUENCE { } ``` -### C-ASR - -* `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 + This data type defines the IOC for AidSpecificReport. ```asn1 C-ASR ::= CLASS { &aid Psid UNIQUE, @@ -76,7 +97,12 @@ C-ASR ::= CLASS { } WITH SYNTAX {&Content IDENTIFIED BY &aid} ``` -### SetAsr +### 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. + + ```asn1 SetAsr C-ASR ::= { @@ -87,52 +113,27 @@ SetAsr C-ASR ::= { } ``` -### c-AsrAppAgnostic ->>> -NOTE: This value is used for suspicious observations that are not - or cannot be linked to a specific application. ->>> ```asn1 c-AsrAppAgnostic Psid ::= 270549119 ``` -### c-AsrCam + ```asn1 c-AsrCam Psid ::= 36 ``` -### c-AsrDenm + ```asn1 c-AsrDenm Psid ::= 37 ``` -### TemplateAsr - -* `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. - ```asn1 -TemplateAsr { - C-ASR-OBS-BY-TGT: ObservationSet, C-ASR-EV: NonV2xPduEvidenceSet } ::= SEQUENCE { observations SEQUENCE (SIZE(1..MAX)) OF ObservationsByTarget {{ObservationSet}}, @@ -142,15 +143,20 @@ TemplateAsr { } ``` -### ObservationsByTarget +### 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. +Fields: +* tgtId [**C-ASR-OBS-BY-TGT**](#C-ASR-OBS-BY-TGT) .&id ({SetAsrObsByTgt})
+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. - +* observations **SEQUENCE** OF C-ASR-OBS-BY-TGT.&Val
+contains all the observations related to that target. + The observations are drawn from the provided Information Object Set. ```asn1 ObservationsByTarget {C-ASR-OBS-BY-TGT: SetAsrObsByTgt} ::= SEQUENCE { @@ -160,23 +166,32 @@ ObservationsByTarget {C-ASR-OBS-BY-TGT: SetAsrObsByTgt} ::= SEQUENCE { } ``` -### C-ASR-OBS-BY-TGT +### C-ASR-OBS-BY-TGT + + This is the Information Object Class used to define observations- + -by-target. + + ```asn1 C-ASR-OBS-BY-TGT ::= C-2ENT ``` -### MbSingleObservation +### 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. +Fields: +* obsId [**C-ASR-SINGLE-OBS**](#C-ASR-SINGLE-OBS) .&id ({SetMbSingleObs})
+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. - +* obs [**C-ASR-SINGLE-OBS**](#C-ASR-SINGLE-OBS) .&Val ({SetMbSingleObs}{@.obsId})
+contains any parameters relevant to the observation. The + observations are drawn from the provided Information Object Set. ```asn1 MbSingleObservation {C-ASR-SINGLE-OBS: SetMbSingleObs} ::= SEQUENCE { @@ -185,39 +200,47 @@ MbSingleObservation {C-ASR-SINGLE-OBS: SetMbSingleObs} ::= SEQUENCE { } ``` -### C-ASR-SINGLE-OBS +### C-ASR-SINGLE-OBS + + This is the Information Object Class used to define single + observations. + + ```asn1 C-ASR-SINGLE-OBS ::= C-2ENT ``` -### V2xPduStream - -* `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 + + This data type contains PDU stream from a single sender. + +Fields: +* type [**C-OBS-PDU**](#C-OBS-PDU) .&id ({SetObsPdu})
+* v2xPdus **SEQUENCE** (SIZE(1..255)) OF C-OBS-PDU.&Val
+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 [**EtsiTs103097Certificate**](EtsiTs103097Module.md#EtsiTs103097Certificate) OPTIONAL
+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 [**Uint8**](Ieee1609Dot2BaseTypes.md#Uint8)
+identifies which PDU within the v2xPdus sequence + is the "subject PDU", i.e., the PDU associated with the observations. ```asn1 V2xPduStream ::= SEQUENCE { @@ -230,13 +253,22 @@ V2xPduStream ::= SEQUENCE { } ``` -### C-OBS-PDU +### C-OBS-PDU + + This is the Information Object Class used to define different types + of observed PDUs. + + ```asn1 C-OBS-PDU ::= C-2ENT ``` -### SetObsPdu +### SetObsPdu + + This data type contains the IOS for the observed PDU. + + ```asn1 SetObsPdu C-OBS-PDU ::= { @@ -247,46 +279,71 @@ SetObsPdu C-OBS-PDU ::= { } ``` -### IdObsPdu +### IdObsPdu -* `c-ObsPdu-etsiGn` The PDU is of ETSI GeoNetworking type + This data type contains the identifier of the type of observed PDU. -* `c-ObsPdu-ieee1609Dot2Data` The PDU contains the [**Ieee1609Dot2Data**](#Ieee1609Dot2Data) structure -* `c-ObsPdu-wsmp` The PDU contains the WSMP data type defined in IEEE 1609.3 - ```asn1 IdObsPdu ::= Uint8 +``` + + + +```asn1 c-ObsPdu-etsiGn IdObsPdu ::= 1 c-ObsPdu-ieee1609Dot2Data IdObsPdu ::= 2 c-ObsPdu-wsmp IdObsPdu ::= 3 ``` -### ObsPduEtsiGn +### 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. + + ```asn1 ObsPduEtsiGn ::= Opaque ``` -### ObsPduIeee1609Dot2Data +### ObsPduIeee1609Dot2Data + + ObsPduIeee1609Dot2Data contains an Ieee1609Dot2Data, i.e., the first + byte of every PDU in the v2xPdus array is the version byte of the + Ieee1609Dot2Data. + + ```asn1 ObsPduIeee1609Dot2Data ::= Opaque ``` -### ObsPduWsmp +### 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. + + ```asn1 ObsPduWsmp ::= Opaque ``` -### NonV2xPduEvidenceItem +### NonV2xPduEvidenceItem + + This data type contains evidence, which may be referenced by one or + more observations. -* `id` identifies the evidence type. +Fields: +* id [**C-ASR-EV**](#C-ASR-EV) .&id ({SetMbEv})
+identifies the evidence type. -* `evidence` contains the evidence. - +* evidence [**C-ASR-EV**](#C-ASR-EV) .&Val ({SetMbEv}{@.id})
+contains the evidence. ```asn1 NonV2xPduEvidenceItem {C-ASR-EV: SetMbEv} ::= SEQUENCE { @@ -295,17 +352,25 @@ NonV2xPduEvidenceItem {C-ASR-EV: SetMbEv} ::= SEQUENCE { } ``` -### C-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. + ->>> -NOTE: No instances of this class are defined in this version of this document. ->>> ```asn1 C-ASR-EV ::= C-2ENT ``` -### 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. + + ```asn1 C-2ENT ::= CLASS { diff --git a/docs/EtsiTs103759AsrAppAgnostic.md b/docs/EtsiTs103759AsrAppAgnostic.md index c85274e..30a57c7 100644 --- a/docs/EtsiTs103759AsrAppAgnostic.md +++ b/docs/EtsiTs103759AsrAppAgnostic.md @@ -2,7 +2,11 @@ OID: _{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-0(0)}_ ## Data Elements: -### AsrAppAgnostic +### AsrAppAgnostic + + This data type is defined as NULL for this version of the standard. + + ```asn1 AsrAppAgnostic ::= NULL diff --git a/docs/EtsiTs103759AsrDenm.md b/docs/EtsiTs103759AsrDenm.md index f676989..82297db 100644 --- a/docs/EtsiTs103759AsrDenm.md +++ b/docs/EtsiTs103759AsrDenm.md @@ -2,7 +2,11 @@ OID: _{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-0(0)}_ ## Data Elements: -### AsrDenm +### AsrDenm + + This data type is defined as NULL for version 0 of this file. + + ```asn1 AsrDenm ::= NULL diff --git a/docs/ITS-Container.md b/docs/ITS-Container.md deleted file mode 100644 index 2b7ea89..0000000 --- a/docs/ITS-Container.md +++ /dev/null @@ -1,1044 +0,0 @@ -# ASN.1 module ITS-Container - OID: _{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }_ - -## Data Elements: -### ItsPduHeader - -```asn1 -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), - stationID StationID -} -``` - -### StationID - -```asn1 -StationID ::= INTEGER(0..4294967295) -``` - -### ReferencePosition - -```asn1 -ReferencePosition ::= SEQUENCE { - latitude Latitude, - longitude Longitude, - positionConfidenceEllipse PosConfidenceEllipse , - altitude Altitude -} -``` - -### DeltaReferencePosition - -```asn1 -DeltaReferencePosition ::= SEQUENCE { - deltaLatitude DeltaLatitude, - deltaLongitude DeltaLongitude, - deltaAltitude DeltaAltitude -} -``` - -### Longitude - -```asn1 -Longitude ::= INTEGER {oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unavailable(1800000001)} (-1800000000..1800000001) -``` - -### Latitude - -```asn1 -Latitude ::= INTEGER {oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10), unavailable(900000001)} (-900000000..900000001) -``` - -### Altitude - -```asn1 -Altitude ::= SEQUENCE { - altitudeValue AltitudeValue, - altitudeConfidence AltitudeConfidence -} -``` - -### AltitudeValue - -```asn1 -AltitudeValue ::= INTEGER {referenceEllipsoidSurface(0), oneCentimeter(1), unavailable(800001)} (-100000..800001) -``` - -### AltitudeConfidence - -```asn1 -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) -} -``` - -### DeltaLongitude - -```asn1 -DeltaLongitude ::= INTEGER {oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unavailable(131072)} (-131071..131072) -``` - -### DeltaLatitude - -```asn1 -DeltaLatitude ::= INTEGER {oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10) , unavailable(131072)} (-131071..131072) -``` - -### DeltaAltitude - -```asn1 -DeltaAltitude ::= INTEGER {oneCentimeterUp (1), oneCentimeterDown (-1), unavailable(12800)} (-12700..12800) -``` - -### PosConfidenceEllipse - -```asn1 -PosConfidenceEllipse ::= SEQUENCE { - semiMajorConfidence SemiAxisLength, - semiMinorConfidence SemiAxisLength, - semiMajorOrientation HeadingValue -} -``` - -### PathPoint - -```asn1 -PathPoint ::= SEQUENCE { - pathPosition DeltaReferencePosition, - pathDeltaTime PathDeltaTime OPTIONAL -} -``` - -### PathDeltaTime - -```asn1 -PathDeltaTime ::= INTEGER {tenMilliSecondsInPast(1)} (1..65535, ...) -``` - -### PtActivation - -```asn1 -PtActivation ::= SEQUENCE { - ptActivationType PtActivationType, - ptActivationData PtActivationData -} -``` - -### PtActivationType - -```asn1 -PtActivationType ::= INTEGER {undefinedCodingType(0), r09-16CodingType(1), vdv-50149CodingType(2)} (0..255) -``` - -### PtActivationData - -```asn1 -PtActivationData ::= OCTET STRING (SIZE(1..20)) -``` - -### AccelerationControl - -```asn1 -AccelerationControl ::= BIT STRING { - brakePedalEngaged (0), - gasPedalEngaged (1), - emergencyBrakeEngaged (2), - collisionWarningEngaged (3), - accEngaged (4), - cruiseControlEngaged (5), - speedLimiterEngaged (6) -} (SIZE(7)) -``` - -### SemiAxisLength - -```asn1 -SemiAxisLength ::= INTEGER{oneCentimeter(1), outOfRange(4094), unavailable(4095)} (0..4095) -``` - -### CauseCode - -```asn1 -CauseCode ::= SEQUENCE { - causeCode CauseCodeType, - subCauseCode SubCauseCodeType, - ... -} -``` - -### CauseCodeType - -```asn1 -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) -``` - -### SubCauseCodeType - -```asn1 -SubCauseCodeType ::= INTEGER (0..255) -``` - -### TrafficConditionSubCauseCode - -```asn1 -TrafficConditionSubCauseCode ::= INTEGER {unavailable(0), increasedVolumeOfTraffic(1), trafficJamSlowlyIncreasing(2), trafficJamIncreasing(3), trafficJamStronglyIncreasing(4), trafficStationary(5), trafficJamSlightlyDecreasing(6), trafficJamDecreasing(7), trafficJamStronglyDecreasing(8)} (0..255) -``` - -### AccidentSubCauseCode - -```asn1 -AccidentSubCauseCode ::= INTEGER {unavailable(0), multiVehicleAccident(1), heavyAccident(2), accidentInvolvingLorry(3), accidentInvolvingBus(4), accidentInvolvingHazardousMaterials(5), accidentOnOppositeLane(6), unsecuredAccident(7), assistanceRequested(8)} (0..255) -``` - -### RoadworksSubCauseCode - -```asn1 -RoadworksSubCauseCode ::= INTEGER {unavailable(0), majorRoadworks(1), roadMarkingWork(2), slowMovingRoadMaintenance(3), shortTermStationaryRoadworks(4), streetCleaning(5), winterService(6)} (0..255) -``` - -### HumanPresenceOnTheRoadSubCauseCode - -```asn1 -HumanPresenceOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), childrenOnRoadway(1), cyclistOnRoadway(2), motorcyclistOnRoadway(3)} (0..255) -``` - -### WrongWayDrivingSubCauseCode - -```asn1 -WrongWayDrivingSubCauseCode ::= INTEGER {unavailable(0), wrongLane(1), wrongDirection(2)} (0..255) -``` - -### AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode - -```asn1 -AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode ::= INTEGER {unavailable(0), strongWinds(1), damagingHail(2), hurricane(3), thunderstorm(4), tornado(5), blizzard(6)} (0..255) -``` - -### AdverseWeatherCondition-AdhesionSubCauseCode - -```asn1 -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-VisibilitySubCauseCode - -```asn1 -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 - -```asn1 -AdverseWeatherCondition-PrecipitationSubCauseCode ::= INTEGER {unavailable(0), heavyRain(1), heavySnowfall(2), softHail(3)} (0..255) -``` - -### SlowVehicleSubCauseCode - -```asn1 -SlowVehicleSubCauseCode ::= INTEGER {unavailable(0), maintenanceVehicle(1), vehiclesSlowingToLookAtAccident(2), abnormalLoad(3), abnormalWideLoad(4), convoy(5), snowplough(6), deicing(7), saltingVehicles(8)} (0..255) -``` - -### StationaryVehicleSubCauseCode - -```asn1 -StationaryVehicleSubCauseCode ::= INTEGER {unavailable(0), humanProblem(1), vehicleBreakdown(2), postCrash(3), publicTransportStop(4), carryingDangerousGoods(5)} (0..255) -``` - -### HumanProblemSubCauseCode - -```asn1 -HumanProblemSubCauseCode ::= INTEGER {unavailable(0), glycemiaProblem(1), heartProblem(2)} (0..255) -``` - -### EmergencyVehicleApproachingSubCauseCode - -```asn1 -EmergencyVehicleApproachingSubCauseCode ::= INTEGER {unavailable(0), emergencyVehicleApproaching(1), prioritizedVehicleApproaching(2)} (0..255) -``` - -### HazardousLocation-DangerousCurveSubCauseCode - -```asn1 -HazardousLocation-DangerousCurveSubCauseCode ::= INTEGER {unavailable(0), dangerousLeftTurnCurve(1), dangerousRightTurnCurve(2), multipleCurvesStartingWithUnknownTurningDirection(3), multipleCurvesStartingWithLeftTurn(4), multipleCurvesStartingWithRightTurn(5)} (0..255) -``` - -### HazardousLocation-SurfaceConditionSubCauseCode - -```asn1 -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 - -```asn1 -HazardousLocation-ObstacleOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), shedLoad(1), partsOfVehicles(2), partsOfTyres(3), bigObjects(4), fallenTrees(5), hubCaps(6), waitingVehicles(7)} (0..255) -``` - -### HazardousLocation-AnimalOnTheRoadSubCauseCode - -```asn1 -HazardousLocation-AnimalOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), wildAnimals(1), herdOfAnimals(2), smallAnimals(3), largeAnimals(4)} (0..255) -``` - -### CollisionRiskSubCauseCode - -```asn1 -CollisionRiskSubCauseCode ::= INTEGER {unavailable(0), longitudinalCollisionRisk(1), crossingCollisionRisk(2), lateralCollisionRisk(3), vulnerableRoadUser(4)} (0..255) -``` - -### SignalViolationSubCauseCode - -```asn1 -SignalViolationSubCauseCode ::= INTEGER {unavailable(0), stopSignViolation(1), trafficLightViolation(2), turningRegulationViolation(3)} (0..255) -``` - -### RescueAndRecoveryWorkInProgressSubCauseCode - -```asn1 -RescueAndRecoveryWorkInProgressSubCauseCode ::= INTEGER {unavailable(0), emergencyVehicles(1), rescueHelicopterLanding(2), policeActivityOngoing(3), medicalEmergencyOngoing(4), childAbductionInProgress(5)} (0..255) -``` - -### DangerousEndOfQueueSubCauseCode - -```asn1 -DangerousEndOfQueueSubCauseCode ::= INTEGER {unavailable(0), suddenEndOfQueue(1), queueOverHill(2), queueAroundBend(3), queueInTunnel(4)} (0..255) -``` - -### DangerousSituationSubCauseCode - -```asn1 -DangerousSituationSubCauseCode ::= INTEGER {unavailable(0), emergencyElectronicBrakeEngaged(1), preCrashSystemEngaged(2), espEngaged(3), absEngaged(4), aebEngaged(5), brakeWarningEngaged(6), collisionRiskWarningEngaged(7)} (0..255) -``` - -### VehicleBreakdownSubCauseCode - -```asn1 -VehicleBreakdownSubCauseCode ::= INTEGER {unavailable(0), lackOfFuel (1), lackOfBatteryPower (2), engineProblem(3), transmissionProblem(4), engineCoolingProblem(5), brakingSystemProblem(6), steeringProblem(7), tyrePuncture(8), tyrePressureProblem(9)} (0..255) -``` - -### PostCrashSubCauseCode - -```asn1 -PostCrashSubCauseCode ::= INTEGER {unavailable(0), accidentWithoutECallTriggered (1), accidentWithECallManuallyTriggered (2), accidentWithECallAutomaticallyTriggered (3), accidentWithECallTriggeredWithoutAccessToCellularNetwork(4)} (0..255) -``` - -### Curvature - -```asn1 -Curvature ::= SEQUENCE { - curvatureValue CurvatureValue, - curvatureConfidence CurvatureConfidence -} -``` - -### CurvatureValue - -```asn1 -CurvatureValue ::= INTEGER {straight(0), unavailable(1023)} (-1023..1023) -``` - -### CurvatureConfidence - -```asn1 -CurvatureConfidence ::= ENUMERATED { - onePerMeter-0-00002 (0), - onePerMeter-0-0001 (1), - onePerMeter-0-0005 (2), - onePerMeter-0-002 (3), - onePerMeter-0-01 (4), - onePerMeter-0-1 (5), - outOfRange (6), - unavailable (7) -} -``` - -### CurvatureCalculationMode - -```asn1 -CurvatureCalculationMode ::= ENUMERATED {yawRateUsed(0), yawRateNotUsed(1), unavailable(2), ...} -``` - -### Heading - -```asn1 -Heading ::= SEQUENCE { - headingValue HeadingValue, - headingConfidence HeadingConfidence -} -``` - -### HeadingValue - -```asn1 -HeadingValue ::= INTEGER {wgs84North(0), wgs84East(900), wgs84South(1800), wgs84West(2700), unavailable(3601)} (0..3601) -``` - -### HeadingConfidence - -```asn1 -HeadingConfidence ::= INTEGER {equalOrWithinZeroPointOneDegree (1), equalOrWithinOneDegree (10), outOfRange(126), unavailable(127)} (1..127) -``` - -### LanePosition - -```asn1 -LanePosition::= INTEGER {offTheRoad(-1), hardShoulder(0), -outermostDrivingLane(1), secondLaneFromOutside(2)} (-1..14) -``` - -### ClosedLanes - -```asn1 -ClosedLanes ::= SEQUENCE { - innerhardShoulderStatus HardShoulderStatus OPTIONAL, - outerhardShoulderStatus HardShoulderStatus OPTIONAL, - drivingLaneStatus DrivingLaneStatus OPTIONAL, - ... -} -``` - -### HardShoulderStatus - -```asn1 -HardShoulderStatus ::= ENUMERATED {availableForStopping(0), closed(1), availableForDriving(2)} -``` - -### DrivingLaneStatus - -```asn1 -DrivingLaneStatus ::= BIT STRING (SIZE (1..13)) -``` - -### PerformanceClass - -```asn1 -PerformanceClass ::= INTEGER {unavailable(0), performanceClassA(1), performanceClassB(2)} (0..7) -``` - -### SpeedValue - -```asn1 -SpeedValue ::= INTEGER {standstill(0), oneCentimeterPerSec(1), unavailable(16383)} (0..16383) -``` - -### SpeedConfidence - -```asn1 -SpeedConfidence ::= INTEGER {equalOrWithinOneCentimeterPerSec(1), equalOrWithinOneMeterPerSec(100), outOfRange(126), unavailable(127)} (1..127) -``` - -### VehicleMass - -```asn1 -VehicleMass ::= INTEGER {hundredKg(1), unavailable(1024)} (1..1024) -``` - -### Speed - -```asn1 -Speed ::= SEQUENCE { - speedValue SpeedValue, - speedConfidence SpeedConfidence -} -``` - -### DriveDirection - -```asn1 -DriveDirection ::= ENUMERATED {forward (0), backward (1), unavailable (2)} -``` - -### EmbarkationStatus - -```asn1 -EmbarkationStatus ::= BOOLEAN -``` - -### LongitudinalAcceleration - -```asn1 -LongitudinalAcceleration ::= SEQUENCE { - longitudinalAccelerationValue LongitudinalAccelerationValue, - longitudinalAccelerationConfidence AccelerationConfidence -} -``` - -### LongitudinalAccelerationValue - -```asn1 -LongitudinalAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredForward(1), pointOneMeterPerSecSquaredBackward(-1), unavailable(161)} (-160 .. 161) -``` - -### AccelerationConfidence - -```asn1 -AccelerationConfidence ::= INTEGER {pointOneMeterPerSecSquared(1), outOfRange(101), unavailable(102)} (0 .. 102) -``` - -### LateralAcceleration - -```asn1 -LateralAcceleration ::= SEQUENCE { - lateralAccelerationValue LateralAccelerationValue, - lateralAccelerationConfidence AccelerationConfidence -} -``` - -### LateralAccelerationValue - -```asn1 -LateralAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredToRight(-1), pointOneMeterPerSecSquaredToLeft(1), unavailable(161)} (-160 .. 161) -``` - -### VerticalAcceleration - -```asn1 -VerticalAcceleration ::= SEQUENCE { - verticalAccelerationValue VerticalAccelerationValue, - verticalAccelerationConfidence AccelerationConfidence -} -``` - -### VerticalAccelerationValue - -```asn1 -VerticalAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredUp(1), pointOneMeterPerSecSquaredDown(-1), unavailable(161)} (-160 .. 161) -``` - -### StationType - -```asn1 -StationType ::= INTEGER {unknown(0), pedestrian(1), cyclist(2), moped(3), motorcycle(4), passengerCar(5), bus(6), -lightTruck(7), heavyTruck(8), trailer(9), specialVehicles(10), tram(11), roadSideUnit(15)} (0..255) -``` - -### ExteriorLights - -```asn1 -ExteriorLights ::= BIT STRING { - lowBeamHeadlightsOn (0), - highBeamHeadlightsOn (1), - leftTurnSignalOn (2), - rightTurnSignalOn (3), - daytimeRunningLightsOn (4), - reverseLightOn (5), - fogLightOn (6), - parkingLightsOn (7) -} (SIZE(8)) -``` - -### DangerousGoodsBasic - -```asn1 -DangerousGoodsBasic::= ENUMERATED { - explosives1(0), - explosives2(1), - explosives3(2), - explosives4(3), - explosives5(4), - explosives6(5), - flammableGases(6), - nonFlammableGases(7), - toxicGases(8), - flammableLiquids(9), - flammableSolids(10), - substancesLiableToSpontaneousCombustion(11), - substancesEmittingFlammableGasesUponContactWithWater(12), - oxidizingSubstances(13), - organicPeroxides(14), - toxicSubstances(15), - infectiousSubstances(16), - radioactiveMaterial(17), - corrosiveSubstances(18), - miscellaneousDangerousSubstances(19) -} -``` - -### DangerousGoodsExtended - -```asn1 -DangerousGoodsExtended ::= SEQUENCE { - dangerousGoodsType DangerousGoodsBasic, - unNumber INTEGER (0..9999), - elevatedTemperature BOOLEAN, - tunnelsRestricted BOOLEAN, - limitedQuantity BOOLEAN, - emergencyActionCode IA5String (SIZE (1..24)) OPTIONAL, - phoneNumber PhoneNumber OPTIONAL, - companyName UTF8String (SIZE (1..24)) OPTIONAL, - ... -} -``` - -### SpecialTransportType - -```asn1 -SpecialTransportType ::= BIT STRING {heavyLoad(0), excessWidth(1), excessLength(2), excessHeight(3)} (SIZE(4)) -``` - -### LightBarSirenInUse - -```asn1 -LightBarSirenInUse ::= BIT STRING { - lightBarActivated (0), - sirenActivated (1) -} (SIZE(2)) -``` - -### HeightLonCarr - -```asn1 -HeightLonCarr ::= INTEGER {oneCentimeter(1), unavailable(100)} (1..100) -``` - -### PosLonCarr - -```asn1 -PosLonCarr ::= INTEGER {oneCentimeter(1), unavailable(127)} (1..127) -``` - -### PosPillar - -```asn1 -PosPillar ::= INTEGER {tenCentimeters(1), unavailable(30)} (1..30) -``` - -### PosCentMass - -```asn1 -PosCentMass ::= INTEGER {tenCentimeters(1), unavailable(63)} (1..63) -``` - -### RequestResponseIndication - -```asn1 -RequestResponseIndication ::= ENUMERATED {request(0), response(1)} -``` - -### SpeedLimit - -```asn1 -SpeedLimit ::= INTEGER {oneKmPerHour(1)} (1..255) -``` - -### StationarySince - -```asn1 -StationarySince ::= ENUMERATED {lessThan1Minute(0), lessThan2Minutes(1), lessThan15Minutes(2), equalOrGreater15Minutes(3)} -``` - -### Temperature - -```asn1 -Temperature ::= INTEGER {equalOrSmallerThanMinus60Deg (-60), oneDegreeCelsius(1), equalOrGreaterThan67Deg(67)} (-60..67) -``` - -### TrafficRule - -```asn1 -TrafficRule ::= ENUMERATED {noPassing(0), noPassingForTrucks(1), passToRight(2), passToLeft(3), ... -} -``` - -### WheelBaseVehicle - -```asn1 -WheelBaseVehicle ::= INTEGER {tenCentimeters(1), unavailable(127)} (1..127) -``` - -### TurningRadius - -```asn1 -TurningRadius ::= INTEGER {point4Meters(1), unavailable(255)} (1..255) -``` - -### PosFrontAx - -```asn1 -PosFrontAx ::= INTEGER {tenCentimeters(1), unavailable(20)} (1..20) -``` - -### PositionOfOccupants - -```asn1 -PositionOfOccupants ::= BIT STRING { - row1LeftOccupied (0), - row1RightOccupied (1), - row1MidOccupied (2), - row1NotDetectable (3), - row1NotPresent (4), - row2LeftOccupied (5), - row2RightOccupied (6), - row2MidOccupied (7), - row2NotDetectable (8), - row2NotPresent (9), - row3LeftOccupied (10), - row3RightOccupied (11), - row3MidOccupied (12), - row3NotDetectable (13), - row3NotPresent (14), - row4LeftOccupied (15), - row4RightOccupied (16), - row4MidOccupied (17), - row4NotDetectable (18), - row4NotPresent (19)} (SIZE(20)) -``` - -### PositioningSolutionType - -```asn1 -PositioningSolutionType ::= ENUMERATED {noPositioningSolution(0), sGNSS(1), dGNSS(2), sGNSSplusDR(3), dGNSSplusDR(4), dR(5), ...} -``` - -### VehicleIdentification - -```asn1 -VehicleIdentification ::= SEQUENCE { - wMInumber WMInumber OPTIONAL, - vDS VDS OPTIONAL, - ... -} -``` - -### WMInumber - -```asn1 -WMInumber ::= IA5String (SIZE(1..3)) -``` - -### VDS - -```asn1 -VDS ::= IA5String (SIZE(6)) -``` - -### EnergyStorageType - -```asn1 -EnergyStorageType ::= BIT STRING {hydrogenStorage(0), electricEnergyStorage(1), liquidPropaneGas(2), compressedNaturalGas(3), diesel(4), gasoline(5), ammonia(6)} (SIZE(7)) -``` - -### VehicleLength - -```asn1 -VehicleLength ::= SEQUENCE { - vehicleLengthValue VehicleLengthValue, - vehicleLengthConfidenceIndication VehicleLengthConfidenceIndication -} -``` - -### VehicleLengthValue - -```asn1 -VehicleLengthValue ::= INTEGER {tenCentimeters(1), outOfRange(1022), unavailable(1023)} (1..1023) -``` - -### VehicleLengthConfidenceIndication - -```asn1 -VehicleLengthConfidenceIndication ::= ENUMERATED {noTrailerPresent(0), trailerPresentWithKnownLength(1), trailerPresentWithUnknownLength(2), trailerPresenceIsUnknown(3), unavailable(4)} -``` - -### VehicleWidth - -```asn1 -VehicleWidth ::= INTEGER {tenCentimeters(1), outOfRange(61), unavailable(62)} (1..62) -``` - -### PathHistory - -```asn1 -PathHistory::= SEQUENCE (SIZE(0..40)) OF PathPoint -``` - -### EmergencyPriority - -```asn1 -EmergencyPriority ::= BIT STRING {requestForRightOfWay(0), requestForFreeCrossingAtATrafficLight(1)} (SIZE(2)) -``` - -### InformationQuality - -```asn1 -InformationQuality ::= INTEGER {unavailable(0), lowest(1), highest(7)} (0..7) -``` - -### RoadType - -```asn1 -RoadType ::= ENUMERATED { - urban-NoStructuralSeparationToOppositeLanes(0), - urban-WithStructuralSeparationToOppositeLanes(1), - nonUrban-NoStructuralSeparationToOppositeLanes(2), - nonUrban-WithStructuralSeparationToOppositeLanes(3)} -``` - -### SteeringWheelAngle - -```asn1 -SteeringWheelAngle ::= SEQUENCE { - steeringWheelAngleValue SteeringWheelAngleValue, - steeringWheelAngleConfidence SteeringWheelAngleConfidence -} -``` - -### SteeringWheelAngleValue - -```asn1 -SteeringWheelAngleValue ::= INTEGER {straight(0), onePointFiveDegreesToRight(-1), onePointFiveDegreesToLeft(1), unavailable(512)} (-511..512) -``` - -### SteeringWheelAngleConfidence - -```asn1 -SteeringWheelAngleConfidence ::= INTEGER {equalOrWithinOnePointFiveDegree (1), outOfRange(126), unavailable(127)} (1..127) -``` - -### TimestampIts - -```asn1 -TimestampIts ::= INTEGER {utcStartOf2004(0), oneMillisecAfterUTCStartOf2004(1)} (0..4398046511103) -``` - -### VehicleRole - -```asn1 -VehicleRole ::= ENUMERATED {default(0), publicTransport(1), specialTransport(2), dangerousGoods(3), roadWork(4), rescue(5), emergency(6), safetyCar(7), agriculture(8), commercial(9), military(10), roadOperator(11), taxi(12), reserved1(13), reserved2(14), reserved3(15)} -``` - -### YawRate - -```asn1 -YawRate::= SEQUENCE { - yawRateValue YawRateValue, - yawRateConfidence YawRateConfidence -} -``` - -### YawRateValue - -```asn1 -YawRateValue ::= INTEGER {straight(0), degSec-000-01ToRight(-1), degSec-000-01ToLeft(1), unavailable(32767)} (-32766..32767) -``` - -### YawRateConfidence - -```asn1 -YawRateConfidence ::= ENUMERATED { - degSec-000-01 (0), - degSec-000-05 (1), - degSec-000-10 (2), - degSec-001-00 (3), - degSec-005-00 (4), - degSec-010-00 (5), - degSec-100-00 (6), - outOfRange (7), - unavailable (8) -} -``` - -### ProtectedZoneType - -```asn1 -ProtectedZoneType::= ENUMERATED { permanentCenDsrcTolling (0), ..., temporaryCenDsrcTolling (1) } -``` - -### RelevanceDistance - -```asn1 -RelevanceDistance ::= ENUMERATED {lessThan50m(0), lessThan100m(1), lessThan200m(2), lessThan500m(3), lessThan1000m(4), lessThan5km(5), lessThan10km(6), over10km(7)} -``` - -### RelevanceTrafficDirection - -```asn1 -RelevanceTrafficDirection ::= ENUMERATED {allTrafficDirections(0), upstreamTraffic(1), downstreamTraffic(2), oppositeTraffic(3)} -``` - -### TransmissionInterval - -```asn1 -TransmissionInterval ::= INTEGER {oneMilliSecond(1), tenSeconds(10000)} (1..10000) -``` - -### ValidityDuration - -```asn1 -ValidityDuration ::= INTEGER {timeOfDetection(0), oneSecondAfterDetection(1)} (0..86400) -``` - -### ActionID - -```asn1 -ActionID ::= SEQUENCE { - originatingStationID StationID, - sequenceNumber SequenceNumber -} -``` - -### ItineraryPath - -```asn1 -ItineraryPath ::= SEQUENCE SIZE(1..40) OF ReferencePosition -``` - -### ProtectedCommunicationZone - -```asn1 -ProtectedCommunicationZone ::= SEQUENCE { - protectedZoneType ProtectedZoneType, - expiryTime TimestampIts OPTIONAL, - protectedZoneLatitude Latitude, - protectedZoneLongitude Longitude, - protectedZoneRadius ProtectedZoneRadius OPTIONAL, - protectedZoneID ProtectedZoneID OPTIONAL, - ... -} -``` - -### Traces - -```asn1 -Traces ::= SEQUENCE SIZE(1..7) OF PathHistory -``` - -### NumberOfOccupants - -```asn1 -NumberOfOccupants ::= INTEGER {oneOccupant (1), unavailable(127)} (0 .. 127) -``` - -### SequenceNumber - -```asn1 -SequenceNumber ::= INTEGER (0..65535) -``` - -### PositionOfPillars - -```asn1 -PositionOfPillars ::= SEQUENCE (SIZE(1..3, ...)) OF PosPillar -``` - -### RestrictedTypes - -```asn1 -RestrictedTypes ::= SEQUENCE (SIZE(1..3, ...)) OF StationType -``` - -### EventHistory - -```asn1 -EventHistory::= SEQUENCE (SIZE(1..23)) OF EventPoint -``` - -### EventPoint - -```asn1 -EventPoint ::= SEQUENCE { - eventPosition DeltaReferencePosition, - eventDeltaTime PathDeltaTime OPTIONAL, - informationQuality InformationQuality -} -``` - -### ProtectedCommunicationZonesRSU - -```asn1 -ProtectedCommunicationZonesRSU ::= SEQUENCE (SIZE(1..16)) OF ProtectedCommunicationZone -``` - -### CenDsrcTollingZone - -```asn1 -CenDsrcTollingZone ::= SEQUENCE { - protectedZoneLatitude Latitude, - protectedZoneLongitude Longitude, - cenDsrcTollingZoneID CenDsrcTollingZoneID OPTIONAL, - ... -} -``` - -### ProtectedZoneRadius - -```asn1 -ProtectedZoneRadius ::= INTEGER {oneMeter(1)} (1..255,...) -``` - -### ProtectedZoneID - -```asn1 -ProtectedZoneID ::= INTEGER (0.. 134217727) -``` - -### CenDsrcTollingZoneID - -```asn1 -CenDsrcTollingZoneID ::= ProtectedZoneID -``` - -### DigitalMap - -```asn1 -DigitalMap ::= SEQUENCE (SIZE(1..256)) OF ReferencePosition -``` - -### OpeningDaysHours - -```asn1 -OpeningDaysHours ::= UTF8String -``` - -### PhoneNumber - -```asn1 -PhoneNumber ::= NumericString (SIZE(1..16)) -``` - - - diff --git a/docs/Ieee1609Dot2.md b/docs/Ieee1609Dot2.md deleted file mode 100644 index a965a7c..0000000 --- a/docs/Ieee1609Dot2.md +++ /dev/null @@ -1,775 +0,0 @@ -# ASN.1 module Ieee1609Dot2 - OID: _{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-4(4)}_ - @brief 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. - -## Imports: - * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-3(3)} WITH SUCCESSORS*
- - * **[EtsiTs103097ExtensionModule](EtsiTs103097ExtensionModule.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) secHeaders(103097) extension(2) version-1(1) minor-version-1(1)} WITH SUCCESSORS*
- -## Data Elements: -### Ieee1609Dot2Data - -* `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. - - -```asn1 -Ieee1609Dot2Data ::= SEQUENCE { - protocolVersion Uint8(3), - content Ieee1609Dot2Content - } -``` - -### Ieee1609Dot2Content - -* `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. - - -```asn1 -Ieee1609Dot2Content ::= CHOICE { - unsecuredData Opaque, - signedData SignedData, - encryptedData EncryptedData, - signedCertificateRequest Opaque, - ..., - signedX509CertificateRequest Opaque - } -``` - -### SignedData - -* `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.
    • - -```asn1 -SignedData ::= SEQUENCE { - hashId HashAlgorithm, - tbsData ToBeSignedData, - signer SignerIdentifier, - signature Signature - } -``` - -### ToBeSignedData - -* `payload` contains data that is provided by the entity that invokes - the SDS. - -* `headerInfo` contains additional data that is inserted by the SDS. - - -```asn1 -ToBeSignedData ::= SEQUENCE { - payload SignedDataPayload, - headerInfo HeaderInfo - } -``` - -### SignedDataPayload - -* `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. - - -```asn1 -SignedDataPayload ::= SEQUENCE { - data Ieee1609Dot2Data OPTIONAL, - extDataHash HashedData OPTIONAL, - ... - } (WITH COMPONENTS {..., data PRESENT} | - WITH COMPONENTS {..., extDataHash PRESENT}) -``` - -### HashedData - -```asn1 -HashedData::= CHOICE { - sha256HashedData OCTET STRING (SIZE(32)), - ..., - sha384HashedData OCTET STRING (SIZE(48)), - reserved OCTET STRING (SIZE(32)) - } -``` - -### HeaderInfo - -* `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. - - -```asn1 -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 - } -``` - -### MissingCrlIdentifier - -* `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. - - -```asn1 -MissingCrlIdentifier ::= SEQUENCE { - cracaId HashedId3, - crlSeries CrlSeries, - ... - } -``` - -### PduFunctionalType - -* `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. - - -```asn1 -PduFunctionalType ::= INTEGER (0..255) - tlsHandshake PduFunctionalType ::= 1 - iso21177ExtendedAuth PduFunctionalType ::= 2 -``` - -### ContributedExtensionBlocks - -```asn1 -ContributedExtensionBlocks ::= SEQUENCE (SIZE(1..MAX)) OF ContributedExtensionBlock -``` - -### ContributedExtensionBlock - -* `contributorId` uniquely identifies the contributor - -* `extns` contains a list of extensions from that contributor. - - -```asn1 -ContributedExtensionBlock ::= SEQUENCE { - contributorId IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION. - &id({Ieee1609Dot2HeaderInfoContributedExtensions}), - extns SEQUENCE (SIZE(1..MAX)) OF IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION. - &Extn({Ieee1609Dot2HeaderInfoContributedExtensions}{@.contributorId}) -} -``` - -### IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION - -```asn1 -IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION ::= CLASS { - &id HeaderInfoContributorId UNIQUE, - &Extn - } WITH SYNTAX {&Extn IDENTIFIED BY &id} -``` - -### Ieee1609Dot2HeaderInfoContributedExtensions - -* `In` this version of the standard, only the type - EtsiOriginatingHeaderInfoExtension contributed by ETSI is supported. - The information object EtsiOriginatingHeaderInfoExtension is imported - from the EtsiTs103097ExtensionModule - - -```asn1 -Ieee1609Dot2HeaderInfoContributedExtensions - IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION ::= { - {EtsiOriginatingHeaderInfoExtension IDENTIFIED BY etsiHeaderInfoContributorId}, - ... - } -``` - -### HeaderInfoContributorId - -* `In` this version of the standard, value 2 is assigned to ETSI. - - -```asn1 -HeaderInfoContributorId ::= INTEGER (0..255) - etsiHeaderInfoContributorId HeaderInfoContributorId ::= 2 -``` - -### SignerIdentifier - -```asn1 -SignerIdentifier ::= CHOICE { - digest HashedId8, - certificate SequenceOfCertificate, - self NULL, - ... - } -``` - -### EncryptedData - -* `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. - - -```asn1 -EncryptedData ::= SEQUENCE { - recipients SequenceOfRecipientInfo, - ciphertext SymmetricCiphertext - } -``` - -### RecipientInfo - -* `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. - - -```asn1 -RecipientInfo ::= CHOICE { - pskRecipInfo PreSharedKeyRecipientInfo, - symmRecipInfo SymmRecipientInfo, - certRecipInfo PKRecipientInfo, - signedDataRecipInfo PKRecipientInfo, - rekRecipInfo PKRecipientInfo - } -``` - -### SequenceOfRecipientInfo - -```asn1 -SequenceOfRecipientInfo ::= SEQUENCE OF RecipientInfo -``` - -### PreSharedKeyRecipientInfo - -```asn1 -PreSharedKeyRecipientInfo ::= HashedId8 -``` - -### SymmRecipientInfo - -* `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. - - -```asn1 -SymmRecipientInfo ::= SEQUENCE { - recipientId HashedId8, - encKey SymmetricCiphertext - } -``` - -### PKRecipientInfo - -* `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.
      • - -* `encKey` contains the encrypted key. - - -```asn1 -PKRecipientInfo ::= SEQUENCE { - recipientId HashedId8, - encKey EncryptedDataEncryptionKey - } -``` - -### EncryptedDataEncryptionKey - -```asn1 -EncryptedDataEncryptionKey ::= CHOICE { - eciesNistP256 EciesP256EncryptedKey, - eciesBrainpoolP256r1 EciesP256EncryptedKey, - ... - } -``` - -### SymmetricCiphertext - -```asn1 -SymmetricCiphertext ::= CHOICE { - aes128ccm AesCcmCiphertext, - ... - } -``` - -### AesCcmCiphertext - -* `nonce` contains the nonce N as specified in 5.3.7. - -* `ccmCiphertext` contains the ciphertext C as specified in 5.3.7. - - -```asn1 -AesCcmCiphertext ::= SEQUENCE { - nonce OCTET STRING (SIZE (12)), - ccmCiphertext Opaque - } -``` - -### Countersignature - -```asn1 -Countersignature ::= Ieee1609Dot2Data (WITH COMPONENTS {..., - content (WITH COMPONENTS {..., - signedData (WITH COMPONENTS {..., - tbsData (WITH COMPONENTS {..., - payload (WITH COMPONENTS {..., - data ABSENT, - extDataHash PRESENT - }), - headerInfo(WITH COMPONENTS {..., - generationTime PRESENT, - expiryTime ABSENT, - generationLocation ABSENT, - p2pcdLearningRequest ABSENT, - missingCrlIdentifier ABSENT, - encryptionKey ABSENT - }) - }) - }) - }) - }) -``` - -### Certificate - -```asn1 -Certificate ::= CertificateBase (ImplicitCertificate | ExplicitCertificate) -``` - -### SequenceOfCertificate - -```asn1 -SequenceOfCertificate ::= SEQUENCE OF Certificate -``` - -### CertificateBase - -* `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.
        • - -```asn1 -CertificateBase ::= SEQUENCE { - version Uint8(3), - type CertificateType, - issuer IssuerIdentifier, - toBeSigned ToBeSignedCertificate, - signature Signature OPTIONAL - } -``` - -### CertificateType - -```asn1 -CertificateType ::= ENUMERATED { - explicit, - implicit, - ... - } -``` - -### ImplicitCertificate - -```asn1 -ImplicitCertificate ::= CertificateBase (WITH COMPONENTS {..., - type(implicit), - toBeSigned(WITH COMPONENTS {..., - verifyKeyIndicator(WITH COMPONENTS {reconstructionValue}) - }), - signature ABSENT - }) -``` - -### ExplicitCertificate - -```asn1 -ExplicitCertificate ::= CertificateBase (WITH COMPONENTS {..., - type(explicit), - toBeSigned(WITH COMPONENTS {..., - verifyKeyIndicator(WITH COMPONENTS {verificationKey}) - }), - signature PRESENT - }) -``` - -### IssuerIdentifier - -```asn1 -IssuerIdentifier ::= CHOICE { - sha256AndDigest HashedId8, - self HashAlgorithm, - ..., - sha384AndDigest HashedId8 - } -``` - -### ToBeSignedCertificate - -* `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.
          • - -* `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. - - -```asn1 -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, - ..., - flags BIT STRING {cubk (0)} (SIZE (8)) OPTIONAL - } - (WITH COMPONENTS { ..., appPermissions PRESENT} | - WITH COMPONENTS { ..., certIssuePermissions PRESENT} | - WITH COMPONENTS { ..., certRequestPermissions PRESENT}) -``` - -### CertificateId - -* `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. - - -```asn1 -CertificateId ::= CHOICE { - linkageData LinkageData, - name Hostname, - binaryId OCTET STRING(SIZE(1..64)), - none NULL, - ... - } -``` - -### LinkageData - -```asn1 -LinkageData ::= SEQUENCE { - iCert IValue, - linkage-value LinkageValue, - group-linkage-value GroupLinkageValue OPTIONAL - } -``` - -### EndEntityType - -```asn1 -EndEntityType ::= BIT STRING { - app (0), - enroll (1) - } (SIZE (8)) (ALL EXCEPT {}) -``` - -### PsidGroupPermissions - -* `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. - - -```asn1 -PsidGroupPermissions ::= SEQUENCE { - subjectPermissions SubjectPermissions, - minChainLength INTEGER DEFAULT 1, - chainLengthRange INTEGER DEFAULT 0, - eeType EndEntityType DEFAULT {app} - } -``` - -### SequenceOfPsidGroupPermissions - -```asn1 -SequenceOfPsidGroupPermissions ::= SEQUENCE OF PsidGroupPermissions -``` - -### SubjectPermissions - -```asn1 -SubjectPermissions ::= CHOICE { - explicit SequenceOfPsidSspRange, - all NULL, - ... - } -``` - -### VerificationKeyIndicator - -* `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. - - -```asn1 -VerificationKeyIndicator ::= CHOICE { - verificationKey PublicVerificationKey, - reconstructionValue EccP256CurvePoint, - ... - } -``` - - - diff --git a/docs/Ieee1609Dot2BaseTypes.md b/docs/Ieee1609Dot2BaseTypes.md deleted file mode 100644 index e0acea5..0000000 --- a/docs/Ieee1609Dot2BaseTypes.md +++ /dev/null @@ -1,658 +0,0 @@ -# ASN.1 module Ieee1609Dot2BaseTypes - OID: _{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-3(3)}_ - @brief 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. - -## Data Elements: -### Uint3 - -```asn1 -Uint3 ::= INTEGER (0..7) -``` - -### Uint8 - -```asn1 -Uint8 ::= INTEGER (0..255) -``` - -### Uint16 - -```asn1 -Uint16 ::= INTEGER (0..65535) -``` - -### Uint32 - -```asn1 -Uint32 ::= INTEGER (0..4294967295) -``` - -### Uint64 - -```asn1 -Uint64 ::= INTEGER (0..18446744073709551615) -``` - -### SequenceOfUint8 - -```asn1 -SequenceOfUint8 ::= SEQUENCE OF Uint8 -``` - -### SequenceOfUint16 - -```asn1 -SequenceOfUint16 ::= SEQUENCE OF Uint16 -``` - -### Opaque - -```asn1 -Opaque ::= OCTET STRING -``` - -### HashedId3 - -```asn1 -HashedId3 ::= OCTET STRING (SIZE(3)) -``` - -### SequenceOfHashedId3 - -```asn1 -SequenceOfHashedId3 ::= SEQUENCE OF HashedId3 -``` - -### HashedId8 - -```asn1 -HashedId8 ::= OCTET STRING (SIZE(8)) -``` - -### HashedId10 - -```asn1 -HashedId10 ::= OCTET STRING (SIZE(10)) -``` - -### HashedId32 - -```asn1 -HashedId32 ::= OCTET STRING (SIZE(32)) -``` - -### Time32 - -```asn1 -Time32 ::= Uint32 -``` - -### Time64 - -```asn1 -Time64 ::= Uint64 -``` - -### ValidityPeriod - -* `start` contains the starting time of the validity period. - -* `duration` contains the duration of the validity period. - - -```asn1 -ValidityPeriod ::= SEQUENCE { - start Time32, - duration Duration - } -``` - -### Duration - -* `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. - - -```asn1 -Duration ::= CHOICE { - microseconds Uint16, - milliseconds Uint16, - seconds Uint16, - minutes Uint16, - hours Uint16, - sixtyHours Uint16, - years Uint16 - } -``` - -### GeographicRegion - -* `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. - - -```asn1 -GeographicRegion ::= CHOICE { - circularRegion CircularRegion, - rectangularRegion SequenceOfRectangularRegion, - polygonalRegion PolygonalRegion, - identifiedRegion SequenceOfIdentifiedRegion, - ... - } -``` - -### CircularRegion - -```asn1 -CircularRegion ::= SEQUENCE { - center TwoDLocation, - radius Uint16 - } -``` - -### RectangularRegion - -```asn1 -RectangularRegion ::= SEQUENCE { - northWest TwoDLocation, - southEast TwoDLocation - } -``` - -### SequenceOfRectangularRegion - -```asn1 -SequenceOfRectangularRegion ::= SEQUENCE OF RectangularRegion -``` - -### PolygonalRegion - -```asn1 -PolygonalRegion ::= SEQUENCE SIZE (3..MAX) OF TwoDLocation -``` - -### TwoDLocation - -```asn1 -TwoDLocation ::= SEQUENCE { - latitude Latitude, - longitude Longitude - } -``` - -### IdentifiedRegion - -```asn1 -IdentifiedRegion ::= CHOICE { - countryOnly CountryOnly, - countryAndRegions CountryAndRegions, - countryAndSubregions CountryAndSubregions, - ... - } -``` - -### SequenceOfIdentifiedRegion - -```asn1 -SequenceOfIdentifiedRegion ::= SEQUENCE OF IdentifiedRegion -``` - -### CountryOnly - -```asn1 -CountryOnly ::= Uint16 -``` - -### CountryAndRegions - -* `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. - - -```asn1 -CountryAndRegions ::= SEQUENCE { - countryOnly CountryOnly, - regions SequenceOfUint8 - } -``` - -### CountryAndSubregions - -* `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. - - -```asn1 -CountryAndSubregions ::= SEQUENCE { - country CountryOnly, - regionAndSubregions SequenceOfRegionAndSubregions - } -``` - -### RegionAndSubregions - -* `region` identifies a region within a country as specified under - CountryAndRegions. - -* `subregions` identifies one or more subregions as specified under - CountryAndSubregions. - - -```asn1 -RegionAndSubregions ::= SEQUENCE { - region Uint8, - subregions SequenceOfUint16 - } -``` - -### SequenceOfRegionAndSubregions - -```asn1 -SequenceOfRegionAndSubregions ::= SEQUENCE OF RegionAndSubregions -``` - -### ThreeDLocation - -```asn1 -ThreeDLocation ::= SEQUENCE { - latitude Latitude, - longitude Longitude, - elevation Elevation - } -``` - -### Latitude - -```asn1 -Latitude ::= NinetyDegreeInt -``` - -### Longitude - -```asn1 -Longitude ::= OneEightyDegreeInt -``` - -### Elevation - -```asn1 -Elevation ::= Uint16 -``` - -### NinetyDegreeInt - -```asn1 -NinetyDegreeInt ::= INTEGER { - min (-900000000), - max (900000000), - unknown (900000001) - } (-900000000..900000001) -``` - -### KnownLatitude - -```asn1 -KnownLatitude ::= NinetyDegreeInt (min..max) -``` - -### UnknownLatitude - -```asn1 -UnknownLatitude ::= NinetyDegreeInt (unknown) -``` - -### OneEightyDegreeInt - -```asn1 -OneEightyDegreeInt ::= INTEGER { - min (-1799999999), - max (1800000000), - unknown (1800000001) - } (-1799999999..1800000001) -``` - -### KnownLongitude - -```asn1 -KnownLongitude ::= OneEightyDegreeInt (min..max) -``` - -### UnknownLongitude - -```asn1 -UnknownLongitude ::= OneEightyDegreeInt (unknown) -``` - -### Signature - -```asn1 -Signature ::= CHOICE { - ecdsaNistP256Signature EcdsaP256Signature, - ecdsaBrainpoolP256r1Signature EcdsaP256Signature, - ..., - ecdsaBrainpoolP384r1Signature EcdsaP384Signature, - ecdsaNistP384Signature EcdsaP384Signature - } -``` - -### EcdsaP256Signature - -```asn1 -EcdsaP256Signature ::= SEQUENCE { - rSig EccP256CurvePoint, - sSig OCTET STRING (SIZE (32)) - } -``` - -### EcdsaP384Signature - -```asn1 -EcdsaP384Signature ::= SEQUENCE { - rSig EccP384CurvePoint, - sSig OCTET STRING (SIZE (48)) - } -``` - -### EccP256CurvePoint - -```asn1 -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)) - } - } -``` - -### EccP384CurvePoint - -```asn1 -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)) - } - } -``` - -### SymmAlgorithm - -```asn1 -SymmAlgorithm ::= ENUMERATED { - aes128Ccm, - ... - } -``` - -### HashAlgorithm - -```asn1 -HashAlgorithm ::= ENUMERATED { - sha256, - ..., - sha384 - } -``` - -### EciesP256EncryptedKey - -* `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. - - -```asn1 -EciesP256EncryptedKey ::= SEQUENCE { - v EccP256CurvePoint, - c OCTET STRING (SIZE (16)), - t OCTET STRING (SIZE (16)) - } -``` - -### EncryptionKey - -```asn1 -EncryptionKey ::= CHOICE { - public PublicEncryptionKey, - symmetric SymmetricEncryptionKey - } -``` - -### PublicEncryptionKey - -```asn1 -PublicEncryptionKey ::= SEQUENCE { - supportedSymmAlg SymmAlgorithm, - publicKey BasePublicEncryptionKey - } -``` - -### BasePublicEncryptionKey - -```asn1 -BasePublicEncryptionKey ::= CHOICE { - eciesNistP256 EccP256CurvePoint, - eciesBrainpoolP256r1 EccP256CurvePoint, - ... - } -``` - -### PublicVerificationKey - -```asn1 -PublicVerificationKey ::= CHOICE { - ecdsaNistP256 EccP256CurvePoint, - ecdsaBrainpoolP256r1 EccP256CurvePoint, - ..., - ecdsaBrainpoolP384r1 EccP384CurvePoint, - ecdsaNistP384 EccP384CurvePoint - } -``` - -### SymmetricEncryptionKey - -```asn1 -SymmetricEncryptionKey ::= CHOICE { - aes128Ccm OCTET STRING(SIZE(16)), - ... - } -``` - -### PsidSsp - -```asn1 -PsidSsp ::= SEQUENCE { - psid Psid, - ssp ServiceSpecificPermissions OPTIONAL - } -``` - -### SequenceOfPsidSsp - -```asn1 -SequenceOfPsidSsp ::= SEQUENCE OF PsidSsp -``` - -### Psid - -```asn1 -Psid ::= INTEGER (0..MAX) -``` - -### SequenceOfPsid - -```asn1 -SequenceOfPsid ::= SEQUENCE OF Psid -``` - -### ServiceSpecificPermissions - -```asn1 -ServiceSpecificPermissions ::= CHOICE { - opaque OCTET STRING (SIZE(0..MAX)), - ..., - bitmapSsp BitmapSsp - } -``` - -### BitmapSsp - -```asn1 -BitmapSsp ::= OCTET STRING (SIZE(0..31)) -``` - -### PsidSspRange - -* `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. - - -```asn1 -PsidSspRange ::= SEQUENCE { - psid Psid, - sspRange SspRange OPTIONAL - } -``` - -### SequenceOfPsidSspRange - -```asn1 -SequenceOfPsidSspRange ::= SEQUENCE OF PsidSspRange -``` - -### SspRange - -```asn1 -SspRange ::= CHOICE { - opaque SequenceOfOctetString, - all NULL, - ... , - bitmapSspRange BitmapSspRange - } -``` - -### BitmapSspRange - -```asn1 -BitmapSspRange ::= SEQUENCE { - sspValue OCTET STRING (SIZE(1..32)), - sspBitmask OCTET STRING (SIZE(1..32)) - } -``` - -### SequenceOfOctetString - -```asn1 -SequenceOfOctetString ::= - SEQUENCE (SIZE (0..MAX)) OF OCTET STRING (SIZE(0..MAX)) -``` - -### SubjectAssurance - -```asn1 -SubjectAssurance ::= OCTET STRING (SIZE(1)) -``` - -### CrlSeries - -```asn1 -CrlSeries ::= Uint16 -``` - -### IValue - -```asn1 -IValue ::= Uint16 -``` - -### Hostname - -```asn1 -Hostname ::= UTF8String (SIZE(0..255)) -``` - -### LinkageValue - -```asn1 -LinkageValue ::= OCTET STRING (SIZE(9)) -``` - -### GroupLinkageValue - -```asn1 -GroupLinkageValue ::= SEQUENCE { - jValue OCTET STRING (SIZE(4)), - value OCTET STRING (SIZE(9)) - } -``` - -### LaId - -```asn1 -LaId ::= OCTET STRING (SIZE(2)) -``` - -### LinkageSeed - -```asn1 -LinkageSeed ::= OCTET STRING (SIZE(16)) -``` - - - -- GitLab From 949eb414296220aab2bb383bbb4947d9f83ce1c5 Mon Sep 17 00:00:00 2001 From: Virendra Kumar Date: Wed, 31 Aug 2022 10:45:00 -0400 Subject: [PATCH 34/66] Removed the unused detector Speed-ValueTooLarge-ThresholdNoContext, also updated documentation. --- EtsiTs103759CommonObservations.asn | 28 --------------------- docs/EtsiTs103759MbrCommonObservations.html | 6 ----- docs/EtsiTs103759MbrCommonObservations.md | 10 -------- 3 files changed, 44 deletions(-) diff --git a/EtsiTs103759CommonObservations.asn b/EtsiTs103759CommonObservations.asn index 6dce4b2..c638f37 100644 --- a/EtsiTs103759CommonObservations.asn +++ b/EtsiTs103759CommonObservations.asn @@ -330,34 +330,6 @@ SetMbObsCamPosition C-ASR-SINGLE-OBS ::= { * Speed issues */ -/* - * @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 -} - /** * @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 diff --git a/docs/EtsiTs103759MbrCommonObservations.html b/docs/EtsiTs103759MbrCommonObservations.html index bb8d4d3..4fb9d75 100644 --- a/docs/EtsiTs103759MbrCommonObservations.html +++ b/docs/EtsiTs103759MbrCommonObservations.html @@ -1050,12 +1050,6 @@ to support this observation.

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

            SetMbObsCamPosition

            SetMbObsCamPosition C-ASR-SINGLE-OBS ::= {
            obs-Position-ChangeTooLarge,
            ...
            }
            -

            Speed-ValueTooLarge-ThresholdNoContext

            -

            Fields:

            -
              -
            • threshold Uint16
              Speed-ValueTooLarge-ThresholdNoContext ::= SEQUENCE {
              threshold Uint16
              }
              -
            • -

            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 diff --git a/docs/EtsiTs103759MbrCommonObservations.md b/docs/EtsiTs103759MbrCommonObservations.md index 61cdedf..cad16c2 100644 --- a/docs/EtsiTs103759MbrCommonObservations.md +++ b/docs/EtsiTs103759MbrCommonObservations.md @@ -421,16 +421,6 @@ SetMbObsCamPosition C-ASR-SINGLE-OBS ::= { } ``` -### Speed-ValueTooLarge-ThresholdNoContext - -Fields: -* threshold [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
            -```asn1 -Speed-ValueTooLarge-ThresholdNoContext ::= SEQUENCE { - threshold Uint16 -} -``` - ### Speed-ValueTooLarge-VehicleType This data type is provided for an observation of speed too large -- GitLab From 9776eca2c34580a9a285f4a1ea4b0d8e9e1dc8a1 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Fri, 2 Sep 2022 10:31:33 +0000 Subject: [PATCH 35/66] Update .gitlab-ci.yml: Remove cam/*.asn file mask --- .gitlab-ci.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d2ff86e..fba78b7 100755 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,7 +3,7 @@ include: file: '/gitlab-ci/base.yml' variables: - ASN1_SRC: '*.asn cam/*.asn cdd/*.asn sec_ts103097/*.asn sec_ts103097/ieee1609dot2/*.asn' + ASN1_SRC: '*.asn cdd/*.asn sec_ts103097/*.asn sec_ts103097/ieee1609dot2/*.asn' GIT_SUBMODULE_STRATEGY: recursive validate: @@ -11,8 +11,6 @@ validate: only: changes: - '*.asn' - - 'cam/*.asn' - documentation: extends: .documentation -- GitLab From 61c85d5e5ca2b077f23e126da048c2586c6d3006 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Fri, 2 Sep 2022 10:34:47 +0000 Subject: [PATCH 36/66] Update .gitlab-ci.yml: remove cdd/*.asn mask --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fba78b7..d9a2360 100755 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,7 +3,7 @@ include: file: '/gitlab-ci/base.yml' variables: - ASN1_SRC: '*.asn cdd/*.asn sec_ts103097/*.asn sec_ts103097/ieee1609dot2/*.asn' + ASN1_SRC: '*.asn sec_ts103097/*.asn sec_ts103097/ieee1609dot2/*.asn' GIT_SUBMODULE_STRATEGY: recursive validate: -- GitLab From 9ad1e38e5697e9453391983911be0b213c0bee7a Mon Sep 17 00:00:00 2001 From: "ASN.1 Checker" Date: Mon, 5 Sep 2022 12:49:48 +0000 Subject: [PATCH 37/66] Documentation update --- docs/EtsiTs103097ExtensionModule.md | 87 +++ docs/EtsiTs103097Module.md | 151 +++++ docs/EtsiTs103759.md | 305 ++++----- docs/EtsiTs103759AsrAppAgnostic.md | 6 +- docs/EtsiTs103759AsrCam.md | 115 ++-- docs/EtsiTs103759AsrDenm.md | 6 +- docs/EtsiTs103759MbrCommonObservations.md | 352 ++-------- docs/Ieee1609Dot2.md | 775 ++++++++++++++++++++++ docs/Ieee1609Dot2BaseTypes.md | 658 ++++++++++++++++++ 9 files changed, 1884 insertions(+), 571 deletions(-) create mode 100644 docs/EtsiTs103097ExtensionModule.md create mode 100644 docs/EtsiTs103097Module.md create mode 100644 docs/Ieee1609Dot2.md create mode 100644 docs/Ieee1609Dot2BaseTypes.md diff --git a/docs/EtsiTs103097ExtensionModule.md b/docs/EtsiTs103097ExtensionModule.md new file mode 100644 index 0000000..a05014e --- /dev/null +++ b/docs/EtsiTs103097ExtensionModule.md @@ -0,0 +1,87 @@ +# ASN.1 module EtsiTs103097ExtensionModule + OID: _{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) secHeaders(103097) extension(2) major-version-1(1) minor-version-1(1)}_ + +## Imports: + * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-3 (3)} WITH SUCCESSORS*
            + +## Data Elements: +### ExtensionModuleVersion + +```asn1 +ExtensionModuleVersion::= INTEGER(1) +``` + +### Extension + +```asn1 +Extension {EXT-TYPE : ExtensionTypes} ::= SEQUENCE { + id EXT-TYPE.&extId({ExtensionTypes}), + content EXT-TYPE.&ExtContent({ExtensionTypes}{@.id}) +} +``` + +### EXT-TYPE + +```asn1 +EXT-TYPE ::= CLASS { + &extId ExtId, + &ExtContent +} WITH SYNTAX {&ExtContent IDENTIFIED BY &extId} +``` + +### ExtId + +```asn1 +ExtId ::= INTEGER(0..255) +``` + +### EtsiOriginatingHeaderInfoExtension + +```asn1 +EtsiOriginatingHeaderInfoExtension ::= Extension{{EtsiTs103097HeaderInfoExtensions}} +``` + +### EtsiTs103097HeaderInfoExtensionId + +```asn1 +EtsiTs103097HeaderInfoExtensionId ::= ExtId + etsiTs102941CrlRequestId EtsiTs103097HeaderInfoExtensionId ::= 1 + etsiTs102941DeltaCtlRequestId EtsiTs103097HeaderInfoExtensionId ::= 2 +``` + +### EtsiTs103097HeaderInfoExtensions + +```asn1 +EtsiTs103097HeaderInfoExtensions EXT-TYPE ::= { + { EtsiTs102941CrlRequest IDENTIFIED BY etsiTs102941CrlRequestId } | + { EtsiTs102941DeltaCtlRequest IDENTIFIED BY etsiTs102941DeltaCtlRequestId }, + ... +} +``` + +### EtsiTs102941CrlRequest + +```asn1 +EtsiTs102941CrlRequest::= SEQUENCE { + issuerId HashedId8, + lastKnownUpdate Time32 OPTIONAL +} +``` + +### EtsiTs102941CtlRequest + +```asn1 +EtsiTs102941CtlRequest::= SEQUENCE { + issuerId HashedId8, + lastKnownCtlSequence INTEGER (0..255) OPTIONAL +} +``` + +### EtsiTs102941DeltaCtlRequest + +```asn1 +EtsiTs102941DeltaCtlRequest::= EtsiTs102941CtlRequest +``` + + + diff --git a/docs/EtsiTs103097Module.md b/docs/EtsiTs103097Module.md new file mode 100644 index 0000000..7ee5463 --- /dev/null +++ b/docs/EtsiTs103097Module.md @@ -0,0 +1,151 @@ +# ASN.1 module EtsiTs103097Module + OID: _{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) secHeaders(103097) core(1) major-version-3(3) minor-version-1(1)}_ + +## Imports: + * **[Ieee1609Dot2](Ieee1609Dot2.md)** *{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-4(4)} WITH SUCCESSORS*
            + + * **[EtsiTs103097ExtensionModule](EtsiTs103097ExtensionModule.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) secHeaders(103097) extension(2) major-version-1(1) minor-version-1(1)}*
            + +## Data Elements: +### EtsiTs103097Certificate + +```asn1 +EtsiTs103097Certificate::= Certificate (WITH COMPONENTS{..., + toBeSigned (WITH COMPONENTS{..., + id (WITH COMPONENTS{..., + linkageData ABSENT, + binaryId ABSENT + }), + certRequestPermissions ABSENT, + canRequestRollover ABSENT + }) +}) +``` + +### EtsiTs103097Data + +```asn1 +EtsiTs103097Data::=Ieee1609Dot2Data (WITH COMPONENTS {..., + content (WITH COMPONENTS {..., + signedData (WITH COMPONENTS {..., + tbsData (WITH COMPONENTS { + headerInfo (WITH COMPONENTS {..., + generationTime PRESENT, + p2pcdLearningRequest ABSENT, + missingCrlIdentifier ABSENT + }) + }), + signer (WITH COMPONENTS {..., + certificate ((WITH COMPONENT (EtsiTs103097Certificate))^(SIZE(1))) + }) + }), + encryptedData (WITH COMPONENTS {..., + recipients (WITH COMPONENT ( + (WITH COMPONENTS {..., + pskRecipInfo ABSENT, + symmRecipInfo ABSENT, + rekRecipInfo ABSENT + }) + )) + }), + signedCertificateRequest ABSENT + }) +}) +``` + +### EtsiTs103097Data-Unsecured + +```asn1 +EtsiTs103097Data-Unsecured {ToBeSentDataContent} ::= EtsiTs103097Data (WITH COMPONENTS {..., + content (WITH COMPONENTS { + unsecuredData (CONTAINING ToBeSentDataContent) + }) +}) +``` + +### EtsiTs103097Data-Signed + +```asn1 +EtsiTs103097Data-Signed {ToBeSignedDataContent} ::= EtsiTs103097Data (WITH COMPONENTS {..., + content (WITH COMPONENTS { + signedData (WITH COMPONENTS {..., + tbsData (WITH COMPONENTS { + payload (WITH COMPONENTS { + data (WITH COMPONENTS {..., + content (WITH COMPONENTS { + unsecuredData (CONTAINING ToBeSignedDataContent) + }) + }) PRESENT + }) + }) + }) + }) +}) +``` + +### EtsiTs103097Data-SignedExternalPayload + +```asn1 +EtsiTs103097Data-SignedExternalPayload ::= EtsiTs103097Data (WITH COMPONENTS {..., + content (WITH COMPONENTS { + signedData (WITH COMPONENTS {..., + tbsData (WITH COMPONENTS { + payload (WITH COMPONENTS { + extDataHash (WITH COMPONENTS { + sha256HashedData PRESENT + }) PRESENT + }) + }) + }) + }) +}) +``` + +### EtsiTs103097Data-Encrypted + +```asn1 +EtsiTs103097Data-Encrypted {ToBeEncryptedDataContent} ::= EtsiTs103097Data (WITH COMPONENTS {..., + content (WITH COMPONENTS { + encryptedData (WITH COMPONENTS {..., + ciphertext (WITH COMPONENTS {..., + aes128ccm (WITH COMPONENTS {..., + ccmCiphertext (CONSTRAINED BY { ToBeEncryptedDataContent}) + }) + }) + }) + }) +}) +``` + +### EtsiTs103097Data-SignedAndEncrypted + +```asn1 +EtsiTs103097Data-SignedAndEncrypted {ToBesignedAndEncryptedDataContent} ::= EtsiTs103097Data-Encrypted {EtsiTs103097Data-Signed {ToBesignedAndEncryptedDataContent}} +``` + +### EtsiTs103097Data-Encrypted-Unicast + +```asn1 +EtsiTs103097Data-Encrypted-Unicast {ToBeEncryptedDataContent} ::= EtsiTs103097Data-Encrypted { EtsiTs103097Data-Unsecured{ToBeEncryptedDataContent}} (WITH COMPONENTS {..., + content (WITH COMPONENTS { + encryptedData (WITH COMPONENTS {..., + recipients (SIZE(1)) + }) + }) +}) +``` + +### EtsiTs103097Data-SignedAndEncrypted-Unicast + +```asn1 +EtsiTs103097Data-SignedAndEncrypted-Unicast {ToBesignedAndEncryptedDataContent} ::= EtsiTs103097Data-Encrypted {EtsiTs103097Data-Signed {ToBesignedAndEncryptedDataContent}} (WITH COMPONENTS {..., + content (WITH COMPONENTS { + encryptedData (WITH COMPONENTS {..., + recipients (SIZE(1)) + }) + }) +}) +``` + + + diff --git a/docs/EtsiTs103759.md b/docs/EtsiTs103759.md index df83f66..55a1c3f 100644 --- a/docs/EtsiTs103759.md +++ b/docs/EtsiTs103759.md @@ -3,40 +3,28 @@ ## Imports: * **[EtsiTs103097Module](EtsiTs103097Module.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) secHeaders(103097) core(1) major-version-3(3) minor-version-1(1)} WITH SUCCESSORS*
            - + * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-3(3)} WITH SUCCESSORS*
            - + * **[EtsiTs103759AsrAppAgnostic](EtsiTs103759AsrAppAgnostic.md)** *{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-0(0)} WITH SUCCESSORS*
            - + * **[EtsiTs103759AsrCam](EtsiTs103759AsrCam.md)** *{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-0(0)} WITH SUCCESSORS*
            - + * **[EtsiTs103759AsrDenm](EtsiTs103759AsrDenm.md)** *{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-0(0)} WITH SUCCESSORS*
            - + ## Data Elements: -### EtsiTs103759Data - - This data type is the general PDU for a misbehaviour report from an - ITS-S to the MA responsible for reports of that type. AID-specific modules - (EtsiTs103759AsrAppAgnostic, EtsiTs103759AsrCam, EtsiTs103759AsrDenm) have - been imported using WITH SUCCESSORS to enable importing one or more of those - modules with minor-version greater than 0 without requiring any change in the - import statements. At least one of these AID-specific modules shall have - minor-version greater than 0. +### EtsiTs103759Data -Fields: -* version [**Uint8**](Ieee1609Dot2BaseTypes.md#Uint8)
            -contains the version number of this PDU definition. For this - version of this data type it shall be equal to 2. +* `version` contains the version number of this PDU definition. For this + version of this data type it shall be equal to 2. -* generationTime [**Time64**](Ieee1609Dot2BaseTypes.md#Time64)
            -contains information on when this PDU was generated. +* `generationTime` contains information on when this PDU was generated. -* observationLocation [**ThreeDLocation**](Ieee1609Dot2BaseTypes.md#ThreeDLocation)
            -is the location at which the last observation of - a V2X PDU was made before the decision was taken to generate a report. +* `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 [**AidSpecificReport**](#AidSpecificReport)
            -contains the AID-specific misbehaviour report. +* `report` contains the AID-specific misbehaviour report. + ```asn1 EtsiTs103759Data ::= SEQUENCE { @@ -47,17 +35,7 @@ EtsiTs103759Data ::= SEQUENCE { } ``` -### EtsiTs103759Data-SignedAndEncrypted-Unicast - - This structure is the SPDU used to send a signed and encrypted - EtsiTs103759Data to the MA. For the signature to be valid the signing - certificate shall conform to the authorization ticket profile given in - clause 7.2.1 of ETSI TS 103 097 v2.1.1, where the appPermissions field in - the authorization ticket allows signing misbehaviour reports. The signed - EtsiTs103759Data shall be encrypted to the MA using the encryptionKey in - the MA's certificate. - - +### EtsiTs103759Data-SignedAndEncrypted-Unicast ```asn1 EtsiTs103759Data-SignedAndEncrypted-Unicast ::= @@ -66,19 +44,13 @@ EtsiTs103759Data-SignedAndEncrypted-Unicast ::= } ``` -### AidSpecificReport +### 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. -Fields: -* aid [**C-ASR**](#C-ASR) .&aid ({SetAsr})
            -contains the respective ITS-AID. - -* content [**C-ASR**](#C-ASR) .&Content ({SetAsr}{@.aid})
            -contains the report contents, e.g., AsrCam. This will be a - TemplateAsr instantiated with AID-specific Information Object Sets. +* `content` contains the report contents, e.g., AsrCam. This will be a + TemplateAsr instantiated with AID-specific Information Object Sets. + ```asn1 AidSpecificReport ::= SEQUENCE { @@ -87,9 +59,16 @@ AidSpecificReport ::= SEQUENCE { } ``` -### C-ASR +### C-ASR + +* `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. + - This data type defines the IOC for AidSpecificReport. ```asn1 C-ASR ::= CLASS { &aid Psid UNIQUE, @@ -97,12 +76,7 @@ C-ASR ::= CLASS { } WITH SYNTAX {&Content IDENTIFIED BY &aid} ``` -### 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 ```asn1 SetAsr C-ASR ::= { @@ -113,27 +87,52 @@ SetAsr C-ASR ::= { } ``` +### c-AsrAppAgnostic +>>> +NOTE: This value is used for suspicious observations that are not + or cannot be linked to a specific application. +>>> ```asn1 c-AsrAppAgnostic Psid ::= 270549119 ``` - +### c-AsrCam ```asn1 c-AsrCam Psid ::= 36 ``` - +### c-AsrDenm ```asn1 c-AsrDenm Psid ::= 37 ``` +### TemplateAsr + +* `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. + ```asn1 +TemplateAsr { + C-ASR-OBS-BY-TGT: ObservationSet, C-ASR-EV: NonV2xPduEvidenceSet } ::= SEQUENCE { observations SEQUENCE (SIZE(1..MAX)) OF ObservationsByTarget {{ObservationSet}}, @@ -143,20 +142,15 @@ c-AsrDenm Psid ::= 37 } ``` -### ObservationsByTarget - - This data type contains all of the observations related to a - particular "target" property, e.g., speed or security. +### ObservationsByTarget -Fields: -* tgtId [**C-ASR-OBS-BY-TGT**](#C-ASR-OBS-BY-TGT) .&id ({SetAsrObsByTgt})
            -identifies the "target" of the observation, e.g., speed. This - identifier is drawn from an application-specific Information Object Set of - observations by target. +* `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 **SEQUENCE** OF C-ASR-OBS-BY-TGT.&Val
            -contains all the observations related to that target. - The observations are drawn from the provided Information Object Set. +* `observations` contains all the observations related to that target. + The observations are drawn from the provided Information Object Set. + ```asn1 ObservationsByTarget {C-ASR-OBS-BY-TGT: SetAsrObsByTgt} ::= SEQUENCE { @@ -166,32 +160,23 @@ 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 ```asn1 C-ASR-OBS-BY-TGT ::= C-2ENT ``` -### MbSingleObservation - - This data type contains a single misbehaviour observation. +### MbSingleObservation -Fields: -* obsId [**C-ASR-SINGLE-OBS**](#C-ASR-SINGLE-OBS) .&id ({SetMbSingleObs})
            -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. +* `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 [**C-ASR-SINGLE-OBS**](#C-ASR-SINGLE-OBS) .&Val ({SetMbSingleObs}{@.obsId})
            -contains any parameters relevant to the observation. The - observations are drawn from the provided Information Object Set. +* `obs` contains any parameters relevant to the observation. The + observations are drawn from the provided Information Object Set. + ```asn1 MbSingleObservation {C-ASR-SINGLE-OBS: SetMbSingleObs} ::= SEQUENCE { @@ -200,47 +185,39 @@ 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 ```asn1 C-ASR-SINGLE-OBS ::= C-2ENT ``` -### V2xPduStream - - This data type contains PDU stream from a single sender. - -Fields: -* type [**C-OBS-PDU**](#C-OBS-PDU) .&id ({SetObsPdu})
            -* v2xPdus **SEQUENCE** (SIZE(1..255)) OF C-OBS-PDU.&Val
            -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 [**EtsiTs103097Certificate**](EtsiTs103097Module.md#EtsiTs103097Certificate) OPTIONAL
            -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 [**Uint8**](Ieee1609Dot2BaseTypes.md#Uint8)
            -identifies which PDU within the v2xPdus sequence - is the "subject PDU", i.e., the PDU associated with the observations. +### V2xPduStream + +* `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. + ```asn1 V2xPduStream ::= SEQUENCE { @@ -253,22 +230,13 @@ V2xPduStream ::= SEQUENCE { } ``` -### C-OBS-PDU - - This is the Information Object Class used to define different types - of observed PDUs. - - +### C-OBS-PDU ```asn1 C-OBS-PDU ::= C-2ENT ``` -### SetObsPdu - - This data type contains the IOS for the observed PDU. - - +### SetObsPdu ```asn1 SetObsPdu C-OBS-PDU ::= { @@ -279,71 +247,46 @@ SetObsPdu C-OBS-PDU ::= { } ``` -### IdObsPdu +### IdObsPdu - This data type contains the identifier of the type of observed PDU. +* `c-ObsPdu-etsiGn` The PDU is of ETSI GeoNetworking type +* `c-ObsPdu-ieee1609Dot2Data` The PDU contains the [**Ieee1609Dot2Data**](#Ieee1609Dot2Data) structure +* `c-ObsPdu-wsmp` The PDU contains the WSMP data type defined in IEEE 1609.3 + ```asn1 IdObsPdu ::= Uint8 -``` - - - -```asn1 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 ```asn1 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 ```asn1 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 ```asn1 ObsPduWsmp ::= Opaque ``` -### NonV2xPduEvidenceItem - - This data type contains evidence, which may be referenced by one or - more observations. +### NonV2xPduEvidenceItem -Fields: -* id [**C-ASR-EV**](#C-ASR-EV) .&id ({SetMbEv})
            -identifies the evidence type. +* `id` identifies the evidence type. -* evidence [**C-ASR-EV**](#C-ASR-EV) .&Val ({SetMbEv}{@.id})
            -contains the evidence. +* `evidence` contains the evidence. + ```asn1 NonV2xPduEvidenceItem {C-ASR-EV: SetMbEv} ::= SEQUENCE { @@ -352,25 +295,17 @@ 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 +>>> +NOTE: No instances of this class are defined in this version of this document. +>>> ```asn1 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 ```asn1 C-2ENT ::= CLASS { diff --git a/docs/EtsiTs103759AsrAppAgnostic.md b/docs/EtsiTs103759AsrAppAgnostic.md index 30a57c7..c85274e 100644 --- a/docs/EtsiTs103759AsrAppAgnostic.md +++ b/docs/EtsiTs103759AsrAppAgnostic.md @@ -2,11 +2,7 @@ OID: _{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-0(0)}_ ## Data Elements: -### AsrAppAgnostic - - This data type is defined as NULL for this version of the standard. - - +### AsrAppAgnostic ```asn1 AsrAppAgnostic ::= NULL diff --git a/docs/EtsiTs103759AsrCam.md b/docs/EtsiTs103759AsrCam.md index 39bbb5c..774fb74 100644 --- a/docs/EtsiTs103759AsrCam.md +++ b/docs/EtsiTs103759AsrCam.md @@ -3,31 +3,25 @@ ## Imports: * **[EtsiTs103759](EtsiTs103759.md)** *{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)} WITH SUCCESSORS*
            - + * **[EtsiTs103759MbrCommonObservations](EtsiTs103759MbrCommonObservations.md)** *{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)} WITH SUCCESSORS*
            - + * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-3(3)} WITH SUCCESSORS*
            - + ## Data Elements: -### AsrCam - - This data type is for reporting CAM issues. - - +### AsrCam ```asn1 AsrCam ::= TemplateAsr {{SetMbObsTgtsCam}, {SetMbEvCam}} ``` -### IdCamTgt - - +### IdCamTgt ```asn1 IdCamTgt ::= Uint8 ``` - +### c-CamTgt-BeaconCommon ```asn1 c-CamTgt-BeaconCommon IdCamTgt ::= 0 @@ -38,61 +32,44 @@ 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. - - - `Security-HeaderIncWithSecurityProfile`: The security headerInfo is - inconsistent with the security profile specified in ETSI TS 103 097 V2.1.1 - (2021-10), 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 not contained in the appPermissions of 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. +### SetMbObsTgtsCam + +* `SetMbObsCamBeacon` - `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. + +* `SetMbObsCamStatic` - `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). + +* `SetMbObsCamSecurity` - `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. + +* `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: + +* `SetMbObsEtsiOnlyLongAcc` - `LongAcc-ValueTooLarge`: The longitudinalAcceleration is greater + than 90 dm/s2. (Typical \mu (coefficient of friction between asphalt and + rubber) is 0.9, so maximum possible acceleration is 0.9*9.8 m/s2, i.e., + 88.2 dm/s2.) + - - `Security-MessageIncWithSsp`: The message payload is inconsistent - with the SSP in the certificate, as specified in ETSI EN 302 637-2 V1.4.1 - (2019-04),e.g., publicTransportContainer is present in the - specialVehicleContainer but the relevant SSP in the certificate does not - permit publicTransportContainer. - - - `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. - - - `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. ```asn1 SetMbObsTgtsCam C-ASR-OBS-BY-TGT ::= { {MbSingleObservation{{SetMbObsCamBeacon}} BY @@ -111,11 +88,7 @@ SetMbObsTgtsCam C-ASR-OBS-BY-TGT ::= { } ``` -### SetMbEvCam - - This data type defines the IOS for CAM Evidence. - - +### SetMbEvCam ```asn1 SetMbEvCam C-ASR-EV ::= { diff --git a/docs/EtsiTs103759AsrDenm.md b/docs/EtsiTs103759AsrDenm.md index 82297db..f676989 100644 --- a/docs/EtsiTs103759AsrDenm.md +++ b/docs/EtsiTs103759AsrDenm.md @@ -2,11 +2,7 @@ OID: _{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-0(0)}_ ## Data Elements: -### AsrDenm - - This data type is defined as NULL for version 0 of this file. - - +### AsrDenm ```asn1 AsrDenm ::= NULL diff --git a/docs/EtsiTs103759MbrCommonObservations.md b/docs/EtsiTs103759MbrCommonObservations.md index cad16c2..8ea3c64 100644 --- a/docs/EtsiTs103759MbrCommonObservations.md +++ b/docs/EtsiTs103759MbrCommonObservations.md @@ -3,60 +3,36 @@ ## Imports: * **[EtsiTs103759](EtsiTs103759.md)** *{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)} WITH SUCCESSORS*
            - + * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-3(3)} WITH SUCCESSORS*
            - + ## Data Elements: -### IdMbObs - - Identifier type for observations: synonym for Uint8 - - +### IdMbObs ```asn1 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 ```asn1 Beacon-IntervalTooSmall ::= NULL ``` - +### c-ObsBeacon-IntervalTooSmall ```asn1 c-ObsBeacon-IntervalTooSmall IdMbObs::= 1 ``` - +### obs-Beacon-IntervalTooSmall ```asn1 obs-Beacon-IntervalTooSmall C-ASR-SINGLE-OBS ::= {Beacon-IntervalTooSmall BY c-ObsBeacon-IntervalTooSmall} ``` -### SetMbObsCamBeacon - - +### SetMbObsCamBeacon ```asn1 SetMbObsCamBeacon C-ASR-SINGLE-OBS ::= { @@ -65,45 +41,26 @@ SetMbObsCamBeacon C-ASR-SINGLE-OBS ::= { } ``` -### 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 ```asn1 Static-Change ::= BIT STRING ``` - +### c-ObsStatic-Change ```asn1 c-ObsStatic-Change IdMbObs::= 1 ``` - +### obs-Static-Change ```asn1 obs-Static-Change C-ASR-SINGLE-OBS ::= {Static-Change BY c-ObsStatic-Change} ``` -### SetMbObsCamStatic - - +### SetMbObsCamStatic ```asn1 SetMbObsCamStatic C-ASR-SINGLE-OBS ::= { @@ -112,170 +69,49 @@ SetMbObsCamStatic C-ASR-SINGLE-OBS ::= { } ``` -### 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 ```asn1 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 ```asn1 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 ```asn1 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 ```asn1 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 ```asn1 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 ```asn1 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 ```asn1 Security-HeaderLocationOutsideCertificateValidity ::= NULL ``` - +### c-ObsSecurity-MessageIdIncWithHeaderInfo ```asn1 c-ObsSecurity-MessageIdIncWithHeaderInfo IdMbObs ::= 1 @@ -287,7 +123,7 @@ c-ObsSecurity-MessageLocationOutsideCertificateValidity IdMbObs ::= 6 c-ObsSecurity-HeaderLocationOutsideCertificateValidity IdMbObs ::= 7 ``` - +### obs-Security-MessageIdIncWithHeaderInfo ```asn1 obs-Security-MessageIdIncWithHeaderInfo C-ASR-SINGLE-OBS ::= { @@ -296,7 +132,7 @@ obs-Security-MessageIdIncWithHeaderInfo C-ASR-SINGLE-OBS ::= { } ``` - +### obs-Security-HeaderIncWithSecurityProfile ```asn1 obs-Security-HeaderIncWithSecurityProfile C-ASR-SINGLE-OBS ::= { @@ -305,7 +141,7 @@ obs-Security-HeaderIncWithSecurityProfile C-ASR-SINGLE-OBS ::= { } ``` - +### obs-Security-HeaderPsidIncWithCertificate ```asn1 obs-Security-HeaderPsidIncWithCertificate C-ASR-SINGLE-OBS ::= { @@ -314,7 +150,7 @@ obs-Security-HeaderPsidIncWithCertificate C-ASR-SINGLE-OBS ::= { } ``` - +### obs-Security-MessageIncWithSsp ```asn1 obs-Security-MessageIncWithSsp C-ASR-SINGLE-OBS ::= { @@ -322,7 +158,7 @@ obs-Security-MessageIncWithSsp C-ASR-SINGLE-OBS ::= { } ``` - +### obs-Security-HeaderTimeOutsideCertificateValidity ```asn1 obs-Security-HeaderTimeOutsideCertificateValidity C-ASR-SINGLE-OBS ::= { @@ -331,37 +167,28 @@ obs-Security-HeaderTimeOutsideCertificateValidity C-ASR-SINGLE-OBS ::= { } ``` -### C-ASR-SINGLE-OBS +### obs-Security-MessageLocationOutsideCertificateValidity -Fields: -* Security-MessageLocationOutsideCertificateValidity [**BY**](#BY)
            ```asn1 -C-ASR-SINGLE-OBS ::= { +obs-Security-MessageLocationOutsideCertificateValidity + C-ASR-SINGLE-OBS ::= { Security-MessageLocationOutsideCertificateValidity BY c-ObsSecurity-MessageLocationOutsideCertificateValidity } ``` -### C-ASR-SINGLE-OBS +### obs-Security-HeaderLocationOutsideCertificateValidity -Fields: -* Security-HeaderLocationOutsideCertificateValidity [**BY**](#BY)
            ```asn1 -C-ASR-SINGLE-OBS ::= { +obs-Security-HeaderLocationOutsideCertificateValidity + C-ASR-SINGLE-OBS ::= { Security-HeaderLocationOutsideCertificateValidity BY c-ObsSecurity-HeaderLocationOutsideCertificateValidity } ``` -### SetMbObsCamSecurity +### SetMbObsCamSecurity -Values: -* **obs-Security-MessageIdIncWithHeaderInfo** |
            -* **obs-Security-HeaderIncWithSecurityProfile** |
            -* **obs-Security-HeaderPsidIncWithCertificate** |
            -* **obs-Security-MessageIncWithSsp** |
            -* **obs-Security-HeaderTimeOutsideCertificateValidity** |
            -* **obs-Security-MessageLocationOutsideCertificateValidity** |
            ```asn1 SetMbObsCamSecurity C-ASR-SINGLE-OBS ::= { obs-Security-MessageIdIncWithHeaderInfo | @@ -375,36 +202,19 @@ SetMbObsCamSecurity C-ASR-SINGLE-OBS ::= { } ``` -### 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 ```asn1 Position-ChangeTooLarge ::= NULL ``` - +### c-ObsPosition-ChangeTooLarge ```asn1 c-ObsPosition-ChangeTooLarge IdMbObs ::= 4 ``` - +### obs-Position-ChangeTooLarge ```asn1 obs-Position-ChangeTooLarge C-ASR-SINGLE-OBS ::= { @@ -412,7 +222,7 @@ obs-Position-ChangeTooLarge C-ASR-SINGLE-OBS ::= { } ``` -### SetMbObsCamPosition +### SetMbObsCamPosition ```asn1 SetMbObsCamPosition C-ASR-SINGLE-OBS ::= { @@ -421,74 +231,25 @@ SetMbObsCamPosition C-ASR-SINGLE-OBS ::= { } ``` -### 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 ```asn1 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 ```asn1 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 ```asn1 Speed-ChangeTooLarge ::= NULL ``` - +### c-ObsSpeed-ValueTooLarge-VehicleType ```asn1 c-ObsSpeed-ValueTooLarge-VehicleType IdMbObs::= 3 @@ -496,7 +257,7 @@ c-ObsSpeed-ValueTooLarge-DriveDirectionReverse IdMbObs::= 4 c-ObsSpeed-ChangeTooLarge IdMbObs::= 5 ``` - +### obs-Speed-ValueTooLarge-VehicleType ```asn1 obs-Speed-ValueTooLarge-VehicleType C-ASR-SINGLE-OBS ::= { @@ -504,7 +265,7 @@ obs-Speed-ValueTooLarge-VehicleType C-ASR-SINGLE-OBS ::= { } ``` - +### obs-Speed-ValueTooLarge-DriveDirectionReverse ```asn1 obs-Speed-ValueTooLarge-DriveDirectionReverse C-ASR-SINGLE-OBS ::= { @@ -513,7 +274,7 @@ obs-Speed-ValueTooLarge-DriveDirectionReverse C-ASR-SINGLE-OBS ::= { } ``` - +### obs-Speed-ChangeTooLarge ```asn1 obs-Speed-ChangeTooLarge C-ASR-SINGLE-OBS ::= { @@ -521,11 +282,8 @@ obs-Speed-ChangeTooLarge C-ASR-SINGLE-OBS ::= { } ``` -### SetMbObsCamSpeed +### SetMbObsCamSpeed -Values: -* **obs-Speed-ValueTooLarge-VehicleType** |
            -* **obs-Speed-ValueTooLarge-DriveDirectionReverse** |
            ```asn1 SetMbObsCamSpeed C-ASR-SINGLE-OBS ::= { obs-Speed-ValueTooLarge-VehicleType | @@ -535,35 +293,19 @@ SetMbObsCamSpeed C-ASR-SINGLE-OBS ::= { } ``` -### 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 ```asn1 LongAcc-ValueTooLarge ::= NULL ``` - +### c-ObsLongAcc-ValueTooLarge ```asn1 c-ObsLongAcc-ValueTooLarge IdMbObs::= 4 ``` - +### obs-LongAcc-ValueTooLarge ```asn1 obs-LongAcc-ValueTooLarge C-ASR-SINGLE-OBS ::= { @@ -571,7 +313,7 @@ obs-LongAcc-ValueTooLarge C-ASR-SINGLE-OBS ::= { } ``` -### SetMbObsCamLongAcc +### SetMbObsCamLongAcc ```asn1 SetMbObsCamLongAcc C-ASR-SINGLE-OBS ::= { diff --git a/docs/Ieee1609Dot2.md b/docs/Ieee1609Dot2.md new file mode 100644 index 0000000..a965a7c --- /dev/null +++ b/docs/Ieee1609Dot2.md @@ -0,0 +1,775 @@ +# ASN.1 module Ieee1609Dot2 + OID: _{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-4(4)}_ + @brief 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. + +## Imports: + * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-3(3)} WITH SUCCESSORS*
            + + * **[EtsiTs103097ExtensionModule](EtsiTs103097ExtensionModule.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) secHeaders(103097) extension(2) version-1(1) minor-version-1(1)} WITH SUCCESSORS*
            + +## Data Elements: +### Ieee1609Dot2Data + +* `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. + + +```asn1 +Ieee1609Dot2Data ::= SEQUENCE { + protocolVersion Uint8(3), + content Ieee1609Dot2Content + } +``` + +### Ieee1609Dot2Content + +* `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. + + +```asn1 +Ieee1609Dot2Content ::= CHOICE { + unsecuredData Opaque, + signedData SignedData, + encryptedData EncryptedData, + signedCertificateRequest Opaque, + ..., + signedX509CertificateRequest Opaque + } +``` + +### SignedData + +* `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.
              • + +```asn1 +SignedData ::= SEQUENCE { + hashId HashAlgorithm, + tbsData ToBeSignedData, + signer SignerIdentifier, + signature Signature + } +``` + +### ToBeSignedData + +* `payload` contains data that is provided by the entity that invokes + the SDS. + +* `headerInfo` contains additional data that is inserted by the SDS. + + +```asn1 +ToBeSignedData ::= SEQUENCE { + payload SignedDataPayload, + headerInfo HeaderInfo + } +``` + +### SignedDataPayload + +* `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. + + +```asn1 +SignedDataPayload ::= SEQUENCE { + data Ieee1609Dot2Data OPTIONAL, + extDataHash HashedData OPTIONAL, + ... + } (WITH COMPONENTS {..., data PRESENT} | + WITH COMPONENTS {..., extDataHash PRESENT}) +``` + +### HashedData + +```asn1 +HashedData::= CHOICE { + sha256HashedData OCTET STRING (SIZE(32)), + ..., + sha384HashedData OCTET STRING (SIZE(48)), + reserved OCTET STRING (SIZE(32)) + } +``` + +### HeaderInfo + +* `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. + + +```asn1 +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 + } +``` + +### MissingCrlIdentifier + +* `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. + + +```asn1 +MissingCrlIdentifier ::= SEQUENCE { + cracaId HashedId3, + crlSeries CrlSeries, + ... + } +``` + +### PduFunctionalType + +* `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. + + +```asn1 +PduFunctionalType ::= INTEGER (0..255) + tlsHandshake PduFunctionalType ::= 1 + iso21177ExtendedAuth PduFunctionalType ::= 2 +``` + +### ContributedExtensionBlocks + +```asn1 +ContributedExtensionBlocks ::= SEQUENCE (SIZE(1..MAX)) OF ContributedExtensionBlock +``` + +### ContributedExtensionBlock + +* `contributorId` uniquely identifies the contributor + +* `extns` contains a list of extensions from that contributor. + + +```asn1 +ContributedExtensionBlock ::= SEQUENCE { + contributorId IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION. + &id({Ieee1609Dot2HeaderInfoContributedExtensions}), + extns SEQUENCE (SIZE(1..MAX)) OF IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION. + &Extn({Ieee1609Dot2HeaderInfoContributedExtensions}{@.contributorId}) +} +``` + +### IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION + +```asn1 +IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION ::= CLASS { + &id HeaderInfoContributorId UNIQUE, + &Extn + } WITH SYNTAX {&Extn IDENTIFIED BY &id} +``` + +### Ieee1609Dot2HeaderInfoContributedExtensions + +* `In` this version of the standard, only the type + EtsiOriginatingHeaderInfoExtension contributed by ETSI is supported. + The information object EtsiOriginatingHeaderInfoExtension is imported + from the EtsiTs103097ExtensionModule + + +```asn1 +Ieee1609Dot2HeaderInfoContributedExtensions + IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION ::= { + {EtsiOriginatingHeaderInfoExtension IDENTIFIED BY etsiHeaderInfoContributorId}, + ... + } +``` + +### HeaderInfoContributorId + +* `In` this version of the standard, value 2 is assigned to ETSI. + + +```asn1 +HeaderInfoContributorId ::= INTEGER (0..255) + etsiHeaderInfoContributorId HeaderInfoContributorId ::= 2 +``` + +### SignerIdentifier + +```asn1 +SignerIdentifier ::= CHOICE { + digest HashedId8, + certificate SequenceOfCertificate, + self NULL, + ... + } +``` + +### EncryptedData + +* `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. + + +```asn1 +EncryptedData ::= SEQUENCE { + recipients SequenceOfRecipientInfo, + ciphertext SymmetricCiphertext + } +``` + +### RecipientInfo + +* `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. + + +```asn1 +RecipientInfo ::= CHOICE { + pskRecipInfo PreSharedKeyRecipientInfo, + symmRecipInfo SymmRecipientInfo, + certRecipInfo PKRecipientInfo, + signedDataRecipInfo PKRecipientInfo, + rekRecipInfo PKRecipientInfo + } +``` + +### SequenceOfRecipientInfo + +```asn1 +SequenceOfRecipientInfo ::= SEQUENCE OF RecipientInfo +``` + +### PreSharedKeyRecipientInfo + +```asn1 +PreSharedKeyRecipientInfo ::= HashedId8 +``` + +### SymmRecipientInfo + +* `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. + + +```asn1 +SymmRecipientInfo ::= SEQUENCE { + recipientId HashedId8, + encKey SymmetricCiphertext + } +``` + +### PKRecipientInfo + +* `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.
                • + +* `encKey` contains the encrypted key. + + +```asn1 +PKRecipientInfo ::= SEQUENCE { + recipientId HashedId8, + encKey EncryptedDataEncryptionKey + } +``` + +### EncryptedDataEncryptionKey + +```asn1 +EncryptedDataEncryptionKey ::= CHOICE { + eciesNistP256 EciesP256EncryptedKey, + eciesBrainpoolP256r1 EciesP256EncryptedKey, + ... + } +``` + +### SymmetricCiphertext + +```asn1 +SymmetricCiphertext ::= CHOICE { + aes128ccm AesCcmCiphertext, + ... + } +``` + +### AesCcmCiphertext + +* `nonce` contains the nonce N as specified in 5.3.7. + +* `ccmCiphertext` contains the ciphertext C as specified in 5.3.7. + + +```asn1 +AesCcmCiphertext ::= SEQUENCE { + nonce OCTET STRING (SIZE (12)), + ccmCiphertext Opaque + } +``` + +### Countersignature + +```asn1 +Countersignature ::= Ieee1609Dot2Data (WITH COMPONENTS {..., + content (WITH COMPONENTS {..., + signedData (WITH COMPONENTS {..., + tbsData (WITH COMPONENTS {..., + payload (WITH COMPONENTS {..., + data ABSENT, + extDataHash PRESENT + }), + headerInfo(WITH COMPONENTS {..., + generationTime PRESENT, + expiryTime ABSENT, + generationLocation ABSENT, + p2pcdLearningRequest ABSENT, + missingCrlIdentifier ABSENT, + encryptionKey ABSENT + }) + }) + }) + }) + }) +``` + +### Certificate + +```asn1 +Certificate ::= CertificateBase (ImplicitCertificate | ExplicitCertificate) +``` + +### SequenceOfCertificate + +```asn1 +SequenceOfCertificate ::= SEQUENCE OF Certificate +``` + +### CertificateBase + +* `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.
                  • + +```asn1 +CertificateBase ::= SEQUENCE { + version Uint8(3), + type CertificateType, + issuer IssuerIdentifier, + toBeSigned ToBeSignedCertificate, + signature Signature OPTIONAL + } +``` + +### CertificateType + +```asn1 +CertificateType ::= ENUMERATED { + explicit, + implicit, + ... + } +``` + +### ImplicitCertificate + +```asn1 +ImplicitCertificate ::= CertificateBase (WITH COMPONENTS {..., + type(implicit), + toBeSigned(WITH COMPONENTS {..., + verifyKeyIndicator(WITH COMPONENTS {reconstructionValue}) + }), + signature ABSENT + }) +``` + +### ExplicitCertificate + +```asn1 +ExplicitCertificate ::= CertificateBase (WITH COMPONENTS {..., + type(explicit), + toBeSigned(WITH COMPONENTS {..., + verifyKeyIndicator(WITH COMPONENTS {verificationKey}) + }), + signature PRESENT + }) +``` + +### IssuerIdentifier + +```asn1 +IssuerIdentifier ::= CHOICE { + sha256AndDigest HashedId8, + self HashAlgorithm, + ..., + sha384AndDigest HashedId8 + } +``` + +### ToBeSignedCertificate + +* `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.
                    • + +* `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. + + +```asn1 +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, + ..., + flags BIT STRING {cubk (0)} (SIZE (8)) OPTIONAL + } + (WITH COMPONENTS { ..., appPermissions PRESENT} | + WITH COMPONENTS { ..., certIssuePermissions PRESENT} | + WITH COMPONENTS { ..., certRequestPermissions PRESENT}) +``` + +### CertificateId + +* `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. + + +```asn1 +CertificateId ::= CHOICE { + linkageData LinkageData, + name Hostname, + binaryId OCTET STRING(SIZE(1..64)), + none NULL, + ... + } +``` + +### LinkageData + +```asn1 +LinkageData ::= SEQUENCE { + iCert IValue, + linkage-value LinkageValue, + group-linkage-value GroupLinkageValue OPTIONAL + } +``` + +### EndEntityType + +```asn1 +EndEntityType ::= BIT STRING { + app (0), + enroll (1) + } (SIZE (8)) (ALL EXCEPT {}) +``` + +### PsidGroupPermissions + +* `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. + + +```asn1 +PsidGroupPermissions ::= SEQUENCE { + subjectPermissions SubjectPermissions, + minChainLength INTEGER DEFAULT 1, + chainLengthRange INTEGER DEFAULT 0, + eeType EndEntityType DEFAULT {app} + } +``` + +### SequenceOfPsidGroupPermissions + +```asn1 +SequenceOfPsidGroupPermissions ::= SEQUENCE OF PsidGroupPermissions +``` + +### SubjectPermissions + +```asn1 +SubjectPermissions ::= CHOICE { + explicit SequenceOfPsidSspRange, + all NULL, + ... + } +``` + +### VerificationKeyIndicator + +* `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. + + +```asn1 +VerificationKeyIndicator ::= CHOICE { + verificationKey PublicVerificationKey, + reconstructionValue EccP256CurvePoint, + ... + } +``` + + + diff --git a/docs/Ieee1609Dot2BaseTypes.md b/docs/Ieee1609Dot2BaseTypes.md new file mode 100644 index 0000000..e0acea5 --- /dev/null +++ b/docs/Ieee1609Dot2BaseTypes.md @@ -0,0 +1,658 @@ +# ASN.1 module Ieee1609Dot2BaseTypes + OID: _{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-3(3)}_ + @brief 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. + +## Data Elements: +### Uint3 + +```asn1 +Uint3 ::= INTEGER (0..7) +``` + +### Uint8 + +```asn1 +Uint8 ::= INTEGER (0..255) +``` + +### Uint16 + +```asn1 +Uint16 ::= INTEGER (0..65535) +``` + +### Uint32 + +```asn1 +Uint32 ::= INTEGER (0..4294967295) +``` + +### Uint64 + +```asn1 +Uint64 ::= INTEGER (0..18446744073709551615) +``` + +### SequenceOfUint8 + +```asn1 +SequenceOfUint8 ::= SEQUENCE OF Uint8 +``` + +### SequenceOfUint16 + +```asn1 +SequenceOfUint16 ::= SEQUENCE OF Uint16 +``` + +### Opaque + +```asn1 +Opaque ::= OCTET STRING +``` + +### HashedId3 + +```asn1 +HashedId3 ::= OCTET STRING (SIZE(3)) +``` + +### SequenceOfHashedId3 + +```asn1 +SequenceOfHashedId3 ::= SEQUENCE OF HashedId3 +``` + +### HashedId8 + +```asn1 +HashedId8 ::= OCTET STRING (SIZE(8)) +``` + +### HashedId10 + +```asn1 +HashedId10 ::= OCTET STRING (SIZE(10)) +``` + +### HashedId32 + +```asn1 +HashedId32 ::= OCTET STRING (SIZE(32)) +``` + +### Time32 + +```asn1 +Time32 ::= Uint32 +``` + +### Time64 + +```asn1 +Time64 ::= Uint64 +``` + +### ValidityPeriod + +* `start` contains the starting time of the validity period. + +* `duration` contains the duration of the validity period. + + +```asn1 +ValidityPeriod ::= SEQUENCE { + start Time32, + duration Duration + } +``` + +### Duration + +* `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. + + +```asn1 +Duration ::= CHOICE { + microseconds Uint16, + milliseconds Uint16, + seconds Uint16, + minutes Uint16, + hours Uint16, + sixtyHours Uint16, + years Uint16 + } +``` + +### GeographicRegion + +* `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. + + +```asn1 +GeographicRegion ::= CHOICE { + circularRegion CircularRegion, + rectangularRegion SequenceOfRectangularRegion, + polygonalRegion PolygonalRegion, + identifiedRegion SequenceOfIdentifiedRegion, + ... + } +``` + +### CircularRegion + +```asn1 +CircularRegion ::= SEQUENCE { + center TwoDLocation, + radius Uint16 + } +``` + +### RectangularRegion + +```asn1 +RectangularRegion ::= SEQUENCE { + northWest TwoDLocation, + southEast TwoDLocation + } +``` + +### SequenceOfRectangularRegion + +```asn1 +SequenceOfRectangularRegion ::= SEQUENCE OF RectangularRegion +``` + +### PolygonalRegion + +```asn1 +PolygonalRegion ::= SEQUENCE SIZE (3..MAX) OF TwoDLocation +``` + +### TwoDLocation + +```asn1 +TwoDLocation ::= SEQUENCE { + latitude Latitude, + longitude Longitude + } +``` + +### IdentifiedRegion + +```asn1 +IdentifiedRegion ::= CHOICE { + countryOnly CountryOnly, + countryAndRegions CountryAndRegions, + countryAndSubregions CountryAndSubregions, + ... + } +``` + +### SequenceOfIdentifiedRegion + +```asn1 +SequenceOfIdentifiedRegion ::= SEQUENCE OF IdentifiedRegion +``` + +### CountryOnly + +```asn1 +CountryOnly ::= Uint16 +``` + +### CountryAndRegions + +* `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. + + +```asn1 +CountryAndRegions ::= SEQUENCE { + countryOnly CountryOnly, + regions SequenceOfUint8 + } +``` + +### CountryAndSubregions + +* `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. + + +```asn1 +CountryAndSubregions ::= SEQUENCE { + country CountryOnly, + regionAndSubregions SequenceOfRegionAndSubregions + } +``` + +### RegionAndSubregions + +* `region` identifies a region within a country as specified under + CountryAndRegions. + +* `subregions` identifies one or more subregions as specified under + CountryAndSubregions. + + +```asn1 +RegionAndSubregions ::= SEQUENCE { + region Uint8, + subregions SequenceOfUint16 + } +``` + +### SequenceOfRegionAndSubregions + +```asn1 +SequenceOfRegionAndSubregions ::= SEQUENCE OF RegionAndSubregions +``` + +### ThreeDLocation + +```asn1 +ThreeDLocation ::= SEQUENCE { + latitude Latitude, + longitude Longitude, + elevation Elevation + } +``` + +### Latitude + +```asn1 +Latitude ::= NinetyDegreeInt +``` + +### Longitude + +```asn1 +Longitude ::= OneEightyDegreeInt +``` + +### Elevation + +```asn1 +Elevation ::= Uint16 +``` + +### NinetyDegreeInt + +```asn1 +NinetyDegreeInt ::= INTEGER { + min (-900000000), + max (900000000), + unknown (900000001) + } (-900000000..900000001) +``` + +### KnownLatitude + +```asn1 +KnownLatitude ::= NinetyDegreeInt (min..max) +``` + +### UnknownLatitude + +```asn1 +UnknownLatitude ::= NinetyDegreeInt (unknown) +``` + +### OneEightyDegreeInt + +```asn1 +OneEightyDegreeInt ::= INTEGER { + min (-1799999999), + max (1800000000), + unknown (1800000001) + } (-1799999999..1800000001) +``` + +### KnownLongitude + +```asn1 +KnownLongitude ::= OneEightyDegreeInt (min..max) +``` + +### UnknownLongitude + +```asn1 +UnknownLongitude ::= OneEightyDegreeInt (unknown) +``` + +### Signature + +```asn1 +Signature ::= CHOICE { + ecdsaNistP256Signature EcdsaP256Signature, + ecdsaBrainpoolP256r1Signature EcdsaP256Signature, + ..., + ecdsaBrainpoolP384r1Signature EcdsaP384Signature, + ecdsaNistP384Signature EcdsaP384Signature + } +``` + +### EcdsaP256Signature + +```asn1 +EcdsaP256Signature ::= SEQUENCE { + rSig EccP256CurvePoint, + sSig OCTET STRING (SIZE (32)) + } +``` + +### EcdsaP384Signature + +```asn1 +EcdsaP384Signature ::= SEQUENCE { + rSig EccP384CurvePoint, + sSig OCTET STRING (SIZE (48)) + } +``` + +### EccP256CurvePoint + +```asn1 +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)) + } + } +``` + +### EccP384CurvePoint + +```asn1 +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)) + } + } +``` + +### SymmAlgorithm + +```asn1 +SymmAlgorithm ::= ENUMERATED { + aes128Ccm, + ... + } +``` + +### HashAlgorithm + +```asn1 +HashAlgorithm ::= ENUMERATED { + sha256, + ..., + sha384 + } +``` + +### EciesP256EncryptedKey + +* `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. + + +```asn1 +EciesP256EncryptedKey ::= SEQUENCE { + v EccP256CurvePoint, + c OCTET STRING (SIZE (16)), + t OCTET STRING (SIZE (16)) + } +``` + +### EncryptionKey + +```asn1 +EncryptionKey ::= CHOICE { + public PublicEncryptionKey, + symmetric SymmetricEncryptionKey + } +``` + +### PublicEncryptionKey + +```asn1 +PublicEncryptionKey ::= SEQUENCE { + supportedSymmAlg SymmAlgorithm, + publicKey BasePublicEncryptionKey + } +``` + +### BasePublicEncryptionKey + +```asn1 +BasePublicEncryptionKey ::= CHOICE { + eciesNistP256 EccP256CurvePoint, + eciesBrainpoolP256r1 EccP256CurvePoint, + ... + } +``` + +### PublicVerificationKey + +```asn1 +PublicVerificationKey ::= CHOICE { + ecdsaNistP256 EccP256CurvePoint, + ecdsaBrainpoolP256r1 EccP256CurvePoint, + ..., + ecdsaBrainpoolP384r1 EccP384CurvePoint, + ecdsaNistP384 EccP384CurvePoint + } +``` + +### SymmetricEncryptionKey + +```asn1 +SymmetricEncryptionKey ::= CHOICE { + aes128Ccm OCTET STRING(SIZE(16)), + ... + } +``` + +### PsidSsp + +```asn1 +PsidSsp ::= SEQUENCE { + psid Psid, + ssp ServiceSpecificPermissions OPTIONAL + } +``` + +### SequenceOfPsidSsp + +```asn1 +SequenceOfPsidSsp ::= SEQUENCE OF PsidSsp +``` + +### Psid + +```asn1 +Psid ::= INTEGER (0..MAX) +``` + +### SequenceOfPsid + +```asn1 +SequenceOfPsid ::= SEQUENCE OF Psid +``` + +### ServiceSpecificPermissions + +```asn1 +ServiceSpecificPermissions ::= CHOICE { + opaque OCTET STRING (SIZE(0..MAX)), + ..., + bitmapSsp BitmapSsp + } +``` + +### BitmapSsp + +```asn1 +BitmapSsp ::= OCTET STRING (SIZE(0..31)) +``` + +### PsidSspRange + +* `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. + + +```asn1 +PsidSspRange ::= SEQUENCE { + psid Psid, + sspRange SspRange OPTIONAL + } +``` + +### SequenceOfPsidSspRange + +```asn1 +SequenceOfPsidSspRange ::= SEQUENCE OF PsidSspRange +``` + +### SspRange + +```asn1 +SspRange ::= CHOICE { + opaque SequenceOfOctetString, + all NULL, + ... , + bitmapSspRange BitmapSspRange + } +``` + +### BitmapSspRange + +```asn1 +BitmapSspRange ::= SEQUENCE { + sspValue OCTET STRING (SIZE(1..32)), + sspBitmask OCTET STRING (SIZE(1..32)) + } +``` + +### SequenceOfOctetString + +```asn1 +SequenceOfOctetString ::= + SEQUENCE (SIZE (0..MAX)) OF OCTET STRING (SIZE(0..MAX)) +``` + +### SubjectAssurance + +```asn1 +SubjectAssurance ::= OCTET STRING (SIZE(1)) +``` + +### CrlSeries + +```asn1 +CrlSeries ::= Uint16 +``` + +### IValue + +```asn1 +IValue ::= Uint16 +``` + +### Hostname + +```asn1 +Hostname ::= UTF8String (SIZE(0..255)) +``` + +### LinkageValue + +```asn1 +LinkageValue ::= OCTET STRING (SIZE(9)) +``` + +### GroupLinkageValue + +```asn1 +GroupLinkageValue ::= SEQUENCE { + jValue OCTET STRING (SIZE(4)), + value OCTET STRING (SIZE(9)) + } +``` + +### LaId + +```asn1 +LaId ::= OCTET STRING (SIZE(2)) +``` + +### LinkageSeed + +```asn1 +LinkageSeed ::= OCTET STRING (SIZE(16)) +``` + + + -- GitLab From 254ab48ffc768dfead326fcec56b1db2378876b3 Mon Sep 17 00:00:00 2001 From: Virendra Kumar Date: Mon, 26 Sep 2022 21:03:59 -0400 Subject: [PATCH 38/66] Moved observation sets from CommonObservations to AsrCam to avoid ASN.1 warnings. --- EtsiTs103759AsrCam.asn | 60 +++++++++++++++++++++++++++--- EtsiTs103759CommonObservations.asn | 41 -------------------- 2 files changed, 54 insertions(+), 47 deletions(-) diff --git a/EtsiTs103759AsrCam.asn b/EtsiTs103759AsrCam.asn index 14faddb..6b47d77 100755 --- a/EtsiTs103759AsrCam.asn +++ b/EtsiTs103759AsrCam.asn @@ -17,12 +17,20 @@ FROM EtsiTs103759 {itu-t(0) identified-organization(4) etsi(0) minor-version-1 (1)} WITH SUCCESSORS - SetMbObsCamBeacon, - SetMbObsCamSecurity, - SetMbObsCamStatic, - SetMbObsCamLongAcc, - SetMbObsCamPosition, - SetMbObsCamSpeed + obs-Beacon-IntervalTooSmall, + obs-Static-Change, + obs-Security-MessageIdIncWithHeaderInfo, + obs-Security-HeaderIncWithSecurityProfile, + obs-Security-HeaderPsidIncWithCertificate, + obs-Security-MessageIncWithSsp, + obs-Security-HeaderTimeOutsideCertificateValidity, + obs-Security-MessageLocationOutsideCertificateValidity, + obs-Security-HeaderLocationOutsideCertificateValidity, + obs-Position-ChangeTooLarge, + obs-Speed-ValueTooLarge-VehicleType, + obs-Speed-ValueTooLarge-DriveDirectionReverse, + obs-Speed-ChangeTooLarge, + obs-LongAcc-ValueTooLarge 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)} @@ -51,6 +59,46 @@ c-CamTgt-PositionCommon IdCamTgt ::= 3 c-CamTgt-SpeedCommon IdCamTgt ::= 4 c-CamTgt-LongAccCommon IdCamTgt ::= 5 +SetMbObsCamBeacon C-ASR-SINGLE-OBS ::= { + obs-Beacon-IntervalTooSmall, + ... +} + +SetMbObsCamStatic C-ASR-SINGLE-OBS ::= { + obs-Static-Change, + ... +} + +SetMbObsCamSecurity 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, + ... +} + +SetMbObsCamPosition C-ASR-SINGLE-OBS ::= { + obs-Position-ChangeTooLarge, + ... +} + +SetMbObsCamSpeed C-ASR-SINGLE-OBS ::= { + obs-Speed-ValueTooLarge-VehicleType | + obs-Speed-ValueTooLarge-DriveDirectionReverse | + obs-Speed-ChangeTooLarge, + ... +} + +SetMbObsCamLongAcc C-ASR-SINGLE-OBS ::= { + obs-LongAcc-ValueTooLarge, + ... +} + + + /** * @brief This is a complete set of observations for CAM. Application-specific * trigger conditions and other relevant information are specified below. diff --git a/EtsiTs103759CommonObservations.asn b/EtsiTs103759CommonObservations.asn index c638f37..7f6f5b4 100644 --- a/EtsiTs103759CommonObservations.asn +++ b/EtsiTs103759CommonObservations.asn @@ -56,12 +56,6 @@ c-ObsBeacon-IntervalTooSmall IdMbObs::= 1 -- Class 2 obs-Beacon-IntervalTooSmall C-ASR-SINGLE-OBS ::= {Beacon-IntervalTooSmall BY c-ObsBeacon-IntervalTooSmall} --- Information Object Set -SetMbObsCamBeacon C-ASR-SINGLE-OBS ::= { - obs-Beacon-IntervalTooSmall, - ... -} - /* * Static field issues @@ -92,12 +86,6 @@ c-ObsStatic-Change IdMbObs::= 1 obs-Static-Change C-ASR-SINGLE-OBS ::= {Static-Change BY c-ObsStatic-Change} --- Information Object Set -SetMbObsCamStatic C-ASR-SINGLE-OBS ::= { - obs-Static-Change, - ... -} - /* * Security issues @@ -277,18 +265,6 @@ obs-Security-HeaderLocationOutsideCertificateValidity c-ObsSecurity-HeaderLocationOutsideCertificateValidity } --- Information Object Set -SetMbObsCamSecurity 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 */ @@ -320,11 +296,6 @@ obs-Position-ChangeTooLarge C-ASR-SINGLE-OBS ::= { Position-ChangeTooLarge BY c-ObsPosition-ChangeTooLarge } -SetMbObsCamPosition C-ASR-SINGLE-OBS ::= { - obs-Position-ChangeTooLarge, - ... -} - /* * Speed issues @@ -401,13 +372,6 @@ obs-Speed-ChangeTooLarge C-ASR-SINGLE-OBS ::= { Speed-ChangeTooLarge BY c-ObsSpeed-ChangeTooLarge } -SetMbObsCamSpeed C-ASR-SINGLE-OBS ::= { - obs-Speed-ValueTooLarge-VehicleType | - obs-Speed-ValueTooLarge-DriveDirectionReverse | - obs-Speed-ChangeTooLarge, - ... -} - /* * Longitudinal acceleration issues @@ -439,9 +403,4 @@ obs-LongAcc-ValueTooLarge C-ASR-SINGLE-OBS ::= { LongAcc-ValueTooLarge BY c-ObsLongAcc-ValueTooLarge } -SetMbObsCamLongAcc C-ASR-SINGLE-OBS ::= { - obs-LongAcc-ValueTooLarge, - ... -} - END \ No newline at end of file -- GitLab From d00ed9a530237b917ce535182f4c2a9a29266795 Mon Sep 17 00:00:00 2001 From: "ASN.1 Checker" Date: Tue, 27 Sep 2022 01:06:52 +0000 Subject: [PATCH 39/66] Documentation update --- docs/EtsiTs103759AsrCam.md | 62 +++++++++++++++++++++++ docs/EtsiTs103759MbrCommonObservations.md | 62 ----------------------- 2 files changed, 62 insertions(+), 62 deletions(-) diff --git a/docs/EtsiTs103759AsrCam.md b/docs/EtsiTs103759AsrCam.md index 774fb74..59bb5b1 100644 --- a/docs/EtsiTs103759AsrCam.md +++ b/docs/EtsiTs103759AsrCam.md @@ -32,6 +32,68 @@ c-CamTgt-SpeedCommon IdCamTgt ::= 4 c-CamTgt-LongAccCommon IdCamTgt ::= 5 ``` +### SetMbObsCamBeacon + +```asn1 +SetMbObsCamBeacon C-ASR-SINGLE-OBS ::= { + obs-Beacon-IntervalTooSmall, + ... +} +``` + +### SetMbObsCamStatic + +```asn1 +SetMbObsCamStatic C-ASR-SINGLE-OBS ::= { + obs-Static-Change, + ... +} +``` + +### SetMbObsCamSecurity + +```asn1 +SetMbObsCamSecurity 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, + ... +} +``` + +### SetMbObsCamPosition + +```asn1 +SetMbObsCamPosition C-ASR-SINGLE-OBS ::= { + obs-Position-ChangeTooLarge, + ... +} +``` + +### SetMbObsCamSpeed + +```asn1 +SetMbObsCamSpeed C-ASR-SINGLE-OBS ::= { + obs-Speed-ValueTooLarge-VehicleType | + obs-Speed-ValueTooLarge-DriveDirectionReverse | + obs-Speed-ChangeTooLarge, + ... +} +``` + +### SetMbObsCamLongAcc + +```asn1 +SetMbObsCamLongAcc C-ASR-SINGLE-OBS ::= { + obs-LongAcc-ValueTooLarge, + ... +} +``` + ### SetMbObsTgtsCam * `SetMbObsCamBeacon` - `Beacon-IntervalTooSmall`: The difference between the generation diff --git a/docs/EtsiTs103759MbrCommonObservations.md b/docs/EtsiTs103759MbrCommonObservations.md index 8ea3c64..2e7e2e0 100644 --- a/docs/EtsiTs103759MbrCommonObservations.md +++ b/docs/EtsiTs103759MbrCommonObservations.md @@ -32,15 +32,6 @@ obs-Beacon-IntervalTooSmall C-ASR-SINGLE-OBS ::= {Beacon-IntervalTooSmall BY c-ObsBeacon-IntervalTooSmall} ``` -### SetMbObsCamBeacon - -```asn1 -SetMbObsCamBeacon C-ASR-SINGLE-OBS ::= { - obs-Beacon-IntervalTooSmall, - ... -} -``` - ### Static-Change ```asn1 @@ -60,15 +51,6 @@ obs-Static-Change C-ASR-SINGLE-OBS ::= {Static-Change BY c-ObsStatic-Change} ``` -### SetMbObsCamStatic - -```asn1 -SetMbObsCamStatic C-ASR-SINGLE-OBS ::= { - obs-Static-Change, - ... -} -``` - ### Security-MessageIdIncWithHeaderInfo ```asn1 @@ -187,21 +169,6 @@ obs-Security-HeaderLocationOutsideCertificateValidity } ``` -### SetMbObsCamSecurity - -```asn1 -SetMbObsCamSecurity 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-ChangeTooLarge ```asn1 @@ -222,15 +189,6 @@ obs-Position-ChangeTooLarge C-ASR-SINGLE-OBS ::= { } ``` -### SetMbObsCamPosition - -```asn1 -SetMbObsCamPosition C-ASR-SINGLE-OBS ::= { - obs-Position-ChangeTooLarge, - ... -} -``` - ### Speed-ValueTooLarge-VehicleType ```asn1 @@ -282,17 +240,6 @@ obs-Speed-ChangeTooLarge C-ASR-SINGLE-OBS ::= { } ``` -### SetMbObsCamSpeed - -```asn1 -SetMbObsCamSpeed C-ASR-SINGLE-OBS ::= { - obs-Speed-ValueTooLarge-VehicleType | - obs-Speed-ValueTooLarge-DriveDirectionReverse | - obs-Speed-ChangeTooLarge, - ... -} -``` - ### LongAcc-ValueTooLarge ```asn1 @@ -313,14 +260,5 @@ obs-LongAcc-ValueTooLarge C-ASR-SINGLE-OBS ::= { } ``` -### SetMbObsCamLongAcc - -```asn1 -SetMbObsCamLongAcc C-ASR-SINGLE-OBS ::= { - obs-LongAcc-ValueTooLarge, - ... -} -``` - -- GitLab From 97c4db07c4987af80d13af63ce63b7142bb7853f Mon Sep 17 00:00:00 2001 From: Virendra Kumar Date: Tue, 27 Sep 2022 08:33:31 -0400 Subject: [PATCH 40/66] Added the dummy version of AsrBsm --- EtsiTs103759.asn | 17 +++++++++++++++-- SaeJ3287AsrBsm.asn | 12 ++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 SaeJ3287AsrBsm.asn diff --git a/EtsiTs103759.asn b/EtsiTs103759.asn index 82581c6..e003eb6 100755 --- a/EtsiTs103759.asn +++ b/EtsiTs103759.asn @@ -1,6 +1,6 @@ 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)} + minor-version-2 (2)} DEFINITIONS AUTOMATIC TAGS ::= BEGIN @@ -41,6 +41,13 @@ 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-0(0)} WITH SUCCESSORS + + AsrBsm +FROM SaeJ3287AsrBsm {joint-iso-itu-t (2) country (16) us (840) organization (1) + sae (114566) v2x-communications (1) technical-committees (1) v2x-security (4) + technical-reports (1) misbehavior-reporting (1) asn1-module (1) + aid-specific(2) bsm(32) version-1 (1) version-minor-0 (0)} +WITH SUCCESSORS ; /** @@ -121,7 +128,8 @@ SetAsr C-ASR ::= { {AsrAppAgnostic IDENTIFIED BY c-AsrAppAgnostic} | {AsrCam IDENTIFIED BY c-AsrCam} | {AsrDenm IDENTIFIED BY c-AsrDenm}, - ... + ..., + {AsrBsm IDENTIFIED BY c-AsrBsm} } /** @@ -142,6 +150,11 @@ c-AsrCam Psid ::= 36 */ c-AsrDenm Psid ::= 37 +/** + * @brief This data type contains the ITS-AID of the BSM. + */ +c-AsrBsm Psid ::= 32 + /** * @brief This data type contains the template for a report on any ITS PDU. * diff --git a/SaeJ3287AsrBsm.asn b/SaeJ3287AsrBsm.asn new file mode 100644 index 0000000..7577a12 --- /dev/null +++ b/SaeJ3287AsrBsm.asn @@ -0,0 +1,12 @@ +SaeJ3287AsrBsm {joint-iso-itu-t (2) country (16) us (840) organization (1) + sae (114566) v2x-communications (1) technical-committees (1) v2x-security (4) + technical-reports (1) misbehavior-reporting (1) asn1-module (1) + aid-specific(2) bsm(32) version-1 (1) version-minor-0 (0)} + +DEFINITIONS AUTOMATIC TAGS ::= BEGIN + +EXPORTS ALL; + +AsrBsm ::= NULL + +END -- GitLab From 6a52d46dede51cd2084c80a0d550be49bd27b185 Mon Sep 17 00:00:00 2001 From: "ASN.1 Checker" Date: Tue, 27 Sep 2022 12:35:58 +0000 Subject: [PATCH 41/66] Documentation update --- docs/EtsiTs103759.md | 13 +++++++++++-- docs/SaeJ3287AsrBsm.md | 12 ++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 docs/SaeJ3287AsrBsm.md diff --git a/docs/EtsiTs103759.md b/docs/EtsiTs103759.md index 55a1c3f..f652f52 100644 --- a/docs/EtsiTs103759.md +++ b/docs/EtsiTs103759.md @@ -1,5 +1,5 @@ # ASN.1 module EtsiTs103759 - OID: _{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)}_ + OID: _{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103759) general(1) core(1) major-version-1(1) minor-version-2 (2)}_ ## Imports: * **[EtsiTs103097Module](EtsiTs103097Module.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) secHeaders(103097) core(1) major-version-3(3) minor-version-1(1)} WITH SUCCESSORS*
                      @@ -12,6 +12,8 @@ * **[EtsiTs103759AsrDenm](EtsiTs103759AsrDenm.md)** *{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-0(0)} WITH SUCCESSORS*
                      + * **[SaeJ3287AsrBsm](SaeJ3287AsrBsm.md)** *{joint-iso-itu-t (2) country (16) us (840) organization (1) sae (114566) v2x-communications (1) technical-committees (1) v2x-security (4) technical-reports (1) misbehavior-reporting (1) asn1-module (1) aid-specific(2) bsm(32) version-1 (1) version-minor-0 (0)} WITH SUCCESSORS*
                      + ## Data Elements: ### EtsiTs103759Data @@ -83,7 +85,8 @@ SetAsr C-ASR ::= { {AsrAppAgnostic IDENTIFIED BY c-AsrAppAgnostic} | {AsrCam IDENTIFIED BY c-AsrCam} | {AsrDenm IDENTIFIED BY c-AsrDenm}, - ... + ..., + {AsrBsm IDENTIFIED BY c-AsrBsm} } ``` @@ -110,6 +113,12 @@ c-AsrCam Psid ::= 36 c-AsrDenm Psid ::= 37 ``` +### c-AsrBsm + +```asn1 +c-AsrBsm Psid ::= 32 +``` + ### TemplateAsr * `observations` identifies which detectors were triggered and why. It diff --git a/docs/SaeJ3287AsrBsm.md b/docs/SaeJ3287AsrBsm.md new file mode 100644 index 0000000..bfd2feb --- /dev/null +++ b/docs/SaeJ3287AsrBsm.md @@ -0,0 +1,12 @@ +# ASN.1 module SaeJ3287AsrBsm + OID: _{joint-iso-itu-t (2) country (16) us (840) organization (1) sae (114566) v2x-communications (1) technical-committees (1) v2x-security (4) technical-reports (1) misbehavior-reporting (1) asn1-module (1) aid-specific(2) bsm(32) version-1 (1) version-minor-0 (0)}_ + +## Data Elements: +### AsrBsm + +```asn1 +AsrBsm ::= NULL +``` + + + -- GitLab From 7bbbd871a946eb38f5a5d22173f5aad41720e3e2 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Sun, 23 Oct 2022 16:29:59 +0200 Subject: [PATCH 42/66] fix asn1c parametrized SEQUENCE OF issue --- EtsiTs103759.asn | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/EtsiTs103759.asn b/EtsiTs103759.asn index e003eb6..663a8ab 100755 --- a/EtsiTs103759.asn +++ b/EtsiTs103759.asn @@ -178,11 +178,9 @@ c-AsrBsm Psid ::= 32 TemplateAsr { C-ASR-OBS-BY-TGT: ObservationSet, C-ASR-EV: NonV2xPduEvidenceSet } ::= SEQUENCE { - observations SEQUENCE (SIZE(1..MAX)) OF ObservationsByTarget - {{ObservationSet}}, + observations ObservationsByTargetSequence {{ObservationSet}}, v2xPduEvidence SEQUENCE (SIZE(1..MAX)) OF V2xPduStream, - nonV2xPduEvidence SEQUENCE (SIZE(0..MAX)) OF NonV2xPduEvidenceItem - {{NonV2xPduEvidenceSet}} + nonV2xPduEvidence NonV2xPduEvidenceItemSequence {{NonV2xPduEvidenceSet}} } /** @@ -202,6 +200,9 @@ ObservationsByTarget {C-ASR-OBS-BY-TGT: SetAsrObsByTgt} ::= SEQUENCE { ({SetAsrObsByTgt}{@.tgtId}) } +ObservationsByTargetSequence { C-ASR-OBS-BY-TGT: SetAsrObsByTgt } ::= + SEQUENCE (SIZE(1..MAX)) OF ObservationsByTarget { SetAsrObsByTgt } + /** * @brief This is the Information Object Class used to define observations- * -by-target. @@ -330,6 +331,9 @@ NonV2xPduEvidenceItem {C-ASR-EV: SetMbEv} ::= SEQUENCE { evidence C-ASR-EV.&Val ({SetMbEv}{@.id}) } +NonV2xPduEvidenceItemSequence {NonV2xPduEvidenceSet} ::= + SEQUENCE (SIZE(0..MAX)) OF NonV2xPduEvidenceItem {NonV2xPduEvidenceSet} + /** * @brief This is the Information Object Class used to define evidence. * -- GitLab From 6b7d53d9f5ccc2bfd4eb6b3c5b3a66397b201a5c Mon Sep 17 00:00:00 2001 From: "ASN.1 Checker" Date: Sun, 23 Oct 2022 15:13:47 +0000 Subject: [PATCH 43/66] Documentation update --- docs/EtsiTs103759.md | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/docs/EtsiTs103759.md b/docs/EtsiTs103759.md index f652f52..6b19f31 100644 --- a/docs/EtsiTs103759.md +++ b/docs/EtsiTs103759.md @@ -143,11 +143,9 @@ c-AsrBsm Psid ::= 32 TemplateAsr { C-ASR-OBS-BY-TGT: ObservationSet, C-ASR-EV: NonV2xPduEvidenceSet } ::= SEQUENCE { - observations SEQUENCE (SIZE(1..MAX)) OF ObservationsByTarget - {{ObservationSet}}, + observations ObservationsByTargetSequence {{ObservationSet}}, v2xPduEvidence SEQUENCE (SIZE(1..MAX)) OF V2xPduStream, - nonV2xPduEvidence SEQUENCE (SIZE(0..MAX)) OF NonV2xPduEvidenceItem - {{NonV2xPduEvidenceSet}} + nonV2xPduEvidence NonV2xPduEvidenceItemSequence {{NonV2xPduEvidenceSet}} } ``` @@ -169,6 +167,13 @@ ObservationsByTarget {C-ASR-OBS-BY-TGT: SetAsrObsByTgt} ::= SEQUENCE { } ``` +### ObservationsByTargetSequence + +```asn1 +ObservationsByTargetSequence { C-ASR-OBS-BY-TGT: SetAsrObsByTgt } ::= + SEQUENCE (SIZE(1..MAX)) OF ObservationsByTarget { SetAsrObsByTgt } +``` + ### C-ASR-OBS-BY-TGT ```asn1 @@ -304,6 +309,13 @@ NonV2xPduEvidenceItem {C-ASR-EV: SetMbEv} ::= SEQUENCE { } ``` +### NonV2xPduEvidenceItemSequence + +```asn1 +NonV2xPduEvidenceItemSequence {NonV2xPduEvidenceSet} ::= + SEQUENCE (SIZE(0..MAX)) OF NonV2xPduEvidenceItem {NonV2xPduEvidenceSet} +``` + ### C-ASR-EV -- GitLab From d98c46067f2c1ad5dd23ae2ab9898b091b2dfb12 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Mon, 24 Oct 2022 19:51:19 +0200 Subject: [PATCH 44/66] split EtsiTs103759 into 2 modules --- EtsiTs103759.asn | 198 -------------------------- EtsiTs103759AsrCam.asn | 4 +- EtsiTs103759BaseTypes.asn | 218 +++++++++++++++++++++++++++++ EtsiTs103759CommonObservations.asn | 6 +- 4 files changed, 223 insertions(+), 203 deletions(-) create mode 100755 EtsiTs103759BaseTypes.asn diff --git a/EtsiTs103759.asn b/EtsiTs103759.asn index 663a8ab..2a49e7a 100755 --- a/EtsiTs103759.asn +++ b/EtsiTs103759.asn @@ -7,14 +7,12 @@ DEFINITIONS AUTOMATIC TAGS ::= BEGIN EXPORTS ALL; IMPORTS - EtsiTs103097Certificate, EtsiTs103097Data-SignedAndEncrypted-Unicast FROM EtsiTs103097Module {itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) secHeaders(103097) core(1) major-version-3(3) minor-version-1(1)} WITH SUCCESSORS - Opaque, Psid, ThreeDLocation, Time64, @@ -155,200 +153,4 @@ c-AsrDenm Psid ::= 37 */ c-AsrBsm Psid ::= 32 -/** - * @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 ObservationsByTargetSequence {{ObservationSet}}, - v2xPduEvidence SEQUENCE (SIZE(1..MAX)) OF V2xPduStream, - nonV2xPduEvidence NonV2xPduEvidenceItemSequence {{NonV2xPduEvidenceSet}} -} - -/** - * @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}) -} - -ObservationsByTargetSequence { C-ASR-OBS-BY-TGT: SetAsrObsByTgt } ::= - SEQUENCE (SIZE(1..MAX)) OF ObservationsByTarget { SetAsrObsByTgt } - -/** - * @brief This is the Information Object Class used to define observations- - * -by-target. - */ -C-ASR-OBS-BY-TGT ::= C-2ENT - -/** - * @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}) -} - -/** - * @brief This is the Information Object Class used to define single - * observations. - */ -C-ASR-SINGLE-OBS ::= C-2ENT - -/** - * @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 EtsiTs103097Certificate OPTIONAL, - subjectPduIndex Uint8, - ... -} - -/** - * @brief This is the Information Object Class used to define different types - * of observed PDUs. - */ -C-OBS-PDU ::= C-2ENT - -/** - * @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}, - ... -} - -/** - * @brief This data type contains the identifier of the type of observed PDU. - * - * @param c-ObsPdu-etsiGn The PDU is of ETSI GeoNetworking type - * @param c-ObsPdu-ieee1609Dot2Data The PDU contains the @ref Ieee1609Dot2Data structure - * @param c-ObsPdu-wsmp The PDU contains the WSMP data type defined in IEEE 1609.3 - */ -IdObsPdu ::= Uint8 -c-ObsPdu-etsiGn IdObsPdu ::= 1 -c-ObsPdu-ieee1609Dot2Data IdObsPdu ::= 2 -c-ObsPdu-wsmp IdObsPdu ::= 3 - -/** - * @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 - -/** - * @brief 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 - -/** - * @brief 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 - -/** - * @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}) -} - -NonV2xPduEvidenceItemSequence {NonV2xPduEvidenceSet} ::= - SEQUENCE (SIZE(0..MAX)) OF NonV2xPduEvidenceItem {NonV2xPduEvidenceSet} - -/** - * @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 - -/** - * @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 \ No newline at end of file diff --git a/EtsiTs103759AsrCam.asn b/EtsiTs103759AsrCam.asn index 6b47d77..5ee041b 100755 --- a/EtsiTs103759AsrCam.asn +++ b/EtsiTs103759AsrCam.asn @@ -12,8 +12,8 @@ IMPORTS 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) +FROM EtsiTs103759BaseTypes {itu-t(0) identified-organization(4) etsi(0) + itsDomain(5) wg5(5) ts(103759) general(1) base-types(3) major-version-1(1) minor-version-1 (1)} WITH SUCCESSORS diff --git a/EtsiTs103759BaseTypes.asn b/EtsiTs103759BaseTypes.asn new file mode 100755 index 0000000..c977e48 --- /dev/null +++ b/EtsiTs103759BaseTypes.asn @@ -0,0 +1,218 @@ +EtsiTs103759BaseTypes {itu-t(0) identified-organization(4) etsi(0) + itsDomain(5) wg5(5) ts(103759) general(1) base-types(3) major-version-1(1) + minor-version-1 (1)} + +DEFINITIONS AUTOMATIC TAGS ::= BEGIN + +EXPORTS ALL; + +IMPORTS + EtsiTs103097Certificate +FROM EtsiTs103097Module {itu-t(0) identified-organization(4) etsi(0) + itsDomain(5) wg5(5) secHeaders(103097) core(1) major-version-3(3) + minor-version-1(1)} +WITH SUCCESSORS + + Opaque, + 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-3(3)} +WITH SUCCESSORS +; + +/** + * @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 ObservationsByTargetSequence {{ObservationSet}}, + v2xPduEvidence SEQUENCE (SIZE(1..MAX)) OF V2xPduStream, + nonV2xPduEvidence NonV2xPduEvidenceItemSequence {{NonV2xPduEvidenceSet}} +} + +/** + * @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}) +} + +ObservationsByTargetSequence { C-ASR-OBS-BY-TGT: SetAsrObsByTgt } ::= + SEQUENCE (SIZE(1..MAX)) OF ObservationsByTarget { SetAsrObsByTgt } + +/** + * @brief This is the Information Object Class used to define observations- + * -by-target. + */ +C-ASR-OBS-BY-TGT ::= C-2ENT + +/** + * @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}) +} + +/** + * @brief This is the Information Object Class used to define single + * observations. + */ +C-ASR-SINGLE-OBS ::= C-2ENT + +/** + * @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 EtsiTs103097Certificate OPTIONAL, + subjectPduIndex Uint8, + ... +} + +/** + * @brief This is the Information Object Class used to define different types + * of observed PDUs. + */ +C-OBS-PDU ::= C-2ENT + +/** + * @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}, + ... +} + +/** + * @brief This data type contains the identifier of the type of observed PDU. + * + * @param c-ObsPdu-etsiGn The PDU is of ETSI GeoNetworking type + * @param c-ObsPdu-ieee1609Dot2Data The PDU contains the @ref Ieee1609Dot2Data structure + * @param c-ObsPdu-wsmp The PDU contains the WSMP data type defined in IEEE 1609.3 + */ +IdObsPdu ::= Uint8 +c-ObsPdu-etsiGn IdObsPdu ::= 1 +c-ObsPdu-ieee1609Dot2Data IdObsPdu ::= 2 +c-ObsPdu-wsmp IdObsPdu ::= 3 + +/** + * @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 + +/** + * @brief 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 + +/** + * @brief 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 + +/** + * @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}) +} + +NonV2xPduEvidenceItemSequence {NonV2xPduEvidenceSet} ::= + SEQUENCE (SIZE(0..MAX)) OF NonV2xPduEvidenceItem {NonV2xPduEvidenceSet} + +/** + * @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 + +/** + * @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/EtsiTs103759CommonObservations.asn b/EtsiTs103759CommonObservations.asn index 7f6f5b4..57b556c 100644 --- a/EtsiTs103759CommonObservations.asn +++ b/EtsiTs103759CommonObservations.asn @@ -8,8 +8,8 @@ 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) +FROM EtsiTs103759BaseTypes {itu-t(0) identified-organization(4) etsi(0) + itsDomain(5) wg5(5) ts(103759) general(1) base-types(3) major-version-1(1) minor-version-1 (1)} WITH SUCCESSORS @@ -32,7 +32,7 @@ IdMbObs ::= Uint8 /** * @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 + * 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 -- GitLab From 1483fe3d3ed73d1e00134a637a811b85d61c2402 Mon Sep 17 00:00:00 2001 From: "ASN.1 Checker" Date: Mon, 24 Oct 2022 17:52:26 +0000 Subject: [PATCH 45/66] Documentation update --- docs/EtsiTs103759.md | 216 --------------------- docs/EtsiTs103759AsrCam.md | 2 +- docs/EtsiTs103759BaseTypes.md | 225 ++++++++++++++++++++++ docs/EtsiTs103759MbrCommonObservations.md | 2 +- 4 files changed, 227 insertions(+), 218 deletions(-) create mode 100644 docs/EtsiTs103759BaseTypes.md diff --git a/docs/EtsiTs103759.md b/docs/EtsiTs103759.md index 6b19f31..4152027 100644 --- a/docs/EtsiTs103759.md +++ b/docs/EtsiTs103759.md @@ -119,221 +119,5 @@ c-AsrDenm Psid ::= 37 c-AsrBsm Psid ::= 32 ``` -### TemplateAsr - -* `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. - - -```asn1 -TemplateAsr { - C-ASR-OBS-BY-TGT: ObservationSet, C-ASR-EV: NonV2xPduEvidenceSet -} ::= SEQUENCE { - observations ObservationsByTargetSequence {{ObservationSet}}, - v2xPduEvidence SEQUENCE (SIZE(1..MAX)) OF V2xPduStream, - nonV2xPduEvidence NonV2xPduEvidenceItemSequence {{NonV2xPduEvidenceSet}} -} -``` - -### ObservationsByTarget - -* `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. - - -```asn1 -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}) -} -``` - -### ObservationsByTargetSequence - -```asn1 -ObservationsByTargetSequence { C-ASR-OBS-BY-TGT: SetAsrObsByTgt } ::= - SEQUENCE (SIZE(1..MAX)) OF ObservationsByTarget { SetAsrObsByTgt } -``` - -### C-ASR-OBS-BY-TGT - -```asn1 -C-ASR-OBS-BY-TGT ::= C-2ENT -``` - -### MbSingleObservation - -* `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. - - -```asn1 -MbSingleObservation {C-ASR-SINGLE-OBS: SetMbSingleObs} ::= SEQUENCE { - obsId C-ASR-SINGLE-OBS.&id ({SetMbSingleObs}), - obs C-ASR-SINGLE-OBS.&Val ({SetMbSingleObs}{@.obsId}) -} -``` - -### C-ASR-SINGLE-OBS - -```asn1 -C-ASR-SINGLE-OBS ::= C-2ENT -``` - -### V2xPduStream - -* `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. - - -```asn1 -V2xPduStream ::= SEQUENCE { - type C-OBS-PDU.&id ({SetObsPdu}), - v2xPdus SEQUENCE (SIZE(1..255)) OF C-OBS-PDU.&Val - ({SetObsPdu}{@.type}), - certificate EtsiTs103097Certificate OPTIONAL, - subjectPduIndex Uint8, - ... -} -``` - -### C-OBS-PDU - -```asn1 -C-OBS-PDU ::= C-2ENT -``` - -### SetObsPdu - -```asn1 -SetObsPdu C-OBS-PDU ::= { - {ObsPduEtsiGn BY c-ObsPdu-etsiGn} | - {ObsPduIeee1609Dot2Data BY c-ObsPdu-ieee1609Dot2Data} | - {ObsPduWsmp BY c-ObsPdu-wsmp}, - ... -} -``` - -### IdObsPdu - -* `c-ObsPdu-etsiGn` The PDU is of ETSI GeoNetworking type - -* `c-ObsPdu-ieee1609Dot2Data` The PDU contains the [**Ieee1609Dot2Data**](#Ieee1609Dot2Data) structure - -* `c-ObsPdu-wsmp` The PDU contains the WSMP data type defined in IEEE 1609.3 - - -```asn1 -IdObsPdu ::= Uint8 -c-ObsPdu-etsiGn IdObsPdu ::= 1 -c-ObsPdu-ieee1609Dot2Data IdObsPdu ::= 2 -c-ObsPdu-wsmp IdObsPdu ::= 3 -``` - -### ObsPduEtsiGn - -```asn1 -ObsPduEtsiGn ::= Opaque -``` - -### ObsPduIeee1609Dot2Data - -```asn1 -ObsPduIeee1609Dot2Data ::= Opaque -``` - -### ObsPduWsmp - -```asn1 -ObsPduWsmp ::= Opaque -``` - -### NonV2xPduEvidenceItem - -* `id` identifies the evidence type. - -* `evidence` contains the evidence. - - -```asn1 -NonV2xPduEvidenceItem {C-ASR-EV: SetMbEv} ::= SEQUENCE { - id C-ASR-EV.&id ({SetMbEv}), - evidence C-ASR-EV.&Val ({SetMbEv}{@.id}) -} -``` - -### NonV2xPduEvidenceItemSequence - -```asn1 -NonV2xPduEvidenceItemSequence {NonV2xPduEvidenceSet} ::= - SEQUENCE (SIZE(0..MAX)) OF NonV2xPduEvidenceItem {NonV2xPduEvidenceSet} -``` - -### C-ASR-EV - - ->>> -NOTE: No instances of this class are defined in this version of this document. ->>> -```asn1 -C-ASR-EV ::= C-2ENT -``` - -### C-2ENT - -```asn1 -C-2ENT ::= CLASS { - &id Uint8, - &Val -} WITH SYNTAX {&Val BY &id} -``` - diff --git a/docs/EtsiTs103759AsrCam.md b/docs/EtsiTs103759AsrCam.md index 59bb5b1..686aefa 100644 --- a/docs/EtsiTs103759AsrCam.md +++ b/docs/EtsiTs103759AsrCam.md @@ -2,7 +2,7 @@ OID: _{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)}_ ## Imports: - * **[EtsiTs103759](EtsiTs103759.md)** *{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)} WITH SUCCESSORS*
                      + * **[EtsiTs103759BaseTypes](EtsiTs103759BaseTypes.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103759) general(1) base-types(3) major-version-1(1) minor-version-1 (1)} WITH SUCCESSORS*
                      * **[EtsiTs103759MbrCommonObservations](EtsiTs103759MbrCommonObservations.md)** *{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)} WITH SUCCESSORS*
                      diff --git a/docs/EtsiTs103759BaseTypes.md b/docs/EtsiTs103759BaseTypes.md new file mode 100644 index 0000000..7785eea --- /dev/null +++ b/docs/EtsiTs103759BaseTypes.md @@ -0,0 +1,225 @@ +# ASN.1 module EtsiTs103759BaseTypes + OID: _{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103759) general(1) base-types(3) major-version-1(1) minor-version-1 (1)}_ + +## Imports: + * **[EtsiTs103097Module](EtsiTs103097Module.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) secHeaders(103097) core(1) major-version-3(3) minor-version-1(1)} WITH SUCCESSORS*
                      + + * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-3(3)} WITH SUCCESSORS*
                      + +## Data Elements: +### TemplateAsr + +* `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. + + +```asn1 +TemplateAsr { + C-ASR-OBS-BY-TGT: ObservationSet, C-ASR-EV: NonV2xPduEvidenceSet +} ::= SEQUENCE { + observations ObservationsByTargetSequence {{ObservationSet}}, + v2xPduEvidence SEQUENCE (SIZE(1..MAX)) OF V2xPduStream, + nonV2xPduEvidence NonV2xPduEvidenceItemSequence {{NonV2xPduEvidenceSet}} +} +``` + +### ObservationsByTarget + +* `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. + + +```asn1 +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}) +} +``` + +### ObservationsByTargetSequence + +```asn1 +ObservationsByTargetSequence { C-ASR-OBS-BY-TGT: SetAsrObsByTgt } ::= + SEQUENCE (SIZE(1..MAX)) OF ObservationsByTarget { SetAsrObsByTgt } +``` + +### C-ASR-OBS-BY-TGT + +```asn1 +C-ASR-OBS-BY-TGT ::= C-2ENT +``` + +### MbSingleObservation + +* `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. + + +```asn1 +MbSingleObservation {C-ASR-SINGLE-OBS: SetMbSingleObs} ::= SEQUENCE { + obsId C-ASR-SINGLE-OBS.&id ({SetMbSingleObs}), + obs C-ASR-SINGLE-OBS.&Val ({SetMbSingleObs}{@.obsId}) +} +``` + +### C-ASR-SINGLE-OBS + +```asn1 +C-ASR-SINGLE-OBS ::= C-2ENT +``` + +### V2xPduStream + +* `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. + + +```asn1 +V2xPduStream ::= SEQUENCE { + type C-OBS-PDU.&id ({SetObsPdu}), + v2xPdus SEQUENCE (SIZE(1..255)) OF C-OBS-PDU.&Val ({SetObsPdu}{@.type}), + certificate EtsiTs103097Certificate OPTIONAL, + subjectPduIndex Uint8, + ... +} +``` + +### C-OBS-PDU + +```asn1 +C-OBS-PDU ::= C-2ENT +``` + +### SetObsPdu + +```asn1 +SetObsPdu C-OBS-PDU ::= { + {ObsPduEtsiGn BY c-ObsPdu-etsiGn} | + {ObsPduIeee1609Dot2Data BY c-ObsPdu-ieee1609Dot2Data} | + {ObsPduWsmp BY c-ObsPdu-wsmp}, + ... +} +``` + +### IdObsPdu + +* `c-ObsPdu-etsiGn` The PDU is of ETSI GeoNetworking type + +* `c-ObsPdu-ieee1609Dot2Data` The PDU contains the [**Ieee1609Dot2Data**](#Ieee1609Dot2Data) structure + +* `c-ObsPdu-wsmp` The PDU contains the WSMP data type defined in IEEE 1609.3 + + +```asn1 +IdObsPdu ::= Uint8 +c-ObsPdu-etsiGn IdObsPdu ::= 1 +c-ObsPdu-ieee1609Dot2Data IdObsPdu ::= 2 +c-ObsPdu-wsmp IdObsPdu ::= 3 +``` + +### ObsPduEtsiGn + +```asn1 +ObsPduEtsiGn ::= Opaque +``` + +### ObsPduIeee1609Dot2Data + +```asn1 +ObsPduIeee1609Dot2Data ::= Opaque +``` + +### ObsPduWsmp + +```asn1 +ObsPduWsmp ::= Opaque +``` + +### NonV2xPduEvidenceItem + +* `id` identifies the evidence type. + +* `evidence` contains the evidence. + + +```asn1 +NonV2xPduEvidenceItem {C-ASR-EV: SetMbEv} ::= SEQUENCE { + id C-ASR-EV.&id ({SetMbEv}), + evidence C-ASR-EV.&Val ({SetMbEv}{@.id}) +} +``` + +### NonV2xPduEvidenceItemSequence + +```asn1 +NonV2xPduEvidenceItemSequence {NonV2xPduEvidenceSet} ::= + SEQUENCE (SIZE(0..MAX)) OF NonV2xPduEvidenceItem {NonV2xPduEvidenceSet} +``` + +### C-ASR-EV + + +>>> +NOTE: No instances of this class are defined in this version of this document. +>>> +```asn1 +C-ASR-EV ::= C-2ENT +``` + +### C-2ENT + +```asn1 +C-2ENT ::= CLASS { + &id Uint8, + &Val +} WITH SYNTAX {&Val BY &id} +``` + + + diff --git a/docs/EtsiTs103759MbrCommonObservations.md b/docs/EtsiTs103759MbrCommonObservations.md index 2e7e2e0..4c530e9 100644 --- a/docs/EtsiTs103759MbrCommonObservations.md +++ b/docs/EtsiTs103759MbrCommonObservations.md @@ -2,7 +2,7 @@ OID: _{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)}_ ## Imports: - * **[EtsiTs103759](EtsiTs103759.md)** *{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)} WITH SUCCESSORS*
                      + * **[EtsiTs103759BaseTypes](EtsiTs103759BaseTypes.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103759) general(1) base-types(3) major-version-1(1) minor-version-1 (1)} WITH SUCCESSORS*
                      * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-3(3)} WITH SUCCESSORS*
                      -- GitLab From 67ade7e9e786207921ab6db849eb2ea13829aea1 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Mon, 24 Oct 2022 19:58:39 +0200 Subject: [PATCH 46/66] fix UTF-8 symbols --- EtsiTs103759CommonObservations.asn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EtsiTs103759CommonObservations.asn b/EtsiTs103759CommonObservations.asn index 57b556c..c401663 100644 --- a/EtsiTs103759CommonObservations.asn +++ b/EtsiTs103759CommonObservations.asn @@ -32,7 +32,7 @@ IdMbObs ::= Uint8 /** * @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 + * 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 -- GitLab From 473c5f398e4f778bbcc4bbff2cb9e2152d0c7a7a Mon Sep 17 00:00:00 2001 From: Virendra Kumar Date: Mon, 31 Oct 2022 13:00:36 -0400 Subject: [PATCH 47/66] Updated to IEEE 1609.2 2022-D13 files. --- .gitmodules | 3 +++ ieee1609.2 | 1 + 2 files changed, 4 insertions(+) create mode 160000 ieee1609.2 diff --git a/.gitmodules b/.gitmodules index 5bc527d..2e8ff55 100755 --- a/.gitmodules +++ b/.gitmodules @@ -6,3 +6,6 @@ path = sec_ts103097 url = https://forge.etsi.org/rep/ITS/asn1/sec_ts103097.git branch = release2 +[submodule "ieee1609.2"] + path = ieee1609.2 + url = git@forge.etsi.org:ITS/asn1/ieee1609.2.git diff --git a/ieee1609.2 b/ieee1609.2 new file mode 160000 index 0000000..880216d --- /dev/null +++ b/ieee1609.2 @@ -0,0 +1 @@ +Subproject commit 880216d33d08b424764a319ae1d8ee825a793a47 -- GitLab From b64ad47f50e735e5dfc18c579abf515cfb15d0de Mon Sep 17 00:00:00 2001 From: Virendra Kumar Date: Mon, 31 Oct 2022 16:27:59 -0400 Subject: [PATCH 48/66] Addressed comments related to ObsPdu(s) and reference to EN 302 637-2 --- EtsiTs103759.asn | 42 ++++++++++++++++-------------------------- EtsiTs103759AsrCam.asn | 11 +++++------ 2 files changed, 21 insertions(+), 32 deletions(-) diff --git a/EtsiTs103759.asn b/EtsiTs103759.asn index e003eb6..f890779 100755 --- a/EtsiTs103759.asn +++ b/EtsiTs103759.asn @@ -19,9 +19,15 @@ WITH SUCCESSORS ThreeDLocation, Time64, Uint8 -FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111) +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-3(3)} + base(1) base-types(2) major-version-2(2) minor-version-4(4)} +WITH SUCCESSORS + + Ieee1609Dot2Data +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-6(6)} WITH SUCCESSORS AsrAppAgnostic @@ -278,45 +284,29 @@ C-OBS-PDU ::= C-2ENT * @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}, + {ObsPduEtsiGn BY c-ObsPdu-etsiGn} | + {Ieee1609Dot2Data BY c-ObsPdu-ieee1609Dot2Data}, ... } /** * @brief This data type contains the identifier of the type of observed PDU. * - * @param c-ObsPdu-etsiGn The PDU is of ETSI GeoNetworking type - * @param c-ObsPdu-ieee1609Dot2Data The PDU contains the @ref Ieee1609Dot2Data structure - * @param c-ObsPdu-wsmp The PDU contains the WSMP data type defined in IEEE 1609.3 + * @param c-ObsPdu-etsiGn: is the identifier for ETSI GeoNetworking. + * + * @param c-ObsPdu-ieee1609Dot2Data: is the identifier for IEEE 1609.2. */ IdObsPdu ::= Uint8 c-ObsPdu-etsiGn IdObsPdu ::= 1 c-ObsPdu-ieee1609Dot2Data IdObsPdu ::= 2 -c-ObsPdu-wsmp IdObsPdu ::= 3 /** - * @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. + * @brief ObsPduEtsiGn shall contain an encoded ETSI geonetworking PDU + * according to ETSI TS 103 836-4-1, at GeoNetworking level, i.e. without + * Access Layer header. */ ObsPduEtsiGn ::= Opaque -/** - * @brief 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 - -/** - * @brief 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 - /** * @brief This data type contains evidence, which may be referenced by one or * more observations. diff --git a/EtsiTs103759AsrCam.asn b/EtsiTs103759AsrCam.asn index 6b47d77..adcd459 100755 --- a/EtsiTs103759AsrCam.asn +++ b/EtsiTs103759AsrCam.asn @@ -105,8 +105,8 @@ SetMbObsCamLongAcc C-ASR-SINGLE-OBS ::= { * * @param SetMbObsCamBeacon: * - `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 + * time of two consecutive CAMs is less than 80% of the value specified in TS + * 103 900 v2.0.0 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 @@ -141,10 +141,9 @@ SetMbObsCamLongAcc C-ASR-SINGLE-OBS ::= { * certificate does not include the value 36. * * - `Security-MessageIncWithSsp`: The message payload is inconsistent - * with the SSP in the certificate, as specified in ETSI EN 302 637-2 V1.4.1 - * (2019-04),e.g., publicTransportContainer is present in the - * specialVehicleContainer but the relevant SSP in the certificate does not - * permit publicTransportContainer. + * with the SSP in the certificate, as specified in TS 103 900 v2.0.0,e.g., + * publicTransportContainer is present in the specialVehicleContainer but the + * relevant SSP in the certificate does not permit publicTransportContainer. * * - `Security-HeaderTimeOutsideCertificateValidity`: The generationTime * in the security headerInfo is outside the validityPeriod in the certificate. -- GitLab From 0b210f25a1519d239a6de129db143602534265eb Mon Sep 17 00:00:00 2001 From: Virendra Kumar Date: Tue, 1 Nov 2022 14:22:46 -0400 Subject: [PATCH 49/66] Updated the description of EtsiTs103759Data to include the module SaeJ3287AsrBsm. --- EtsiTs103759.asn | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/EtsiTs103759.asn b/EtsiTs103759.asn index f890779..1577b3e 100755 --- a/EtsiTs103759.asn +++ b/EtsiTs103759.asn @@ -59,11 +59,11 @@ WITH SUCCESSORS /** * @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. AID-specific modules - * (EtsiTs103759AsrAppAgnostic, EtsiTs103759AsrCam, EtsiTs103759AsrDenm) have - * been imported using WITH SUCCESSORS to enable importing one or more of those - * modules with minor-version greater than 0 without requiring any change in the - * import statements. At least one of these AID-specific modules shall have - * minor-version greater than 0. + * (EtsiTs103759AsrAppAgnostic, EtsiTs103759AsrCam, EtsiTs103759AsrDenm, + * SaeJ3287AsrBsm) have been imported using WITH SUCCESSORS to enable importing + * one or more of those modules with minor-version greater than 0 without + * requiring any change in the import statements. At least one of these + * AID-specific modules shall have minor-version greater than 0. * * @param version: contains the version number of this PDU definition. For this * version of this data type it shall be equal to 2. -- GitLab From d6491a99392fc38cf0acf3fb56fb07e219a232f5 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 2 Nov 2022 12:10:15 +0000 Subject: [PATCH 50/66] Update README.md --- README.md | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 38b9b40..2b68c2c 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,18 @@ -# MBMR TS 103 759 +# ASN.1 modules for ETSI ITS Misbehaviour Reporting Service (ETSI TS 103 759) -ASN.1 modules for TS 103 759: Misbehaviour Reporting service \ No newline at end of file +The modules are published as a part of delivery **[ETSI TS 103 759 v2.1.1](https://www.etsi.org/deliver/etsi_ts/103700_103799/103759/02.01.01_60/ts_103759v020101p.pdf)** + +## License + +The content of this repository and the files contained are released under the BSD-3-Clause license. + +See the attached LICENSE file or visit https://forge.etsi.org/legal-matters. + +## Dependencies + +The module dependens of the following external modules and repositories: + +* The **[EtsiTs103097Module](https://forge.etsi.org/rep/ITS/asn1/sec_ts103097)** module from the **[ETSI TS 103 097 v.2.1.1](http://www.etsi.org/deliver/etsi_ts/103000_103099/103097/02.01.01_60/ts_103097v020101p.pdf)** - ITS Security Headers +* The **[IEEE1609Dot2](https://forge.etsi.org/rep/ITS/asn1/ieee1609.2)** module from the **IEEE Std 1609.2** - WAVE - Security Services for Applications and Management Messages + +*NOTE: Please use `--recurse-submodules` option in order to clone the module with all necessary dependencies.* -- GitLab From baa0f59b5f40002e03443fb7072edfbfacfa0828 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 2 Nov 2022 12:13:29 +0000 Subject: [PATCH 51/66] Update .gitlab-ci.yml --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d9a2360..0c23eb5 100755 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,8 +3,8 @@ include: file: '/gitlab-ci/base.yml' variables: - ASN1_SRC: '*.asn sec_ts103097/*.asn sec_ts103097/ieee1609dot2/*.asn' - GIT_SUBMODULE_STRATEGY: recursive + ASN1_SRC: '*.asn sec_ts103097/*.asn ieee1609.2/*.asn' + GIT_SUBMODULE_STRATEGY: normal validate: extends: .validate -- GitLab From c131aa32ad091baa02bcb43d955a27a3e828f0b3 Mon Sep 17 00:00:00 2001 From: "ASN.1 Checker" Date: Wed, 2 Nov 2022 12:14:21 +0000 Subject: [PATCH 52/66] Documentation update --- docs/EtsiTs103759.md | 220 +--- docs/EtsiTs103759AsrCam.md | 6 +- docs/EtsiTs103759BaseTypes.md | 225 ++++ docs/EtsiTs103759MbrCommonObservations.md | 2 +- docs/Ieee1609Dot2.md | 1172 +++++++++++++++------ docs/Ieee1609Dot2BaseTypes.md | 679 ++++++++---- docs/Ieee1609Dot2Crl.md | 51 + docs/Ieee1609Dot2CrlBaseTypes.md | 447 ++++++++ 8 files changed, 2043 insertions(+), 759 deletions(-) create mode 100644 docs/EtsiTs103759BaseTypes.md create mode 100644 docs/Ieee1609Dot2Crl.md create mode 100644 docs/Ieee1609Dot2CrlBaseTypes.md diff --git a/docs/EtsiTs103759.md b/docs/EtsiTs103759.md index 6b19f31..7b4d370 100644 --- a/docs/EtsiTs103759.md +++ b/docs/EtsiTs103759.md @@ -4,7 +4,9 @@ ## Imports: * **[EtsiTs103097Module](EtsiTs103097Module.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) secHeaders(103097) core(1) major-version-3(3) minor-version-1(1)} WITH SUCCESSORS*
                      - * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-3(3)} WITH SUCCESSORS*
                      + * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-4(4)} WITH SUCCESSORS*
                      + + * **[Ieee1609Dot2](Ieee1609Dot2.md)** *{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-6(6)} WITH SUCCESSORS*
                      * **[EtsiTs103759AsrAppAgnostic](EtsiTs103759AsrAppAgnostic.md)** *{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-0(0)} WITH SUCCESSORS*
                      @@ -119,221 +121,5 @@ c-AsrDenm Psid ::= 37 c-AsrBsm Psid ::= 32 ``` -### TemplateAsr - -* `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. - - -```asn1 -TemplateAsr { - C-ASR-OBS-BY-TGT: ObservationSet, C-ASR-EV: NonV2xPduEvidenceSet -} ::= SEQUENCE { - observations ObservationsByTargetSequence {{ObservationSet}}, - v2xPduEvidence SEQUENCE (SIZE(1..MAX)) OF V2xPduStream, - nonV2xPduEvidence NonV2xPduEvidenceItemSequence {{NonV2xPduEvidenceSet}} -} -``` - -### ObservationsByTarget - -* `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. - - -```asn1 -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}) -} -``` - -### ObservationsByTargetSequence - -```asn1 -ObservationsByTargetSequence { C-ASR-OBS-BY-TGT: SetAsrObsByTgt } ::= - SEQUENCE (SIZE(1..MAX)) OF ObservationsByTarget { SetAsrObsByTgt } -``` - -### C-ASR-OBS-BY-TGT - -```asn1 -C-ASR-OBS-BY-TGT ::= C-2ENT -``` - -### MbSingleObservation - -* `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. - - -```asn1 -MbSingleObservation {C-ASR-SINGLE-OBS: SetMbSingleObs} ::= SEQUENCE { - obsId C-ASR-SINGLE-OBS.&id ({SetMbSingleObs}), - obs C-ASR-SINGLE-OBS.&Val ({SetMbSingleObs}{@.obsId}) -} -``` - -### C-ASR-SINGLE-OBS - -```asn1 -C-ASR-SINGLE-OBS ::= C-2ENT -``` - -### V2xPduStream - -* `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. - - -```asn1 -V2xPduStream ::= SEQUENCE { - type C-OBS-PDU.&id ({SetObsPdu}), - v2xPdus SEQUENCE (SIZE(1..255)) OF C-OBS-PDU.&Val - ({SetObsPdu}{@.type}), - certificate EtsiTs103097Certificate OPTIONAL, - subjectPduIndex Uint8, - ... -} -``` - -### C-OBS-PDU - -```asn1 -C-OBS-PDU ::= C-2ENT -``` - -### SetObsPdu - -```asn1 -SetObsPdu C-OBS-PDU ::= { - {ObsPduEtsiGn BY c-ObsPdu-etsiGn} | - {ObsPduIeee1609Dot2Data BY c-ObsPdu-ieee1609Dot2Data} | - {ObsPduWsmp BY c-ObsPdu-wsmp}, - ... -} -``` - -### IdObsPdu - -* `c-ObsPdu-etsiGn` The PDU is of ETSI GeoNetworking type - -* `c-ObsPdu-ieee1609Dot2Data` The PDU contains the [**Ieee1609Dot2Data**](#Ieee1609Dot2Data) structure - -* `c-ObsPdu-wsmp` The PDU contains the WSMP data type defined in IEEE 1609.3 - - -```asn1 -IdObsPdu ::= Uint8 -c-ObsPdu-etsiGn IdObsPdu ::= 1 -c-ObsPdu-ieee1609Dot2Data IdObsPdu ::= 2 -c-ObsPdu-wsmp IdObsPdu ::= 3 -``` - -### ObsPduEtsiGn - -```asn1 -ObsPduEtsiGn ::= Opaque -``` - -### ObsPduIeee1609Dot2Data - -```asn1 -ObsPduIeee1609Dot2Data ::= Opaque -``` - -### ObsPduWsmp - -```asn1 -ObsPduWsmp ::= Opaque -``` - -### NonV2xPduEvidenceItem - -* `id` identifies the evidence type. - -* `evidence` contains the evidence. - - -```asn1 -NonV2xPduEvidenceItem {C-ASR-EV: SetMbEv} ::= SEQUENCE { - id C-ASR-EV.&id ({SetMbEv}), - evidence C-ASR-EV.&Val ({SetMbEv}{@.id}) -} -``` - -### NonV2xPduEvidenceItemSequence - -```asn1 -NonV2xPduEvidenceItemSequence {NonV2xPduEvidenceSet} ::= - SEQUENCE (SIZE(0..MAX)) OF NonV2xPduEvidenceItem {NonV2xPduEvidenceSet} -``` - -### C-ASR-EV - - ->>> -NOTE: No instances of this class are defined in this version of this document. ->>> -```asn1 -C-ASR-EV ::= C-2ENT -``` - -### C-2ENT - -```asn1 -C-2ENT ::= CLASS { - &id Uint8, - &Val -} WITH SYNTAX {&Val BY &id} -``` - diff --git a/docs/EtsiTs103759AsrCam.md b/docs/EtsiTs103759AsrCam.md index 59bb5b1..7d1e8c2 100644 --- a/docs/EtsiTs103759AsrCam.md +++ b/docs/EtsiTs103759AsrCam.md @@ -2,7 +2,7 @@ OID: _{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)}_ ## Imports: - * **[EtsiTs103759](EtsiTs103759.md)** *{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)} WITH SUCCESSORS*
                      + * **[EtsiTs103759BaseTypes](EtsiTs103759BaseTypes.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103759) general(1) base-types(3) major-version-1(1) minor-version-1 (1)} WITH SUCCESSORS*
                      * **[EtsiTs103759MbrCommonObservations](EtsiTs103759MbrCommonObservations.md)** *{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)} WITH SUCCESSORS*
                      @@ -97,8 +97,8 @@ SetMbObsCamLongAcc C-ASR-SINGLE-OBS ::= { ### SetMbObsTgtsCam * `SetMbObsCamBeacon` - `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 + time of two consecutive CAMs is less than 80% of the value specified in TS + 103 900 v2.0.0 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 diff --git a/docs/EtsiTs103759BaseTypes.md b/docs/EtsiTs103759BaseTypes.md new file mode 100644 index 0000000..153d9fc --- /dev/null +++ b/docs/EtsiTs103759BaseTypes.md @@ -0,0 +1,225 @@ +# ASN.1 module EtsiTs103759BaseTypes + OID: _{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103759) general(1) base-types(3) major-version-1(1) minor-version-1 (1)}_ + +## Imports: + * **[EtsiTs103097Module](EtsiTs103097Module.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) secHeaders(103097) core(1) major-version-3(3) minor-version-1(1)} WITH SUCCESSORS*
                      + + * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-3(3)} WITH SUCCESSORS*
                      + +## Data Elements: +### TemplateAsr + +* `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. + + +```asn1 +TemplateAsr { + C-ASR-OBS-BY-TGT: ObservationSet, C-ASR-EV: NonV2xPduEvidenceSet +} ::= SEQUENCE { + observations ObservationsByTargetSequence {{ObservationSet}}, + v2xPduEvidence SEQUENCE (SIZE(1..MAX)) OF V2xPduStream, + nonV2xPduEvidence NonV2xPduEvidenceItemSequence {{NonV2xPduEvidenceSet}} +} +``` + +### ObservationsByTarget + +* `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. + + +```asn1 +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}) +} +``` + +### ObservationsByTargetSequence + +```asn1 +ObservationsByTargetSequence { C-ASR-OBS-BY-TGT: SetAsrObsByTgt } ::= + SEQUENCE (SIZE(1..MAX)) OF ObservationsByTarget { SetAsrObsByTgt } +``` + +### C-ASR-OBS-BY-TGT + +```asn1 +C-ASR-OBS-BY-TGT ::= C-2ENT +``` + +### MbSingleObservation + +* `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. + + +```asn1 +MbSingleObservation {C-ASR-SINGLE-OBS: SetMbSingleObs} ::= SEQUENCE { + obsId C-ASR-SINGLE-OBS.&id ({SetMbSingleObs}), + obs C-ASR-SINGLE-OBS.&Val ({SetMbSingleObs}{@.obsId}) +} +``` + +### C-ASR-SINGLE-OBS + +```asn1 +C-ASR-SINGLE-OBS ::= C-2ENT +``` + +### V2xPduStream + +* `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. + + +```asn1 +V2xPduStream ::= SEQUENCE { + type C-OBS-PDU.&id ({SetObsPdu}), + v2xPdus SEQUENCE (SIZE(1..255)) OF C-OBS-PDU.&Val ({SetObsPdu}{@.type}), + certificate EtsiTs103097Certificate OPTIONAL, + subjectPduIndex Uint8, + ... +} +``` + +### C-OBS-PDU + +```asn1 +C-OBS-PDU ::= C-2ENT +``` + +### SetObsPdu + +```asn1 +SetObsPdu C-OBS-PDU ::= { + {ObsPduEtsiGn BY c-ObsPdu-etsiGn} | + {ObsPduIeee1609Dot2Data BY c-ObsPdu-ieee1609Dot2Data} | + {ObsPduWsmp BY c-ObsPdu-wsmp}, + ... +} +``` + +### IdObsPdu + +* `c-ObsPdu-etsiGn` The PDU is of ETSI GeoNetworking type + +* `c-ObsPdu-ieee1609Dot2Data` The PDU contains the [**Ieee1609Dot2Data**](Ieee1609Dot2.md#Ieee1609Dot2Data) structure + +* `c-ObsPdu-wsmp` The PDU contains the WSMP data type defined in IEEE 1609.3 + + +```asn1 +IdObsPdu ::= Uint8 +c-ObsPdu-etsiGn IdObsPdu ::= 1 +c-ObsPdu-ieee1609Dot2Data IdObsPdu ::= 2 +c-ObsPdu-wsmp IdObsPdu ::= 3 +``` + +### ObsPduEtsiGn + +```asn1 +ObsPduEtsiGn ::= Opaque +``` + +### ObsPduIeee1609Dot2Data + +```asn1 +ObsPduIeee1609Dot2Data ::= Opaque +``` + +### ObsPduWsmp + +```asn1 +ObsPduWsmp ::= Opaque +``` + +### NonV2xPduEvidenceItem + +* `id` identifies the evidence type. + +* `evidence` contains the evidence. + + +```asn1 +NonV2xPduEvidenceItem {C-ASR-EV: SetMbEv} ::= SEQUENCE { + id C-ASR-EV.&id ({SetMbEv}), + evidence C-ASR-EV.&Val ({SetMbEv}{@.id}) +} +``` + +### NonV2xPduEvidenceItemSequence + +```asn1 +NonV2xPduEvidenceItemSequence {NonV2xPduEvidenceSet} ::= + SEQUENCE (SIZE(0..MAX)) OF NonV2xPduEvidenceItem {NonV2xPduEvidenceSet} +``` + +### C-ASR-EV + + +>>> +NOTE: No instances of this class are defined in this version of this document. +>>> +```asn1 +C-ASR-EV ::= C-2ENT +``` + +### C-2ENT + +```asn1 +C-2ENT ::= CLASS { + &id Uint8, + &Val +} WITH SYNTAX {&Val BY &id} +``` + + + diff --git a/docs/EtsiTs103759MbrCommonObservations.md b/docs/EtsiTs103759MbrCommonObservations.md index 2e7e2e0..4c530e9 100644 --- a/docs/EtsiTs103759MbrCommonObservations.md +++ b/docs/EtsiTs103759MbrCommonObservations.md @@ -2,7 +2,7 @@ OID: _{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)}_ ## Imports: - * **[EtsiTs103759](EtsiTs103759.md)** *{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)} WITH SUCCESSORS*
                      + * **[EtsiTs103759BaseTypes](EtsiTs103759BaseTypes.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103759) general(1) base-types(3) major-version-1(1) minor-version-1 (1)} WITH SUCCESSORS*
                      * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-3(3)} WITH SUCCESSORS*
                      diff --git a/docs/Ieee1609Dot2.md b/docs/Ieee1609Dot2.md index a965a7c..f30a5c3 100644 --- a/docs/Ieee1609Dot2.md +++ b/docs/Ieee1609Dot2.md @@ -1,29 +1,34 @@ # ASN.1 module Ieee1609Dot2 - OID: _{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-4(4)}_ - @brief NOTE: Section references in this file are to clauses in IEEE Std + OID: _{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-6(6)}_ + @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. + abbreviations used in this file are specified in 3.2. ## Imports: - * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-3(3)} WITH SUCCESSORS*
                      + * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-4(4)} WITH SUCCESSORS*
                      - * **[EtsiTs103097ExtensionModule](EtsiTs103097ExtensionModule.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) secHeaders(103097) extension(2) version-1(1) minor-version-1(1)} WITH SUCCESSORS*
                      + * **[EtsiTs103097ExtensionModule](EtsiTs103097ExtensionModule.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) secHeaders(103097) extension(2) major-version-1(1) minor-version-0(0)} WITH SUCCESSORS*
                      ## Data Elements: ### Ieee1609Dot2Data * `protocolVersion` contains the current version of the protocol. The - version specified in this document is version 3, represented by the + version specified in this standard 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. - + +>>> +NOTE: Canonicalization: This data structure is subject to canonicalization + for the relevant operations specified in 6.1.2. The canonicalization + applies to the Ieee1609Dot2Content. +>>> ```asn1 Ieee1609Dot2Data ::= SEQUENCE { - protocolVersion Uint8(3), - content Ieee1609Dot2Content - } + protocolVersion Uint8(3), + content Ieee1609Dot2Content +} ``` ### Ieee1609Dot2Content @@ -37,20 +42,27 @@ Ieee1609Dot2Data ::= SEQUENCE { * `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. - +* `signedCertificateRequest` indicates that the content is a + certificate request signed by an IEEE 1609.2 certificate or self-signed. + +* `signedX509CertificateRequest` indicates that the content is a + certificate request signed by an ITU-T X.509 certificate. + +>>> +NOTE: Canonicalization: This data structure is subject to canonicalization + for the relevant operations specified in 6.1.2 if it is of type signedData. + The canonicalization applies to the SignedData. +>>> ```asn1 Ieee1609Dot2Content ::= CHOICE { - unsecuredData Opaque, - signedData SignedData, - encryptedData EncryptedData, - signedCertificateRequest Opaque, - ..., - signedX509CertificateRequest Opaque - } + unsecuredData Opaque, + signedData SignedData, + encryptedData EncryptedData, + signedCertificateRequest Opaque, + ..., + signedX509CertificateRequest Opaque +} ``` ### SignedData @@ -65,20 +77,34 @@ Ieee1609Dot2Content ::= CHOICE { * `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.
                        • - + - 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. + + +>>> +NOTE: Canonicalization: This data structure is subject to canonicalization + for the relevant operations specified in 6.1.2. The canonicalization + applies to the ToBeSignedData and the Signature. +>>> ```asn1 SignedData ::= SEQUENCE { - hashId HashAlgorithm, - tbsData ToBeSignedData, - signer SignerIdentifier, - signature Signature - } + hashId HashAlgorithm, + tbsData ToBeSignedData, + signer SignerIdentifier, + signature Signature +} ``` ### ToBeSignedData @@ -86,14 +112,35 @@ SignedData ::= SEQUENCE { * `payload` contains data that is provided by the entity that invokes the SDS. -* `headerInfo` contains additional data that is inserted by the SDS. - - +* `headerInfo` contains additional data that is inserted by the SDS. + This structure is used as follows to determine the "data input" to the + hash operation for signing or verification as specified in 5.3.1.2.2 or + 5.3.1.3. + - If payload does not contain the field omitted, the data input to the + hash operation is the COER encoding of the ToBeSignedData. + - If payload field in this ToBeSignedData instance contains the field + omitted, the data input to the hash operation is the COER encoding of the + ToBeSignedData, concatenated with the hash of the omitted payload. The hash + of the omitted payload is calculated with the same hash algorithm that is + used to calculate the hash of the data input for signing or verification. + The data input to the hash operation is simply the COER enocding of the + ToBeSignedData, concatenated with the hash of the omitted payload: there is + no additional wrapping or length indication. As noted in 5.2.4.3.4, the + means by which the signer and verifier establish the contents of the + omitted payload are out of scope for this standard. + + +>>> +NOTE: Canonicalization: This data structure is subject to canonicalization + for the relevant operations specified in 6.1.2. The canonicalization + applies to the SignedDataPayload if it is of type data, and to the + HeaderInfo. +>>> ```asn1 ToBeSignedData ::= SEQUENCE { - payload SignedDataPayload, - headerInfo HeaderInfo - } + payload SignedDataPayload, + headerInfo HeaderInfo +} ``` ### SignedDataPayload @@ -101,111 +148,151 @@ ToBeSignedData ::= SEQUENCE { * `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. - +* `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. +* `omitted` indicates that there is external data to be included in the + hash calculation for the signature.The mechanism for including the external + data in the hash calculation is specified in 6.3.6. + + +>>> +NOTE: Canonicalization: This data structure is subject to canonicalization + for the relevant operations specified in 6.1.2. The canonicalization + applies to the Ieee1609Dot2Data. +>>> ```asn1 SignedDataPayload ::= SEQUENCE { - data Ieee1609Dot2Data OPTIONAL, - extDataHash HashedData OPTIONAL, - ... - } (WITH COMPONENTS {..., data PRESENT} | - WITH COMPONENTS {..., extDataHash PRESENT}) + data Ieee1609Dot2Data OPTIONAL, + extDataHash HashedData OPTIONAL, + ..., + omitted NULL OPTIONAL +} (WITH COMPONENTS {..., data PRESENT} | + WITH COMPONENTS {..., extDataHash PRESENT} | + WITH COMPONENTS {..., omitted PRESENT}) ``` ### HashedData +* `sha256HashedData` indicates data hashed with SHA-256. + +* `sha384HashedData` indicates data hashed with SHA-384. + +* `sm3HashedData` indicates data hashed with SM3. + + +>>> +NOTE: 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 in the sense of 4.2.2.3.2, + that is, it is invalid in the sense that its validity cannot be established. +>>> ```asn1 HashedData::= CHOICE { - sha256HashedData OCTET STRING (SIZE(32)), - ..., - sha384HashedData OCTET STRING (SIZE(48)), - reserved OCTET STRING (SIZE(32)) - } + sha256HashedData HashedId32, + ..., + sha384HashedData HashedId48, + sm3HashedData HashedId32 +} ``` ### HeaderInfo * `psid` indicates the application area with which the sender is - claiming the payload should be associated. + claiming the payload is to 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. + field. * `expiryTime` if present, contains the time after which the data - should no longer be considered relevant. If both generationTime and + is no longer 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. + signature was generated. + +* `p2pcdLearningRequest` if present, is used by the SDS to request + certificates for which it has seen identifiers and 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 separate-certificate-pdu 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, + applied to the COER-encoded certificate, canonicalized as defined in the + definition of Certificate. * `missingCrlIdentifier` if present, is used by the SDS to request - CRLs which it knows to have been issued but have not received. This is + CRLs which it knows to have been issued and 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. +* `encryptionKey` if present, is used to provide a key that is to + be used to encrypt at least one response to this SPDU. The SDEE + specification is expected to specify which response SPDUs are to be + encrypted with this 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 SignedData 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. + whole-certificate hash algorithm, determined as described in 6.4.3, applied + to the COER-encoded certificate, canonicalized as defined in the definition + of Certificate. * `requestedCertificate` if present, is used by the SDS to provide - certificates per the “inlineâ€? version of the peer-to-peer certificate + 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. - - +* `contributedExtensions` if present, is used to contain additional + extensions defined using the ContributedExtensionBlocks structure. + + +>>> +NOTE: Canonicalization: This data structure is subject to canonicalization + for the relevant operations specified in 6.1.2. The canonicalization + applies to the EncryptionKey. If encryptionKey is present, and indicates + the choice public, and contains a BasePublicEncryptionKey that is an + elliptic curve point (i.e., of type EccP256CurvePoint 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. + The canonicalization does not apply to any fields after the extension + marker, including any fields in contributedExtensions. +>>> ```asn1 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 - } + 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 +} ``` ### MissingCrlIdentifier -* `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. +* `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, applied to the COER-encoded certificate, + canonicalized as defined in the definition of Certificate. * `crlSeries` is the requested CRL Series value. See 5.1.3 for more information. @@ -213,53 +300,71 @@ HeaderInfo ::= SEQUENCE { ```asn1 MissingCrlIdentifier ::= SEQUENCE { - cracaId HashedId3, - crlSeries CrlSeries, - ... - } + cracaId HashedId3, + crlSeries CrlSeries, + ... +} ``` ### PduFunctionalType -* `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 +* `tlsHandshake` indicates that the Signed SPDU is not to be directly + consumed as an application PDU and is to be used to provide information + about the holderÂ’s permissions to a Transport Layer Security (TLS) + (IETF 5246 [B15], IETF 8446 [B16]) handshake process operating to secure + communications to an application process. See IETF [B15] and ISO 21177 + [B20] for further information. + +* `iso21177ExtendedAuth` indicates that the Signed SPDU is not to be + directly consumed as an application PDU and 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 [B20] for further information. + +* `iso21177SessionExtension` indicates that the Signed SPDU is not to + be directly consumed as an application PDU and is to be used to extend an + existing ISO 21177 secure session. This enables a secure session to + persist beyond the lifetime of the certificates used to establish that + session. ```asn1 PduFunctionalType ::= INTEGER (0..255) - tlsHandshake PduFunctionalType ::= 1 - iso21177ExtendedAuth PduFunctionalType ::= 2 +``` + +### tlsHandshake + +```asn1 +tlsHandshake PduFunctionalType ::= 1 +iso21177ExtendedAuth PduFunctionalType ::= 2 +iso21177SessionExtension PduFunctionalType ::= 3 ``` ### ContributedExtensionBlocks ```asn1 -ContributedExtensionBlocks ::= SEQUENCE (SIZE(1..MAX)) OF ContributedExtensionBlock +ContributedExtensionBlocks ::= SEQUENCE (SIZE(1..MAX)) OF + ContributedExtensionBlock ``` ### ContributedExtensionBlock -* `contributorId` uniquely identifies the contributor +* `contributorId` uniquely identifies the contributor. -* `extns` contains a list of extensions from that contributor. +* `extns` contains a list of extensions from that contributor. + Extensions are expected and not required to follow the format specified + in 6.5. ```asn1 ContributedExtensionBlock ::= SEQUENCE { - contributorId IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION. - &id({Ieee1609Dot2HeaderInfoContributedExtensions}), - extns SEQUENCE (SIZE(1..MAX)) OF IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION. - &Extn({Ieee1609Dot2HeaderInfoContributedExtensions}{@.contributorId}) + contributorId IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION.&id({ + Ieee1609Dot2HeaderInfoContributedExtensions + }), + extns SEQUENCE (SIZE(1..MAX)) OF + IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION.&Extn({ + Ieee1609Dot2HeaderInfoContributedExtensions + }{@.contributorId}) } ``` @@ -267,98 +372,175 @@ ContributedExtensionBlock ::= SEQUENCE { ```asn1 IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION ::= CLASS { - &id HeaderInfoContributorId UNIQUE, - &Extn - } WITH SYNTAX {&Extn IDENTIFIED BY &id} + &id HeaderInfoContributorId UNIQUE, + &Extn +} WITH SYNTAX {&Extn IDENTIFIED BY &id} ``` ### Ieee1609Dot2HeaderInfoContributedExtensions -* `In` this version of the standard, only the type - EtsiOriginatingHeaderInfoExtension contributed by ETSI is supported. - The information object EtsiOriginatingHeaderInfoExtension is imported - from the EtsiTs103097ExtensionModule - - ```asn1 -Ieee1609Dot2HeaderInfoContributedExtensions - IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION ::= { - {EtsiOriginatingHeaderInfoExtension IDENTIFIED BY etsiHeaderInfoContributorId}, - ... - } +Ieee1609Dot2HeaderInfoContributedExtensions + IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION ::= { + {Ieee1609ContributedHeaderInfoExtension IDENTIFIED BY + ieee1609HeaderInfoContributorId} | + {EtsiOriginatingHeaderInfoExtension IDENTIFIED BY + etsiHeaderInfoContributorId}, + ... +} ``` ### HeaderInfoContributorId -* `In` this version of the standard, value 2 is assigned to ETSI. - - ```asn1 HeaderInfoContributorId ::= INTEGER (0..255) - etsiHeaderInfoContributorId HeaderInfoContributorId ::= 2 +``` + +### ieee1609HeaderInfoContributorId + +```asn1 +ieee1609HeaderInfoContributorId HeaderInfoContributorId ::= 1 +etsiHeaderInfoContributorId HeaderInfoContributorId ::= 2 ``` ### SignerIdentifier +* `digest` 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. + +* `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. + +* `self` 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. + + +>>> +NOTE: Canonicalization: This data structure is subject to canonicalization + for the relevant operations specified in 6.1.2. The canonicalization + applies to every Certificate in the certificate field. +>>> ```asn1 SignerIdentifier ::= CHOICE { - digest HashedId8, - certificate SequenceOfCertificate, - self NULL, - ... - } + digest HashedId8, + certificate SequenceOfCertificate, + self NULL, + ... +} +``` + +### Countersignature + +```asn1 +Countersignature ::= Ieee1609Dot2Data (WITH COMPONENTS {..., + content (WITH COMPONENTS {..., + signedData (WITH COMPONENTS {..., + tbsData (WITH COMPONENTS {..., + payload (WITH COMPONENTS {..., + data ABSENT, + extDataHash PRESENT + }), + headerInfo(WITH COMPONENTS {..., + generationTime PRESENT, + expiryTime ABSENT, + generationLocation ABSENT, + p2pcdLearningRequest ABSENT, + missingCrlIdentifier ABSENT, + encryptionKey ABSENT + }) + }) + }) + }) +}) ``` ### EncryptedData * `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 + as long as all entries are 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. - + +>>> +NOTE: If the plaintext is raw data, i.e., it has not been output from a + previous operation of the SDS, then it is trivial to encapsulate it in an + Ieee1609Dot2Data of type unsecuredData as noted in 4.2.2.2.2. For example, + '03 80 08 01 23 45 67 89 AB CD EF' is the C-OER encoding of '01 23 45 67 + 89 AB CD EF' encapsulated in an Ieee1609Dot2Data of type unsecuredData. + The first byte of the encoding 03 is the protocolVersion, the second byte + 80 indicates the choice unsecuredData, and the third byte 08 is the length + of the raw data '01 23 45 67 89 AB CD EF'. +>>> ```asn1 -EncryptedData ::= SEQUENCE { - recipients SequenceOfRecipientInfo, - ciphertext SymmetricCiphertext - } +EncryptedData ::= SEQUENCE { + recipients SequenceOfRecipientInfo, + ciphertext SymmetricCiphertext +} ``` ### RecipientInfo -* `pskRecipInfo` The ciphertext was encrypted directly using a +* `pskRecipInfo` The data was encrypted directly using a pre-shared 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. - - +* `symmRecipInfo` The data was encrypted with a data encryption key, + and the data encryption key was encrypted using a symmetric key. + +* `certRecipInfo` The data was encrypted with a data encryption key, + 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.5 is the hash of the + certificate, calculated with the whole-certificate hash algorithm, + determined as described in 6.4.3, applied to the COER-encoded certificate, + canonicalized as defined in the definition of Certificate. + +* `signedDataRecipInfo` The data was encrypted with a data encryption + key, the data encryption key was encrypted using a public key encryption + scheme, where the public encryption key was obtained as the public response + encryption key from a SignedData. In this case, if ECIES is the encryption + algorithm, then the parameter P1 to ECIES as defined in 5.3.5 is the + SHA-256 hash of the Ieee1609Dot2Data of type signedData containing the + response encryption key, canonicalized as defined in the definition of + Ieee1609Dot2Data. + +* `rekRecipInfo` The data was encrypted with a data encryption key, + the data encryption key was encrypted using a public key encryption scheme, + where the public encryption key was not obtained from a Signed-Data or a + certificate. In this case, the SDEE specification is expected to specify + how the public key is obtained, and if ECIES is the encryption algorithm, + then the parameter P1 to ECIES as defined in 5.3.5 is the hash of the + empty string. + + +>>> +NOTE: The material input to encryption is the bytes of the encryption key + with no headers, encapsulation, or length indication. Contrast this to + encryption of data, where the data is encapsulated in an Ieee1609Dot2Data. +>>> ```asn1 -RecipientInfo ::= CHOICE { - pskRecipInfo PreSharedKeyRecipientInfo, - symmRecipInfo SymmRecipientInfo, - certRecipInfo PKRecipientInfo, - signedDataRecipInfo PKRecipientInfo, - rekRecipInfo PKRecipientInfo - } +RecipientInfo ::= CHOICE { + pskRecipInfo PreSharedKeyRecipientInfo, + symmRecipInfo SymmRecipientInfo, + certRecipInfo PKRecipientInfo, + signedDataRecipInfo PKRecipientInfo, + rekRecipInfo PKRecipientInfo +} ``` ### SequenceOfRecipientInfo @@ -375,22 +557,25 @@ PreSharedKeyRecipientInfo ::= HashedId8 ### SymmRecipientInfo -* `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. +* `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 hash of the COER encoding of a + SymmetricEncryptionKey structure containing the symmetric key in question. + The HashedId8 is calculated with the hash algorithm determined as + specified in 5.3.9.4. 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 a + SymmetricCiphertext, where the data encryption key is input to the data + encryption key encryption process with no headers, encapsulation, or + length indication. ```asn1 SymmRecipientInfo ::= SEQUENCE { - recipientId HashedId8, - encKey SymmetricCiphertext - } + recipientId HashedId8, + encKey SymmetricCiphertext +} ``` ### PKRecipientInfo @@ -398,84 +583,108 @@ SymmRecipientInfo ::= SEQUENCE { * `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, + - 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.
                          • - -* `encKey` contains the encrypted key. + described in 6.4.3, applied to the COER-encoded certificate, canonicalized + as defined in the definition of Certificate. + - If the containing RecipientInfo structure indicates + signedDataRecipInfo, this field contains the HashedId8 of the + Ieee1609Dot2Data of type signedData that contained the encryption key, + with that Ieee¬¬1609¬Dot2¬¬Data canonicalized per 6.3.4. The HashedId8 is + calculated with the hash algorithm determined as specified in 5.3.9.5. + - 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 the hash algorithm determined as specified in 5.3.9.5. + +* `encKey` contains the encrypted data encryption key, where the data + encryption key is input to the data encryption key encryption process with + no headers, encapsulation, or length indication. ```asn1 PKRecipientInfo ::= SEQUENCE { - recipientId HashedId8, - encKey EncryptedDataEncryptionKey - } + recipientId HashedId8, + encKey EncryptedDataEncryptionKey +} ``` ### EncryptedDataEncryptionKey ```asn1 EncryptedDataEncryptionKey ::= CHOICE { - eciesNistP256 EciesP256EncryptedKey, - eciesBrainpoolP256r1 EciesP256EncryptedKey, - ... - } + eciesNistP256 EciesP256EncryptedKey, + eciesBrainpoolP256r1 EciesP256EncryptedKey, + ..., + ecencSm2256 EcencP256EncryptedKey +} ``` ### SymmetricCiphertext + +>>> +NOTE: 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 indicate that the signed SPDU is invalid in the sense of 4.2.2.3.2, + that is, it is invalid in the sense that its validity cannot be established. +>>> ```asn1 -SymmetricCiphertext ::= CHOICE { - aes128ccm AesCcmCiphertext, - ... - } +SymmetricCiphertext ::= CHOICE { + aes128ccm One28BitCcmCiphertext, + ..., + sm4Ccm One28BitCcmCiphertext +} ``` -### AesCcmCiphertext +### One28BitCcmCiphertext -* `nonce` contains the nonce N as specified in 5.3.7. +* `nonce` contains the nonce N as specified in 5.3.8. + +* `ccmCiphertext` contains the ciphertext C as specified in 5.3.8. -* `ccmCiphertext` contains the ciphertext C as specified in 5.3.7. - +>>> +NOTE: In the name of this structure, "One28" indicates that the + symmetric cipher block size is 128 bits. It happens to also be the case + that the keys used for both AES-128-CCM and SM4-CCM are also 128 bits long. + This is, however, not what “One28” refers to. Since the cipher is used in + counter mode, i.e., as a stream cipher, the fact that that block size is 128 + bits affects only the size of the MAC and does not affect the size of the + raw ciphertext. +>>> ```asn1 -AesCcmCiphertext ::= SEQUENCE { - nonce OCTET STRING (SIZE (12)), - ccmCiphertext Opaque - } +One28BitCcmCiphertext ::= SEQUENCE { + nonce OCTET STRING (SIZE (12)), + ccmCiphertext Opaque +} ``` -### Countersignature +### Aes128CcmCiphertext ```asn1 -Countersignature ::= Ieee1609Dot2Data (WITH COMPONENTS {..., - content (WITH COMPONENTS {..., - signedData (WITH COMPONENTS {..., - tbsData (WITH COMPONENTS {..., - payload (WITH COMPONENTS {..., - data ABSENT, - extDataHash PRESENT - }), - headerInfo(WITH COMPONENTS {..., - generationTime PRESENT, - expiryTime ABSENT, - generationLocation ABSENT, - p2pcdLearningRequest ABSENT, - missingCrlIdentifier ABSENT, - encryptionKey ABSENT - }) - }) - }) - }) - }) +Aes128CcmCiphertext ::= One28BitCcmCiphertext ``` ### Certificate + +>>> +NOTE: Canonicalization: This data structure is subject to canonicalization + for the relevant operations specified in 6.1.2. The canonicalization + applies to the CertificateBase. +>>> +```asn1 +Certificate ::= + CertificateBase (ImplicitCertificate | ExplicitCertificate) +``` + +### TestCertificate + ```asn1 -Certificate ::= CertificateBase (ImplicitCertificate | ExplicitCertificate) +TestCertificate ::= Certificate ``` ### SequenceOfCertificate @@ -506,62 +715,95 @@ SequenceOfCertificate ::= SEQUENCE OF Certificate * `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.
                            • - + - 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 + Canonicalization section of this subclause. + + +>>> +NOTE: 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 method used to + determine the whole-certificate hash algorithm is specified in 5.3.9.2. +>>> ```asn1 -CertificateBase ::= SEQUENCE { - version Uint8(3), - type CertificateType, - issuer IssuerIdentifier, - toBeSigned ToBeSignedCertificate, - signature Signature OPTIONAL - } +CertificateBase ::= SEQUENCE { + version Uint8(3), + type CertificateType, + issuer IssuerIdentifier, + toBeSigned ToBeSignedCertificate, + signature Signature OPTIONAL +} ``` ### CertificateType + +>>> +NOTE: 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 in the sense of 4.2.2.3.2, + that is, it is invalid in the sense that its validity cannot be + established. +>>> ```asn1 CertificateType ::= ENUMERATED { - explicit, - implicit, - ... - } + explicit, + implicit, + ... +} ``` ### ImplicitCertificate ```asn1 ImplicitCertificate ::= CertificateBase (WITH COMPONENTS {..., - type(implicit), - toBeSigned(WITH COMPONENTS {..., - verifyKeyIndicator(WITH COMPONENTS {reconstructionValue}) - }), - signature ABSENT - }) + type(implicit), + toBeSigned(WITH COMPONENTS {..., + verifyKeyIndicator(WITH COMPONENTS {reconstructionValue}) + }), + signature ABSENT +}) ``` ### ExplicitCertificate ```asn1 ExplicitCertificate ::= CertificateBase (WITH COMPONENTS {..., - type(explicit), - toBeSigned(WITH COMPONENTS {..., - verifyKeyIndicator(WITH COMPONENTS {verificationKey}) - }), - signature PRESENT - }) + type(explicit), + toBeSigned (WITH COMPONENTS {..., + verifyKeyIndicator(WITH COMPONENTS {verificationKey}) + }), + signature PRESENT +}) ``` ### IssuerIdentifier + +>>> +NOTE: 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 in the sense of 4.2.2.3.2, + that is, it is invalid in the sense that its validity cannot be + established. +>>> ```asn1 -IssuerIdentifier ::= CHOICE { - sha256AndDigest HashedId8, - self HashAlgorithm, - ..., - sha384AndDigest HashedId8 - } +IssuerIdentifier ::= CHOICE { + sha256AndDigest HashedId8, + self HashAlgorithm, + ..., + sha384AndDigest HashedId8, + sm3AndDigest HashedId8 +} ``` ### ToBeSignedCertificate @@ -573,20 +815,22 @@ IssuerIdentifier ::= CHOICE { (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. + determined as described in 6.4.3, applied to the COER-encoded certificate, + canonicalized as defined in the definition of Certificate. * `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. + 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 + - 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.
                              • + 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. @@ -594,7 +838,7 @@ IssuerIdentifier ::= CHOICE { * `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. + one entry. * `certIssuePermissions` indicates the permissions that the certificate holder has to sign certificates with this certificate. A valid instance of @@ -605,14 +849,13 @@ IssuerIdentifier ::= CHOICE { 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. +* `certRequestPermissions` indicates the permissions that the + certificate holder can request in its 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 @@ -620,32 +863,104 @@ IssuerIdentifier ::= CHOICE { version of this standard. * `encryptionKey` contains a public key for encryption for which the - certificate holder holds the corresponding private key. + 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. - - + the public key that may be used to verify data signed by this certificate. + +* `flags` indicates additional yes/no properties of the certificate + holder. The only bit with defined semantics in this string in this version + of this standard is usesCubk. If set, the usesCubk bit indicates that the + certificate holder supports the compact unified butterfly key response. + Further material about the compact unified butterfly key response can be + found in IEEE Std 1609.2.1. + +* `appExtensions` indicates additional permissions that may be applied + to application activities that the certificate holder is carrying out. + +* `certIssueExtensions` indicates additional permissions to issue + certificates containing endEntityExtensions. + +* `certRequestExtensions` indicates additional permissions to request + certificates containing endEntityExtensions. + + +>>> +NOTE: Critical information fields: + - If present, appPermissions is a critical information field as defined + in 5.2.6. If an implementation of verification does not support the number + of PsidSsp in the appPermissions field of a certificate that signed a + signed SPDU, that implementation shall indicate that the signed SPDU is + invalid in the sense of 4.2.2.3.2, that is, it is invalid in the sense + that its validity cannot be established.. A conformant implementation + shall support appPermissions fields containing at least eight entries. + It may be the case that an implementation of verification does not support + the number of entries in the appPermissions field and the appPermissions + field is not relevant to the verification: this will occur, for example, + if the certificate in question is a CA certificate and so the + certIssuePermissions field is relevant to the verification and the + appPermissions field is not. In this case, whether the implementation + indicates that the signed SPDU is valid (because it could validate all + relevant fields) or invalid (because it could not parse the entire + certificate) is implementation-specific. + - If present, certIssuePermissions is a critical information field as + defined in 5.2.6. If an implementation of verification does not support + the number of PsidGroupPermissions in the certIssuePermissions field of a + CA certificate in the chain of a signed SPDU, the implementation shall + indicate that the signed SPDU is invalid in the sense of 4.2.2.3.2, that + is, it is invalid in the sense that its validity cannot be established. + A conformant implementation shall support certIssuePermissions fields + containing at least eight entries. + It may be the case that an implementation of verification does not support + the number of entries in the certIssuePermissions field and the + certIssuePermissions field is not relevant to the verification: this will + occur, for example, if the certificate in question is the signing + certificate for the SPDU and so the appPermissions field is relevant to + the verification and the certIssuePermissions field is not. In this case, + whether the implementation indicates that the signed SPDU is valid + (because it could validate all relevant fields) or invalid (because it + could not parse the entire certificate) is implementation-specific. + - If present, certRequestPermissions is a critical information field as + defined in 5.2.6. If an implementaiton of verification of a certificate + request does not support the number of PsidGroupPermissions in + certRequestPermissions, the implementation shall indicate that the signed + SPDU is invalid in the sense of 4.2.2.3.2, that is, it is invalid in the + sense that its validity cannot be established. A conformant implementation + shall support certRequestPermissions fields containing at least eight + entries. + It may be the case that an implementation of verification does not support + the number of entries in the certRequestPermissions field and the + certRequestPermissions field is not relevant to the verification: this will + occur, for example, if the certificate in question is the signing + certificate for the SPDU and so the appPermissions field is relevant to + the verification and the certRequestPermissions field is not. In this + case, whether the implementation indicates that the signed SPDU is valid + (because it could validate all relevant fields) or invalid (because it + could not parse the entire certificate) is implementation-specific. +>>> ```asn1 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, - ..., - flags BIT STRING {cubk (0)} (SIZE (8)) OPTIONAL - } - (WITH COMPONENTS { ..., appPermissions PRESENT} | - WITH COMPONENTS { ..., certIssuePermissions PRESENT} | - WITH COMPONENTS { ..., certRequestPermissions PRESENT}) + 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, + ..., + flags BIT STRING {usesCubk (0)} (SIZE (8)) OPTIONAL, + appExtensions SequenceOfAppExtensions, + certIssueExtensions SequenceOfCertIssueExtensions, + certRequestExtension SequenceOfCertRequestExtensions +} +(WITH COMPONENTS { ..., appPermissions PRESENT} | + WITH COMPONENTS { ..., certIssuePermissions PRESENT} | + WITH COMPONENTS { ..., certRequestPermissions PRESENT}) ``` ### CertificateId @@ -656,40 +971,44 @@ ToBeSignedCertificate ::= SEQUENCE { * `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. + policy and are expected to be human-readable. * `binaryId` supports identifiers that are not human-readable. * `none` indicates that the certificate does not include an identifier. - + +>>> +NOTE: 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. +>>> ```asn1 CertificateId ::= CHOICE { - linkageData LinkageData, - name Hostname, - binaryId OCTET STRING(SIZE(1..64)), - none NULL, - ... - } + linkageData LinkageData, + name Hostname, + binaryId OCTET STRING(SIZE(1..64)), + none NULL, + ... +} ``` ### LinkageData ```asn1 -LinkageData ::= SEQUENCE { - iCert IValue, - linkage-value LinkageValue, - group-linkage-value GroupLinkageValue OPTIONAL - } +LinkageData ::= SEQUENCE { + iCert IValue, + linkage-value LinkageValue, + group-linkage-value GroupLinkageValue OPTIONAL +} ``` ### EndEntityType ```asn1 -EndEntityType ::= BIT STRING { - app (0), - enroll (1) - } (SIZE (8)) (ALL EXCEPT {}) +EndEntityType ::= + BIT STRING {app (0), enrol (1) } (SIZE (8)) (ALL EXCEPT {}) ``` ### PsidGroupPermissions @@ -706,34 +1025,35 @@ EndEntityType ::= BIT STRING { 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 + 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. + 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). + PsidGroupPermissions in the certificate is entitled to authorize. Different instances of PsidGroupPermissions within a ToBeSignedCertificate may have different values for eeType. + - 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 and 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 (in other words, if the + field does not indicate enroll and the chain ends in an enrollment + certificate, the chain shall be considered invalid). ```asn1 PsidGroupPermissions ::= SEQUENCE { - subjectPermissions SubjectPermissions, - minChainLength INTEGER DEFAULT 1, - chainLengthRange INTEGER DEFAULT 0, - eeType EndEntityType DEFAULT {app} - } + subjectPermissions SubjectPermissions, + minChainLength INTEGER DEFAULT 1, + chainLengthRange INTEGER DEFAULT 0, + eeType EndEntityType DEFAULT {app} +} ``` ### SequenceOfPsidGroupPermissions @@ -744,12 +1064,27 @@ SequenceOfPsidGroupPermissions ::= SEQUENCE OF PsidGroupPermissions ### SubjectPermissions + +>>> +NOTE: 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 + invalidin the sense of 4.2.2.3.2, that is, it is invalid in the sense that + its validity cannot be established. + - 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 in the sense of 4.2.2.3.2, that is, it is invalid in the + sense that its validity cannot be established. A conformant implementation + shall support explicit fields containing at least eight entries. +>>> ```asn1 SubjectPermissions ::= CHOICE { - explicit SequenceOfPsidSspRange, - all NULL, - ... - } + explicit SequenceOfPsidSspRange, + all NULL, + ... +} ``` ### VerificationKeyIndicator @@ -760,15 +1095,158 @@ SubjectPermissions ::= CHOICE { * `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. - + as specified in SEC 4 and 5.3.2. + +>>> +NOTE: Canonicalization: This data structure is subject to canonicalization + for the relevant operations specified in 6.1.2. The canonicalization + applies to the PublicVerificationKey and to the EccP256CurvePoint. The + EccP256CurvePoint is encoded in compressed form, i.e., such that the + choice indicated within the EccP256CurvePoint is compressed-y-0 or + compressed-y-1. +>>> ```asn1 VerificationKeyIndicator ::= CHOICE { - verificationKey PublicVerificationKey, - reconstructionValue EccP256CurvePoint, - ... + verificationKey PublicVerificationKey, + reconstructionValue EccP256CurvePoint, + ... +} +``` + +### Ieee1609ContributedHeaderInfoExtension + +```asn1 +Ieee1609ContributedHeaderInfoExtension ::= + Extension{{Ieee1609HeaderInfoExtensions}} +``` + +### Ieee1609HeaderInfoExtensionId + +```asn1 +Ieee1609HeaderInfoExtensionId ::= ExtId +``` + +### p2pcd8ByteLearningRequestId + +```asn1 +p2pcd8ByteLearningRequestId Ieee1609HeaderInfoExtensionId ::= 1 +``` + +### Ieee1609HeaderInfoExtensions + +```asn1 +Ieee1609HeaderInfoExtensions EXT-TYPE ::= { + {HashedId8 IDENTIFIED BY p2pcd8ByteLearningRequestId}, + ... +} +``` + +### SequenceOfAppExtensions + +```asn1 +SequenceOfAppExtensions ::= SEQUENCE (SIZE(1..MAX)) OF AppExtension +``` + +### AppExtension + +* `id` identifies the extension type. + +* `content` provides the content of the extension. + + +```asn1 +AppExtension ::= SEQUENCE { + id CERT-EXT-TYPE.&id({SetCertExtensions}), + content CERT-EXT-TYPE.&App({SetCertExtensions}{@.id}) +} +``` + +### SequenceOfCertIssueExtensions + +```asn1 +SequenceOfCertIssueExtensions ::= + SEQUENCE (SIZE(1..MAX)) OF CertIssueExtension +``` + +### CertIssueExtension + +* `id` identifies the extension type. + +* `permissions` indicates the permissions. Within this field. + - all indicates that the certificate is entitled to issue all values of + the extension. + - specific is used to specify which values of the extension may be + issued in the case where all does not apply. + + +```asn1 +CertIssueExtension ::= SEQUENCE { + id CERT-EXT-TYPE.&id({SetCertExtensions}), + permissions CHOICE { + specific CERT-EXT-TYPE.&Issue({SetCertExtensions}{@.id}), + all NULL + } +} +``` + +### SequenceOfCertRequestExtensions + +```asn1 +SequenceOfCertRequestExtensions ::= SEQUENCE (SIZE(1..MAX)) OF CertRequestExtension +``` + +### CertRequestExtension + +* `id` identifies the extension type. + +* `permissions` indicates the permissions. Within this field. + - all indicates that the certificate is entitled to issue all values of + the extension. + - specific is used to specify which values of the extension may be + issued in the case where all does not apply. + + +```asn1 +CertRequestExtension ::= SEQUENCE { + id CERT-EXT-TYPE.&id({SetCertExtensions}), + permissions CHOICE { + content CERT-EXT-TYPE.&Req({SetCertExtensions}{@.id}), + all NULL } +} +``` + +### OperatingOrganizationId + +```asn1 +OperatingOrganizationId ::= OBJECT IDENTIFIER +``` + +### certExtId-OperatingOrganization + +```asn1 +certExtId-OperatingOrganization ExtId ::= 1 +``` + +### instanceOperatingOrganizationCertExtensions + +```asn1 +instanceOperatingOrganizationCertExtensions CERT-EXT-TYPE ::= { + ID certExtId-OperatingOrganization + APP OperatingOrganizationId + ISSUE NULL + REQUEST NULL +} +``` + +### SetCertExtensions + +```asn1 +SetCertExtensions CERT-EXT-TYPE ::= { + instanceOperatingOrganizationCertExtensions, + ... +} ``` diff --git a/docs/Ieee1609Dot2BaseTypes.md b/docs/Ieee1609Dot2BaseTypes.md index e0acea5..8312342 100644 --- a/docs/Ieee1609Dot2BaseTypes.md +++ b/docs/Ieee1609Dot2BaseTypes.md @@ -1,20 +1,20 @@ # ASN.1 module Ieee1609Dot2BaseTypes - OID: _{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-3(3)}_ - @brief NOTE: Section references in this file are to clauses in IEEE Std + OID: _{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-4(4)}_ + @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. + abbreviations used in this file are specified in 3.2. ## Data Elements: ### Uint3 ```asn1 -Uint3 ::= INTEGER (0..7) +Uint3 ::= INTEGER (0..7) ``` ### Uint8 ```asn1 -Uint8 ::= INTEGER (0..255) +Uint8 ::= INTEGER (0..255) ``` ### Uint16 @@ -38,7 +38,7 @@ Uint64 ::= INTEGER (0..18446744073709551615) ### SequenceOfUint8 ```asn1 -SequenceOfUint8 ::= SEQUENCE OF Uint8 +SequenceOfUint8 ::= SEQUENCE OF Uint8 ``` ### SequenceOfUint16 @@ -83,6 +83,12 @@ HashedId10 ::= OCTET STRING (SIZE(10)) HashedId32 ::= OCTET STRING (SIZE(32)) ``` +### HashedId48 + +```asn1 +HashedId48 ::= OCTET STRING(SIZE(48)) +``` + ### Time32 ```asn1 @@ -97,45 +103,30 @@ Time64 ::= Uint64 ### ValidityPeriod -* `start` contains the starting time of the validity period. - -* `duration` contains the duration of the validity period. - - ```asn1 ValidityPeriod ::= SEQUENCE { - start Time32, - duration Duration - } + start Time32, + duration Duration +} ``` ### Duration -* `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. - +>>> +NOTE: Years can be mapped more closely to wall-clock days using the hours + choice for up to 7 years and the sixtyHours choice for up to 448 years. +>>> ```asn1 Duration ::= CHOICE { - microseconds Uint16, - milliseconds Uint16, - seconds Uint16, - minutes Uint16, - hours Uint16, - sixtyHours Uint16, - years Uint16 - } + microseconds Uint16, + milliseconds Uint16, + seconds Uint16, + minutes Uint16, + hours Uint16, + sixtyHours Uint16, + years Uint16 +} ``` ### GeographicRegion @@ -146,7 +137,7 @@ Duration ::= CHOICE { * `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. + point within any of the rectangles. * `polygonalRegion` contains a single instance of the PolygonalRegion structure. @@ -154,34 +145,60 @@ Duration ::= CHOICE { * `identifiedRegion` is an array of IdentifiedRegion structures containing at least one entry. The permitted region is any point within any of the identified regions. - + +>>> +NOTE: 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 in + the sense of 4.2.2.3.2, that is, it is invalid in the sense that its + validity cannot be established. + - 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 in the sense of 4.2.2.3.2, that + is, it is invalid in the sense that its validity cannot be established. + A conformant 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 in the sense of 4.2.2.3.2, that is, it is invalid in the sense + that its validity cannot be established. A conformant implementation shall + support identifiedRegion fields containing at least eight entries. +>>> ```asn1 GeographicRegion ::= CHOICE { - circularRegion CircularRegion, - rectangularRegion SequenceOfRectangularRegion, - polygonalRegion PolygonalRegion, - identifiedRegion SequenceOfIdentifiedRegion, - ... - } + circularRegion CircularRegion, + rectangularRegion SequenceOfRectangularRegion, + polygonalRegion PolygonalRegion, + identifiedRegion SequenceOfIdentifiedRegion, + ... +} ``` ### CircularRegion ```asn1 CircularRegion ::= SEQUENCE { - center TwoDLocation, - radius Uint16 - } + center TwoDLocation, + radius Uint16 +} ``` ### RectangularRegion +* `northWest` is the north-west corner of the rectangle. + +* `southEast` is the south-east corner of the rectangle. + + ```asn1 RectangularRegion ::= SEQUENCE { - northWest TwoDLocation, - southEast TwoDLocation - } + northWest TwoDLocation, + southEast TwoDLocation +} ``` ### SequenceOfRectangularRegion @@ -192,28 +209,56 @@ SequenceOfRectangularRegion ::= SEQUENCE OF RectangularRegion ### PolygonalRegion + +>>> +NOTE: 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. +>>> ```asn1 PolygonalRegion ::= SEQUENCE SIZE (3..MAX) OF TwoDLocation ``` ### TwoDLocation + +>>> +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. +>>> ```asn1 TwoDLocation ::= SEQUENCE { - latitude Latitude, - longitude Longitude - } + latitude Latitude, + longitude Longitude +} ``` ### IdentifiedRegion +* `countryOnly` indicates that only a country (or a geographic entity + included in a country list) is given. + +* `countryAndRegions` indicates that one or more top-level regions + within a country (as defined by the region listing associated with that + country) is given. + +* `countryAndSubregions` indicates that one or more regions smaller + than the top-level regions within a country (as defined by the region + listing associated with that country) is given. + ```asn1 IdentifiedRegion ::= CHOICE { - countryOnly CountryOnly, - countryAndRegions CountryAndRegions, - countryAndSubregions CountryAndSubregions, - ... - } + countryOnly UnCountryId, + countryAndRegions CountryAndRegions, + countryAndSubregions CountryAndSubregions, + ... +} ``` ### SequenceOfIdentifiedRegion @@ -222,66 +267,66 @@ IdentifiedRegion ::= CHOICE { SequenceOfIdentifiedRegion ::= SEQUENCE OF IdentifiedRegion ``` +### UnCountryId + +```asn1 +UnCountryId ::= Uint16 +``` + ### CountryOnly ```asn1 -CountryOnly ::= Uint16 +CountryOnly ::= UnCountryId ``` ### CountryAndRegions -* `countryOnly` is a CountryOnly as defined above. +* `countryOnly` is a UnCountryId 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. +* `regions` identifies one or more regions within the country. If + country 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 0). For other values of country, the + meaning of region is not defined in this version of this standard. ```asn1 CountryAndRegions ::= SEQUENCE { - countryOnly CountryOnly, - regions SequenceOfUint8 - } + countryOnly UnCountryId, + regions SequenceOfUint8 +} ``` ### CountryAndSubregions -* `country` is a CountryOnly as defined above. +* `countryOnly` is a UnCountryId 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. +* `regionAndSubregions` identifies one or more subregions within + country. ```asn1 CountryAndSubregions ::= SEQUENCE { - country CountryOnly, - regionAndSubregions SequenceOfRegionAndSubregions - } + countryOnly UnCountryId, + regionAndSubregions SequenceOfRegionAndSubregions +} ``` ### RegionAndSubregions -* `region` identifies a region within a country as specified under - CountryAndRegions. +* `region` identifies a region within a country. -* `subregions` identifies one or more subregions as specified under - CountryAndSubregions. +* `subregions` identifies one or more subregions within region. A + conformant implementation that supports RegionAndSubregions shall support + a subregions field containing at least eight entries. ```asn1 RegionAndSubregions ::= SEQUENCE { - region Uint8, - subregions SequenceOfUint16 - } + region Uint8, + subregions SequenceOfUint16 +} ``` ### SequenceOfRegionAndSubregions @@ -292,12 +337,18 @@ SequenceOfRegionAndSubregions ::= SEQUENCE OF RegionAndSubregions ### ThreeDLocation + +>>> +NOTE: The units used in this data structure are consistent with the + location data structures used in SAE J2735 [B26], though the encoding is + incompatible. +>>> ```asn1 ThreeDLocation ::= SEQUENCE { - latitude Latitude, - longitude Longitude, - elevation Elevation - } + latitude Latitude, + longitude Longitude, + elevation Elevation +} ``` ### Latitude @@ -322,10 +373,10 @@ Elevation ::= Uint16 ```asn1 NinetyDegreeInt ::= INTEGER { - min (-900000000), - max (900000000), - unknown (900000001) - } (-900000000..900000001) + min (-900000000), + max (900000000), + unknown (900000001) +} (-900000000..900000001) ``` ### KnownLatitude @@ -344,10 +395,10 @@ UnknownLatitude ::= NinetyDegreeInt (unknown) ```asn1 OneEightyDegreeInt ::= INTEGER { - min (-1799999999), - max (1800000000), - unknown (1800000001) - } (-1799999999..1800000001) + min (-1799999999), + max (1800000000), + unknown (1800000001) +} (-1799999999..1800000001) ``` ### KnownLongitude @@ -364,160 +415,308 @@ UnknownLongitude ::= OneEightyDegreeInt (unknown) ### Signature + +>>> +NOTE: Canonicalization: This data structure is subject to canonicalization + for the relevant operations specified in 6.1.2. The canonicalization + applies to instances of this data structure of form EcdsaP256Signature + and EcdsaP384Signature. +>>> ```asn1 Signature ::= CHOICE { - ecdsaNistP256Signature EcdsaP256Signature, - ecdsaBrainpoolP256r1Signature EcdsaP256Signature, - ..., - ecdsaBrainpoolP384r1Signature EcdsaP384Signature, - ecdsaNistP384Signature EcdsaP384Signature - } + ecdsaNistP256Signature EcdsaP256Signature, + ecdsaBrainpoolP256r1Signature EcdsaP256Signature, + ..., + ecdsaBrainpoolP384r1Signature EcdsaP384Signature, + ecdsaNistP384Signature EcdsaP384Signature, + sm2Signature EcsigP256Signature +} ``` ### EcdsaP256Signature + +>>> +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 converter checks + the x-value to see if it lies between n and p and reduces it 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: +>>> ```asn1 EcdsaP256Signature ::= SEQUENCE { - rSig EccP256CurvePoint, - sSig OCTET STRING (SIZE (32)) - } + rSig EccP256CurvePoint, + sSig OCTET STRING (SIZE (32)) +} ``` ### EcdsaP384Signature + +>>> +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 converter checks the + x-value to see if it lies between n and p and reduces it 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 +>>> ```asn1 EcdsaP384Signature ::= SEQUENCE { - rSig EccP384CurvePoint, - sSig OCTET STRING (SIZE (48)) - } + rSig EccP384CurvePoint, + sSig OCTET STRING (SIZE (48)) +} ``` -### EccP256CurvePoint +### EcsigP256Signature ```asn1 -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)) - } +EcsigP256Signature ::= SEQUENCE { + rSig OCTET STRING (SIZE (32)), + sSig OCTET STRING (SIZE (32)) +} +``` + +### EccP256CurvePoint + + +>>> +NOTE: Canonicalization: This data structure is subject to canonicalization + for the relevant operations specified in 6.1.2 if it appears in a + HeaderInfo or in a ToBeSignedCertificate. See the definitions of HeaderInfo + and ToBeSignedCertificate for a specification of the canonicalization + operations. +>>> +```asn1 +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)) } +} ``` ### EccP384CurvePoint -```asn1 -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)) - } + +>>> +NOTE: Canonicalization: This data structure is subject to canonicalization + for the relevant operations specified in 6.1.2 if it appears in a + HeaderInfo or in a ToBeSignedCertificate. See the definitions of HeaderInfo + and ToBeSignedCertificate for a specification of the canonicalization + operations. +>>> +```asn1 +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)) } +} ``` ### SymmAlgorithm ```asn1 SymmAlgorithm ::= ENUMERATED { - aes128Ccm, - ... - } + aes128Ccm, + ..., + sm4Ccm +} ``` ### HashAlgorithm + +>>> +NOTE: 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 in the sense of 4.2.2.3.2, that + is, it is invalid in the sense that its validity cannot be established. +>>> ```asn1 HashAlgorithm ::= ENUMERATED { - sha256, - ..., - sha384 - } + sha256, + ..., + sha384, + sm3 +} ``` ### EciesP256EncryptedKey -* `v` is the sender’s ephemeral public key, which is the output V from - encryption as specified in 5.3.4. +* `v` is the sender's ephemeral public key, which is the output V from + encryption as specified in 5.3.5.1. -* `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. +* `c` is the encrypted symmetric key, which is the output C from + encryption as specified in 5.3.5.1. The algorithm for the symmetric key + is identified by the CHOICE indicated in the following SymmetricCiphertext. + For ECIES this shall be AES-128. * `t` is the authentication tag, which is the output tag from - encryption as specified in 5.3.4. + encryption as specified in 5.3.5.1. ```asn1 EciesP256EncryptedKey ::= SEQUENCE { - v EccP256CurvePoint, - c OCTET STRING (SIZE (16)), - t OCTET STRING (SIZE (16)) - } + v EccP256CurvePoint, + c OCTET STRING (SIZE (16)), + t OCTET STRING (SIZE (16)) +} +``` + +### EcencP256EncryptedKey + +* `v` is the sender's ephemeral public key, which is the output V from + encryption as specified in 5.3.5.2. + +* `c` is the encrypted symmetric key, which is the output C from + encryption as specified in 5.3.5.2. The algorithm for the symmetric key + is identified by the CHOICE indicated in the following SymmetricCiphertext. + For SM2 this algorithm shall be SM4. + +* `t` is the authentication tag, which is the output tag from + encryption as specified in 5.3.5.2. + + +```asn1 +EcencP256EncryptedKey ::= SEQUENCE { + v EccP256CurvePoint, + c OCTET STRING (SIZE (16)), + t OCTET STRING (SIZE (32)) +} ``` ### EncryptionKey + +>>> +NOTE: Canonicalization: This data structure is subject to canonicalization + for the relevant operations specified in 6.1.2 if it appears in a + HeaderInfo or in a ToBeSignedCertificate. The canonicalization applies to + the PublicEncryptionKey. See the definitions of HeaderInfo and + ToBeSignedCertificate for a specification of the canonicalization + operations. +>>> ```asn1 EncryptionKey ::= CHOICE { - public PublicEncryptionKey, - symmetric SymmetricEncryptionKey - } + public PublicEncryptionKey, + symmetric SymmetricEncryptionKey +} ``` ### PublicEncryptionKey + +>>> +NOTE: Canonicalization: This data structure is subject to canonicalization + for the relevant operations specified in 6.1.2 if it appears in a + HeaderInfo or in a ToBeSignedCertificate. The canonicalization applies to + the BasePublicEncryptionKey. See the definitions of HeaderInfo and + ToBeSignedCertificate for a specification of the canonicalization + operations. +>>> ```asn1 PublicEncryptionKey ::= SEQUENCE { - supportedSymmAlg SymmAlgorithm, - publicKey BasePublicEncryptionKey - } + supportedSymmAlg SymmAlgorithm, + publicKey BasePublicEncryptionKey +} ``` ### BasePublicEncryptionKey + +>>> +NOTE: Canonicalization: This data structure is subject to canonicalization + for the relevant operations specified in 6.1.2 if it appears in a + HeaderInfo or in a ToBeSignedCertificate. See the definitions of HeaderInfo + and ToBeSignedCertificate for a specification of the canonicalization + operations. +>>> ```asn1 BasePublicEncryptionKey ::= CHOICE { - eciesNistP256 EccP256CurvePoint, - eciesBrainpoolP256r1 EccP256CurvePoint, - ... - } + eciesNistP256 EccP256CurvePoint, + eciesBrainpoolP256r1 EccP256CurvePoint, + ..., + ecencSm2 EccP256CurvePoint +} ``` ### PublicVerificationKey + +>>> +NOTE: Canonicalization: This data structure is subject to canonicalization + for the relevant operations specified in 6.1.2. The canonicalization + applies to the EccP256CurvePoint and the Ecc384CurvePoint. Both forms of + point are encoded in compressed form, i.e., such that the choice indicated + within the Ecc*CurvePoint is compressed-y-0 or compressed-y-1. +>>> ```asn1 PublicVerificationKey ::= CHOICE { - ecdsaNistP256 EccP256CurvePoint, - ecdsaBrainpoolP256r1 EccP256CurvePoint, - ..., - ecdsaBrainpoolP384r1 EccP384CurvePoint, - ecdsaNistP384 EccP384CurvePoint - } + ecdsaNistP256 EccP256CurvePoint, + ecdsaBrainpoolP256r1 EccP256CurvePoint, + ... , + ecdsaBrainpoolP384r1 EccP384CurvePoint, + ecdsaNistP384 EccP384CurvePoint, + ecsigSm2 EccP256CurvePoint +} ``` ### SymmetricEncryptionKey ```asn1 SymmetricEncryptionKey ::= CHOICE { - aes128Ccm OCTET STRING(SIZE(16)), - ... - } + aes128Ccm OCTET STRING(SIZE(16)), + ..., + sm4Ccm OCTET STRING(SIZE(16)) +} ``` ### PsidSsp + +>>> +NOTE: 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. +>>> ```asn1 PsidSsp ::= SEQUENCE { - psid Psid, - ssp ServiceSpecificPermissions OPTIONAL - } + psid Psid, + ssp ServiceSpecificPermissions OPTIONAL +} ``` ### SequenceOfPsidSsp @@ -540,16 +739,42 @@ SequenceOfPsid ::= SEQUENCE OF Psid ### ServiceSpecificPermissions + +>>> +NOTE: 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. +>>> ```asn1 ServiceSpecificPermissions ::= CHOICE { - opaque OCTET STRING (SIZE(0..MAX)), - ..., - bitmapSsp BitmapSsp - } + opaque OCTET STRING (SIZE(0..MAX)), + ..., + bitmapSsp BitmapSsp +} ``` ### BitmapSsp + +>>> +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. +>>> ```asn1 BitmapSsp ::= OCTET STRING (SIZE(0..31)) ``` @@ -565,9 +790,9 @@ BitmapSsp ::= OCTET STRING (SIZE(0..31)) ```asn1 PsidSspRange ::= SEQUENCE { - psid Psid, - sspRange SspRange OPTIONAL - } + psid Psid, + sspRange SspRange OPTIONAL +} ``` ### SequenceOfPsidSspRange @@ -578,33 +803,64 @@ SequenceOfPsidSspRange ::= SEQUENCE OF PsidSspRange ### SspRange + +>>> +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". +>>> ```asn1 SspRange ::= CHOICE { - opaque SequenceOfOctetString, - all NULL, - ... , - bitmapSspRange BitmapSspRange - } + opaque SequenceOfOctetString, + all NULL, + ..., + bitmapSspRange BitmapSspRange +} ``` ### BitmapSspRange + +>>> +NOTE: 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. +>>> ```asn1 BitmapSspRange ::= SEQUENCE { - sspValue OCTET STRING (SIZE(1..32)), - sspBitmask OCTET STRING (SIZE(1..32)) - } + sspValue OCTET STRING (SIZE(1..32)), + sspBitmask OCTET STRING (SIZE(1..32)) +} ``` ### SequenceOfOctetString ```asn1 -SequenceOfOctetString ::= - SEQUENCE (SIZE (0..MAX)) OF OCTET STRING (SIZE(0..MAX)) +SequenceOfOctetString ::= + SEQUENCE (SIZE (0..MAX)) OF OCTET STRING (SIZE(0..MAX)) ``` ### SubjectAssurance + +>>> +NOTE: This field was originally specified in ETSI TS 103 097 and + future uses of this field are anticipated to be consistent with future + versions of that standard. +>>> ```asn1 SubjectAssurance ::= OCTET STRING (SIZE(1)) ``` @@ -637,9 +893,9 @@ LinkageValue ::= OCTET STRING (SIZE(9)) ```asn1 GroupLinkageValue ::= SEQUENCE { - jValue OCTET STRING (SIZE(4)), - value OCTET STRING (SIZE(9)) - } + jValue OCTET STRING (SIZE(4)), + value OCTET STRING (SIZE(9)) +} ``` ### LaId @@ -648,11 +904,52 @@ GroupLinkageValue ::= SEQUENCE { LaId ::= OCTET STRING (SIZE(2)) ``` +### SequenceOfLinkageSeed + +```asn1 +SequenceOfLinkageSeed ::= SEQUENCE OF LinkageSeed +``` + ### LinkageSeed ```asn1 LinkageSeed ::= OCTET STRING (SIZE(16)) ``` +### CERT-EXT-TYPE + +```asn1 +CERT-EXT-TYPE ::= CLASS { + &id ExtId, + &App, + &Issue, + &Req +} WITH SYNTAX {ID &id APP &App ISSUE &Issue REQUEST &Req} +``` + +### Extension + +```asn1 +Extension {EXT-TYPE : ExtensionTypes} ::= SEQUENCE { + id EXT-TYPE.&extId({ExtensionTypes}), + content EXT-TYPE.&ExtContent({ExtensionTypes}{@.id}) +} +``` + +### EXT-TYPE + +```asn1 +EXT-TYPE ::= CLASS { + &extId ExtId, + &ExtContent +} WITH SYNTAX {&ExtContent IDENTIFIED BY &extId} +``` + +### ExtId + +```asn1 +ExtId ::= INTEGER(0..255) +``` + diff --git a/docs/Ieee1609Dot2Crl.md b/docs/Ieee1609Dot2Crl.md new file mode 100644 index 0000000..747653a --- /dev/null +++ b/docs/Ieee1609Dot2Crl.md @@ -0,0 +1,51 @@ +# ASN.1 module Ieee1609Dot2Crl + OID: _{iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) crl(3) major-version-3(3) 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. + +## Imports: + * **[Ieee1609Dot2](Ieee1609Dot2.md)** *{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-6(6)} WITH SUCCESSORS*
                                + + * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-4(4)} WITH SUCCESSORS*
                                + + * **[Ieee1609Dot2CrlBaseTypes](Ieee1609Dot2CrlBaseTypes.md)** *{iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) crl(3) base-types(2) major-version-3(3) minor-version-2(2)} WITH SUCCESSORS*
                                + +## Data Elements: +### CrlPsid + +```asn1 +CrlPsid ::= Psid(256) +``` + +### SecuredCrl + +```asn1 +SecuredCrl ::= Ieee1609Dot2Data (WITH COMPONENTS {..., + content (WITH COMPONENTS { + signedData (WITH COMPONENTS {..., + tbsData (WITH COMPONENTS { + payload (WITH COMPONENTS {..., + data (WITH COMPONENTS {..., + content (WITH COMPONENTS { + unsecuredData (CONTAINING CrlContents) + }) + }) + }), + headerInfo (WITH COMPONENTS {..., + psid (CrlPsid), + generationTime ABSENT, + expiryTime ABSENT, + generationLocation ABSENT, + p2pcdLearningRequest ABSENT, + missingCrlIdentifier ABSENT, + encryptionKey ABSENT + }) + }) + }) + }) +}) +``` + + + diff --git a/docs/Ieee1609Dot2CrlBaseTypes.md b/docs/Ieee1609Dot2CrlBaseTypes.md new file mode 100644 index 0000000..81c38de --- /dev/null +++ b/docs/Ieee1609Dot2CrlBaseTypes.md @@ -0,0 +1,447 @@ +# ASN.1 module Ieee1609Dot2CrlBaseTypes + OID: _{iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) crl(3) base-types(2) major-version-3(3) 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. + +## Imports: + * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-4(4)} WITH SUCCESSORS*
                                + +## Data Elements: +### CrlContents + +* `version` is the version number of the CRL. For this version of this + standard it is 1. + +* `crlSeries` represents the CRL series to which this CRL belongs. This + is used to determine whether the revocation information in a CRL is relevant + to a particular certificate as specified in 5.1.3.2. + +* `crlCraca` contains the low-order eight octets of the hash of the + certificate of the Certificate Revocation Authorization CA (CRACA) that + ultimately authorized the issuance of this CRL. This is used to determine + whether the revocation information in a CRL is relevant to a particular + certificate as specified in 5.1.3.2. In a valid signed CRL as specified in + 7.4 the crlCraca is consistent with the associatedCraca field in the + Service Specific Permissions as defined in 7.4.3.3. The HashedId8 is + calculated with the whole-certificate hash algorithm, determined as + described in 6.4.3, applied to the COER-encoded certificate, canonicalized + as defined in the definition of Certificate. + +* `issueDate` specifies the time when the CRL was issued. + +* `nextCrl` contains the time when the next CRL with the same crlSeries + and cracaId is expected to be issued. The CRL is invalid unless nextCrl is + strictly after issueDate. This field is used to set the expected update time + for revocation information associated with the (crlCraca, crlSeries) pair as + specified in 5.1.3.6. + +* `priorityInfo` contains information that assists devices with limited + storage space in determining which revocation information to retain and + which to discard. + +* `typeSpecific` contains the CRL body. + + +```asn1 +CrlContents ::= SEQUENCE { + version Uint8 (1), + crlSeries CrlSeries, + crlCraca HashedId8, + issueDate Time32, + nextCrl Time32, + priorityInfo CrlPriorityInfo, + typeSpecific TypeSpecificCrlContents +} +``` + +### CrlPriorityInfo + +* `priority` indicates the priority of the revocation information + relative to other CRLs issued for certificates with the same cracaId and + crlSeries values. A higher value for this field indicates higher importance + of this revocation information. + + +>>> +NOTE: This mechanism is for future use; details are not specified in this + version of the standard. +>>> +```asn1 +CrlPriorityInfo ::= SEQUENCE { + priority Uint8 OPTIONAL, + ... +} +``` + +### TypeSpecificCrlContents + +* `fullHashCrl` contains a full hash-based CRL, i.e., a listing of the + hashes of all certificates that: + - contain the indicated cracaId and crlSeries values, and + - are revoked by hash, and + - have been revoked, and + - have not expired. + +* `deltaHashCrl` contains a delta hash-based CRL, i.e., a listing of + the hashes of all certificates that: + - contain the indicated cracaId and crlSeries values, and + - are revoked by hash, and + - have been revoked since the previous CRL that contained the indicated + cracaId and crlSeries values. + +* `fullLinkedCrl` and fullLinkedCrlWithAlg: contain a full linkage + ID-based CRL, i.e., a listing of the individual and/or group linkage data + for all certificates that: + - contain the indicated cracaId and crlSeries values, and + - are revoked by linkage value, and + - have been revoked, and + - have not expired. + The difference between fullLinkedCrl and fullLinkedCrlWithAlg is in how + the cryptographic algorithms to be used in the seed evolution function and + linkage value generation function of 5.1.3.4 are communicated to the + receiver of the CRL. See below in this subclause for details. + +* `deltaLinkedCrl` and deltaLinkedCrlWithAlg: contain a delta linkage + ID-based CRL, i.e., a listing of the individual and/or group linkage data + for all certificates that: + - contain the specified cracaId and crlSeries values, and + - are revoked by linkage data, and + - have been revoked since the previous CRL that contained the indicated + cracaId and crlSeries values. + The difference between deltaLinkedCrl and deltaLinkedCrlWithAlg is in how + the cryptographic algorithms to be used in the seed evolution function + and linkage value generation function of 5.1.3.4 are communicated to the + receiver of the CRL. See below in this subclause for details. + + +>>> +NOTE: Seed evolution function and linkage value generation function + identification. In order to derive linkage values per the mechanisms given + in 5.1.3.4, a receiver needs to know the seed evolution function and the + linkage value generation function. +>>> +```asn1 +TypeSpecificCrlContents ::= CHOICE { + fullHashCrl ToBeSignedHashIdCrl, + deltaHashCrl ToBeSignedHashIdCrl, + fullLinkedCrl ToBeSignedLinkageValueCrl, + deltaLinkedCrl ToBeSignedLinkageValueCrl, + ..., + fullLinkedCrlWithAlg ToBeSignedLinkageValueCrlWithAlgIdentifier, + deltaLinkedCrlWithAlg ToBeSignedLinkageValueCrlWithAlgIdentifier +} +``` + +### ToBeSignedHashIdCrl + +* `crlSerial` is a counter that increments by 1 every time a new full + or delta CRL is issued for the indicated crlCraca and crlSeries values. + +* `entries` contains the individual revocation information items. + + +>>> +NOTE: To indicate that a hash-based CRL contains no individual revocation + information items, the recommended approach is for the SEQUENCE OF in the + SequenceOfHashBasedRevocationInfo in this field to indicate zero entries. +>>> +```asn1 +ToBeSignedHashIdCrl ::= SEQUENCE { + crlSerial Uint32, + entries SequenceOfHashBasedRevocationInfo, + ... +} +``` + +### SequenceOfHashBasedRevocationInfo + +```asn1 +SequenceOfHashBasedRevocationInfo ::= + SEQUENCE OF HashBasedRevocationInfo +``` + +### HashBasedRevocationInfo + +* `id` is the HashedId10 identifying the revoked certificate. The + HashedId10 is calculated with the whole-certificate hash algorithm, + determined as described in 6.4.3, applied to the COER-encoded certificate, + canonicalized as defined in the definition of Certificate. + +* `expiry` is the value computed from the validity period's start and + duration values in that certificate. + + +```asn1 +HashBasedRevocationInfo ::= SEQUENCE { + id HashedId10, + expiry Time32, + ... +} +``` + +### ToBeSignedLinkageValueCrl + +* `iRev` is the value iRev used in the algorithm given in 5.1.3.4. This + value applies to all linkage-based revocation information included within + either indvidual or groups. + +* `indexWithinI` is a counter that is set to 0 for the first CRL issued + for the indicated combination of crlCraca, crlSeries, and iRev, and + increments by 1 every time a new full or delta CRL is issued for the + indicated crlCraca and crlSeries values without changing iRev. + +* `individual` contains individual linkage data. + +* `groups` contains group linkage data. + +* `groupsSingleSeed` contains group linkage data generated with a single + seed. + + + +>>> +NOTE: To indicate that a linkage ID-based CRL contains no group linkage + data, the recommended approach is for the SEQUENCE OF in the + SequenceOfGroupCrlEntry in this field to indicate zero entries. +>>> +```asn1 +ToBeSignedLinkageValueCrl ::= SEQUENCE { + iRev IValue, + indexWithinI Uint8, + individual SequenceOfJMaxGroup OPTIONAL, + groups SequenceOfGroupCrlEntry OPTIONAL, + ..., + groupsSingleSeed SequenceOfGroupSingleSeedCrlEntry OPTIONAL +} (WITH COMPONENTS {..., individual PRESENT} | + WITH COMPONENTS {..., groups PRESENT} | + WITH COMPONENTS {..., groupsSingleSeed PRESENT}) +``` + +### SequenceOfJMaxGroup + +```asn1 +SequenceOfJMaxGroup ::= SEQUENCE OF JMaxGroup +``` + +### JMaxGroup + +* `jMax` is the value jMax used in the algorithm given in 5.1.3.4. This + value applies to all linkage-based revocation information included within + contents. + +* `contents` contains individual linkage data. + + +```asn1 +JMaxGroup ::= SEQUENCE { + jmax Uint8, + contents SequenceOfLAGroup, + ... +} +``` + +### SequenceOfLAGroup + +```asn1 +SequenceOfLAGroup ::= SEQUENCE OF LAGroup +``` + +### LAGroup + +* `la1Id` is the value LinkageAuthorityIdentifier1 used in the + algorithm given in 5.1.3.4. This value applies to all linkage-based + revocation information included within contents. + +* `la2Id` is the value LinkageAuthorityIdentifier2 used in the + algorithm given in 5.1.3.4. This value applies to all linkage-based + revocation information included within contents. + +* `contents` contains individual linkage data. + + +```asn1 +LAGroup ::= SEQUENCE { + la1Id LaId, + la2Id LaId, + contents SequenceOfIMaxGroup, + ... +} +``` + +### SequenceOfIMaxGroup + +```asn1 +SequenceOfIMaxGroup ::= SEQUENCE OF IMaxGroup +``` + +### IMaxGroup + +* `iMax` indicates that for the entries in contents, revocation + information need no longer be calculated once iCert > iMax as the holder + is known to have no more valid certs at that point. iMax is not directly + used in the calculation of the linkage values, it is used to determine + when revocation information can safely be deleted. + +* `contents` contains individual linkage data for certificates that are + revoked using two seeds, per the algorithm given in per the mechanisms + given in 5.1.3.4 and with seedEvolutionFunctionIdentifier and + linkageValueGenerationFunctionIdentifier obtained as specified in 7.3.3. + +* `singleSeed` contains individual linkage data for certificates that + are revoked using a single seed, per the algorithm given in per the + mechanisms given in 5.1.3.4 and with seedEvolutionFunctionIdentifier and + linkageValueGenerationFunctionIdentifier obtained as specified in 7.3.3. + + +```asn1 +IMaxGroup ::= SEQUENCE { + iMax Uint16, + contents SequenceOfIndividualRevocation, + ..., + singleSeed SequenceOfLinkageSeed OPTIONAL +} +``` + +### SequenceOfIndividualRevocation + +```asn1 +SequenceOfIndividualRevocation ::= + SEQUENCE (SIZE(0..MAX)) OF IndividualRevocation +``` + +### IndividualRevocation + +* `linkageSeed1` is the value LinkageSeed1 used in the algorithm given + in 5.1.3.4. + +* `linkageSeed2` is the value LinkageSeed2 used in the algorithm given + in 5.1.3.4. + + +```asn1 +IndividualRevocation ::= SEQUENCE { + linkageSeed1 LinkageSeed, + linkageSeed2 LinkageSeed, + ... +} +``` + +### SequenceOfGroupCrlEntry + +```asn1 +SequenceOfGroupCrlEntry ::= SEQUENCE OF GroupCrlEntry +``` + +### GroupCrlEntry + +* `iMax` indicates that for these certificates, revocation information + need no longer be calculated once iCert > iMax as the holders are known + to have no more valid certs for that (crlCraca, crlSeries) at that point. + +* `la1Id` is the value LinkageAuthorityIdentifier1 used in the + algorithm given in 5.1.3.4. This value applies to all linkage-based + revocation information included within contents. + +* `linkageSeed1` is the value LinkageSeed1 used in the algorithm given + in 5.1.3.4. + +* `la2Id` is the value LinkageAuthorityIdentifier2 used in the + algorithm given in 5.1.3.4. This value applies to all linkage-based + revocation information included within contents. + +* `linkageSeed2` is the value LinkageSeed2 used in the algorithm given + in 5.1.3.4. + + +```asn1 +GroupCrlEntry ::= SEQUENCE { + iMax Uint16, + la1Id LaId, + linkageSeed1 LinkageSeed, + la2Id LaId, + linkageSeed2 LinkageSeed, + ... +} +``` + +### ToBeSignedLinkageValueCrlWithAlgIdentifier + +* `iRev` is the value iRev used in the algorithm given in 5.1.3.4. This + value applies to all linkage-based revocation information included within + either indvidual or groups. + +* `indexWithinI` is a counter that is set to 0 for the first CRL issued + for the indicated combination of crlCraca, crlSeries, and iRev, and increments by 1 every time a new full or delta CRL is issued for the indicated crlCraca and crlSeries values without changing iRev. + +* `seedEvolution` contains an identifier for the seed evolution + function, used as specified in 5.1.3.4. + +* `lvGeneration` contains an identifier for the linkage value + generation function, used as specified in 5.1.3.4. + +* `individual` contains individual linkage data. + +* `groups` contains group linkage data for linkage value generation + with two seeds. + +* `groupsSingleSeed` contains group linkage data for linkage value + generation with one seed. + + +```asn1 +ToBeSignedLinkageValueCrlWithAlgIdentifier ::= SEQUENCE { + iRev IValue, + indexWithinI Uint8, + seedEvolution SeedEvolutionFunctionIdentifier, + lvGeneration LvGenerationFunctionIdentifier, + individual SequenceOfJMaxGroup OPTIONAL, + groups SequenceOfGroupCrlEntry OPTIONAL, + groupsSingleSeed SequenceOfGroupSingleSeedCrlEntry OPTIONAL, + ... +} (WITH COMPONENTS {..., individual PRESENT} | + WITH COMPONENTS {..., groups PRESENT} | + WITH COMPONENTS {..., groupsSingleSeed PRESENT}) +``` + +### SequenceOfGroupSingleSeedCrlEntry + +```asn1 +SequenceOfGroupSingleSeedCrlEntry ::= + SEQUENCE OF GroupSingleSeedCrlEntry +``` + +### GroupSingleSeedCrlEntry + +```asn1 +GroupSingleSeedCrlEntry ::= SEQUENCE { + iMax Uint16, + laId LaId, + linkageSeed LinkageSeed +} +``` + +### ExpansionAlgorithmIdentifier + +```asn1 +ExpansionAlgorithmIdentifier ::= ENUMERATED { + sha256ForI-aesForJ, + sm3ForI-sm4ForJ, + ... +} +``` + +### SeedEvolutionFunctionIdentifier + +```asn1 +SeedEvolutionFunctionIdentifier ::= NULL +``` + +### LvGenerationFunctionIdentifier + +```asn1 +LvGenerationFunctionIdentifier ::= NULL +``` + + + -- GitLab From 12bf54603ed98ff170d6aa0d103ad3d8af1b4240 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Mon, 7 Nov 2022 14:18:56 +0100 Subject: [PATCH 53/66] try to fix the OSS issue --- EtsiTs103759BaseTypes.asn | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/EtsiTs103759BaseTypes.asn b/EtsiTs103759BaseTypes.asn index c977e48..997b14f 100755 --- a/EtsiTs103759BaseTypes.asn +++ b/EtsiTs103759BaseTypes.asn @@ -44,9 +44,9 @@ WITH SUCCESSORS TemplateAsr { C-ASR-OBS-BY-TGT: ObservationSet, C-ASR-EV: NonV2xPduEvidenceSet } ::= SEQUENCE { - observations ObservationsByTargetSequence {{ObservationSet}}, + observations ObservationsByTargetSequence {ObservationSet}, v2xPduEvidence SEQUENCE (SIZE(1..MAX)) OF V2xPduStream, - nonV2xPduEvidence NonV2xPduEvidenceItemSequence {{NonV2xPduEvidenceSet}} + nonV2xPduEvidence NonV2xPduEvidenceItemSequence {NonV2xPduEvidenceSet} } /** @@ -66,7 +66,7 @@ ObservationsByTarget {C-ASR-OBS-BY-TGT: SetAsrObsByTgt} ::= SEQUENCE { } ObservationsByTargetSequence { C-ASR-OBS-BY-TGT: SetAsrObsByTgt } ::= - SEQUENCE (SIZE(1..MAX)) OF ObservationsByTarget { SetAsrObsByTgt } + SEQUENCE (SIZE(1..MAX)) OF ObservationsByTarget {{ SetAsrObsByTgt }} /** * @brief This is the Information Object Class used to define observations- @@ -196,7 +196,7 @@ NonV2xPduEvidenceItem {C-ASR-EV: SetMbEv} ::= SEQUENCE { } NonV2xPduEvidenceItemSequence {NonV2xPduEvidenceSet} ::= - SEQUENCE (SIZE(0..MAX)) OF NonV2xPduEvidenceItem {NonV2xPduEvidenceSet} + SEQUENCE (SIZE(0..MAX)) OF NonV2xPduEvidenceItem {{NonV2xPduEvidenceSet}} /** * @brief This is the Information Object Class used to define evidence. -- GitLab From a59ed31ecd374d1c18aa115038b40e880ef223d0 Mon Sep 17 00:00:00 2001 From: "ASN.1 Checker" Date: Mon, 7 Nov 2022 13:23:09 +0000 Subject: [PATCH 54/66] Documentation update --- docs/EtsiTs103759BaseTypes.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/EtsiTs103759BaseTypes.md b/docs/EtsiTs103759BaseTypes.md index 153d9fc..fa46e30 100644 --- a/docs/EtsiTs103759BaseTypes.md +++ b/docs/EtsiTs103759BaseTypes.md @@ -31,9 +31,9 @@ TemplateAsr { C-ASR-OBS-BY-TGT: ObservationSet, C-ASR-EV: NonV2xPduEvidenceSet } ::= SEQUENCE { - observations ObservationsByTargetSequence {{ObservationSet}}, + observations ObservationsByTargetSequence {ObservationSet}, v2xPduEvidence SEQUENCE (SIZE(1..MAX)) OF V2xPduStream, - nonV2xPduEvidence NonV2xPduEvidenceItemSequence {{NonV2xPduEvidenceSet}} + nonV2xPduEvidence NonV2xPduEvidenceItemSequence {NonV2xPduEvidenceSet} } ``` @@ -58,7 +58,7 @@ ObservationsByTarget {C-ASR-OBS-BY-TGT: SetAsrObsByTgt} ::= SEQUENCE { ```asn1 ObservationsByTargetSequence { C-ASR-OBS-BY-TGT: SetAsrObsByTgt } ::= - SEQUENCE (SIZE(1..MAX)) OF ObservationsByTarget { SetAsrObsByTgt } + SEQUENCE (SIZE(1..MAX)) OF ObservationsByTarget {{ SetAsrObsByTgt }} ``` ### C-ASR-OBS-BY-TGT @@ -199,7 +199,7 @@ NonV2xPduEvidenceItem {C-ASR-EV: SetMbEv} ::= SEQUENCE { ```asn1 NonV2xPduEvidenceItemSequence {NonV2xPduEvidenceSet} ::= - SEQUENCE (SIZE(0..MAX)) OF NonV2xPduEvidenceItem {NonV2xPduEvidenceSet} + SEQUENCE (SIZE(0..MAX)) OF NonV2xPduEvidenceItem {{NonV2xPduEvidenceSet}} ``` ### C-ASR-EV -- GitLab From 86477e4021ea06587fe73a82f956d12158df186e Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 9 Nov 2022 16:32:14 +0100 Subject: [PATCH 55/66] try to fix the parametrized types; add Ieee1609Dot2Data import; generalize versions --- EtsiTs103759AsrCam.asn | 2 +- EtsiTs103759BaseTypes.asn | 34 +++++++++++++++++------------- EtsiTs103759CommonObservations.asn | 2 +- 3 files changed, 21 insertions(+), 17 deletions(-) diff --git a/EtsiTs103759AsrCam.asn b/EtsiTs103759AsrCam.asn index d4e84bd..d406aa3 100755 --- a/EtsiTs103759AsrCam.asn +++ b/EtsiTs103759AsrCam.asn @@ -39,7 +39,7 @@ WITH SUCCESSORS 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-3(3)} + base(1) base-types(2) major-version-2(2) minor-version-4(4)} WITH SUCCESSORS ; diff --git a/EtsiTs103759BaseTypes.asn b/EtsiTs103759BaseTypes.asn index 997b14f..5c40c1f 100755 --- a/EtsiTs103759BaseTypes.asn +++ b/EtsiTs103759BaseTypes.asn @@ -15,9 +15,15 @@ WITH SUCCESSORS Opaque, Uint8 -FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111) +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-3(3)} + base(1) base-types(2) major-version-2(2) minor-version-4(4)} +WITH SUCCESSORS + +Ieee1609Dot2Data +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-6(6)} WITH SUCCESSORS ; @@ -44,9 +50,9 @@ WITH SUCCESSORS TemplateAsr { C-ASR-OBS-BY-TGT: ObservationSet, C-ASR-EV: NonV2xPduEvidenceSet } ::= SEQUENCE { - observations ObservationsByTargetSequence {ObservationSet}, + observations ObservationsByTargetSequence {{ObservationSet}}, v2xPduEvidence SEQUENCE (SIZE(1..MAX)) OF V2xPduStream, - nonV2xPduEvidence NonV2xPduEvidenceItemSequence {NonV2xPduEvidenceSet} + nonV2xPduEvidence NonV2xPduEvidenceItemSequence {{NonV2xPduEvidenceSet}} } /** @@ -143,28 +149,26 @@ C-OBS-PDU ::= C-2ENT * @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}, + {ObsPduEtsiGn BY c-ObsPdu-etsiGn} | + {Ieee1609Dot2Data BY c-ObsPdu-ieee1609Dot2Data}, ... } /** * @brief This data type contains the identifier of the type of observed PDU. * - * @param c-ObsPdu-etsiGn The PDU is of ETSI GeoNetworking type - * @param c-ObsPdu-ieee1609Dot2Data The PDU contains the @ref Ieee1609Dot2Data structure - * @param c-ObsPdu-wsmp The PDU contains the WSMP data type defined in IEEE 1609.3 + * @param c-ObsPdu-etsiGn: is the identifier for ETSI GeoNetworking. + * + * @param c-ObsPdu-ieee1609Dot2Data: is the identifier for IEEE 1609.2. */ IdObsPdu ::= Uint8 c-ObsPdu-etsiGn IdObsPdu ::= 1 c-ObsPdu-ieee1609Dot2Data IdObsPdu ::= 2 -c-ObsPdu-wsmp IdObsPdu ::= 3 /** - * @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. + * @brief ObsPduEtsiGn shall contain an encoded ETSI geonetworking PDU + * according to ETSI TS 103 836-4-1, at GeoNetworking level, i.e. without + * Access Layer header. */ ObsPduEtsiGn ::= Opaque @@ -196,7 +200,7 @@ NonV2xPduEvidenceItem {C-ASR-EV: SetMbEv} ::= SEQUENCE { } NonV2xPduEvidenceItemSequence {NonV2xPduEvidenceSet} ::= - SEQUENCE (SIZE(0..MAX)) OF NonV2xPduEvidenceItem {{NonV2xPduEvidenceSet}} + SEQUENCE (SIZE(0..MAX)) OF NonV2xPduEvidenceItem {{ NonV2xPduEvidenceSet }} /** * @brief This is the Information Object Class used to define evidence. diff --git a/EtsiTs103759CommonObservations.asn b/EtsiTs103759CommonObservations.asn index c401663..a89f783 100644 --- a/EtsiTs103759CommonObservations.asn +++ b/EtsiTs103759CommonObservations.asn @@ -17,7 +17,7 @@ WITH SUCCESSORS 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-3(3)} + base(1) base-types(2) major-version-2(2) minor-version-4(4)} WITH SUCCESSORS ; -- GitLab From cc447e555a9b0934847f5c91aff843f335185261 Mon Sep 17 00:00:00 2001 From: "ASN.1 Checker" Date: Wed, 9 Nov 2022 15:33:03 +0000 Subject: [PATCH 56/66] Documentation update --- docs/EtsiTs103759AsrCam.md | 2 +- docs/EtsiTs103759BaseTypes.md | 22 ++++++++++------------ docs/EtsiTs103759MbrCommonObservations.md | 2 +- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/docs/EtsiTs103759AsrCam.md b/docs/EtsiTs103759AsrCam.md index 7d1e8c2..4cfd858 100644 --- a/docs/EtsiTs103759AsrCam.md +++ b/docs/EtsiTs103759AsrCam.md @@ -6,7 +6,7 @@ * **[EtsiTs103759MbrCommonObservations](EtsiTs103759MbrCommonObservations.md)** *{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)} WITH SUCCESSORS*
                                - * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-3(3)} WITH SUCCESSORS*
                                + * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-4(4)} WITH SUCCESSORS*
                                ## Data Elements: ### AsrCam diff --git a/docs/EtsiTs103759BaseTypes.md b/docs/EtsiTs103759BaseTypes.md index fa46e30..2577953 100644 --- a/docs/EtsiTs103759BaseTypes.md +++ b/docs/EtsiTs103759BaseTypes.md @@ -4,7 +4,9 @@ ## Imports: * **[EtsiTs103097Module](EtsiTs103097Module.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) secHeaders(103097) core(1) major-version-3(3) minor-version-1(1)} WITH SUCCESSORS*
                                - * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-3(3)} WITH SUCCESSORS*
                                + * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-4(4)} WITH SUCCESSORS*
                                + + * **[Ieee1609Dot2](Ieee1609Dot2.md)** *{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-6(6)} WITH SUCCESSORS*
                                ## Data Elements: ### TemplateAsr @@ -31,9 +33,9 @@ TemplateAsr { C-ASR-OBS-BY-TGT: ObservationSet, C-ASR-EV: NonV2xPduEvidenceSet } ::= SEQUENCE { - observations ObservationsByTargetSequence {ObservationSet}, + observations ObservationsByTargetSequence {{ObservationSet}}, v2xPduEvidence SEQUENCE (SIZE(1..MAX)) OF V2xPduStream, - nonV2xPduEvidence NonV2xPduEvidenceItemSequence {NonV2xPduEvidenceSet} + nonV2xPduEvidence NonV2xPduEvidenceItemSequence {{NonV2xPduEvidenceSet}} } ``` @@ -140,27 +142,23 @@ C-OBS-PDU ::= C-2ENT ```asn1 SetObsPdu C-OBS-PDU ::= { - {ObsPduEtsiGn BY c-ObsPdu-etsiGn} | - {ObsPduIeee1609Dot2Data BY c-ObsPdu-ieee1609Dot2Data} | - {ObsPduWsmp BY c-ObsPdu-wsmp}, + {ObsPduEtsiGn BY c-ObsPdu-etsiGn} | + {Ieee1609Dot2Data BY c-ObsPdu-ieee1609Dot2Data}, ... } ``` ### IdObsPdu -* `c-ObsPdu-etsiGn` The PDU is of ETSI GeoNetworking type - -* `c-ObsPdu-ieee1609Dot2Data` The PDU contains the [**Ieee1609Dot2Data**](Ieee1609Dot2.md#Ieee1609Dot2Data) structure +* `c-ObsPdu-etsiGn` is the identifier for ETSI GeoNetworking. -* `c-ObsPdu-wsmp` The PDU contains the WSMP data type defined in IEEE 1609.3 +* `c-ObsPdu-ieee1609Dot2Data` is the identifier for IEEE 1609.2. ```asn1 IdObsPdu ::= Uint8 c-ObsPdu-etsiGn IdObsPdu ::= 1 c-ObsPdu-ieee1609Dot2Data IdObsPdu ::= 2 -c-ObsPdu-wsmp IdObsPdu ::= 3 ``` ### ObsPduEtsiGn @@ -199,7 +197,7 @@ NonV2xPduEvidenceItem {C-ASR-EV: SetMbEv} ::= SEQUENCE { ```asn1 NonV2xPduEvidenceItemSequence {NonV2xPduEvidenceSet} ::= - SEQUENCE (SIZE(0..MAX)) OF NonV2xPduEvidenceItem {{NonV2xPduEvidenceSet}} + SEQUENCE (SIZE(0..MAX)) OF NonV2xPduEvidenceItem {{ NonV2xPduEvidenceSet }} ``` ### C-ASR-EV diff --git a/docs/EtsiTs103759MbrCommonObservations.md b/docs/EtsiTs103759MbrCommonObservations.md index 4c530e9..4f18bb0 100644 --- a/docs/EtsiTs103759MbrCommonObservations.md +++ b/docs/EtsiTs103759MbrCommonObservations.md @@ -4,7 +4,7 @@ ## Imports: * **[EtsiTs103759BaseTypes](EtsiTs103759BaseTypes.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103759) general(1) base-types(3) major-version-1(1) minor-version-1 (1)} WITH SUCCESSORS*
                                - * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-3(3)} WITH SUCCESSORS*
                                + * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-4(4)} WITH SUCCESSORS*
                                ## Data Elements: ### IdMbObs -- GitLab From 8eaa0639667867ca9001eb90c087a0eca4004a1f Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 9 Nov 2022 18:09:11 +0100 Subject: [PATCH 57/66] try to fix the parametrized types: add type definition --- EtsiTs103759BaseTypes.asn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EtsiTs103759BaseTypes.asn b/EtsiTs103759BaseTypes.asn index 5c40c1f..8624f66 100755 --- a/EtsiTs103759BaseTypes.asn +++ b/EtsiTs103759BaseTypes.asn @@ -199,7 +199,7 @@ NonV2xPduEvidenceItem {C-ASR-EV: SetMbEv} ::= SEQUENCE { evidence C-ASR-EV.&Val ({SetMbEv}{@.id}) } -NonV2xPduEvidenceItemSequence {NonV2xPduEvidenceSet} ::= +NonV2xPduEvidenceItemSequence {C-ASR-EV: NonV2xPduEvidenceSet} ::= SEQUENCE (SIZE(0..MAX)) OF NonV2xPduEvidenceItem {{ NonV2xPduEvidenceSet }} /** -- GitLab From eb7412f2edc9bde080c9d40fccedb82c5398fefe Mon Sep 17 00:00:00 2001 From: "ASN.1 Checker" Date: Wed, 9 Nov 2022 17:10:01 +0000 Subject: [PATCH 58/66] Documentation update --- docs/EtsiTs103759BaseTypes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/EtsiTs103759BaseTypes.md b/docs/EtsiTs103759BaseTypes.md index 2577953..53a1479 100644 --- a/docs/EtsiTs103759BaseTypes.md +++ b/docs/EtsiTs103759BaseTypes.md @@ -196,7 +196,7 @@ NonV2xPduEvidenceItem {C-ASR-EV: SetMbEv} ::= SEQUENCE { ### NonV2xPduEvidenceItemSequence ```asn1 -NonV2xPduEvidenceItemSequence {NonV2xPduEvidenceSet} ::= +NonV2xPduEvidenceItemSequence {C-ASR-EV: NonV2xPduEvidenceSet} ::= SEQUENCE (SIZE(0..MAX)) OF NonV2xPduEvidenceItem {{ NonV2xPduEvidenceSet }} ``` -- GitLab From a14b77ecc2c9d7260d20c79fc82d796d666dbf1b Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Thu, 10 Nov 2022 12:32:45 +0100 Subject: [PATCH 59/66] EtsiTs103097Certificate ==> Certificate --- EtsiTs103759BaseTypes.asn | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/EtsiTs103759BaseTypes.asn b/EtsiTs103759BaseTypes.asn index 8624f66..2963a94 100755 --- a/EtsiTs103759BaseTypes.asn +++ b/EtsiTs103759BaseTypes.asn @@ -7,12 +7,6 @@ DEFINITIONS AUTOMATIC TAGS ::= BEGIN EXPORTS ALL; IMPORTS - EtsiTs103097Certificate -FROM EtsiTs103097Module {itu-t(0) identified-organization(4) etsi(0) - itsDomain(5) wg5(5) secHeaders(103097) core(1) major-version-3(3) - minor-version-1(1)} -WITH SUCCESSORS - Opaque, Uint8 FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111) @@ -20,7 +14,7 @@ FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111) base(1) base-types(2) major-version-2(2) minor-version-4(4)} WITH SUCCESSORS -Ieee1609Dot2Data +Ieee1609Dot2Data, 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-6(6)} @@ -134,7 +128,7 @@ C-ASR-SINGLE-OBS ::= C-2ENT V2xPduStream ::= SEQUENCE { type C-OBS-PDU.&id ({SetObsPdu}), v2xPdus SEQUENCE (SIZE(1..255)) OF C-OBS-PDU.&Val ({SetObsPdu}{@.type}), - certificate EtsiTs103097Certificate OPTIONAL, + certificate Certificate OPTIONAL, subjectPduIndex Uint8, ... } @@ -149,8 +143,8 @@ C-OBS-PDU ::= C-2ENT * @brief This data type contains the IOS for the observed PDU. */ SetObsPdu C-OBS-PDU ::= { - {ObsPduEtsiGn BY c-ObsPdu-etsiGn} | - {Ieee1609Dot2Data BY c-ObsPdu-ieee1609Dot2Data}, + {ObsPduEtsiGn BY c-ObsPdu-etsiGn} | + {ObsPduIeee1609Dot2Data BY c-ObsPdu-ieee1609Dot2Data}, ... } @@ -177,14 +171,7 @@ ObsPduEtsiGn ::= Opaque * byte of every PDU in the v2xPdus array is the version byte of the * Ieee1609Dot2Data. */ -ObsPduIeee1609Dot2Data ::= Opaque - -/** - * @brief 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 +ObsPduIeee1609Dot2Data ::= Ieee1609Dot2Data /** * @brief This data type contains evidence, which may be referenced by one or -- GitLab From eb8fa648fc9768d1c96e0ef04ce646db01b48dde Mon Sep 17 00:00:00 2001 From: "ASN.1 Checker" Date: Thu, 10 Nov 2022 11:33:17 +0000 Subject: [PATCH 60/66] Documentation update --- docs/EtsiTs103759BaseTypes.md | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/docs/EtsiTs103759BaseTypes.md b/docs/EtsiTs103759BaseTypes.md index 53a1479..53692af 100644 --- a/docs/EtsiTs103759BaseTypes.md +++ b/docs/EtsiTs103759BaseTypes.md @@ -2,8 +2,6 @@ OID: _{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103759) general(1) base-types(3) major-version-1(1) minor-version-1 (1)}_ ## Imports: - * **[EtsiTs103097Module](EtsiTs103097Module.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) secHeaders(103097) core(1) major-version-3(3) minor-version-1(1)} WITH SUCCESSORS*
                                - * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-4(4)} WITH SUCCESSORS*
                                * **[Ieee1609Dot2](Ieee1609Dot2.md)** *{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-6(6)} WITH SUCCESSORS*
                                @@ -126,7 +124,7 @@ C-ASR-SINGLE-OBS ::= C-2ENT V2xPduStream ::= SEQUENCE { type C-OBS-PDU.&id ({SetObsPdu}), v2xPdus SEQUENCE (SIZE(1..255)) OF C-OBS-PDU.&Val ({SetObsPdu}{@.type}), - certificate EtsiTs103097Certificate OPTIONAL, + certificate Certificate OPTIONAL, subjectPduIndex Uint8, ... } @@ -142,8 +140,8 @@ C-OBS-PDU ::= C-2ENT ```asn1 SetObsPdu C-OBS-PDU ::= { - {ObsPduEtsiGn BY c-ObsPdu-etsiGn} | - {Ieee1609Dot2Data BY c-ObsPdu-ieee1609Dot2Data}, + {ObsPduEtsiGn BY c-ObsPdu-etsiGn} | + {ObsPduIeee1609Dot2Data BY c-ObsPdu-ieee1609Dot2Data}, ... } ``` @@ -170,13 +168,7 @@ ObsPduEtsiGn ::= Opaque ### ObsPduIeee1609Dot2Data ```asn1 -ObsPduIeee1609Dot2Data ::= Opaque -``` - -### ObsPduWsmp - -```asn1 -ObsPduWsmp ::= Opaque +ObsPduIeee1609Dot2Data ::= Ieee1609Dot2Data ``` ### NonV2xPduEvidenceItem -- GitLab From c0a3286f0cd5e97e9942ff165ad5fd095158586b Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Thu, 10 Nov 2022 12:41:17 +0100 Subject: [PATCH 61/66] remove ObsPduIeee1609Dot2Data type --- EtsiTs103759BaseTypes.asn | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/EtsiTs103759BaseTypes.asn b/EtsiTs103759BaseTypes.asn index 2963a94..a38b3ff 100755 --- a/EtsiTs103759BaseTypes.asn +++ b/EtsiTs103759BaseTypes.asn @@ -143,8 +143,8 @@ C-OBS-PDU ::= C-2ENT * @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}, + {ObsPduEtsiGn BY c-ObsPdu-etsiGn} | + {Ieee1609Dot2Data BY c-ObsPdu-ieee1609Dot2Data}, ... } @@ -166,13 +166,6 @@ c-ObsPdu-ieee1609Dot2Data IdObsPdu ::= 2 */ ObsPduEtsiGn ::= Opaque -/** - * @brief ObsPduIeee1609Dot2Data contains an Ieee1609Dot2Data, i.e., the first - * byte of every PDU in the v2xPdus array is the version byte of the - * Ieee1609Dot2Data. - */ -ObsPduIeee1609Dot2Data ::= Ieee1609Dot2Data - /** * @brief This data type contains evidence, which may be referenced by one or * more observations. -- GitLab From 4bdbf98f3564b61e979180da15e672bd0865821f Mon Sep 17 00:00:00 2001 From: "ASN.1 Checker" Date: Thu, 10 Nov 2022 11:42:01 +0000 Subject: [PATCH 62/66] Documentation update --- docs/EtsiTs103759BaseTypes.md | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/docs/EtsiTs103759BaseTypes.md b/docs/EtsiTs103759BaseTypes.md index 53692af..2b33d4f 100644 --- a/docs/EtsiTs103759BaseTypes.md +++ b/docs/EtsiTs103759BaseTypes.md @@ -140,8 +140,8 @@ C-OBS-PDU ::= C-2ENT ```asn1 SetObsPdu C-OBS-PDU ::= { - {ObsPduEtsiGn BY c-ObsPdu-etsiGn} | - {ObsPduIeee1609Dot2Data BY c-ObsPdu-ieee1609Dot2Data}, + {ObsPduEtsiGn BY c-ObsPdu-etsiGn} | + {Ieee1609Dot2Data BY c-ObsPdu-ieee1609Dot2Data}, ... } ``` @@ -165,12 +165,6 @@ c-ObsPdu-ieee1609Dot2Data IdObsPdu ::= 2 ObsPduEtsiGn ::= Opaque ``` -### ObsPduIeee1609Dot2Data - -```asn1 -ObsPduIeee1609Dot2Data ::= Ieee1609Dot2Data -``` - ### NonV2xPduEvidenceItem * `id` identifies the evidence type. -- GitLab From 67d2a7e6235e1e4127349ed745aba61a618aa3aa Mon Sep 17 00:00:00 2001 From: Virendra Kumar Date: Thu, 10 Nov 2022 08:46:38 -0500 Subject: [PATCH 63/66] Removed unnecessary import statements. --- EtsiTs103759.asn | 6 ------ EtsiTs103759BaseTypes.asn | 3 ++- EtsiTs103759CommonObservations.asn | 3 +-- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/EtsiTs103759.asn b/EtsiTs103759.asn index afe4a47..f8accee 100755 --- a/EtsiTs103759.asn +++ b/EtsiTs103759.asn @@ -22,12 +22,6 @@ FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111) base(1) base-types(2) major-version-2(2) minor-version-4(4)} WITH SUCCESSORS - Ieee1609Dot2Data -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-6(6)} -WITH SUCCESSORS - AsrAppAgnostic FROM EtsiTs103759AsrAppAgnostic {itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103759) aid-specific(2) appAgnostic(270549119) diff --git a/EtsiTs103759BaseTypes.asn b/EtsiTs103759BaseTypes.asn index a38b3ff..e52462b 100755 --- a/EtsiTs103759BaseTypes.asn +++ b/EtsiTs103759BaseTypes.asn @@ -14,7 +14,8 @@ FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111) base(1) base-types(2) major-version-2(2) minor-version-4(4)} WITH SUCCESSORS -Ieee1609Dot2Data, Certificate + Ieee1609Dot2Data, + 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-6(6)} diff --git a/EtsiTs103759CommonObservations.asn b/EtsiTs103759CommonObservations.asn index a89f783..58c6215 100644 --- a/EtsiTs103759CommonObservations.asn +++ b/EtsiTs103759CommonObservations.asn @@ -13,8 +13,7 @@ FROM EtsiTs103759BaseTypes {itu-t(0) identified-organization(4) etsi(0) minor-version-1 (1)} WITH SUCCESSORS - Uint8, - Uint16 + 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-4(4)} -- GitLab From fc0297d1e7733391061738b0dd9deddce0b5ac9a Mon Sep 17 00:00:00 2001 From: "ASN.1 Checker" Date: Thu, 10 Nov 2022 13:48:40 +0000 Subject: [PATCH 64/66] Documentation update --- docs/EtsiTs103759.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/EtsiTs103759.md b/docs/EtsiTs103759.md index 7b4d370..58fa773 100644 --- a/docs/EtsiTs103759.md +++ b/docs/EtsiTs103759.md @@ -6,8 +6,6 @@ * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-4(4)} WITH SUCCESSORS*
                                - * **[Ieee1609Dot2](Ieee1609Dot2.md)** *{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-6(6)} WITH SUCCESSORS*
                                - * **[EtsiTs103759AsrAppAgnostic](EtsiTs103759AsrAppAgnostic.md)** *{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-0(0)} WITH SUCCESSORS*
                                * **[EtsiTs103759AsrCam](EtsiTs103759AsrCam.md)** *{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-0(0)} WITH SUCCESSORS*
                                -- GitLab From 3d00a3d2c04592a3d69543e4c5a7e20be01b5e65 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Thu, 10 Nov 2022 16:13:14 +0100 Subject: [PATCH 65/66] tune up repository --- .gitlab-ci.yml | 2 +- .gitmodules | 4 - asn2md.py | 332 ------------------------------------------------- 3 files changed, 1 insertion(+), 337 deletions(-) delete mode 100755 asn2md.py diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0c23eb5..8bce5d0 100755 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,7 +3,7 @@ include: file: '/gitlab-ci/base.yml' variables: - ASN1_SRC: '*.asn sec_ts103097/*.asn ieee1609.2/*.asn' + ASN1_SRC: '*.asn sec_ts103097/*.asn ieee1609.2/Ieee1609Dot2.asn ieee1609.2/Ieee1609Dot2BaseTypes.asn' GIT_SUBMODULE_STRATEGY: normal validate: diff --git a/.gitmodules b/.gitmodules index a31311a..a7c5f9b 100755 --- a/.gitmodules +++ b/.gitmodules @@ -1,7 +1,3 @@ -[submodule "ieee1609dot2"] - path = ieee1609dot2 - url = https://forge.etsi.org/rep/ITS/asn1/ieee1609.2.git - [submodule "sec_ts103097"] path = sec_ts103097 url = https://forge.etsi.org/rep/ITS/asn1/sec_ts103097.git diff --git a/asn2md.py b/asn2md.py deleted file mode 100755 index 004dcf6..0000000 --- a/asn2md.py +++ /dev/null @@ -1,332 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -import argparse # parse arguments -import os.path # getting extension from file -import sys # output and stuff -import re # for regular expressions -import copy # for copy -if (sys.version_info > (3, 0)): - import urllib.parse # -else: - import urllib # - -## extract doxygen-tag namespace -RE_MODULE = re.compile( r'^\s*([A-Z][\w-]*)\s*({.*?})?\s*DEFINITIONS.*?::=\s*?BEGIN(.*)END', re.VERBOSE | re.MULTILINE | re.DOTALL) - -RE_SPACES = re.compile(r'\s+') - -RE_COMMENTS = re.compile(r'^\s*--.*?\n|--.*?(?:--|$)|/\*.*?\*/[\t ]*\n?', re.MULTILINE|re.DOTALL) - -RE_BASIC_TYPES = re.compile(r'^OCTET\s+STRING|BIT\s+STRING|BOOLEAN|INTEGER|FLOAT|SEQUENCE|SET|NULL') - -#RE_TYPE_BODY_1 = re.compile(r'.*?{(.*)}\s*WITH', re.MULTILINE|re.DOTALL) -#RE_TYPE_BODY_2 = re.compile(r'.*?{(.*)}\s*(?:WITH.*|\(.*?\)|\s*$)', re.MULTILINE|re.DOTALL) -RE_TYPE_BODY = re.compile(r'.*?{(.*)}\s*(?:WITH.*|\(.*?\)|\s*$)', re.MULTILINE|re.DOTALL) - -#RE_FIELDS = re.compile(r'^\s*(?:/\*\*.*?\*/)|^\s*([\w-]+?)\s+(OCTET\s+STRING|BIT\s+STRING|[A-Z][.\w-]+)?(.*?)(?:,((?:\s*--!?<.*?\n)*)|((?:--!?<.*?\n)*)$)', re.MULTILINE | re.DOTALL| re.VERBOSE) -RE_FIELDS = re.compile(r'^\s*/\*.*?\*/|^\s*--\!.*?\n|^[\s&]*([\w-]+)\s+(OCTET\s+STRING|BIT\s+STRING|[A-Z][\w-]+)?((?:{[^}]*}|\([^)]*\)|.)*?)(?:,|(--)|$)', re.MULTILINE | re.DOTALL) - -RE_EXPORTS = re.compile(r'^\s*EXPORTS.*?;', re.DOTALL | re.MULTILINE) - -RE_IMPORTS = re.compile(r'^\s*IMPORTS\s*(.*?);', re.DOTALL | re.MULTILINE) - -RE_IMPORT_ELEMENTS = re.compile(r'^([,\s\w-]*?)FROM\s*([\w-]+)\s*({[^}]*}(?:\s+WITH\s+SUCCESSORS)?)?', re.MULTILINE) - -RE_IMPORT_ELEMENT_TYPE = re.compile(r'[^,\s]+') - -RE_DOXY_ASN_COMMENTS = re.compile(r'^\s*--[-!#](:?$|\s(.*))', re.MULTILINE) - -RE_DOXY_C_COMMENTS = re.compile(r'^\s*/\*\*\s(.*?)\*/', re.MULTILINE | re.DOTALL) - -RE_DOXY_C_COMMENTS_I = re.compile(r'\s*\*+') -RE_STRIPSTAR = re.compile(r'^\s*\*', re.MULTILINE) - - -RE_DOXY_REF = re.compile(r'@ref\s+([\w-]+)') -RE_DOXY_CLASS = re.compile(r'@(?:class|struct|details):?\s+([\w-]+)') -RE_DOXY_DETAILS = re.compile(r'@details:?\s+[\w-]+') -RE_DOXY_STRIP_SINGLE_TAG = re.compile(r'@(?:brief|url)\s+') -RE_DOXY_STRIP_TAG = re.compile(r'\s*@(?:class|struct|details):?\s+[\w-]+') -RE_DOXY_UNIT = re.compile(r'^\s*@unit:?\s+(.+)\n', re.MULTILINE) -RE_DOXY_REVISION = re.compile(r'^\s*@revision:?\s+(.+)\n', re.MULTILINE) -RE_DOXY_BRIEF = re.compile(r'^\s*@brief[\s:]+(.+)\n', re.MULTILINE) -RE_DOXY_CATEGORY = re.compile(r'^\s*@category[\s:]+(.+)\n', re.MULTILINE) -RE_DOXY_PARAM = re.compile(r'^\s*@(?:param|field):?\s+([\w-]+)\s*(.*?)\n\s*$', re.MULTILINE | re.DOTALL) - -RE_DOXY_SECTION = re.compile(r"^\s*@(brief|note|(class|struct|param|field|details)\s+([-\w]+)):?(.*?)(?=\n\s*@|\n\s*\n|\Z)", re.MULTILINE | re.DOTALL) - -# RE_TYPE = re.compile(r'(([A-Z][\w-]*)\s*::=[\w \t]+(?:{+(.*?)}+)?.*?)\n\s*\n', re.MULTILINE | re.DOTALL) -#RE_TYPE = re.compile(r'^\s*([A-Z][\w-]*)?\s*([{} \t:\w-]*?)?::=([\w \t]+.*?)\n\s*\n', re.MULTILINE | re.DOTALL) -RE_TYPE = re.compile(r'^\s*([\w-]*?)?\s*([A-Z][\w-]*)\s*({[\s,:\w-]*?})?\s*::=\s*([\w \t]+.*?)\n\s*\n', re.MULTILINE | re.DOTALL) - -RE_OPTIONS = re.compile(r'^\s*@options[\s:]+(.+)', re.MULTILINE) -RE_DOXY_OTHER = re.compile(r'\^(\w+)', re.MULTILINE) - -extTypes = {} -cpos = 0 -o_args = [] - -def urlquote(s): - if (sys.version_info > (3, 0)): - return urllib.parse.quote_plus(s) - else: - return urllib.quote_plus(s) - -def indentLines(content:str, indent): - ret='' - lines = content.splitlines() - for l in lines: - ret += ''.ljust(indent or 0) + l +'\n' - return ret - -def parseText(content, indent=None): - - def repl_ref(m): - return '[**{0}**]({1}#{0})'.format(m.group(1), extTypes.get(m.group(1),'')) - content = RE_DOXY_REF.sub(repl_ref, content) - - content = RE_DOXY_STRIP_TAG.sub('', content) - - content = RE_DOXY_STRIP_SINGLE_TAG.sub('', content) - - content = re.sub('\^(\w+)', '\\1', content) - - return indentLines(content, indent) - -def parseInlineComments(content:str, indent=None): - # keep into account only '--<' comments - lines = content.splitlines() - content = '' - for l in lines: - l = l.lstrip() - if l.startswith('--< '): - content += l[4:] + '\n' - elif l.startswith('--!< '): - content += l[5:] + '\n' - else: - continue - return parseText(content, indent) - -def parseDoxyComments(content:str): - # keep only '--! ' and /** */ comments - # convert '--! ' comments to C-style - content = RE_DOXY_ASN_COMMENTS.sub(r'/** *\g<1>*/', content) - ret = '' - for m in RE_DOXY_C_COMMENTS.finditer(content): - ret += RE_STRIPSTAR.sub('', m.group(1)) - return ret - -def parseModule(mname, content): - global cpos - cpos = 0 - ret = '' - m = RE_IMPORTS.search(content) - if m is not None: - pos = 0 - if m.group(1) is not None: - ret += '## Imports:\n' - s = m.group(1) - for fm in RE_IMPORT_ELEMENTS.finditer(s): - imName = fm.group(2) - for im in RE_IMPORT_ELEMENT_TYPE.finditer(fm.group(1)): - extTypes[im.group(0)] = imName+'.md' - ret += ' * **[{0}]({0}.md)** *{1}*
                                \n'.format(imName, RE_SPACES.sub(' ', fm.group(3) or '')) - ret += parseText(parseDoxyComments(s[pos:fm.start()])+'\n', 2) - pos = fm.end() - ret += parseText(parseDoxyComments(s[pos:])) - cpos = m.end() - - m = RE_EXPORTS.search(content) - if m is not None: - if cpos < m.end(): - cpos = m.end() - - # parse types - def repl_type (m, doc): - t = m.group(2) # type name - title = m.group(1) or t - f_params = {} - s_unit = '' - s_category = '' - s_note = '' - s_revision = '' - options = copy.copy(o_args) - if doc : # doc is the prepending comment. Check if not None and not Empty - doc = parseDoxyComments(doc) - - # parse options - def repl_options(m): - nonlocal options - if m.group(1) is not None: - for o in m.group(1).split(','): - setattr(options, o.strip().replace('-', '_'), True) - return '' - doc=RE_OPTIONS.sub(repl_options, doc) - - def repl_section (m): - nonlocal title - nonlocal t - nonlocal f_params - nonlocal s_note - ret = '' - l = m.group(4).lstrip(":, \t").lstrip('\n') - if m.group(2) is not None: - # this can be class|struct|details|param|field - if m.group(3) == t: - ret = parseText(l) - else: - if len(l): - f_params[m.group(3)] = parseText(l, 2) - elif m.group(1) == 'brief': - if o_args.brief_as_title: - title = parseText(l) - else: - ret = parseText(l) - elif m.group(1) == 'note': - s_note = '\n>>>\n' + 'NOTE: ' + parseText(l).rstrip() + '\n>>>\n' - else: - ret = m.string[m.start():m.end()] - return ret - doc = RE_DOXY_SECTION.sub(repl_section, doc) - - def repl_category(m): - nonlocal s_category - s_category = '\n    **Categories**: ' - for l in m.group(1).split(','): -# s_category += '[{0}](#{1}) '.format(l.strip(), urlquote(l.strip())) - s_category += l.strip() + ' ' - s_category += '\n' - return '' - doc = RE_DOXY_CATEGORY.sub(repl_category, doc) - - def repl_unit(m): - nonlocal s_unit - s_unit = '\n    **Unit**: _' + m.group(1).strip() + '_\n' - return '' - doc = RE_DOXY_UNIT.sub(repl_unit, doc) - - def repl_revision(m): - nonlocal s_revision - s_revision = '\n    **Revision**: _' + m.group(1).strip() + '_\n' - return '' - doc = RE_DOXY_REVISION.sub(repl_revision, doc) - else: - doc = '' - - ret = '' - - if m.group(1) is None: - # this is a type definition. define anchor - fields = '' - ret = '\n### {1}\n'.format(t, title) + parseText(doc) - - # parse fields and get out fields descriptions - if m.group(4) is not None: - # check if contain fields - fm = RE_TYPE_BODY.search(m.group(4)) - if fm is not None and fm.group(1) is not None: - typeBody = fm.group(1).strip() - if typeBody is not None: - fTitle = '' - field = '' - pos = 0 - for fm in RE_FIELDS.finditer(typeBody): - if fm.group(1) is not None: - # add description to the previous type - if len(field): - fields += parseInlineComments(fm.string[pos:fm.start()], 3) - field = '' - f = fm.group(1).strip() - ext = fm.group(3) or '' - if f in f_params: - field = f_params.pop(f) + '\n\n' - if fm.group(2) is not None: - fTitle = 'Fields:\n' - if len(field) or not o_args.no_auto_fields: - t = fm.group(2).strip() - if RE_BASIC_TYPES.match(t) is not None: - field = '* {0} **{1}** {2}
                                \n'.format(f, t, ext) + field - else: - field = '* {0} [**{1}**]({2}#{1}) {3}
                                \n'.format(f, t, extTypes.get(t,''), ext) + field - else: - fTitle = 'Values:\n' - if len(field) or not o_args.no_auto_values: - field = '* **{0}** {1}
                                \n'.format(f, ext) + field - if len(field): - field += parseText(fm.string[pos:fm.start()], 3) - pos = fm.end() - if fm.group(4) is not None: - # keep '--' for the next round - pos -= 2 - if len(field): - fields += field - if len(field): - fields += parseInlineComments(typeBody[pos:], 3) - # add all other fields defined as @params - if 'force_all_fields' in options or 'force_all_fields' in o_args: - for f in f_params: - fields += '* {}
                                \n{}\n\n'.format(f, f_params[f]) - if len(fields): - ret = ret.strip() + '\n\n' + fTitle + fields - else: - # This is a named value - if title: - ret = '### {}\n\n'.format(title) - l = parseText(parseDoxyComments(doc)) - if len(l): - ret += l + '\n\n' - for p in f_params: - ret += '* `{0}` {1}\n'.format(p, f_params[p]) - - return ret + s_unit + s_category + s_revision + s_note + '```asn1\n' + RE_COMMENTS.sub('', m.group(0).strip()) +'\n```\n\n' - - pos = 0 - ret += '## Data Elements:\n' - for m in RE_TYPE.finditer(content[cpos:]): - ret += repl_type (m, m.string[pos:m.start()]) - pos = m.end() - return ret - - -def parseAsn(outDir, content) : - # iterate modules in the file - pos= 0 - cnt = 0 - for m in RE_MODULE.finditer(content): - ret = '# ASN.1 module {}\n OID: _{}_\n'.format(m.group(1), RE_SPACES.sub(' ', m.group(2))) - ret += parseDoxyComments(content[pos:m.start()]) + '\n' - if m.group(3) is not None: - ret += parseModule(m.group(1), m.group(3)) - ret += '\n\n' - open(outDir + '/' + m.group(1) + '.md', "w",encoding='utf-8').write(ret) - pos = m.end() - cnt += 1 - return cnt - -def main(): - global o_args - ap = argparse.ArgumentParser(description='ASN.1 to markdown converter') - ap.add_argument('--out', '-o', type=str, default='.', help='output directory') - ap.add_argument('--brief-as-title', '-B', default=False, action='store_true', help='Do not treat @brief line as type header') - ap.add_argument('--force-all-fields', '-f', default=False,action='store_true', help='Add all fields in the list even if empty') - ap.add_argument('--no-auto-fields', '-F', default=False,action='store_true', help='Add fields only if @param or @field is defined') - ap.add_argument('--no-auto-values', '-V', default=False,action='store_true', help='Do not add named values or enums') - ap.add_argument('modules', action='store', nargs='+', help='ASN.1 files') - o_args = ap.parse_args() - - if not o_args.modules: - ap.print_help() - exit(1) - - cnt = 0 - for a in o_args.modules: - try: - content = open(a, encoding='latin-1').read() - cnt += parseAsn(o_args.out, content) - except IOError as e: - sys.stderr.write(e[1]+"\n") - print("{} modules porcessed\n".format(cnt)) - -if __name__ == '__main__': - main() -- GitLab From cded28b61f04e2694b06df87466fa924034d3e08 Mon Sep 17 00:00:00 2001 From: "ASN.1 Checker" Date: Thu, 10 Nov 2022 15:14:33 +0000 Subject: [PATCH 66/66] Documentation update --- docs/EtsiTs103097ExtensionModule.md | 34 +- docs/EtsiTs103097Module.md | 18 +- docs/EtsiTs103759.md | 102 +- docs/EtsiTs103759AsrAppAgnostic.md | 3 +- docs/EtsiTs103759AsrCam.md | 116 ++- docs/EtsiTs103759AsrDenm.md | 3 +- docs/EtsiTs103759BaseTypes.md | 122 ++- docs/EtsiTs103759MbrCommonObservations.md | 291 ++++-- docs/Ieee1609Dot2.md | 958 ++++++++++++++----- docs/Ieee1609Dot2BaseTypes.md | 1049 ++++++++++++++++++--- docs/Ieee1609Dot2Crl.md | 51 - docs/Ieee1609Dot2CrlBaseTypes.md | 447 --------- docs/SaeJ3287AsrBsm.md | 2 +- 13 files changed, 2161 insertions(+), 1035 deletions(-) delete mode 100644 docs/Ieee1609Dot2Crl.md delete mode 100644 docs/Ieee1609Dot2CrlBaseTypes.md diff --git a/docs/EtsiTs103097ExtensionModule.md b/docs/EtsiTs103097ExtensionModule.md index a05014e..2d89933 100644 --- a/docs/EtsiTs103097ExtensionModule.md +++ b/docs/EtsiTs103097ExtensionModule.md @@ -5,14 +5,18 @@ * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-3 (3)} WITH SUCCESSORS*
                                ## Data Elements: -### ExtensionModuleVersion +### ExtensionModuleVersion ```asn1 ExtensionModuleVersion::= INTEGER(1) ``` -### Extension +### Extension +Fields: +* id of type [**EXT-TYPE**](#EXT-TYPE) .&extId({ExtensionTypes})
                                +* content of type [**EXT-TYPE**](#EXT-TYPE) .&ExtContent({ExtensionTypes}{@.id})
                                + ```asn1 Extension {EXT-TYPE : ExtensionTypes} ::= SEQUENCE { id EXT-TYPE.&extId({ExtensionTypes}), @@ -20,8 +24,10 @@ Extension {EXT-TYPE : ExtensionTypes} ::= SEQUENCE { } ``` -### EXT-TYPE +### EXT-TYPE +Fields: +* extId of type [**ExtId**](#ExtId)
                                ```asn1 EXT-TYPE ::= CLASS { &extId ExtId, @@ -29,28 +35,28 @@ EXT-TYPE ::= CLASS { } WITH SYNTAX {&ExtContent IDENTIFIED BY &extId} ``` -### ExtId +### ExtId ```asn1 ExtId ::= INTEGER(0..255) ``` -### EtsiOriginatingHeaderInfoExtension +### EtsiOriginatingHeaderInfoExtension ```asn1 EtsiOriginatingHeaderInfoExtension ::= Extension{{EtsiTs103097HeaderInfoExtensions}} ``` -### EtsiTs103097HeaderInfoExtensionId +### EtsiTs103097HeaderInfoExtensionId ```asn1 EtsiTs103097HeaderInfoExtensionId ::= ExtId etsiTs102941CrlRequestId EtsiTs103097HeaderInfoExtensionId ::= 1 etsiTs102941DeltaCtlRequestId EtsiTs103097HeaderInfoExtensionId ::= 2 ``` -### EtsiTs103097HeaderInfoExtensions +### EtsiTs103097HeaderInfoExtensions ```asn1 EtsiTs103097HeaderInfoExtensions EXT-TYPE ::= { { EtsiTs102941CrlRequest IDENTIFIED BY etsiTs102941CrlRequestId } | @@ -59,8 +65,12 @@ EtsiTs103097HeaderInfoExtensions EXT-TYPE ::= { } ``` -### EtsiTs102941CrlRequest +### EtsiTs102941CrlRequest +Fields: +* issuerId of type [**HashedId8**](Ieee1609Dot2BaseTypes.md#HashedId8)
                                +* lastKnownUpdate of type [**Time32**](Ieee1609Dot2BaseTypes.md#Time32) OPTIONAL
                                + ```asn1 EtsiTs102941CrlRequest::= SEQUENCE { issuerId HashedId8, @@ -68,8 +78,12 @@ EtsiTs102941CrlRequest::= SEQUENCE { } ``` -### EtsiTs102941CtlRequest +### EtsiTs102941CtlRequest +Fields: +* issuerId of type [**HashedId8**](Ieee1609Dot2BaseTypes.md#HashedId8)
                                +* lastKnownCtlSequence of type **INTEGER** (0..255) OPTIONAL
                                + ```asn1 EtsiTs102941CtlRequest::= SEQUENCE { issuerId HashedId8, @@ -77,8 +91,8 @@ EtsiTs102941CtlRequest::= SEQUENCE { } ``` -### EtsiTs102941DeltaCtlRequest +### EtsiTs102941DeltaCtlRequest ```asn1 EtsiTs102941DeltaCtlRequest::= EtsiTs102941CtlRequest ``` diff --git a/docs/EtsiTs103097Module.md b/docs/EtsiTs103097Module.md index 7ee5463..91d7844 100644 --- a/docs/EtsiTs103097Module.md +++ b/docs/EtsiTs103097Module.md @@ -7,8 +7,8 @@ * **[EtsiTs103097ExtensionModule](EtsiTs103097ExtensionModule.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) secHeaders(103097) extension(2) major-version-1(1) minor-version-1(1)}*
                                ## Data Elements: -### EtsiTs103097Certificate +### EtsiTs103097Certificate ```asn1 EtsiTs103097Certificate::= Certificate (WITH COMPONENTS{..., toBeSigned (WITH COMPONENTS{..., @@ -22,8 +22,8 @@ EtsiTs103097Certificate::= Certificate (WITH COMPONENTS{..., }) ``` -### EtsiTs103097Data +### EtsiTs103097Data ```asn1 EtsiTs103097Data::=Ieee1609Dot2Data (WITH COMPONENTS {..., content (WITH COMPONENTS {..., @@ -53,8 +53,8 @@ EtsiTs103097Data::=Ieee1609Dot2Data (WITH COMPONENTS {..., }) ``` -### EtsiTs103097Data-Unsecured +### EtsiTs103097Data-Unsecured ```asn1 EtsiTs103097Data-Unsecured {ToBeSentDataContent} ::= EtsiTs103097Data (WITH COMPONENTS {..., content (WITH COMPONENTS { @@ -63,8 +63,8 @@ EtsiTs103097Data-Unsecured {ToBeSentDataContent} ::= EtsiTs103097Data (WITH COMP }) ``` -### EtsiTs103097Data-Signed +### EtsiTs103097Data-Signed ```asn1 EtsiTs103097Data-Signed {ToBeSignedDataContent} ::= EtsiTs103097Data (WITH COMPONENTS {..., content (WITH COMPONENTS { @@ -83,8 +83,8 @@ EtsiTs103097Data-Signed {ToBeSignedDataContent} ::= EtsiTs103097Data (WITH COMPO }) ``` -### EtsiTs103097Data-SignedExternalPayload +### EtsiTs103097Data-SignedExternalPayload ```asn1 EtsiTs103097Data-SignedExternalPayload ::= EtsiTs103097Data (WITH COMPONENTS {..., content (WITH COMPONENTS { @@ -101,8 +101,8 @@ EtsiTs103097Data-SignedExternalPayload ::= EtsiTs103097Data (WITH COMPONENTS {.. }) ``` -### EtsiTs103097Data-Encrypted +### EtsiTs103097Data-Encrypted ```asn1 EtsiTs103097Data-Encrypted {ToBeEncryptedDataContent} ::= EtsiTs103097Data (WITH COMPONENTS {..., content (WITH COMPONENTS { @@ -117,14 +117,14 @@ EtsiTs103097Data-Encrypted {ToBeEncryptedDataContent} ::= EtsiTs103097Data (WITH }) ``` -### EtsiTs103097Data-SignedAndEncrypted +### EtsiTs103097Data-SignedAndEncrypted ```asn1 EtsiTs103097Data-SignedAndEncrypted {ToBesignedAndEncryptedDataContent} ::= EtsiTs103097Data-Encrypted {EtsiTs103097Data-Signed {ToBesignedAndEncryptedDataContent}} ``` -### EtsiTs103097Data-Encrypted-Unicast +### EtsiTs103097Data-Encrypted-Unicast ```asn1 EtsiTs103097Data-Encrypted-Unicast {ToBeEncryptedDataContent} ::= EtsiTs103097Data-Encrypted { EtsiTs103097Data-Unsecured{ToBeEncryptedDataContent}} (WITH COMPONENTS {..., content (WITH COMPONENTS { @@ -135,8 +135,8 @@ EtsiTs103097Data-Encrypted-Unicast {ToBeEncryptedDataContent} ::= EtsiTs103097Da }) ``` -### EtsiTs103097Data-SignedAndEncrypted-Unicast +### EtsiTs103097Data-SignedAndEncrypted-Unicast ```asn1 EtsiTs103097Data-SignedAndEncrypted-Unicast {ToBesignedAndEncryptedDataContent} ::= EtsiTs103097Data-Encrypted {EtsiTs103097Data-Signed {ToBesignedAndEncryptedDataContent}} (WITH COMPONENTS {..., content (WITH COMPONENTS { diff --git a/docs/EtsiTs103759.md b/docs/EtsiTs103759.md index 58fa773..dc3c791 100644 --- a/docs/EtsiTs103759.md +++ b/docs/EtsiTs103759.md @@ -15,19 +15,38 @@ * **[SaeJ3287AsrBsm](SaeJ3287AsrBsm.md)** *{joint-iso-itu-t (2) country (16) us (840) organization (1) sae (114566) v2x-communications (1) technical-committees (1) v2x-security (4) technical-reports (1) misbehavior-reporting (1) asn1-module (1) aid-specific(2) bsm(32) version-1 (1) version-minor-0 (0)} WITH SUCCESSORS*
                                ## Data Elements: -### EtsiTs103759Data - -* `version` contains the version number of this PDU definition. For this +### EtsiTs103759Data +This data type is the general PDU for a misbehaviour report from an + ITS-S to the MA responsible for reports of that type. AID-specific modules + (EtsiTs103759AsrAppAgnostic, EtsiTs103759AsrCam, EtsiTs103759AsrDenm, + SaeJ3287AsrBsm) have been imported using WITH SUCCESSORS to enable importing + one or more of those modules with minor-version greater than 0 without + requiring any change in the import statements. At least one of these + AID-specific modules shall have minor-version greater than 0. + +Fields: +* version of type [**Uint8**](Ieee1609Dot2BaseTypes.md#Uint8)
                                + 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 +* generationTime of type [**Time64**](Ieee1609Dot2BaseTypes.md#Time64)
                                + contains information on when this PDU was generated. + + + +* observationLocation of type [**ThreeDLocation**](Ieee1609Dot2BaseTypes.md#ThreeDLocation)
                                + 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. + + +* report of type [**AidSpecificReport**](#AidSpecificReport)
                                + contains the AID-specific misbehaviour report. + + ```asn1 EtsiTs103759Data ::= SEQUENCE { version Uint8, @@ -37,8 +56,15 @@ EtsiTs103759Data ::= SEQUENCE { } ``` -### EtsiTs103759Data-SignedAndEncrypted-Unicast +### EtsiTs103759Data-SignedAndEncrypted-Unicast +This structure is the SPDU used to send a signed and encrypted + EtsiTs103759Data to the MA. For the signature to be valid the signing + certificate shall conform to the authorization ticket profile given in + clause 7.2.1 of ETSI TS 103 097 v2.1.1, where the appPermissions field in + the authorization ticket allows signing misbehaviour reports. The signed + EtsiTs103759Data shall be encrypted to the MA using the encryptionKey in + the MA's certificate. ```asn1 EtsiTs103759Data-SignedAndEncrypted-Unicast ::= EtsiTs103097Data-SignedAndEncrypted-Unicast { @@ -46,14 +72,23 @@ EtsiTs103759Data-SignedAndEncrypted-Unicast ::= } ``` -### AidSpecificReport +### 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. +Fields: +* aid of type [**C-ASR**](#C-ASR) .&aid ({SetAsr})
                                + contains the respective ITS-AID. -* `content` contains the report contents, e.g., AsrCam. This will be a + +* content of type [**C-ASR**](#C-ASR) .&Content ({SetAsr}{@.aid})
                                + contains the report contents, e.g., AsrCam. This will be a TemplateAsr instantiated with AID-specific Information Object Sets. + + ```asn1 AidSpecificReport ::= SEQUENCE { aid C-ASR.&aid ({SetAsr}), @@ -61,16 +96,22 @@ AidSpecificReport ::= SEQUENCE { } ``` -### C-ASR +### C-ASR +This data type defines the IOC for AidSpecificReport. -* `aid` contains the globally unique reference identifier of an +Fields: +* aid of type [**Psid**](Ieee1609Dot2BaseTypes.md#Psid) UNIQUE
                                + contains the globally unique reference identifier of an AID-specific misbehaviour report. -* `Content` contains the open type of the PDU identified by aid. This + + contains the open type of the PDU identified by aid. This will be a TemplateAsr instantiated with AID-specific Information Object Sets. + + ```asn1 C-ASR ::= CLASS { &aid Psid UNIQUE, @@ -78,8 +119,10 @@ C-ASR ::= CLASS { } WITH SYNTAX {&Content IDENTIFIED BY &aid} ``` -### SetAsr +### 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. ```asn1 SetAsr C-ASR ::= { {AsrAppAgnostic IDENTIFIED BY c-AsrAppAgnostic} | @@ -90,34 +133,47 @@ SetAsr C-ASR ::= { } ``` -### c-AsrAppAgnostic - >>> -NOTE: This value is used for suspicious observations that are not +NOTE: This value is used for suspicious observations that are not or cannot be linked to a specific application. >>> ```asn1 c-AsrAppAgnostic Psid ::= 270549119 ``` -### c-AsrCam - ```asn1 c-AsrCam Psid ::= 36 ``` -### c-AsrDenm - ```asn1 c-AsrDenm Psid ::= 37 ``` -### c-AsrBsm - ```asn1 c-AsrBsm Psid ::= 32 ``` +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. + This data type defines the IOS for AidSpecificReport. See the ASN.1 + modules where each set is defined for a description of that set. + 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. + This data type contains the ITS-AID of the CA service. + This data type contains the ITS-AID of the DEN service. + This data type contains the ITS-AID of the BSM. +>>> + + diff --git a/docs/EtsiTs103759AsrAppAgnostic.md b/docs/EtsiTs103759AsrAppAgnostic.md index c85274e..6d6e02e 100644 --- a/docs/EtsiTs103759AsrAppAgnostic.md +++ b/docs/EtsiTs103759AsrAppAgnostic.md @@ -2,8 +2,9 @@ OID: _{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-0(0)}_ ## Data Elements: -### AsrAppAgnostic +### AsrAppAgnostic +This data type is defined as NULL for this version of the standard. ```asn1 AsrAppAgnostic ::= NULL ``` diff --git a/docs/EtsiTs103759AsrCam.md b/docs/EtsiTs103759AsrCam.md index 4cfd858..b5a2171 100644 --- a/docs/EtsiTs103759AsrCam.md +++ b/docs/EtsiTs103759AsrCam.md @@ -9,20 +9,19 @@ * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-4(4)} WITH SUCCESSORS*
                                ## Data Elements: -### AsrCam +### AsrCam +This data type is for reporting CAM issues. ```asn1 AsrCam ::= TemplateAsr {{SetMbObsTgtsCam}, {SetMbEvCam}} ``` -### IdCamTgt +### IdCamTgt ```asn1 IdCamTgt ::= Uint8 ``` -### c-CamTgt-BeaconCommon - ```asn1 c-CamTgt-BeaconCommon IdCamTgt ::= 0 c-CamTgt-StaticCommon IdCamTgt ::= 1 @@ -32,8 +31,8 @@ c-CamTgt-SpeedCommon IdCamTgt ::= 4 c-CamTgt-LongAccCommon IdCamTgt ::= 5 ``` -### SetMbObsCamBeacon +### SetMbObsCamBeacon ```asn1 SetMbObsCamBeacon C-ASR-SINGLE-OBS ::= { obs-Beacon-IntervalTooSmall, @@ -41,8 +40,8 @@ SetMbObsCamBeacon C-ASR-SINGLE-OBS ::= { } ``` -### SetMbObsCamStatic +### SetMbObsCamStatic ```asn1 SetMbObsCamStatic C-ASR-SINGLE-OBS ::= { obs-Static-Change, @@ -50,8 +49,8 @@ SetMbObsCamStatic C-ASR-SINGLE-OBS ::= { } ``` -### SetMbObsCamSecurity +### SetMbObsCamSecurity ```asn1 SetMbObsCamSecurity C-ASR-SINGLE-OBS ::= { obs-Security-MessageIdIncWithHeaderInfo | @@ -65,8 +64,8 @@ SetMbObsCamSecurity C-ASR-SINGLE-OBS ::= { } ``` -### SetMbObsCamPosition +### SetMbObsCamPosition ```asn1 SetMbObsCamPosition C-ASR-SINGLE-OBS ::= { obs-Position-ChangeTooLarge, @@ -74,8 +73,8 @@ SetMbObsCamPosition C-ASR-SINGLE-OBS ::= { } ``` -### SetMbObsCamSpeed +### SetMbObsCamSpeed ```asn1 SetMbObsCamSpeed C-ASR-SINGLE-OBS ::= { obs-Speed-ValueTooLarge-VehicleType | @@ -85,8 +84,8 @@ SetMbObsCamSpeed C-ASR-SINGLE-OBS ::= { } ``` -### SetMbObsCamLongAcc +### SetMbObsCamLongAcc ```asn1 SetMbObsCamLongAcc C-ASR-SINGLE-OBS ::= { obs-LongAcc-ValueTooLarge, @@ -94,44 +93,61 @@ SetMbObsCamLongAcc C-ASR-SINGLE-OBS ::= { } ``` -### SetMbObsTgtsCam - -* `SetMbObsCamBeacon` - `Beacon-IntervalTooSmall`: The difference between the generation - time of two consecutive CAMs is less than 80% of the value specified in TS - 103 900 v2.0.0 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. - -* `SetMbObsCamStatic` - `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). - -* `SetMbObsCamSecurity` - `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. - -* `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: - -* `SetMbObsEtsiOnlyLongAcc` - `LongAcc-ValueTooLarge`: The longitudinalAcceleration is greater - than 90 dm/s2. (Typical \mu (coefficient of friction between asphalt and - rubber) is 0.9, so maximum possible acceleration is 0.9*9.8 m/s2, i.e., - 88.2 dm/s2.) - +### SetMbObsTgtsCam +This is a complete set of observations for CAM. Application-specific + trigger conditions and other relevant information are specified below. +- `Security-HeaderIncWithSecurityProfile`: The security headerInfo is + inconsistent with the security profile specified in ETSI TS 103 097 V2.1.1 + (2021-10), 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 not contained in the appPermissions of 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, as specified in TS 103 900 v2.0.0,e.g., + publicTransportContainer is present in the specialVehicleContainer but the + relevant SSP in the certificate does not permit publicTransportContainer. + + - `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. + + + + - `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. ```asn1 SetMbObsTgtsCam C-ASR-OBS-BY-TGT ::= { {MbSingleObservation{{SetMbObsCamBeacon}} BY @@ -150,8 +166,9 @@ SetMbObsTgtsCam C-ASR-OBS-BY-TGT ::= { } ``` -### SetMbEvCam +### SetMbEvCam +This data type defines the IOS for CAM Evidence. ```asn1 SetMbEvCam C-ASR-EV ::= { ... @@ -160,3 +177,6 @@ SetMbEvCam C-ASR-EV ::= { +This data type defines the IOS for CAM Evidence. + + diff --git a/docs/EtsiTs103759AsrDenm.md b/docs/EtsiTs103759AsrDenm.md index f676989..0e37b5a 100644 --- a/docs/EtsiTs103759AsrDenm.md +++ b/docs/EtsiTs103759AsrDenm.md @@ -2,8 +2,9 @@ OID: _{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-0(0)}_ ## Data Elements: -### AsrDenm +### AsrDenm +This data type is defined as NULL for version 0 of this file. ```asn1 AsrDenm ::= NULL ``` diff --git a/docs/EtsiTs103759BaseTypes.md b/docs/EtsiTs103759BaseTypes.md index 2b33d4f..eecb916 100644 --- a/docs/EtsiTs103759BaseTypes.md +++ b/docs/EtsiTs103759BaseTypes.md @@ -7,8 +7,6 @@ * **[Ieee1609Dot2](Ieee1609Dot2.md)** *{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-6(6)} WITH SUCCESSORS*
                                ## Data Elements: -### TemplateAsr - * `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 @@ -28,8 +26,6 @@ ```asn1 -TemplateAsr { - C-ASR-OBS-BY-TGT: ObservationSet, C-ASR-EV: NonV2xPduEvidenceSet } ::= SEQUENCE { observations ObservationsByTargetSequence {{ObservationSet}}, v2xPduEvidence SEQUENCE (SIZE(1..MAX)) OF V2xPduStream, @@ -37,16 +33,24 @@ TemplateAsr { } ``` -### ObservationsByTarget +### 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 +Fields: +* tgtId of type [**C-ASR-OBS-BY-TGT**](EtsiTs103759BaseTypes.md#C-ASR-OBS-BY-TGT) .&id ({SetAsrObsByTgt})
                                + 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. + +* observations of type **SEQUENCE** OF C-ASR-OBS-BY-TGT.&Val ({SetAsrObsByTgt}{@.tgtId})
                                + contains all the observations related to that target. The observations are drawn from the provided Information Object Set. + + ```asn1 ObservationsByTarget {C-ASR-OBS-BY-TGT: SetAsrObsByTgt} ::= SEQUENCE { tgtId C-ASR-OBS-BY-TGT.&id ({SetAsrObsByTgt}), @@ -54,31 +58,40 @@ ObservationsByTarget {C-ASR-OBS-BY-TGT: SetAsrObsByTgt} ::= SEQUENCE { } ``` -### ObservationsByTargetSequence +### ObservationsByTargetSequence ```asn1 ObservationsByTargetSequence { C-ASR-OBS-BY-TGT: SetAsrObsByTgt } ::= SEQUENCE (SIZE(1..MAX)) OF ObservationsByTarget {{ SetAsrObsByTgt }} ``` -### C-ASR-OBS-BY-TGT +### C-ASR-OBS-BY-TGT +This is the Information Object Class used to define observations- + -by-target. ```asn1 C-ASR-OBS-BY-TGT ::= C-2ENT ``` -### MbSingleObservation +### MbSingleObservation +This data type contains a single misbehaviour observation. -* `obsId` identifies the observation within the set of observations +Fields: +* obsId of type [**C-ASR-SINGLE-OBS**](EtsiTs103759BaseTypes.md#C-ASR-SINGLE-OBS) .&id ({SetMbSingleObs})
                                + 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 + +* obs of type [**C-ASR-SINGLE-OBS**](EtsiTs103759BaseTypes.md#C-ASR-SINGLE-OBS) .&Val ({SetMbSingleObs}{@.obsId})
                                + contains any parameters relevant to the observation. The observations are drawn from the provided Information Object Set. + + ```asn1 MbSingleObservation {C-ASR-SINGLE-OBS: SetMbSingleObs} ::= SEQUENCE { obsId C-ASR-SINGLE-OBS.&id ({SetMbSingleObs}), @@ -86,18 +99,21 @@ MbSingleObservation {C-ASR-SINGLE-OBS: SetMbSingleObs} ::= SEQUENCE { } ``` -### C-ASR-SINGLE-OBS +### C-ASR-SINGLE-OBS +This is the Information Object Class used to define single + observations. ```asn1 C-ASR-SINGLE-OBS ::= C-2ENT ``` -### V2xPduStream +### 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 +Fields: +* type of type [**C-OBS-PDU**](#C-OBS-PDU) .&id ({SetObsPdu})
                                +* v2xPdus of type **SEQUENCE** (SIZE(1..255)) OF C-OBS-PDU.&Val ({SetObsPdu}{@.type})
                                + 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, @@ -107,7 +123,10 @@ C-ASR-SINGLE-OBS ::= C-2ENT 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 + + +* certificate of type [**Certificate**](Ieee1609Dot2.md#Certificate) OPTIONAL
                                + 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 @@ -116,10 +135,15 @@ C-ASR-SINGLE-OBS ::= C-2ENT will be in a separate V2xPduStream instance within the v2xPduEvidence field of the TemplateAsr. -* `subjectPduIndex` identifies which PDU within the v2xPdus sequence + + +* subjectPduIndex of type [**Uint8**](Ieee1609Dot2BaseTypes.md#Uint8)
                                + identifies which PDU within the v2xPdus sequence is the "subject PDU", i.e., the PDU associated with the observations. + + ```asn1 V2xPduStream ::= SEQUENCE { type C-OBS-PDU.&id ({SetObsPdu}), @@ -130,14 +154,17 @@ V2xPduStream ::= SEQUENCE { } ``` -### C-OBS-PDU +### C-OBS-PDU +This is the Information Object Class used to define different types + of observed PDUs. ```asn1 C-OBS-PDU ::= C-2ENT ``` -### SetObsPdu +### SetObsPdu +This data type contains the IOS for the observed PDU. ```asn1 SetObsPdu C-OBS-PDU ::= { {ObsPduEtsiGn BY c-ObsPdu-etsiGn} | @@ -146,32 +173,39 @@ SetObsPdu C-OBS-PDU ::= { } ``` -### IdObsPdu - -* `c-ObsPdu-etsiGn` is the identifier for ETSI GeoNetworking. - -* `c-ObsPdu-ieee1609Dot2Data` is the identifier for IEEE 1609.2. - +### IdObsPdu +This data type contains the identifier of the type of observed PDU. ```asn1 IdObsPdu ::= Uint8 c-ObsPdu-etsiGn IdObsPdu ::= 1 c-ObsPdu-ieee1609Dot2Data IdObsPdu ::= 2 ``` -### ObsPduEtsiGn +### ObsPduEtsiGn +ObsPduEtsiGn shall contain an encoded ETSI geonetworking PDU + according to ETSI TS 103 836-4-1, at GeoNetworking level, i.e. without + Access Layer header. ```asn1 ObsPduEtsiGn ::= Opaque ``` -### NonV2xPduEvidenceItem +### NonV2xPduEvidenceItem +This data type contains evidence, which may be referenced by one or + more observations. + +Fields: +* id of type [**C-ASR-EV**](EtsiTs103759BaseTypes.md#C-ASR-EV) .&id ({SetMbEv})
                                + identifies the evidence type. -* `id` identifies the evidence type. -* `evidence` contains the evidence. +* evidence of type [**C-ASR-EV**](EtsiTs103759BaseTypes.md#C-ASR-EV) .&Val ({SetMbEv}{@.id})
                                + contains the evidence. + + ```asn1 NonV2xPduEvidenceItem {C-ASR-EV: SetMbEv} ::= SEQUENCE { id C-ASR-EV.&id ({SetMbEv}), @@ -179,25 +213,31 @@ NonV2xPduEvidenceItem {C-ASR-EV: SetMbEv} ::= SEQUENCE { } ``` -### NonV2xPduEvidenceItemSequence +### NonV2xPduEvidenceItemSequence ```asn1 NonV2xPduEvidenceItemSequence {C-ASR-EV: NonV2xPduEvidenceSet} ::= SEQUENCE (SIZE(0..MAX)) OF NonV2xPduEvidenceItem {{ NonV2xPduEvidenceSet }} ``` -### C-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. +NOTE: No instances of this class are defined in this version of this document. >>> ```asn1 C-ASR-EV ::= C-2ENT ``` -### 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. +Fields: +* id of type [**Uint8**](Ieee1609Dot2BaseTypes.md#Uint8)
                                ```asn1 C-2ENT ::= CLASS { &id Uint8, @@ -207,3 +247,13 @@ C-2ENT ::= CLASS { +This is the Information Object Class used to define evidence. + +>>> +NOTE: No instances of this class are defined in this version of this document. + 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. +>>> + + diff --git a/docs/EtsiTs103759MbrCommonObservations.md b/docs/EtsiTs103759MbrCommonObservations.md index 4f18bb0..9707681 100644 --- a/docs/EtsiTs103759MbrCommonObservations.md +++ b/docs/EtsiTs103759MbrCommonObservations.md @@ -7,94 +7,223 @@ * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-4(4)} WITH SUCCESSORS*
                                ## Data Elements: -### IdMbObs +### IdMbObs +Identifier type for observations: synonym for Uint8 ```asn1 IdMbObs ::= Uint8 ``` -### Beacon-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. ```asn1 Beacon-IntervalTooSmall ::= NULL ``` -### c-ObsBeacon-IntervalTooSmall - ```asn1 c-ObsBeacon-IntervalTooSmall IdMbObs::= 1 ``` -### obs-Beacon-IntervalTooSmall - ```asn1 obs-Beacon-IntervalTooSmall C-ASR-SINGLE-OBS ::= {Beacon-IntervalTooSmall BY c-ObsBeacon-IntervalTooSmall} ``` -### Static-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. ```asn1 Static-Change ::= BIT STRING ``` -### c-ObsStatic-Change - ```asn1 c-ObsStatic-Change IdMbObs::= 1 ``` -### obs-Static-Change - ```asn1 obs-Static-Change C-ASR-SINGLE-OBS ::= {Static-Change BY c-ObsStatic-Change} ``` -### Security-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. ```asn1 Security-MessageIdIncWithHeaderInfo ::= NULL ``` -### Security-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. ```asn1 Security-HeaderIncWithSecurityProfile ::= NULL ``` -### Security-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. ```asn1 Security-HeaderPsidIncWithCertificate ::= NULL ``` -### Security-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. ```asn1 Security-MessageIncWithSsp ::= NULL ``` -### Security-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. ```asn1 Security-HeaderTimeOutsideCertificateValidity ::= NULL ``` -### Security-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. ```asn1 Security-MessageLocationOutsideCertificateValidity ::= NULL ``` -### Security-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. ```asn1 Security-HeaderLocationOutsideCertificateValidity ::= NULL ``` -### c-ObsSecurity-MessageIdIncWithHeaderInfo - ```asn1 c-ObsSecurity-MessageIdIncWithHeaderInfo IdMbObs ::= 1 c-ObsSecurity-HeaderIncWithSecurityProfile IdMbObs ::= 2 @@ -105,8 +234,6 @@ c-ObsSecurity-MessageLocationOutsideCertificateValidity IdMbObs ::= 6 c-ObsSecurity-HeaderLocationOutsideCertificateValidity IdMbObs ::= 7 ``` -### obs-Security-MessageIdIncWithHeaderInfo - ```asn1 obs-Security-MessageIdIncWithHeaderInfo C-ASR-SINGLE-OBS ::= { Security-MessageIdIncWithHeaderInfo BY @@ -114,8 +241,6 @@ obs-Security-MessageIdIncWithHeaderInfo C-ASR-SINGLE-OBS ::= { } ``` -### obs-Security-HeaderIncWithSecurityProfile - ```asn1 obs-Security-HeaderIncWithSecurityProfile C-ASR-SINGLE-OBS ::= { Security-HeaderIncWithSecurityProfile BY @@ -123,8 +248,6 @@ obs-Security-HeaderIncWithSecurityProfile C-ASR-SINGLE-OBS ::= { } ``` -### obs-Security-HeaderPsidIncWithCertificate - ```asn1 obs-Security-HeaderPsidIncWithCertificate C-ASR-SINGLE-OBS ::= { Security-HeaderPsidIncWithCertificate BY @@ -132,16 +255,12 @@ obs-Security-HeaderPsidIncWithCertificate C-ASR-SINGLE-OBS ::= { } ``` -### obs-Security-MessageIncWithSsp - ```asn1 obs-Security-MessageIncWithSsp C-ASR-SINGLE-OBS ::= { Security-MessageIncWithSsp BY c-ObsSecurity-MessageIncWithSsp } ``` -### obs-Security-HeaderTimeOutsideCertificateValidity - ```asn1 obs-Security-HeaderTimeOutsideCertificateValidity C-ASR-SINGLE-OBS ::= { Security-HeaderTimeOutsideCertificateValidity BY @@ -149,82 +268,132 @@ obs-Security-HeaderTimeOutsideCertificateValidity C-ASR-SINGLE-OBS ::= { } ``` -### obs-Security-MessageLocationOutsideCertificateValidity +### C-ASR-SINGLE-OBS +Fields: +* Security-MessageLocationOutsideCertificateValidity of type [**BY**](#BY)
                                ```asn1 -obs-Security-MessageLocationOutsideCertificateValidity - C-ASR-SINGLE-OBS ::= { +C-ASR-SINGLE-OBS ::= { Security-MessageLocationOutsideCertificateValidity BY c-ObsSecurity-MessageLocationOutsideCertificateValidity } ``` -### obs-Security-HeaderLocationOutsideCertificateValidity +### C-ASR-SINGLE-OBS +Fields: +* Security-HeaderLocationOutsideCertificateValidity of type [**BY**](#BY)
                                ```asn1 -obs-Security-HeaderLocationOutsideCertificateValidity - C-ASR-SINGLE-OBS ::= { +C-ASR-SINGLE-OBS ::= { Security-HeaderLocationOutsideCertificateValidity BY c-ObsSecurity-HeaderLocationOutsideCertificateValidity } ``` -### Position-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. ```asn1 Position-ChangeTooLarge ::= NULL ``` -### c-ObsPosition-ChangeTooLarge - ```asn1 c-ObsPosition-ChangeTooLarge IdMbObs ::= 4 ``` -### obs-Position-ChangeTooLarge - ```asn1 obs-Position-ChangeTooLarge C-ASR-SINGLE-OBS ::= { Position-ChangeTooLarge BY c-ObsPosition-ChangeTooLarge } ``` -### Speed-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. ```asn1 Speed-ValueTooLarge-VehicleType ::= NULL ``` -### Speed-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. ```asn1 Speed-ValueTooLarge-DriveDirectionReverse ::= NULL ``` -### Speed-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. ```asn1 Speed-ChangeTooLarge ::= NULL ``` -### c-ObsSpeed-ValueTooLarge-VehicleType - ```asn1 c-ObsSpeed-ValueTooLarge-VehicleType IdMbObs::= 3 c-ObsSpeed-ValueTooLarge-DriveDirectionReverse IdMbObs::= 4 c-ObsSpeed-ChangeTooLarge IdMbObs::= 5 ``` -### obs-Speed-ValueTooLarge-VehicleType - ```asn1 obs-Speed-ValueTooLarge-VehicleType C-ASR-SINGLE-OBS ::= { Speed-ValueTooLarge-VehicleType BY c-ObsSpeed-ValueTooLarge-VehicleType } ``` -### obs-Speed-ValueTooLarge-DriveDirectionReverse - ```asn1 obs-Speed-ValueTooLarge-DriveDirectionReverse C-ASR-SINGLE-OBS ::= { Speed-ValueTooLarge-DriveDirectionReverse BY @@ -232,28 +401,36 @@ obs-Speed-ValueTooLarge-DriveDirectionReverse C-ASR-SINGLE-OBS ::= { } ``` -### obs-Speed-ChangeTooLarge - ```asn1 obs-Speed-ChangeTooLarge C-ASR-SINGLE-OBS ::= { Speed-ChangeTooLarge BY c-ObsSpeed-ChangeTooLarge } ``` -### LongAcc-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. ```asn1 LongAcc-ValueTooLarge ::= NULL ``` -### c-ObsLongAcc-ValueTooLarge - ```asn1 c-ObsLongAcc-ValueTooLarge IdMbObs::= 4 ``` -### obs-LongAcc-ValueTooLarge - ```asn1 obs-LongAcc-ValueTooLarge C-ASR-SINGLE-OBS ::= { LongAcc-ValueTooLarge BY c-ObsLongAcc-ValueTooLarge diff --git a/docs/Ieee1609Dot2.md b/docs/Ieee1609Dot2.md index f30a5c3..9f4a789 100644 --- a/docs/Ieee1609Dot2.md +++ b/docs/Ieee1609Dot2.md @@ -4,23 +4,32 @@ 1609.2 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2. + ## Imports: * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-4(4)} WITH SUCCESSORS*
                                * **[EtsiTs103097ExtensionModule](EtsiTs103097ExtensionModule.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) secHeaders(103097) extension(2) major-version-1(1) minor-version-0(0)} WITH SUCCESSORS*
                                ## Data Elements: -### Ieee1609Dot2Data +### 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 +Fields: +* protocolVersion of type [**Uint8**](Ieee1609Dot2BaseTypes.md#Uint8) (3)
                                + contains the current version of the protocol. The version specified in this standard 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. +* content of type [**Ieee1609Dot2Content**](#Ieee1609Dot2Content)
                                + contains the content in the form of an Ieee1609Dot2Content. + + + >>> -NOTE: Canonicalization: This data structure is subject to canonicalization +NOTE: Canonicalization: This data structure is subject to canonicalization for the relevant operations specified in 6.1.2. The canonicalization applies to the Ieee1609Dot2Content. >>> @@ -31,26 +40,43 @@ Ieee1609Dot2Data ::= SEQUENCE { } ``` -### Ieee1609Dot2Content +### Ieee1609Dot2Content +In this structure: -* `unsecuredData` indicates that the content is an OCTET STRING to be +Fields: +* unsecuredData of type [**Opaque**](Ieee1609Dot2BaseTypes.md#Opaque)
                                + indicates that the content is an OCTET STRING to be consumed outside the SDS. -* `signedData` indicates that the content has been signed according to + +* signedData of type [**SignedData**](#SignedData)
                                + indicates that the content has been signed according to this standard. -* `encryptedData` indicates that the content has been encrypted + + +* encryptedData of type [**EncryptedData**](#EncryptedData)
                                + indicates that the content has been encrypted according to this standard. -* `signedCertificateRequest` indicates that the content is a + + +* signedCertificateRequest of type [**Opaque**](Ieee1609Dot2BaseTypes.md#Opaque)
                                + indicates that the content is a certificate request signed by an IEEE 1609.2 certificate or self-signed. -* `signedX509CertificateRequest` indicates that the content is a + + +* signedX509CertificateRequest of type [**Opaque**](Ieee1609Dot2BaseTypes.md#Opaque)
                                + indicates that the content is a certificate request signed by an ITU-T X.509 certificate. + + ..., + >>> -NOTE: Canonicalization: This data structure is subject to canonicalization +NOTE: Canonicalization: This data structure is subject to canonicalization for the relevant operations specified in 6.1.2 if it is of type signedData. The canonicalization applies to the SignedData. >>> @@ -65,17 +91,28 @@ Ieee1609Dot2Content ::= CHOICE { } ``` -### SignedData +### SignedData +In this structure: -* `hashId` indicates the hash algorithm to be used to generate the hash +Fields: +* hashId of type [**HashAlgorithm**](Ieee1609Dot2BaseTypes.md#HashAlgorithm)
                                + 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 +* tbsData of type [**ToBeSignedData**](#ToBeSignedData)
                                + contains the data that is hashed as input to the signature. + + + +* signer of type [**SignerIdentifier**](#SignerIdentifier)
                                + determines the keying material and hash algorithm used to sign the data. -* `signature` contains the digital signature itself, calculated as + + +* signature of type [**Signature**](Ieee1609Dot2BaseTypes.md#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: @@ -93,8 +130,10 @@ Ieee1609Dot2Content ::= CHOICE { to the encoding considerations given in 6.4.3. + + >>> -NOTE: Canonicalization: This data structure is subject to canonicalization +NOTE: Canonicalization: This data structure is subject to canonicalization for the relevant operations specified in 6.1.2. The canonicalization applies to the ToBeSignedData and the Signature. >>> @@ -107,12 +146,19 @@ SignedData ::= SEQUENCE { } ``` -### ToBeSignedData +### 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. -* `payload` contains data that is provided by the entity that invokes +Fields: +* payload of type [**SignedDataPayload**](#SignedDataPayload)
                                + contains data that is provided by the entity that invokes the SDS. -* `headerInfo` contains additional data that is inserted by the SDS. + +* headerInfo of type [**HeaderInfo**](#HeaderInfo)
                                + contains additional data that is inserted by the SDS. This structure is used as follows to determine the "data input" to the hash operation for signing or verification as specified in 5.3.1.2.2 or 5.3.1.3. @@ -130,8 +176,10 @@ SignedData ::= SEQUENCE { omitted payload are out of scope for this standard. + + >>> -NOTE: Canonicalization: This data structure is subject to canonicalization +NOTE: Canonicalization: This data structure is subject to canonicalization for the relevant operations specified in 6.1.2. The canonicalization applies to the SignedDataPayload if it is of type data, and to the HeaderInfo. @@ -143,22 +191,42 @@ ToBeSignedData ::= SEQUENCE { } ``` -### SignedDataPayload - -* `data` contains data that is explicitly transported within the +### SignedDataPayload +This structure contains the data payload of a ToBeSignedData. This + structure contains at least one of the optional elements, and may contain + more than one. See 5.2.4.3.4 for more details. + The security profile in Annex C allows an implementation of this standard + to state which forms of Signed¬Data¬Payload are supported by that + implementation, and also how the signer and verifier are intended to obtain + the external data for hashing. The specification of an SDEE that uses + external data is expected to be explicit and unambiguous about how this + data is obtained and how it is formatted prior to processing by the hash + function. + +Fields: +* data of type [**Ieee1609Dot2Data**](Ieee1609Dot2.md#Ieee1609Dot2Data) OPTIONAL
                                + contains data that is explicitly transported within the structure. -* `extDataHash` contains the hash of data that is not explicitly + +* extDataHash of type [**HashedData**](#HashedData) OPTIONAL
                                + 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. -* `omitted` indicates that there is external data to be included in the + + +* omitted of type **NULL** OPTIONAL
                                + indicates that there is external data to be included in the hash calculation for the signature.The mechanism for including the external data in the hash calculation is specified in 6.3.6. + + ..., + >>> -NOTE: Canonicalization: This data structure is subject to canonicalization +NOTE: Canonicalization: This data structure is subject to canonicalization for the relevant operations specified in 6.1.2. The canonicalization applies to the Ieee1609Dot2Data. >>> @@ -173,17 +241,29 @@ SignedDataPayload ::= SEQUENCE { WITH COMPONENTS {..., omitted PRESENT}) ``` -### HashedData +### HashedData +This structure contains the hash of some data with a specified hash + algorithm. See 5.3.3 for specification of the permitted hash algorithms. + +Fields: +* sha256HashedData of type [**HashedId32**](Ieee1609Dot2BaseTypes.md#HashedId32)
                                + indicates data hashed with SHA-256. + -* `sha256HashedData` indicates data hashed with SHA-256. +* sha384HashedData of type [**HashedId48**](Ieee1609Dot2BaseTypes.md#HashedId48)
                                + indicates data hashed with SHA-384. -* `sha384HashedData` indicates data hashed with SHA-384. -* `sm3HashedData` indicates data hashed with SM3. + + ..., +* sm3HashedData of type [**HashedId32**](Ieee1609Dot2BaseTypes.md#HashedId32)
                                + indicates data hashed with SM3. + + >>> -NOTE: Critical information fields: If present, this is a critical +NOTE: 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 in the sense of 4.2.2.3.2, @@ -198,24 +278,39 @@ HashedData::= CHOICE { } ``` -### HeaderInfo +### HeaderInfo +This structure contains information that is used to establish + validity by the criteria of 5.2. -* `psid` indicates the application area with which the sender is +Fields: +* psid of type [**Psid**](Ieee1609Dot2BaseTypes.md#Psid)
                                + indicates the application area with which the sender is claiming the payload is to be associated. -* `generationTime` indicates the time at which the structure was + +* generationTime of type [**Time64**](Ieee1609Dot2BaseTypes.md#Time64) OPTIONAL
                                + 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 + + +* expiryTime of type [**Time64**](Ieee1609Dot2BaseTypes.md#Time64) OPTIONAL
                                + if present, contains the time after which the data is no longer 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 + + +* generationLocation of type [**ThreeDLocation**](Ieee1609Dot2BaseTypes.md#ThreeDLocation) OPTIONAL
                                + if present, contains the location at which the signature was generated. -* `p2pcdLearningRequest` if present, is used by the SDS to request + + +* p2pcdLearningRequest of type [**HashedId3**](Ieee1609Dot2BaseTypes.md#HashedId3) OPTIONAL
                                + if present, is used by the SDS to request certificates for which it has seen identifiers and 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 @@ -225,12 +320,18 @@ HashedData::= CHOICE { applied to the COER-encoded certificate, canonicalized as defined in the definition of Certificate. -* `missingCrlIdentifier` if present, is used by the SDS to request + + +* missingCrlIdentifier of type [**MissingCrlIdentifier**](#MissingCrlIdentifier) OPTIONAL
                                + if present, is used by the SDS to request CRLs which it knows to have been issued and 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 provide a key that is to + + +* encryptionKey of type [**EncryptionKey**](Ieee1609Dot2BaseTypes.md#EncryptionKey) OPTIONAL
                                + if present, is used to provide a key that is to be used to encrypt at least one response to this SPDU. The SDEE specification is expected to specify which response SPDUs are to be encrypted with this key. One possible use of this key to encrypt a @@ -238,7 +339,10 @@ HashedData::= CHOICE { field of type symmetric should only be used if the SignedData containing this field is securely encrypted by some means. -* `inlineP2pcdRequest` if present, is used by the SDS to request + + +* inlineP2pcdRequest of type [**SequenceOfHashedId3**](Ieee1609Dot2BaseTypes.md#SequenceOfHashedId3) OPTIONAL
                                + 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 @@ -246,20 +350,32 @@ HashedData::= CHOICE { to the COER-encoded certificate, canonicalized as defined in the definition of Certificate. -* `requestedCertificate` if present, is used by the SDS to provide + + + ..., +* requestedCertificate of type [**Certificate**](Ieee1609Dot2.md#Certificate) OPTIONAL
                                + 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 + + +* pduFunctionalType of type [**PduFunctionalType**](#PduFunctionalType) OPTIONAL
                                + 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 contain additional + + +* contributedExtensions of type [**ContributedExtensionBlocks**](#ContributedExtensionBlocks) OPTIONAL
                                + if present, is used to contain additional extensions defined using the ContributedExtensionBlocks structure. + + >>> -NOTE: Canonicalization: This data structure is subject to canonicalization +NOTE: Canonicalization: This data structure is subject to canonicalization for the relevant operations specified in 6.1.2. The canonicalization applies to the EncryptionKey. If encryptionKey is present, and indicates the choice public, and contains a BasePublicEncryptionKey that is an @@ -287,17 +403,26 @@ HeaderInfo ::= SEQUENCE { } ``` -### MissingCrlIdentifier +### MissingCrlIdentifier +This structure may be used to request a CRL that the SSME knows to + have been issued and 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 +Fields: +* cracaId of type [**HashedId3**](Ieee1609Dot2BaseTypes.md#HashedId3)
                                + 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, applied to the COER-encoded certificate, canonicalized as defined in the definition of Certificate. -* `crlSeries` is the requested CRL Series value. See 5.1.3 for more + +* crlSeries of type [**CrlSeries**](Ieee1609Dot2BaseTypes.md#CrlSeries)
                                + is the requested CRL Series value. See 5.1.3 for more information. + + ```asn1 MissingCrlIdentifier ::= SEQUENCE { cracaId HashedId3, @@ -306,56 +431,52 @@ MissingCrlIdentifier ::= SEQUENCE { } ``` -### PduFunctionalType - -* `tlsHandshake` indicates that the Signed SPDU is not to be directly - consumed as an application PDU and is to be used to provide information - about the holderÂ’s permissions to a Transport Layer Security (TLS) - (IETF 5246 [B15], IETF 8446 [B16]) handshake process operating to secure - communications to an application process. See IETF [B15] and ISO 21177 - [B20] for further information. - -* `iso21177ExtendedAuth` indicates that the Signed SPDU is not to be - directly consumed as an application PDU and 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 [B20] for - further information. - -* `iso21177SessionExtension` indicates that the Signed SPDU is not to - be directly consumed as an application PDU and is to be used to extend an - existing ISO 21177 secure session. This enables a secure session to - persist beyond the lifetime of the certificates used to establish that - session. - +### 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, and are instead security support services for an + application process. Further details and the intended use of this field are + defined in ISO 21177 [B20]. ```asn1 PduFunctionalType ::= INTEGER (0..255) ``` -### tlsHandshake - ```asn1 tlsHandshake PduFunctionalType ::= 1 iso21177ExtendedAuth PduFunctionalType ::= 2 iso21177SessionExtension PduFunctionalType ::= 3 ``` -### ContributedExtensionBlocks +### ContributedExtensionBlocks +This type is used for clarity of definitions. ```asn1 ContributedExtensionBlocks ::= SEQUENCE (SIZE(1..MAX)) OF ContributedExtensionBlock ``` -### 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. + +Fields: +* contributorId of type [**IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION**](#IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION) .&id({ + Ieee1609Dot2HeaderInfoContributedExtensions + })
                                + uniquely identifies the contributor. -* `contributorId` uniquely identifies the contributor. -* `extns` contains a list of extensions from that contributor. +* extns of type **SEQUENCE** (SIZE(1..MAX)) OF
                                + contains a list of extensions from that contributor. Extensions are expected and not required to follow the format specified in 6.5. + + ```asn1 ContributedExtensionBlock ::= SEQUENCE { contributorId IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION.&id({ @@ -368,8 +489,12 @@ ContributedExtensionBlock ::= SEQUENCE { } ``` -### IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION +### IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION +This Information Object Class defines the class that provides a + template for defining extension blocks. +Fields: +* id of type [**HeaderInfoContributorId**](#HeaderInfoContributorId) UNIQUE
                                ```asn1 IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION ::= CLASS { &id HeaderInfoContributorId UNIQUE, @@ -377,8 +502,13 @@ IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION ::= CLASS { } WITH SYNTAX {&Extn IDENTIFIED BY &id} ``` -### Ieee1609Dot2HeaderInfoContributedExtensions +### Ieee1609Dot2HeaderInfoContributedExtensions +This structure is an ASN.1 Information Object Set listing the + defined contributed extension types and the associated + HeaderInfoContributorId values. In this version of this standard two + extension types are defined: Ieee1609ContributedHeaderInfoExtension and + EtsiOriginatingHeaderInfoExtension. ```asn1 Ieee1609Dot2HeaderInfoContributedExtensions IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION ::= { @@ -390,22 +520,33 @@ Ieee1609Dot2HeaderInfoContributedExtensions } ``` -### HeaderInfoContributorId +### HeaderInfoContributorId +This is an integer used to identify a HeaderInfo extension + contributing organization. In this version of this standard two values are + defined: + - ieee1609OriginatingExtensionId indicating extensions originating with + IEEE 1609. + - etsiOriginatingExtensionId indicating extensions originating with + ETSI TC ITS. ```asn1 HeaderInfoContributorId ::= INTEGER (0..255) ``` -### ieee1609HeaderInfoContributorId - ```asn1 ieee1609HeaderInfoContributorId HeaderInfoContributorId ::= 1 etsiHeaderInfoContributorId HeaderInfoContributorId ::= 2 ``` -### SignerIdentifier +### 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. -* `digest` If the choice indicated is digest: +Fields: +* digest of type [**HashedId8**](Ieee1609Dot2BaseTypes.md#HashedId8)
                                + 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. @@ -413,7 +554,9 @@ etsiHeaderInfoContributorId HeaderInfoContributorId ::= 2 passed to the hash function as specified in 5.3.1 is the authorization certificate. -* `certificate` If the choice indicated is certificate: + +* certificate of type [**SequenceOfCertificate**](#SequenceOfCertificate)
                                + 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. @@ -421,14 +564,19 @@ etsiHeaderInfoContributorId HeaderInfoContributorId ::= 2 passed to the hash function as specified in 5.3.1 is the authorization certificate. -* `self` If the choice indicated is self: + + +* self of type **NULL**
                                + 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. + + >>> -NOTE: Canonicalization: This data structure is subject to canonicalization +NOTE: Canonicalization: This data structure is subject to canonicalization for the relevant operations specified in 6.1.2. The canonicalization applies to every Certificate in the certificate field. >>> @@ -441,8 +589,13 @@ SignerIdentifier ::= CHOICE { } ``` -### Countersignature +### 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. ```asn1 Countersignature ::= Ieee1609Dot2Data (WITH COMPONENTS {..., content (WITH COMPONENTS {..., @@ -466,19 +619,28 @@ Countersignature ::= Ieee1609Dot2Data (WITH COMPONENTS {..., }) ``` -### EncryptedData +### 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 5.3.4. -* `recipients` contains one or more RecipientInfos. These entries may +Fields: +* recipients of type [**SequenceOfRecipientInfo**](#SequenceOfRecipientInfo)
                                + contains one or more RecipientInfos. These entries may be more than one RecipientInfo, and more than one type of RecipientInfo, as long as all entries are indicating or containing the same data encryption key. -* `ciphertext` contains the encrypted data. This is the encryption of + +* ciphertext of type [**SymmetricCiphertext**](#SymmetricCiphertext)
                                + contains the encrypted data. This is the encryption of an encoded Ieee1609Dot2Data structure as specified in 5.3.4.2. + + >>> -NOTE: If the plaintext is raw data, i.e., it has not been output from a +NOTE: If the plaintext is raw data, i.e., it has not been output from a previous operation of the SDS, then it is trivial to encapsulate it in an Ieee1609Dot2Data of type unsecuredData as noted in 4.2.2.2.2. For example, '03 80 08 01 23 45 67 89 AB CD EF' is the C-OER encoding of '01 23 45 67 @@ -494,15 +656,32 @@ EncryptedData ::= SEQUENCE { } ``` -### RecipientInfo +### 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 5.3.4. The other options are selected if the + EncryptedData was encrypted using the ephemeral encryption key approach + specified in 5.3.4. 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 data was encrypted directly using a pre-shared +Fields: +* pskRecipInfo of type [**PreSharedKeyRecipientInfo**](#PreSharedKeyRecipientInfo)
                                + The data was encrypted directly using a pre-shared symmetric key. -* `symmRecipInfo` The data was encrypted with a data encryption key, + +* symmRecipInfo of type [**SymmRecipientInfo**](#SymmRecipientInfo)
                                + The data was encrypted with a data encryption key, and the data encryption key was encrypted using a symmetric key. -* `certRecipInfo` The data was encrypted with a data encryption key, + + +* certRecipInfo of type [**PKRecipientInfo**](#PKRecipientInfo)
                                + The data was encrypted with a data encryption key, 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.5 is the hash of the @@ -510,7 +689,10 @@ EncryptedData ::= SEQUENCE { determined as described in 6.4.3, applied to the COER-encoded certificate, canonicalized as defined in the definition of Certificate. -* `signedDataRecipInfo` The data was encrypted with a data encryption + + +* signedDataRecipInfo of type [**PKRecipientInfo**](#PKRecipientInfo)
                                + The data was encrypted with a data encryption key, the data encryption key was encrypted using a public key encryption scheme, where the public encryption key was obtained as the public response encryption key from a SignedData. In this case, if ECIES is the encryption @@ -519,7 +701,10 @@ EncryptedData ::= SEQUENCE { response encryption key, canonicalized as defined in the definition of Ieee1609Dot2Data. -* `rekRecipInfo` The data was encrypted with a data encryption key, + + +* rekRecipInfo of type [**PKRecipientInfo**](#PKRecipientInfo)
                                + The data was encrypted with a data encryption key, the data encryption key was encrypted using a public key encryption scheme, where the public encryption key was not obtained from a Signed-Data or a certificate. In this case, the SDEE specification is expected to specify @@ -528,8 +713,10 @@ EncryptedData ::= SEQUENCE { empty string. + + >>> -NOTE: The material input to encryption is the bytes of the encryption key +NOTE: The material input to encryption is the bytes of the encryption key with no headers, encapsulation, or length indication. Contrast this to encryption of data, where the data is encapsulated in an Ieee1609Dot2Data. >>> @@ -543,21 +730,32 @@ RecipientInfo ::= CHOICE { } ``` -### SequenceOfRecipientInfo +### SequenceOfRecipientInfo +This type is used for clarity of definitions. ```asn1 SequenceOfRecipientInfo ::= SEQUENCE OF RecipientInfo ``` -### PreSharedKeyRecipientInfo +### 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 hash of the COER encoding of a + SymmetricEncryptionKey structure containing the symmetric key in question. + The HashedId8 is calculated with the hash algorithm determined as + specified in 5.3.9.3. The symmetric key may be established by any + appropriate means agreed by the two parties to the exchange. ```asn1 PreSharedKeyRecipientInfo ::= HashedId8 ``` -### SymmRecipientInfo +### SymmRecipientInfo +This data structure contains the following fields: -* `recipientId` contains the hash of the symmetric key encryption key +Fields: +* recipientId of type [**HashedId8**](Ieee1609Dot2BaseTypes.md#HashedId8)
                                + 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 hash of the COER encoding of a SymmetricEncryptionKey structure containing the symmetric key in question. @@ -565,12 +763,16 @@ PreSharedKeyRecipientInfo ::= HashedId8 specified in 5.3.9.4. 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 a + +* encKey of type [**SymmetricCiphertext**](#SymmetricCiphertext)
                                + contains the encrypted data encryption key within a SymmetricCiphertext, where the data encryption key is input to the data encryption key encryption process with no headers, encapsulation, or length indication. + + ```asn1 SymmRecipientInfo ::= SEQUENCE { recipientId HashedId8, @@ -578,9 +780,12 @@ SymmRecipientInfo ::= SEQUENCE { } ``` -### PKRecipientInfo +### PKRecipientInfo +This data structure contains the following fields: -* `recipientId` contains the hash of the container for the encryption +Fields: +* recipientId of type [**HashedId8**](Ieee1609Dot2BaseTypes.md#HashedId8)
                                + 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, @@ -598,11 +803,15 @@ SymmRecipientInfo ::= SEQUENCE { structure containing the response encryption key. The HashedId8 is calculated with the hash algorithm determined as specified in 5.3.9.5. -* `encKey` contains the encrypted data encryption key, where the data + +* encKey of type [**EncryptedDataEncryptionKey**](#EncryptedDataEncryptionKey)
                                + contains the encrypted data encryption key, where the data encryption key is input to the data encryption key encryption process with no headers, encapsulation, or length indication. + + ```asn1 PKRecipientInfo ::= SEQUENCE { recipientId HashedId8, @@ -610,8 +819,27 @@ PKRecipientInfo ::= SEQUENCE { } ``` -### EncryptedDataEncryptionKey +### EncryptedDataEncryptionKey +This data structure contains an encrypted data encryption key, + where the data encryption key is input to the data encryption key + encryption process with no headers, encapsulation, or length indication. + + 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. + +Fields: +* eciesNistP256 of type [**EciesP256EncryptedKey**](Ieee1609Dot2BaseTypes.md#EciesP256EncryptedKey)
                                +* eciesBrainpoolP256r1 of type [**EciesP256EncryptedKey**](Ieee1609Dot2BaseTypes.md#EciesP256EncryptedKey)
                                + +* ecencSm2256 of type [**EcencP256EncryptedKey**](Ieee1609Dot2BaseTypes.md#EcencP256EncryptedKey)
                                + + ..., ```asn1 EncryptedDataEncryptionKey ::= CHOICE { eciesNistP256 EciesP256EncryptedKey, @@ -621,11 +849,18 @@ EncryptedDataEncryptionKey ::= CHOICE { } ``` -### SymmetricCiphertext +### SymmetricCiphertext +This data structure encapsulates a ciphertext generated with an + approved symmetric algorithm. +Fields: +* aes128ccm of type [**One28BitCcmCiphertext**](#One28BitCcmCiphertext)
                                +* sm4Ccm of type [**One28BitCcmCiphertext**](#One28BitCcmCiphertext)
                                + + ..., >>> -NOTE: Critical information fields: If present, this is a critical +NOTE: 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 indicate that the signed SPDU is invalid in the sense of 4.2.2.3.2, @@ -639,15 +874,34 @@ SymmetricCiphertext ::= CHOICE { } ``` -### One28BitCcmCiphertext +### One28BitCcmCiphertext +This data structure encapsulates an encrypted ciphertext for any + symmetric algorithm with 128-bit blocks in CCM mode. The ciphertext is + 16 bytes longer than the corresponding plaintext due to the inclusion of + the message authentication code (MAC). The plaintext resulting from a + correct decryption of the ciphertext is either a COER-encoded + Ieee1609Dot2Data structure (see 6.3.41), or a 16-byte symmetric key + (see 6.3.44). + -* `nonce` contains the nonce N as specified in 5.3.8. + The ciphertext is 16 bytes longer than the corresponding plaintext. -* `ccmCiphertext` contains the ciphertext C as specified in 5.3.8. + The plaintext resulting from a correct decryption of the + ciphertext is a COER-encoded Ieee1609Dot2Data structure. +Fields: +* nonce of type **OCTET STRING** (SIZE (12))
                                + contains the nonce N as specified in 5.3.8. + + +* ccmCiphertext of type [**Opaque**](Ieee1609Dot2BaseTypes.md#Opaque)
                                + contains the ciphertext C as specified in 5.3.8. + + + >>> -NOTE: In the name of this structure, "One28" indicates that the +NOTE: In the name of this structure, "One28" indicates that the symmetric cipher block size is 128 bits. It happens to also be the case that the keys used for both AES-128-CCM and SM4-CCM are also 128 bits long. This is, however, not what “One28” refers to. Since the cipher is used in @@ -662,57 +916,69 @@ One28BitCcmCiphertext ::= SEQUENCE { } ``` -### Aes128CcmCiphertext +### Aes128CcmCiphertext +This type is defined only for backwards compatibility. ```asn1 Aes128CcmCiphertext ::= One28BitCcmCiphertext ``` -### Certificate +### TestCertificate +This structure is a profile of the structure CertificateBase which + specifies the valid combinations of fields to transmit implicit and + explicit certificates. >>> -NOTE: Canonicalization: This data structure is subject to canonicalization +NOTE: Canonicalization: This data structure is subject to canonicalization for the relevant operations specified in 6.1.2. The canonicalization applies to the CertificateBase. >>> -```asn1 -Certificate ::= - CertificateBase (ImplicitCertificate | ExplicitCertificate) -``` - -### TestCertificate - ```asn1 TestCertificate ::= Certificate ``` -### SequenceOfCertificate +### SequenceOfCertificate +This type is used for clarity of definitions. ```asn1 SequenceOfCertificate ::= SEQUENCE OF Certificate ``` -### CertificateBase +### CertificateBase +The fields in this structure have the following meaning: -* `version` contains the version of the certificate format. In this +Fields: +* version of type [**Uint8**](Ieee1609Dot2BaseTypes.md#Uint8) (3)
                                + 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 + +* type of type [**CertificateType**](#CertificateType)
                                + 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 + +* issuer of type [**IssuerIdentifier**](#IssuerIdentifier)
                                + identifies the issuer of the certificate. + + + +* toBeSigned of type [**ToBeSignedCertificate**](#ToBeSignedCertificate)
                                + 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 of type [**Signature**](Ieee1609Dot2BaseTypes.md#Signature) OPTIONAL
                                + 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. @@ -726,8 +992,10 @@ SequenceOfCertificate ::= SEQUENCE OF Certificate Canonicalization section of this subclause. + + >>> -NOTE: Whole-certificate hash: If the entirety of a certificate is hashed +NOTE: 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 method used to determine the whole-certificate hash algorithm is specified in 5.3.9.2. @@ -742,11 +1010,13 @@ CertificateBase ::= SEQUENCE { } ``` -### CertificateType +### CertificateType +This enumerated type indicates whether a certificate is explicit or + implicit. >>> -NOTE: Critical information fields: If present, this is a critical +NOTE: 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 in the sense of 4.2.2.3.2, @@ -761,8 +1031,10 @@ CertificateType ::= ENUMERATED { } ``` -### ImplicitCertificate +### ImplicitCertificate +This is a profile of the CertificateBase structure providing all + the fields necessary for an implicit certificate, and no others. ```asn1 ImplicitCertificate ::= CertificateBase (WITH COMPONENTS {..., type(implicit), @@ -773,8 +1045,10 @@ ImplicitCertificate ::= CertificateBase (WITH COMPONENTS {..., }) ``` -### ExplicitCertificate +### ExplicitCertificate +This is a profile of the CertificateBase structure providing all + the fields necessary for an explicit certificate, and no others. ```asn1 ExplicitCertificate ::= CertificateBase (WITH COMPONENTS {..., type(explicit), @@ -785,11 +1059,41 @@ ExplicitCertificate ::= CertificateBase (WITH COMPONENTS {..., }) ``` -### IssuerIdentifier - +### 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, sha384AndDigest, or + sm3AndDigest: + - The structure contains the HashedId8 of the issuing certificate. The + HashedId8 is calculated with the whole-certificate hash algorithm, + determined as described in 6.4.3, applied to the COER-encoded certificate, + canonicalized as defined in the definition of Certificate. + - The hash algorithm to be used to generate the hash of the certificate + for verification is SHA-256 (in the case of sha256AndDigest), SM3 (in the + case of sm3AndDigest) 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. + +Fields: +* sha256AndDigest of type [**HashedId8**](Ieee1609Dot2BaseTypes.md#HashedId8)
                                +* self of type [**HashAlgorithm**](Ieee1609Dot2BaseTypes.md#HashAlgorithm)
                                + +* sha384AndDigest of type [**HashedId8**](Ieee1609Dot2BaseTypes.md#HashedId8)
                                + + ..., +* sm3AndDigest of type [**HashedId8**](Ieee1609Dot2BaseTypes.md#HashedId8)
                                + >>> -NOTE: Critical information fields: If present, this is a critical +NOTE: 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 in the sense of 4.2.2.3.2, @@ -806,25 +1110,63 @@ IssuerIdentifier ::= CHOICE { } ``` -### ToBeSignedCertificate - -* `id` contains information that is used to identify the certificate +### ToBeSignedCertificate +The fields in the ToBeSignedCertificate structure have the + following meaning: + + + 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. + +Fields: +* id of type [**CertificateId**](#CertificateId)
                                + contains information that is used to identify the certificate holder if necessary. -* `cracaId` identifies the Certificate Revocation Authorization CA + +* cracaId of type [**HashedId3**](Ieee1609Dot2BaseTypes.md#HashedId3)
                                + 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.3, applied to the COER-encoded certificate, canonicalized as defined in the definition of Certificate. -* `crlSeries` represents the CRL series relevant to a particular + + +* crlSeries of type [**CrlSeries**](Ieee1609Dot2BaseTypes.md#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 + +* validityPeriod of type [**ValidityPeriod**](Ieee1609Dot2BaseTypes.md#ValidityPeriod)
                                + contains the validity period of the certificate. + + + +* region of type [**GeographicRegion**](Ieee1609Dot2BaseTypes.md#GeographicRegion) OPTIONAL
                                + 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 @@ -832,15 +1174,24 @@ IssuerIdentifier ::= CHOICE { - Otherwise, the certificate has the same validity region as the certificate that issued it. -* `assuranceLevel` indicates the assurance level of the certificate + + +* assuranceLevel of type [**SubjectAssurance**](Ieee1609Dot2BaseTypes.md#SubjectAssurance) OPTIONAL
                                + indicates the assurance level of the certificate holder. -* `appPermissions` indicates the permissions that the certificate + + +* appPermissions of type [**SequenceOfPsidSsp**](Ieee1609Dot2BaseTypes.md#SequenceOfPsidSsp) OPTIONAL
                                + 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 + + +* certIssuePermissions of type [**SequenceOfPsidGroupPermissions**](#SequenceOfPsidGroupPermissions) OPTIONAL
                                + 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 @@ -849,7 +1200,10 @@ IssuerIdentifier ::= CHOICE { the other entries. See the description of PsidGroupPermissions for further discussion. -* `certRequestPermissions` indicates the permissions that the + + +* certRequestPermissions of type [**SequenceOfPsidGroupPermissions**](#SequenceOfPsidGroupPermissions) OPTIONAL
                                + indicates the permissions that the certificate holder can request in its 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 @@ -857,36 +1211,61 @@ IssuerIdentifier ::= CHOICE { 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 + + +* canRequestRollover of type **NULL** OPTIONAL
                                + 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 + + +* encryptionKey of type [**PublicEncryptionKey**](Ieee1609Dot2BaseTypes.md#PublicEncryptionKey) OPTIONAL
                                + 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 + + +* verifyKeyIndicator of type [**VerificationKeyIndicator**](#VerificationKeyIndicator)
                                + contains material that may be used to recover the public key that may be used to verify data signed by this certificate. -* `flags` indicates additional yes/no properties of the certificate + + +* flags of type **BIT STRING** {usesCubk (0)} (SIZE (8)) OPTIONAL
                                + indicates additional yes/no properties of the certificate holder. The only bit with defined semantics in this string in this version of this standard is usesCubk. If set, the usesCubk bit indicates that the certificate holder supports the compact unified butterfly key response. Further material about the compact unified butterfly key response can be found in IEEE Std 1609.2.1. -* `appExtensions` indicates additional permissions that may be applied + + + ..., +* appExtensions of type [**SequenceOfAppExtensions**](#SequenceOfAppExtensions)
                                + indicates additional permissions that may be applied to application activities that the certificate holder is carrying out. -* `certIssueExtensions` indicates additional permissions to issue + + +* certIssueExtensions of type [**SequenceOfCertIssueExtensions**](#SequenceOfCertIssueExtensions)
                                + indicates additional permissions to issue certificates containing endEntityExtensions. -* `certRequestExtensions` indicates additional permissions to request - certificates containing endEntityExtensions. + +* certRequestExtension of type [**SequenceOfCertRequestExtensions**](#SequenceOfCertRequestExtensions)
                                + +If the PublicEncryptionKey contains a BasePublicEncryptionKey that is an + elliptic curve point (i.e., of type EccP256CurvePoint 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. >>> -NOTE: Critical information fields: +NOTE: Critical information fields: - If present, appPermissions is a critical information field as defined in 5.2.6. If an implementation of verification does not support the number of PsidSsp in the appPermissions field of a certificate that signed a @@ -963,23 +1342,37 @@ ToBeSignedCertificate ::= SEQUENCE { WITH COMPONENTS { ..., certRequestPermissions PRESENT}) ``` -### CertificateId +### CertificateId +This structure contains information that is used to identify the + certificate holder if necessary. -* `linkageData` is used to identify the certificate for revocation +Fields: +* linkageData of type [**LinkageData**](#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 + +* name of type [**Hostname**](Ieee1609Dot2BaseTypes.md#Hostname)
                                + 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 are expected to be human-readable. -* `binaryId` supports identifiers that are not human-readable. -* `none` indicates that the certificate does not include an identifier. + +* binaryId of type **OCTET STRING** (SIZE(1..64))
                                + supports identifiers that are not human-readable. + + + +* none of type **NULL**
                                + indicates that the certificate does not include an identifier. + + >>> -NOTE: Critical information fields: +NOTE: 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. @@ -994,8 +1387,18 @@ CertificateId ::= CHOICE { } ``` -### LinkageData +### 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. +Fields: +* iCert of type [**IValue**](Ieee1609Dot2BaseTypes.md#IValue)
                                +* linkage-value of type [**LinkageValue**](Ieee1609Dot2BaseTypes.md#LinkageValue)
                                + +* group-linkage-value of type [**GroupLinkageValue**](Ieee1609Dot2BaseTypes.md#GroupLinkageValue) OPTIONAL
                                + ```asn1 LinkageData ::= SEQUENCE { iCert IValue, @@ -1004,19 +1407,26 @@ LinkageData ::= SEQUENCE { } ``` -### EndEntityType - -```asn1 -EndEntityType ::= - BIT STRING {app (0), enrol (1) } (SIZE (8)) (ALL EXCEPT {}) -``` - -### PsidGroupPermissions - -* `subjectPermissions` indicates PSIDs and SSP Ranges covered by this +### PsidGroupPermissions +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. + +This structure states the permissions that a certificate holder has + with respect to issuing and requesting certificates for a particular set + of PSIDs. For examples, see D.5.3 and D.5.4. + +Fields: +* subjectPermissions of type [**SubjectPermissions**](#SubjectPermissions)
                                + indicates PSIDs and SSP Ranges covered by this field. -* `minChainLength` and chainLengthRange indicate how long the + +* minChainLength of type **INTEGER** DEFAULT 1
                                + 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, @@ -1030,7 +1440,12 @@ EndEntityType ::= 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 + + +* chainLengthRange of type **INTEGER** DEFAULT 0
                                + +* eeType of type [**EndEntityType**](#EndEntityType) DEFAULT {app}
                                + 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. Different instances of PsidGroupPermissions within a ToBeSignedCertificate @@ -1047,6 +1462,8 @@ EndEntityType ::= certificate, the chain shall be considered invalid). + + ```asn1 PsidGroupPermissions ::= SEQUENCE { subjectPermissions SubjectPermissions, @@ -1056,17 +1473,31 @@ PsidGroupPermissions ::= SEQUENCE { } ``` -### SequenceOfPsidGroupPermissions +### SequenceOfPsidGroupPermissions +This type is used for clarity of definitions. ```asn1 SequenceOfPsidGroupPermissions ::= SEQUENCE OF PsidGroupPermissions ``` -### SubjectPermissions - +### 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. + +Fields: +* explicit of type [**SequenceOfPsidSspRange**](Ieee1609Dot2BaseTypes.md#SequenceOfPsidSspRange)
                                +* all of type **NULL**
                                + >>> -NOTE: Critical information fields: +NOTE: 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 @@ -1087,19 +1518,27 @@ SubjectPermissions ::= CHOICE { } ``` -### VerificationKeyIndicator +### VerificationKeyIndicator +The contents of this field depend on whether the certificate is an + implicit or an explicit certificate. -* `verificationKey` is included in explicit certificates. It contains +Fields: +* verificationKey of type [**PublicVerificationKey**](Ieee1609Dot2BaseTypes.md#PublicVerificationKey)
                                + 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 + +* reconstructionValue of type [**EccP256CurvePoint**](Ieee1609Dot2BaseTypes.md#EccP256CurvePoint)
                                + 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. + + >>> -NOTE: Canonicalization: This data structure is subject to canonicalization +NOTE: Canonicalization: This data structure is subject to canonicalization for the relevant operations specified in 6.1.2. The canonicalization applies to the PublicVerificationKey and to the EccP256CurvePoint. The EccP256CurvePoint is encoded in compressed form, i.e., such that the @@ -1114,27 +1553,29 @@ VerificationKeyIndicator ::= CHOICE { } ``` -### Ieee1609ContributedHeaderInfoExtension - -```asn1 -Ieee1609ContributedHeaderInfoExtension ::= - Extension{{Ieee1609HeaderInfoExtensions}} -``` -### Ieee1609HeaderInfoExtensionId +### Ieee1609HeaderInfoExtensionId +This structure uses the parameterized type Extension to define an + Ieee1609ContributedHeaderInfoExtension as an open Extension Content field + identified by an extension identifier. The extension identifier value is + unique to extensions defined by ETSI and need not be unique among all + extension identifier values defined by all contributing organizations. +This is an integer used to identify an + Ieee1609ContributedHeaderInfoExtension. ```asn1 Ieee1609HeaderInfoExtensionId ::= ExtId ``` -### p2pcd8ByteLearningRequestId - ```asn1 p2pcd8ByteLearningRequestId Ieee1609HeaderInfoExtensionId ::= 1 ``` -### Ieee1609HeaderInfoExtensions +### Ieee1609HeaderInfoExtensions +This is the ASN.1 Information Object Class that associates IEEE + 1609 HeaderInfo contributed extensions with the appropriate + Ieee1609HeaderInfoExtensionId value. ```asn1 Ieee1609HeaderInfoExtensions EXT-TYPE ::= { {HashedId8 IDENTIFIED BY p2pcd8ByteLearningRequestId}, @@ -1142,19 +1583,38 @@ Ieee1609HeaderInfoExtensions EXT-TYPE ::= { } ``` -### SequenceOfAppExtensions +### SequenceOfAppExtensions +This structure contains any AppExtensions that apply to the + certificate holder. As specified in 5.2.4.2.3, each individual + AppExtension type is associated with consistency conditions, specific to + that extension, that govern its consistency with SPDUs signed by the + certificate holder and with the CertIssueExtensions in the CA certificates + in that certificate holderÂ’s chain. Those consistency conditions are + specified for each individual AppExtension below. ```asn1 SequenceOfAppExtensions ::= SEQUENCE (SIZE(1..MAX)) OF AppExtension ``` -### AppExtension +### AppExtension +This structure contains an individual AppExtension. AppExtensions + specified in this standard are drawn from the ASN.1 Information Object Set + SetCertExtensions. This set, and its use in the AppExtension type, is + structured so that each AppExtension is associated with a + CertIssueExtension and a CertRequestExtension and all are identified by + the same id value. In this structure: + +Fields: +* id of type [**CERT-EXT-TYPE**](Ieee1609Dot2BaseTypes.md#CERT-EXT-TYPE) .&id({SetCertExtensions})
                                + identifies the extension type. -* `id` identifies the extension type. -* `content` provides the content of the extension. +* content of type [**CERT-EXT-TYPE**](Ieee1609Dot2BaseTypes.md#CERT-EXT-TYPE) .&App({SetCertExtensions}{@.id})
                                + provides the content of the extension. + + ```asn1 AppExtension ::= SEQUENCE { id CERT-EXT-TYPE.&id({SetCertExtensions}), @@ -1162,24 +1622,47 @@ AppExtension ::= SEQUENCE { } ``` -### SequenceOfCertIssueExtensions +### SequenceOfCertIssueExtensions +This field contains any CertIssueExtensions that apply to the + certificate holder. As specified in 5.2.4.2.3, each individual + CertIssueExtension type is associated with consistency conditions, + specific to that extension, that govern its consistency with + AppExtensions in certificates issued by the certificate holder and with + the CertIssueExtensions in the CA certificates in that certificate + holderÂ’s chain. Those consistency conditions are specified for each + individual CertIssueExtension below. ```asn1 SequenceOfCertIssueExtensions ::= SEQUENCE (SIZE(1..MAX)) OF CertIssueExtension ``` -### CertIssueExtension +### CertIssueExtension +This field contains an individual CertIssueExtension. + CertIssueExtensions specified in this standard are drawn from the ASN.1 + Information Object Set SetCertExtensions. This set, and its use in the + CertIssueExtension type, is structured so that each CertIssueExtension + is associated with a AppExtension and a CertRequestExtension and all are + identified by the same id value. In this structure: + +Fields: +* id of type [**CERT-EXT-TYPE**](Ieee1609Dot2BaseTypes.md#CERT-EXT-TYPE) .&id({SetCertExtensions})
                                + identifies the extension type. -* `id` identifies the extension type. -* `permissions` indicates the permissions. Within this field. +* permissions of type [**CHOICE**](#CHOICE) { + specific CERT-EXT-TYPE.&Issue({SetCertExtensions}{@.id})
                                + indicates the permissions. Within this field. - all indicates that the certificate is entitled to issue all values of the extension. - specific is used to specify which values of the extension may be issued in the case where all does not apply. + + +* all of type **NULL**
                                + ```asn1 CertIssueExtension ::= SEQUENCE { id CERT-EXT-TYPE.&id({SetCertExtensions}), @@ -1190,23 +1673,47 @@ CertIssueExtension ::= SEQUENCE { } ``` -### SequenceOfCertRequestExtensions +### SequenceOfCertRequestExtensions +This field contains any CertRequestExtensions that apply to the + certificate holder. As specified in 5.2.4.2.3, each individual + CertRequestExtension type is associated with consistency conditions, + specific to that extension, that govern its consistency with + AppExtensions in certificates issued by the certificate holder and with + the CertRequestExtensions in the CA certificates in that certificate + holderÂ’s chain. Those consistency conditions are specified for each + individual CertRequestExtension below. ```asn1 SequenceOfCertRequestExtensions ::= SEQUENCE (SIZE(1..MAX)) OF CertRequestExtension ``` -### CertRequestExtension +### CertRequestExtension +This field contains an individual CertRequestExtension. + CertRequestExtensions specified in this standard are drawn from the + ASN.1 Information Object Set SetCertExtensions. This set, and its use in + the CertRequestExtension type, is structured so that each + CertRequestExtension is associated with a AppExtension and a + CertRequestExtension and all are identified by the same id value. In this + structure: -* `id` identifies the extension type. +Fields: +* id of type [**CERT-EXT-TYPE**](Ieee1609Dot2BaseTypes.md#CERT-EXT-TYPE) .&id({SetCertExtensions})
                                + identifies the extension type. -* `permissions` indicates the permissions. Within this field. + +* permissions of type [**CHOICE**](#CHOICE) { + content CERT-EXT-TYPE.&Req({SetCertExtensions}{@.id})
                                + indicates the permissions. Within this field. - all indicates that the certificate is entitled to issue all values of the extension. - specific is used to specify which values of the extension may be issued in the case where all does not apply. + + +* all of type **NULL**
                                + ```asn1 CertRequestExtension ::= SEQUENCE { id CERT-EXT-TYPE.&id({SetCertExtensions}), @@ -1217,20 +1724,30 @@ CertRequestExtension ::= SEQUENCE { } ``` -### OperatingOrganizationId +### OperatingOrganizationId +This type is the AppExtension used to identify an operating + organization. The associated CertIssueExtension and CertRequestExtension + are both of type OperatingOrganizationId. + To determine consistency between this type and an SPDU, the SDEE + specification for that SPDU is required to specify how the SPDU can be + used to determine an OBJECT IDENTIFIER (for example, by including the + full OBJECT IDENTIFIER in the SPDU, or by including a RELATIVE-OID with + clear instructions about how a full OBJECT IDENTIFIER can be obtained from + the RELATIVE-OID). The SPDU is then consistent with this type if the + OBJECT IDENTIFIER determined from the SPDU is identical to the OBJECT + IDENTIFIER contained in this field. + This AppExtension does not have consistency conditions with a + corresponding CertIssueExtension. It can appear in a certificate issued + by any CA. ```asn1 OperatingOrganizationId ::= OBJECT IDENTIFIER ``` -### certExtId-OperatingOrganization - ```asn1 certExtId-OperatingOrganization ExtId ::= 1 ``` -### instanceOperatingOrganizationCertExtensions - ```asn1 instanceOperatingOrganizationCertExtensions CERT-EXT-TYPE ::= { ID certExtId-OperatingOrganization @@ -1240,8 +1757,13 @@ instanceOperatingOrganizationCertExtensions CERT-EXT-TYPE ::= { } ``` -### SetCertExtensions +### SetCertExtensions +This Information Object Set is a collection of Information Objects + used to contain the AppExtension, CertIssueExtension, and + CertRequestExtension types associated with a specific use of certificate + extensions. In this version of this standard it only has a single entry + instanceOperatingOrganizationCertExtensions. ```asn1 SetCertExtensions CERT-EXT-TYPE ::= { instanceOperatingOrganizationCertExtensions, @@ -1251,3 +1773,15 @@ SetCertExtensions CERT-EXT-TYPE ::= { +This Information Object is an instance of the Information Object + Class CERT-EXT-TYPE. It is defined to bind together the AppExtension, + CertIssueExtension, and CertRequestExtension types associated with the + use of an operating organization identifier, and to assocaute them all + with the extension identifier value certExtId-OperatingOrganization. + This Information Object Set is a collection of Information Objects + used to contain the AppExtension, CertIssueExtension, and + CertRequestExtension types associated with a specific use of certificate + extensions. In this version of this standard it only has a single entry + instanceOperatingOrganizationCertExtensions. + + diff --git a/docs/Ieee1609Dot2BaseTypes.md b/docs/Ieee1609Dot2BaseTypes.md index 8312342..4cbd3bc 100644 --- a/docs/Ieee1609Dot2BaseTypes.md +++ b/docs/Ieee1609Dot2BaseTypes.md @@ -4,105 +4,246 @@ 1609.2 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2. + ## Data Elements: -### Uint3 +### 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. ```asn1 Uint3 ::= INTEGER (0..7) ``` -### Uint8 +### 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. ```asn1 Uint8 ::= INTEGER (0..255) ``` -### Uint16 +### 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. ```asn1 Uint16 ::= INTEGER (0..65535) ``` -### Uint32 +### 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. ```asn1 Uint32 ::= INTEGER (0..4294967295) ``` -### Uint64 +### 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. ```asn1 Uint64 ::= INTEGER (0..18446744073709551615) ``` -### SequenceOfUint8 +### SequenceOfUint8 +This type is used for clarity of definitions. ```asn1 SequenceOfUint8 ::= SEQUENCE OF Uint8 ``` -### SequenceOfUint16 +### SequenceOfUint16 +This type is used for clarity of definitions. ```asn1 SequenceOfUint16 ::= SEQUENCE OF Uint16 ``` -### Opaque +### Opaque +This is a synonym for ASN.1 OCTET STRING, and is used in the + definition of other data structures. ```asn1 Opaque ::= OCTET STRING ``` -### HashedId3 +### 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. The low-order three bytes are the last three bytes of the + 32-byte hash when represented in network byte order. If the data structure + is subject to canonicalization it is canonicalized before hashing. See + Example below. + + + The hash algorithm to be used to calculate a HashedId3 within a + structure depends on the context. In this standard, for each structure + that includes a HashedId3 field, the corresponding text indicates how the + hash algorithm is determined. See also the discussion in 5.3.9. + + 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. ```asn1 HashedId3 ::= OCTET STRING (SIZE(3)) ``` -### SequenceOfHashedId3 +### SequenceOfHashedId3 +This type is used for clarity of definitions. ```asn1 SequenceOfHashedId3 ::= SEQUENCE OF HashedId3 ``` -### HashedId8 +### 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. The low-order eight bytes are the last eight bytes of the + hash when represented in network byte order. If the data structure + is subject to canonicalization it is canonicalized before hashing. 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. See also the discussion in 5.3.9. + + 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. ```asn1 HashedId8 ::= OCTET STRING (SIZE(8)) ``` -### HashedId10 +### 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. The low-order ten bytes are the last ten bytes of the + hash when represented in network byte order. If the data structure + is subject to canonicalization it is canonicalized before hashing. 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. See also the discussion in 5.3.9. + + 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. ```asn1 HashedId10 ::= OCTET STRING (SIZE(10)) ``` -### HashedId32 +### HashedId32 +This data structure 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 32 bytes of the hash output. The low-order 32 bytes are the last + 32 bytes of the hash when represented in network byte order. If the data + structure is subject to canonicalization it is canonicalized before + hashing. 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. See also the discussion in 5.3.9. + + Example: Consider the SHA-256 hash of the empty string: + + SHA-256("") = + e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + + The HashedId32 derived from this hash corresponds to the following: + + HashedId32 = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8 + 55. ```asn1 HashedId32 ::= OCTET STRING (SIZE(32)) ``` -### HashedId48 +### HashedId48 +This data structure contains the truncated hash of another data + structure. The HashedId48 for a given data structure is calculated by + calculating the hash of the encoded data structure and taking the + low-order 48 bytes of the hash output. The low-order 48 bytes are the last + 48 bytes of the hash when represented in network byte order. If the data + structure is subject to canonicalization it is canonicalized before + hashing. See Example below. + + + The hash algorithm to be used to calculate a HashedId48 within a + structure depends on the context. In this standard, for each structure + that includes a HashedId48 field, the corresponding text indicates how the + hash algorithm is determined. See also the discussion in 5.3.9. + + Example: Consider the SHA-384 hash of the empty string: + + SHA-384("") = 38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6 + e1da274edebfe76f65fbd51ad2f14898b95b + + The HashedId48 derived from this hash corresponds to the following: + + HashedId48 = 38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e + 1da274edebfe76f65fbd51ad2f14898b95b. ```asn1 HashedId48 ::= OCTET STRING(SIZE(48)) ``` -### Time32 +### Time32 +This type gives the number of (TAI) seconds since 00:00:00 UTC, 1 + January, 2004. ```asn1 Time32 ::= Uint32 ``` -### Time64 +### Time64 +This data structure is a 64-bit integer giving an estimate of the + number of (TAI) microseconds since 00:00:00 UTC, 1 January, 2004. ```asn1 Time64 ::= Uint64 ``` -### ValidityPeriod +### ValidityPeriod +This type 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. +Fields: +* start of type [**Time32**](Ieee1609Dot2BaseTypes.md#Time32)
                                +* duration of type [**Duration**](#Duration)
                                + ```asn1 ValidityPeriod ::= SEQUENCE { start Time32, @@ -110,11 +251,29 @@ ValidityPeriod ::= SEQUENCE { } ``` -### Duration +### 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. +Fields: +* microseconds of type [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
                                +* milliseconds of type [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
                                + +* seconds of type [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
                                + +* minutes of type [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
                                + +* hours of type [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
                                + +* sixtyHours of type [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
                                + +* years of type [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
                                + >>> -NOTE: Years can be mapped more closely to wall-clock days using the hours +NOTE: Years can be mapped more closely to wall-clock days using the hours choice for up to 7 years and the sixtyHours choice for up to 448 years. >>> ```asn1 @@ -129,26 +288,41 @@ Duration ::= CHOICE { } ``` -### GeographicRegion +### 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. -* `circularRegion` contains a single instance of the CircularRegion +Fields: +* circularRegion of type [**CircularRegion**](#CircularRegion)
                                + contains a single instance of the CircularRegion structure. -* `rectangularRegion` is an array of RectangularRegion structures + +* rectangularRegion of type [**SequenceOfRectangularRegion**](#SequenceOfRectangularRegion)
                                + 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 + + +* polygonalRegion of type [**PolygonalRegion**](#PolygonalRegion)
                                + contains a single instance of the PolygonalRegion structure. -* `identifiedRegion` is an array of IdentifiedRegion structures + + +* identifiedRegion of type [**SequenceOfIdentifiedRegion**](#SequenceOfIdentifiedRegion)
                                + is an array of IdentifiedRegion structures containing at least one entry. The permitted region is any point within any of the identified regions. + + >>> -NOTE: Critical information fields: +NOTE: 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 in @@ -178,8 +352,19 @@ GeographicRegion ::= CHOICE { } ``` -### CircularRegion +### 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. +Fields: +* center of type [**TwoDLocation**](#TwoDLocation)
                                +* radius of type [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
                                + ```asn1 CircularRegion ::= SEQUENCE { center TwoDLocation, @@ -187,13 +372,26 @@ CircularRegion ::= SEQUENCE { } ``` -### RectangularRegion +### RectangularRegion +This structure specifies a “rectangle” on the surface of the WGS84 ellipsoid where the + sides are given 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 invalid if the northWest value is south of the southEast value, or if the + latitude values in the two points are equal, or if the longitude values in the two points are + equal; otherwise it is valid. A certificate that contains an invalid RectangularRegion is invalid. + +Fields: +* northWest of type [**TwoDLocation**](#TwoDLocation)
                                + is the north-west corner of the rectangle. -* `northWest` is the north-west corner of the rectangle. -* `southEast` is the south-east corner of the rectangle. +* southEast of type [**TwoDLocation**](#TwoDLocation)
                                + is the south-east corner of the rectangle. + + ```asn1 RectangularRegion ::= SEQUENCE { northWest TwoDLocation, @@ -201,17 +399,34 @@ RectangularRegion ::= SEQUENCE { } ``` -### SequenceOfRectangularRegion +### SequenceOfRectangularRegion +This type is used for clarity of definitions. ```asn1 SequenceOfRectangularRegion ::= SEQUENCE OF RectangularRegion ``` -### PolygonalRegion + +### 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. + >>> -NOTE: Critical information fields: If present, this is a critical +NOTE: 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 @@ -222,11 +437,18 @@ NOTE: Critical information fields: If present, this is a critical PolygonalRegion ::= SEQUENCE SIZE (3..MAX) OF TwoDLocation ``` -### 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. +Fields: +* latitude of type [**Latitude**](#Latitude)
                                +* longitude of type [**Longitude**](#Longitude)
                                + >>> -NOTE: This data structure is consistent with the location encoding +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 @@ -239,19 +461,39 @@ TwoDLocation ::= SEQUENCE { } ``` -### IdentifiedRegion +### IdentifiedRegion +This structure indicates the region of validity of a certificate + using region identifiers. + A conformant implementation that supports this type shall support at least + one of the possible CHOICE values. The Protocol Implementation Conformance + Statement (PICS) provided in Annex A allows an implementation to state + which CountryOnly values it recognizes. -* `countryOnly` indicates that only a country (or a geographic entity +Fields: +* countryOnly of type [**UnCountryId**](#UnCountryId)
                                + indicates that only a country (or a geographic entity included in a country list) is given. -* `countryAndRegions` indicates that one or more top-level regions + +* countryAndRegions of type [**CountryAndRegions**](#CountryAndRegions)
                                + indicates that one or more top-level regions within a country (as defined by the region listing associated with that country) is given. -* `countryAndSubregions` indicates that one or more regions smaller + + +* countryAndSubregions of type [**CountryAndSubregions**](#CountryAndSubregions)
                                + indicates that one or more regions smaller than the top-level regions within a country (as defined by the region listing associated with that country) is given. + + +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 in the sense of 4.2.2.3.2, that is, it is + invalid in the sense that its validity cannot be established. ```asn1 IdentifiedRegion ::= CHOICE { countryOnly UnCountryId, @@ -261,29 +503,93 @@ IdentifiedRegion ::= CHOICE { } ``` -### SequenceOfIdentifiedRegion +### SequenceOfIdentifiedRegion +This type is used for clarity of definitions. ```asn1 SequenceOfIdentifiedRegion ::= SEQUENCE OF IdentifiedRegion ``` -### UnCountryId +### UnCountryId +This type contains 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 0). + A conformant implementation that implements IdentifiedRegion shall + recognize (in the sense of “be able to determine whether a two dimensional + location lies inside or outside the borders identified by”) at least one + value of UnCountryId. The Protocol Implementation Conformance Statement + (PICS) provided in Annex A allows an implementation to state which + UnCountryId values it recognizes. + Since 2013 and before the publication of this version of this standard, + three changes have been made to the country code list, to define the + region "sub-Saharan Africa" and remove the "developed regions", and + "developing regions". A conformant implementation may recognize these + region identifiers in the sense defined in the previous paragraph. + If a verifying implementation is required to check that relevant + geographic information in a signed SPDU is consistent with a certificate + containing one or more instances of this type, then the SDS is permitted + to indicate that the signed SPDU is valid even if some instances of this + type are unrecognized in the sense defined above, so long as the + recognized instances of this type completely contain the relevant + geographic information. Informally, if the recognized values in the + certificate allow the SDS to determine that the SPDU is valid, then it + can make that determination even if there are also unrecognized values in + the certificate. This field is therefore not a "critical information + field" as defined in 5.2.6, because unrecognized values are permitted so + long as the validity of the SPDU can be established with the recognized + values. However, as discussed in 5.2.6, the presence of an unrecognized + value in a certificate can make it impossible to determine whether the + certificate and the SPDU are valid. ```asn1 UnCountryId ::= Uint16 ``` -### CountryOnly +### CountryOnly +This type is defined only for backwards compatibility. ```asn1 CountryOnly ::= UnCountryId ``` -### CountryAndRegions - -* `countryOnly` is a UnCountryId as defined above. - -* `regions` identifies one or more regions within the country. If +### CountryAndRegions +A conformant implementation that supports CountryAndRegions shall + support a regions field containing at least eight entries. + A conformant implementation that implements this type shall recognize + (in the sense of "be able to determine whether a two dimensional location + lies inside or outside the borders identified by") at least one value of + UnCountryId and at least one value for a region within the country + indicated by that recognized UnCountryId value. In this version of this + standard, the only means to satisfy this is for a conformant + implementation to recognize the value of UnCountryId indicating USA and + at least one of the FIPS state codes for US states. The Protocol + Implementation Conformance Statement (PICS) provided in Annex A allows + an implementation to state which UnCountryId values it recognizes and + which region values are recognized within that country. + If a verifying implementation is required to check that an relevant + geographic information in a signed SPDU is consistent with a certificate + containing one or more instances of this type, then the SDS is permitted + to indicate that the signed SPDU is valid even if some values of country + or within regions are unrecognized in the sense defined above, so long + as the recognized instances of this type completely contain the relevant + geographic information. Informally, if the recognized values in the + certificate allow the SDS to determine that the SPDU is valid, then it + can make that determination even if there are also unrecognized values + in the certificate. This field is therefore not a "critical information + field" as defined in 5.2.6, because unrecognized values are permitted so + long as the validity of the SPDU can be established with the recognized + values. However, as discussed in 5.2.6, the presence of an unrecognized + value in a certificate can make it impossible to determine whether the + certificate is valid and so whether the SPDU is valid. + In this type: + +Fields: +* countryOnly of type [**UnCountryId**](#UnCountryId)
                                + is a UnCountryId as defined above. + + +* regions of type [**SequenceOfUint8**](#SequenceOfUint8)
                                + identifies one or more regions within the country. If country 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 @@ -291,6 +597,8 @@ CountryOnly ::= UnCountryId meaning of region is not defined in this version of this standard. + + ```asn1 CountryAndRegions ::= SEQUENCE { countryOnly UnCountryId, @@ -298,14 +606,50 @@ CountryAndRegions ::= SEQUENCE { } ``` -### CountryAndSubregions - -* `countryOnly` is a UnCountryId as defined above. - -* `regionAndSubregions` identifies one or more subregions within +### CountryAndSubregions +A conformant implementation that supports CountryAndSubregions + shall support a regionAndSubregions field containing at least eight + entries. + A conformant implementation that implements this type shall recognize + (in the sense of “be able to determine whether a two dimensional location + lies inside or outside the borders identified by”) at least one value of + country and at least one value for a region within the country indicated + by that recognized country value. In this version of this standard, the + only means to satisfy this is for a conformant implementation to recognize + the value of UnCountryId indicating USA and at least one of the FIPS state + codes for US states. The Protocol Implementation Conformance Statement + (PICS) provided in Annex A allows an implementation to state which + UnCountryId values it recognizes and which region values are recognized + within that country. + If a verifying implementation is required to check that an relevant + geographic information in a signed SPDU is consistent with a certificate + containing one or more instances of this type, then the SDS is permitted + to indicate that the signed SPDU is valid even if some values of country + or within regionAndSubregions are unrecognized in the sense defined above, + so long as the recognized instances of this type completely contain the + relevant geographic information. Informally, if the recognized values in + the certificate allow the SDS to determine that the SPDU is valid, then + it can make that determination even if there are also unrecognized values + in the certificate. This field is therefore not a "critical information + field" as defined in 5.2.6, because unrecognized values are permitted so + long as the validity of the SPDU can be established with the recognized + values. However, as discussed in 5.2.6, the presence of an unrecognized + value in a certificate can make it impossible to determine whether the + certificate is valid and so whether the SPDU is valid. + In this structure: + +Fields: +* countryOnly of type [**UnCountryId**](#UnCountryId)
                                + is a UnCountryId as defined above. + + +* regionAndSubregions of type [**SequenceOfRegionAndSubregions**](#SequenceOfRegionAndSubregions)
                                + identifies one or more subregions within country. + + ```asn1 CountryAndSubregions ::= SEQUENCE { countryOnly UnCountryId, @@ -313,15 +657,66 @@ CountryAndSubregions ::= SEQUENCE { } ``` -### RegionAndSubregions - -* `region` identifies a region within a country. - -* `subregions` identifies one or more subregions within region. A +### RegionAndSubregions +The meanings of the fields in this structure are to be interpreted + in the context of a country within which the region is located, referred + to as the "enclosing country". If this structure is used in a + CountryAndSubregions structure, the enclosing country is the one indicated + by the country field in the CountryAndSubregions structure. If other uses + are defined for this structure in future, it is expected that that + definition will include a specification of how the enclosing country can + be determined. + If the enclosing country is the United States of America: + - The region field identifies 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 0). + - The values in the subregions 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. + If the enclosing country is a different country from the USA, the meaning + of regionAndSubregions is not defined in this version of this standard. + A conformant implementation that implements this type shall recognize (in + the sense of "be able to determine whether a two-dimensional location lies + inside or outside the borders identified by"), for at least one enclosing + country, at least one value for a region within that country and at least + one subregion for the indicated region. In this version of this standard, + the only means to satisfy this is for a conformant implementation to + recognize, for the USA, at least one of the FIPS state codes for US + states, and at least one of the county codes in at least one of the + recognized states. The Protocol Implementation Conformance Statement + (PICS) provided in Annex A allows an implementation to state which + UnCountryId values it recognizes and which region values are recognized + within that country. + If a verifying implementation is required to check that an relevant + geographic information in a signed SPDU is consistent with a certificate + containing one or more instances of this type, then the SDS is permitted + to indicate that the signed SPDU is valid even if some values within + subregions are unrecognized in the sense defined above, so long as the + recognized instances of this type completely contain the relevant + geographic information. Informally, if the recognized values in the + certificate allow the SDS to determine that the SPDU is valid, then it + can make that determination even if there are also unrecognized values + in the certificate. This field is therefore not not a "critical + information field" as defined in 5.2.6, because unrecognized values are + permitted so long as the validity of the SPDU can be established with the + recognized values. However, as discussed in 5.2.6, the presence of an + unrecognized value in a certificate can make it impossible to determine + whether the certificate is valid and so whether the SPDU is valid. + In this structure: + +Fields: +* region of type [**Uint8**](Ieee1609Dot2BaseTypes.md#Uint8)
                                + identifies a region within a country. + + +* subregions of type [**SequenceOfUint16**](#SequenceOfUint16)
                                + identifies one or more subregions within region. A conformant implementation that supports RegionAndSubregions shall support a subregions field containing at least eight entries. + + ```asn1 RegionAndSubregions ::= SEQUENCE { region Uint8, @@ -329,17 +724,26 @@ RegionAndSubregions ::= SEQUENCE { } ``` -### SequenceOfRegionAndSubregions +### SequenceOfRegionAndSubregions +This type is used for clarity of definitions. ```asn1 SequenceOfRegionAndSubregions ::= SEQUENCE OF RegionAndSubregions ``` -### ThreeDLocation +### ThreeDLocation +This structure contains an estimate of 3D location. The details of + the structure are given in the definitions of the individual fields below. +Fields: +* latitude of type [**Latitude**](#Latitude)
                                +* longitude of type [**Longitude**](#Longitude)
                                + +* elevation of type [**Elevation**](#Elevation)
                                + >>> -NOTE: The units used in this data structure are consistent with the +NOTE: The units used in this data structure are consistent with the location data structures used in SAE J2735 [B26], though the encoding is incompatible. >>> @@ -351,26 +755,45 @@ ThreeDLocation ::= SEQUENCE { } ``` -### Latitude +### 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. + 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. ```asn1 Latitude ::= NinetyDegreeInt ``` -### Longitude +### 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. + 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. ```asn1 Longitude ::= OneEightyDegreeInt ``` -### Elevation +### 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. ```asn1 Elevation ::= Uint16 ``` -### NinetyDegreeInt +### 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. ```asn1 NinetyDegreeInt ::= INTEGER { min (-900000000), @@ -379,20 +802,27 @@ NinetyDegreeInt ::= INTEGER { } (-900000000..900000001) ``` -### KnownLatitude +### KnownLatitude +The known latitudes are from -900,000,000 to +900,000,000 in 0.1 + microdegree intervals. ```asn1 KnownLatitude ::= NinetyDegreeInt (min..max) ``` -### UnknownLatitude +### UnknownLatitude +The value 900,000,001 indicates that the latitude was not + available to the sender. ```asn1 UnknownLatitude ::= NinetyDegreeInt (unknown) ``` -### OneEightyDegreeInt +### 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. ```asn1 OneEightyDegreeInt ::= INTEGER { min (-1799999999), @@ -401,23 +831,40 @@ OneEightyDegreeInt ::= INTEGER { } (-1799999999..1800000001) ``` -### KnownLongitude +### KnownLongitude +The known longitudes are from -1,799,999,999 to +1,800,000,000 in + 0.1 microdegree intervals. ```asn1 KnownLongitude ::= OneEightyDegreeInt (min..max) ``` -### UnknownLongitude +### UnknownLongitude +The value 1,800,000,001 indicates that the longitude was not + available to the sender. ```asn1 UnknownLongitude ::= OneEightyDegreeInt (unknown) ``` -### Signature +### Signature +This structure represents a signature for a supported public key + algorithm. It may be contained within SignedData or Certificate. +Fields: +* ecdsaNistP256Signature of type [**EcdsaP256Signature**](#EcdsaP256Signature)
                                +* ecdsaBrainpoolP256r1Signature of type [**EcdsaP256Signature**](#EcdsaP256Signature)
                                + +* ecdsaBrainpoolP384r1Signature of type [**EcdsaP384Signature**](#EcdsaP384Signature)
                                + + ..., +* ecdsaNistP384Signature of type [**EcdsaP384Signature**](#EcdsaP384Signature)
                                + +* sm2Signature of type [**EcsigP256Signature**](#EcsigP256Signature)
                                + >>> -NOTE: Canonicalization: This data structure is subject to canonicalization +NOTE: Canonicalization: This data structure is subject to canonicalization for the relevant operations specified in 6.1.2. The canonicalization applies to instances of this data structure of form EcdsaP256Signature and EcdsaP384Signature. @@ -433,11 +880,37 @@ Signature ::= CHOICE { } ``` -### EcdsaP256Signature +### 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. + + + + NISTp256: + - p = FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF + - n = FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551 + + Brainpoolp256: + - p = A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F6E5377 + - n = A9FB57DBA1EEA9BC3E660A909D838D718C397AA3B561A6F7901E0E82974856A7 + +Fields: +* rSig of type [**EccP256CurvePoint**](Ieee1609Dot2BaseTypes.md#EccP256CurvePoint)
                                +* sSig of type **OCTET STRING** (SIZE (32))
                                + >>> -NOTE: When the signature is of form x-only, the x-value in rSig is +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 @@ -446,7 +919,7 @@ NOTE: When the signature is of form x-only, the x-value in rSig is 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 + 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: >>> @@ -457,11 +930,27 @@ EcdsaP256Signature ::= SEQUENCE { } ``` -### EcdsaP384Signature +### 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. + +Fields: +* rSig of type [**EccP384CurvePoint**](#EccP384CurvePoint)
                                +* sSig of type **OCTET STRING** (SIZE (48))
                                + >>> -NOTE: When the signature is of form x-only, the x-value in rSig is +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 @@ -470,7 +959,7 @@ NOTE: When the signature is of form x-only, the x-value in rSig is 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 + 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 @@ -484,8 +973,15 @@ EcdsaP384Signature ::= SEQUENCE { } ``` -### EcsigP256Signature +### EcsigP256Signature +This structure represents a elliptic curve signature where the + component r is constrained to be an integer. This structure supports SM2 + signatures as specified in 5.3.1.3. +Fields: +* rSig of type **OCTET STRING** (SIZE (32))
                                +* sSig of type **OCTET STRING** (SIZE (32))
                                + ```asn1 EcsigP256Signature ::= SEQUENCE { rSig OCTET STRING (SIZE (32)), @@ -493,11 +989,39 @@ EcsigP256Signature ::= SEQUENCE { } ``` -### EccP256CurvePoint - +### EccP256CurvePoint +This structure specifies a point on an elliptic curve in Weierstrass + form defined over a 256-bit prime number. The curves supported in this + standard are NIST p256 as defined in FIPS 186-4, Brainpool p256r1 as + defined in RFC 5639, and the SM2 curve as defined in GB/T 32918.5-2017. + 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. + +Fields: +* x-only of type **OCTET STRING** (SIZE (32))
                                +* fill of type **NULL**
                                + +* compressed-y-0 of type **OCTET STRING** (SIZE (32))
                                + +* compressed-y-1 of type **OCTET STRING** (SIZE (32))
                                + +* uncompressedP256 of type **SEQUENCE** { + x OCTET STRING (SIZE (32)), + y OCTET STRING (SIZE (32)) + }
                                + >>> -NOTE: Canonicalization: This data structure is subject to canonicalization +NOTE: Canonicalization: This data structure is subject to canonicalization for the relevant operations specified in 6.1.2 if it appears in a HeaderInfo or in a ToBeSignedCertificate. See the definitions of HeaderInfo and ToBeSignedCertificate for a specification of the canonicalization @@ -516,11 +1040,38 @@ EccP256CurvePoint::= CHOICE { } ``` -### EccP384CurvePoint - +### 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. + +Fields: +* x-only of type **OCTET STRING** (SIZE (48))
                                +* fill of type **NULL**
                                + +* compressed-y-0 of type **OCTET STRING** (SIZE (48))
                                + +* compressed-y-1 of type **OCTET STRING** (SIZE (48))
                                + +* uncompressedP384 of type **SEQUENCE** { + x OCTET STRING (SIZE (48)), + y OCTET STRING (SIZE (48)) + }
                                + >>> -NOTE: Canonicalization: This data structure is subject to canonicalization +NOTE: Canonicalization: This data structure is subject to canonicalization for the relevant operations specified in 6.1.2 if it appears in a HeaderInfo or in a ToBeSignedCertificate. See the definitions of HeaderInfo and ToBeSignedCertificate for a specification of the canonicalization @@ -539,8 +1090,14 @@ EccP384CurvePoint::= CHOICE { } ``` -### SymmAlgorithm +### SymmAlgorithm +This enumerated value indicates supported symmetric algorithms. The + algorithm identifier identifies both the algorithm itself and a specific + mode of operation. The symmetric algorithms supported in this version of + this standard are AES-128 and SM4. The only mode of operation supported is + Counter Mode Encryption With Cipher Block Chaining Message Authentication + Code (CCM). Full details are given in 5.3.8. ```asn1 SymmAlgorithm ::= ENUMERATED { aes128Ccm, @@ -549,11 +1106,14 @@ SymmAlgorithm ::= ENUMERATED { } ``` -### HashAlgorithm +### HashAlgorithm +This structure identifies a hash algorithm. The value sha256, + indicates SHA-256. The value sha384 indicates SHA-384. The value sm3 + indicates SM3. See 5.3.3 for more details. >>> -NOTE: Critical information fields: This is a critical information field as +NOTE: 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 in the sense of 4.2.2.3.2, that @@ -568,20 +1128,34 @@ HashAlgorithm ::= ENUMERATED { } ``` -### EciesP256EncryptedKey +### EciesP256EncryptedKey +This data structure is used to transfer a 16-byte symmetric key + encrypted using ECIES as specified in IEEE Std 1363a-2004. The symmetric + key is input to the key encryption process with no headers, encapsulation, + or length indication. Encryption and decryption are carried out as + specified in 5.3.5.1. -* `v` is the sender's ephemeral public key, which is the output V from +Fields: +* v of type [**EccP256CurvePoint**](Ieee1609Dot2BaseTypes.md#EccP256CurvePoint)
                                + is the sender's ephemeral public key, which is the output V from encryption as specified in 5.3.5.1. -* `c` is the encrypted symmetric key, which is the output C from + +* c of type **OCTET STRING** (SIZE (16))
                                + is the encrypted symmetric key, which is the output C from encryption as specified in 5.3.5.1. The algorithm for the symmetric key is identified by the CHOICE indicated in the following SymmetricCiphertext. For ECIES this shall be AES-128. -* `t` is the authentication tag, which is the output tag from + + +* t of type **OCTET STRING** (SIZE (16))
                                + is the authentication tag, which is the output tag from encryption as specified in 5.3.5.1. + + ```asn1 EciesP256EncryptedKey ::= SEQUENCE { v EccP256CurvePoint, @@ -590,20 +1164,34 @@ EciesP256EncryptedKey ::= SEQUENCE { } ``` -### EcencP256EncryptedKey +### EcencP256EncryptedKey +This data structure is used to transfer a 16-byte symmetric key + encrypted using SM2 encryption as specified in 5.3.3. The symmetric key is + input to the key encryption process with no headers, encapsulation, or + length indication. Encryption and decryption are carried out as specified + in 5.3.5.2. -* `v` is the sender's ephemeral public key, which is the output V from +Fields: +* v of type [**EccP256CurvePoint**](Ieee1609Dot2BaseTypes.md#EccP256CurvePoint)
                                + is the sender's ephemeral public key, which is the output V from encryption as specified in 5.3.5.2. -* `c` is the encrypted symmetric key, which is the output C from + +* c of type **OCTET STRING** (SIZE (16))
                                + is the encrypted symmetric key, which is the output C from encryption as specified in 5.3.5.2. The algorithm for the symmetric key is identified by the CHOICE indicated in the following SymmetricCiphertext. For SM2 this algorithm shall be SM4. -* `t` is the authentication tag, which is the output tag from + + +* t of type **OCTET STRING** (SIZE (32))
                                + is the authentication tag, which is the output tag from encryption as specified in 5.3.5.2. + + ```asn1 EcencP256EncryptedKey ::= SEQUENCE { v EccP256CurvePoint, @@ -612,11 +1200,17 @@ EcencP256EncryptedKey ::= SEQUENCE { } ``` -### EncryptionKey +### EncryptionKey +This structure contains an encryption key, which may be a public or + a symmetric key. +Fields: +* public of type [**PublicEncryptionKey**](Ieee1609Dot2BaseTypes.md#PublicEncryptionKey)
                                +* symmetric of type [**SymmetricEncryptionKey**](Ieee1609Dot2BaseTypes.md#SymmetricEncryptionKey)
                                + >>> -NOTE: Canonicalization: This data structure is subject to canonicalization +NOTE: Canonicalization: This data structure is subject to canonicalization for the relevant operations specified in 6.1.2 if it appears in a HeaderInfo or in a ToBeSignedCertificate. The canonicalization applies to the PublicEncryptionKey. See the definitions of HeaderInfo and @@ -630,11 +1224,18 @@ EncryptionKey ::= CHOICE { } ``` -### PublicEncryptionKey +### 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. +Fields: +* supportedSymmAlg of type [**SymmAlgorithm**](#SymmAlgorithm)
                                +* publicKey of type [**BasePublicEncryptionKey**](#BasePublicEncryptionKey)
                                + >>> -NOTE: Canonicalization: This data structure is subject to canonicalization +NOTE: Canonicalization: This data structure is subject to canonicalization for the relevant operations specified in 6.1.2 if it appears in a HeaderInfo or in a ToBeSignedCertificate. The canonicalization applies to the BasePublicEncryptionKey. See the definitions of HeaderInfo and @@ -648,11 +1249,21 @@ PublicEncryptionKey ::= SEQUENCE { } ``` -### BasePublicEncryptionKey +### BasePublicEncryptionKey +This structure specifies the bytes of a public encryption key for + a particular algorithm. Supported public key encryption algorithms are + defined in 5.3.5. +Fields: +* eciesNistP256 of type [**EccP256CurvePoint**](Ieee1609Dot2BaseTypes.md#EccP256CurvePoint)
                                +* eciesBrainpoolP256r1 of type [**EccP256CurvePoint**](Ieee1609Dot2BaseTypes.md#EccP256CurvePoint)
                                + +* ecencSm2 of type [**EccP256CurvePoint**](Ieee1609Dot2BaseTypes.md#EccP256CurvePoint)
                                + + ..., >>> -NOTE: Canonicalization: This data structure is subject to canonicalization +NOTE: Canonicalization: This data structure is subject to canonicalization for the relevant operations specified in 6.1.2 if it appears in a HeaderInfo or in a ToBeSignedCertificate. See the definitions of HeaderInfo and ToBeSignedCertificate for a specification of the canonicalization @@ -667,11 +1278,27 @@ BasePublicEncryptionKey ::= CHOICE { } ``` -### PublicVerificationKey +### 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. +Fields: +* ecdsaNistP256 of type [**EccP256CurvePoint**](Ieee1609Dot2BaseTypes.md#EccP256CurvePoint)
                                +* ecdsaBrainpoolP256r1 of type [**EccP256CurvePoint**](Ieee1609Dot2BaseTypes.md#EccP256CurvePoint)
                                + +* ecdsaBrainpoolP384r1 of type [**EccP384CurvePoint**](#EccP384CurvePoint)
                                + + ... , +* ecdsaNistP384 of type [**EccP384CurvePoint**](#EccP384CurvePoint)
                                + +* ecsigSm2 of type [**EccP256CurvePoint**](Ieee1609Dot2BaseTypes.md#EccP256CurvePoint)
                                + >>> -NOTE: Canonicalization: This data structure is subject to canonicalization +NOTE: Canonicalization: This data structure is subject to canonicalization for the relevant operations specified in 6.1.2. The canonicalization applies to the EccP256CurvePoint and the Ecc384CurvePoint. Both forms of point are encoded in compressed form, i.e., such that the choice indicated @@ -688,8 +1315,16 @@ PublicVerificationKey ::= CHOICE { } ``` -### SymmetricEncryptionKey +### SymmetricEncryptionKey +This structure provides the key bytes for use with an identified + symmetric algorithm. The supported symmetric algorithms are AES-128 and + SM4 in CCM mode as specified in 5.3.8. +Fields: +* aes128Ccm of type **OCTET STRING** (SIZE(16))
                                +* sm4Ccm of type **OCTET STRING** (SIZE(16))
                                + + ..., ```asn1 SymmetricEncryptionKey ::= CHOICE { aes128Ccm OCTET STRING(SIZE(16)), @@ -698,11 +1333,26 @@ SymmetricEncryptionKey ::= CHOICE { } ``` -### PsidSsp +### PsidSsp +This structure represents the permissions that the certificate + holder has with respect to activities for a single application area, + identified by a Psid. + + + + + + + For consistency rules for other forms of the ssp field, see the + following subclauses. +Fields: +* psid of type [**Psid**](Ieee1609Dot2BaseTypes.md#Psid)
                                +* ssp of type [**ServiceSpecificPermissions**](Ieee1609Dot2BaseTypes.md#ServiceSpecificPermissions) OPTIONAL
                                + >>> -NOTE: Consistency with issuing certificate: If a certificate has an +NOTE: 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: @@ -719,29 +1369,47 @@ PsidSsp ::= SEQUENCE { } ``` -### SequenceOfPsidSsp +### SequenceOfPsidSsp +This type is used for clarity of definitions. ```asn1 SequenceOfPsidSsp ::= SEQUENCE OF PsidSsp ``` -### Psid +### Psid +This type represents the PSID defined in IEEE Std 1609.12. ```asn1 Psid ::= INTEGER (0..MAX) ``` -### SequenceOfPsid +### SequenceOfPsid +This type is used for clarity of definitions. ```asn1 SequenceOfPsid ::= SEQUENCE OF Psid ``` -### ServiceSpecificPermissions +### 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. + + + For consistency rules for other types of ServiceSpecificPermissions, + see the following subclauses. + +Fields: +* opaque of type **OCTET STRING** (SIZE(0..MAX))
                                +* bitmapSsp of type [**BitmapSsp**](#BitmapSsp)
                                + + ..., >>> -NOTE: Consistency with issuing certificate: If a certificate has an +NOTE: 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: @@ -763,11 +1431,14 @@ ServiceSpecificPermissions ::= CHOICE { } ``` -### BitmapSsp +### 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. >>> -NOTE: A BitmapSsp B is consistent with a BitmapSspRange R if for every +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 @@ -779,15 +1450,24 @@ NOTE: A BitmapSsp B is consistent with a BitmapSspRange R if for every BitmapSsp ::= OCTET STRING (SIZE(0..31)) ``` -### PsidSspRange +### 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. +Fields: +* psid of type [**Psid**](Ieee1609Dot2BaseTypes.md#Psid)
                                + identifies the application area. -* `sspRange` identifies the SSPs associated with that PSID for which + +* sspRange of type [**SspRange**](#SspRange) OPTIONAL
                                + 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. + + ```asn1 PsidSspRange ::= SEQUENCE { psid Psid, @@ -795,17 +1475,40 @@ PsidSspRange ::= SEQUENCE { } ``` -### SequenceOfPsidSspRange +### SequenceOfPsidSspRange +This type is used for clarity of definitions. ```asn1 SequenceOfPsidSspRange ::= SEQUENCE OF PsidSspRange ``` -### SspRange +### SspRange +This structure identifies the SSPs associated with a PSID for + which the holder may issue or request certificates. + + 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. + +Fields: +* opaque of type [**SequenceOfOctetString**](#SequenceOfOctetString)
                                +* all of type **NULL**
                                + +* bitmapSspRange of type [**BitmapSspRange**](#BitmapSspRange)
                                + + ..., + >>> -NOTE: The choice "all" may also be indicated by omitting the +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". >>> @@ -818,11 +1521,23 @@ SspRange ::= CHOICE { } ``` -### BitmapSspRange +### 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. + + + Reference ETSI TS 103 097 for more information on bitmask SSPs. + +Fields: +* sspValue of type **OCTET STRING** (SIZE(1..32))
                                +* sspBitmask of type **OCTET STRING** (SIZE(1..32))
                                + >>> -NOTE: Consistency with issuing certificate: If a certificate has an +NOTE: 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: @@ -846,18 +1561,37 @@ BitmapSspRange ::= SEQUENCE { } ``` -### SequenceOfOctetString -```asn1 -SequenceOfOctetString ::= - SEQUENCE (SIZE (0..MAX)) OF OCTET STRING (SIZE(0..MAX)) -``` +### SubjectAssurance +This type is used for clarity of definitions. + +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. -### SubjectAssurance + 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 + standard. 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 and +NOTE: This field was originally specified in ETSI TS 103 097 and future uses of this field are anticipated to be consistent with future versions of that standard. >>> @@ -865,32 +1599,45 @@ NOTE: This field was originally specified in ETSI TS 103 097 and SubjectAssurance ::= OCTET STRING (SIZE(1)) ``` -### CrlSeries +### CrlSeries +This integer identifies a series of CRLs issued under the authority + of a particular CRACA. ```asn1 CrlSeries ::= Uint16 ``` -### IValue +### IValue +This atomic type is used in the definition of other data structures. ```asn1 IValue ::= Uint16 ``` -### Hostname +### Hostname +This is a UTF-8 string as defined in IETF RFC 3629. The contents + are determined by policy. ```asn1 Hostname ::= UTF8String (SIZE(0..255)) ``` -### LinkageValue +### LinkageValue +This is the individual linkage value. See 5.1.3 and 7.3 for details + of use. ```asn1 LinkageValue ::= OCTET STRING (SIZE(9)) ``` -### GroupLinkageValue +### GroupLinkageValue +This is the group linkage value. See 5.1.3 and 7.3 for details of + use. +Fields: +* jValue of type **OCTET STRING** (SIZE(4))
                                +* value of type **OCTET STRING** (SIZE(9))
                                + ```asn1 GroupLinkageValue ::= SEQUENCE { jValue OCTET STRING (SIZE(4)), @@ -898,26 +1645,37 @@ GroupLinkageValue ::= SEQUENCE { } ``` -### LaId +### LaId +This structure contains a LA Identifier for use in the algorithms + specified in 5.1.3.4. ```asn1 LaId ::= OCTET STRING (SIZE(2)) ``` -### SequenceOfLinkageSeed +### SequenceOfLinkageSeed +This type is used for clarity of definitions. ```asn1 SequenceOfLinkageSeed ::= SEQUENCE OF LinkageSeed ``` -### LinkageSeed +### LinkageSeed +This structure contains a linkage seed value for use in the + algorithms specified in 5.1.3.4. ```asn1 LinkageSeed ::= OCTET STRING (SIZE(16)) ``` -### CERT-EXT-TYPE +### CERT-EXT-TYPE +This structure is the Information Object Class used to contain + information about a set of certificate extensions that are associated with + each other: an AppExtension, a CertIssueExtension, and a + CertRequestExtension. +Fields: +* id of type [**ExtId**](Ieee1609Dot2BaseTypes.md#ExtId)
                                ```asn1 CERT-EXT-TYPE ::= CLASS { &id ExtId, @@ -927,8 +1685,15 @@ CERT-EXT-TYPE ::= CLASS { } WITH SYNTAX {ID &id APP &App ISSUE &Issue REQUEST &Req} ``` -### Extension +### Extension +This parameterized type represents a (id, content) pair drawn from + the set ExtensionTypes, which is constrained to contain objects defined by + the class EXT-TYPE. +Fields: +* id of type [**EXT-TYPE**](Ieee1609Dot2BaseTypes.md#EXT-TYPE) .&extId({ExtensionTypes})
                                +* content of type [**EXT-TYPE**](Ieee1609Dot2BaseTypes.md#EXT-TYPE) .&ExtContent({ExtensionTypes}{@.id})
                                + ```asn1 Extension {EXT-TYPE : ExtensionTypes} ::= SEQUENCE { id EXT-TYPE.&extId({ExtensionTypes}), @@ -936,8 +1701,12 @@ Extension {EXT-TYPE : ExtensionTypes} ::= SEQUENCE { } ``` -### EXT-TYPE +### EXT-TYPE +This class defines objects in a form suitable for import into the + definition of HeaderInfo. +Fields: +* extId of type [**ExtId**](Ieee1609Dot2BaseTypes.md#ExtId)
                                ```asn1 EXT-TYPE ::= CLASS { &extId ExtId, @@ -945,8 +1714,10 @@ EXT-TYPE ::= CLASS { } WITH SYNTAX {&ExtContent IDENTIFIED BY &extId} ``` -### ExtId +### ExtId +This type is used as an identifier for instances of ExtContent + within an EXT-TYPE. ```asn1 ExtId ::= INTEGER(0..255) ``` diff --git a/docs/Ieee1609Dot2Crl.md b/docs/Ieee1609Dot2Crl.md deleted file mode 100644 index 747653a..0000000 --- a/docs/Ieee1609Dot2Crl.md +++ /dev/null @@ -1,51 +0,0 @@ -# ASN.1 module Ieee1609Dot2Crl - OID: _{iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) crl(3) major-version-3(3) 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. - -## Imports: - * **[Ieee1609Dot2](Ieee1609Dot2.md)** *{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-6(6)} WITH SUCCESSORS*
                                - - * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-4(4)} WITH SUCCESSORS*
                                - - * **[Ieee1609Dot2CrlBaseTypes](Ieee1609Dot2CrlBaseTypes.md)** *{iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) crl(3) base-types(2) major-version-3(3) minor-version-2(2)} WITH SUCCESSORS*
                                - -## Data Elements: -### CrlPsid - -```asn1 -CrlPsid ::= Psid(256) -``` - -### SecuredCrl - -```asn1 -SecuredCrl ::= Ieee1609Dot2Data (WITH COMPONENTS {..., - content (WITH COMPONENTS { - signedData (WITH COMPONENTS {..., - tbsData (WITH COMPONENTS { - payload (WITH COMPONENTS {..., - data (WITH COMPONENTS {..., - content (WITH COMPONENTS { - unsecuredData (CONTAINING CrlContents) - }) - }) - }), - headerInfo (WITH COMPONENTS {..., - psid (CrlPsid), - generationTime ABSENT, - expiryTime ABSENT, - generationLocation ABSENT, - p2pcdLearningRequest ABSENT, - missingCrlIdentifier ABSENT, - encryptionKey ABSENT - }) - }) - }) - }) -}) -``` - - - diff --git a/docs/Ieee1609Dot2CrlBaseTypes.md b/docs/Ieee1609Dot2CrlBaseTypes.md deleted file mode 100644 index 81c38de..0000000 --- a/docs/Ieee1609Dot2CrlBaseTypes.md +++ /dev/null @@ -1,447 +0,0 @@ -# ASN.1 module Ieee1609Dot2CrlBaseTypes - OID: _{iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) crl(3) base-types(2) major-version-3(3) 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. - -## Imports: - * **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{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-4(4)} WITH SUCCESSORS*
                                - -## Data Elements: -### CrlContents - -* `version` is the version number of the CRL. For this version of this - standard it is 1. - -* `crlSeries` represents the CRL series to which this CRL belongs. This - is used to determine whether the revocation information in a CRL is relevant - to a particular certificate as specified in 5.1.3.2. - -* `crlCraca` contains the low-order eight octets of the hash of the - certificate of the Certificate Revocation Authorization CA (CRACA) that - ultimately authorized the issuance of this CRL. This is used to determine - whether the revocation information in a CRL is relevant to a particular - certificate as specified in 5.1.3.2. In a valid signed CRL as specified in - 7.4 the crlCraca is consistent with the associatedCraca field in the - Service Specific Permissions as defined in 7.4.3.3. The HashedId8 is - calculated with the whole-certificate hash algorithm, determined as - described in 6.4.3, applied to the COER-encoded certificate, canonicalized - as defined in the definition of Certificate. - -* `issueDate` specifies the time when the CRL was issued. - -* `nextCrl` contains the time when the next CRL with the same crlSeries - and cracaId is expected to be issued. The CRL is invalid unless nextCrl is - strictly after issueDate. This field is used to set the expected update time - for revocation information associated with the (crlCraca, crlSeries) pair as - specified in 5.1.3.6. - -* `priorityInfo` contains information that assists devices with limited - storage space in determining which revocation information to retain and - which to discard. - -* `typeSpecific` contains the CRL body. - - -```asn1 -CrlContents ::= SEQUENCE { - version Uint8 (1), - crlSeries CrlSeries, - crlCraca HashedId8, - issueDate Time32, - nextCrl Time32, - priorityInfo CrlPriorityInfo, - typeSpecific TypeSpecificCrlContents -} -``` - -### CrlPriorityInfo - -* `priority` indicates the priority of the revocation information - relative to other CRLs issued for certificates with the same cracaId and - crlSeries values. A higher value for this field indicates higher importance - of this revocation information. - - ->>> -NOTE: This mechanism is for future use; details are not specified in this - version of the standard. ->>> -```asn1 -CrlPriorityInfo ::= SEQUENCE { - priority Uint8 OPTIONAL, - ... -} -``` - -### TypeSpecificCrlContents - -* `fullHashCrl` contains a full hash-based CRL, i.e., a listing of the - hashes of all certificates that: - - contain the indicated cracaId and crlSeries values, and - - are revoked by hash, and - - have been revoked, and - - have not expired. - -* `deltaHashCrl` contains a delta hash-based CRL, i.e., a listing of - the hashes of all certificates that: - - contain the indicated cracaId and crlSeries values, and - - are revoked by hash, and - - have been revoked since the previous CRL that contained the indicated - cracaId and crlSeries values. - -* `fullLinkedCrl` and fullLinkedCrlWithAlg: contain a full linkage - ID-based CRL, i.e., a listing of the individual and/or group linkage data - for all certificates that: - - contain the indicated cracaId and crlSeries values, and - - are revoked by linkage value, and - - have been revoked, and - - have not expired. - The difference between fullLinkedCrl and fullLinkedCrlWithAlg is in how - the cryptographic algorithms to be used in the seed evolution function and - linkage value generation function of 5.1.3.4 are communicated to the - receiver of the CRL. See below in this subclause for details. - -* `deltaLinkedCrl` and deltaLinkedCrlWithAlg: contain a delta linkage - ID-based CRL, i.e., a listing of the individual and/or group linkage data - for all certificates that: - - contain the specified cracaId and crlSeries values, and - - are revoked by linkage data, and - - have been revoked since the previous CRL that contained the indicated - cracaId and crlSeries values. - The difference between deltaLinkedCrl and deltaLinkedCrlWithAlg is in how - the cryptographic algorithms to be used in the seed evolution function - and linkage value generation function of 5.1.3.4 are communicated to the - receiver of the CRL. See below in this subclause for details. - - ->>> -NOTE: Seed evolution function and linkage value generation function - identification. In order to derive linkage values per the mechanisms given - in 5.1.3.4, a receiver needs to know the seed evolution function and the - linkage value generation function. ->>> -```asn1 -TypeSpecificCrlContents ::= CHOICE { - fullHashCrl ToBeSignedHashIdCrl, - deltaHashCrl ToBeSignedHashIdCrl, - fullLinkedCrl ToBeSignedLinkageValueCrl, - deltaLinkedCrl ToBeSignedLinkageValueCrl, - ..., - fullLinkedCrlWithAlg ToBeSignedLinkageValueCrlWithAlgIdentifier, - deltaLinkedCrlWithAlg ToBeSignedLinkageValueCrlWithAlgIdentifier -} -``` - -### ToBeSignedHashIdCrl - -* `crlSerial` is a counter that increments by 1 every time a new full - or delta CRL is issued for the indicated crlCraca and crlSeries values. - -* `entries` contains the individual revocation information items. - - ->>> -NOTE: To indicate that a hash-based CRL contains no individual revocation - information items, the recommended approach is for the SEQUENCE OF in the - SequenceOfHashBasedRevocationInfo in this field to indicate zero entries. ->>> -```asn1 -ToBeSignedHashIdCrl ::= SEQUENCE { - crlSerial Uint32, - entries SequenceOfHashBasedRevocationInfo, - ... -} -``` - -### SequenceOfHashBasedRevocationInfo - -```asn1 -SequenceOfHashBasedRevocationInfo ::= - SEQUENCE OF HashBasedRevocationInfo -``` - -### HashBasedRevocationInfo - -* `id` is the HashedId10 identifying the revoked certificate. The - HashedId10 is calculated with the whole-certificate hash algorithm, - determined as described in 6.4.3, applied to the COER-encoded certificate, - canonicalized as defined in the definition of Certificate. - -* `expiry` is the value computed from the validity period's start and - duration values in that certificate. - - -```asn1 -HashBasedRevocationInfo ::= SEQUENCE { - id HashedId10, - expiry Time32, - ... -} -``` - -### ToBeSignedLinkageValueCrl - -* `iRev` is the value iRev used in the algorithm given in 5.1.3.4. This - value applies to all linkage-based revocation information included within - either indvidual or groups. - -* `indexWithinI` is a counter that is set to 0 for the first CRL issued - for the indicated combination of crlCraca, crlSeries, and iRev, and - increments by 1 every time a new full or delta CRL is issued for the - indicated crlCraca and crlSeries values without changing iRev. - -* `individual` contains individual linkage data. - -* `groups` contains group linkage data. - -* `groupsSingleSeed` contains group linkage data generated with a single - seed. - - - ->>> -NOTE: To indicate that a linkage ID-based CRL contains no group linkage - data, the recommended approach is for the SEQUENCE OF in the - SequenceOfGroupCrlEntry in this field to indicate zero entries. ->>> -```asn1 -ToBeSignedLinkageValueCrl ::= SEQUENCE { - iRev IValue, - indexWithinI Uint8, - individual SequenceOfJMaxGroup OPTIONAL, - groups SequenceOfGroupCrlEntry OPTIONAL, - ..., - groupsSingleSeed SequenceOfGroupSingleSeedCrlEntry OPTIONAL -} (WITH COMPONENTS {..., individual PRESENT} | - WITH COMPONENTS {..., groups PRESENT} | - WITH COMPONENTS {..., groupsSingleSeed PRESENT}) -``` - -### SequenceOfJMaxGroup - -```asn1 -SequenceOfJMaxGroup ::= SEQUENCE OF JMaxGroup -``` - -### JMaxGroup - -* `jMax` is the value jMax used in the algorithm given in 5.1.3.4. This - value applies to all linkage-based revocation information included within - contents. - -* `contents` contains individual linkage data. - - -```asn1 -JMaxGroup ::= SEQUENCE { - jmax Uint8, - contents SequenceOfLAGroup, - ... -} -``` - -### SequenceOfLAGroup - -```asn1 -SequenceOfLAGroup ::= SEQUENCE OF LAGroup -``` - -### LAGroup - -* `la1Id` is the value LinkageAuthorityIdentifier1 used in the - algorithm given in 5.1.3.4. This value applies to all linkage-based - revocation information included within contents. - -* `la2Id` is the value LinkageAuthorityIdentifier2 used in the - algorithm given in 5.1.3.4. This value applies to all linkage-based - revocation information included within contents. - -* `contents` contains individual linkage data. - - -```asn1 -LAGroup ::= SEQUENCE { - la1Id LaId, - la2Id LaId, - contents SequenceOfIMaxGroup, - ... -} -``` - -### SequenceOfIMaxGroup - -```asn1 -SequenceOfIMaxGroup ::= SEQUENCE OF IMaxGroup -``` - -### IMaxGroup - -* `iMax` indicates that for the entries in contents, revocation - information need no longer be calculated once iCert > iMax as the holder - is known to have no more valid certs at that point. iMax is not directly - used in the calculation of the linkage values, it is used to determine - when revocation information can safely be deleted. - -* `contents` contains individual linkage data for certificates that are - revoked using two seeds, per the algorithm given in per the mechanisms - given in 5.1.3.4 and with seedEvolutionFunctionIdentifier and - linkageValueGenerationFunctionIdentifier obtained as specified in 7.3.3. - -* `singleSeed` contains individual linkage data for certificates that - are revoked using a single seed, per the algorithm given in per the - mechanisms given in 5.1.3.4 and with seedEvolutionFunctionIdentifier and - linkageValueGenerationFunctionIdentifier obtained as specified in 7.3.3. - - -```asn1 -IMaxGroup ::= SEQUENCE { - iMax Uint16, - contents SequenceOfIndividualRevocation, - ..., - singleSeed SequenceOfLinkageSeed OPTIONAL -} -``` - -### SequenceOfIndividualRevocation - -```asn1 -SequenceOfIndividualRevocation ::= - SEQUENCE (SIZE(0..MAX)) OF IndividualRevocation -``` - -### IndividualRevocation - -* `linkageSeed1` is the value LinkageSeed1 used in the algorithm given - in 5.1.3.4. - -* `linkageSeed2` is the value LinkageSeed2 used in the algorithm given - in 5.1.3.4. - - -```asn1 -IndividualRevocation ::= SEQUENCE { - linkageSeed1 LinkageSeed, - linkageSeed2 LinkageSeed, - ... -} -``` - -### SequenceOfGroupCrlEntry - -```asn1 -SequenceOfGroupCrlEntry ::= SEQUENCE OF GroupCrlEntry -``` - -### GroupCrlEntry - -* `iMax` indicates that for these certificates, revocation information - need no longer be calculated once iCert > iMax as the holders are known - to have no more valid certs for that (crlCraca, crlSeries) at that point. - -* `la1Id` is the value LinkageAuthorityIdentifier1 used in the - algorithm given in 5.1.3.4. This value applies to all linkage-based - revocation information included within contents. - -* `linkageSeed1` is the value LinkageSeed1 used in the algorithm given - in 5.1.3.4. - -* `la2Id` is the value LinkageAuthorityIdentifier2 used in the - algorithm given in 5.1.3.4. This value applies to all linkage-based - revocation information included within contents. - -* `linkageSeed2` is the value LinkageSeed2 used in the algorithm given - in 5.1.3.4. - - -```asn1 -GroupCrlEntry ::= SEQUENCE { - iMax Uint16, - la1Id LaId, - linkageSeed1 LinkageSeed, - la2Id LaId, - linkageSeed2 LinkageSeed, - ... -} -``` - -### ToBeSignedLinkageValueCrlWithAlgIdentifier - -* `iRev` is the value iRev used in the algorithm given in 5.1.3.4. This - value applies to all linkage-based revocation information included within - either indvidual or groups. - -* `indexWithinI` is a counter that is set to 0 for the first CRL issued - for the indicated combination of crlCraca, crlSeries, and iRev, and increments by 1 every time a new full or delta CRL is issued for the indicated crlCraca and crlSeries values without changing iRev. - -* `seedEvolution` contains an identifier for the seed evolution - function, used as specified in 5.1.3.4. - -* `lvGeneration` contains an identifier for the linkage value - generation function, used as specified in 5.1.3.4. - -* `individual` contains individual linkage data. - -* `groups` contains group linkage data for linkage value generation - with two seeds. - -* `groupsSingleSeed` contains group linkage data for linkage value - generation with one seed. - - -```asn1 -ToBeSignedLinkageValueCrlWithAlgIdentifier ::= SEQUENCE { - iRev IValue, - indexWithinI Uint8, - seedEvolution SeedEvolutionFunctionIdentifier, - lvGeneration LvGenerationFunctionIdentifier, - individual SequenceOfJMaxGroup OPTIONAL, - groups SequenceOfGroupCrlEntry OPTIONAL, - groupsSingleSeed SequenceOfGroupSingleSeedCrlEntry OPTIONAL, - ... -} (WITH COMPONENTS {..., individual PRESENT} | - WITH COMPONENTS {..., groups PRESENT} | - WITH COMPONENTS {..., groupsSingleSeed PRESENT}) -``` - -### SequenceOfGroupSingleSeedCrlEntry - -```asn1 -SequenceOfGroupSingleSeedCrlEntry ::= - SEQUENCE OF GroupSingleSeedCrlEntry -``` - -### GroupSingleSeedCrlEntry - -```asn1 -GroupSingleSeedCrlEntry ::= SEQUENCE { - iMax Uint16, - laId LaId, - linkageSeed LinkageSeed -} -``` - -### ExpansionAlgorithmIdentifier - -```asn1 -ExpansionAlgorithmIdentifier ::= ENUMERATED { - sha256ForI-aesForJ, - sm3ForI-sm4ForJ, - ... -} -``` - -### SeedEvolutionFunctionIdentifier - -```asn1 -SeedEvolutionFunctionIdentifier ::= NULL -``` - -### LvGenerationFunctionIdentifier - -```asn1 -LvGenerationFunctionIdentifier ::= NULL -``` - - - diff --git a/docs/SaeJ3287AsrBsm.md b/docs/SaeJ3287AsrBsm.md index bfd2feb..45f846e 100644 --- a/docs/SaeJ3287AsrBsm.md +++ b/docs/SaeJ3287AsrBsm.md @@ -2,8 +2,8 @@ OID: _{joint-iso-itu-t (2) country (16) us (840) organization (1) sae (114566) v2x-communications (1) technical-committees (1) v2x-security (4) technical-reports (1) misbehavior-reporting (1) asn1-module (1) aid-specific(2) bsm(32) version-1 (1) version-minor-0 (0)}_ ## Data Elements: -### AsrBsm +### AsrBsm ```asn1 AsrBsm ::= NULL ``` -- GitLab