Commit 31f58cbf authored by ASN.1 Documenter's avatar ASN.1 Documenter
Browse files

final version of ASN.1 code

parent 257a82af
Loading
Loading
Loading
Loading
Loading
+47 −32
Original line number Diff line number Diff line
@@ -2,15 +2,19 @@ EtsiTs103601Module {itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5
    minor-version-1(1)}
    DEFINITIONS AUTOMATIC TAGS ::= BEGIN
------------------------------------------
-- Specification of the segment message format to be used for the segmentation service
-- Specification of the segment message format to be used for the segmentation service.
-- Different segmentation methods are supported. One method consists in splitting the original file or message into several 
-- sequential segments (called sequential chunks). This specification can be extended to integrate transport coding methods
-- using various FEC schemes.
------------------------------------------

IMPORTS 
    HashedId8,
    Opaque,
    Psid,
    Time64,
    Uint8 FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111)
    Time32,
    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
@@ -23,31 +27,44 @@ IMPORTS
* @field version: contains the version number of this PDU definition. For this version of this data type it shall be equal to `1`.
* 
* @field segmentationTime: contains information on when the message or file was segmented into 1 or several pieces.
* So the segmentationTime of all the segments for this message or file shall be the same.
*
* - not included in the present version @field segmentationLocation: is the location at which the message or file was segmented
* @field distributedAid:  the ITS-AID of the file. The Psid/ Its-AID is a variable length INTEGER number.
* 
* @field fileId: the id of the file to be distributed. It shall be set to the output of the SHA-256 hash function calculated on the transmitted CTL or file content.
* 
* @field fileDescription: the file description or metadata of the segmented file. 
* For instance, metadata could contain parameters required when coding scheme using a FEC encoding is used (cf. IETF RFC 6726)
* In the current version of this standard, the fileDescription shall be of 0 byte length.
*
* @field segmentContent : contains the segmented data of the message or file. 
*/
SegmentPDU ::= SEQUENCE {
SegmentPDU {Psid} ::= SEQUENCE {
    version           Uint8,
    segmentationTime       Time64,
    segmentContent	SegmentedData {Psid}
    segmentationTime  Time32,
    distributedAid    Psid,
    fileId            HashedId8,
    fileDescription   OCTET STRING (SIZE(0..63)),
    segmentContent	  SegmentedData
}   

/**
* This component represents the payload of a segment/fragment of the file data. 
*/
SegmentedData ::= CHOICE {  
    seqChunks SequentialChunksSegmentedData,
    ...
}  

/**
* This component represents the payload of a segment/fragment of the file data when the sequential 
* segmentation method is used.  This method is applied in case the fileDescription is set to value 'FF'.
* It is composed of the following fields:
* @field distributedAid:  the ITS-AID of the file. The Psid/ Its-AID is a variable length INTEGER number.
* In the present version, the length of Its-AID will be less than or equal to 2 bytes. 
* 
* @field fileId: the id of the file to be distributed. It shall be set to the output of the SHA-256 hash function calculated on the transmitted CTL file content.
* 
* @field fileDescription: optionally, the file description or metadata of the segmented file.
* For instance, metadata could contain parameters required when coding scheme using a FEC encoding is used (cf. IETF RFC 6726)
*
* @field messageSegmentTotalNumber: the total number of segments/fragments constituting the complete file. 
*
* @field thisMessageSegmentNumber: the number that indicates the rank or position of this segment in the ordered sequence of segments constituting the complete CTL.
*
* The fields messageSegmentTotalNumber and thisMessageSegmentNumber may be present or absent depending on the use of a network/transport
* coding technique. If network/transport coding is used, these fields are unused and shall be absent.
* Note that coding technique is not specified in the current version of the standard.
@@ -56,26 +73,24 @@ SegmentPDU ::= SEQUENCE {
* MAX value is equal to the maximum size of the payload contained in the Segment PDU, i.e. the MTU-GN - control fields size. MTU value depends
* on the network access technology and on the network layer. For instance, if ITS-G5 access layer
* and GeoNetworking SHB protocol is used, MTU-GN - GN-Header - BTP-Header = 1428 bytes and MAX value is calculated as:
* 1428  - control fields size (30 bytes restricting the ITS-AID size to a maximum of 2 bytes). 
* 1428  - control fields size. 
*
* All segments of the original full CTL, except the last one, shall have the same size equal to MAX value.
* All the segments, but the last one, of the original file (e.g. the full CTL) shall have the same size equal to MAX value .
*/
SegmentedData {Psid}::= SEQUENCE {
    distributedAid          Psid,          
    fileId          HashedId8,     
    fileDescription   OCTET STRING (SIZE (5)) OPTIONAL,
    messageSegmentTotalNumber	INTEGER(1..255) OPTIONAL,
    thisMessageSegmentNumber	INTEGER(1..255) OPTIONAL,
    data         OCTET STRING (SIZE(1..MAX)),
...

SequentialChunksSegmentedData ::= SEQUENCE {
    messageSegmentTotalNumber	INTEGER(1..255),
    thisMessageSegmentNumber	INTEGER(1..255),
    data                        OCTET STRING (SIZE(1..MAX))
}

/**
* The Segmented CTL Responsemessage (SCRM) is a specific Segment PDU: it uses the parametrized data type SegmentedData where the psid parameter value is set to 
* the ITS-AID value of the CTL service as specified in ETSI TS 102 965 (i.e. value 624)
* The Segmented CTL Responsemessage (SCRM) is a specific Segment PDU: it uses the parametrized data type 
* SegmentedData where the psid parameter value is set to the ITS-AID value of the CTL service as specified in 
* ETSI TS 102 965 (i.e. value 624). For the SCRM message, the size of the control information (“header” fields) is 23 bytes.
*/
ctlPsid Psid ::= 624

ScrmData ::= SegmentedData {Psid (ctlPsid)}
ScrmPDU ::= SegmentPDU {Psid (ctlPsid)}

END
 No newline at end of file