diff --git a/EtsiTs103759AsrCam.asn b/EtsiTs103759AsrCam.asn
index 0bdaf1c9b4c3f6ad214d183fd082e2fcd32d720d..65105a53296d35f6a3c912d83f47fc2650ac85a5 100755
--- a/EtsiTs103759AsrCam.asn
+++ b/EtsiTs103759AsrCam.asn
@@ -1,221 +1,237 @@
-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 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-Position-ChangeTooLarge,
- obs-Speed-ValueTooLarge-VehicleType,
- obs-Speed-ValueTooLarge-DriveDirectionReverse,
- obs-Speed-ChangeTooLarge,
- obs-LongAcc-ValueTooLarge
-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-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-4(4)}
-WITH SUCCESSORS
-;
-
-/**
- * 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
-
-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,
- ...
-}
-
-
-
-/**
- * This is a complete set of observations for CAM. Application-specific
- * trigger conditions and other relevant information are specified below.
- *
- * - _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.
- *
- * - `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.
- *
- * - _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.)
- */
-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},
- ...
-}
-
-/**
- * This data type defines the IOS for CAM Evidence.
- */
-SetMbEvCam C-ASR-EV ::= {
- ...
-}
-
-END
+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-2(2)}
+
+DEFINITIONS AUTOMATIC TAGS ::= BEGIN
+
+EXPORTS ALL;
+
+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-Position-ChangeTooLarge,
+ obs-Speed-ValueTooLarge-VehicleType,
+ obs-Speed-ValueTooLarge-DriveDirectionReverse,
+ obs-Speed-ChangeTooLarge,
+ obs-LongAcc-ValueTooLarge
+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-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-4(4)}
+WITH SUCCESSORS
+;
+
+/**
+ * This data type is for reporting CAM issues.
+ */
+AsrCam ::= TemplateAsr {{SetMbObsTgtsCam}, {SetMbEvCam}}
+
+
+/**
+ * This data type is for identifying 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
+
+/**
+ * This is a set of observations for the target class c-CamTgt-BeaconCommon,
+ * where the trigger conditions for different observations are as follows.
+ *
+ * @param 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.
+ */
+SetMbObsCamBeacon C-ASR-SINGLE-OBS ::= {
+ obs-Beacon-IntervalTooSmall,
+ ...
+}
+
+/**
+ * This is a set of observations for the target class c-CamTgt-StaticCommon,
+ * where the trigger conditions for different observations are as follows.
+ *
+ * @param 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).
+ */
+SetMbObsCamStatic C-ASR-SINGLE-OBS ::= {
+ obs-Static-Change,
+ ...
+}
+
+/**
+ * This is a set of observations for the target class c-CamTgt-SecurityCommon,
+ * where the trigger conditions for different observations are as follows.
+ *
+ * @param 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.
+ *
+ * @param 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.
+ *
+ * @param 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.
+ *
+ * @param 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.
+ *
+ * @param Security-HeaderTimeOutsideCertificateValidity: The generationTime
+ * in the security headerInfo is outside the validityPeriod in the certificate.
+ *
+ * @param Security-MessageLocationOutsideCertificateValidity: The
+ * referencePosition in the message is outside the region in the certificate.
+ *
+ * @param Security-HeaderLocationOutsideCertificateValidity: The
+ * generationLocation in the security headerInfo is outside the region in the
+ * certificate.
+ */
+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,
+ ...
+}
+
+/**
+ * This is a set of observations for the target class c-CamTgt-PositionCommon,
+ * where the trigger conditions for different observations are as follows.
+ *
+ * @param Position-ChangeTooLarge: The speed calculated from the change in
+ * referencePosition of two consecutive CAMs meets the trigger conditions of
+ * Speed-ValueTooLarge-VehicleType.
+ */
+SetMbObsCamPosition C-ASR-SINGLE-OBS ::= {
+ obs-Position-ChangeTooLarge,
+ ...
+}
+
+/**
+ * This is a set of observations for the target class c-CamTgt-SpeedCommon,
+ * where the trigger conditions for different observations are as follows.
+ *
+ * @param Speed-ValueTooLarge-VehicleType: The trigger conditions depend on
+ * the stationType as follows:
+ * - `passengerCar(5)`: The speedValue is greater than 14,000.
+ * **Rationale**: 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.
+ * **Rationale**: 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.
+ * **Rationale**: 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.
+ * **Rationale**: Road side units shouldn't be transmitting while being
+ * transported.
+ *
+ * @param Speed-ValueTooLarge-DriveDirectionReverse: The driveDirection is
+ * backward (1) and the speedValue is greater than 3,000.
+ * **Rationale**: 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 the square root of
+ * (2 * 9 * 50) in m/s, which is equal to 3,000 cm/s.
+ *
+ * @param Speed-ChangeTooLarge: The acceleration calculated from the change
+ * in speedValue of two consecutive CAMs meets the trigger conditions of
+ * LongAcc-ValueTooLarge.
+ */
+SetMbObsCamSpeed C-ASR-SINGLE-OBS ::= {
+ obs-Speed-ValueTooLarge-VehicleType |
+ obs-Speed-ValueTooLarge-DriveDirectionReverse |
+ obs-Speed-ChangeTooLarge,
+ ...
+}
+
+/**
+ * This is a set of observations for the target class c-CamTgt-LongAccCommon,
+ * where the trigger conditions for different observations are as follows.
+ *
+ * @param 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.)
+ */
+SetMbObsCamLongAcc C-ASR-SINGLE-OBS ::= {
+ obs-LongAcc-ValueTooLarge,
+ ...
+}
+
+/**
+ * This is a complete set of observations for CAM.
+ */
+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},
+ ...
+}
+
+/**
+ * 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 cce2064aa74d16e69703522bab76470a6f92e5cc..6e21128b70f280935a18522f9c316b10381aa328 100755
--- a/EtsiTs103759AsrDenm.asn
+++ b/EtsiTs103759AsrDenm.asn
@@ -1,14 +1,344 @@
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;
+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-Time-Change-In-Repetitions,
+obs-UnplausibleReferenceTime,
+obs-UnplausibleDetectionTime,
+obs-ExceededEventValidityTime,
+obs-DistanceBetweenPositionInDenmAndLdmTooLarge,
+obs-DistanceBetweenPositionInDenmAndCamTooLarge,
+obs-Security-MessageIdIncWithHeaderInfo,
+obs-Security-HeaderIncWithSecurityProfile,
+obs-Security-HeaderPsidIncWithCertificate,
+obs-Security-MessageIncWithSsp,
+obs-Security-HeaderTimeOutsideCertificateValidity,
+obs-Security-MessageLocationOutsideCertificateValidity,
+obs-Security-HeaderLocationOutsideCertificateValidity,
+obs-RoadTypeIncWithSuddenSpeedDrop,
+obs-ValidityDurationIncWithSuddenSpeedDrop,
+obs-AwarenessDistanceIncWithSuddenSpeedDrop,
+obs-DirectionIncWithSuddenSpeedDrop,
+obs-RoadTypeIncWithLocalSlowDown,
+obs-PathChangeInMultipleRepetitions,
+obs-ValidityDurationIncWithLocalSlowDown,
+obs-AwarenessDistanceIncWithLocalSlowDown,
+obs-CamSpeedIncWithLocalSlowDown,
+obs-DirectionIncWithLocalSlowDown,
+obs-EeblMissingLocationInformation,
+obs-EeblIncWithOtherVehiclesSpeed,
+obs-EeblEventSpeedBelowMinThreshold
+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
+
+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-4(4)}
+WITH SUCCESSORS
+;
+
+ /* This data type is for reporting DENM issues. */
+AsrDenm ::= TemplateAsr {{SetMbObsTgtsDenm}, {SetMbEvDenm}}
+
+ /* This data type is for identifying target classes for DENM */
+IdDenmTgt ::= Uint8
+
+c-DenmTgt-BeaconCommon IdDenmTgt ::= 0
+c-DenmTgt-StaticCommon IdDenmTgt ::= 1
+c-DenmTgt-TimeChangeInRepetitions IdDenmTgt ::= 2
+c-DenmTgt-IncTimeAndDuration IdDenmTgt ::= 3
+c-DenmTgt-SecurityCommon IdDenmTgt ::= 4
+c-DenmTgt-TrafficCondition-SuddenSpeedDrop IdDenmTgt ::= 5
+c-DenmTgt-TrafficCondition-LocalSlowDown IdDenmTgt ::= 6
+c-DenmTgt-DangerousSituation-Eebl IdDenmTgt ::= 7
+c-DenmTgt-IncDistanceBetweenEventAndReportingStationPositions IdDenmTgt ::= 8
+
+/**
+* This module specifies a set of observations for a subset of DENM Use Cases listed in TS 103 759 Annex D.2 (see table D.3). The data types used for specifying the set observations per target class
+* and the data types used for detailing other evidences which may need to be included in the report are given.
+*/
+
+/**
+* This is a set of observations for the target class c-DenmTgt-BeaconCommon,
+* where the trigger conditions for different observations are as follows.
+*
+* - @param Beacon-IntervalTooSmall: The difference between the generation time in the Header Info of two consecutive signed DENMs
+* related to the same traffic event (same actionId and detectionTime) transmitted by the same ITS station (same stationId) is
+* less than 80% of the minimum threshold value of the DENM repetition interval. This minimum threshold is set to 100 ms,
+* considering the list of Day1 uses cases referenced in TS 103 759 table D.3 specified in C2C-CC Basic System Profile [i.11]
+* and C-Roads specifications [i.12]. The difference is calculated as the difference between the generationTime in the second DENM and the
+* generationTime in the first DENM.
+*
+*/
+
+SetMbObsDenmBeacon C-ASR-SINGLE-OBS ::= {
+ obs-Beacon-IntervalTooSmall,
+ ...
+}
+
+/**
+* This is a set of observations for the target class c-DenmTgt-StaticCommon,
+* where the trigger conditions for different observations are as follows.
+*
+* - @param 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 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).
+*
+*/
+
+SetMbObsDenmStatic C-ASR-SINGLE-OBS ::= {
+ obs-Static-Change,
+ ...
+}
+
+/**
+* This is a set of observations for the target class c-DenmTgt-TimeChangeInRepetitions,
+* where the trigger conditions for different observations are as follows.
+*
+* - @param Time-Change-In-Repetitions: Any change in the value of the detectionTime field which happens during the repetition of the same event (same actionId
+* and referenceTime) transmitted by the same ITS station (stationId).
+*
+*/
+
+SetMbObsDenmTimeChangeInRepetitions C-ASR-SINGLE-OBS ::= {
+ obs-Time-Change-In-Repetitions,
+ ...
+}
+
+/**
+* This is a set of observations for the target class c-DenmTgt-IncTimeAndDuration,
+* where the trigger conditions for different observations are as follows.
+*
+* - @param UnplausibleReferenceTime: The reference time in the Management container of the DENM is greater than the current time
+* of the receiving ITS-S.
+* - @param UnplausibleDetectionTime: The detection time in the Management container of the DENM is greater than the current time
+* of the receiving ITS-S.
+* - @param ExceededEventValidityTime: The expiration time of the DENM event calculated by adding the Detection Time and the Validity Duration time
+* in the Management container of the DENM is smaller than the current time of the receiving ITS-S.
+*/
+
+SetMbObsDenmIncTimeAndDuration C-ASR-SINGLE-OBS ::= {
+ obs-UnplausibleReferenceTime |
+ obs-UnplausibleDetectionTime |
+ obs-ExceededEventValidityTime,
+ ...
+}
+
+
+/**
+* This is a set of observations for the target class c-DenmTgt-IncDistanceBetweenEventAndReportingStationPositions,
+* where the trigger conditions for different observations are as follows.
+*
+* - @param DistanceBetweenPositionInDenmAndLdmTooLarge : The distance between the eventPosition of the DENM transmitted by the ITS-S
+* and the referencePosition received in the last CAM received from that ITS-S (i.e. same stationId) stored in the LDM as defined in ETSI TS 103 938 [i.13] is larger than a maximum distance
+* threshold. This threshold is set to 1 km if the event type is one of the following: dangerousEndOfQueue or trafficCondition.The threshold is set to 100 m if the event type (causeCode) is
+* one of the following: stationaryVehicle, emergencyVehicleApproaching, collisionRisk, dangerousSitiation.
+*
+* This distance may be calculated as the euclidean distance between the two points or preferrably as the distance of the two points using their (longitude, latitude)
+* in radians on a sphere of radius r = 6 378 137 metres (ref [Kells, Lyman M.; Kern, Willis F.; Bland, James R. (1940). Plane And Spherical Trigonometry. McGraw Hill Book Company, Inc. pp. 323-326])
+*
+* This detector shall only apply if the generationDeltaTime in the CAM Payload verifies one of the following conditions:
+* - The generationDeltaTime is higher than the (referenceTime – 1000) mod 65,536 and the value of (generationDeltatTime – (referenceTime -1000) mod 65,536)
+* is lower than 1000 (unit in millisecond).
+* - The generationDeltaTime is lower than the (referenceTime – 1000) mod 65,536 and the value of (generationDeltatTime - (referenceTime – 1000) mod 65,536 + 65,536)
+* is lower than 1000 (unit in millisecond).
+*
+* - @param DistanceBetweenPositionInDenmAndCamTooLarge: The cause code choice in the DENM is either trafficCondition1 or dangerousEndOfQueue27 and
+* the distance between the eventPosition of the DENM transmitted by the ITS-S and the referencePosition received in the next CAM
+* received from that ITS-S (i.e. same stationId) is larger than a maximum distance of 600 meters.
+* This distance may be calculated as the euclidean distance between the two points or preferrably as the distance of the two points using their (longitude, latitude)
+* in radians on a sphere of radius r = 6 378 137 metres (ref [Kells, Lyman M.; Kern, Willis F.; Bland, James R. (1940). Plane And Spherical Trigonometry. McGraw Hill Book Company, Inc. pp. 323-326])
+*
+* This detector shall only apply if the generationDeltaTime in the CAM Payload verifies one of the following conditions:
+* - The generationDeltaTime is higher than the (referenceTime mod 65,536) and the (generationDeltatTime - referenceTime mod 65,536) is lower than
+* 1000 (unit in millisecond).
+* - The generationDeltaTime is lower than the (referenceTime mod 65,536) and the value of (generationDeltatTime - referenceTime mod 65,536 + 65,536)
+* is lower than 1000 (unit in millisecond).
+*
+*/
+
+SetMbObsDenmIncDistanceBetweenEventAndReportingStationPositions C-ASR-SINGLE-OBS ::= {
+ obs-DistanceBetweenPositionInDenmAndLdmTooLarge |
+ obs-DistanceBetweenPositionInDenmAndCamTooLarge,
+ ...
+}
+
+/**
+* This is a set of observations for the target class c-DenmTgt-SecurityCommon,
+* where the trigger conditions for different observations are as follows.
+* The same specification applies as for the set of observations of SetMbObsCamSecurity defined in the EtsiTs103759AsrCam module.
+*
+*/
+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,
+ ...
+}
+
/**
- * This data type is defined as NULL for version 0 of this file.
+* This group of detectors is defined for the Use Case Traffic Condition – Sudden speed drop as specified in [i.14].
+* They apply on DENM which cause code is equal to 'Dangerous end of queue' and sub cause code is equal to unavailable(0)
+* and which stationType has one of the following value: motorcycle(4), passengerCar(5), bus(6), ligthTruck(7), heavyTruck(8), specialVehicle(10).
+* This is a set of observations for the target class c-DenmTgt-TrafficCondition-SuddenSpeedDrop,
+* where the trigger conditions for different observations are as follows.
+*
+* - @param RoadTypeIncWithSuddenSpeedDrop: The roadType of the Location Container is not equal to 'non-urban' road type (i.e. is not set to value
+* nonUrban-NoStructuralSeparationToOppositeLanes (2) or nonUrban-WithStructuralSeparationToOppositeLanes (3)).
+*
+* - @param ValidityDurationIncWithSuddenSpeedDrop: The validity duration in the Management container of the DENM is not equal to 20s.
+*
+* - @param DistanceIncWithSuddenSpeedDrop: The awarenessDistance is not present or its value is not set to lessThan1000m (4).
+*
+* - @param DirectionNotUpstream: The trafficDirection is inconsistent with the traffic direction specified as upstream direction for this event type.
+*/
+
+SetMbObsDenmTrafficCondition-SuddenSpeedDrop C-ASR-SINGLE-OBS ::= {
+ obs-RoadTypeIncWithSuddenSpeedDrop |
+ obs-ValidityDurationIncWithSuddenSpeedDrop |
+ obs-AwarenessDistanceIncWithSuddenSpeedDrop |
+ obs-DirectionIncWithSuddenSpeedDrop,
+ ...
+}
+
+/**
+* This group of detectors is defined for the Use Case Traffic Condition – Local slow down as specified in [i.14].
+* They apply on DENM which cause code is equal to 'TrafficCondition' and sub cause code is equal to unavailable(0)
+* and which stationType has one of the following value: motorcycle(4), passengerCar(5), bus(6), ligthTruck(7), heavyTruck(8), specialVehicle(10).
+* This is a set of observations for the target class c-DenmTgt-TrafficCondition-LocalSlowDown,
+* where the trigger conditions for different observations are as follows.
+*
+* - @param RoadTypeIncWithLocalSlowDown: The roadType of the Location Container is not equal to 'non-urban' road type (i.e. is not set to value
+* nonUrban-NoStructuralSeparationToOppositeLanes (2) or nonUrban-WithStructuralSeparationToOppositeLanes (3)).
+*
+* - @param PathChangeInMultipleEventRepetitions: The pathPositions contained in the first Traces entry of multiple repeated TrafficJamAhead events
+* with the same reporting ITS-S, same actionId and same detectionTime are not identical.
+*
+* - @param ValidityDurationIncWithLocalSlowDown: The validity duration in the Management container of the DENM is not equal to 60s.
+*
+* - @param DistanceIncWithLocalSlowDown: The awarenessDistance is not present or its value is not set to lessThan1000m (4).
+*
+* - @param CamSpeedIncWithLocalSlowDown : The following three triggering conditions shall be verified:
+* - the component 'termination' in the management container of the suspected DENM shall not be equal to isCancellation(0) or isNegation(1),
+* - the eventSpeed value in that DENM is higher than a minimum speed value of 10 km/h,
+* - the speed value in the next CAM transmitted by the DENM-originating ITS-S (i.e. same stationId), in the time interval comprised between
+* referenceTime and referenceTime + 1 second, has a speed higher than twice the eventSpeed contained in that DENM.
+* The CAM timestamp (generationDeltaTime) shall verify one of the following conditions:
+* - The generationDeltaTime is higher than the (referenceTime mod 65,536) and the (generationDeltatTime - referenceTime mod 65,536) is lower than
+* 1000 (unit in millisecond).
+* - The generationDeltaTime is lower than the (referenceTime mod 65,536) and the value of (generationDeltatTime - referenceTime mod 65,536 + 65,536)
+* is lower than 1000 (unit in millisecond).
+*
+* - @param DirectionNotUpstream: The trafficDirection is inconsistent with the traffic direction specified as upstream direction for this event type.
+*/
+
+SetMbObsDenmTrafficCondition-LocalSlowDown C-ASR-SINGLE-OBS ::= {
+ obs-RoadTypeIncWithLocalSlowDown |
+ obs-PathChangeInMultipleRepetitions |
+ obs-ValidityDurationIncWithLocalSlowDown |
+ obs-AwarenessDistanceIncWithLocalSlowDown |
+ obs-CamSpeedIncWithLocalSlowDown |
+ obs-DirectionIncWithLocalSlowDown,
+ ...
+}
+
+/**
+* This group of detectors is defined for the Use Case Dangerous situation – Electronic emergency brake light as specified in [i.15].
+* This is a set of observations for the target class c-DenmTgt-DangerousSituation-Eebl,
+* where the trigger conditions for different observations are as follows.
+*
+
+* - @param EeblMissingLocationInformation: one of the following location information of the detected event is missing: eventSpeed, eventPositionHeading,
+* detectionZonesToEventPosition of type Traces.
+*
+* - @param 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.
+* - @param: EeblEventSpeedbelowMinThreshold: The stationType is indicating a motorcycle (4) or a passengerCar (5)
+* and the speed of the vehicle in the DENM (eventSpeed) is lower than the minEeblSpeedThreshold set to 20 km/h.
+*
+*/
+
+SetMbObsDenmDangerousSituation-Eebl C-ASR-SINGLE-OBS ::= {
+ obs-EeblMissingLocationInformation |
+ obs-EeblIncWithOtherVehiclesSpeed |
+ obs-EeblEventSpeedBelowMinThreshold,
+ ...
+}
+
+/**
+ * This is a complete set of observations for DENM.
+ */
+SetMbObsTgtsDenm C-ASR-OBS-BY-TGT ::= {
+ {MbSingleObservation{{SetMbObsDenmBeacon}} BY
+ c-DenmTgt-BeaconCommon} |
+ {MbSingleObservation{{SetMbObsDenmStatic}} BY
+ c-DenmTgt-StaticCommon} |
+ {MbSingleObservation{{SetMbObsDenmTimeChangeInRepetitions}} BY
+ c-DenmTgt-TimeChangeInRepetitions} |
+ {MbSingleObservation{{SetMbObsDenmIncTimeAndDuration}} BY
+ c-DenmTgt-IncTimeAndDuration} |
+ {MbSingleObservation{{SetMbObsDenmSecurity}} BY
+ c-DenmTgt-SecurityCommon} |
+ {MbSingleObservation{{SetMbObsDenmTrafficCondition-SuddenSpeedDrop}} BY
+ c-DenmTgt-TrafficCondition-SuddenSpeedDrop} |
+ {MbSingleObservation{{SetMbObsDenmTrafficCondition-LocalSlowDown}} BY
+ c-DenmTgt-TrafficCondition-LocalSlowDown} |
+ {MbSingleObservation{{SetMbObsDenmDangerousSituation-Eebl}} BY
+ c-DenmTgt-DangerousSituation-Eebl} |
+ {MbSingleObservation{{SetMbObsDenmIncDistanceBetweenEventAndReportingStationPositions}} BY
+ c-DenmTgt-IncDistanceBetweenEventAndReportingStationPositions}
+ ,
+ ...
+}
+
+/*
+ * This data type defines the IOS for DENM evidences.
+
+ */
+SetMbEvDenm C-ASR-EV ::= {
+ {MbEvDenmLdmCam BY
+ c-MbEvDenm-LdmCam} ,
+ ...
+ }
+
+/**
+ * MbEvDenmLdmCam shall contain an ASN1 UPER encoded - ETSI CAM PDU
+ * according to ETSI TS 103 900 [8], stored in the LDM of the DENM originating ITS-S
+ */
+ MbEvDenmLdmCam ::= Opaque
+
+ /**
+ * This data type contains the identifiers of the evidence types inserted in the NonV2xPduEvidence.
+ *
+ * @param c-MbEvDenm-LdmCam: is the identifier for an LDM entry containing a received CAM PDU.
*/
-AsrDenm ::= NULL
+IdMbDenmEvidence ::= Uint8
+c-MbEvDenm-LdmCam IdMbDenmEvidence ::= 1
-END
\ No newline at end of file
+END
diff --git a/EtsiTs103759CommonObservations.asn b/EtsiTs103759CommonObservations.asn
index 6728b67e3ba80fd0a05fea5c4671facc540549aa..d8cfc922c4607eb4d091fdc3344a622b40d8d292 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
@@ -39,8 +39,7 @@ IdMbObs ::= Uint8
/**
* 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.
+ * that is too small.
*
* - `v2xPduEvidence`: This field must contain at least one entry.
* The observation applies to the first entry. The `subjectPduIndex`
@@ -205,7 +204,7 @@ obs-Security-MessageIncWithSsp C-ASR-SINGLE-OBS ::= {
* - `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 for which the `generationTime` in the security `headerInfo` is being
+ * the PDU for which the `` 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
@@ -411,4 +410,433 @@ obs-LongAcc-ValueTooLarge C-ASR-SINGLE-OBS ::= {
LongAcc-ValueTooLarge BY c-ObsLongAcc-ValueTooLarge
}
+-- *******************************************************************************
+-- DENM generic misbehaviour detectors - Change of Detection Time or Termination during DENM repetitions
+
+/** This data type is provided for an observation of change of the detection time or of the event termination fields
+* in two successive, repeated DENM messages, i.e. transmitted by the same stationId with the same actionId and same detectionTime.
+* The semantics of the `BIT STRING` are provided in the application-specific files.
+*
+* - `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 detection time or termination 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.
+*
+* - `nonV2xPduEvidence`: No other evidence is required to be included
+* to support this observation.
+*/
+TimeChangeInRepetitions-IncTimeInRepetitions ::= NULL
+ -- IDs
+ c-ObsIncTimeInRepetitions IdMbObs::= 1 -- Class 2
+ -- Individual Information Objects
+ obs-Time-Change-In-Repetitions C-ASR-SINGLE-OBS ::= {
+ TimeChangeInRepetitions-IncTimeInRepetitions BY c-ObsIncTimeInRepetitions
+}
+
+
+-- *******************************************************************************
+-- DENM generic misbehaviour detectors - Inconsistent event Reference Time, Detection Time or Validity Duration in the received DENM
+
+/** This data type is provided for an observation of a referenceTime in the DENM which value is in the future (i.e. is greater than
+* the current time of the receiving ITS-S).
+* - `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 field referenceTime in the Management container
+* is greater than the current time.
+*
+* 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.
+*/
+
+IncTimeAndDuration-UnplausibleReferenceTime ::= NULL
+ -- IDs
+c-ObsUnplausibleReferenceTime IdMbObs::= 1 -- Class 1
+ -- Individual Information Objects
+obs-UnplausibleReferenceTime C-ASR-SINGLE-OBS ::=
+{IncTimeAndDuration-UnplausibleReferenceTime BY c-ObsUnplausibleReferenceTime}
+
+/**
+This data type is provided for an observation of a detectionTime in the DENM which value is in the future (i.e. is greater than
+* the current time of the receiving ITS-S).
+* - `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 field detectionTime in the Management container
+* is greater than the current time.
+*
+* 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.
+*/
+IncTimeAndDuration-UnplausibleDetectionTime ::= NULL
+ -- IDs
+c-ObsUnplausibleDetectionTime IdMbObs::= 2 -- Class 1
+ -- Individual Information Objects
+obs-UnplausibleDetectionTime C-ASR-SINGLE-OBS ::=
+{IncTimeAndDuration-UnplausibleDetectionTime BY c-ObsUnplausibleDetectionTime}
+
+/**
+This data type is provided for an observation of a validity Time (calculated as DetectionTime + ValidityDuration) in the DENM which value is
+* in the past future (i.e. is smaller than the current time of the receiving ITS-S).
+* - `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 value of DetectionTime + ValidityDuration
+* is smaller than the current time.
+*
+* 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.
+*/
+
+IncTimeAndDuration-ExceededEventValidityTime ::= NULL
+ -- IDs
+c-ObsExceededEventValidityTime IdMbObs::= 3 -- Class 1
+ -- Individual Information Objects
+obs-ExceededEventValidityTime C-ASR-SINGLE-OBS ::=
+{IncTimeAndDuration-ExceededEventValidityTime BY c-ObsExceededEventValidityTime}
+
+
+-- *******************************************************************************
+-- DENM generic misbehaviour detectors - Inconsistent distance between the event position and the position of the ITS-S generating the DENM
+
+/**
+* This data type is provided for an observation of an inconsistent distance between the eventPosition in the DENM transmitted by the ITS-S signalling
+* that traffic event and the reference position of the ITS-S reporting this event (i.e. same stationId).
+* - `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 DENM PDU whose eventPosition value is inconsistent with the reference position of the CAM either stored in the LDM or received just after that DENM.
+* - `nonV2xPduEvidence`: This field is required and must contain the CAM PDU which position is inconsistent with the event position contained in that DENM.
+*/
+DistanceBetweenPositionInDenmAndLdmTooLarge ::= NULL
+-- IDs
+c-ObsDistanceBetweenPositionInDenmAndLdmTooLarge IdMbObs::=1 -- Class 3
+-- Individual Information Objects
+obs-DistanceBetweenPositionInDenmAndLdmTooLarge C-ASR-SINGLE-OBS ::= {
+ DistanceBetweenPositionInDenmAndLdmTooLarge BY c-ObsDistanceBetweenPositionInDenmAndLdmTooLarge
+ }
+/**
+* This data type is provided for an observation of an inconsistent distance between the eventPosition in the DENM transmitted by the ITS-S signalling
+* that traffic event and the reference position of the next CAM transmitted by that ITS-S (i.e. same stationId).
+*
+* - `v2xPduEvidence`: This field must contain at least one entry.
+* The observation applies to the first entry (V2xPduEvidence[0]). The `subjectPduIndex`
+* in that @ref V2xPduStream (EtsiTs103759BaseTypes.md#V2xPduStream) points to
+* the DENM PDU whose eventPosition is being flagged as inconsistent with the referencePosition of the DENM-originating ITS-S
+* indicated in the next CAM, i.e. the `subjectPduIndex` is set to 0.
+* The `v2xPdus` field in that entry must contain at least the subject PDU
+* and the CAM PDU that immediately followed 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.
+*/
+
+DistanceBetweenPositionInDenmAndCamTooLarge ::= NULL
+-- IDs
+c-ObsDistanceBetweenPositionInDenmAndCamTooLarge IdMbObs::=2 -- Class 5
+-- Individual Information Objects
+obs-DistanceBetweenPositionInDenmAndCamTooLarge C-ASR-SINGLE-OBS ::= {
+ DistanceBetweenPositionInDenmAndCamTooLarge BY c-ObsDistanceBetweenPositionInDenmAndCamTooLarge
+}
+
+-- ********************************************************************************
+-- Traffic Condition - Sudden speed drop
+
+/**
+ * This data type is provided for an observation of a road type inconsistent with
+ * the detected TrafficCondition - Sudden speed drop 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 (.e. causeCode/subCauseCode = dangerousEndOfQueue/ unavailable).
+ * 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.
+ */
+
+ TrafficCondition-RoadTypeIncWithSuddenSpeedDrop ::= NULL
+ -- IDs
+ c-ObsRoadTypeIncWithSuddenSpeedDrop IdMbObs::= 1 -- Class 1
+ -- Individual Information Objects
+ obs-RoadTypeIncWithSuddenSpeedDrop C-ASR-SINGLE-OBS ::=
+ {TrafficCondition-RoadTypeIncWithSuddenSpeedDrop BY c-ObsRoadTypeIncWithSuddenSpeedDrop}
+
+ /** This data type is provided for an observation of a validity duration in a DENM inconsistent with
+ * the detected TrafficCondition - Sudden speed drop 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 field validityDuration in the Management container
+ * is not set to the value 20 (in the unit of second).
+ *
+ * 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.
+ */
+
+ TrafficCondition-ValidityDurationIncWithSuddenSpeedDrop ::= NULL
+ -- IDs
+ c-ObsValidityDurationIncWithSuddenSpeedDrop IdMbObs::= 2 -- Class 1
+ -- Individual Information Objects
+obs-ValidityDurationIncWithSuddenSpeedDrop C-ASR-SINGLE-OBS ::=
+ {TrafficCondition-ValidityDurationIncWithSuddenSpeedDrop BY c-ObsValidityDurationIncWithSuddenSpeedDrop}
+
+ /** This data type is provided for an observation of an awareness distance in a DENM inconsistent with
+ * the detected TrafficCondition - Sudden speed drop 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 field awarenessDistance is not present or is not
+ * equal to the value lessThan1000m (4).
+ *
+ * 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.
+ */
+
+ TrafficCondition-AwarenessDistanceIncWithSuddenSpeedDrop ::= NULL
+ -- IDs
+c-ObsAwarenessDistanceIncWithSuddenSpeedDrop IdMbObs::= 3 -- Class 1
+ -- Individual Information Objects
+obs-AwarenessDistanceIncWithSuddenSpeedDrop C-ASR-SINGLE-OBS ::=
+ {TrafficCondition-AwarenessDistanceIncWithSuddenSpeedDrop BY c-ObsAwarenessDistanceIncWithSuddenSpeedDrop}
+
+/**
+* This data type is provided for an observation of a traffic direction not set to upstream () in the management
+* container in the DENM transmitted by the ITS-S.
+* - `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 trafficDirection value is inconsistent with the event type which requires that trafficDirection value is set to upstream.
+*
+* - `nonV2xPduEvidence`: No other evidence is required to be included to support this observation.
+*/
+
+TrafficCondition-DirectionIncWithSuddenSpeedDrop ::= NULL
+-- IDs
+c-ObsDirectionIncWithSuddenSpeedDrop IdMbObs::= 4 -- Class 1
+-- Individual Information Objects
+obs-DirectionIncWithSuddenSpeedDrop C-ASR-SINGLE-OBS ::=
+{TrafficCondition-DirectionIncWithSuddenSpeedDrop BY c-ObsDirectionIncWithSuddenSpeedDrop}
+
+
+-- ********************************************************************************
+-- Traffic Condition - Local slow down
+
+/**
+ * This data type is provided for an observation of a road type inconsistent with
+ * the detected TrafficCondition - Local slow down 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 (i.e. causeCode/subCauseCode = trafficCondition/ unavailable).
+ * 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.
+ */
+
+TrafficCondition-RoadTypeIncWithLocalSlowDown ::= NULL
+-- IDs
+c-ObsRoadTypeIncWithLocalSlowDown IdMbObs::= 1 -- Class 1
+-- Individual Information Objects
+obs-RoadTypeIncWithLocalSlowDown C-ASR-SINGLE-OBS ::=
+ {TrafficCondition-RoadTypeIncWithLocalSlowDown BY c-ObsRoadTypeIncWithLocalSlowDown}
+
+/** This data type is provided for an observation of the pathPoints of the entry Traces[1] in the component detectionZonesToEventPosition
+* which are not identical in two successive, repeated TrafficCondition-LocalSlowDown DENM messages, i.e. transmitted by the same stationId with the
+* same actionId and same detectionTime.
+*
+* - `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 points registered in the first entry Traces[1]
+* of the detectionZonesToEventPosition component is not containing the same list of pathPoints than in the
+* first entry of traces 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 shall be of type `ObsPduEtsiGn`.
+*
+* - `nonV2xPduEvidence`: No other evidence is required to be included
+* to support this observation.
+*/
+
+ TrafficCondition-PathChangeInMultipleRepetitions ::= NULL
+ -- IDs
+ c-ObsPathChangeInMultipleRepetitions IdMbObs::= 2 -- Class 2
+ -- Individual Information Objects
+ obs-PathChangeInMultipleRepetitions C-ASR-SINGLE-OBS ::=
+ {TrafficCondition-PathChangeInMultipleRepetitions BY c-ObsPathChangeInMultipleRepetitions}
+
+ /** This data type is provided for an observation of a validity duration in a DENM inconsistent with
+ * the detected TrafficCondition - Local slow down 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 field validityDuration in the Management container
+ * is not set to the value 60 (in the unit of second).
+
+ * 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.
+ */
+
+ TrafficCondition-ValidityDurationIncWithLocalSlowDown ::= NULL
+ -- IDs
+c-ObsValidityDurationIncWithLocalSlowDown IdMbObs::= 3 -- Class 1
+ -- Individual Information Objects
+obs-ValidityDurationIncWithLocalSlowDown C-ASR-SINGLE-OBS ::=
+ {TrafficCondition-ValidityDurationIncWithLocalSlowDown BY c-ObsValidityDurationIncWithLocalSlowDown}
+
+ /** This data type is provided for an observation of an awareness distance in a DENM inconsistent with
+ * the detected TrafficCondition - Local slow down 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 field awarenessDistance is not present or is not
+ * equal to the value lessThan1000m (4).
+ *
+ * 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.
+ */
+
+ TrafficCondition-AwarenessDistanceIncWithLocalSlowDown ::= NULL
+ -- IDs
+ c-ObsAwarenessDistanceIncWithLocalSlowDown IdMbObs::= 4 -- Class 1
+ -- Individual Information Objects
+obs-AwarenessDistanceIncWithLocalSlowDown C-ASR-SINGLE-OBS ::=
+ {TrafficCondition-AwarenessDistanceIncWithLocalSlowDown BY c-ObsAwarenessDistanceIncWithLocalSlowDown}
+
+/**
+* This data type is provided for an observation of the speed in the next CAM transmitted
+* by the same ITS-S (i.e. same stationId) at the origin of the DENM signalling a Traffic Condition / Local slow down
+* event which is inconsistent with the eventSpeed contained in that DENM.
+*
+* - `v2xPduEvidence`: This field must contain at least one entry.
+* The observation applies to the first entry (V2xPduEvidence[0]). The `subjectPduIndex`
+* in that @ref V2xPduStream (EtsiTs103759BaseTypes.md#V2xPduStream) points to
+* the DENM PDU whose speed is being flagged as inconsistent with the speed of the DENM-originating ITS-S
+* indicated in the next CAM, i.e. the `subjectPduIndex` is set to 0.
+* The `v2xPdus` field in that entry must contain at least the subject PDU
+* and the CAM PDU that immediately followed 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.
+*/
+CamSpeedIncWithLocalSlowDown ::= NULL
+-- IDs
+c-ObsCamSpeedIncWithLocalSlowDown IdMbObs::= 5 -- Class 5
+-- Individual Information Objects
+obs-CamSpeedIncWithLocalSlowDown C-ASR-SINGLE-OBS ::= {
+ CamSpeedIncWithLocalSlowDown BY c-ObsCamSpeedIncWithLocalSlowDown
+}
+
+/**
+* This data type is provided for an observation of a traffic direction not set to upstream () in the management
+* container in the DENM transmitted by the ITS-S.
+* - `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 trafficDirection value is inconsistent with the event type which requires that trafficDirection value is set to upstream.
+*
+* - `nonV2xPduEvidence`: No other evidence is required to be included to support this observation.
+*/
+
+TrafficCondition-DirectionIncWithLocalSlowDown ::= NULL
+-- IDs
+c-ObsDirectionIncWithLocalSlowDown IdMbObs::= 6 -- Class 1
+-- Individual Information Objects
+obs-DirectionIncWithLocalSlowDown C-ASR-SINGLE-OBS ::=
+{TrafficCondition-DirectionIncWithLocalSlowDown BY c-ObsDirectionIncWithSuddenSpeedDrop}
+
+
+-- ********************************************************************************
+-- 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}
+
+/**
+* This data type is provided for an observation of an Eebl event generated by a motorcycle
+* or passenger vehicle whose eventSpeed is below the minimum speed for triggering
+* an emergency brake.
+* - `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-EventSpeedBelowMinThreshold ::= NULL
+-- IDs
+c-ObsEeblEventSpeedBelowMinThreshold IdMbObs::= 3 -- Class 1
+-- Individual Information Objects
+obs-EeblEventSpeedBelowMinThreshold C-ASR-SINGLE-OBS ::=
+ {Eebl-EventSpeedBelowMinThreshold BY c-ObsEeblEventSpeedBelowMinThreshold}
+
END
\ No newline at end of file
diff --git a/EtsiTs103759Core.asn b/EtsiTs103759Core.asn
index 52e057b2f5132fb2890967458eab502ea03bb23a..8ef6d5f614005094445802553015712b6846e65b 100755
--- a/EtsiTs103759Core.asn
+++ b/EtsiTs103759Core.asn
@@ -1,159 +1,197 @@
-EtsiTs103759Core {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
-
- 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-4(4)}
-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-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
-
- 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-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) major-version-1(1) minor-version-0(0)}
-WITH SUCCESSORS
-;
-
-/**
- * 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`.
- *
- * @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
-}
-
-/**
- * This structure is the SPDU used to send a signed and encrypted
- * @ref 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 of
- * misbehaviour reports. The signed @ref EtsiTs103759Data shall be encrypted
- * to the MA using the encryption key in the MA's certificate.
- */
-EtsiTs103759Data-SignedAndEncrypted-Unicast ::=
- EtsiTs103097Data-SignedAndEncrypted-Unicast {
- EtsiTs103759Data
-}
-
-/**
- * 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., @ref AsrCam. This will be a
- * @ref TemplateAsr instantiated with AID-specific Information Object Sets.
- */
-AidSpecificReport ::= SEQUENCE {
- aid C-ASR.&aid ({SetAsr}),
- content C-ASR.&Content ({SetAsr}{@.aid})
-}
-
-/**
- * This data type defines the IOC for @ref 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 @ref TemplateAsr instantiated with AID-specific Information Object
- * Sets.
- */
-C-ASR ::= CLASS {
- &aid Psid UNIQUE,
- &Content
-} WITH SYNTAX {&Content IDENTIFIED BY &aid}
-
-/**
- * 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} |
- {AsrCam IDENTIFIED BY c-AsrCam} |
- {AsrDenm IDENTIFIED BY c-AsrDenm},
- ...,
- {AsrBsm IDENTIFIED BY c-AsrBsm}
-}
-
-/**
- * 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
-
-/**
- * This data type contains the ITS-AID of the CA service.
- */
-c-AsrCam Psid ::= 36
-
-/**
- * This data type contains the ITS-AID of the DEN service.
- */
-c-AsrDenm Psid ::= 37
-
-/**
- * This data type contains the ITS-AID of the BSM.
- */
-c-AsrBsm Psid ::= 32
-
+EtsiTs103759Core {itu-t(0) identified-organization(4) etsi(0)
+ itsDomain(5) wg5(5) ts(103759) general(1) core(1) major-version-2(2)
+ minor-version-1(1)}
+
+DEFINITIONS AUTOMATIC TAGS ::= BEGIN
+
+EXPORTS ALL;
+
+IMPORTS
+ EtsiTs103097Data-Signed,
+ 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
+
+ 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-4(4)}
+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-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
+
+ 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-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) major-version-1(1) minor-version-0(0)}
+WITH SUCCESSORS
+;
+
+/**
+ * This data type is the top level PDU for a misbehaviour report from an ITS
+ * station to the Misbehaviour Authority (MA) responsible for reports of that
+ * type.
+ *
+ * @param version: contains the version number of this PDU definition.
+ *
+ * @param content: contains the security encapsulated misbehaviour report.
+ */
+EtsiTs103759Data ::= SEQUENCE {
+ version Uint8(3),
+ content EtsiTs103759MbrSec
+}
+
+/**
+ * This data type is the security encapsulation for @ref EtsiTs103759Mbr.
+ *
+ * @param plaintext: contains the report in the plaintext form, i.e., without
+ * any security encapsulation.
+ *
+ * @param signed: contains the report in the signed form.
+ *
+ * @param sTE: contains the report in the signed-then-encrypted form.
+ */
+EtsiTs103759MbrSec ::= CHOICE {
+ plaintext EtsiTs103759Mbr,
+ signed EtsiTs103759Mbr-Signed,
+ sTE EtsiTs103759Mbr-STE,
+ ...
+}
+
+/**
+ * This data type is the container for the generation time, observation
+ * location and the AID-specific misbehaviour report.
+ *
+ * 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`.
+ *
+ * @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.
+ */
+EtsiTs103759Mbr ::= SEQUENCE {
+ generationTime Time64,
+ observationLocation ThreeDLocation,
+ report AidSpecificReport
+}
+
+/**
+ * This data type is used for the option signed of security encapsulation of
+ * the report.
+ *
+ * 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 of
+ * misbehaviour reports.
+ */
+EtsiTs103759Mbr-Signed ::= EtsiTs103097Data-Signed {EtsiTs103759Mbr}
+
+/**
+ * This data type is used for the option sTE (signed-then-encrypted) of security
+ * encapsulation of the report.
+ *
+ * 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 of
+ * misbehaviour reports. The signed @ref EtsiTs103759Mbr shall be encrypted
+ * to the MA using the encryption key in the MA's certificate.
+ */
+EtsiTs103759Mbr-STE ::= EtsiTs103097Data-SignedAndEncrypted-Unicast {
+ EtsiTs103759Mbr
+}
+
+/**
+ * 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., @ref AsrCam. This will be a
+ * @ref TemplateAsr instantiated with AID-specific Information Object Sets.
+ */
+AidSpecificReport ::= SEQUENCE {
+ aid C-ASR.&aid ({SetAsr}),
+ content C-ASR.&Content ({SetAsr}{@.aid})
+}
+
+/**
+ * This data type defines the IOC for @ref 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 @ref TemplateAsr instantiated with AID-specific Information Object
+ * Sets.
+ */
+C-ASR ::= CLASS {
+ &aid Psid UNIQUE,
+ &Content
+} WITH SYNTAX {&Content IDENTIFIED BY &aid}
+
+/**
+ * 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} |
+ {AsrCam IDENTIFIED BY c-AsrCam} |
+ {AsrDenm IDENTIFIED BY c-AsrDenm},
+ ...,
+ {AsrBsm IDENTIFIED BY c-AsrBsm}
+}
+
+/**
+ * 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
+
+/**
+ * This data type contains the ITS-AID of the CA service.
+ */
+c-AsrCam Psid ::= 36
+
+/**
+ * This data type contains the ITS-AID of the DEN service.
+ */
+c-AsrDenm Psid ::= 37
+
+/**
+ * This data type contains the ITS-AID of the BSM.
+ */
+c-AsrBsm Psid ::= 32
+
END
\ No newline at end of file
diff --git a/docs/EtsiTs103097ExtensionModule.md b/docs/EtsiTs103097ExtensionModule.md
index 56bb65640f06eac051f00db06f9126cb1e4f813b..1f7d5810fe3a97c3963cfceff820b9fb6212c515 100644
--- a/docs/EtsiTs103097ExtensionModule.md
+++ b/docs/EtsiTs103097ExtensionModule.md
@@ -10,6 +10,10 @@ ExtensionModuleVersion::= INTEGER(1)
```
### 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}),
@@ -18,6 +22,9 @@ Extension {EXT-TYPE : ExtensionTypes} ::= SEQUENCE {
```
### EXT-TYPE
+
+Fields:
+* _extId_ of type [**ExtId**](#ExtId)
```asn1
EXT-TYPE ::= CLASS {
&extId ExtId,
@@ -52,6 +59,10 @@ EtsiTs103097HeaderInfoExtensions EXT-TYPE ::= {
```
### EtsiTs102941CrlRequest
+
+Fields:
+* _issuerId_ of type [**HashedId8**](Ieee1609Dot2BaseTypes.md#HashedId8)
+* _lastKnownUpdate_ of type [**Time32**](Ieee1609Dot2BaseTypes.md#Time32) OPTIONAL
```asn1
EtsiTs102941CrlRequest::= SEQUENCE {
issuerId HashedId8,
@@ -60,6 +71,10 @@ EtsiTs102941CrlRequest::= SEQUENCE {
```
### EtsiTs102941CtlRequest
+
+Fields:
+* _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 dd600192dbbc88eb0fcbe878f47a8a1ec124050e..6bb42c7b4a9c5c066fef5b4f75731a6b2a929472 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 77219e33eb66f95d81cf42271d1e8e5613bec135..2c7d8c94a6c1f469745781450581c51b9525a74d 100644
--- a/docs/EtsiTs103759AsrCam.md
+++ b/docs/EtsiTs103759AsrCam.md
@@ -1,5 +1,5 @@
# 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)}_
+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-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*
@@ -13,6 +13,7 @@ AsrCam ::= TemplateAsr {{SetMbObsTgtsCam}, {SetMbEvCam}}
```
### IdCamTgt
+This data type is for identifying target classes for CAM.
```asn1
IdCamTgt ::= Uint8
```
@@ -27,6 +28,23 @@ c-CamTgt-LongAccCommon IdCamTgt ::= 5
```
### SetMbObsCamBeacon
+This is a set of observations for the target class c-CamTgt-BeaconCommon,
+ where the trigger conditions for different observations are as follows.
+
+* 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.
+
+
```asn1
SetMbObsCamBeacon C-ASR-SINGLE-OBS ::= {
obs-Beacon-IntervalTooSmall,
@@ -35,6 +53,18 @@ SetMbObsCamBeacon C-ASR-SINGLE-OBS ::= {
```
### SetMbObsCamStatic
+This is a set of observations for the target class c-CamTgt-StaticCommon,
+ where the trigger conditions for different observations are as follows.
+
+* 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).
+
+
```asn1
SetMbObsCamStatic C-ASR-SINGLE-OBS ::= {
obs-Static-Change,
@@ -43,6 +73,53 @@ SetMbObsCamStatic C-ASR-SINGLE-OBS ::= {
```
### SetMbObsCamSecurity
+This is a set of observations for the target class c-CamTgt-SecurityCommon,
+ where the trigger conditions for different observations are as follows.
+
+Values:
+* **obs-Security-MessageIdIncWithHeaderInfo** |
+* **obs-Security-HeaderIncWithSecurityProfile** |
+* **obs-Security-HeaderPsidIncWithCertificate** |
+* **obs-Security-MessageIncWithSsp** |
+* **obs-Security-HeaderTimeOutsideCertificateValidity** |
+* **obs-Security-MessageLocationOutsideCertificateValidity** |
+* 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 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.
+
+
```asn1
SetMbObsCamSecurity C-ASR-SINGLE-OBS ::= {
obs-Security-MessageIdIncWithHeaderInfo |
@@ -57,6 +134,15 @@ SetMbObsCamSecurity C-ASR-SINGLE-OBS ::= {
```
### SetMbObsCamPosition
+This is a set of observations for the target class c-CamTgt-PositionCommon,
+ where the trigger conditions for different observations are as follows.
+
+* Position-ChangeTooLarge
+ The speed calculated from the change in
+ referencePosition of two consecutive CAMs meets the trigger conditions of
+ Speed-ValueTooLarge-VehicleType.
+
+
```asn1
SetMbObsCamPosition C-ASR-SINGLE-OBS ::= {
obs-Position-ChangeTooLarge,
@@ -65,6 +151,44 @@ SetMbObsCamPosition C-ASR-SINGLE-OBS ::= {
```
### SetMbObsCamSpeed
+This is a set of observations for the target class c-CamTgt-SpeedCommon,
+ where the trigger conditions for different observations are as follows.
+
+Values:
+* **obs-Speed-ValueTooLarge-VehicleType** |
+* **obs-Speed-ValueTooLarge-DriveDirectionReverse** |
+* Speed-ValueTooLarge-VehicleType
+ The trigger conditions depend on
+ the stationType as follows:
+ - `passengerCar(5)`: The speedValue is greater than 14,000.
+ **Rationale**: 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.
+ **Rationale**: 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.
+ **Rationale**: 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.
+ **Rationale**: 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.
+ **Rationale**: 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 the square root of
+ (2 * 9 * 50) in m/s, which is equal to 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
SetMbObsCamSpeed C-ASR-SINGLE-OBS ::= {
obs-Speed-ValueTooLarge-VehicleType |
@@ -75,6 +199,16 @@ SetMbObsCamSpeed C-ASR-SINGLE-OBS ::= {
```
### SetMbObsCamLongAcc
+This is a set of observations for the target class c-CamTgt-LongAccCommon,
+ where the trigger conditions for different observations are as follows.
+
+* 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
SetMbObsCamLongAcc C-ASR-SINGLE-OBS ::= {
obs-LongAcc-ValueTooLarge,
@@ -83,100 +217,7 @@ SetMbObsCamLongAcc C-ASR-SINGLE-OBS ::= {
```
### SetMbObsTgtsCam
-This is a complete set of observations for CAM. Application-specific
- trigger conditions and other relevant information are specified below.
-
- - _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.
-
- - `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.
-
- - _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.)
-
- - `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/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.)
+This is a complete set of observations for CAM.
```asn1
SetMbObsTgtsCam C-ASR-OBS-BY-TGT ::= {
{MbSingleObservation{{SetMbObsCamBeacon}} BY
@@ -196,7 +237,7 @@ SetMbObsTgtsCam C-ASR-OBS-BY-TGT ::= {
```
### SetMbEvCam
-This data type defines the IOS for CAM Evidence.
+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 92a8aeb2700674905a84234813f6e4146b52d3f1..df60b4254d7fff144457b8f775b72ea96fb2e9b9 100644
--- a/docs/EtsiTs103759AsrDenm.md
+++ b/docs/EtsiTs103759AsrDenm.md
@@ -1,11 +1,325 @@
# 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-TimeChangeInRepetitions IdDenmTgt ::= 2
+c-DenmTgt-IncTimeAndDuration IdDenmTgt ::= 3
+c-DenmTgt-SecurityCommon IdDenmTgt ::= 4
+c-DenmTgt-TrafficCondition-SuddenSpeedDrop IdDenmTgt ::= 5
+c-DenmTgt-TrafficCondition-LocalSlowDown IdDenmTgt ::= 6
+c-DenmTgt-DangerousSituation-Eebl IdDenmTgt ::= 7
+c-DenmTgt-IncDistanceBetweenEventAndReportingStationPositions IdDenmTgt ::= 8
+```
+
+### SetMbObsDenmBeacon
+This module specifies a set of observations for a subset of DENM Use Cases listed in TS 103 759 Annex D.2 (see table D.3). The data types used for specifying the set observations per target class
+ and the data types used for detailing other evidences which may need to be included in the report are given.
+ This is a set of observations for the target class c-DenmTgt-BeaconCommon,
+ where the trigger conditions for different observations are as follows.
+
+ - @param Beacon-IntervalTooSmall: The difference between the generation time in the Header Info of two consecutive signed DENMs
+ related to the same traffic event (same actionId and detectionTime) transmitted by the same ITS station (same stationId) is
+ less than 80% of the minimum threshold value of the DENM repetition interval. This minimum threshold is set to 100 ms,
+ considering the list of Day1 uses cases referenced in TS 103 759 table D.3 specified in C2C-CC Basic System Profile [[i.11]](#references)
+ and C-Roads specifications [[i.12]](#references). The difference is calculated as the difference between the generationTime in the second DENM and the
+ generationTime in the first DENM.
+```asn1
+SetMbObsDenmBeacon C-ASR-SINGLE-OBS ::= {
+ obs-Beacon-IntervalTooSmall,
+ ...
+}
+```
+
+### SetMbObsDenmStatic
+This is a set of observations for the target class c-DenmTgt-StaticCommon,
+ where the trigger conditions for different observations are as follows.
+
+ - @param 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 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).
+```asn1
+SetMbObsDenmStatic C-ASR-SINGLE-OBS ::= {
+ obs-Static-Change,
+ ...
+}
+```
+
+### SetMbObsDenmTimeChangeInRepetitions
+This is a set of observations for the target class c-DenmTgt-TimeChangeInRepetitions,
+ where the trigger conditions for different observations are as follows.
+
+ - @param Time-Change-In-Repetitions: Any change in the value of the detectionTime field which happens during the repetition of the same event (same actionId
+ and referenceTime) transmitted by the same ITS station (stationId).
+```asn1
+SetMbObsDenmTimeChangeInRepetitions C-ASR-SINGLE-OBS ::= {
+ obs-Time-Change-In-Repetitions,
+ ...
+}
+```
+
+### SetMbObsDenmIncTimeAndDuration
+This is a set of observations for the target class c-DenmTgt-IncTimeAndDuration,
+ where the trigger conditions for different observations are as follows.
+
+ - @param UnplausibleReferenceTime: The reference time in the Management container of the DENM is greater than the current time
+ of the receiving ITS-S.
+ - @param UnplausibleDetectionTime: The detection time in the Management container of the DENM is greater than the current time
+ of the receiving ITS-S.
+ - @param ExceededEventValidityTime: The expiration time of the DENM event calculated by adding the Detection Time and the Validity Duration time
+ in the Management container of the DENM is smaller than the current time of the receiving ITS-S.
+
+Values:
+* **obs-UnplausibleReferenceTime** |
+* **obs-UnplausibleDetectionTime** |
+```asn1
+SetMbObsDenmIncTimeAndDuration C-ASR-SINGLE-OBS ::= {
+ obs-UnplausibleReferenceTime |
+ obs-UnplausibleDetectionTime |
+ obs-ExceededEventValidityTime,
+ ...
+}
+```
+
+### SetMbObsDenmIncDistanceBetweenEventAndReportingStationPositions
+This is a set of observations for the target class c-DenmTgt-IncDistanceBetweenEventAndReportingStationPositions,
+ where the trigger conditions for different observations are as follows.
+
+ - @param DistanceBetweenPositionInDenmAndLdmTooLarge : The distance between the eventPosition of the DENM transmitted by the ITS-S
+ and the referencePosition received in the last CAM received from that ITS-S (i.e. same stationId) stored in the LDM as defined in ETSI TS 103 938 [[i.13]](#references) is larger than a maximum distance
+ threshold. This threshold is set to 1 km if the event type is one of the following: dangerousEndOfQueue or trafficCondition.The threshold is set to 100 m if the event type (causeCode) is
+ one of the following: stationaryVehicle, emergencyVehicleApproaching, collisionRisk, dangerousSitiation.
+
+ This distance may be calculated as the euclidean distance between the two points or preferrably as the distance of the two points using their (longitude, latitude)
+ in radians on a sphere of radius r = 6 378 137 metres (ref [Kells, Lyman M.; Kern, Willis F.; Bland, James R. (1940). Plane And Spherical Trigonometry. McGraw Hill Book Company, Inc. pp. 323-326])
+
+ This detector shall only apply if the generationDeltaTime in the CAM Payload verifies one of the following conditions:
+ - The generationDeltaTime is higher than the (referenceTime â 1000) mod 65,536 and the value of (generationDeltatTime â (referenceTime -1000) mod 65,536)
+ is lower than 1000 (unit in millisecond).
+ - The generationDeltaTime is lower than the (referenceTime â 1000) mod 65,536 and the value of (generationDeltatTime - (referenceTime â 1000) mod 65,536 + 65,536)
+ is lower than 1000 (unit in millisecond).
+
+ - @param DistanceBetweenPositionInDenmAndCamTooLarge: The cause code choice in the DENM is either trafficCondition1 or dangerousEndOfQueue27 and
+ the distance between the eventPosition of the DENM transmitted by the ITS-S and the referencePosition received in the next CAM
+ received from that ITS-S (i.e. same stationId) is larger than a maximum distance of 600 meters.
+ This distance may be calculated as the euclidean distance between the two points or preferrably as the distance of the two points using their (longitude, latitude)
+ in radians on a sphere of radius r = 6 378 137 metres (ref [Kells, Lyman M.; Kern, Willis F.; Bland, James R. (1940). Plane And Spherical Trigonometry. McGraw Hill Book Company, Inc. pp. 323-326])
+
+ This detector shall only apply if the generationDeltaTime in the CAM Payload verifies one of the following conditions:
+ - The generationDeltaTime is higher than the (referenceTime mod 65,536) and the (generationDeltatTime - referenceTime mod 65,536) is lower than
+ 1000 (unit in millisecond).
+ - The generationDeltaTime is lower than the (referenceTime mod 65,536) and the value of (generationDeltatTime - referenceTime mod 65,536 + 65,536)
+ is lower than 1000 (unit in millisecond).
+
+Values:
+* **obs-DistanceBetweenPositionInDenmAndLdmTooLarge** |
+```asn1
+SetMbObsDenmIncDistanceBetweenEventAndReportingStationPositions C-ASR-SINGLE-OBS ::= {
+ obs-DistanceBetweenPositionInDenmAndLdmTooLarge |
+ obs-DistanceBetweenPositionInDenmAndCamTooLarge,
+ ...
+}
+```
+
+### SetMbObsDenmSecurity
+This is a set of observations for the target class c-DenmTgt-SecurityCommon,
+ where the trigger conditions for different observations are as follows.
+ The same specification applies as for the set of observations of SetMbObsCamSecurity defined in the EtsiTs103759AsrCam module.
+
+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,
+ ...
+}
+```
+
+### SetMbObsDenmTrafficCondition-SuddenSpeedDrop
+This group of detectors is defined for the Use Case Traffic Condition â Sudden speed drop as specified in [[i.14]](#references).
+ They apply on DENM which cause code is equal to 'Dangerous end of queue' and sub cause code is equal to unavailable(0)
+ and which stationType has one of the following value: motorcycle(4), passengerCar(5), bus(6), ligthTruck(7), heavyTruck(8), specialVehicle(10).
+ This is a set of observations for the target class c-DenmTgt-TrafficCondition-SuddenSpeedDrop,
+ where the trigger conditions for different observations are as follows.
+
+ - @param RoadTypeIncWithSuddenSpeedDrop: The roadType of the Location Container is not equal to 'non-urban' road type (i.e. is not set to value
+ nonUrban-NoStructuralSeparationToOppositeLanes (2) or nonUrban-WithStructuralSeparationToOppositeLanes (3)).
+
+ - @param ValidityDurationIncWithSuddenSpeedDrop: The validity duration in the Management container of the DENM is not equal to 20s.
+
+ - @param DistanceIncWithSuddenSpeedDrop: The awarenessDistance is not present or its value is not set to lessThan1000m (4).
+
+ - @param DirectionNotUpstream: The trafficDirection is inconsistent with the traffic direction specified as upstream direction for this event type.
+
+Values:
+* **obs-RoadTypeIncWithSuddenSpeedDrop** |
+* **obs-ValidityDurationIncWithSuddenSpeedDrop** |
+* **obs-AwarenessDistanceIncWithSuddenSpeedDrop** |
+```asn1
+SetMbObsDenmTrafficCondition-SuddenSpeedDrop C-ASR-SINGLE-OBS ::= {
+ obs-RoadTypeIncWithSuddenSpeedDrop |
+ obs-ValidityDurationIncWithSuddenSpeedDrop |
+ obs-AwarenessDistanceIncWithSuddenSpeedDrop |
+ obs-DirectionIncWithSuddenSpeedDrop,
+ ...
+}
+```
+
+### SetMbObsDenmTrafficCondition-LocalSlowDown
+This group of detectors is defined for the Use Case Traffic Condition â Local slow down as specified in [[i.14]](#references).
+ They apply on DENM which cause code is equal to 'TrafficCondition' and sub cause code is equal to unavailable(0)
+ and which stationType has one of the following value: motorcycle(4), passengerCar(5), bus(6), ligthTruck(7), heavyTruck(8), specialVehicle(10).
+ This is a set of observations for the target class c-DenmTgt-TrafficCondition-LocalSlowDown,
+ where the trigger conditions for different observations are as follows.
+
+ - @param RoadTypeIncWithLocalSlowDown: The roadType of the Location Container is not equal to 'non-urban' road type (i.e. is not set to value
+ nonUrban-NoStructuralSeparationToOppositeLanes (2) or nonUrban-WithStructuralSeparationToOppositeLanes (3)).
+
+ - @param PathChangeInMultipleEventRepetitions: The pathPositions contained in the first Traces entry of multiple repeated TrafficJamAhead events
+ with the same reporting ITS-S, same actionId and same detectionTime are not identical.
+
+ - @param ValidityDurationIncWithLocalSlowDown: The validity duration in the Management container of the DENM is not equal to 60s.
+
+ - @param DistanceIncWithLocalSlowDown: The awarenessDistance is not present or its value is not set to lessThan1000m (4).
+
+ - @param CamSpeedIncWithLocalSlowDown : The following three triggering conditions shall be verified:
+ - the component 'termination' in the management container of the suspected DENM shall not be equal to isCancellation(0) or isNegation(1),
+ - the eventSpeed value in that DENM is higher than a minimum speed value of 10 km/h,
+ - the speed value in the next CAM transmitted by the DENM-originating ITS-S (i.e. same stationId), in the time interval comprised between
+ referenceTime and referenceTime + 1 second, has a speed higher than twice the eventSpeed contained in that DENM.
+ The CAM timestamp (generationDeltaTime) shall verify one of the following conditions:
+ - The generationDeltaTime is higher than the (referenceTime mod 65,536) and the (generationDeltatTime - referenceTime mod 65,536) is lower than
+ 1000 (unit in millisecond).
+ - The generationDeltaTime is lower than the (referenceTime mod 65,536) and the value of (generationDeltatTime - referenceTime mod 65,536 + 65,536)
+ is lower than 1000 (unit in millisecond).
+
+ - @param DirectionNotUpstream: The trafficDirection is inconsistent with the traffic direction specified as upstream direction for this event type.
+
+Values:
+* **obs-RoadTypeIncWithLocalSlowDown** |
+* **obs-PathChangeInMultipleRepetitions** |
+* **obs-ValidityDurationIncWithLocalSlowDown** |
+* **obs-AwarenessDistanceIncWithLocalSlowDown** |
+* **obs-CamSpeedIncWithLocalSlowDown** |
+```asn1
+SetMbObsDenmTrafficCondition-LocalSlowDown C-ASR-SINGLE-OBS ::= {
+ obs-RoadTypeIncWithLocalSlowDown |
+ obs-PathChangeInMultipleRepetitions |
+ obs-ValidityDurationIncWithLocalSlowDown |
+ obs-AwarenessDistanceIncWithLocalSlowDown |
+ obs-CamSpeedIncWithLocalSlowDown |
+ obs-DirectionIncWithLocalSlowDown,
+ ...
+}
+```
+
+### SetMbObsDenmDangerousSituation-Eebl
+This group of detectors is defined for the Use Case Dangerous situation â Electronic emergency brake light as specified in [[i.15]](#references).
+ This is a set of observations for the target class c-DenmTgt-DangerousSituation-Eebl,
+ where the trigger conditions for different observations are as follows.
+
+ - @param EeblMissingLocationInformation: one of the following location information of the detected event is missing: eventSpeed, eventPositionHeading,
+ detectionZonesToEventPosition of type Traces.
+
+ - @param 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.
+ - @param: EeblEventSpeedbelowMinThreshold: The stationType is indicating a motorcycle (4) or a passengerCar (5)
+ and the speed of the vehicle in the DENM (eventSpeed) is lower than the minEeblSpeedThreshold set to 20 km/h.
+
+Values:
+* **obs-EeblMissingLocationInformation** |
+* **obs-EeblIncWithOtherVehiclesSpeed** |
+```asn1
+SetMbObsDenmDangerousSituation-Eebl C-ASR-SINGLE-OBS ::= {
+ obs-EeblMissingLocationInformation |
+ obs-EeblIncWithOtherVehiclesSpeed |
+ obs-EeblEventSpeedBelowMinThreshold,
+ ...
+}
+```
+
+### SetMbObsTgtsDenm
+This is a complete set of observations for DENM.
+```asn1
+SetMbObsTgtsDenm C-ASR-OBS-BY-TGT ::= {
+ {MbSingleObservation{{SetMbObsDenmBeacon}} BY
+ c-DenmTgt-BeaconCommon} |
+ {MbSingleObservation{{SetMbObsDenmStatic}} BY
+ c-DenmTgt-StaticCommon} |
+ {MbSingleObservation{{SetMbObsDenmTimeChangeInRepetitions}} BY
+ c-DenmTgt-TimeChangeInRepetitions} |
+ {MbSingleObservation{{SetMbObsDenmIncTimeAndDuration}} BY
+ c-DenmTgt-IncTimeAndDuration} |
+ {MbSingleObservation{{SetMbObsDenmSecurity}} BY
+ c-DenmTgt-SecurityCommon} |
+ {MbSingleObservation{{SetMbObsDenmTrafficCondition-SuddenSpeedDrop}} BY
+ c-DenmTgt-TrafficCondition-SuddenSpeedDrop} |
+ {MbSingleObservation{{SetMbObsDenmTrafficCondition-LocalSlowDown}} BY
+ c-DenmTgt-TrafficCondition-LocalSlowDown} |
+ {MbSingleObservation{{SetMbObsDenmDangerousSituation-Eebl}} BY
+ c-DenmTgt-DangerousSituation-Eebl} |
+ {MbSingleObservation{{SetMbObsDenmIncDistanceBetweenEventAndReportingStationPositions}} BY
+ c-DenmTgt-IncDistanceBetweenEventAndReportingStationPositions}
+ ,
+ ...
+}
+```
+
+### SetMbEvDenm
+```asn1
+SetMbEvDenm C-ASR-EV ::= {
+ {MbEvDenmLdmCam BY
+ c-MbEvDenm-LdmCam} ,
+ ...
+ }
+```
+
+### MbEvDenmLdmCam
+MbEvDenmLdmCam shall contain an ASN1 UPER encoded - ETSI CAM PDU
+ according to ETSI TS 103 900 [[8]](#references), stored in the LDM of the DENM originating ITS-S
+```asn1
+MbEvDenmLdmCam ::= Opaque
+```
+
+### IdMbDenmEvidence
+This data type contains the identifiers of the evidence types inserted in the NonV2xPduEvidence.
+
+* c-MbEvDenm-LdmCam
+ is the identifier for an LDM entry containing a received CAM PDU.
+
+
+```asn1
+IdMbDenmEvidence ::= Uint8
+c-MbEvDenm-LdmCam IdMbDenmEvidence ::= 1
```
diff --git a/docs/EtsiTs103759BaseTypes.md b/docs/EtsiTs103759BaseTypes.md
index 44fb007d13a07d957ef873fc7d7b9dd6bce28f65..fceed255d4900328cfab17b5aedeef15d230ae72 100644
--- a/docs/EtsiTs103759BaseTypes.md
+++ b/docs/EtsiTs103759BaseTypes.md
@@ -8,6 +8,7 @@ OID: _{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103759
### TemplateAsr
This data type contains the template for a report on any ITS PDU.
+Fields:
* _observations_ of type [**ObservationsByTargetSequence**](#ObservationsByTargetSequence) {{ObservationSet}}
identifies which detectors were triggered and why. It
can include cross-references to the PDUs and evidence fields. The
@@ -19,7 +20,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
@@ -43,6 +44,7 @@ TemplateAsr {
This data type contains all of the observations related to a
particular "target" property, e.g., speed or security.
+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
@@ -75,6 +77,7 @@ C-ASR-OBS-BY-TGT ::= C-2ENT
### MbSingleObservation
This data type contains a single misbehaviour observation.
+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
@@ -103,6 +106,8 @@ C-ASR-SINGLE-OBS ::= C-2ENT
### V2xPduStream
This data type contains PDU stream from a single sender.
+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
@@ -189,6 +194,7 @@ ObsPduEtsiGn ::= Opaque
### 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.
@@ -215,6 +221,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 +230,9 @@ 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.
+
+Fields:
+* _id_ of type [**Uint8**](Ieee1609Dot2BaseTypes.md#Uint8)
```asn1
C-2ENT ::= CLASS {
&id Uint8,
diff --git a/docs/EtsiTs103759CommonObservations.md b/docs/EtsiTs103759CommonObservations.md
index 8a6e1b7bf5213c207573897a5af83c14c4b54300..d4aabd197f474900b822557ae98ac8ac76337c29 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*
@@ -20,8 +20,7 @@ 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.
+ that is too small.
- `v2xPduEvidence`: This field must contain at least one entry.
The observation applies to the first entry. The `subjectPduIndex`
@@ -174,7 +173,7 @@ This data type is provided for an observation, where the `generationTime`
- `v2xPduEvidence`: This field must contain at least one entry.
The observation applies to the first entry. The `subjectPduIndex`
in that [**V2xPduStream**](EtsiTs103759BaseTypes.md#V2xPduStream) points to
- the PDU for which the `generationTime` in the security `headerInfo` is being
+ the PDU for which the `` 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
@@ -362,5 +361,373 @@ obs-LongAcc-ValueTooLarge C-ASR-SINGLE-OBS ::= {
}
```
+### TimeChangeInRepetitions-IncTimeInRepetitions
+This data type is provided for an observation of change of the detection time or of the event termination fields
+ in two successive, repeated DENM messages, i.e. transmitted by the same stationId with the same actionId and same detectionTime.
+ The semantics of the `BIT STRING` are provided in the application-specific files.
+
+ - `v2xPduEvidence`: This field must contain at least one entry.
+ The observation applies to the first entry. The `subjectPduIndex`
+ in that [**V2xPduStream**](EtsiTs103759BaseTypes.md#V2xPduStream) points to
+ the PDU whose detection time or termination 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.
+
+ - `nonV2xPduEvidence`: No other evidence is required to be included
+ to support this observation.
+```asn1
+TimeChangeInRepetitions-IncTimeInRepetitions ::= NULL
+ c-ObsIncTimeInRepetitions IdMbObs::= 1
+ obs-Time-Change-In-Repetitions C-ASR-SINGLE-OBS ::= {
+ TimeChangeInRepetitions-IncTimeInRepetitions BY c-ObsIncTimeInRepetitions
+}
+```
+
+### IncTimeAndDuration-UnplausibleReferenceTime
+This data type is provided for an observation of a referenceTime in the DENM which value is in the future (i.e. is greater than
+ the current time of the receiving ITS-S).
+ - `v2xPduEvidence`: This field must contain at least one entry.
+ The observation applies to the first entry. The `subjectPduIndex`
+ in that [**V2xPduStream**](EtsiTs103759BaseTypes.md#V2xPduStream) points to the PDU whose field referenceTime in the Management container
+ is greater than the current time.
+
+ 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.
+```asn1
+IncTimeAndDuration-UnplausibleReferenceTime ::= NULL
+c-ObsUnplausibleReferenceTime IdMbObs::= 1
+obs-UnplausibleReferenceTime C-ASR-SINGLE-OBS ::=
+{IncTimeAndDuration-UnplausibleReferenceTime BY c-ObsUnplausibleReferenceTime}
+```
+
+### IncTimeAndDuration-UnplausibleDetectionTime
+This data type is provided for an observation of a detectionTime in the DENM which value is in the future (i.e. is greater than
+ the current time of the receiving ITS-S).
+ - `v2xPduEvidence`: This field must contain at least one entry.
+ The observation applies to the first entry. The `subjectPduIndex`
+ in that [**V2xPduStream**](EtsiTs103759BaseTypes.md#V2xPduStream) points to the PDU whose field detectionTime in the Management container
+ is greater than the current time.
+
+ 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.
+```asn1
+IncTimeAndDuration-UnplausibleDetectionTime ::= NULL
+c-ObsUnplausibleDetectionTime IdMbObs::= 2
+obs-UnplausibleDetectionTime C-ASR-SINGLE-OBS ::=
+{IncTimeAndDuration-UnplausibleDetectionTime BY c-ObsUnplausibleDetectionTime}
+```
+
+### IncTimeAndDuration-ExceededEventValidityTime
+This data type is provided for an observation of a validity Time (calculated as DetectionTime + ValidityDuration) in the DENM which value is
+ in the past future (i.e. is smaller than the current time of the receiving ITS-S).
+ - `v2xPduEvidence`: This field must contain at least one entry.
+ The observation applies to the first entry. The `subjectPduIndex`
+ in that [**V2xPduStream**](EtsiTs103759BaseTypes.md#V2xPduStream) points to the PDU whose value of DetectionTime + ValidityDuration
+ is smaller than the current time.
+
+ 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.
+```asn1
+IncTimeAndDuration-ExceededEventValidityTime ::= NULL
+c-ObsExceededEventValidityTime IdMbObs::= 3
+obs-ExceededEventValidityTime C-ASR-SINGLE-OBS ::=
+{IncTimeAndDuration-ExceededEventValidityTime BY c-ObsExceededEventValidityTime}
+```
+
+### DistanceBetweenPositionInDenmAndLdmTooLarge
+This data type is provided for an observation of an inconsistent distance between the eventPosition in the DENM transmitted by the ITS-S signalling
+ that traffic event and the reference position of the ITS-S reporting this event (i.e. same stationId).
+ - `v2xPduEvidence`: This field must contain at least one entry.
+ The observation applies to the first entry. The `subjectPduIndex` in that [**V2xPduStream**](EtsiTs103759BaseTypes.md#V2xPduStream) points to
+ the DENM PDU whose eventPosition value is inconsistent with the reference position of the CAM either stored in the LDM or received just after that DENM.
+ - `nonV2xPduEvidence`: This field is required and must contain the CAM PDU which position is inconsistent with the event position contained in that DENM.
+```asn1
+DistanceBetweenPositionInDenmAndLdmTooLarge ::= NULL
+c-ObsDistanceBetweenPositionInDenmAndLdmTooLarge IdMbObs::=1
+obs-DistanceBetweenPositionInDenmAndLdmTooLarge C-ASR-SINGLE-OBS ::= {
+ DistanceBetweenPositionInDenmAndLdmTooLarge BY c-ObsDistanceBetweenPositionInDenmAndLdmTooLarge
+ }
+
+```
+
+### DistanceBetweenPositionInDenmAndCamTooLarge
+```asn1
+DistanceBetweenPositionInDenmAndCamTooLarge ::= NULL
+c-ObsDistanceBetweenPositionInDenmAndCamTooLarge IdMbObs::=2
+obs-DistanceBetweenPositionInDenmAndCamTooLarge C-ASR-SINGLE-OBS ::= {
+ DistanceBetweenPositionInDenmAndCamTooLarge BY c-ObsDistanceBetweenPositionInDenmAndCamTooLarge
+}
+```
+
+### TrafficCondition-RoadTypeIncWithSuddenSpeedDrop
+This data type is provided for an observation of a road type inconsistent with
+ the detected TrafficCondition - Sudden speed drop event
+
+ - `v2xPduEvidence`: This field must contain at least one entry.
+ The observation applies to the first entry. The `subjectPduIndex`
+ in that [**V2xPduStream**](EtsiTs103759BaseTypes.md#V2xPduStream) points to
+ the PDU whose road type information is inconsistent with the
+ detected event (.e. causeCode/subCauseCode = dangerousEndOfQueue/ unavailable).
+ 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.
+```asn1
+TrafficCondition-RoadTypeIncWithSuddenSpeedDrop ::= NULL
+ c-ObsRoadTypeIncWithSuddenSpeedDrop IdMbObs::= 1
+ obs-RoadTypeIncWithSuddenSpeedDrop C-ASR-SINGLE-OBS ::=
+ {TrafficCondition-RoadTypeIncWithSuddenSpeedDrop BY c-ObsRoadTypeIncWithSuddenSpeedDrop}
+```
+
+### TrafficCondition-ValidityDurationIncWithSuddenSpeedDrop
+This data type is provided for an observation of a validity duration in a DENM inconsistent with
+ the detected TrafficCondition - Sudden speed drop event
+ - `v2xPduEvidence`: This field must contain at least one entry.
+ The observation applies to the first entry. The `subjectPduIndex`
+ in that [**V2xPduStream**](EtsiTs103759BaseTypes.md#V2xPduStream) points to the PDU whose field validityDuration in the Management container
+ is not set to the value 20 (in the unit of second).
+
+ 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.
+```asn1
+TrafficCondition-ValidityDurationIncWithSuddenSpeedDrop ::= NULL
+ c-ObsValidityDurationIncWithSuddenSpeedDrop IdMbObs::= 2
+obs-ValidityDurationIncWithSuddenSpeedDrop C-ASR-SINGLE-OBS ::=
+ {TrafficCondition-ValidityDurationIncWithSuddenSpeedDrop BY c-ObsValidityDurationIncWithSuddenSpeedDrop}
+```
+
+### TrafficCondition-AwarenessDistanceIncWithSuddenSpeedDrop
+This data type is provided for an observation of an awareness distance in a DENM inconsistent with
+ the detected TrafficCondition - Sudden speed drop event
+ - `v2xPduEvidence`: This field must contain at least one entry.
+ The observation applies to the first entry. The `subjectPduIndex`
+ in that [**V2xPduStream**](EtsiTs103759BaseTypes.md#V2xPduStream) points to the PDU whose field awarenessDistance is not present or is not
+ equal to the value lessThan1000m (4).
+
+ 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.
+```asn1
+TrafficCondition-AwarenessDistanceIncWithSuddenSpeedDrop ::= NULL
+c-ObsAwarenessDistanceIncWithSuddenSpeedDrop IdMbObs::= 3
+obs-AwarenessDistanceIncWithSuddenSpeedDrop C-ASR-SINGLE-OBS ::=
+ {TrafficCondition-AwarenessDistanceIncWithSuddenSpeedDrop BY c-ObsAwarenessDistanceIncWithSuddenSpeedDrop}
+```
+
+### TrafficCondition-DirectionIncWithSuddenSpeedDrop
+This data type is provided for an observation of a traffic direction not set to upstream () in the management
+ container in the DENM transmitted by the ITS-S.
+ - `v2xPduEvidence`: This field must contain at least one entry.
+ The observation applies to the first entry. The `subjectPduIndex`
+ in that [**V2xPduStream**](EtsiTs103759BaseTypes.md#V2xPduStream) points to
+ the PDU whose trafficDirection value is inconsistent with the event type which requires that trafficDirection value is set to upstream.
+
+ - `nonV2xPduEvidence`: No other evidence is required to be included to support this observation.
+```asn1
+TrafficCondition-DirectionIncWithSuddenSpeedDrop ::= NULL
+c-ObsDirectionIncWithSuddenSpeedDrop IdMbObs::= 4
+obs-DirectionIncWithSuddenSpeedDrop C-ASR-SINGLE-OBS ::=
+{TrafficCondition-DirectionIncWithSuddenSpeedDrop BY c-ObsDirectionIncWithSuddenSpeedDrop}
+```
+
+### TrafficCondition-RoadTypeIncWithLocalSlowDown
+This data type is provided for an observation of a road type inconsistent with
+ the detected TrafficCondition - Local slow down event
+
+ - `v2xPduEvidence`: This field must contain at least one entry.
+ The observation applies to the first entry. The `subjectPduIndex`
+ in that [**V2xPduStream**](EtsiTs103759BaseTypes.md#V2xPduStream) points to
+ the PDU whose road type information is inconsistent with the
+ detected event (i.e. causeCode/subCauseCode = trafficCondition/ unavailable).
+ 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.
+```asn1
+TrafficCondition-RoadTypeIncWithLocalSlowDown ::= NULL
+c-ObsRoadTypeIncWithLocalSlowDown IdMbObs::= 1
+obs-RoadTypeIncWithLocalSlowDown C-ASR-SINGLE-OBS ::=
+ {TrafficCondition-RoadTypeIncWithLocalSlowDown BY c-ObsRoadTypeIncWithLocalSlowDown}
+```
+
+### TrafficCondition-PathChangeInMultipleRepetitions
+This data type is provided for an observation of the pathPoints of the entry Traces[[1]](#references) in the component detectionZonesToEventPosition
+ which are not identical in two successive, repeated TrafficCondition-LocalSlowDown DENM messages, i.e. transmitted by the same stationId with the
+ same actionId and same detectionTime.
+
+ - `v2xPduEvidence`: This field must contain at least one entry.
+ The observation applies to the first entry. The `subjectPduIndex`
+ in that [**V2xPduStream**](EtsiTs103759BaseTypes.md#V2xPduStream) points to the PDU whose path points registered in the first entry Traces[[1]](#references)
+ of the detectionZonesToEventPosition component is not containing the same list of pathPoints than in the
+ first entry of traces 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 shall be of type `ObsPduEtsiGn`.
+
+ - `nonV2xPduEvidence`: No other evidence is required to be included
+ to support this observation.
+```asn1
+TrafficCondition-PathChangeInMultipleRepetitions ::= NULL
+ c-ObsPathChangeInMultipleRepetitions IdMbObs::= 2
+ obs-PathChangeInMultipleRepetitions C-ASR-SINGLE-OBS ::=
+ {TrafficCondition-PathChangeInMultipleRepetitions BY c-ObsPathChangeInMultipleRepetitions}
+```
+
+### TrafficCondition-ValidityDurationIncWithLocalSlowDown
+This data type is provided for an observation of a validity duration in a DENM inconsistent with
+ the detected TrafficCondition - Local slow down event
+ - `v2xPduEvidence`: This field must contain at least one entry.
+ The observation applies to the first entry. The `subjectPduIndex`
+ in that [**V2xPduStream**](EtsiTs103759BaseTypes.md#V2xPduStream) points to the PDU whose field validityDuration in the Management container
+ is not set to the value 60 (in the unit of second).
+ 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.
+```asn1
+TrafficCondition-ValidityDurationIncWithLocalSlowDown ::= NULL
+c-ObsValidityDurationIncWithLocalSlowDown IdMbObs::= 3
+obs-ValidityDurationIncWithLocalSlowDown C-ASR-SINGLE-OBS ::=
+ {TrafficCondition-ValidityDurationIncWithLocalSlowDown BY c-ObsValidityDurationIncWithLocalSlowDown}
+```
+
+### TrafficCondition-AwarenessDistanceIncWithLocalSlowDown
+This data type is provided for an observation of an awareness distance in a DENM inconsistent with
+ the detected TrafficCondition - Local slow down event
+ - `v2xPduEvidence`: This field must contain at least one entry.
+ The observation applies to the first entry. The `subjectPduIndex`
+ in that [**V2xPduStream**](EtsiTs103759BaseTypes.md#V2xPduStream) points to the PDU whose field awarenessDistance is not present or is not
+ equal to the value lessThan1000m (4).
+
+ 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.
+```asn1
+TrafficCondition-AwarenessDistanceIncWithLocalSlowDown ::= NULL
+ c-ObsAwarenessDistanceIncWithLocalSlowDown IdMbObs::= 4
+obs-AwarenessDistanceIncWithLocalSlowDown C-ASR-SINGLE-OBS ::=
+ {TrafficCondition-AwarenessDistanceIncWithLocalSlowDown BY c-ObsAwarenessDistanceIncWithLocalSlowDown}
+```
+
+### CamSpeedIncWithLocalSlowDown
+This data type is provided for an observation of the speed in the next CAM transmitted
+ by the same ITS-S (i.e. same stationId) at the origin of the DENM signalling a Traffic Condition / Local slow down
+ event which is inconsistent with the eventSpeed contained in that DENM.
+
+ - `v2xPduEvidence`: This field must contain at least one entry.
+ The observation applies to the first entry (V2xPduEvidence[[0]](#references)). The `subjectPduIndex`
+ in that [**V2xPduStream**](EtsiTs103759BaseTypes.md#V2xPduStream) points to
+ the DENM PDU whose speed is being flagged as inconsistent with the speed of the DENM-originating ITS-S
+ indicated in the next CAM, i.e. the `subjectPduIndex` is set to 0.
+ The `v2xPdus` field in that entry must contain at least the subject PDU
+ and the CAM PDU that immediately followed 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
+CamSpeedIncWithLocalSlowDown ::= NULL
+c-ObsCamSpeedIncWithLocalSlowDown IdMbObs::= 5
+obs-CamSpeedIncWithLocalSlowDown C-ASR-SINGLE-OBS ::= {
+ CamSpeedIncWithLocalSlowDown BY c-ObsCamSpeedIncWithLocalSlowDown
+}
+```
+
+### TrafficCondition-DirectionIncWithLocalSlowDown
+This data type is provided for an observation of a traffic direction not set to upstream () in the management
+ container in the DENM transmitted by the ITS-S.
+ - `v2xPduEvidence`: This field must contain at least one entry.
+ The observation applies to the first entry. The `subjectPduIndex`
+ in that [**V2xPduStream**](EtsiTs103759BaseTypes.md#V2xPduStream) points to
+ the PDU whose trafficDirection value is inconsistent with the event type which requires that trafficDirection value is set to upstream.
+
+ - `nonV2xPduEvidence`: No other evidence is required to be included to support this observation.
+```asn1
+TrafficCondition-DirectionIncWithLocalSlowDown ::= NULL
+c-ObsDirectionIncWithLocalSlowDown IdMbObs::= 6
+obs-DirectionIncWithLocalSlowDown C-ASR-SINGLE-OBS ::=
+{TrafficCondition-DirectionIncWithLocalSlowDown BY c-ObsDirectionIncWithSuddenSpeedDrop}
+```
+
+### Eebl-MissingLocationInformation
+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 [**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.
+```asn1
+Eebl-MissingLocationInformation ::= NULL
+c-ObsEebl-MissingLocationInformation IdMbObs::= 1
+obs-EeblMissingLocationInformation C-ASR-SINGLE-OBS ::=
+ {Eebl-MissingLocationInformation BY c-ObsEebl-MissingLocationInformation}
+```
+
+### Eebl-IncWithOtherVehiclesSpeed
+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]](#references) and v2xPduEvidence[[1]](#references).
+ The observation applies to the first entry. The `subjectPduIndex`
+ in that [**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]](#references) to v2xPduEvidence[n] shall contain the CAM of a ITS stations of type vehicle included in the circular area.
+ For v2xPduEvidence[[1]](#references) 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.
+```asn1
+Eebl-IncWithOtherVehiclesSpeed ::= NULL
+c-ObsEeblIncWithOtherVehiclesSpeed IdMbObs::= 2
+obs-EeblIncWithOtherVehiclesSpeed C-ASR-SINGLE-OBS ::=
+ {Eebl-IncWithOtherVehiclesSpeed BY c-ObsEeblIncWithOtherVehiclesSpeed}
+```
+
+### Eebl-EventSpeedBelowMinThreshold
+This data type is provided for an observation of an Eebl event generated by a motorcycle
+ or passenger vehicle whose eventSpeed is below the minimum speed for triggering
+ an emergency brake.
+ - `v2xPduEvidence`: This field must contain at least one entry.
+ The observation applies to the first entry. The `subjectPduIndex`
+ in that [**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.
+```asn1
+Eebl-EventSpeedBelowMinThreshold ::= NULL
+c-ObsEeblEventSpeedBelowMinThreshold IdMbObs::= 3
+obs-EeblEventSpeedBelowMinThreshold C-ASR-SINGLE-OBS ::=
+ {Eebl-EventSpeedBelowMinThreshold BY c-ObsEeblEventSpeedBelowMinThreshold}
+```
+
diff --git a/docs/EtsiTs103759Core.md b/docs/EtsiTs103759Core.md
index f0ebbe69ccd5045edee39e52accea502c3ff769c..3321de3bb1464579deb23f1fc92172ce795c1b06 100644
--- a/docs/EtsiTs103759Core.md
+++ b/docs/EtsiTs103759Core.md
@@ -1,5 +1,5 @@
# ASN.1 module EtsiTs103759Core
-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-2(2) 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*
@@ -10,8 +10,52 @@ OID: _{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103759
* **[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) 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.
+This data type is the top level PDU for a misbehaviour report from an ITS
+ station to the Misbehaviour Authority (MA) responsible for reports of that
+ type.
+
+Fields:
+* _version_ of type [**Uint8**](Ieee1609Dot2BaseTypes.md#Uint8) (3)
+ contains the version number of this PDU definition.
+
+* _content_ of type [**EtsiTs103759MbrSec**](#EtsiTs103759MbrSec)
+ contains the security encapsulated misbehaviour report.
+
+
+```asn1
+EtsiTs103759Data ::= SEQUENCE {
+ version Uint8(3),
+ content EtsiTs103759MbrSec
+}
+```
+
+### EtsiTs103759MbrSec
+This data type is the security encapsulation for [**EtsiTs103759Mbr**](#EtsiTs103759Mbr).
+
+Fields:
+* _plaintext_ of type [**EtsiTs103759Mbr**](#EtsiTs103759Mbr)
+ contains the report in the plaintext form, i.e., without
+ any security encapsulation.
+
+* _signed_ of type [**EtsiTs103759Mbr-Signed**](#EtsiTs103759Mbr-Signed)
+ contains the report in the signed form.
+
+* _sTE_ of type [**EtsiTs103759Mbr-STE**](#EtsiTs103759Mbr-STE)
+ contains the report in the signed-then-encrypted form.
+
+
+```asn1
+EtsiTs103759MbrSec ::= CHOICE {
+ plaintext EtsiTs103759Mbr,
+ signed EtsiTs103759Mbr-Signed,
+ sTE EtsiTs103759Mbr-STE,
+ ...
+}
+```
+
+### EtsiTs103759Mbr
+This data type is the container for the generation time, observation
+ location and the AID-specific misbehaviour report.
AID-specific modules (EtsiTs103759AsrAppAgnostic, EtsiTs103759AsrCam,
EtsiTs103759AsrDenm, SaeJ3287AsrBsm) have been imported using `WITH SUCCESSORS`
@@ -19,10 +63,7 @@ This data type is the general PDU for a misbehaviour report from an
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_ 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`.
-
+Fields:
* _generationTime_ of type [**Time64**](Ieee1609Dot2BaseTypes.md#Time64)
contains information on when this PDU was generated.
@@ -35,27 +76,37 @@ This data type is the general PDU for a misbehaviour report from an
```asn1
-EtsiTs103759Data ::= SEQUENCE {
- version Uint8,
+EtsiTs103759Mbr ::= SEQUENCE {
generationTime Time64,
observationLocation ThreeDLocation,
report AidSpecificReport
}
```
-### EtsiTs103759Data-SignedAndEncrypted-Unicast
-This structure is the SPDU used to send a signed and encrypted
- [**EtsiTs103759Data**](#EtsiTs103759Data) to the MA.
+### EtsiTs103759Mbr-Signed
+This data type is used for the option signed of security encapsulation of
+ the report.
+
+ 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 of
+ misbehaviour reports.
+```asn1
+EtsiTs103759Mbr-Signed ::= EtsiTs103097Data-Signed {EtsiTs103759Mbr}
+```
+
+### EtsiTs103759Mbr-STE
+This data type is used for the option sTE (signed-then-encrypted) of security
+ encapsulation of the report.
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 of
- misbehaviour reports. The signed [**EtsiTs103759Data**](#EtsiTs103759Data) shall be encrypted
+ misbehaviour reports. The signed [**EtsiTs103759Mbr**](#EtsiTs103759Mbr) shall be encrypted
to the MA using the encryption key in the MA's certificate.
```asn1
-EtsiTs103759Data-SignedAndEncrypted-Unicast ::=
- EtsiTs103097Data-SignedAndEncrypted-Unicast {
- EtsiTs103759Data
+EtsiTs103759Mbr-STE ::= EtsiTs103097Data-SignedAndEncrypted-Unicast {
+ EtsiTs103759Mbr
}
```
@@ -64,6 +115,7 @@ 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_ of type [**C-ASR**](#C-ASR) .&aid ({SetAsr})
contains the respective ITS-AID.
@@ -81,6 +133,7 @@ AidSpecificReport ::= SEQUENCE {
### C-ASR
This data type defines the IOC for [**AidSpecificReport**](#AidSpecificReport).
+Fields:
* _aid_ of type [**Psid**](Ieee1609Dot2BaseTypes.md#Psid) UNIQUE
contains the globally unique reference identifier of an
AID-specific misbehaviour report.
@@ -112,23 +165,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 79ee07efaf3be9ae28a8014888c48947b0f82dad..aed6c6e7aeefe682999e6b1f23e47c0f1ea30f4f 100644
--- a/docs/Ieee1609Dot2.md
+++ b/docs/Ieee1609Dot2.md
@@ -11,6 +11,7 @@ OID: _{iso(1) identified-organization(3) ieee(111) standards-association-numbere
### 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_ 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
@@ -25,6 +26,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),
@@ -34,6 +36,7 @@ Ieee1609Dot2Data ::= SEQUENCE {
### In this structure:
+Fields:
* _unsecuredData_ of type [**Opaque**](Ieee1609Dot2BaseTypes.md#Opaque)
indicates that the content is an OCTET STRING to be
consumed outside the SDS.
@@ -54,14 +57,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,
@@ -75,6 +77,7 @@ Ieee1609Dot2Content ::= CHOICE {
### In this structure:
+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.
@@ -110,6 +113,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,
@@ -123,6 +127,7 @@ SignedData ::= SEQUENCE {
verifying a signature. See 6.3.4 for the specification of the input to the
hash.
+Fields:
* _payload_ of type [**SignedDataPayload**](#SignedDataPayload)
contains data that is provided by the entity that invokes
the SDS.
@@ -152,6 +157,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,
@@ -170,6 +176,7 @@ ToBeSignedData ::= SEQUENCE {
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.
@@ -184,14 +191,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,
@@ -206,14 +212,13 @@ SignedDataPayload ::= SEQUENCE {
### 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.
* _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 +230,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,
@@ -237,6 +243,7 @@ HashedData::= CHOICE {
### This structure contains information that is used to establish
validity by the criteria of 5.2.
+Fields:
* _psid_ of type [**Psid**](Ieee1609Dot2BaseTypes.md#Psid)
indicates the application area with which the sender is
claiming the payload is to be associated.
@@ -291,8 +298,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 +325,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,
@@ -341,6 +347,7 @@ HeaderInfo ::= SEQUENCE {
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.
+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,
@@ -411,6 +418,7 @@ ContributedExtensionBlocks ::= SEQUENCE (SIZE(1..MAX)) OF
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
})
@@ -436,7 +444,9 @@ ContributedExtensionBlock ::= SEQUENCE {
### 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,
@@ -483,6 +493,7 @@ etsiHeaderInfoContributorId HeaderInfoContributorId ::= 2
verification type to be used to generate the hash for verification, as
specified in 5.3.1.
+Fields:
* _digest_ of type [**HashedId8**](Ieee1609Dot2BaseTypes.md#HashedId8)
If the choice indicated is digest:
- The structure contains the HashedId8 of the relevant certificate. The
@@ -513,6 +524,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,
@@ -555,6 +567,7 @@ Countersignature ::= Ieee1609Dot2Data (WITH COMPONENTS {...,
more recipients using the recipients public or symmetric keys as
specified in 5.3.4.
+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,
@@ -576,6 +589,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,
@@ -592,6 +606,7 @@ EncryptedData ::= SEQUENCE {
See Annex C.7 for guidance on when it may be appropriate to use
each of these approaches.
+Fields:
* _pskRecipInfo_ of type [**PreSharedKeyRecipientInfo**](#PreSharedKeyRecipientInfo)
The data was encrypted directly using a pre-shared
symmetric key.
@@ -634,6 +649,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,
@@ -664,6 +680,7 @@ PreSharedKeyRecipientInfo ::= HashedId8
### This data structure contains the following fields:
+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
@@ -689,6 +706,7 @@ SymmRecipientInfo ::= SEQUENCE {
### This data structure contains the following fields:
+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,
@@ -731,6 +749,11 @@ 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.
+
+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,
@@ -743,6 +766,10 @@ EncryptedDataEncryptionKey ::= CHOICE {
### 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
information field as defined in 5.2.6. An implementation that does not
@@ -750,6 +777,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,
@@ -770,6 +798,7 @@ 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_ of type **OCTET STRING** (SIZE (12))
contains the nonce N as specified in 5.3.8.
@@ -786,6 +815,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 +838,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
```
@@ -820,6 +851,7 @@ SequenceOfCertificate ::= SEQUENCE OF Certificate
### The fields in this structure have the following meaning:
+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.
@@ -862,6 +894,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 +916,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 +971,12 @@ 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.
+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
information field as defined in 5.2.5. An implementation that does not
@@ -945,6 +985,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,
@@ -979,6 +1020,7 @@ For both implicit and explicit certificates, when the certificate
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.
@@ -1051,7 +1093,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 +1101,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 +1172,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,
@@ -1160,6 +1201,7 @@ ToBeSignedCertificate ::= SEQUENCE {
### This structure contains information that is used to identify the
certificate holder if necessary.
+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
@@ -1183,6 +1225,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 +1240,11 @@ 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.
-
+
+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,
@@ -1210,6 +1257,7 @@ LinkageData ::= SEQUENCE {
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.
@@ -1229,7 +1277,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 +1321,10 @@ SequenceOfPsidGroupPermissions ::= SEQUENCE OF PsidGroupPermissions
PsidGroupPermissions in the same certIssuePermissions or
certRequestPermissions field.
+Fields:
+* _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 +1339,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,
@@ -1297,6 +1351,7 @@ SubjectPermissions ::= CHOICE {
### The contents of this field depend on whether the certificate is an
implicit or an explicit certificate.
+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
@@ -1316,6 +1371,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,
@@ -1365,6 +1421,7 @@ SequenceOfAppExtensions ::= SEQUENCE (SIZE(1..MAX)) OF AppExtension
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.
@@ -1400,11 +1457,13 @@ SequenceOfCertIssueExtensions ::=
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.
-* _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.
@@ -1443,11 +1502,13 @@ SequenceOfCertRequestExtensions ::= SEQUENCE (SIZE(1..MAX)) OF CertRequestExtens
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.
-* _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 0a9ce105813c25328582e82987ad64b285eb363a..e068b9e5348b449b2f8daf58f1827edb6edec4a4 100644
--- a/docs/Ieee1609Dot2BaseTypes.md
+++ b/docs/Ieee1609Dot2BaseTypes.md
@@ -206,7 +206,10 @@ 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.
-
+
+Fields:
+* _start_ of type [**Time32**](Ieee1609Dot2BaseTypes.md#Time32)
+* _duration_ of type [**Duration**](#Duration)
```asn1
ValidityPeriod ::= SEQUENCE {
start Time32,
@@ -219,10 +222,20 @@ ValidityPeriod ::= SEQUENCE {
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
choice for up to 7 years and the sixtyHours choice for up to 448 years.
>>>
+
```asn1
Duration ::= CHOICE {
microseconds Uint16,
@@ -239,6 +252,7 @@ Duration ::= CHOICE {
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.
+Fields:
* _circularRegion_ of type [**CircularRegion**](#CircularRegion)
contains a single instance of the CircularRegion
structure.
@@ -280,6 +294,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 +312,10 @@ 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.
-
+
+Fields:
+* _center_ of type [**TwoDLocation**](#TwoDLocation)
+* _radius_ of type [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
```asn1
CircularRegion ::= SEQUENCE {
center TwoDLocation,
@@ -313,6 +331,7 @@ CircularRegion ::= SEQUENCE {
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.
@@ -356,6 +375,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 +384,10 @@ PolygonalRegion ::= SEQUENCE SIZE (3..MAX) OF TwoDLocation
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
used in SAE J2735, except that values 900 000 001 for latitude (used to
@@ -371,6 +395,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,
@@ -385,6 +410,7 @@ TwoDLocation ::= SEQUENCE {
Statement (PICS) provided in Annex A allows an implementation to state
which CountryOnly values it recognizes.
+Fields:
* _countryOnly_ of type [**UnCountryId**](#UnCountryId)
indicates that only a country (or a geographic entity
included in a country list) is given.
@@ -489,6 +515,7 @@ CountryOnly ::= UnCountryId
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.
@@ -539,6 +566,7 @@ CountryAndRegions ::= SEQUENCE {
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.
@@ -600,6 +628,7 @@ CountryAndSubregions ::= SEQUENCE {
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.
@@ -625,11 +654,17 @@ 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.
+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
location data structures used in SAE J2735 [B26], though the encoding is
incompatible.
>>>
+
```asn1
ThreeDLocation ::= SEQUENCE {
latitude Latitude,
@@ -672,7 +707,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 +737,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 +767,20 @@ UnknownLongitude ::= OneEightyDegreeInt (unknown)
### 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
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 +813,10 @@ If the signature process followed the specification of FIPS 186-4
- 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
an integer mod n, the order of the group; when the signature is of form
@@ -776,6 +831,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 +850,10 @@ 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.
+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
an integer mod n, the order of the group; when the signature is of form
@@ -811,6 +871,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 +882,10 @@ 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.
-
+
+Fields:
+* _rSig_ of type **OCTET STRING** (SIZE (32))
+* _sSig_ of type **OCTET STRING** (SIZE (32))
```asn1
EcsigP256Signature ::= SEQUENCE {
rSig OCTET STRING (SIZE (32)),
@@ -845,6 +909,14 @@ 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.
+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))
+* _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 +924,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 +953,14 @@ 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.
+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))
+* _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 +968,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 +1008,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,
@@ -941,6 +1024,7 @@ HashAlgorithm ::= ENUMERATED {
or length indication. Encryption and decryption are carried out as
specified in 5.3.5.1.
+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.
@@ -970,6 +1054,7 @@ EciesP256EncryptedKey ::= SEQUENCE {
length indication. Encryption and decryption are carried out as specified
in 5.3.5.2.
+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.
@@ -996,6 +1081,10 @@ EcencP256EncryptedKey ::= SEQUENCE {
### 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
for the relevant operations specified in 6.1.2 if it appears in a
@@ -1004,6 +1093,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 +1105,10 @@ EncryptionKey ::= CHOICE {
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
for the relevant operations specified in 6.1.2 if it appears in a
@@ -1023,6 +1117,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 +1129,11 @@ PublicEncryptionKey ::= SEQUENCE {
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
for the relevant operations specified in 6.1.2 if it appears in a
@@ -1041,6 +1141,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 +1155,14 @@ 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.
+
+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
@@ -1063,6 +1171,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 +1186,10 @@ 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.
-
+
+Fields:
+* _aes128Ccm_ of type **OCTET STRING** (SIZE(16))
+* _sm4Ccm_ of type **OCTET STRING** (SIZE(16))
```asn1
SymmetricEncryptionKey ::= CHOICE {
aes128Ccm OCTET STRING(SIZE(16)),
@@ -1092,6 +1204,10 @@ SymmetricEncryptionKey ::= CHOICE {
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
appPermissions entry A for which the ssp field is omitted, A is consistent
@@ -1103,6 +1219,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 +1253,10 @@ SequenceOfPsid ::= SEQUENCE OF Psid
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
appPermissions entry A for which the ssp field is opaque, A is consistent
@@ -1151,6 +1272,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 +1294,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))
```
@@ -1180,6 +1303,7 @@ BitmapSsp ::= OCTET STRING (SIZE(0..31))
permissions of the certificate holder with respect to one particular set
of application permissions.
+Fields:
* _psid_ of type [**Psid**](Ieee1609Dot2BaseTypes.md#Psid)
identifies the application area.
@@ -1215,11 +1339,17 @@ 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.
+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
SspRange in the enclosing PsidSspRange structure. Omitting the SspRange is
preferred to explicitly indicating "all".
>>>
+
```asn1
SspRange ::= CHOICE {
opaque SequenceOfOctetString,
@@ -1235,6 +1365,10 @@ SspRange ::= CHOICE {
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
PsidSspRange value P for which the sspRange field is bitmapSspRange,
@@ -1253,6 +1387,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 +1423,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 +1457,10 @@ LinkageValue ::= OCTET STRING (SIZE(9))
### 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)),
@@ -1353,7 +1492,9 @@ 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.
-
+
+Fields:
+* _id_ of type [**ExtId**](Ieee1609Dot2BaseTypes.md#ExtId)
```asn1
CERT-EXT-TYPE ::= CLASS {
&id ExtId,
@@ -1365,8 +1506,11 @@ 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.
+
+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}),
@@ -1376,7 +1520,9 @@ Extension {EXT-TYPE : ExtensionTypes} ::= SEQUENCE {
### 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,