• Bi-Ruei, Chiu's avatar
    Fix problem results from empty ios cells generated · 6b76c7c7
    Bi-Ruei, Chiu authored
    For RANAP specification :
    
      RANAP-ELEMENTARY-PROCEDURE ::= CLASS {
        &InitiatingMessage,
        &SuccessfulOutcome          OPTIONAL,
        &UnsuccessfulOutcome        OPTIONAL,
        &Outcome                    OPTIONAL,
        &procedureCode              ProcedureCode  UNIQUE,
        &criticality                Criticality    DEFAULT ignore
      } WITH SYNTAX {
        INITIATING MESSAGE          &InitiatingMessage
        [SUCCESSFUL OUTCOME         &SuccessfulOutcome]
        [UNSUCCESSFUL OUTCOME       &UnsuccessfulOutcome]
        [OUTCOME                    &Outcome]
        PROCEDURE CODE              &procedureCode
        [CRITICALITY                &criticality]
      }
    
    Not all instances of elementary procedure have all their
    optional members defined.
    
    For examples :
    
      iu-Release RANAP-ELEMENTARY-PROCEDURE ::= {
        INITIATING MESSAGE  Iu-ReleaseCommand
        SUCCESSFUL OUTCOME  Iu-ReleaseComplete
        PROCEDURE CODE      id-Iu-Release
        CRITICALITY         reject
      }
    
      rAB-Assignment RANAP-ELEMENTARY-PROCEDURE ::= {
        INITIATING MESSAGE	RAB-AssignmentRequest
        OUTCOME             RAB-AssignmentResponse
        PROCEDURE CODE      id-RAB-Assignment
        CRITICALITY         reject
      }
    
    So there are empty cells generated in Outcome.c ... etc.
    
      static const asn_ioc_cell_t asn_IOS_RANAP_ELEMENTARY_PROCEDURES_1_rows[] = {
        { "&InitiatingMessage", aioc__type, &asn_DEF_Iu_ReleaseCommand },
        { "&SuccessfulOutcome", aioc__type, &asn_DEF_Iu_ReleaseComplete },
        { "&UnsuccessfulOutcome",  },
        { "&Outcome",  },
        { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_Iu_Release },
        { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject },
    
        { "&InitiatingMessage", aioc__type, &asn_DEF_RAB_AssignmentRequest },
        { "&SuccessfulOutcome",  },
        { "&UnsuccessfulOutcome",  },
        { "&Outcome", aioc__type, &asn_DEF_RAB_AssignmentResponse },
        { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_49_id_RAB_Assignment },
        { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_49_reject }
      }
    
    However, in type_selector() functions, these undefined cell are still
    be counted into presence_index value. This results in wrong behavior for
    decoder.
    
    This commit is to fix this problem.
    6b76c7c7
asn_ioc.h 1.04 KB