Commit ba7620f8 authored by rennoch's avatar rennoch
Browse files

- add of TP_AF_SN_02 and related templates

- new aux. data type "Media_Sub_Component_setof"
parent 107d8c96
Loading
Loading
Loading
Loading
+140 −27
Original line number Diff line number Diff line
@@ -151,8 +151,47 @@ module LibDiameter_Templates {
	
	group SubFields{
	    
        template integer m_resultCode_diameterSuccess := 2001;
        template integer mw_resultCode_diameterSuccess := (2000..2999);
        
            
        template Media_Component_Number_AVP m_mediaComponentNr(UInt32 p_avpData) := {
            aVP_Header :=
                m_aVP_HeaderVid(c_vendIdMedia_Component_Number_AVP,
                                4, omit),
            aVP_Data := p_avpData
        }
        
            
        template Media_Component_Number_AVP mw_mediaComponentNr(template UInt32 p_avpData) := {
            aVP_Header := ?,
            aVP_Data := p_avpData
        }
                 
//        template Media_Sub_Component_AVP mw_mediaSubComponent := {
//            aVP_Header := ?,
//            flow_Number := ?,
//            flow_Description := *,
//            flow_Status := *,
//            flow_Usage := {aVP_Header := ?, aVP_Data := AF_SIGNALLING_E},
//            max_Requested_Bw_Ul := *,
//            max_Requested_Bw_Dl := *,
//            af_Signalling_Protocol := *,
//            aVP_Type := *
//        }
        
        template Media_Sub_Component_AVP mw_mediaSubComponent_basic(template Flow_Number_AVP p_flowNumber, template Flow_Description_recordof p_flowDescription, template Flow_Status_AVP p_flowStatus, template Flow_Usage_AVP p_flowUsage,
        			template Max_Requested_Bandwidth_UL_AVP p_RequestedBandwidthUL, template Max_Requested_Bandwidth_DL_AVP p_requestedBandwidthDL, template AF_Signalling_Protocol_AVP p_afSignallingProtocol, template AVP_Type_setof p_avpType) := {
            aVP_Header := ?,
            flow_Number := p_flowNumber,
            flow_Description := p_flowDescription,
            flow_Status := p_flowStatus,
            flow_Usage := p_flowUsage,
            max_Requested_Bw_Ul := p_RequestedBandwidthUL,
            max_Requested_Bw_Dl := p_requestedBandwidthDL,
            af_Signalling_Protocol := p_afSignallingProtocol,
            aVP_Type := p_avpType
        }


    template Flow_Status_AVP mw_flowStatus := {
@@ -167,6 +206,30 @@ module LibDiameter_Templates {
		aVP_Data := ?
	}
	
    template Flow_Usage_AVP mw_flowUsage(template Flow_Usage_Type p_avpData) := {
        aVP_Header := {
            aVP_Code := ?,
            aVP_flags := {
                v_bit := ?, m_bit := ?, p_bit := ?, reserved_bits := ?
            },
            aVP_len := ?,
            aVP_vid := ?
        },
        aVP_Data := p_avpData
    }
    
    template Flow_Number_AVP mw_flowNumber(template UInt32 p_avpData) := {
        aVP_Header := {
            aVP_Code := ?,
            aVP_flags := {
                v_bit := ?, m_bit := ?, p_bit := ?, reserved_bits := ?
            },
            aVP_len := ?,
            aVP_vid := ?
        },
        aVP_Data := p_avpData
    }		

    template Flow_Status_AVP m_flowStatus(Flow_Status_Type p_avpData) := {
        aVP_Header := {
        aVP_Code := c_vendIdFlow_Status_AVP,
@@ -434,9 +497,6 @@ module LibDiameter_Templates {
			aVP_Data := p_avpData
		}
        
        template integer m_resultCode_diameterSuccess := 2001;
        template integer mw_resultCode_diameterSuccess := (2000..2999);
        
        
                
			template Framed_IP_Address_AVP mw_framedIpAddress(template
@@ -543,6 +603,42 @@ module LibDiameter_Templates {
                codec_data := *
            }
            
            template Media_Component_Description_AVP mw_mediaComponentDescription_basic 
            (
            template Media_Component_Number_AVP 	p_media_Component_Nr,
            template Media_Sub_Component_setof		p_media_Sub_component,
            template AF_Application_Identifier_AVP	p_af_Application_Id,
            template Media_Type_AVP					p_media_type,
            template Max_Requested_Bandwidth_UL_AVP	p_max_Requested_Bw_Ul,
            template Max_Requested_Bandwidth_DL_AVP	p_max_Requested_Bw_Dl,
            template Flow_Status_AVP				p_flow_Status,
            template Reservation_Priority_AVP		p_reservation_Priority,
            template RS_Bandwidth_AVP				p_rs_Bw,
            template RR_Bandwidth_AVP				p_rr_Bw,
            template Codec_Data_setof				p_codecData
            ):= 
            {
                aVP_Header := {
                    aVP_Code := ?,
                    aVP_flags := {
                        v_bit := ?, m_bit := ?, p_bit := ?, reserved_bits := ?
                    },
                    aVP_len := ?,
                    aVP_vid := ?
                },
                media_Component_Nr := p_media_Component_Nr,
                media_Sub_component := p_media_Sub_component,
                af_Application_Id := p_af_Application_Id,
                media_type := p_media_type,
                max_Requested_Bw_Ul := p_max_Requested_Bw_Ul,
                max_Requested_Bw_Dl := p_max_Requested_Bw_Dl,
                flow_Status := p_flow_Status,
                reservation_Priority := p_reservation_Priority,
                rs_Bw := p_rs_Bw,
                rr_Bw := p_rr_Bw,
                codec_data := p_codecData
            }
	
            template
            Media_Component_Description_AVP 
            mw_mediaComponentDescription_flowStatus (template Flow_Status_AVP p_flowStatus)
@@ -550,12 +646,20 @@ module LibDiameter_Templates {
                flow_Status := p_flowStatus
            }
            
            template
            Media_Component_Description_AVP 
            mw_mediaComponentDescription_mediaSubComponent (template Media_Sub_Component_AVP p_mediaSubComponent)
                modifies mw_mediaComponentDescription := {
                media_Component_Nr := {aVP_Header := ?, aVP_Data := 0},
                media_Sub_component := superset(p_mediaSubComponent)
            }
            
            template
            Media_Component_Description_AVP 
            mw_mediaComponentDescription_mediaSubComponent1 (template Media_Sub_Component_AVP p_mediaSubComponent)
                modifies mw_mediaComponentDescription := {
                media_Component_Nr := {aVP_Header := ?, aVP_Data := 1},
                media_Sub_component := {p_mediaSubComponent} //TODO remove restriction to one element
                media_Component_Nr := {aVP_Header := ?, aVP_Data := 0},
                media_Sub_component := {p_mediaSubComponent}
            }
            
            template
@@ -583,12 +687,6 @@ module LibDiameter_Templates {
                    media_Component_Nr := p_mediaComponentNr
            }

         template Media_Component_Number_AVP m_mediaComponentNr(UInt32 p_avpData) := {
             aVP_Header :=
                 m_aVP_HeaderVid(c_vendIdMedia_Component_Number_AVP,
                                 4, omit),
             aVP_Data := p_avpData
         }
			
         template Media_Sub_Component_AVP m_mediaSubComponentUN (template UInt32 p_flowNumber, template Flow_Usage_Type p_flowUsageType ) := {
             aVP_Header := m_aVP_HeaderVid(c_vendIdMedia_Sub_Component_AVP,12+12, omit),
@@ -603,18 +701,6 @@ module LibDiameter_Templates {
         }


         template Media_Sub_Component_AVP mw_mediaSubComponent := {
			 aVP_Header := ?,
			 flow_Number := ?,
			 flow_Description := ?,
			 flow_Status := *,
			 flow_Usage := {aVP_Header := ?, aVP_Data := AF_SIGNALLING_E},
			 max_Requested_Bw_Ul := *,
			 max_Requested_Bw_Dl := *,
			 af_Signalling_Protocol := *,
			 aVP_Type := *
		 }

   
          template Sponsored_Connectivity_Data_AVP mw_sponsoredConnectivityData
		  (template Sponsor_Identity_AVP p_sponsorIdentity,
@@ -1239,6 +1325,33 @@ module LibDiameter_Templates {
            auth_Application_Id := p_authApplicationId
        }
        
        
        template ASR_MSG m_ASR_basic(template Session_Id_AVP p_sessionId,
                         template Origin_Host_AVP p_originHost,
                         template Origin_Realm_AVP
                             p_originRealm,
                         template Destination_Realm_AVP
                             p_destinationRealm,
                         template Destination_Host_AVP
                             p_destinationHost,
                         template Auth_Application_Id_AVP
                             p_authApplicationId)
				modifies m_ASR_dummy := {
            header := m_diameterHeaderReq_dummy(ASR_E, 0),
            session_Id := p_sessionId,
            origin_Host := p_originHost,
            origin_Realm := p_originRealm,
            destination_Realm := p_destinationRealm,
            destination_Host := p_destinationHost,
            auth_Application_Id := p_authApplicationId,
            abort_cause := omit,
            user_Name := omit,
            origin_State_Id := omit,
            proxy_Info := omit,
            poute_Record := omit,
            aVP := omit
        }        
                    
        } // end group basic_request_templates_send

      
+19 −1
Original line number Diff line number Diff line
@@ -1939,6 +1939,8 @@ group BasicTypesAndConstants{
                     
                 };
                 
          
                
                type record Media_Type_AVP{
                 //Ref: ETSI TS 129 214 Media_Type AVP
                     AVP_Header			aVP_Header,//<AVP header: 520 ....>
@@ -2986,4 +2988,20 @@ group BasicTypesAndConstants{
		}//end group Other

	}//End group HeaderAndBodyTypes
	
	
	/**
	 * @desc group of aux. type definitions needed for template parameterization
	 */
	group AuxTypes {
	
    type record length (0..2) of Flow_Description_AVP Flow_Description_recordof;    
                
    type set of AVP_Type AVP_Type_setof;    
    
    type set of Media_Sub_Component_AVP Media_Sub_Component_setof;
    
    type set of Codec_Data_AVP Codec_Data_setof;
    
	} // end of AuxTypes
}
 No newline at end of file