Attention is currently required from: daniel, neels.
laforge has posted comments on this change by neels. ( https://gerrit.osmocom.org/c/osmo-iuh/+/37393?usp=email )
Change subject: support RAB Assignment Response 'unsuccessfulOutcome' ......................................................................
Patch Set 3: Code-Review-1
(2 comments)
Commit Message:
https://gerrit.osmocom.org/c/osmo-iuh/+/37393/comment/1f44bf0f_167c07b2?usp=... : PS2, Line 20: Procedure", but doesn't
The way how its specified in the ASN.1 syntax: […]
Context where that syntax for the PDUs of each procedure is defined, using ASN.1 information object classes: ``` WITH SYNTAX { INITIATING MESSAGE &InitiatingMessage [SUCCESSFUL OUTCOME &SuccessfulOutcome] [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] [OUTCOME &Outcome] PROCEDURE CODE &procedureCode [CRITICALITY &criticality] } ```
so if there's no SUCCESSFUL OUTCOME and no UNSUCCESSFUL OUTCOME present in the definition of a given PROCEDURE, then it may never occur on the wire.
Commit Message:
https://gerrit.osmocom.org/c/osmo-iuh/+/37393/comment/82d97a2b_f39707d2?usp=... : PS3, Line 18: A RAB Assignment response is indicated as : 'successfulOutcome' or 'unsuccessfulOutcome' or 'outcome'. : 3GPP TS 25.413 specifies RAB Assignment as a "Class 3 Elementary : Procedure", but doesn't seem to specify which of these three 'outcome' : types to use for Class 3. In the field we've seen 'successfulOutcome' : and 'outcome'. I beg to differ. it is very clearly specified:
``` rAB-Assignment RANAP-ELEMENTARY-PROCEDURE ::= { INITIATING MESSAGE RAB-AssignmentRequest OUTCOME RAB-AssignmentResponse PROCEDURE CODE id-RAB-Assignment CRITICALITY reject } ``` no `SUCCESSFUL OTUCOME` and no `UNSUCCESSFUL OUTCOME` are possible here.
If you want to do anything, then we should print an error and reject those. The fact that our code may even exercise such a path is only because we're using improper asn1 tooling that doesn't fully understand ASN.1 object information classes. A proper ASN.1 decoder would never even call the user code when receiving messages with a clear syntax error.