From a207fdc74ea0312121a26e23089f5d5c8fefcf5a Mon Sep 17 00:00:00 2001 From: "ASN.1 Checker" Date: Thu, 25 Jan 2024 09:07:50 +0000 Subject: [PATCH 1/5] Documentation update --- docs/EtsiTs103097ExtensionModule.md | 11 +++ docs/EtsiTs103097Module.md | 6 ++ docs/EtsiTs103759AsrCam.md | 12 +++ docs/EtsiTs103759BaseTypes.md | 6 +- docs/EtsiTs103759Core.md | 9 ++ docs/Ieee1609Dot2.md | 68 ++++++++++---- docs/Ieee1609Dot2BaseTypes.md | 137 +++++++++++++++++++++++++--- 7 files changed, 218 insertions(+), 31 deletions(-) diff --git a/docs/EtsiTs103097ExtensionModule.md b/docs/EtsiTs103097ExtensionModule.md index 56bb656..d84e92a 100644 --- a/docs/EtsiTs103097ExtensionModule.md +++ b/docs/EtsiTs103097ExtensionModule.md @@ -10,6 +10,9 @@ ExtensionModuleVersion::= INTEGER(1) ``` ### Extension + +* _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}), @@ -18,6 +21,8 @@ Extension {EXT-TYPE : ExtensionTypes} ::= SEQUENCE { ``` ### EXT-TYPE + +* _extId_ of type [**ExtId**](#ExtId)
```asn1 EXT-TYPE ::= CLASS { &extId ExtId, @@ -52,6 +57,9 @@ EtsiTs103097HeaderInfoExtensions EXT-TYPE ::= { ``` ### EtsiTs102941CrlRequest + +* _issuerId_ of type [**HashedId8**](Ieee1609Dot2BaseTypes.md#HashedId8)
+* _lastKnownUpdate_ of type [**Time32**](Ieee1609Dot2BaseTypes.md#Time32) OPTIONAL
```asn1 EtsiTs102941CrlRequest::= SEQUENCE { issuerId HashedId8, @@ -60,6 +68,9 @@ EtsiTs102941CrlRequest::= SEQUENCE { ``` ### EtsiTs102941CtlRequest + +* _issuerId_ of type [**HashedId8**](Ieee1609Dot2BaseTypes.md#HashedId8)
+* _lastKnownCtlSequence_ of type **INTEGER** (0..255) OPTIONAL
```asn1 EtsiTs102941CtlRequest::= SEQUENCE { issuerId HashedId8, diff --git a/docs/EtsiTs103097Module.md b/docs/EtsiTs103097Module.md index dd60019..6bb42c7 100644 --- a/docs/EtsiTs103097Module.md +++ b/docs/EtsiTs103097Module.md @@ -110,6 +110,9 @@ EtsiTs103097Data-Encrypted {ToBeEncryptedDataContent} ::= EtsiTs103097Data (WITH ``` ### EtsiTs103097Data-SignedAndEncrypted + +Values: +* **EtsiTs103097Data-Signed** {ToBesignedAndEncryptedDataContent}
```asn1 EtsiTs103097Data-SignedAndEncrypted {ToBesignedAndEncryptedDataContent} ::= EtsiTs103097Data-Encrypted {EtsiTs103097Data-Signed {ToBesignedAndEncryptedDataContent}} ``` @@ -126,6 +129,9 @@ EtsiTs103097Data-Encrypted-Unicast {ToBeEncryptedDataContent} ::= EtsiTs103097Da ``` ### EtsiTs103097Data-SignedAndEncrypted-Unicast + +Values: +* **EtsiTs103097Data-Signed** {ToBesignedAndEncryptedDataContent}
```asn1 EtsiTs103097Data-SignedAndEncrypted-Unicast {ToBesignedAndEncryptedDataContent} ::= EtsiTs103097Data-Encrypted {EtsiTs103097Data-Signed {ToBesignedAndEncryptedDataContent}} (WITH COMPONENTS {..., content (WITH COMPONENTS { diff --git a/docs/EtsiTs103759AsrCam.md b/docs/EtsiTs103759AsrCam.md index 77219e3..f88327e 100644 --- a/docs/EtsiTs103759AsrCam.md +++ b/docs/EtsiTs103759AsrCam.md @@ -43,6 +43,14 @@ SetMbObsCamStatic C-ASR-SINGLE-OBS ::= { ``` ### 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 | @@ -65,6 +73,10 @@ SetMbObsCamPosition C-ASR-SINGLE-OBS ::= { ``` ### SetMbObsCamSpeed + +Values: +* **obs-Speed-ValueTooLarge-VehicleType** |
+* **obs-Speed-ValueTooLarge-DriveDirectionReverse** |
```asn1 SetMbObsCamSpeed C-ASR-SINGLE-OBS ::= { obs-Speed-ValueTooLarge-VehicleType | diff --git a/docs/EtsiTs103759BaseTypes.md b/docs/EtsiTs103759BaseTypes.md index 44fb007..21a0b4d 100644 --- a/docs/EtsiTs103759BaseTypes.md +++ b/docs/EtsiTs103759BaseTypes.md @@ -19,7 +19,7 @@ This data type contains the template for a report on any ITS PDU. the observations field, plus other PDUs sent for the same application (AID) by the same sender). -* _nonV2xPduEvidence_ of type [**NonV2xPduEvidenceItemSequence**](#NonV2xPduEvidenceItemSequence) {{NonV2xPduEvidenceSet}
+* 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 @@ -103,6 +103,7 @@ C-ASR-SINGLE-OBS ::= C-2ENT ### V2xPduStream This data type contains PDU stream from a single sender. +* _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 @@ -215,6 +216,7 @@ 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 ``` @@ -223,6 +225,8 @@ C-ASR-EV ::= 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. + +* _id_ of type [**Uint8**](Ieee1609Dot2BaseTypes.md#Uint8)
```asn1 C-2ENT ::= CLASS { &id Uint8, diff --git a/docs/EtsiTs103759Core.md b/docs/EtsiTs103759Core.md index f0ebbe6..4c3edec 100644 --- a/docs/EtsiTs103759Core.md +++ b/docs/EtsiTs103759Core.md @@ -112,23 +112,32 @@ SetAsr C-ASR ::= { } ``` +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. >>> + ```asn1 c-AsrAppAgnostic Psid ::= 270549119 ``` +This data type contains the ITS-AID of the CA service. + ```asn1 c-AsrCam Psid ::= 36 ``` +This data type contains the ITS-AID of the DEN service. + ```asn1 c-AsrDenm Psid ::= 37 ``` +This data type contains the ITS-AID of the BSM. + ```asn1 c-AsrBsm Psid ::= 32 ``` diff --git a/docs/Ieee1609Dot2.md b/docs/Ieee1609Dot2.md index 79ee07e..25decf9 100644 --- a/docs/Ieee1609Dot2.md +++ b/docs/Ieee1609Dot2.md @@ -25,6 +25,7 @@ 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), @@ -54,14 +55,13 @@ Ieee1609Dot2Data ::= SEQUENCE { 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, @@ -110,6 +110,7 @@ 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, @@ -152,6 +153,7 @@ NOTE: Canonicalization: This data structure is subject to canonicalization applies to the SignedDataPayload if it is of type data, and to the HeaderInfo. >>> + ```asn1 ToBeSignedData ::= SEQUENCE { payload SignedDataPayload, @@ -184,14 +186,13 @@ ToBeSignedData ::= SEQUENCE { 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, @@ -212,8 +213,6 @@ SignedDataPayload ::= SEQUENCE { * _sha384HashedData_ of type [**HashedId48**](Ieee1609Dot2BaseTypes.md#HashedId48)
indicates data hashed with SHA-384. - - ..., * _sm3HashedData_ of type [**HashedId32**](Ieee1609Dot2BaseTypes.md#HashedId32)
indicates data hashed with SM3. @@ -225,6 +224,7 @@ NOTE: Critical information fields: If present, this is a critical 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 HashedId32, @@ -291,8 +291,6 @@ HashedData::= CHOICE { to the COER-encoded certificate, canonicalized as defined in the definition of Certificate. - - ..., * _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 @@ -320,6 +318,7 @@ NOTE: Canonicalization: This data structure is subject to canonicalization The canonicalization does not apply to any fields after the extension marker, including any fields in contributedExtensions. >>> + ```asn1 HeaderInfo ::= SEQUENCE { psid Psid, @@ -436,7 +435,8 @@ ContributedExtensionBlock ::= SEQUENCE { ### This Information Object Class defines the class that provides a template for defining extension blocks. - + +* _id_ of type [**HeaderInfoContributorId**](#HeaderInfoContributorId) UNIQUE
```asn1 IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION ::= CLASS { &id HeaderInfoContributorId UNIQUE, @@ -513,6 +513,7 @@ 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, @@ -576,6 +577,7 @@ NOTE: If the plaintext is raw data, i.e., it has not been output from a 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, @@ -634,6 +636,7 @@ 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, @@ -731,6 +734,10 @@ Critical information fields: If present and applicable to 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. + +* _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, @@ -743,6 +750,9 @@ EncryptedDataEncryptionKey ::= CHOICE { ### This data structure encapsulates a ciphertext generated with an approved symmetric algorithm. +* _aes128ccm_ of type [**One28BitCcmCiphertext**](#One28BitCcmCiphertext)
+* _sm4Ccm_ of type [**One28BitCcmCiphertext**](#One28BitCcmCiphertext)
+ >>> NOTE: Critical information fields: If present, this is a critical information field as defined in 5.2.6. An implementation that does not @@ -750,6 +760,7 @@ NOTE: Critical information fields: If present, this is a critical 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 One28BitCcmCiphertext, @@ -786,6 +797,7 @@ NOTE: In the name of this structure, "One28" indicates that the bits affects only the size of the MAC and does not affect the size of the raw ciphertext. >>> + ```asn1 One28BitCcmCiphertext ::= SEQUENCE { nonce OCTET STRING (SIZE (12)), @@ -808,6 +820,7 @@ 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 TestCertificate ::= Certificate ``` @@ -862,6 +875,7 @@ NOTE: Whole-certificate hash: If the entirety of a certificate is hashed 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), @@ -883,6 +897,7 @@ NOTE: Critical information fields: If present, this is a critical that is, it is invalid in the sense that its validity cannot be established. >>> + ```asn1 CertificateType ::= ENUMERATED { explicit, @@ -937,6 +952,11 @@ If the choice indicated is sha256AndDigest, sha384AndDigest, or - The certificate is to be verified with the public key indicated by the verifyKeyIndicator field in theToBeSignedCertificate. +* _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 information field as defined in 5.2.5. An implementation that does not @@ -945,6 +965,7 @@ NOTE: Critical information fields: If present, this is a critical that is, it is invalid in the sense that its validity cannot be established. >>> + ```asn1 IssuerIdentifier ::= CHOICE { sha256AndDigest HashedId8, @@ -1051,7 +1072,7 @@ For both implicit and explicit certificates, when the certificate contains material that may be used to recover the public key that may be used to verify data signed by this certificate. -* _flags_ of type **BIT STRING** {usesCubk (0)
+* 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 @@ -1059,8 +1080,6 @@ For both implicit and explicit certificates, when the certificate 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. @@ -1132,6 +1151,7 @@ NOTE: Critical information fields: (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, @@ -1183,6 +1203,7 @@ NOTE: Critical information fields: An implementation that does not recognize the choice indicated in this field shall reject a signed SPDU as invalid. >>> + ```asn1 CertificateId ::= CHOICE { linkageData LinkageData, @@ -1197,7 +1218,10 @@ CertificateId ::= CHOICE { 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. - + +* _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, @@ -1229,7 +1253,8 @@ LinkageData ::= SEQUENCE { it indicates that the certificate chain may be any length equal to or greater than minChainLength. See the examples below for further discussion. -* _eeType_ of type [**EndEntityType**](#EndEntityType) DEFAULT {app
+* _chainLengthRange_ of type **INTEGER** DEFAULT 0
+* 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. @@ -1272,6 +1297,9 @@ SequenceOfPsidGroupPermissions ::= SEQUENCE OF PsidGroupPermissions PsidGroupPermissions in the same certIssuePermissions or certRequestPermissions field. +* _explicit_ of type [**SequenceOfPsidSspRange**](Ieee1609Dot2BaseTypes.md#SequenceOfPsidSspRange)
+* _all_ of type **NULL**
+ >>> NOTE: Critical information fields: - If present, this is a critical information field as defined in 5.2.6. @@ -1286,6 +1314,7 @@ NOTE: Critical information fields: sense that its validity cannot be established. A conformant implementation shall support explicit fields containing at least eight entries. >>> + ```asn1 SubjectPermissions ::= CHOICE { explicit SequenceOfPsidSspRange, @@ -1316,6 +1345,7 @@ NOTE: Canonicalization: This data structure is subject to canonicalization choice indicated within the EccP256CurvePoint is compressed-y-0 or compressed-y-1. >>> + ```asn1 VerificationKeyIndicator ::= CHOICE { verificationKey PublicVerificationKey, @@ -1403,8 +1433,9 @@ SequenceOfCertIssueExtensions ::= * _id_ of type [**CERT-EXT-TYPE**](Ieee1609Dot2BaseTypes.md#CERT-EXT-TYPE) .&id({SetCertExtensions})
identifies the extension type. -* _permissions_ of type [**CHOICE**](#CHOICE) { - specific CERT-EXT-TYPE.&Issue({SetCertExtensions}{@.id})
+* _specific_ of type [**CERT-EXT-TYPE**](Ieee1609Dot2BaseTypes.md#CERT-EXT-TYPE) .&Issue({SetCertExtensions}{@.id})
+* _all_ of type **NULL**
+* permissions
indicates the permissions. Within this field. - all indicates that the certificate is entitled to issue all values of the extension. @@ -1446,8 +1477,9 @@ SequenceOfCertRequestExtensions ::= SEQUENCE (SIZE(1..MAX)) OF CertRequestExtens * _id_ of type [**CERT-EXT-TYPE**](Ieee1609Dot2BaseTypes.md#CERT-EXT-TYPE) .&id({SetCertExtensions})
identifies the extension type. -* _permissions_ of type [**CHOICE**](#CHOICE) { - content CERT-EXT-TYPE.&Req({SetCertExtensions}{@.id})
+* _content_ of type [**CERT-EXT-TYPE**](Ieee1609Dot2BaseTypes.md#CERT-EXT-TYPE) .&Req({SetCertExtensions}{@.id})
+* _all_ of type **NULL**
+* permissions
indicates the permissions. Within this field. - all indicates that the certificate is entitled to issue all values of the extension. diff --git a/docs/Ieee1609Dot2BaseTypes.md b/docs/Ieee1609Dot2BaseTypes.md index 0a9ce10..87b223d 100644 --- a/docs/Ieee1609Dot2BaseTypes.md +++ b/docs/Ieee1609Dot2BaseTypes.md @@ -206,7 +206,9 @@ Time64 ::= Uint64 ### 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. - + +* _start_ of type [**Time32**](Ieee1609Dot2BaseTypes.md#Time32)
+* _duration_ of type [**Duration**](#Duration)
```asn1 ValidityPeriod ::= SEQUENCE { start Time32, @@ -219,10 +221,19 @@ ValidityPeriod ::= SEQUENCE { by the indicated choice. A year is considered to be 31556952 seconds, which is the average number of seconds in a year. +* _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 choice for up to 7 years and the sixtyHours choice for up to 448 years. >>> + ```asn1 Duration ::= CHOICE { microseconds Uint16, @@ -280,6 +291,7 @@ NOTE: Critical information fields: that its validity cannot be established. A conformant implementation shall support identifiedRegion fields containing at least eight entries. >>> + ```asn1 GeographicRegion ::= CHOICE { circularRegion CircularRegion, @@ -297,7 +309,9 @@ GeographicRegion ::= CHOICE { 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. - + +* _center_ of type [**TwoDLocation**](#TwoDLocation)
+* _radius_ of type [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
```asn1 CircularRegion ::= SEQUENCE { center TwoDLocation, @@ -356,6 +370,7 @@ NOTE: Critical information fields: If present, this is a critical implementation shall support PolygonalRegions containing at least eight TwoDLocation entries. >>> + ```asn1 PolygonalRegion ::= SEQUENCE SIZE (3..MAX) OF TwoDLocation ``` @@ -364,6 +379,9 @@ PolygonalRegion ::= SEQUENCE SIZE (3..MAX) OF TwoDLocation certificates. The latitude and longitude fields contain the latitude and longitude as defined above. +* _latitude_ of type [**Latitude**](#Latitude)
+* _longitude_ of type [**Longitude**](#Longitude)
+ >>> NOTE: This data structure is consistent with the location encoding used in SAE J2735, except that values 900 000 001 for latitude (used to @@ -371,6 +389,7 @@ NOTE: This data structure is consistent with the location encoding longitude (used to indicate that the longitude was not available) are not valid. >>> + ```asn1 TwoDLocation ::= SEQUENCE { latitude Latitude, @@ -625,11 +644,16 @@ SequenceOfRegionAndSubregions ::= SEQUENCE OF RegionAndSubregions ### This structure contains an estimate of 3D location. The details of the structure are given in the definitions of the individual fields below. +* _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 location data structures used in SAE J2735 [B26], though the encoding is incompatible. >>> + ```asn1 ThreeDLocation ::= SEQUENCE { latitude Latitude, @@ -672,7 +696,11 @@ Elevation ::= Uint16 ### 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. - + +Values: +* **min** (-900000000)
+* **max** (900000000)
+* **unknown** (900000001)
```asn1 NinetyDegreeInt ::= INTEGER { min (-900000000), @@ -698,7 +726,11 @@ UnknownLatitude ::= NinetyDegreeInt (unknown) ### 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. - + +Values: +* **min** (-1799999999)
+* **max** (1800000000)
+* **unknown** (1800000001)
```asn1 OneEightyDegreeInt ::= INTEGER { min (-1799999999), @@ -724,12 +756,19 @@ UnknownLongitude ::= OneEightyDegreeInt (unknown) ### This structure represents a signature for a supported public key algorithm. It may be contained within SignedData or Certificate. +* _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 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, @@ -762,6 +801,9 @@ If the signature process followed the specification of FIPS 186-4 - p = A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F6E5377 - n = A9FB57DBA1EEA9BC3E660A909D838D718C397AA3B561A6F7901E0E82974856A7 +* _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 an integer mod n, the order of the group; when the signature is of form @@ -776,6 +818,7 @@ NOTE: When the signature is of form x-only, the x-value in rSig is 256-bit curves in this standard, the exact values of n and p in hexadecimal are: >>> + ```asn1 EcdsaP256Signature ::= SEQUENCE { rSig EccP256CurvePoint, @@ -794,6 +837,9 @@ If the signature process followed the specification of FIPS 186-4 represented as an EccP384CurvePoint indicating the choice compressed-y-0, compressed-y-1, or uncompressed at the sender's discretion. +* _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 an integer mod n, the order of the group; when the signature is of form @@ -811,6 +857,7 @@ NOTE: When the signature is of form x-only, the x-value in rSig is - n = 8CB91E82A3386D280F5D6F7E50E641DF152F7109ED5456B31F166E6CAC0425A7 CF3AB6AF6B7FC3103B883202E9046565 >>> + ```asn1 EcdsaP384Signature ::= SEQUENCE { rSig EccP384CurvePoint, @@ -821,7 +868,9 @@ EcdsaP384Signature ::= SEQUENCE { ### 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. - + +* _rSig_ of type **OCTET STRING** (SIZE (32))
+* _sSig_ of type **OCTET STRING** (SIZE (32))
```asn1 EcsigP256Signature ::= SEQUENCE { rSig OCTET STRING (SIZE (32)), @@ -845,6 +894,13 @@ EcsigP256Signature ::= SEQUENCE { 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. +* _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))
+* _x_ of type **OCTET STRING** (SIZE (32))
+* _y_ of type **OCTET STRING** (SIZE (32))
+ >>> NOTE: Canonicalization: This data structure is subject to canonicalization for the relevant operations specified in 6.1.2 if it appears in a @@ -852,6 +908,7 @@ NOTE: Canonicalization: This data structure is subject to canonicalization and ToBeSignedCertificate for a specification of the canonicalization operations. >>> + ```asn1 EccP256CurvePoint::= CHOICE { x-only OCTET STRING (SIZE (32)), @@ -880,6 +937,13 @@ EccP256CurvePoint::= CHOICE { 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. +* _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))
+* _x_ of type **OCTET STRING** (SIZE (48))
+* _y_ of type **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 @@ -887,6 +951,7 @@ NOTE: Canonicalization: This data structure is subject to canonicalization and ToBeSignedCertificate for a specification of the canonicalization operations. >>> + ```asn1 EccP384CurvePoint::= CHOICE { x-only OCTET STRING (SIZE (48)), @@ -926,6 +991,7 @@ NOTE: Critical information fields: This is a critical information field as 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, @@ -996,6 +1062,9 @@ EcencP256EncryptedKey ::= SEQUENCE { ### This structure contains an encryption key, which may be a public or a symmetric key. +* _public_ of type [**PublicEncryptionKey**](Ieee1609Dot2BaseTypes.md#PublicEncryptionKey)
+* _symmetric_ of type [**SymmetricEncryptionKey**](Ieee1609Dot2BaseTypes.md#SymmetricEncryptionKey)
+ >>> NOTE: Canonicalization: This data structure is subject to canonicalization for the relevant operations specified in 6.1.2 if it appears in a @@ -1004,6 +1073,7 @@ NOTE: Canonicalization: This data structure is subject to canonicalization ToBeSignedCertificate for a specification of the canonicalization operations. >>> + ```asn1 EncryptionKey ::= CHOICE { public PublicEncryptionKey, @@ -1015,6 +1085,9 @@ EncryptionKey ::= CHOICE { symmetric algorithm which is used for bulk data encryption when encrypting for that public key. +* _supportedSymmAlg_ of type [**SymmAlgorithm**](#SymmAlgorithm)
+* _publicKey_ of type [**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 @@ -1023,6 +1096,7 @@ NOTE: Canonicalization: This data structure is subject to canonicalization ToBeSignedCertificate for a specification of the canonicalization operations. >>> + ```asn1 PublicEncryptionKey ::= SEQUENCE { supportedSymmAlg SymmAlgorithm, @@ -1034,6 +1108,10 @@ PublicEncryptionKey ::= SEQUENCE { a particular algorithm. Supported public key encryption algorithms are defined in 5.3.5. +* _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 for the relevant operations specified in 6.1.2 if it appears in a @@ -1041,6 +1119,7 @@ NOTE: Canonicalization: This data structure is subject to canonicalization and ToBeSignedCertificate for a specification of the canonicalization operations. >>> + ```asn1 BasePublicEncryptionKey ::= CHOICE { eciesNistP256 EccP256CurvePoint, @@ -1054,7 +1133,13 @@ BasePublicEncryptionKey ::= CHOICE { 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. + structure is invalid if it indicates the choice x-only. + +* _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 @@ -1063,6 +1148,7 @@ NOTE: Canonicalization: This data structure is subject to canonicalization 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, @@ -1077,7 +1163,9 @@ PublicVerificationKey ::= CHOICE { ### 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. - + +* _aes128Ccm_ of type **OCTET STRING** (SIZE(16))
+* _sm4Ccm_ of type **OCTET STRING** (SIZE(16))
```asn1 SymmetricEncryptionKey ::= CHOICE { aes128Ccm OCTET STRING(SIZE(16)), @@ -1092,6 +1180,9 @@ SymmetricEncryptionKey ::= CHOICE { For consistency rules for other forms of the ssp field, see the following subclauses. +* _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 appPermissions entry A for which the ssp field is omitted, A is consistent @@ -1103,6 +1194,7 @@ NOTE: Consistency with issuing certificate: If a certificate has an - 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, @@ -1136,6 +1228,9 @@ SequenceOfPsid ::= SEQUENCE OF Psid For consistency rules for other types of ServiceSpecificPermissions, see the following subclauses. +* _opaque_ of type **OCTET STRING** (SIZE(0..MAX))
+* _bitmapSsp_ of type [**BitmapSsp**](#BitmapSsp)
+ >>> NOTE: Consistency with issuing certificate: If a certificate has an appPermissions entry A for which the ssp field is opaque, A is consistent @@ -1151,6 +1246,7 @@ NOTE: Consistency with issuing certificate: If a certificate has an 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)), @@ -1172,6 +1268,7 @@ NOTE: A BitmapSsp B is consistent with a BitmapSspRange R if for every 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)) ``` @@ -1215,11 +1312,16 @@ If a certificate has a PsidSspRange A for which the ssp field is all, For consistency rules for other types of SspRange, see the following subclauses. +* _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 SspRange in the enclosing PsidSspRange structure. Omitting the SspRange is preferred to explicitly indicating "all". >>> + ```asn1 SspRange ::= CHOICE { opaque SequenceOfOctetString, @@ -1235,6 +1337,9 @@ SspRange ::= CHOICE { sspValue and sspBitmask fields shall be of the same length. Reference ETSI TS 103 097 for more information on bitmask SSPs. +* _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 PsidSspRange value P for which the sspRange field is bitmapSspRange, @@ -1253,6 +1358,7 @@ NOTE: Consistency with issuing certificate: If a certificate has an - 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)), @@ -1288,6 +1394,7 @@ 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)) ``` @@ -1321,7 +1428,9 @@ LinkageValue ::= OCTET STRING (SIZE(9)) ### This is the group linkage value. See 5.1.3 and 7.3 for details of use. - + +* _jValue_ of type **OCTET STRING** (SIZE(4))
+* _value_ of type **OCTET STRING** (SIZE(9))
```asn1 GroupLinkageValue ::= SEQUENCE { jValue OCTET STRING (SIZE(4)), @@ -1353,7 +1462,8 @@ LinkageSeed ::= OCTET STRING (SIZE(16)) information about a set of certificate extensions that are associated with each other: an AppExtension, a CertIssueExtension, and a CertRequestExtension. - + +* _id_ of type [**ExtId**](Ieee1609Dot2BaseTypes.md#ExtId)
```asn1 CERT-EXT-TYPE ::= CLASS { &id ExtId, @@ -1365,8 +1475,10 @@ CERT-EXT-TYPE ::= CLASS { ### 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. - + the class EXT-TYPE. + +* _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}), @@ -1376,7 +1488,8 @@ Extension {EXT-TYPE : ExtensionTypes} ::= SEQUENCE { ### This class defines objects in a form suitable for import into the definition of HeaderInfo. - + +* _extId_ of type [**ExtId**](Ieee1609Dot2BaseTypes.md#ExtId)
```asn1 EXT-TYPE ::= CLASS { &extId ExtId, -- GitLab From 822af94f3e4d2d2b9574b0b1b62992f432424661 Mon Sep 17 00:00:00 2001 From: loncb Date: Fri, 26 Jan 2024 12:25:29 +0000 Subject: [PATCH 2/5] Update file EtsiTs103759AsrDenm.asn --- EtsiTs103759AsrDenm.asn | 152 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 148 insertions(+), 4 deletions(-) diff --git a/EtsiTs103759AsrDenm.asn b/EtsiTs103759AsrDenm.asn index cce2064..1308bed 100755 --- a/EtsiTs103759AsrDenm.asn +++ b/EtsiTs103759AsrDenm.asn @@ -1,14 +1,158 @@ 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)} + major-version-1(1) minor-version-1(1)} DEFINITIONS AUTOMATIC TAGS ::= BEGIN EXPORTS ALL; -/** - * This data type is defined as NULL for version 0 of this file. +IMPORTS +C-ASR-EV, +C-ASR-OBS-BY-TGT, +C-ASR-SINGLE-OBS, +MbSingleObservation, +TemplateAsr +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 + + 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-RoadTypeIncWithTrafficJamAhead, + obs-PathChangeInMultipleRepetitions, + obs-EeblMissingLocationInformation, + obs-EeblIncWithOtherVehiclesSpeed + FROM EtsiTs103759CommonObservations {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-2(2)} + 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-4(4)} +WITH SUCCESSORS +; + + /* This data type is for reporting DENM issues. */ +AsrDenm ::= TemplateAsr {{SetMbObsTgtsDenm}, {SetMbEvDenm}} + + /* Identify target classes for DENM */ +IdDenmTgt ::= Uint8 + +c-DenmTgt-BeaconCommon IdDenmTgt ::= 0 +c-DenmTgt-StaticCommon IdDenmTgt ::= 1 +c-DenmTgt-SecurityCommon IdDenmTgt ::= 2 +c-DenmTgt-TrafficJam-TrafficJamAhead IdDenmTgt ::= 3 +c-DenmTgt-DangerousSituation-Eebl IdDenmTgt ::= 4 + +SetMbObsDenmBeacon C-ASR-SINGLE-OBS ::= { + obs-Beacon-IntervalTooSmall, + ... +} + +SetMbObsDenmStatic C-ASR-SINGLE-OBS ::= { + obs-Static-Change, + ... +} + +SetMbObsDenmSecurity 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, + ... +} + +SetMbObsDenmTrafficJam-TrafficJamAhead C-ASR-SINGLE-OBS ::= { + obs-RoadTypeIncWithTrafficJamAhead | + obs-PathChangeInMultipleRepetitions, + ... +} + +SetMbObsDenmDangerousSituation-Eebl C-ASR-SINGLE-OBS ::= { + obs-EeblMissingLocationInformation | + obs-EeblIncWithOtherVehiclesSpeed, + ... +} + +/* +* This is a (sub)set of observations for DENM Use Cases specified in TS 103 759 Annex D.2 (see table D.3). Application-specific +* trigger conditions and other relevant information are specified below. +* +* - _SetMbObsDenmBeacon_: +* - `Beacon-IntervalTooSmall`: The difference between the generation + * time of two consecutive DENMs is less than 80% of the value specified in TS + * 103 900831 v2.1.1 section 6.1.3. The difference is calculated as the difference + * between the two values of generationDeltaTime. The two DENMs 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 DENM 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. +* +* - _SetMbObsDenmStatic_: +* - `Static-Change`: Any change in the values of one or more of the following fields which happens +* during the repetition of the same traffic event (same actionId and referenceTime) +* transmitted by the same ITS station (stationId): stationType and eventPosition in the Management Container, eventType and informationQuality in the Situation Container. +* - `Semantics of the BIT STRING`: stationType(0), eventPosition(1), eventType(2), informationQuality(3). +* +* - _SetMbObsDenmSecurity_ +* The same specification applies as for the set of observations of SetMbObsCamSecurity defined in +* the EtsiTs103759AsrCam module. +* +* - _SetMbObs_DenmTrafficJam-TrafficJamAhead_: +* - `obs-RoadTypeIncWithTrafficJamAhead`: The roadType of the Location Container is not equal to 'non-urban' road type (i.e. is not set to value +* nonUrban-NoStructuralSeparationToOppositeLanes (2), +* nonUrban-WithStructuralSeparationToOppositeLanes (3)). +* +* - `obs-PathChangeInMultipleEventRepetitions`: The pathPositions contained in the path field of multiple repeated TrafficJamAhead events +* with the same reporting ITS-S, same actionId and same referenceTime are not identical. +* +* - _SetMbObs_DenmDangerousSituation-Eebl_: +* - `obs-EeblMissingLocationInformation`: one of the following location information of the detected event is missing: eventSpeed, eventPositionHeading, traces. +* +* - `obs-EeblIncWithOtherVehiclesSpeed`: the speed values of all CAMs sent by ITS-S stations of stationType =passengerCar(5) in the circular area with center point +* equal to eventPosition and radius equal to 200 m (urban road) or equal to 100m (non-urban or unkwown) +* are all higher than the eventSpeed in the DENM. +*/ +SetMbObsTgtsDenm C-ASR-OBS-BY-TGT ::= { + {MbSingleObservation{{SetMbObsDenmBeacon}} BY + c-DenmTgt-BeaconCommon} | + {MbSingleObservation{{SetMbObsDenmStatic}} BY + c-DenmTgt-StaticCommon} | + {MbSingleObservation{{SetMbObsDenmSecurity}} BY + c-DenmTgt-SecurityCommon} | + {MbSingleObservation{{SetMbObsDenmTrafficJam-TrafficJamAhead}} BY + c-DenmTgt-TrafficJam-TrafficJamAhead} | + {MbSingleObservation{{SetMbObsDenmDangerousSituation-Eebl}} BY + c-DenmTgt-DangerousSituation-Eebl} + , + ... +} + +/* + * This data type defines the IOS for DENM Evidence. */ -AsrDenm ::= NULL +SetMbEvDenm C-ASR-EV ::= { + ... +} + + +/* This data type is defined as NULL for version 0 of this file. +* AsrDenm ::= NULL +*/ END \ No newline at end of file -- GitLab From 39f698b459d6eb2c08cc5439e5c8b08a416443ef Mon Sep 17 00:00:00 2001 From: loncb Date: Fri, 26 Jan 2024 13:37:40 +0000 Subject: [PATCH 3/5] Replace EtsiTs103759CommonObservations.asn --- EtsiTs103759CommonObservations.asn | 99 +++++++++++++++++++++++++++++- 1 file changed, 97 insertions(+), 2 deletions(-) diff --git a/EtsiTs103759CommonObservations.asn b/EtsiTs103759CommonObservations.asn index 6728b67..140553c 100644 --- a/EtsiTs103759CommonObservations.asn +++ b/EtsiTs103759CommonObservations.asn @@ -1,7 +1,7 @@ --! @options: no-auto-fields EtsiTs103759CommonObservations {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)} + major-version-1(1) minor-version-2(2)} DEFINITIONS AUTOMATIC TAGS ::= BEGIN @@ -411,4 +411,99 @@ obs-LongAcc-ValueTooLarge C-ASR-SINGLE-OBS ::= { LongAcc-ValueTooLarge BY c-ObsLongAcc-ValueTooLarge } -END \ No newline at end of file + +-- ******************************************************************************** +-- Traffic Jam - Traffic Jam Ahead +/* + * This data type is provided for an observation of a road type inconsistent with + * the detected TrafficJam-TrafficJamAhead event + * + * - `v2xPduEvidence`: This field must contain at least one entry. + * The observation applies to the first entry. The `subjectPduIndex` + * in that @ref V2xPduStream (EtsiTs103759BaseTypes.md#V2xPduStream) points to + * the PDU whose road type information is inconsistent with the + * detected event (Traffic Jam Ahead). + * The `v2xPdus` field in that entry must contain at least the subject PDU. + * The PDU shall be of type `ObsPduEtsiGn`. + * + * - `nonV2xPduEvidence`: No other evidence is required to be included + * to support this observation. + */ +TrafficJam-RoadTypeIncWithTrafficJamAhead ::= NULL +-- IDs +c-ObsRoadTypeIncWithTrafficJamAhead IdMbObs::= 1 -- Class 1 +-- Individual Information Objects +obs-RoadTypeIncWithTrafficJamAhead C-ASR-SINGLE-OBS ::= + {TrafficJam-RoadTypeIncWithTrafficJamAhead BY c-ObsRoadTypeIncWithTrafficJamAhead} + + /* * This data type is provided for an observation of eventPoints in the path field which are not identical +* in at least two successive TrafficJam-TrafficJamAhead DENM messages. + * + * - `v2xPduEvidence`: This field must contain at least one entry. + * The observation applies to the first entry. The `subjectPduIndex` + * in that @ref V2xPduStream (EtsiTs103759BaseTypes.md#V2xPduStream) points to + * the PDU whose Path field is not containing the same eventPoints as the Path + * field in the previous PDU. + * The `v2xPdus` field in that entry must contain at least the subject PDU. + * The PDU shall be of type `ObsPduEtsiGn`. + * + * - `nonV2xPduEvidence`: No other evidence is required to be included + * to support this observation.*/ + + TrafficJam-PathChangeInMultipleRepetitions ::= NULL + -- IDs + c-ObsPathChangeInMultipleRepetitions IdMbObs::= 2 -- Class 2 + -- Individual Information Objects + obs-PathChangeInMultipleRepetitions C-ASR-SINGLE-OBS ::= + {TrafficJam-PathChangeInMultipleRepetitions BY c-ObsPathChangeInMultipleRepetitions} + + -- ******************************************************************************** +-- Dangerous Situation - EEBL issues +/* This data type is provided for an observation of an Eebl event which does not provide +mandatory location information (eventSpeed, eventPositionHeading, traces). +* - `v2xPduEvidence`: This field must contain at least one entry. + * The observation applies to the first entry. The `subjectPduIndex` + * in that @ref V2xPduStream (EtsiTs103759BaseTypes.md#V2xPduStream) points to + * the PDU whose location information is missing. + * The `v2xPdus` field in that entry must contain at least the subject PDU. + * The PDU shall be of type `ObsPduEtsiGn`. + * + * - `nonV2xPduEvidence`: No other evidence is required to be included + * to support this observation. + */ + +Eebl-MissingLocationInformation ::= NULL +-- IDs +c-ObsEebl-MissingLocationInformation IdMbObs::= 1 -- Class 1 +-- Individual Information Objects +obs-EeblMissingLocationInformation C-ASR-SINGLE-OBS ::= + {Eebl-MissingLocationInformation BY c-ObsEebl-MissingLocationInformation} + +/* This data type is provided for an observation of an Eebl event which is inconsistency with the speed values +* of surrounding vehicles within a circular area with center point +* equal to eventPosition and radius equal to 200 m (non urban road) or 100 m at the moment of the event detection. + +* - `v2xPduEvidence`: This field must contain at least , two entries, v2xPduEvidence[0] and v2xPduEvidence[1]. +* The observation applies to the first entry. The `subjectPduIndex` +* in that @ref V2xPduStream (EtsiTs103759BaseTypes.md#V2xPduStream) points to +* the DENM PDU signalling the EEBL event. +* The `v2xPdus` field in that entry must contain at least the subject PDU. +* The PDU shall be of type `ObsPduEtsiGn`. +* All the entries v2xPduEvidence[1] to v2xPduEvidence[n] shall contain the CAM of a ITS stations of type vehicle included in the circular area. +* For v2xPduEvidence[1] to v2xPduEvidence[n], the `v2xPdus` field in that entry must contain at least the subject PDU +* and the subjectPduIndex is 0. +* The PDU may be of any supported type and shall be of type +* `c-MbObsMsg-ieee1609Dot2Data` unless another observation included in the +* same report requires a different PDU type. +* +* - `nonV2xPduEvidence`: No other evidence is required to be included +* to support this observation. */ + + Eebl-IncWithOtherVehiclesSpeed ::= NULL +-- IDs +c-ObsEeblIncWithOtherVehiclesSpeed IdMbObs::= 2 -- Class 5 +-- Individual Information Objects +obs-EeblIncWithOtherVehiclesSpeed C-ASR-SINGLE-OBS ::= + {Eebl-IncWithOtherVehiclesSpeed BY c-ObsEeblIncWithOtherVehiclesSpeed} + + END \ No newline at end of file -- GitLab From 53e8067e4452855eb6addb205a42ea0b0524547b Mon Sep 17 00:00:00 2001 From: "ASN.1 Checker" Date: Fri, 26 Jan 2024 13:37:54 +0000 Subject: [PATCH 4/5] Documentation update --- docs/EtsiTs103759AsrDenm.md | 109 ++++++++++++++++++++++++- docs/EtsiTs103759CommonObservations.md | 34 +++++++- 2 files changed, 139 insertions(+), 4 deletions(-) diff --git a/docs/EtsiTs103759AsrDenm.md b/docs/EtsiTs103759AsrDenm.md index 92a8aeb..addc022 100644 --- a/docs/EtsiTs103759AsrDenm.md +++ b/docs/EtsiTs103759AsrDenm.md @@ -1,11 +1,114 @@ # 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-0(0)}_ +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)}_ +## 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*
+* **[EtsiTs103759CommonObservations](EtsiTs103759CommonObservations.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-2(2)} 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: ### AsrDenm -This data type is defined as NULL for version 0 of this file. ```asn1 -AsrDenm ::= NULL +AsrDenm ::= TemplateAsr {{SetMbObsTgtsDenm}, {SetMbEvDenm}} +``` + +### IdDenmTgt +```asn1 +IdDenmTgt ::= Uint8 +``` + +```asn1 +c-DenmTgt-BeaconCommon IdDenmTgt ::= 0 +c-DenmTgt-StaticCommon IdDenmTgt ::= 1 +c-DenmTgt-SecurityCommon IdDenmTgt ::= 2 +c-DenmTgt-TrafficJam-TrafficJamAhead IdDenmTgt ::= 3 +c-DenmTgt-DangerousSituation-Eebl IdDenmTgt ::= 4 +``` + +### SetMbObsDenmBeacon +```asn1 +SetMbObsDenmBeacon C-ASR-SINGLE-OBS ::= { + obs-Beacon-IntervalTooSmall, + ... +} +``` + +### SetMbObsDenmStatic +```asn1 +SetMbObsDenmStatic C-ASR-SINGLE-OBS ::= { + obs-Static-Change, + ... +} +``` + +### SetMbObsDenmSecurity + +Values: +* **obs-Security-MessageIdIncWithHeaderInfo** |
+* **obs-Security-HeaderIncWithSecurityProfile** |
+* **obs-Security-HeaderPsidIncWithCertificate** |
+* **obs-Security-MessageIncWithSsp** |
+* **obs-Security-HeaderTimeOutsideCertificateValidity** |
+* **obs-Security-MessageLocationOutsideCertificateValidity** |
+```asn1 +SetMbObsDenmSecurity 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, + ... +} +``` + +### SetMbObsDenmTrafficJam-TrafficJamAhead + +Values: +* **obs-RoadTypeIncWithTrafficJamAhead** |
+```asn1 +SetMbObsDenmTrafficJam-TrafficJamAhead C-ASR-SINGLE-OBS ::= { + obs-RoadTypeIncWithTrafficJamAhead | + obs-PathChangeInMultipleRepetitions, + ... +} +``` + +### SetMbObsDenmDangerousSituation-Eebl + +Values: +* **obs-EeblMissingLocationInformation** |
+```asn1 +SetMbObsDenmDangerousSituation-Eebl C-ASR-SINGLE-OBS ::= { + obs-EeblMissingLocationInformation | + obs-EeblIncWithOtherVehiclesSpeed, + ... +} +``` + +### SetMbObsTgtsDenm +```asn1 +SetMbObsTgtsDenm C-ASR-OBS-BY-TGT ::= { + {MbSingleObservation{{SetMbObsDenmBeacon}} BY + c-DenmTgt-BeaconCommon} | + {MbSingleObservation{{SetMbObsDenmStatic}} BY + c-DenmTgt-StaticCommon} | + {MbSingleObservation{{SetMbObsDenmSecurity}} BY + c-DenmTgt-SecurityCommon} | + {MbSingleObservation{{SetMbObsDenmTrafficJam-TrafficJamAhead}} BY + c-DenmTgt-TrafficJam-TrafficJamAhead} | + {MbSingleObservation{{SetMbObsDenmDangerousSituation-Eebl}} BY + c-DenmTgt-DangerousSituation-Eebl} + , + ... +} +``` + +### SetMbEvDenm +```asn1 +SetMbEvDenm C-ASR-EV ::= { + ... +} ``` diff --git a/docs/EtsiTs103759CommonObservations.md b/docs/EtsiTs103759CommonObservations.md index 8a6e1b7..fed41c9 100644 --- a/docs/EtsiTs103759CommonObservations.md +++ b/docs/EtsiTs103759CommonObservations.md @@ -1,5 +1,5 @@ # ASN.1 module EtsiTs103759CommonObservations -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)}_ +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-2(2)}_ ## 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*
@@ -362,5 +362,37 @@ obs-LongAcc-ValueTooLarge C-ASR-SINGLE-OBS ::= { } ``` +### TrafficJam-RoadTypeIncWithTrafficJamAhead +```asn1 +TrafficJam-RoadTypeIncWithTrafficJamAhead ::= NULL +c-ObsRoadTypeIncWithTrafficJamAhead IdMbObs::= 1 +obs-RoadTypeIncWithTrafficJamAhead C-ASR-SINGLE-OBS ::= + {TrafficJam-RoadTypeIncWithTrafficJamAhead BY c-ObsRoadTypeIncWithTrafficJamAhead} +``` + +### TrafficJam-PathChangeInMultipleRepetitions +```asn1 +TrafficJam-PathChangeInMultipleRepetitions ::= NULL + c-ObsPathChangeInMultipleRepetitions IdMbObs::= 2 + obs-PathChangeInMultipleRepetitions C-ASR-SINGLE-OBS ::= + {TrafficJam-PathChangeInMultipleRepetitions BY c-ObsPathChangeInMultipleRepetitions} +``` + +### Eebl-MissingLocationInformation +```asn1 +Eebl-MissingLocationInformation ::= NULL +c-ObsEebl-MissingLocationInformation IdMbObs::= 1 +obs-EeblMissingLocationInformation C-ASR-SINGLE-OBS ::= + {Eebl-MissingLocationInformation BY c-ObsEebl-MissingLocationInformation} +``` + +### Eebl-IncWithOtherVehiclesSpeed +```asn1 +Eebl-IncWithOtherVehiclesSpeed ::= NULL +c-ObsEeblIncWithOtherVehiclesSpeed IdMbObs::= 2 +obs-EeblIncWithOtherVehiclesSpeed C-ASR-SINGLE-OBS ::= + {Eebl-IncWithOtherVehiclesSpeed BY c-ObsEeblIncWithOtherVehiclesSpeed} +``` + -- GitLab From 75ec8462b816e2c91953c8749f797b122a74b99c Mon Sep 17 00:00:00 2001 From: loncb Date: Mon, 5 Feb 2024 15:15:22 +0000 Subject: [PATCH 5/5] Replace EtsiTs103759AsrDenm.asn --- EtsiTs103759AsrDenm.asn | 22 ++++------------------ 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/EtsiTs103759AsrDenm.asn b/EtsiTs103759AsrDenm.asn index 1308bed..b15615d 100755 --- a/EtsiTs103759AsrDenm.asn +++ b/EtsiTs103759AsrDenm.asn @@ -91,21 +91,12 @@ SetMbObsDenmDangerousSituation-Eebl C-ASR-SINGLE-OBS ::= { * trigger conditions and other relevant information are specified below. * * - _SetMbObsDenmBeacon_: -* - `Beacon-IntervalTooSmall`: The difference between the generation - * time of two consecutive DENMs is less than 80% of the value specified in TS - * 103 900831 v2.1.1 section 6.1.3. The difference is calculated as the difference - * between the two values of generationDeltaTime. The two DENMs 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 DENM 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. -* +* - `Beacon-IntervalTooSmall`: The interval between two consecutive DENMs related to the same traffic event (same actionId and detectionTime) +* transmitted by the same ITS station (same stationId) is lower than the minimum threshhold value (100 ms). +* * - _SetMbObsDenmStatic_: * - `Static-Change`: Any change in the values of one or more of the following fields which happens -* during the repetition of the same traffic event (same actionId and referenceTime) +* during the repetition of the same traffic event (same actionId and detectionTime) * transmitted by the same ITS station (stationId): stationType and eventPosition in the Management Container, eventType and informationQuality in the Situation Container. * - `Semantics of the BIT STRING`: stationType(0), eventPosition(1), eventType(2), informationQuality(3). * @@ -150,9 +141,4 @@ SetMbEvDenm C-ASR-EV ::= { ... } - -/* This data type is defined as NULL for version 0 of this file. -* AsrDenm ::= NULL -*/ - END \ No newline at end of file -- GitLab