diff --git a/EtsiTs103759AsrDenm.asn b/EtsiTs103759AsrDenm.asn
index cce2064aa74d16e69703522bab76470a6f92e5cc..1308bedcc64e8a511fddd4a1e8e5642a0e3851e4 100755
--- a/EtsiTs103759AsrDenm.asn
+++ b/EtsiTs103759AsrDenm.asn
@@ -1,14 +1,158 @@
EtsiTs103759AsrDenm {itu-t(0) identified-organization(4) etsi(0)
itsDomain(5) wg5(5) ts(103759) aid-specific(2) denm(37)
- major-version-1(1) minor-version-0(0)}
+ major-version-1(1) minor-version-1(1)}
DEFINITIONS AUTOMATIC TAGS ::= BEGIN
EXPORTS ALL;
-/**
- * This data type is defined as NULL for version 0 of this file.
+IMPORTS
+C-ASR-EV,
+C-ASR-OBS-BY-TGT,
+C-ASR-SINGLE-OBS,
+MbSingleObservation,
+TemplateAsr
+FROM EtsiTs103759BaseTypes {itu-t(0) identified-organization(4) etsi(0)
+itsDomain(5) wg5(5) ts(103759) general(1) base-types(3) major-version-1(1)
+minor-version-1 (1)} WITH SUCCESSORS
+
+ obs-Beacon-IntervalTooSmall,
+ obs-Static-Change,
+ obs-Security-MessageIdIncWithHeaderInfo,
+ obs-Security-HeaderIncWithSecurityProfile,
+ obs-Security-HeaderPsidIncWithCertificate,
+ obs-Security-MessageIncWithSsp,
+ obs-Security-HeaderTimeOutsideCertificateValidity,
+ obs-Security-MessageLocationOutsideCertificateValidity,
+ obs-Security-HeaderLocationOutsideCertificateValidity,
+ obs-RoadTypeIncWithTrafficJamAhead,
+ obs-PathChangeInMultipleRepetitions,
+ obs-EeblMissingLocationInformation,
+ obs-EeblIncWithOtherVehiclesSpeed
+ FROM EtsiTs103759CommonObservations {itu-t(0) identified-organization(4)
+ etsi(0) itsDomain(5) wg5(5) ts(103759) general(1) common-observations(2)
+ major-version-1(1) minor-version-2(2)}
+ WITH SUCCESSORS
+
+ Uint8
+FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111)
+ standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2)
+ base(1) base-types(2) major-version-2(2) minor-version-4(4)}
+WITH SUCCESSORS
+;
+
+ /* This data type is for reporting DENM issues. */
+AsrDenm ::= TemplateAsr {{SetMbObsTgtsDenm}, {SetMbEvDenm}}
+
+ /* Identify target classes for DENM */
+IdDenmTgt ::= Uint8
+
+c-DenmTgt-BeaconCommon IdDenmTgt ::= 0
+c-DenmTgt-StaticCommon IdDenmTgt ::= 1
+c-DenmTgt-SecurityCommon IdDenmTgt ::= 2
+c-DenmTgt-TrafficJam-TrafficJamAhead IdDenmTgt ::= 3
+c-DenmTgt-DangerousSituation-Eebl IdDenmTgt ::= 4
+
+SetMbObsDenmBeacon C-ASR-SINGLE-OBS ::= {
+ obs-Beacon-IntervalTooSmall,
+ ...
+}
+
+SetMbObsDenmStatic C-ASR-SINGLE-OBS ::= {
+ obs-Static-Change,
+ ...
+}
+
+SetMbObsDenmSecurity C-ASR-SINGLE-OBS ::= {
+ obs-Security-MessageIdIncWithHeaderInfo |
+ obs-Security-HeaderIncWithSecurityProfile |
+ obs-Security-HeaderPsidIncWithCertificate |
+ obs-Security-MessageIncWithSsp |
+ obs-Security-HeaderTimeOutsideCertificateValidity |
+ obs-Security-MessageLocationOutsideCertificateValidity |
+ obs-Security-HeaderLocationOutsideCertificateValidity,
+ ...
+}
+
+SetMbObsDenmTrafficJam-TrafficJamAhead C-ASR-SINGLE-OBS ::= {
+ obs-RoadTypeIncWithTrafficJamAhead |
+ obs-PathChangeInMultipleRepetitions,
+ ...
+}
+
+SetMbObsDenmDangerousSituation-Eebl C-ASR-SINGLE-OBS ::= {
+ obs-EeblMissingLocationInformation |
+ obs-EeblIncWithOtherVehiclesSpeed,
+ ...
+}
+
+/*
+* This is a (sub)set of observations for DENM Use Cases specified in TS 103 759 Annex D.2 (see table D.3). Application-specific
+* trigger conditions and other relevant information are specified below.
+*
+* - _SetMbObsDenmBeacon_:
+* - `Beacon-IntervalTooSmall`: The difference between the generation
+ * time of two consecutive DENMs is less than 80% of the value specified in TS
+ * 103 900831 v2.1.1 section 6.1.3. The difference is calculated as the difference
+ * between the two values of generationDeltaTime. The two DENMs presented
+ * shall have the difference in the generationTime from the security
+ * headerInfo be less than 65,535 milliseconds, and the generationTime in the
+ * second CAM greater than the generationTime in the first. If the
+ * generationDeltaTime value in the second DENM is less than the
+ * generationDeltaTime in the first, 65,536 milliseconds shall be added to
+ * the value in the second for purposes of determining the difference between
+ * the two generationDeltaTime values.
+*
+* - _SetMbObsDenmStatic_:
+* - `Static-Change`: Any change in the values of one or more of the following fields which happens
+* during the repetition of the same traffic event (same actionId and referenceTime)
+* transmitted by the same ITS station (stationId): stationType and eventPosition in the Management Container, eventType and informationQuality in the Situation Container.
+* - `Semantics of the BIT STRING`: stationType(0), eventPosition(1), eventType(2), informationQuality(3).
+*
+* - _SetMbObsDenmSecurity_
+* The same specification applies as for the set of observations of SetMbObsCamSecurity defined in
+* the EtsiTs103759AsrCam module.
+*
+* - _SetMbObs_DenmTrafficJam-TrafficJamAhead_:
+* - `obs-RoadTypeIncWithTrafficJamAhead`: The roadType of the Location Container is not equal to 'non-urban' road type (i.e. is not set to value
+* nonUrban-NoStructuralSeparationToOppositeLanes (2),
+* nonUrban-WithStructuralSeparationToOppositeLanes (3)).
+*
+* - `obs-PathChangeInMultipleEventRepetitions`: The pathPositions contained in the path field of multiple repeated TrafficJamAhead events
+* with the same reporting ITS-S, same actionId and same referenceTime are not identical.
+*
+* - _SetMbObs_DenmDangerousSituation-Eebl_:
+* - `obs-EeblMissingLocationInformation`: one of the following location information of the detected event is missing: eventSpeed, eventPositionHeading, traces.
+*
+* - `obs-EeblIncWithOtherVehiclesSpeed`: the speed values of all CAMs sent by ITS-S stations of stationType =passengerCar(5) in the circular area with center point
+* equal to eventPosition and radius equal to 200 m (urban road) or equal to 100m (non-urban or unkwown)
+* are all higher than the eventSpeed in the DENM.
+*/
+SetMbObsTgtsDenm C-ASR-OBS-BY-TGT ::= {
+ {MbSingleObservation{{SetMbObsDenmBeacon}} BY
+ c-DenmTgt-BeaconCommon} |
+ {MbSingleObservation{{SetMbObsDenmStatic}} BY
+ c-DenmTgt-StaticCommon} |
+ {MbSingleObservation{{SetMbObsDenmSecurity}} BY
+ c-DenmTgt-SecurityCommon} |
+ {MbSingleObservation{{SetMbObsDenmTrafficJam-TrafficJamAhead}} BY
+ c-DenmTgt-TrafficJam-TrafficJamAhead} |
+ {MbSingleObservation{{SetMbObsDenmDangerousSituation-Eebl}} BY
+ c-DenmTgt-DangerousSituation-Eebl}
+ ,
+ ...
+}
+
+/*
+ * This data type defines the IOS for DENM Evidence.
*/
-AsrDenm ::= NULL
+SetMbEvDenm C-ASR-EV ::= {
+ ...
+}
+
+
+/* This data type is defined as NULL for version 0 of this file.
+* AsrDenm ::= NULL
+*/
END
\ No newline at end of file
diff --git a/EtsiTs103759CommonObservations.asn b/EtsiTs103759CommonObservations.asn
index 6728b67e3ba80fd0a05fea5c4671facc540549aa..140553cc6f5512ab6eaf32101329b00a50deab1e 100644
--- a/EtsiTs103759CommonObservations.asn
+++ b/EtsiTs103759CommonObservations.asn
@@ -1,7 +1,7 @@
--! @options: no-auto-fields
EtsiTs103759CommonObservations {itu-t(0) identified-organization(4)
etsi(0) itsDomain(5) wg5(5) ts(103759) general(1) common-observations(2)
- major-version-1(1) minor-version-1(1)}
+ major-version-1(1) minor-version-2(2)}
DEFINITIONS AUTOMATIC TAGS ::= BEGIN
@@ -411,4 +411,99 @@ obs-LongAcc-ValueTooLarge C-ASR-SINGLE-OBS ::= {
LongAcc-ValueTooLarge BY c-ObsLongAcc-ValueTooLarge
}
-END
\ No newline at end of file
+
+-- ********************************************************************************
+-- Traffic Jam - Traffic Jam Ahead
+/*
+ * This data type is provided for an observation of a road type inconsistent with
+ * the detected TrafficJam-TrafficJamAhead event
+ *
+ * - `v2xPduEvidence`: This field must contain at least one entry.
+ * The observation applies to the first entry. The `subjectPduIndex`
+ * in that @ref V2xPduStream (EtsiTs103759BaseTypes.md#V2xPduStream) points to
+ * the PDU whose road type information is inconsistent with the
+ * detected event (Traffic Jam Ahead).
+ * The `v2xPdus` field in that entry must contain at least the subject PDU.
+ * The PDU shall be of type `ObsPduEtsiGn`.
+ *
+ * - `nonV2xPduEvidence`: No other evidence is required to be included
+ * to support this observation.
+ */
+TrafficJam-RoadTypeIncWithTrafficJamAhead ::= NULL
+-- IDs
+c-ObsRoadTypeIncWithTrafficJamAhead IdMbObs::= 1 -- Class 1
+-- Individual Information Objects
+obs-RoadTypeIncWithTrafficJamAhead C-ASR-SINGLE-OBS ::=
+ {TrafficJam-RoadTypeIncWithTrafficJamAhead BY c-ObsRoadTypeIncWithTrafficJamAhead}
+
+ /* * This data type is provided for an observation of eventPoints in the path field which are not identical
+* in at least two successive TrafficJam-TrafficJamAhead DENM messages.
+ *
+ * - `v2xPduEvidence`: This field must contain at least one entry.
+ * The observation applies to the first entry. The `subjectPduIndex`
+ * in that @ref V2xPduStream (EtsiTs103759BaseTypes.md#V2xPduStream) points to
+ * the PDU whose Path field is not containing the same eventPoints as the Path
+ * field in the previous PDU.
+ * The `v2xPdus` field in that entry must contain at least the subject PDU.
+ * The PDU shall be of type `ObsPduEtsiGn`.
+ *
+ * - `nonV2xPduEvidence`: No other evidence is required to be included
+ * to support this observation.*/
+
+ TrafficJam-PathChangeInMultipleRepetitions ::= NULL
+ -- IDs
+ c-ObsPathChangeInMultipleRepetitions IdMbObs::= 2 -- Class 2
+ -- Individual Information Objects
+ obs-PathChangeInMultipleRepetitions C-ASR-SINGLE-OBS ::=
+ {TrafficJam-PathChangeInMultipleRepetitions BY c-ObsPathChangeInMultipleRepetitions}
+
+ -- ********************************************************************************
+-- Dangerous Situation - EEBL issues
+/* This data type is provided for an observation of an Eebl event which does not provide
+mandatory location information (eventSpeed, eventPositionHeading, traces).
+* - `v2xPduEvidence`: This field must contain at least one entry.
+ * The observation applies to the first entry. The `subjectPduIndex`
+ * in that @ref V2xPduStream (EtsiTs103759BaseTypes.md#V2xPduStream) points to
+ * the PDU whose location information is missing.
+ * The `v2xPdus` field in that entry must contain at least the subject PDU.
+ * The PDU shall be of type `ObsPduEtsiGn`.
+ *
+ * - `nonV2xPduEvidence`: No other evidence is required to be included
+ * to support this observation.
+ */
+
+Eebl-MissingLocationInformation ::= NULL
+-- IDs
+c-ObsEebl-MissingLocationInformation IdMbObs::= 1 -- Class 1
+-- Individual Information Objects
+obs-EeblMissingLocationInformation C-ASR-SINGLE-OBS ::=
+ {Eebl-MissingLocationInformation BY c-ObsEebl-MissingLocationInformation}
+
+/* This data type is provided for an observation of an Eebl event which is inconsistency with the speed values
+* of surrounding vehicles within a circular area with center point
+* equal to eventPosition and radius equal to 200 m (non urban road) or 100 m at the moment of the event detection.
+
+* - `v2xPduEvidence`: This field must contain at least , two entries, v2xPduEvidence[0] and v2xPduEvidence[1].
+* The observation applies to the first entry. The `subjectPduIndex`
+* in that @ref V2xPduStream (EtsiTs103759BaseTypes.md#V2xPduStream) points to
+* the DENM PDU signalling the EEBL event.
+* The `v2xPdus` field in that entry must contain at least the subject PDU.
+* The PDU shall be of type `ObsPduEtsiGn`.
+* All the entries v2xPduEvidence[1] to v2xPduEvidence[n] shall contain the CAM of a ITS stations of type vehicle included in the circular area.
+* For v2xPduEvidence[1] to v2xPduEvidence[n], the `v2xPdus` field in that entry must contain at least the subject PDU
+* and the subjectPduIndex is 0.
+* The PDU may be of any supported type and shall be of type
+* `c-MbObsMsg-ieee1609Dot2Data` unless another observation included in the
+* same report requires a different PDU type.
+*
+* - `nonV2xPduEvidence`: No other evidence is required to be included
+* to support this observation. */
+
+ Eebl-IncWithOtherVehiclesSpeed ::= NULL
+-- IDs
+c-ObsEeblIncWithOtherVehiclesSpeed IdMbObs::= 2 -- Class 5
+-- Individual Information Objects
+obs-EeblIncWithOtherVehiclesSpeed C-ASR-SINGLE-OBS ::=
+ {Eebl-IncWithOtherVehiclesSpeed BY c-ObsEeblIncWithOtherVehiclesSpeed}
+
+ END
\ No newline at end of file
diff --git a/docs/EtsiTs103759AsrDenm.md b/docs/EtsiTs103759AsrDenm.md
index 92a8aeb2700674905a84234813f6e4146b52d3f1..addc0221015c566c3aa080c7744745aad16f8dbd 100644
--- a/docs/EtsiTs103759AsrDenm.md
+++ b/docs/EtsiTs103759AsrDenm.md
@@ -1,11 +1,114 @@
# ASN.1 module EtsiTs103759AsrDenm
-OID: _{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103759) aid-specific(2) denm(37) major-version-1(1) minor-version-0(0)}_
+OID: _{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103759) aid-specific(2) denm(37) major-version-1(1) minor-version-1(1)}_
+## Imports:
+* **[EtsiTs103759BaseTypes](EtsiTs103759BaseTypes.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103759) general(1) base-types(3) major-version-1(1) minor-version-1 (1)} WITH SUCCESSORS*
+* **[EtsiTs103759CommonObservations](EtsiTs103759CommonObservations.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103759) general(1) common-observations(2) major-version-1(1) minor-version-2(2)} WITH SUCCESSORS*
+* **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) base(1) base-types(2) major-version-2(2) minor-version-4(4)} WITH SUCCESSORS*
## Data Elements:
### AsrDenm
-This data type is defined as NULL for version 0 of this file.
```asn1
-AsrDenm ::= NULL
+AsrDenm ::= TemplateAsr {{SetMbObsTgtsDenm}, {SetMbEvDenm}}
+```
+
+### IdDenmTgt
+```asn1
+IdDenmTgt ::= Uint8
+```
+
+```asn1
+c-DenmTgt-BeaconCommon IdDenmTgt ::= 0
+c-DenmTgt-StaticCommon IdDenmTgt ::= 1
+c-DenmTgt-SecurityCommon IdDenmTgt ::= 2
+c-DenmTgt-TrafficJam-TrafficJamAhead IdDenmTgt ::= 3
+c-DenmTgt-DangerousSituation-Eebl IdDenmTgt ::= 4
+```
+
+### SetMbObsDenmBeacon
+```asn1
+SetMbObsDenmBeacon C-ASR-SINGLE-OBS ::= {
+ obs-Beacon-IntervalTooSmall,
+ ...
+}
+```
+
+### SetMbObsDenmStatic
+```asn1
+SetMbObsDenmStatic C-ASR-SINGLE-OBS ::= {
+ obs-Static-Change,
+ ...
+}
+```
+
+### SetMbObsDenmSecurity
+
+Values:
+* **obs-Security-MessageIdIncWithHeaderInfo** |
+* **obs-Security-HeaderIncWithSecurityProfile** |
+* **obs-Security-HeaderPsidIncWithCertificate** |
+* **obs-Security-MessageIncWithSsp** |
+* **obs-Security-HeaderTimeOutsideCertificateValidity** |
+* **obs-Security-MessageLocationOutsideCertificateValidity** |
+```asn1
+SetMbObsDenmSecurity C-ASR-SINGLE-OBS ::= {
+ obs-Security-MessageIdIncWithHeaderInfo |
+ obs-Security-HeaderIncWithSecurityProfile |
+ obs-Security-HeaderPsidIncWithCertificate |
+ obs-Security-MessageIncWithSsp |
+ obs-Security-HeaderTimeOutsideCertificateValidity |
+ obs-Security-MessageLocationOutsideCertificateValidity |
+ obs-Security-HeaderLocationOutsideCertificateValidity,
+ ...
+}
+```
+
+### SetMbObsDenmTrafficJam-TrafficJamAhead
+
+Values:
+* **obs-RoadTypeIncWithTrafficJamAhead** |
+```asn1
+SetMbObsDenmTrafficJam-TrafficJamAhead C-ASR-SINGLE-OBS ::= {
+ obs-RoadTypeIncWithTrafficJamAhead |
+ obs-PathChangeInMultipleRepetitions,
+ ...
+}
+```
+
+### SetMbObsDenmDangerousSituation-Eebl
+
+Values:
+* **obs-EeblMissingLocationInformation** |
+```asn1
+SetMbObsDenmDangerousSituation-Eebl C-ASR-SINGLE-OBS ::= {
+ obs-EeblMissingLocationInformation |
+ obs-EeblIncWithOtherVehiclesSpeed,
+ ...
+}
+```
+
+### SetMbObsTgtsDenm
+```asn1
+SetMbObsTgtsDenm C-ASR-OBS-BY-TGT ::= {
+ {MbSingleObservation{{SetMbObsDenmBeacon}} BY
+ c-DenmTgt-BeaconCommon} |
+ {MbSingleObservation{{SetMbObsDenmStatic}} BY
+ c-DenmTgt-StaticCommon} |
+ {MbSingleObservation{{SetMbObsDenmSecurity}} BY
+ c-DenmTgt-SecurityCommon} |
+ {MbSingleObservation{{SetMbObsDenmTrafficJam-TrafficJamAhead}} BY
+ c-DenmTgt-TrafficJam-TrafficJamAhead} |
+ {MbSingleObservation{{SetMbObsDenmDangerousSituation-Eebl}} BY
+ c-DenmTgt-DangerousSituation-Eebl}
+ ,
+ ...
+}
+```
+
+### SetMbEvDenm
+```asn1
+SetMbEvDenm C-ASR-EV ::= {
+ ...
+}
```
diff --git a/docs/EtsiTs103759CommonObservations.md b/docs/EtsiTs103759CommonObservations.md
index 8a6e1b7bf5213c207573897a5af83c14c4b54300..fed41c98adc85aede75d0454b2c121c80a0f05e8 100644
--- a/docs/EtsiTs103759CommonObservations.md
+++ b/docs/EtsiTs103759CommonObservations.md
@@ -1,5 +1,5 @@
# ASN.1 module EtsiTs103759CommonObservations
-OID: _{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103759) general(1) common-observations(2) major-version-1(1) minor-version-1(1)}_
+OID: _{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103759) general(1) common-observations(2) major-version-1(1) minor-version-2(2)}_
## Imports:
* **[EtsiTs103759BaseTypes](EtsiTs103759BaseTypes.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103759) general(1) base-types(3) major-version-1(1) minor-version-1 (1)} WITH SUCCESSORS*
@@ -362,5 +362,37 @@ obs-LongAcc-ValueTooLarge C-ASR-SINGLE-OBS ::= {
}
```
+### TrafficJam-RoadTypeIncWithTrafficJamAhead
+```asn1
+TrafficJam-RoadTypeIncWithTrafficJamAhead ::= NULL
+c-ObsRoadTypeIncWithTrafficJamAhead IdMbObs::= 1
+obs-RoadTypeIncWithTrafficJamAhead C-ASR-SINGLE-OBS ::=
+ {TrafficJam-RoadTypeIncWithTrafficJamAhead BY c-ObsRoadTypeIncWithTrafficJamAhead}
+```
+
+### TrafficJam-PathChangeInMultipleRepetitions
+```asn1
+TrafficJam-PathChangeInMultipleRepetitions ::= NULL
+ c-ObsPathChangeInMultipleRepetitions IdMbObs::= 2
+ obs-PathChangeInMultipleRepetitions C-ASR-SINGLE-OBS ::=
+ {TrafficJam-PathChangeInMultipleRepetitions BY c-ObsPathChangeInMultipleRepetitions}
+```
+
+### Eebl-MissingLocationInformation
+```asn1
+Eebl-MissingLocationInformation ::= NULL
+c-ObsEebl-MissingLocationInformation IdMbObs::= 1
+obs-EeblMissingLocationInformation C-ASR-SINGLE-OBS ::=
+ {Eebl-MissingLocationInformation BY c-ObsEebl-MissingLocationInformation}
+```
+
+### Eebl-IncWithOtherVehiclesSpeed
+```asn1
+Eebl-IncWithOtherVehiclesSpeed ::= NULL
+c-ObsEeblIncWithOtherVehiclesSpeed IdMbObs::= 2
+obs-EeblIncWithOtherVehiclesSpeed C-ASR-SINGLE-OBS ::=
+ {Eebl-IncWithOtherVehiclesSpeed BY c-ObsEeblIncWithOtherVehiclesSpeed}
+```
+