Commit 72e0536d authored by ulrichst's avatar ulrichst
Browse files

Merge branch 'develop' of https://forge.etsi.org/gitlab/DIAMETER/DiameterShDh into develop

parents f56c4c6c 2dfe128f
Loading
Loading
Loading
Loading

LibDiameter @ e8770d4a

Original line number Diff line number Diff line
Subproject commit 8cb2461bb12b4159638f778267a7194a9bdd0ca8
Subproject commit e8770d4a2ee6247a92e3744f7b7034cb0ac0dec4
+34 −2
Original line number Diff line number Diff line
@@ -52,7 +52,7 @@ module DiameterShDh_TCFunctions {
                                                     vc_originRealm,                // containing an Origin-Realm AVP
                                                     vc_destinationRealm            // containing a Destination-Realm AVP
                                                                                    // not containing a User-Identity AVP
                                                                                    // Containing s Data-Reference AVP
                                                                                    // Containing a Data-Reference AVP
                                                    )
                                     )
                    );
@@ -1265,7 +1265,39 @@ module DiameterShDh_TCFunctions {
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                    log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");

                    //TODO TestBody
                    f_send_PNR(
                               md_pNR(
                                      vc_sessionId,
                                      md_pnrBodyAvps(
                                                     vc_originHost,                 // containing an Origin-Host AVP
                                                     vc_originRealm,                // containing an Origin-Realm AVP
                                                     vc_destinationHost,            // containing an Destination-Host AVP
                                                     vc_destinationRealm            // containing a Destination-Realm AVP
                                                                                    // not containing a User-Identity AVP
                                                                                    // Containing a User-Data AVP
                                                    )
                                     )
                    );

                    f_awaiting_PNA(
                                   mdw_pNA( 
                                           vc_sessionId,                            // containing a Session-ID AVP
                                           mw_PNA_ResulFaile(
                                                             mw_resultCode(
                                                                           DIAMETER_MISSING_AVP_E      // containing a Result-Code AVP
                                                                                                       //     indicating DIAMETER_MISSING_AVP
                                                                           ),
                                                             vc_originHost_IUT,       // containing an Origin-Host AVP
                                                             vc_originRealm_IUT,
                                                             {
                                                              mw_failed(              // containing a Failed AVP
                                                                        {
                                                                          mw_avpType( //     indicating missing Visited-Network-Identifier AVP 
                                                                                     mw_aVP_Header_any_Code(
                                                                                                            c_user_Identity_AVP_Code
                                                              ))})
                                                             }
                    )));

                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 

+322 −142
Original line number Diff line number Diff line
@@ -100,14 +100,16 @@ module DiameterShDh_Templates {
                }
            }
            
        }
        } // End of group SpecificAVPHeaders
        
    }
    } // End of group HeaderFieldTemplates
    
    group Sh_modified_message_templates { 
        
        group Sh_request_message_templates_send {
            
            group udr_msg {
                
                /**
                 * @desc Send template for UDR
                 * @param p_sessionId   Session identifier
@@ -134,7 +136,7 @@ module DiameterShDh_Templates {
                    header := m_diameterHeaderReqDuplicated_dummy(UDR_E, c_applIdRf),
                    session_Id  := p_sessionId,
                    uDR_Body    := p_udrBody
            } // End of template md_uDR
                } // End of template md_uDR_TflagSet
                
                /**
                 * @desc Send template for UDR message body
@@ -154,10 +156,64 @@ module DiameterShDh_Templates {
                    data_Reference                  := {p_data_Reference}
                } // End of template md_udrBodyAvps
                
            } // End of group udr_msg
            
            group pnr_msg {
                
                /**
                 * @desc Send template for PNR
                 * @param p_sessionId   Session identifier
                 * @param p_pnrBody     PNR message body
                 */
                template (value) PNR_MSG md_pNR(
                                                in template (value) Session_Id_AVP  p_sessionId,
                                                in template (value) PNR_Body_AVP    p_pnrBody
                ) modifies m_PNR_dummy := {
                    header := m_diameterHeaderReq_dummy(PNR_E, c_applId3GPPShDh),
                    session_Id  := p_sessionId,
                    pNR_Body    := p_pnrBody
                } // End of template md_pNR
                
                /**
                 * @desc Send template for PNR
                 * @param p_sessionId   Session identifier
                 * @param p_pnrBody     PNR message body
                 */
                template (value) PNR_MSG md_pNR_TflagSet(
                                                         in template (value) Session_Id_AVP  p_sessionId,
                                                         in template (value) PNR_Body_AVP    p_pnrBody
                ) modifies m_PNR_dummy := {
                    header := m_diameterHeaderReqDuplicated_dummy(PNR_E, c_applIdRf),
                    session_Id  := p_sessionId,
                    pNR_Body    := p_pnrBody
                } // End of template md_pNR
                 
                /**
                 * @desc Send template for PNR message body
                 */
                template (value) PNR_Body_AVP md_pnrBodyAvps(
                                                             template (value) Origin_Host_AVP p_origin_Host,
                                                             template (value) Origin_Realm_AVP p_origin_Realm,
                                                             template (value) Destination_Host_AVP p_destination_Host,
                                                             template (value) Destination_Realm_AVP p_destination_Realm,
                                                             template (value) User_Identity_AVP p_user_Identity := m_user_Identity_dummy
                ) modifies m_PNR_Body_dummy := {
                    vendor_Specific_Application_Id  := m_vendor_Specific_Appl_Id_Sh,
                    origin_Host                     := p_origin_Host,
                    origin_Realm                    := p_origin_Realm,
                    destination_Host                := p_destination_Host,
                    destination_Realm               := p_destination_Realm,
                    user_Identity                   := p_user_Identity
                } // End of template md_pnrBodyAvps
                
            } // End of group pnr_msg
            
        } // End of group Sh_request_message_templates_send 
        
        group Sh_request_message_templates_receive {
            
            group udr_msg {
                
                /**
                 * @desc Main receive message for HSS_Sh port
                 * @param p_uDR_MSG UD-Request message
@@ -202,10 +258,62 @@ module DiameterShDh_Templates {
                        destination_Realm           := p_destinationRealm
                } // End of template mdw_udrBodyAvps
                
            } // End of group udr_msg
            
            group pnr_msg {
                
                /**
                 * @desc Main receive message for HSS_Sh port
                 * @param p_pNR_MSG UD-Request message
                 */
                template (present) PNR_MSG mdw_pNR(
                                                   template (present) Session_Id_AVP  p_sessionId,
                                                   template (present) PNR_Body_AVP    p_pnrBody
                ) modifies mw_PNR_dummy := {
                    header      := mw_diameterHeaderReq_dummy(PNR_E, c_applId3GPPShDh),
                    session_Id  := p_sessionId,
                    pNR_Body    := p_pnrBody
                } // End of template mdw_pNR
                
                /**
                 * @desc Main receive message for HSS_Sh port
                 * @param p_pNR_MSG UD-Request message
                 */
                template (present) PNR_MSG mdw_pNR_Header_PNRBody(
                                                                  template (present) DiameterHeader p_header,
                                                                  template (present) Session_Id_AVP  p_sessionId,
                                                                  template (present) PNR_Body_AVP    p_pnrBody
                ) modifies mw_PNR_dummy := {
                    header := p_header,
                    session_Id  := p_sessionId,
                    pNR_Body    := p_pnrBody
                } // End of template mdw_pNR_Header_PNRBody
                
                /**
                 * @desc Receive template for PNR message body
                 * @param p_resultCode                  Indicates whether a particular request was completed successfully or an error occurred
                 * @param p_originHost                  Identifies the endpoint that originated the Diameter message
                 * @param p_originRealm                 Realm of the originator
                 * @param p_destinationRealm            Destination realm
                 */
                template PNR_Body_AVP mdw_pnrBodyAvps(
                                                      template (present) Origin_Host_AVP              p_originHost := ?,
                                                      template (present) Origin_Realm_AVP             p_originRealm := ?,
                                                      template (present) Destination_Realm_AVP        p_destinationRealm := ?
                ) modifies mw_PNR_Body_dummy := {
                        origin_Host                 := p_originHost,
                        origin_Realm                := p_originRealm,
                        destination_Realm           := p_destinationRealm
                } // End of template mdw_pnrBodyAvps
                
            } // End of group pnr_msg
            
        } // End of group Sh_request_message_templates_receive
        
        group Sh_answer_message_templates_send {
            
            group uda_msg {
                
                /**
                 * @desc Send template for UDA
                 * @param p_sessionId   Session identifier
@@ -230,10 +338,42 @@ module DiameterShDh_Templates {
                    origin_Realm                := p_originRealm
                } // End of template md_udaBodyAvps 
                
            } // End of group uda_msg 
            
            group pna_msg {
                
                /**
                 * @desc Send template for PNA
                 * @param p_sessionId   Session identifier
                 * @param p_pnaBody     PNA message body
                 */
                template (value) PNA_MSG md_pNA(
                                                in template (value) Session_Id_AVP  p_sessionId,
                                                in template (value) PNA_Body_AVP    p_pnaBody
                ) modifies m_PNA_dummy := {
                    header      := m_diameterHeaderAns_dummy(PNA_E, c_applIdRf),
                    session_Id  := p_sessionId,
                    pNA_Body    := p_pnaBody
                } // End of template md_pNA
                
                template (omit) PNA_Body_AVP md_pnaBodyAvps(
                                                            in template (value) Result_Code_AVP              p_resultCode,
                                                            in template (value) Origin_Host_AVP              p_originHost,
                                                            in template (value) Origin_Realm_AVP             p_originRealm
                ) modifies m_PNA_Body_dummy := {
                    result_Code                 := p_resultCode,
                    origin_Host                 := p_originHost,
                    origin_Realm                := p_originRealm
                } // End of template md_pnaBodyAvps 
                
            } // End of group pna_msg 
            
        } // End of group Sh_answer_message_templates_send
        
        group Sh_answer_message_templates_receive {
            
            group uda_msg {
                
                template UDA_Body_AVP mw_UDA_ResulFaile(
                                                        template Result_Code_AVP p_resultCode, 
                                                        template (present) Origin_Host_AVP p_originHost,
@@ -268,6 +408,46 @@ module DiameterShDh_Templates {
                    origin_Realm                := p_originRealm
                } // End of template mdw_udaBodyAvps
                
            } // End of group uda_msg
            
            group pna_msg {
                
                template PNA_Body_AVP mw_PNA_ResulFaile(
                                                        template Result_Code_AVP p_resultCode, 
                                                        template (present) Origin_Host_AVP p_originHost,
                                                        template (present) Origin_Realm_AVP p_originRealm,
                                                        template PNA_Body_AVP.failed p_failed
                ) modifies mdw_pnaBodyAvps := {
                    result_Code := p_resultCode,                     // optional  in TS 129 229
                    failed := p_failed                               // optional  in TS 129 229
                } // End of template mw_PNA_ResulFaile
                
                /**
                 * @desc Send template for PNA
                 * @param p_sessionId   Session identifier
                 * @param p_pnaBody     PNA message body
                 */
                template (present) PNA_MSG mdw_pNA(
                                                   template (present) Session_Id_AVP  p_sessionId,
                                                   template (present) PNA_Body_AVP    p_pnaBody
                ) modifies mw_PNA_dummy := {
                    header      := mw_diameterHeaderAns_dummy(PNA_E, c_applIdRf),
                    session_Id  := p_sessionId,
                    pNA_Body    := p_pnaBody
                } // End of template md_pNA
                
                template (present) PNA_Body_AVP mdw_pnaBodyAvps(
                                                                template (present) Result_Code_AVP              p_resultCode,
                                                                template (present) Origin_Host_AVP              p_originHost,
                                                                template (present) Origin_Realm_AVP             p_originRealm
                ) modifies mw_PNA_Body_dummy := {
                    result_Code                 := p_resultCode,
                    origin_Host                 := p_originHost,
                    origin_Realm                := p_originRealm
                } // End of template mdw_pnaBodyAvps
                
            } // End of group pna_msg
            
        } // End of group Sh_answer_message_templates_receive 
        
    } // End of group Sh_modified_message_templates 
+4 −3
Original line number Diff line number Diff line
@@ -2574,18 +2574,19 @@ module DiameterShDh_TestCases {
                 * Expected behaviour:
                 *     ensure that {
                 *        when {
                 *            the IUT receives a UD-Request
                 *            the IUT receives a PN-Request
                 *                containing a Session-ID AVP
                 *                containing a Vendor-Specific-Application-Id AVP
                 *                containing an Auth-Session-State AVP
                 *                containing an Origin-Host AVP
                 *                containing an Origin-Realm AVP
                 *                containing a Destination-Host AVP
                 *                containing a Destination-Realm AVP
                 *                not containing a User-Identity AVP
                 *                containing a Data-Reference AVP
                 *                containing a User-Data AVP
                 *        }
                 *        then {
                 *            the IUT sends a UD-Answer 
                 *            the IUT sends a PN-Answer 
                 *                containing a Session-ID AVP
                 *                containing a Result-Code AVP
                 *                    indicating DIAMETER_MISSING_AVP