Commit e628135d authored by Denis Filatov's avatar Denis Filatov
Browse files

The MRS v2.1.1

parent dda92708
Loading
Loading
Loading
Loading

.gitlab-ci.yml

0 → 100755
+19 −0
Original line number Diff line number Diff line
include:
  - project: 'forge-tools/asn2md'
    file: '/gitlab-ci/base.yml'

variables:
  ASN1_SRC: '*.asn sec_ts103097/*.asn ieee1609.2/Ieee1609Dot2.asn ieee1609.2/Ieee1609Dot2BaseTypes.asn'
  GIT_SUBMODULE_STRATEGY: normal

validate:
  extends: .validate
  only:
    changes:
      - '*.asn'

documentation:
  extends: .documentation
  only:
    changes:
      - '*.asn'

.gitmodules

0 → 100755
+7 −0
Original line number Diff line number Diff line
[submodule "sec_ts103097"]
	path = sec_ts103097
	url = https://forge.etsi.org/rep/ITS/asn1/sec_ts103097.git
	branch = release2
[submodule "ieee1609.2"]
	path = ieee1609.2
	url = https://forge.etsi.org/rep/ITS/asn1/ieee1609.2.git

EtsiTs103759.asn

0 → 100755
+156 −0
Original line number Diff line number Diff line
EtsiTs103759 {itu-t(0) identified-organization(4) etsi(0) 
  itsDomain(5) wg5(5) ts(103759) general(1) core(1) major-version-1(1) 
  minor-version-2 (2)}

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) version-1 (1)  version-minor-0 (0)}
WITH SUCCESSORS
;

/**
 * @brief This data type is the general PDU for a misbehaviour report from an 
 * ITS-S to the MA responsible for reports of that type. AID-specific modules 
 * (EtsiTs103759AsrAppAgnostic, EtsiTs103759AsrCam, EtsiTs103759AsrDenm, 
 * 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 
}

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

/**
 * @brief This data type is the whole report on issues detected for a specific
 * ITS-AID. This ITS-AID may identify an individual application, or may identify
 * cross-application or non-application-specific misbehaviour cases.
 *
 * @param aid: contains the respective ITS-AID.
 *
 * @param content: contains the report contents, e.g., AsrCam. This will be a 
 * TemplateAsr instantiated with AID-specific Information Object Sets.
 */
AidSpecificReport ::= SEQUENCE {
  aid      C-ASR.&aid ({SetAsr}),
  content  C-ASR.&Content ({SetAsr}{@.aid})
}

/**
 * @brief This data type defines the IOC for AidSpecificReport. 
 *
 * @param aid: contains the globally unique reference identifier of an 
 * AID-specific misbehaviour report.
 *
 * @param Content: contains the open type of the PDU identified by aid. This 
 * will be a TemplateAsr instantiated with AID-specific Information Object
 * Sets. 
 */
C-ASR ::= CLASS {
  &aid      Psid UNIQUE, 
  &Content   
} WITH SYNTAX {&Content IDENTIFIED BY &aid}

/**
 * @brief This data type defines the IOS for AidSpecificReport. See the ASN.1
 * modules where each set is defined for a description of that set.
 */
SetAsr C-ASR ::= {
  {AsrAppAgnostic IDENTIFIED BY c-AsrAppAgnostic} |
  {AsrCam         IDENTIFIED BY c-AsrCam} |
  {AsrDenm        IDENTIFIED BY c-AsrDenm}, 
  ...,
  {AsrBsm         IDENTIFIED BY c-AsrBsm}
}

/**
 * @brief This data type contains the ITS-AID of the unknown service. 
 * 
 * @note This value is used for suspicious observations that are not
 * or cannot be linked to a specific application.
 */
c-AsrAppAgnostic Psid ::= 270549119

/**
 * @brief This data type contains the ITS-AID of the CA service. 
 */
c-AsrCam Psid ::= 36 

/**
 * @brief This data type contains the ITS-AID of the DEN service. 
 */
c-AsrDenm Psid ::= 37

/**
 * @brief This data type contains the ITS-AID of the BSM. 
 */
c-AsrBsm Psid ::= 32

END
 No newline at end of file
+14 −0
Original line number Diff line number Diff line
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)}

DEFINITIONS AUTOMATIC TAGS ::= BEGIN

EXPORTS ALL;

/**
 * @brief This data type is defined as NULL for this version of the standard.
 */
AsrAppAgnostic ::= NULL

END
 No newline at end of file

EtsiTs103759AsrCam.asn

0 → 100755
+221 −0
Original line number Diff line number Diff line
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 EtsiTs103759MbrCommonObservations {itu-t(0) identified-organization(4) 
  etsi(0) itsDomain(5) wg5(5) ts(103759) general(1) common-observations(2)
  major-version-1(1) minor-version-1(1)}
WITH SUCCESSORS

  Uint8
FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111) 
  standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2)
  base(1) base-types(2) major-version-2(2) minor-version-4(4)}
WITH SUCCESSORS
;

/**
 * @brief This data type is for reporting CAM issues.
 */
AsrCam ::= TemplateAsr {{SetMbObsTgtsCam}, {SetMbEvCam}}


/* Identify target classes for CAM */
IdCamTgt ::= Uint8

c-CamTgt-BeaconCommon    IdCamTgt ::= 0
c-CamTgt-StaticCommon    IdCamTgt ::= 1
c-CamTgt-SecurityCommon  IdCamTgt ::= 2
c-CamTgt-PositionCommon  IdCamTgt ::= 3
c-CamTgt-SpeedCommon     IdCamTgt ::= 4
c-CamTgt-LongAccCommon   IdCamTgt ::= 5

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

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

