Commit 4cf000f0 authored by Pau Espin Pedrol's avatar Pau Espin Pedrol
Browse files

LibNGAP_Templates: Introduce generic NGSetupFailure template f_mw_n2_NGSetupFailure()

Use one template containing all possible optional IEs instead of having
different templates containing optional subsets.
parent 0d480268
Loading
Loading
Loading
Loading
+31 −3
Original line number Diff line number Diff line
@@ -6206,18 +6206,46 @@ module LibNGAP_Templates {
                            value_        := {
                                              NGSetupFailure := {
                                                                 protocolIEs := {
                                                                                 *,
                                                                                 {
                                                                                    id := id_Cause,
                                                                                    criticality := ignore,
                                                                                    value_ := { Cause := p_cause }
                                                                                 },
                                                                                 *
                                                                                 }
                                                                                }
                                                                }
                                             }
                        } // End of template mw_n2_NGSetupFailure
                        function f_mw_n2_NGSetupFailure(template (present) Cause p_cause := ?,
                                                        template TimeToWait p_timeToWait := omit,
                                                        template CriticalityDiagnostics p_criticalityDiagnostics := omit)
                        return template (present) UnsuccessfulOutcome {
                            var template (present) UnsuccessfulOutcome pdu := mw_n2_NGSetupFailure(p_cause);
                            var integer idx := lengthof(pdu.value_.NGSetupFailure.protocolIEs);
                            /* Time to Wait */
                            if (not istemplatekind(p_timeToWait, "omit")) {
                                pdu.value_.NGSetupFailure.protocolIEs[idx] := {
                                        id := id_TimeToWait,
                                        criticality := ignore,
                                        value_ := { TimeToWait := p_timeToWait }
                                    };
                                idx := idx + 1;
                            }
                            /* Criticality Diagnostics */
                            if (not istemplatekind(p_criticalityDiagnostics, "omit")) {
                                pdu.value_.NGSetupFailure.protocolIEs[idx] := {
                                        id := id_CriticalityDiagnostics,
                                        criticality := ignore,
                                        value_ := { CriticalityDiagnostics := p_criticalityDiagnostics }
                                    };
                                idx := idx + 1;
                            }
                            return pdu;
                        } // End of f_mw_mw_n2_NGSetupFailure
                    } // End of group Receive
                } // End of group NG_SETUP_FAILURE