ETSI's Bug Tracker |
Anonymous | Login | Signup for local Mantis account | 17-05-2024 02:02 IST |
Main | My View | View Issues | Change Log | Roadmap | Monitor project |
View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||||||
0007296 | CDD ASN.1 (TS 102 894-2) | Bug Report | public | 08-01-2016 16:12 | 24-01-2018 09:30 | ||||||||
Reporter | linla | ||||||||||||
Assigned To | Lan LIN | ||||||||||||
Priority | normal | Severity | minor | Reproducibility | have not tried | ||||||||
Status | confirmed | Resolution | reopened | ||||||||||
Platform | OS | OS Version | |||||||||||
Product Version | TS 102 894-2 V1.2.1 | ||||||||||||
Target Version | TS 102 894-2 V1.2.1 | Fixed in Version | |||||||||||
Summary | 0007296: [DE_DrinvingLaneStatus]: make it unnamed list | ||||||||||||
Description | Motivation: Quote from CDD TS 102 894-2, page 28: ASN.1 representation DrivingLaneStatus ::= BIT STRING { outermostLaneClosed(1), secondLaneFromOutsideClosed(2) } (SIZE (1..14)) Definition DE that indicates whether a driving lane is open to traffic. A lane is counted from outside boarder of the road. The numbering is matched to LanePosition DE as defined in clause A.40. If a lane is closed to traffic, the corresponding bit shall be set to 1. Otherwise, it shall be set to 0. The DrivingLaneStatus is a BIT STRING with ‘NamedBitList’ and shall be encoded following rule 16.3 of X.691. As a consequence, the original length (2 bits) and trailing zeros are not encoded (see example 1). Problem: A receiving ITS-S cannot reconstruct the trailing zeros and unambiguously distinguish between an open lane (value 0) and non-existing lane. Proposed Change: Move the bit names of DE DrivingLaneStatus (outermostLaneClosed, secondLaneFromOutsideClosed) from the ASN.1 definition to the description: DrivingLaneStatus ::= BIT STRING (SIZE (1..14)) As a result, rule 16.3 of X691 does not apply and the DrivingLaneStatus will be UPER encoded following rule 16.11 of X.691 (trailing zeros + original length are encoded). Consequence This solution removes ambiguity at a receiving ITS-S by explicit encoding of all bits at the cost of changed encoding and larger messages. Example 1 : Encoding of Name Bit String Bit-Schema DEFINITIONS AUTOMATIC TAGS ::= BEGIN Example ::= SEQUENCE { drivingLaneStatus BIT STRING { outermostBit(1), secondBitFromOutside(2) } (SIZE (1..14)) } END value Example ::= { drivingLaneStatus '10'B } ‘value’ is UPER encoded as ‘08H’: - 4 bit length = 0 (decoded as 1) - 1 bit content = ‘1B’ - 3 bit padding Example 2 : Encoding of an unname bit string Bit-Schema DEFINITIONS AUTOMATIC TAGS ::= BEGIN Example ::= SEQUENCE { drivingLaneStatus BIT STRING (SIZE (1..14)) } END value Example ::= { drivingLaneStatus '10'B } ‘value’ is UPER encoded as 18H : - 4 bit length = 1 (decoded as 2) - 2 bit content = ‘10B’ - 2 bit padding | ||||||||||||
Tags | No tags attached. | ||||||||||||
Attached Files | Named vs Plain bitstring output examples.zip [^] (745,842 bytes) 20-01-2016 04:37 Example_Laurens.jpg [^] (66,995 bytes) 02-02-2016 08:15 | ||||||||||||
Relationships | ||||||
|
Notes | |
(0013682) linla (manager) 12-01-2016 13:13 |
make it unnamed list will break the backward compatibility. alternatively, the unmodified version will only indicate the closing lanes, instead of indicating the complete road lane layout. please verirify other data elements with the same type. |
(0013736) Andras Kovacs (reporter) 20-01-2016 04:41 |
I tested the difference, and the encoding with Objective Systems' asn.1 encoder has been exactly the same with named bitstring vs. plain bitstring. See the screenshots in the attached file. Apparently, it is following rule 16.11 of X.691 even for named bitstrings. Is this a bug in the asn.1 tool, or is the above interpretation of these rule differences incorrect? Can you show a counterexample, where the encoding is really different? |
(0013797) Sebastian Muellers (administrator) 02-02-2016 08:14 |
Dear Sebastian, The value ‘0101’B is not a good example because the last bit is a ‘1’. Therefore, also a named list will encode the full value. The value ‘10’B makes more sense. If I use the online tool from OSS Nokalva (http://asn1-playground.oss.com/ [^]), I get the following result: You can see that the UPER encoding is 0x08 (00001000B: 4 bit length, 1 bit value, 3 bit padding). It is different though from the screenshot of Andras. I can check with Marben ASN.1 but it takes me some more time. Best regards, Laurens |
(0013798) Sebastian Muellers (administrator) 02-02-2016 08:15 |
Dear Laurens, Thank you for the good example! The ‘10’B encoding output is indeed different with the OSS and OBJ-SYS tools when using named bit string. Let me check with OBJ-SYS to confirm whether they agree that this is indeed a bug in their implementation (or if they think that the OSS interpretation of the standard is wrong). I will come back on this issue, as I receive the answer from them. Then we can decide if/how to correct the LaneStatus data element. Best regards, Andras |
(0013799) Sebastian Muellers (administrator) 02-02-2016 08:16 |
Dear all, I received the confirmation from OBJ-SYS that their implementation has a bug, and the OSS implementation is correct. This OBJ-SYS bug will be fixed in the next revision. So it is indeed the case that the presence/absence of named bits can make a difference with PER encoding. I think this is counterintuitive, but that's how it is. Therefore I agree to the proposed resolution of the issue 7296, i.e. to remove named bits from the LaneStatus data element. Best regards, Andras |
(0013912) Sebastian Muellers (administrator) 04-04-2016 16:06 |
please approve at ITSWG1#35 the change from DrivingLaneStatus ::= BIT STRING { outermostLaneClosed(1), secondLaneFromOutsideClosed(2) } (SIZE (1..14)) to DrivingLaneStatus ::= BIT STRING (SIZE (1..14)) |
(0013914) Sebastian Muellers (administrator) 04-04-2016 16:22 |
This problem only effects variable size bit string types, and DrivingLaneStatus is the only one |
(0013933) linla (manager) 12-04-2016 13:46 |
approved in ITS WG1#35 meeting. |
(0013949) Yann Garcia (developer) 22-04-2016 08:31 |
Implemented as: DrivingLaneStatus ::= BIT STRING (SIZE (1..15)) |
(0014201) Yann Garcia (developer) 07-09-2016 06:27 |
Re-typing DrivingLaneStatus - Mantis 0007296 U /branches/STF517/asn1/ITS-Container/ITS-Container.asn [^] |
(0014202) Yann Garcia (developer) 07-09-2016 11:34 |
Re-typing DrivingLaneStatus - Mantis 0007296 U /trunk/cam/ITS-Container.asn [^] U /trunk/denm/ITS-Container.asn [^] U /trunk/itsis/ITS-Container.asn [^] |
(0014203) Yann Garcia (developer) 07-09-2016 13:02 |
Re-typing DrivingLaneStatus - Mantis 0007296 U /releases/wireshark-2.0.x/Linux/64bits/cam.so [^] U /releases/wireshark-2.0.x/Linux/64bits/denm.so [^] U /releases/wireshark-2.0.x/Linux/64bits/itsis.so [^] U /releases/wireshark-2.0.x/Windows/32bits/cam.dll [^] U /releases/wireshark-2.0.x/Windows/32bits/denm.dll [^] U /releases/wireshark-2.0.x/Windows/32bits/itsis.dll [^] U /releases/wireshark-2.0.x/Windows/64bits/cam.dll [^] U /releases/wireshark-2.0.x/Windows/64bits/denm.dll [^] U /releases/wireshark-2.0.x/Windows/64bits/itsis.dll [^] |
(0014481) linla (manager) 10-01-2017 15:19 edited on: 10-01-2017 16:13 |
implemented in CDD V1.2.3 on Jan 2017 |
(0014504) linla (manager) 18-01-2017 11:00 |
open again, to change the counting way and the hardshould status case |
(0014506) linla (manager) 18-01-2017 11:09 edited on: 20-01-2017 14:11 |
modifications implemented in V1.2.4 in WG1#38. counting from innerborder, and does not include hardshoulder status. |
(0014547) linla (manager) 05-04-2017 14:31 edited on: 05-04-2017 14:33 |
email from Jasja Kapsch: Hi Sebastian, thank you for your answer. Some issues I see: 1. So you decided to “spoil” up to two bits in order to align the numbering. I am not against that, the only question is if it is the best solution. See next points. 2. What is missing in DrivingLaneStatus is that it “shall indicate the status of all drivable lanes on the carriageway”, and not just up to some lanes (e.g. up to last closed one, as with the current published CDD version). This is currently not excluded. So to really address the issue that trailing (i.e. open lanes) were previously not transmitted, we need to enforce the length of the DrivingLaneStatus BIT STRING to be equal to the number of drivable lanes on that particular road segment, not less and not more. In fact the receiving device derives the number of lanes present from the size of the BIT STRING, so the size need to be correct at all times. 3. Now if you decide to go for using bits 0 and 14 as padding, bit 0 shall always be included (that’s clear), but it is not clear when bit 14 is to be included. It can only be included if we have 13 drivable lanes. Otherwise we can’t include it. So what is the value of Bit 14 in LanePosition? Seems confusing to me. I do not want to imply that one need always to use the full length in order to use bit 14 (see previous point). Let’s get rid of Bit 14, and why not get rid of Bit 0 as well. After all the fact that Bit 0 is called “0” is human convention, and this is not send over the air. As the name says, the data element indicates the DrivingLaneStatus. 4. Where did the comment to count lanes from inside to outside come from? I have strong indications that Asfinag disagrees with this since lane counting in Datex II is from outside to inside. ASN.1 representation DrivingLaneStatus ::= BIT STRING (SIZE (1..13)) Definition DE that indicates whether a driving lane is present and open to traffic. A lane is counted from inside border of the road excluding the hardshoulder. The bit 0 is used to indicate the innermostLane, bit 1 is used to indicate the second lane from the inside border. The size of the bit string shall correspond to the number of drivable lanes of the carriageway. Note: Hard shoulder status is not provided by this DE but in HardShoulderStatus as defined in A.29. If a lane is present and closed to traffic, the corresponding bit shall be set to 1. If a lane is present and open to traffic, the corresponding bit shall be set to 0. The DE is used in ClosedLanes DF as defined in clause A.106. |
(0014549) buburuzan (developer) 06-04-2017 15:26 |
Approved in WG1#39 with the following agreement: 1. For more than 13 lanes the DE shall not be transmitted. This will apply to the DF_LaneStatus. 2. The HardShoulder will not be included in the DrivingLaneStatus. |
(0015034) buburuzan (developer) 24-01-2018 09:28 |
Reopened @ITS1#42 and agreed to implement the ASN.1 representation of DrivingLaneStatus ::= BIT STRING (SIZE (1..13)) as suggested and agreed by Jasja. |
(0015035) buburuzan (developer) 24-01-2018 09:28 |
Decided to implement it in WG1#42. |
(0015036) buburuzan (developer) 24-01-2018 09:30 |
WG1#42: we also agree with the extended definition: The size of the bit string shall correspond to the number of drivable lanes of the carriageway. |
Issue History | |||
Date Modified | Username | Field | Change |
08-01-2016 16:12 | linla | New Issue | |
08-01-2016 16:12 | linla | Status | new => assigned |
08-01-2016 16:12 | linla | Assigned To | => Sebastian Muellers |
09-01-2016 16:39 | linla | Description Updated | View Revisions |
12-01-2016 13:13 | linla | Note Added: 0013682 | |
20-01-2016 04:37 | Andras Kovacs | File Added: Named vs Plain bitstring output examples.zip | |
20-01-2016 04:41 | Andras Kovacs | Note Added: 0013736 | |
02-02-2016 08:14 | Sebastian Muellers | Note Added: 0013797 | |
02-02-2016 08:15 | Sebastian Muellers | File Added: Example_Laurens.jpg | |
02-02-2016 08:15 | Sebastian Muellers | Note Added: 0013798 | |
02-02-2016 08:16 | Sebastian Muellers | Note Added: 0013799 | |
04-04-2016 16:05 | Sebastian Muellers | Assigned To | Sebastian Muellers => Lan LIN |
04-04-2016 16:06 | Sebastian Muellers | Note Added: 0013912 | |
04-04-2016 16:22 | Sebastian Muellers | Note Added: 0013914 | |
12-04-2016 13:46 | linla | Note Added: 0013933 | |
12-04-2016 13:46 | linla | Status | assigned => confirmed |
18-04-2016 14:19 | Sebastian Muellers | Assigned To | Lan LIN => Yann Garcia |
18-04-2016 14:19 | Sebastian Muellers | Status | confirmed => assigned |
22-04-2016 08:31 | Yann Garcia | Note Added: 0013949 | |
22-04-2016 08:31 | Yann Garcia | Status | assigned => resolved |
22-04-2016 08:31 | Yann Garcia | Resolution | open => fixed |
04-05-2016 09:03 | Sebastian Muellers | Relationship added | has duplicate 0007354 |
07-09-2016 06:27 | Yann Garcia | Checkin | |
07-09-2016 06:27 | Yann Garcia | Note Added: 0014201 | |
07-09-2016 11:34 | Yann Garcia | Checkin | |
07-09-2016 11:34 | Yann Garcia | Note Added: 0014202 | |
07-09-2016 13:02 | Yann Garcia | Checkin | |
07-09-2016 13:02 | Yann Garcia | Note Added: 0014203 | |
10-01-2017 15:19 | linla | Note Added: 0014481 | |
10-01-2017 16:13 | linla | Note Edited: 0014481 | View Revisions |
18-01-2017 11:00 | linla | Note Added: 0014504 | |
18-01-2017 11:09 | linla | Note Added: 0014506 | |
20-01-2017 14:11 | linla | Note Edited: 0014506 | View Revisions |
05-04-2017 14:31 | linla | Note Added: 0014547 | |
05-04-2017 14:31 | linla | Assigned To | Yann Garcia => Alexandre Berge |
05-04-2017 14:31 | linla | Status | resolved => assigned |
05-04-2017 14:32 | linla | Note Edited: 0014547 | View Revisions |
05-04-2017 14:33 | linla | Note Edited: 0014547 | View Revisions |
06-04-2017 15:26 | buburuzan | Note Added: 0014549 | |
06-04-2017 15:26 | buburuzan | Status | assigned => resolved |
24-01-2018 09:28 | buburuzan | Assigned To | Alexandre Berge => Lan LIN |
24-01-2018 09:28 | buburuzan | Note Added: 0015034 | |
24-01-2018 09:28 | buburuzan | Status | resolved => feedback |
24-01-2018 09:28 | buburuzan | Resolution | fixed => reopened |
24-01-2018 09:28 | buburuzan | Note Added: 0015035 | |
24-01-2018 09:28 | buburuzan | Status | feedback => confirmed |
24-01-2018 09:30 | buburuzan | Note Added: 0015036 |
MantisBT 1.2.14 [^] Copyright © 2000 - 2024 MantisBT Team |