SetMbObsCamSecurity C-ASR-SINGLE-OBS ::= {
  obs-Security-MessageIdIncWithHeaderInfo |
  obs-Security-HeaderIncWithSecurityProfile |
  obs-Security-HeaderPsidIncWithCertificate |
  obs-Security-MessageIncWithSsp |
  obs-Security-HeaderTimeOutsideCertificateValidity |
  obs-Security-MessageLocationOutsideCertificateValidity |
  obs-Security-HeaderLocationOutsideCertificateValidity, 
  ...
}

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

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

SetMbObsCamLongAcc C-ASR-SINGLE-OBS ::= {
  obs-LongAcc-ValueTooLarge,
  ...
}



/**
 * @brief This is a complete set of observations for CAM. Application-specific
 * trigger conditions and other relevant information are specified below.
 *
 * @param 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.  
 *
 * @param SetMbObsCamStatic:
 *   - `Static-Change`: Any change in the values of one or more of the 
 * following fields: performanceClass, specialTransportType, stationType, 
 * vehicleLength, vehicleRole, vehicleWidth.
 *     - `Semantics of the BIT STRING`: performanceClass(0), 
 * specialTransportType(1), stationType(2), vehicleLength(3), vehicleRole(4), 
 * vehicleWidth(5).
 * 
 *
 * @param SetMbObsCamSecurity:
 *   - `Security-MessageIdIncWithHeaderInfo`: The messageID is inconsistent
 * with the security headerInfo, e.g., messageId = cam(2) but psid in the 
 * security headerInfo is not equal to 36, the PSID value of CAM.
 *
 *   - `Security-HeaderIncWithSecurityProfile`: The security headerInfo is 
 * inconsistent with the security profile specified in ETSI TS 103 097 V2.1.1
 * (2021-10), e.g., generationTime is absent in the security headerInfo but 
 * is required to be present in the security profile.
 *
 *   - `Security-HeaderPsidIncWithCertificate`: The psid in the security 
 * headerInfo is not contained in the appPermissions of the certificate, e.g., 
 * psid in the security headerInfo is equal to 36, but the appPermissions in the
 * certificate does not include the value 36.
 *
 *   - `Security-MessageIncWithSsp`: The message payload is inconsistent 
 * with the SSP in the certificate, as specified in 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.
 *
 * @param SetMbObsEtsiOnlyPosition:
 *   - `Position-ChangeTooLarge`: The speed calculated from the change in 
 * referencePosition of two consecutive CAMs meets the trigger conditions of 
 * Speed-ValueTooLarge-VehicleType.
 *
 * @param SetMbObsEtsiOnlySpeed:
 *   - `Speed-ValueTooLarge-VehicleType`: The trigger conditions depend on
 * the stationType as follows:
 *
 *     - `passengerCar(5)`: The speedValue is greater than 14,000. (Currently, the
 * fastest car in the world has a top speed that is less than 500 km/h, i.e., 
 * 13,889 cm/s.) 
 *
 *     - `motorcycle(4), bus(6), lightTruck(7), heavyTruck(8), trailer(9)`: The 
 * speedValue is greater than 8,500. (Currently, the top speed on most popular
 * cars is less than 300 km/h, i.e., 8,333 cm/s.)
 *
 *     - `unknown(0), pedestrian(1), cyclist(2), moped(3), specialVehicles(10), 
 * tram(11)` : The speedValue is greater than 3,000. (Currently, non-highway 
 * speed limits are usually well below 100 km/h, i.e., 2,778 cm/s.)
 *
 *     - `roadSideUnit(15)`: The speedValue is greater than 0. (Road side units 
 * shouldn't be transmitting while being transported.)
 *
 *   - `Speed-ValueTooLarge-DriveDirectionReverse`: The driveDirection is 
 * backward (1) and the speedValue is greater than 3,000. (Usually, backward 
 * drives are far less than 50m long, and with maximum possible acceleration of 
 * 9 m/s^2 (see trigger conditions for LongAcc-ValueTooLarge), max attainable 
 * speed is sqrt(2*9*50) m/s, i.e., 3,000 cm/s.)
 *
 *   - `Speed-ChangeTooLarge`: The acceleration calculated from the change 
 * in speedValue of two consecutive CAMs meets the trigger conditions of 
 * LongAcc-ValueTooLarge.
 *
 * @param SetMbObsEtsiOnlyLongAcc:
 *   - `LongAcc-ValueTooLarge`: The longitudinalAcceleration is greater 
 * than 90 dm/s^2. (Typical \mu (coefficient of friction between asphalt and 
 * rubber) is 0.9, so maximum possible acceleration is 0.9*9.8 m/s^2, i.e., 
 * 88.2 dm/s^2.)  
 */
SetMbObsTgtsCam C-ASR-OBS-BY-TGT ::= {
  {MbSingleObservation{{SetMbObsCamBeacon}}   BY 
    c-CamTgt-BeaconCommon} |
  {MbSingleObservation{{SetMbObsCamStatic}}   BY 
    c-CamTgt-StaticCommon} |
  {MbSingleObservation{{SetMbObsCamSecurity}} BY 
    c-CamTgt-SecurityCommon} |
  {MbSingleObservation{{SetMbObsCamPosition}} BY 
    c-CamTgt-PositionCommon} |
  {MbSingleObservation{{SetMbObsCamSpeed}}    BY 
    c-CamTgt-SpeedCommon} |
  {MbSingleObservation{{SetMbObsCamLongAcc}}  BY 
    c-CamTgt-LongAccCommon},
  ... 
}

/**
 * @brief This data type defines the IOS for CAM Evidence.
 */
SetMbEvCam C-ASR-EV ::= {
  ...
}

END
 No newline at end of file
Loading