Split templates in RLCMAC_{CSN1_}Types into their own _Templates file
RLCMAC blocks have a lot of fields and we will potentially require lots of different templates, as well as functions to handle related structs. Change-Id: I9c6597178168aa3848b21930f33be698dd2ce545
This commit is contained in:
parent
8dd59fba5e
commit
e8d7d16f13
|
@ -52,7 +52,7 @@ FILES="RTP_EncDec.cc RTP_Types.ttcn"
|
||||||
gen_links $DIR $FILES
|
gen_links $DIR $FILES
|
||||||
|
|
||||||
DIR=../library
|
DIR=../library
|
||||||
FILES="Misc_Helpers.ttcn General_Types.ttcn Osmocom_Types.ttcn GSM_Types.ttcn IPA_Types.ttcn IPA_CodecPort.ttcn IPA_CodecPort_CtrlFunct.ttcn IPA_CodecPort_CtrlFunctDef.cc IPA_Emulation.ttcnpp L3_Templates.ttcn RLCMAC_CSN1_Types.ttcn BSSMAP_Templates.ttcn RAN_Emulation.ttcnpp MGCP_Types.ttcn MGCP_Templates.ttcn MGCP_CodecPort.ttcn MGCP_CodecPort_CtrlFunct.ttcn MGCP_CodecPort_CtrlFunctDef.cc Osmocom_CTRL_Types.ttcn Osmocom_VTY_Functions.ttcn Osmocom_CTRL_Functions.ttcn Osmocom_CTRL_Adapter.ttcn BSSAP_CodecPort.ttcn"
|
FILES="Misc_Helpers.ttcn General_Types.ttcn Osmocom_Types.ttcn GSM_Types.ttcn IPA_Types.ttcn IPA_CodecPort.ttcn IPA_CodecPort_CtrlFunct.ttcn IPA_CodecPort_CtrlFunctDef.cc IPA_Emulation.ttcnpp L3_Templates.ttcn RLCMAC_CSN1_Templates.ttcn RLCMAC_CSN1_Types.ttcn BSSMAP_Templates.ttcn RAN_Emulation.ttcnpp MGCP_Types.ttcn MGCP_Templates.ttcn MGCP_CodecPort.ttcn MGCP_CodecPort_CtrlFunct.ttcn MGCP_CodecPort_CtrlFunctDef.cc Osmocom_CTRL_Types.ttcn Osmocom_VTY_Functions.ttcn Osmocom_CTRL_Functions.ttcn Osmocom_CTRL_Adapter.ttcn BSSAP_CodecPort.ttcn"
|
||||||
gen_links $DIR $FILES
|
gen_links $DIR $FILES
|
||||||
|
|
||||||
ignore_pp_results
|
ignore_pp_results
|
||||||
|
|
|
@ -67,7 +67,7 @@ FILES="TELNETasp_PT.cc TELNETasp_PT.hh TELNETasp_PortType.ttcn"
|
||||||
gen_links $DIR $FILES
|
gen_links $DIR $FILES
|
||||||
|
|
||||||
DIR=../library
|
DIR=../library
|
||||||
FILES="Misc_Helpers.ttcn General_Types.ttcn Osmocom_Types.ttcn GSM_Types.ttcn Osmocom_VTY_Functions.ttcn Native_Functions.ttcn Native_FunctionDefs.cc IPA_Types.ttcn IPA_CodecPort.ttcn IPA_CodecPort_CtrlFunct.ttcn IPA_CodecPort_CtrlFunctDef.cc IPA_Emulation.ttcnpp L3_Templates.ttcn BSSMAP_Templates.ttcn RAN_Emulation.ttcnpp RLCMAC_CSN1_Types.ttcn GSM_RR_Types.ttcn RSL_Types.ttcn RSL_Emulation.ttcn MGCP_Emulation.ttcn MGCP_Types.ttcn MGCP_Templates.ttcn MGCP_CodecPort.ttcn MGCP_CodecPort_CtrlFunct.ttcn MGCP_CodecPort_CtrlFunctDef.cc BSSAP_CodecPort.ttcn RAN_Adapter.ttcnpp Osmocom_CTRL_Types.ttcn Osmocom_CTRL_Functions.ttcn Osmocom_CTRL_Adapter.ttcn RTP_CodecPort.ttcn RTP_CodecPort_CtrlFunct.ttcn RTP_CodecPort_CtrlFunctDef.cc RTP_Emulation.ttcn IuUP_Types.ttcn IuUP_EncDec.cc IuUP_Emulation.ttcn SCCP_Templates.ttcn IPA_Testing.ttcn "
|
FILES="Misc_Helpers.ttcn General_Types.ttcn Osmocom_Types.ttcn GSM_Types.ttcn Osmocom_VTY_Functions.ttcn Native_Functions.ttcn Native_FunctionDefs.cc IPA_Types.ttcn IPA_CodecPort.ttcn IPA_CodecPort_CtrlFunct.ttcn IPA_CodecPort_CtrlFunctDef.cc IPA_Emulation.ttcnpp L3_Templates.ttcn BSSMAP_Templates.ttcn RAN_Emulation.ttcnpp RLCMAC_CSN1_Templates.ttcn RLCMAC_CSN1_Types.ttcn GSM_RR_Types.ttcn RSL_Types.ttcn RSL_Emulation.ttcn MGCP_Emulation.ttcn MGCP_Types.ttcn MGCP_Templates.ttcn MGCP_CodecPort.ttcn MGCP_CodecPort_CtrlFunct.ttcn MGCP_CodecPort_CtrlFunctDef.cc BSSAP_CodecPort.ttcn RAN_Adapter.ttcnpp Osmocom_CTRL_Types.ttcn Osmocom_CTRL_Functions.ttcn Osmocom_CTRL_Adapter.ttcn RTP_CodecPort.ttcn RTP_CodecPort_CtrlFunct.ttcn RTP_CodecPort_CtrlFunctDef.cc RTP_Emulation.ttcn IuUP_Types.ttcn IuUP_EncDec.cc IuUP_Emulation.ttcn SCCP_Templates.ttcn IPA_Testing.ttcn "
|
||||||
FILES+="CBSP_Types.ttcn CBSP_Templates.ttcn "
|
FILES+="CBSP_Types.ttcn CBSP_Templates.ttcn "
|
||||||
FILES+="CBSP_CodecPort.ttcn CBSP_CodecPort_CtrlFunct.ttcn CBSP_CodecPort_CtrlFunctdef.cc CBSP_Adapter.ttcn "
|
FILES+="CBSP_CodecPort.ttcn CBSP_CodecPort_CtrlFunct.ttcn CBSP_CodecPort_CtrlFunctdef.cc CBSP_Adapter.ttcn "
|
||||||
gen_links $DIR $FILES
|
gen_links $DIR $FILES
|
||||||
|
|
|
@ -33,7 +33,7 @@ FILES="TELNETasp_PT.cc TELNETasp_PT.hh TELNETasp_PortType.ttcn"
|
||||||
gen_links $DIR $FILES
|
gen_links $DIR $FILES
|
||||||
|
|
||||||
DIR=../library
|
DIR=../library
|
||||||
FILES="Misc_Helpers.ttcn General_Types.ttcn GSM_Types.ttcn GSM_RR_Types.ttcn Osmocom_VTY_Functions.ttcn GSM_SystemInformation.ttcn Osmocom_Types.ttcn RLCMAC_Types.ttcn RLCMAC_CSN1_Types.ttcn RLCMAC_EncDec.cc L1CTL_Types.ttcn L1CTL_PortType.ttcn L1CTL_PortType_CtrlFunct.ttcn L1CTL_PortType_CtrlFunctDef.cc LAPDm_RAW_PT.ttcn LAPDm_Types.ttcn "
|
FILES="Misc_Helpers.ttcn General_Types.ttcn GSM_Types.ttcn GSM_RR_Types.ttcn Osmocom_VTY_Functions.ttcn GSM_SystemInformation.ttcn Osmocom_Types.ttcn RLCMAC_Templates.ttcn RLCMAC_Types.ttcn RLCMAC_CSN1_Templates.ttcn RLCMAC_CSN1_Types.ttcn RLCMAC_EncDec.cc L1CTL_Types.ttcn L1CTL_PortType.ttcn L1CTL_PortType_CtrlFunct.ttcn L1CTL_PortType_CtrlFunctDef.cc LAPDm_RAW_PT.ttcn LAPDm_Types.ttcn "
|
||||||
#FILES+="NS_Emulation.ttcn NS_CodecPort.ttcn NS_CodecPort_CtrlFunct.ttcn NS_CodecPort_CtrlFunctDef.cc "
|
#FILES+="NS_Emulation.ttcn NS_CodecPort.ttcn NS_CodecPort_CtrlFunct.ttcn NS_CodecPort_CtrlFunctDef.cc "
|
||||||
#FILES+="BSSGP_Emulation.ttcn Osmocom_Gb_Types.ttcn "
|
#FILES+="BSSGP_Emulation.ttcn Osmocom_Gb_Types.ttcn "
|
||||||
FILES+="IPA_Types.ttcn IPA_CodecPort.ttcn IPA_CodecPort_CtrlFunct.ttcn IPA_CodecPort_CtrlFunctDef.cc IPA_Emulation.ttcnpp IPA_CodecPort.ttcn RSL_Types.ttcn RSL_Emulation.ttcn AbisOML_Types.ttcn "
|
FILES+="IPA_Types.ttcn IPA_CodecPort.ttcn IPA_CodecPort_CtrlFunct.ttcn IPA_CodecPort_CtrlFunctDef.cc IPA_Emulation.ttcnpp IPA_CodecPort.ttcn RSL_Types.ttcn RSL_Emulation.ttcn AbisOML_Types.ttcn "
|
||||||
|
|
|
@ -14,7 +14,7 @@ gen_links $DIR $FILES
|
||||||
|
|
||||||
|
|
||||||
DIR=../library
|
DIR=../library
|
||||||
FILES="Misc_Helpers.ttcn General_Types.ttcn GSM_Types.ttcn GSM_RR_Types.ttcn RLCMAC_CSN1_Types.ttcn Osmocom_Types.ttcn L1CTL_PortType.ttcn L1CTL_PortType_CtrlFunct.ttcn L1CTL_PortType_CtrlFunctDef.cc L1CTL_Types.ttcn LAPDm_RAW_PT.ttcn LAPDm_Types.ttcn RLCMAC_Types.ttcn RLCMAC_EncDec.cc"
|
FILES="Misc_Helpers.ttcn General_Types.ttcn GSM_Types.ttcn GSM_RR_Types.ttcn RLCMAC_CSN1_Templates.ttcn RLCMAC_CSN1_Types.ttcn Osmocom_Types.ttcn L1CTL_PortType.ttcn L1CTL_PortType_CtrlFunct.ttcn L1CTL_PortType_CtrlFunctDef.cc L1CTL_Types.ttcn LAPDm_RAW_PT.ttcn LAPDm_Types.ttcn RLCMAC_Templates.ttcn RLCMAC_Types.ttcn RLCMAC_EncDec.cc"
|
||||||
gen_links $DIR $FILES
|
gen_links $DIR $FILES
|
||||||
|
|
||||||
ignore_pp_results
|
ignore_pp_results
|
||||||
|
|
|
@ -20,7 +20,7 @@ import from MobileL3_RRM_Types all;
|
||||||
import from MobileL3_CC_Types all;
|
import from MobileL3_CC_Types all;
|
||||||
import from MobileL3_GMM_SM_Types all;
|
import from MobileL3_GMM_SM_Types all;
|
||||||
import from MobileL3_SMS_Types all;
|
import from MobileL3_SMS_Types all;
|
||||||
import from RLCMAC_CSN1_Types all;
|
import from RLCMAC_CSN1_Templates all;
|
||||||
|
|
||||||
/* TS 24.007 Table 11.3 TI Flag */
|
/* TS 24.007 Table 11.3 TI Flag */
|
||||||
const BIT1 c_TIF_ORIG := '0'B;
|
const BIT1 c_TIF_ORIG := '0'B;
|
||||||
|
|
|
@ -0,0 +1,163 @@
|
||||||
|
/* GPRS RLC/MAC Control Messages as per 3GPP TS 44.060 manually transcribed from the CSN.1 syntax, as no CSN.1
|
||||||
|
* tool for Eclipse TITAN could be found. Implements only the minimum necessary messages for Osmocom teseting
|
||||||
|
* purposes. */
|
||||||
|
|
||||||
|
/* (C) 2017-2018 Harald Welte <laforge@gnumonks.org>
|
||||||
|
* contributions by sysmocom - s.f.m.c. GmbH
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Released under the terms of GNU General Public License, Version 2 or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
module RLCMAC_CSN1_Templates {
|
||||||
|
import from General_Types all;
|
||||||
|
import from Osmocom_Types all;
|
||||||
|
import from GSM_Types all;
|
||||||
|
import from MobileL3_GMM_SM_Types all;
|
||||||
|
import from RLCMAC_CSN1_Types all;
|
||||||
|
|
||||||
|
template (value) RlcmacUlCtrlMsg ts_RlcMacUlCtrl_PKT_CTRL_ACK(GprsTlli tlli,
|
||||||
|
CtrlAck ack := MS_RCVD_TWO_RLC_SAME_RTI_DIFF_RBSN) := {
|
||||||
|
msg_type := PACKET_CONTROL_ACK,
|
||||||
|
u := {
|
||||||
|
ctrl_ack := {
|
||||||
|
tlli := tlli,
|
||||||
|
ctrl_ack := ack
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const ILevel iNone := {
|
||||||
|
presence := '0'B,
|
||||||
|
i_level := omit
|
||||||
|
}
|
||||||
|
const ChannelQualityReport c_ChQualRep_default := {
|
||||||
|
c_value := 0,
|
||||||
|
rxqual := 0,
|
||||||
|
sign_var := 0,
|
||||||
|
i_levels := { iNone, iNone, iNone, iNone, iNone, iNone, iNone, iNone }
|
||||||
|
}
|
||||||
|
template (value) RlcmacUlCtrlMsg ts_RlcMacUlCtrl_PKT_DL_ACK(uint5_t dl_tfi,
|
||||||
|
AckNackDescription andesc,
|
||||||
|
ChannelQualityReport qual_rep := c_ChQualRep_default) := {
|
||||||
|
msg_type := PACKET_DL_ACK_NACK,
|
||||||
|
u := {
|
||||||
|
dl_ack_nack := {
|
||||||
|
dl_tfi := dl_tfi,
|
||||||
|
ack_nack_desc := andesc,
|
||||||
|
chreq_desc_presence := '0'B,
|
||||||
|
chreq_desc := omit,
|
||||||
|
ch_qual_rep := qual_rep
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function f_presence_bit_MultislotCap_GPRS(template (omit) MultislotCap_GPRS mscap_gprs) return BIT1 {
|
||||||
|
if (istemplatekind(mscap_gprs, "omit")) {
|
||||||
|
return '0'B;
|
||||||
|
}
|
||||||
|
return '1'B;
|
||||||
|
}
|
||||||
|
private function f_presence_bit_MultislotCap_EGPRS(template (omit) MultislotCap_EGPRS mscap_egprs) return BIT1 {
|
||||||
|
if (istemplatekind(mscap_egprs, "omit")) {
|
||||||
|
return '0'B;
|
||||||
|
}
|
||||||
|
return '1'B;
|
||||||
|
}
|
||||||
|
template (value) MSRACapabilityValuesRecord ts_RaCapRec(BIT4 att := '0001'B /* E-GSM */, template (omit) MultislotCap_GPRS mscap_gprs := omit, template (omit) MultislotCap_EGPRS mscap_egprs := omit) := {
|
||||||
|
mSRACapabilityValues := {
|
||||||
|
mSRACapabilityValuesExclude1111 := {
|
||||||
|
accessTechnType := att, /* E-GSM */
|
||||||
|
accessCapabilities := {
|
||||||
|
lengthIndicator := 0, /* overwritten */
|
||||||
|
accessCapabilities := {
|
||||||
|
rfPowerCapability := '001'B, /* FIXME */
|
||||||
|
presenceBitA5 := '0'B,
|
||||||
|
a5bits := omit,
|
||||||
|
esind := '1'B,
|
||||||
|
psbit := '0'B,
|
||||||
|
vgcs := '0'B,
|
||||||
|
vbs := '0'B,
|
||||||
|
presenceBitMultislot := '1'B,
|
||||||
|
multislotcap := {
|
||||||
|
presenceBitHscsd := '0'B,
|
||||||
|
hscsdmultislotclass := omit,
|
||||||
|
presenceBitGprs := f_presence_bit_MultislotCap_GPRS(mscap_gprs),
|
||||||
|
gprsmultislot := mscap_gprs,
|
||||||
|
presenceBitSms := '0'B,
|
||||||
|
multislotCap_SMS := omit,
|
||||||
|
multislotCapAdditionsAfterRel97 := {
|
||||||
|
presenceBitEcsdmulti := '0'B,
|
||||||
|
ecsdmultislotclass := omit,
|
||||||
|
presenceBitEgprsmulti := f_presence_bit_MultislotCap_EGPRS(mscap_egprs),
|
||||||
|
multislotCap_EGPRS := mscap_egprs,
|
||||||
|
presenceBitDtmGprsmulti := '0'B,
|
||||||
|
multislotCapdtmgprsmultislotsubclass := omit
|
||||||
|
}
|
||||||
|
},
|
||||||
|
accessCapAdditionsAfterRel97 := omit
|
||||||
|
},
|
||||||
|
spare_bits := omit
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
presenceBitMSRACap := '0'B
|
||||||
|
};
|
||||||
|
|
||||||
|
private function f_presence_bit_MSRadioAccessCapabilityV(template (omit) MSRadioAccessCapabilityV ms_rac) return BIT1 {
|
||||||
|
if (istemplatekind(ms_rac, "omit")) {
|
||||||
|
return '0'B;
|
||||||
|
}
|
||||||
|
return '1'B;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function f_template_MSRadioAccessCapabilityV_to_MSRadioAccCap2(template (omit) MSRadioAccessCapabilityV ms_rac) return template (omit) MSRadioAccCap2 {
|
||||||
|
var template (omit) MSRadioAccCap2 ms_rac2 := omit;
|
||||||
|
if (istemplatekind(ms_rac, "omit")) {
|
||||||
|
return ms_rac2;
|
||||||
|
}
|
||||||
|
ms_rac2 := { msRadioAccessCapabilityV := ms_rac };
|
||||||
|
return ms_rac2;
|
||||||
|
}
|
||||||
|
|
||||||
|
private const ChannelReqDescription c_ChReqDesc_default := {
|
||||||
|
peak_tput_class := 0,
|
||||||
|
priority := 0,
|
||||||
|
rlc_mode := RLC_MODE_UNACKNOWLEDGED,
|
||||||
|
llc_pdu_type := LLC_PDU_IS_NOT_SACK_OR_ACK,
|
||||||
|
RlcOctetCount := 0
|
||||||
|
}
|
||||||
|
|
||||||
|
/* TS 44.060 sec 11.2.16 */
|
||||||
|
template (value) RlcmacUlCtrlMsg ts_RlcMacUlCtrl_PKT_RES_REQ(GprsTlli tlli,
|
||||||
|
template (omit) MSRadioAccessCapabilityV ms_rac,
|
||||||
|
ChannelReqDescription ch_req_desc := c_ChReqDesc_default,
|
||||||
|
RlcAccessType acc_type := RLC_ACC_TYPE_TWO_PHASE)
|
||||||
|
:= {
|
||||||
|
msg_type := PACKET_RESOURCE_REQUEST,
|
||||||
|
u := {
|
||||||
|
resource_req := {
|
||||||
|
acc_type_presence := '1'B,
|
||||||
|
acc_type := acc_type,
|
||||||
|
id_type := '1'B,
|
||||||
|
id := { tlli := tlli },
|
||||||
|
ms_rac2_presence := f_presence_bit_MSRadioAccessCapabilityV(ms_rac),
|
||||||
|
ms_rac2 := f_template_MSRadioAccessCapabilityV_to_MSRadioAccCap2(ms_rac),
|
||||||
|
ch_req_desc := ch_req_desc,
|
||||||
|
change_mark_presence := '0'B,
|
||||||
|
change_mark := omit,
|
||||||
|
C_val := '000000'B,
|
||||||
|
sign_var_presence := '0'B,
|
||||||
|
sign_var := omit,
|
||||||
|
I_levels := {
|
||||||
|
iNone, iNone, iNone, iNone,
|
||||||
|
iNone, iNone, iNone, iNone
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} with { encode "RAW"; variant "FIELDORDER(msb)" variant "BYTEORDER(last)" };
|
|
@ -639,147 +639,6 @@ module RLCMAC_CSN1_Types {
|
||||||
variant (relative_k) "PRESENCE(presence = '1'B)"
|
variant (relative_k) "PRESENCE(presence = '1'B)"
|
||||||
};
|
};
|
||||||
|
|
||||||
template (value) RlcmacUlCtrlMsg ts_RlcMacUlCtrl_PKT_CTRL_ACK(GprsTlli tlli,
|
|
||||||
CtrlAck ack := MS_RCVD_TWO_RLC_SAME_RTI_DIFF_RBSN) := {
|
|
||||||
msg_type := PACKET_CONTROL_ACK,
|
|
||||||
u := {
|
|
||||||
ctrl_ack := {
|
|
||||||
tlli := tlli,
|
|
||||||
ctrl_ack := ack
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const ILevel iNone := {
|
|
||||||
presence := '0'B,
|
|
||||||
i_level := omit
|
|
||||||
}
|
|
||||||
const ChannelQualityReport c_ChQualRep_default := {
|
|
||||||
c_value := 0,
|
|
||||||
rxqual := 0,
|
|
||||||
sign_var := 0,
|
|
||||||
i_levels := { iNone, iNone, iNone, iNone, iNone, iNone, iNone, iNone }
|
|
||||||
}
|
|
||||||
template (value) RlcmacUlCtrlMsg ts_RlcMacUlCtrl_PKT_DL_ACK(uint5_t dl_tfi,
|
|
||||||
AckNackDescription andesc,
|
|
||||||
ChannelQualityReport qual_rep := c_ChQualRep_default) := {
|
|
||||||
msg_type := PACKET_DL_ACK_NACK,
|
|
||||||
u := {
|
|
||||||
dl_ack_nack := {
|
|
||||||
dl_tfi := dl_tfi,
|
|
||||||
ack_nack_desc := andesc,
|
|
||||||
chreq_desc_presence := '0'B,
|
|
||||||
chreq_desc := omit,
|
|
||||||
ch_qual_rep := qual_rep
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private function f_presence_bit_MultislotCap_GPRS(template (omit) MultislotCap_GPRS mscap_gprs) return BIT1 {
|
|
||||||
if (istemplatekind(mscap_gprs, "omit")) {
|
|
||||||
return '0'B;
|
|
||||||
}
|
|
||||||
return '1'B;
|
|
||||||
}
|
|
||||||
private function f_presence_bit_MultislotCap_EGPRS(template (omit) MultislotCap_EGPRS mscap_egprs) return BIT1 {
|
|
||||||
if (istemplatekind(mscap_egprs, "omit")) {
|
|
||||||
return '0'B;
|
|
||||||
}
|
|
||||||
return '1'B;
|
|
||||||
}
|
|
||||||
template (value) MSRACapabilityValuesRecord ts_RaCapRec(BIT4 att := '0001'B /* E-GSM */, template (omit) MultislotCap_GPRS mscap_gprs := omit, template (omit) MultislotCap_EGPRS mscap_egprs := omit) := {
|
|
||||||
mSRACapabilityValues := {
|
|
||||||
mSRACapabilityValuesExclude1111 := {
|
|
||||||
accessTechnType := att, /* E-GSM */
|
|
||||||
accessCapabilities := {
|
|
||||||
lengthIndicator := 0, /* overwritten */
|
|
||||||
accessCapabilities := {
|
|
||||||
rfPowerCapability := '001'B, /* FIXME */
|
|
||||||
presenceBitA5 := '0'B,
|
|
||||||
a5bits := omit,
|
|
||||||
esind := '1'B,
|
|
||||||
psbit := '0'B,
|
|
||||||
vgcs := '0'B,
|
|
||||||
vbs := '0'B,
|
|
||||||
presenceBitMultislot := '1'B,
|
|
||||||
multislotcap := {
|
|
||||||
presenceBitHscsd := '0'B,
|
|
||||||
hscsdmultislotclass := omit,
|
|
||||||
presenceBitGprs := f_presence_bit_MultislotCap_GPRS(mscap_gprs),
|
|
||||||
gprsmultislot := mscap_gprs,
|
|
||||||
presenceBitSms := '0'B,
|
|
||||||
multislotCap_SMS := omit,
|
|
||||||
multislotCapAdditionsAfterRel97 := {
|
|
||||||
presenceBitEcsdmulti := '0'B,
|
|
||||||
ecsdmultislotclass := omit,
|
|
||||||
presenceBitEgprsmulti := f_presence_bit_MultislotCap_EGPRS(mscap_egprs),
|
|
||||||
multislotCap_EGPRS := mscap_egprs,
|
|
||||||
presenceBitDtmGprsmulti := '0'B,
|
|
||||||
multislotCapdtmgprsmultislotsubclass := omit
|
|
||||||
}
|
|
||||||
},
|
|
||||||
accessCapAdditionsAfterRel97 := omit
|
|
||||||
},
|
|
||||||
spare_bits := omit
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
presenceBitMSRACap := '0'B
|
|
||||||
};
|
|
||||||
|
|
||||||
private function f_presence_bit_MSRadioAccessCapabilityV(template (omit) MSRadioAccessCapabilityV ms_rac) return BIT1 {
|
|
||||||
if (istemplatekind(ms_rac, "omit")) {
|
|
||||||
return '0'B;
|
|
||||||
}
|
|
||||||
return '1'B;
|
|
||||||
}
|
|
||||||
|
|
||||||
private function f_template_MSRadioAccessCapabilityV_to_MSRadioAccCap2(template (omit) MSRadioAccessCapabilityV ms_rac) return template (omit) MSRadioAccCap2 {
|
|
||||||
var template (omit) MSRadioAccCap2 ms_rac2 := omit;
|
|
||||||
if (istemplatekind(ms_rac, "omit")) {
|
|
||||||
return ms_rac2;
|
|
||||||
}
|
|
||||||
ms_rac2 := { msRadioAccessCapabilityV := ms_rac };
|
|
||||||
return ms_rac2;
|
|
||||||
}
|
|
||||||
|
|
||||||
private const ChannelReqDescription c_ChReqDesc_default := {
|
|
||||||
peak_tput_class := 0,
|
|
||||||
priority := 0,
|
|
||||||
rlc_mode := RLC_MODE_UNACKNOWLEDGED,
|
|
||||||
llc_pdu_type := LLC_PDU_IS_NOT_SACK_OR_ACK,
|
|
||||||
RlcOctetCount := 0
|
|
||||||
}
|
|
||||||
|
|
||||||
/* TS 44.060 sec 11.2.16 */
|
|
||||||
template (value) RlcmacUlCtrlMsg ts_RlcMacUlCtrl_PKT_RES_REQ(GprsTlli tlli,
|
|
||||||
template (omit) MSRadioAccessCapabilityV ms_rac,
|
|
||||||
ChannelReqDescription ch_req_desc := c_ChReqDesc_default,
|
|
||||||
RlcAccessType acc_type := RLC_ACC_TYPE_TWO_PHASE)
|
|
||||||
:= {
|
|
||||||
msg_type := PACKET_RESOURCE_REQUEST,
|
|
||||||
u := {
|
|
||||||
resource_req := {
|
|
||||||
acc_type_presence := '1'B,
|
|
||||||
acc_type := acc_type,
|
|
||||||
id_type := '1'B,
|
|
||||||
id := { tlli := tlli },
|
|
||||||
ms_rac2_presence := f_presence_bit_MSRadioAccessCapabilityV(ms_rac),
|
|
||||||
ms_rac2 := f_template_MSRadioAccessCapabilityV_to_MSRadioAccCap2(ms_rac),
|
|
||||||
ch_req_desc := ch_req_desc,
|
|
||||||
change_mark_presence := '0'B,
|
|
||||||
change_mark := omit,
|
|
||||||
C_val := '000000'B,
|
|
||||||
sign_var_presence := '0'B,
|
|
||||||
sign_var := omit,
|
|
||||||
I_levels := {
|
|
||||||
iNone, iNone, iNone, iNone,
|
|
||||||
iNone, iNone, iNone, iNone
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 3GPP TS 44.060, table 11.2.5a.2 "EGPRS PACKET CHANNEL REQUEST" */
|
/* 3GPP TS 44.060, table 11.2.5a.2 "EGPRS PACKET CHANNEL REQUEST" */
|
||||||
type union EGPRSPktChRequest {
|
type union EGPRSPktChRequest {
|
||||||
EGPRSPktChRequest_MC5P2RB3 one_phase,
|
EGPRSPktChRequest_MC5P2RB3 one_phase,
|
||||||
|
|
|
@ -0,0 +1,346 @@
|
||||||
|
/* TITAN REW encode/decode definitions for 3GPP TS 44.060 RLC/MAC Blocks */
|
||||||
|
|
||||||
|
/* (C) 2017-2018 Harald Welte <laforge@gnumonks.org>
|
||||||
|
* (C) 2020 by sysmocom s.f.m.c. GmbH <info@sysmocom.de>
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Released under the terms of GNU General Public License, Version 2 or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
module RLCMAC_Templates {
|
||||||
|
import from General_Types all;
|
||||||
|
import from Osmocom_Types all;
|
||||||
|
import from GSM_Types all;
|
||||||
|
import from RLCMAC_CSN1_Types all;
|
||||||
|
import from RLCMAC_CSN1_Templates all;
|
||||||
|
import from RLCMAC_Types all;
|
||||||
|
|
||||||
|
/* TS 44.060 10.4.5 */
|
||||||
|
function f_rrbp_fn_delay(MacRrbp rrbp) return uint32_t {
|
||||||
|
select (rrbp) {
|
||||||
|
case (RRBP_Nplus13_mod_2715648) { return 13; }
|
||||||
|
case (RRBP_Nplus17_or_18_mod_2715648) { return 17; }
|
||||||
|
case (RRBP_Nplus21_or_22_mod_2715648) { return 21; }
|
||||||
|
case (RRBP_Nplus26_mod_2715648) { return 26; }
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
function f_rlcmac_cs_mcs2block_len(CodingScheme cs_mcs) return uint32_t {
|
||||||
|
select (cs_mcs) {
|
||||||
|
case (CS_1) { return 23; }
|
||||||
|
case (CS_2) { return 34; }
|
||||||
|
case (CS_3) { return 40; }
|
||||||
|
case (CS_4) { return 54; }
|
||||||
|
case (MCS_1) { return 27; }
|
||||||
|
case (MCS_2) { return 33; }
|
||||||
|
case (MCS_3) { return 42; }
|
||||||
|
case (MCS_4) { return 49; }
|
||||||
|
case (MCS_5) { return 61; }
|
||||||
|
case (MCS_6) { return 79; }
|
||||||
|
case (MCS_7) { return 119; }
|
||||||
|
case (MCS_8) { return 143; }
|
||||||
|
case (MCS_9) { return 155; }
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
function f_rlcmac_block_len2cs_mcs(uint32_t len) return CodingScheme {
|
||||||
|
select (len) {
|
||||||
|
case (23) { return CS_1; }
|
||||||
|
case (34) { return CS_2; }
|
||||||
|
case (40) { return CS_3; }
|
||||||
|
case (54) { return CS_4; }
|
||||||
|
case (27) { return MCS_1; }
|
||||||
|
case (33) { return MCS_2; }
|
||||||
|
case (42) { return MCS_3; }
|
||||||
|
case (49) { return MCS_4; }
|
||||||
|
case (60) { return MCS_5; }
|
||||||
|
case (61) { return MCS_5; }
|
||||||
|
case (78) { return MCS_6; }
|
||||||
|
case (79) { return MCS_6; }
|
||||||
|
case (118) { return MCS_7; }
|
||||||
|
case (119) { return MCS_7; }
|
||||||
|
case (142) { return MCS_8; }
|
||||||
|
case (143) { return MCS_8; }
|
||||||
|
case (154) { return MCS_9; }
|
||||||
|
case (155) { return MCS_9; }
|
||||||
|
}
|
||||||
|
return CS_1;
|
||||||
|
}
|
||||||
|
|
||||||
|
template (value) RlcmacUlBlock ts_RLC_UL_CTRL_ACK(RlcmacUlCtrlMsg ctrl,
|
||||||
|
MacPayloadType pt := MAC_PT_RLCMAC_NO_OPT,
|
||||||
|
boolean retry := false) := {
|
||||||
|
ctrl := {
|
||||||
|
mac_hdr := {
|
||||||
|
payload_type := pt,
|
||||||
|
spare := '00000'B,
|
||||||
|
retry := retry
|
||||||
|
},
|
||||||
|
payload := ctrl
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Send Template for Downlink ACK/NACK */
|
||||||
|
template RlcmacUlBlock ts_RLCMAC_DL_ACK_NACK(template uint5_t tfi, AckNackDescription andesc, boolean retry := false) := {
|
||||||
|
ctrl := {
|
||||||
|
mac_hdr := {
|
||||||
|
payload_type := MAC_PT_RLCMAC_NO_OPT,
|
||||||
|
spare := '00000'B,
|
||||||
|
retry := retry
|
||||||
|
},
|
||||||
|
payload := {
|
||||||
|
msg_type := PACKET_DL_ACK_NACK,
|
||||||
|
u := {
|
||||||
|
dl_ack_nack := {
|
||||||
|
dl_tfi := tfi,
|
||||||
|
ack_nack_desc := andesc,
|
||||||
|
chreq_desc_presence := '0'B,
|
||||||
|
chreq_desc := omit,
|
||||||
|
ch_qual_rep := c_ChQualRep_default
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Template for uplink Data block */
|
||||||
|
template RlcmacUlBlock t_RLCMAC_UL_DATA(template uint5_t tfi, template uint4_t cv, template uint7_t bsn,
|
||||||
|
template LlcBlocks blocks := {}, template boolean stall := false) := {
|
||||||
|
data := {
|
||||||
|
mac_hdr := {
|
||||||
|
payload_type := MAC_PT_RLC_DATA,
|
||||||
|
countdown := cv,
|
||||||
|
stall_ind := false,
|
||||||
|
retry := false,
|
||||||
|
spare := '0'B,
|
||||||
|
pfi_ind := false,
|
||||||
|
tfi := tfi,
|
||||||
|
tlli_ind := false,
|
||||||
|
bsn := bsn,
|
||||||
|
e := false
|
||||||
|
},
|
||||||
|
tlli := omit,
|
||||||
|
pfi := omit,
|
||||||
|
blocks := blocks
|
||||||
|
}
|
||||||
|
}
|
||||||
|
template RlcmacUlBlock t_RLCMAC_UL_DATA_TLLI(template uint5_t tfi, template uint4_t cv, template uint7_t bsn,
|
||||||
|
template LlcBlocks blocks := {}, template boolean stall := false, template GprsTlli tlli) := {
|
||||||
|
data := {
|
||||||
|
mac_hdr := {
|
||||||
|
payload_type := MAC_PT_RLC_DATA,
|
||||||
|
countdown := cv,
|
||||||
|
stall_ind := false,
|
||||||
|
retry := false,
|
||||||
|
spare := '0'B,
|
||||||
|
pfi_ind := false,
|
||||||
|
tfi := tfi,
|
||||||
|
tlli_ind := true,
|
||||||
|
bsn := bsn,
|
||||||
|
e := false
|
||||||
|
},
|
||||||
|
tlli := tlli,
|
||||||
|
pfi := omit,
|
||||||
|
blocks := blocks
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
template DlMacHeader t_RLCMAC_DlMacH(template MacPayloadType pt, template MacRrbp rrbp, template
|
||||||
|
uint3_t usf) := {
|
||||||
|
payload_type := pt,
|
||||||
|
rrbp := rrbp,
|
||||||
|
rrbp_valid := ispresent(rrbp),
|
||||||
|
usf := usf
|
||||||
|
}
|
||||||
|
|
||||||
|
template RlcmacDlBlock tr_RLCMAC_DUMMY_CTRL(template uint3_t usf := ?, template PageMode page_mode := ?) := {
|
||||||
|
ctrl := {
|
||||||
|
mac_hdr := {
|
||||||
|
payload_type := (MAC_PT_RLCMAC_NO_OPT, MAC_PT_RLCMAC_OPT),
|
||||||
|
rrbp:= ?,
|
||||||
|
rrbp_valid := ?,
|
||||||
|
usf := usf
|
||||||
|
},
|
||||||
|
opt := *,
|
||||||
|
payload := {
|
||||||
|
msg_type := PACKET_DL_DUMMY_CTRL,
|
||||||
|
u := {
|
||||||
|
dl_dummy := {
|
||||||
|
page_mode := page_mode,
|
||||||
|
persistence_levels_present := ?,
|
||||||
|
persistence_levels := *
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
template RlcmacDlBlock tr_RLCMAC_DL_PACKET_ASS(template uint3_t usf := ?) := {
|
||||||
|
ctrl := {
|
||||||
|
mac_hdr := {
|
||||||
|
payload_type := (MAC_PT_RLCMAC_NO_OPT, MAC_PT_RLCMAC_OPT),
|
||||||
|
rrbp:= ?,
|
||||||
|
rrbp_valid := ?,
|
||||||
|
usf := usf
|
||||||
|
},
|
||||||
|
opt := *,
|
||||||
|
payload := {
|
||||||
|
msg_type := PACKET_DL_ASSIGNMENT,
|
||||||
|
u := {
|
||||||
|
dl_assignment := {
|
||||||
|
page_mode := ?,
|
||||||
|
pres1 := ?,
|
||||||
|
persistence_levels := *,
|
||||||
|
tfi_or_tlli := ?
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
template RlcmacDlBlock tr_RLCMAC_UL_PACKET_ASS(template uint3_t usf := ?) := {
|
||||||
|
ctrl := {
|
||||||
|
mac_hdr := {
|
||||||
|
payload_type := (MAC_PT_RLCMAC_NO_OPT, MAC_PT_RLCMAC_OPT),
|
||||||
|
rrbp:= ?,
|
||||||
|
rrbp_valid := ?,
|
||||||
|
usf := usf
|
||||||
|
},
|
||||||
|
opt := *,
|
||||||
|
payload := {
|
||||||
|
msg_type := PACKET_UL_ASSIGNMENT,
|
||||||
|
u := {
|
||||||
|
ul_assignment := {
|
||||||
|
page_mode := ?,
|
||||||
|
persistence_levels_present := ?,
|
||||||
|
persistence_levels := *,
|
||||||
|
identity := ?,
|
||||||
|
is_egprs := ?, /* msg escape */
|
||||||
|
gprs := *
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Receive Template for Uplink ACK/NACK */
|
||||||
|
template RlcmacDlBlock tr_RLCMAC_UL_ACK_NACK(template uint5_t ul_tfi, template GprsTlli tlli := ?) := {
|
||||||
|
ctrl := {
|
||||||
|
mac_hdr := {
|
||||||
|
payload_type := (MAC_PT_RLCMAC_NO_OPT, MAC_PT_RLCMAC_OPT),
|
||||||
|
rrbp:= ?,
|
||||||
|
rrbp_valid := ?,
|
||||||
|
usf := ?
|
||||||
|
},
|
||||||
|
opt := *,
|
||||||
|
payload := {
|
||||||
|
msg_type := PACKET_UL_ACK_NACK,
|
||||||
|
u := {
|
||||||
|
ul_ack_nack := {
|
||||||
|
page_mode := ?,
|
||||||
|
msg_excape := ?,
|
||||||
|
uplink_tfi := ul_tfi,
|
||||||
|
is_egprs := '0'B,
|
||||||
|
gprs := {
|
||||||
|
ch_coding_cmd := ?,
|
||||||
|
ack_nack_desc := ?,
|
||||||
|
cont_res_tlli_present := ?,
|
||||||
|
cont_res_tlli := tlli,
|
||||||
|
pkt_ta_present := ?,
|
||||||
|
pkt_ta := *,
|
||||||
|
pwr_ctrl_present := ?,
|
||||||
|
pwr_ctrl := *
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
template RlcmacDlBlock tr_RLCMAC_PACKET_PAG_REQ(template uint3_t usf := ?) := {
|
||||||
|
ctrl := {
|
||||||
|
mac_hdr := {
|
||||||
|
payload_type := MAC_PT_RLCMAC_NO_OPT,
|
||||||
|
rrbp:= ?,
|
||||||
|
rrbp_valid := ?,
|
||||||
|
usf := usf
|
||||||
|
},
|
||||||
|
opt := *,
|
||||||
|
payload := {
|
||||||
|
msg_type := PACKET_PAGING_REQUEST,
|
||||||
|
u := {
|
||||||
|
paging := {
|
||||||
|
page_mode := ?,
|
||||||
|
persistence_levels_present := ?,
|
||||||
|
persistence_levels := *,
|
||||||
|
nln_present := ?,
|
||||||
|
nln := *,
|
||||||
|
repeated_pageinfo_present := ?,
|
||||||
|
repeated_pageinfo := *
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
template RlcmacDlBlock tr_RLCMAC_DATA_RRBP := {
|
||||||
|
data := {
|
||||||
|
mac_hdr := {
|
||||||
|
mac_hdr := {
|
||||||
|
payload_type := MAC_PT_RLC_DATA,
|
||||||
|
rrbp := ?,
|
||||||
|
rrbp_valid := true,
|
||||||
|
usf := ?
|
||||||
|
},
|
||||||
|
hdr_ext := ?
|
||||||
|
},
|
||||||
|
blocks := ?
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
template RlcmacDlBlock tr_RLCMAC_DATA_EGPRS := {
|
||||||
|
data_egprs := {
|
||||||
|
mac_hdr := ?,
|
||||||
|
fbi := ?,
|
||||||
|
e := ?,
|
||||||
|
blocks := ?
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Template for Uplink MAC Control Header */
|
||||||
|
template UlMacCtrlHeader t_RLCMAC_UlMacCtrlH(template MacPayloadType pt, template boolean retry := false) := {
|
||||||
|
payload_type := pt,
|
||||||
|
spare := '00000'B,
|
||||||
|
retry := retry
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Template for Uplink Control ACK */
|
||||||
|
template RlcmacUlBlock ts_RLCMAC_CTRL_ACK(GprsTlli tlli, CtrlAck ack := MS_RCVD_TWO_RLC_SAME_RTI_DIFF_RBSN) := {
|
||||||
|
ctrl := {
|
||||||
|
mac_hdr := t_RLCMAC_UlMacCtrlH(MAC_PT_RLCMAC_NO_OPT),
|
||||||
|
payload := {
|
||||||
|
msg_type := PACKET_CONTROL_ACK,
|
||||||
|
u := {
|
||||||
|
ctrl_ack := {
|
||||||
|
tlli := tlli,
|
||||||
|
ctrl_ack := ack
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Template for a LlcBlock (part of a LLC frame inside RlcMac?lDataBlock */
|
||||||
|
template LlcBlock t_RLCMAC_LLCBLOCK(octetstring data, boolean more := false, boolean e := true) := {
|
||||||
|
/* let encoder figure out the header */
|
||||||
|
hdr := omit,
|
||||||
|
payload := data
|
||||||
|
}
|
||||||
|
|
||||||
|
} with { encode "RAW"; variant "FIELDORDER(msb)" }
|
|
@ -31,16 +31,6 @@ module RLCMAC_Types {
|
||||||
RRBP_Nplus26_mod_2715648 ('11'B)
|
RRBP_Nplus26_mod_2715648 ('11'B)
|
||||||
} with { variant "FIELDLENGTH(2)" };
|
} with { variant "FIELDLENGTH(2)" };
|
||||||
|
|
||||||
function f_rrbp_fn_delay(MacRrbp rrbp) return uint32_t {
|
|
||||||
select (rrbp) {
|
|
||||||
case (RRBP_Nplus13_mod_2715648) { return 13; }
|
|
||||||
case (RRBP_Nplus17_or_18_mod_2715648) { return 17; }
|
|
||||||
case (RRBP_Nplus21_or_22_mod_2715648) { return 21; }
|
|
||||||
case (RRBP_Nplus26_mod_2715648) { return 26; }
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
type enumerated EgprsHeaderType {
|
type enumerated EgprsHeaderType {
|
||||||
RLCMAC_HDR_TYPE_1,
|
RLCMAC_HDR_TYPE_1,
|
||||||
RLCMAC_HDR_TYPE_2,
|
RLCMAC_HDR_TYPE_2,
|
||||||
|
@ -66,49 +56,6 @@ module RLCMAC_Types {
|
||||||
// MCS6_9 ?
|
// MCS6_9 ?
|
||||||
};
|
};
|
||||||
|
|
||||||
function f_rlcmac_cs_mcs2block_len(CodingScheme cs_mcs) return uint32_t {
|
|
||||||
select (cs_mcs) {
|
|
||||||
case (CS_1) { return 23; }
|
|
||||||
case (CS_2) { return 34; }
|
|
||||||
case (CS_3) { return 40; }
|
|
||||||
case (CS_4) { return 54; }
|
|
||||||
case (MCS_1) { return 27; }
|
|
||||||
case (MCS_2) { return 33; }
|
|
||||||
case (MCS_3) { return 42; }
|
|
||||||
case (MCS_4) { return 49; }
|
|
||||||
case (MCS_5) { return 61; }
|
|
||||||
case (MCS_6) { return 79; }
|
|
||||||
case (MCS_7) { return 119; }
|
|
||||||
case (MCS_8) { return 143; }
|
|
||||||
case (MCS_9) { return 155; }
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
function f_rlcmac_block_len2cs_mcs(uint32_t len) return CodingScheme {
|
|
||||||
select (len) {
|
|
||||||
case (23) { return CS_1; }
|
|
||||||
case (34) { return CS_2; }
|
|
||||||
case (40) { return CS_3; }
|
|
||||||
case (54) { return CS_4; }
|
|
||||||
case (27) { return MCS_1; }
|
|
||||||
case (33) { return MCS_2; }
|
|
||||||
case (42) { return MCS_3; }
|
|
||||||
case (49) { return MCS_4; }
|
|
||||||
case (60) { return MCS_5; }
|
|
||||||
case (61) { return MCS_5; }
|
|
||||||
case (78) { return MCS_6; }
|
|
||||||
case (79) { return MCS_6; }
|
|
||||||
case (118) { return MCS_7; }
|
|
||||||
case (119) { return MCS_7; }
|
|
||||||
case (142) { return MCS_8; }
|
|
||||||
case (143) { return MCS_8; }
|
|
||||||
case (154) { return MCS_9; }
|
|
||||||
case (155) { return MCS_9; }
|
|
||||||
}
|
|
||||||
return CS_1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Partof DL RLC data block and DL RLC/MAC ctrl block */
|
/* Partof DL RLC data block and DL RLC/MAC ctrl block */
|
||||||
type record DlMacHeader {
|
type record DlMacHeader {
|
||||||
MacPayloadType payload_type,
|
MacPayloadType payload_type,
|
||||||
|
@ -406,277 +353,6 @@ module RLCMAC_Types {
|
||||||
external function enc_RlcmacDlBlock(in RlcmacDlBlock si) return octetstring;
|
external function enc_RlcmacDlBlock(in RlcmacDlBlock si) return octetstring;
|
||||||
external function dec_RlcmacDlBlock(in octetstring stream) return RlcmacDlBlock;
|
external function dec_RlcmacDlBlock(in octetstring stream) return RlcmacDlBlock;
|
||||||
|
|
||||||
template (value) RlcmacUlBlock ts_RLC_UL_CTRL_ACK(RlcmacUlCtrlMsg ctrl,
|
|
||||||
MacPayloadType pt := MAC_PT_RLCMAC_NO_OPT,
|
|
||||||
boolean retry := false) := {
|
|
||||||
ctrl := {
|
|
||||||
mac_hdr := {
|
|
||||||
payload_type := pt,
|
|
||||||
spare := '00000'B,
|
|
||||||
retry := retry
|
|
||||||
},
|
|
||||||
payload := ctrl
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Send Template for Downlink ACK/NACK */
|
|
||||||
template RlcmacUlBlock ts_RLCMAC_DL_ACK_NACK(template uint5_t tfi, AckNackDescription andesc, boolean retry := false) := {
|
|
||||||
ctrl := {
|
|
||||||
mac_hdr := {
|
|
||||||
payload_type := MAC_PT_RLCMAC_NO_OPT,
|
|
||||||
spare := '00000'B,
|
|
||||||
retry := retry
|
|
||||||
},
|
|
||||||
payload := {
|
|
||||||
msg_type := PACKET_DL_ACK_NACK,
|
|
||||||
u := {
|
|
||||||
dl_ack_nack := {
|
|
||||||
dl_tfi := tfi,
|
|
||||||
ack_nack_desc := andesc,
|
|
||||||
chreq_desc_presence := '0'B,
|
|
||||||
chreq_desc := omit,
|
|
||||||
ch_qual_rep := c_ChQualRep_default
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Template for uplink Data block */
|
|
||||||
template RlcmacUlBlock t_RLCMAC_UL_DATA(template uint5_t tfi, template uint4_t cv, template uint7_t bsn,
|
|
||||||
template LlcBlocks blocks := {}, template boolean stall := false) := {
|
|
||||||
data := {
|
|
||||||
mac_hdr := {
|
|
||||||
payload_type := MAC_PT_RLC_DATA,
|
|
||||||
countdown := cv,
|
|
||||||
stall_ind := false,
|
|
||||||
retry := false,
|
|
||||||
spare := '0'B,
|
|
||||||
pfi_ind := false,
|
|
||||||
tfi := tfi,
|
|
||||||
tlli_ind := false,
|
|
||||||
bsn := bsn,
|
|
||||||
e := false
|
|
||||||
},
|
|
||||||
tlli := omit,
|
|
||||||
pfi := omit,
|
|
||||||
blocks := blocks
|
|
||||||
}
|
|
||||||
}
|
|
||||||
template RlcmacUlBlock t_RLCMAC_UL_DATA_TLLI(template uint5_t tfi, template uint4_t cv, template uint7_t bsn,
|
|
||||||
template LlcBlocks blocks := {}, template boolean stall := false, template GprsTlli tlli) := {
|
|
||||||
data := {
|
|
||||||
mac_hdr := {
|
|
||||||
payload_type := MAC_PT_RLC_DATA,
|
|
||||||
countdown := cv,
|
|
||||||
stall_ind := false,
|
|
||||||
retry := false,
|
|
||||||
spare := '0'B,
|
|
||||||
pfi_ind := false,
|
|
||||||
tfi := tfi,
|
|
||||||
tlli_ind := true,
|
|
||||||
bsn := bsn,
|
|
||||||
e := false
|
|
||||||
},
|
|
||||||
tlli := tlli,
|
|
||||||
pfi := omit,
|
|
||||||
blocks := blocks
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
template DlMacHeader t_RLCMAC_DlMacH(template MacPayloadType pt, template MacRrbp rrbp, template
|
|
||||||
uint3_t usf) := {
|
|
||||||
payload_type := pt,
|
|
||||||
rrbp := rrbp,
|
|
||||||
rrbp_valid := ispresent(rrbp),
|
|
||||||
usf := usf
|
|
||||||
}
|
|
||||||
|
|
||||||
template RlcmacDlBlock tr_RLCMAC_DUMMY_CTRL(template uint3_t usf := ?, template PageMode page_mode := ?) := {
|
|
||||||
ctrl := {
|
|
||||||
mac_hdr := {
|
|
||||||
payload_type := (MAC_PT_RLCMAC_NO_OPT, MAC_PT_RLCMAC_OPT),
|
|
||||||
rrbp:= ?,
|
|
||||||
rrbp_valid := ?,
|
|
||||||
usf := usf
|
|
||||||
},
|
|
||||||
opt := *,
|
|
||||||
payload := {
|
|
||||||
msg_type := PACKET_DL_DUMMY_CTRL,
|
|
||||||
u := {
|
|
||||||
dl_dummy := {
|
|
||||||
page_mode := page_mode,
|
|
||||||
persistence_levels_present := ?,
|
|
||||||
persistence_levels := *
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
template RlcmacDlBlock tr_RLCMAC_DL_PACKET_ASS(template uint3_t usf := ?) := {
|
|
||||||
ctrl := {
|
|
||||||
mac_hdr := {
|
|
||||||
payload_type := (MAC_PT_RLCMAC_NO_OPT, MAC_PT_RLCMAC_OPT),
|
|
||||||
rrbp:= ?,
|
|
||||||
rrbp_valid := ?,
|
|
||||||
usf := usf
|
|
||||||
},
|
|
||||||
opt := *,
|
|
||||||
payload := {
|
|
||||||
msg_type := PACKET_DL_ASSIGNMENT,
|
|
||||||
u := {
|
|
||||||
dl_assignment := {
|
|
||||||
page_mode := ?,
|
|
||||||
pres1 := ?,
|
|
||||||
persistence_levels := *,
|
|
||||||
tfi_or_tlli := ?
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
template RlcmacDlBlock tr_RLCMAC_UL_PACKET_ASS(template uint3_t usf := ?) := {
|
|
||||||
ctrl := {
|
|
||||||
mac_hdr := {
|
|
||||||
payload_type := (MAC_PT_RLCMAC_NO_OPT, MAC_PT_RLCMAC_OPT),
|
|
||||||
rrbp:= ?,
|
|
||||||
rrbp_valid := ?,
|
|
||||||
usf := usf
|
|
||||||
},
|
|
||||||
opt := *,
|
|
||||||
payload := {
|
|
||||||
msg_type := PACKET_UL_ASSIGNMENT,
|
|
||||||
u := {
|
|
||||||
ul_assignment := {
|
|
||||||
page_mode := ?,
|
|
||||||
persistence_levels_present := ?,
|
|
||||||
persistence_levels := *,
|
|
||||||
identity := ?,
|
|
||||||
is_egprs := ?, /* msg escape */
|
|
||||||
gprs := *
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* Receive Template for Uplink ACK/NACK */
|
|
||||||
template RlcmacDlBlock tr_RLCMAC_UL_ACK_NACK(template uint5_t ul_tfi, template GprsTlli tlli := ?) := {
|
|
||||||
ctrl := {
|
|
||||||
mac_hdr := {
|
|
||||||
payload_type := (MAC_PT_RLCMAC_NO_OPT, MAC_PT_RLCMAC_OPT),
|
|
||||||
rrbp:= ?,
|
|
||||||
rrbp_valid := ?,
|
|
||||||
usf := ?
|
|
||||||
},
|
|
||||||
opt := *,
|
|
||||||
payload := {
|
|
||||||
msg_type := PACKET_UL_ACK_NACK,
|
|
||||||
u := {
|
|
||||||
ul_ack_nack := {
|
|
||||||
page_mode := ?,
|
|
||||||
msg_excape := ?,
|
|
||||||
uplink_tfi := ul_tfi,
|
|
||||||
is_egprs := '0'B,
|
|
||||||
gprs := {
|
|
||||||
ch_coding_cmd := ?,
|
|
||||||
ack_nack_desc := ?,
|
|
||||||
cont_res_tlli_present := ?,
|
|
||||||
cont_res_tlli := tlli,
|
|
||||||
pkt_ta_present := ?,
|
|
||||||
pkt_ta := *,
|
|
||||||
pwr_ctrl_present := ?,
|
|
||||||
pwr_ctrl := *
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
template RlcmacDlBlock tr_RLCMAC_PACKET_PAG_REQ(template uint3_t usf := ?) := {
|
|
||||||
ctrl := {
|
|
||||||
mac_hdr := {
|
|
||||||
payload_type := MAC_PT_RLCMAC_NO_OPT,
|
|
||||||
rrbp:= ?,
|
|
||||||
rrbp_valid := ?,
|
|
||||||
usf := usf
|
|
||||||
},
|
|
||||||
opt := *,
|
|
||||||
payload := {
|
|
||||||
msg_type := PACKET_PAGING_REQUEST,
|
|
||||||
u := {
|
|
||||||
paging := {
|
|
||||||
page_mode := ?,
|
|
||||||
persistence_levels_present := ?,
|
|
||||||
persistence_levels := *,
|
|
||||||
nln_present := ?,
|
|
||||||
nln := *,
|
|
||||||
repeated_pageinfo_present := ?,
|
|
||||||
repeated_pageinfo := *
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
template RlcmacDlBlock tr_RLCMAC_DATA_RRBP := {
|
|
||||||
data := {
|
|
||||||
mac_hdr := {
|
|
||||||
mac_hdr := {
|
|
||||||
payload_type := MAC_PT_RLC_DATA,
|
|
||||||
rrbp := ?,
|
|
||||||
rrbp_valid := true,
|
|
||||||
usf := ?
|
|
||||||
},
|
|
||||||
hdr_ext := ?
|
|
||||||
},
|
|
||||||
blocks := ?
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
template RlcmacDlBlock tr_RLCMAC_DATA_EGPRS := {
|
|
||||||
data_egprs := {
|
|
||||||
mac_hdr := ?,
|
|
||||||
fbi := ?,
|
|
||||||
e := ?,
|
|
||||||
blocks := ?
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Template for Uplink MAC Control Header */
|
|
||||||
template UlMacCtrlHeader t_RLCMAC_UlMacCtrlH(template MacPayloadType pt, template boolean retry := false) := {
|
|
||||||
payload_type := pt,
|
|
||||||
spare := '00000'B,
|
|
||||||
retry := retry
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Template for Uplink Control ACK */
|
|
||||||
template RlcmacUlBlock ts_RLCMAC_CTRL_ACK(GprsTlli tlli, CtrlAck ack := MS_RCVD_TWO_RLC_SAME_RTI_DIFF_RBSN) := {
|
|
||||||
ctrl := {
|
|
||||||
mac_hdr := t_RLCMAC_UlMacCtrlH(MAC_PT_RLCMAC_NO_OPT),
|
|
||||||
payload := {
|
|
||||||
msg_type := PACKET_CONTROL_ACK,
|
|
||||||
u := {
|
|
||||||
ctrl_ack := {
|
|
||||||
tlli := tlli,
|
|
||||||
ctrl_ack := ack
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Template for a LlcBlock (part of a LLC frame inside RlcMac?lDataBlock */
|
|
||||||
template LlcBlock t_RLCMAC_LLCBLOCK(octetstring data, boolean more := false, boolean e := true) := {
|
|
||||||
/* let encoder figure out the header */
|
|
||||||
hdr := omit,
|
|
||||||
payload := data
|
|
||||||
}
|
|
||||||
|
|
||||||
/************************
|
/************************
|
||||||
* PTCCH/D (Packet Timing Advance Control Channel) message.
|
* PTCCH/D (Packet Timing Advance Control Channel) message.
|
||||||
* TODO: add a spec. reference to the message format definition.
|
* TODO: add a spec. reference to the message format definition.
|
||||||
|
|
|
@ -56,7 +56,7 @@ gen_links $DIR $FILES
|
||||||
DIR=../library
|
DIR=../library
|
||||||
FILES="Misc_Helpers.ttcn General_Types.ttcn GSM_Types.ttcn Osmocom_Types.ttcn Native_Functions.ttcn Native_FunctionDefs.cc "
|
FILES="Misc_Helpers.ttcn General_Types.ttcn GSM_Types.ttcn Osmocom_Types.ttcn Native_Functions.ttcn Native_FunctionDefs.cc "
|
||||||
FILES+="SGsAP_Templates.ttcn SGsAP_CodecPort.ttcn SGsAP_CodecPort_CtrlFunct.ttcn SGsAP_CodecPort_CtrlFunctDef.cc SGsAP_Emulation.ttcn DNS_Helpers.ttcn "
|
FILES+="SGsAP_Templates.ttcn SGsAP_CodecPort.ttcn SGsAP_CodecPort_CtrlFunct.ttcn SGsAP_CodecPort_CtrlFunctDef.cc SGsAP_Emulation.ttcn DNS_Helpers.ttcn "
|
||||||
FILES+="L3_Templates.ttcn RLCMAC_CSN1_Types.ttcn "
|
FILES+="L3_Templates.ttcn RLCMAC_CSN1_Templates.ttcn RLCMAC_CSN1_Types.ttcn "
|
||||||
FILES+="S1AP_CodecPort.ttcn S1AP_CodecPort_CtrlFunctDef.cc S1AP_CodecPort_CtrlFunct.ttcn S1AP_Emulation.ttcn "
|
FILES+="S1AP_CodecPort.ttcn S1AP_CodecPort_CtrlFunctDef.cc S1AP_CodecPort_CtrlFunct.ttcn S1AP_Emulation.ttcn "
|
||||||
FILES+="NAS_Templates.ttcn GTPv2_PrivateExtensions.ttcn GTPv2_Templates.ttcn "
|
FILES+="NAS_Templates.ttcn GTPv2_PrivateExtensions.ttcn GTPv2_Templates.ttcn "
|
||||||
FILES+="DIAMETER_Types.ttcn DIAMETER_CodecPort.ttcn DIAMETER_CodecPort_CtrlFunct.ttcn DIAMETER_CodecPort_CtrlFunctDef.cc DIAMETER_Emulation.ttcn DIAMETER_Templates.ttcn "
|
FILES+="DIAMETER_Types.ttcn DIAMETER_CodecPort.ttcn DIAMETER_CodecPort_CtrlFunct.ttcn DIAMETER_CodecPort_CtrlFunctDef.cc DIAMETER_Emulation.ttcn DIAMETER_Templates.ttcn "
|
||||||
|
|
|
@ -93,7 +93,7 @@ gen_links $DIR $FILES
|
||||||
DIR=../library
|
DIR=../library
|
||||||
FILES="Misc_Helpers.ttcn General_Types.ttcn GSM_Types.ttcn Osmocom_Types.ttcn MNCC_Types.ttcn MNCC_EncDec.cc MNCC_CodecPort.ttcn mncc.h MNCC_Emulation.ttcn Osmocom_VTY_Functions.ttcn Native_Functions.ttcn Native_FunctionDefs.cc "
|
FILES="Misc_Helpers.ttcn General_Types.ttcn GSM_Types.ttcn Osmocom_Types.ttcn MNCC_Types.ttcn MNCC_EncDec.cc MNCC_CodecPort.ttcn mncc.h MNCC_Emulation.ttcn Osmocom_VTY_Functions.ttcn Native_Functions.ttcn Native_FunctionDefs.cc "
|
||||||
FILES+="IPA_Types.ttcn IPA_Emulation.ttcnpp IPA_CodecPort.ttcn IPA_CodecPort_CtrlFunct.ttcn IPA_CodecPort_CtrlFunctDef.cc GSUP_Types.ttcn GSUP_Emulation.ttcn "
|
FILES+="IPA_Types.ttcn IPA_Emulation.ttcnpp IPA_CodecPort.ttcn IPA_CodecPort_CtrlFunct.ttcn IPA_CodecPort_CtrlFunctDef.cc GSUP_Types.ttcn GSUP_Emulation.ttcn "
|
||||||
FILES+="Osmocom_CTRL_Types.ttcn Osmocom_CTRL_Functions.ttcn Osmocom_CTRL_Adapter.ttcn L3_Templates.ttcn RLCMAC_CSN1_Types.ttcn L3_Common.ttcn "
|
FILES+="Osmocom_CTRL_Types.ttcn Osmocom_CTRL_Functions.ttcn Osmocom_CTRL_Adapter.ttcn L3_Templates.ttcn RLCMAC_CSN1_Templates.ttcn RLCMAC_CSN1_Types.ttcn L3_Common.ttcn "
|
||||||
FILES+="RAN_Emulation.ttcnpp BSSAP_CodecPort.ttcn BSSMAP_Templates.ttcn RAN_Adapter.ttcnpp MGCP_Types.ttcn MGCP_Templates.ttcn MGCP_CodecPort_CtrlFunct.ttcn MGCP_Emulation.ttcn "
|
FILES+="RAN_Emulation.ttcnpp BSSAP_CodecPort.ttcn BSSMAP_Templates.ttcn RAN_Adapter.ttcnpp MGCP_Types.ttcn MGCP_Templates.ttcn MGCP_CodecPort_CtrlFunct.ttcn MGCP_Emulation.ttcn "
|
||||||
FILES+="RTP_CodecPort.ttcn RTP_CodecPort_CtrlFunctDef.cc "
|
FILES+="RTP_CodecPort.ttcn RTP_CodecPort_CtrlFunctDef.cc "
|
||||||
FILES+="MGCP_CodecPort.ttcn MGCP_CodecPort_CtrlFunctDef.cc "
|
FILES+="MGCP_CodecPort.ttcn MGCP_CodecPort_CtrlFunctDef.cc "
|
||||||
|
|
|
@ -14,8 +14,9 @@ module GPRS_TBF {
|
||||||
import from GSM_Types all;
|
import from GSM_Types all;
|
||||||
import from Osmocom_Types all;
|
import from Osmocom_Types all;
|
||||||
import from General_Types all;
|
import from General_Types all;
|
||||||
import from RLCMAC_Types all;
|
|
||||||
import from RLCMAC_CSN1_Types all;
|
import from RLCMAC_CSN1_Types all;
|
||||||
|
import from RLCMAC_Types all;
|
||||||
|
import from RLCMAC_Templates all;
|
||||||
import from LLC_Types all;
|
import from LLC_Types all;
|
||||||
import from GPRS_Context all;
|
import from GPRS_Context all;
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,9 @@ import from TELNETasp_PortType all;
|
||||||
|
|
||||||
import from MobileL3_GMM_SM_Types all;
|
import from MobileL3_GMM_SM_Types all;
|
||||||
import from RLCMAC_CSN1_Types all;
|
import from RLCMAC_CSN1_Types all;
|
||||||
|
import from RLCMAC_CSN1_Templates all;
|
||||||
import from RLCMAC_Types all;
|
import from RLCMAC_Types all;
|
||||||
|
import from RLCMAC_Templates all;
|
||||||
|
|
||||||
import from MobileL3_CommonIE_Types all;
|
import from MobileL3_CommonIE_Types all;
|
||||||
import from L3_Templates all;
|
import from L3_Templates all;
|
||||||
|
|
|
@ -49,7 +49,7 @@ FILES="TELNETasp_PT.cc TELNETasp_PT.hh TELNETasp_PortType.ttcn"
|
||||||
gen_links $DIR $FILES
|
gen_links $DIR $FILES
|
||||||
|
|
||||||
DIR=../library
|
DIR=../library
|
||||||
FILES="Misc_Helpers.ttcn General_Types.ttcn Osmocom_VTY_Functions.ttcn Native_Functions.ttcn Native_FunctionDefs.cc GSM_Types.ttcn GSM_RR_Types.ttcn Osmocom_Types.ttcn RLCMAC_Types.ttcn RLCMAC_CSN1_Types.ttcn RLCMAC_EncDec.cc "
|
FILES="Misc_Helpers.ttcn General_Types.ttcn Osmocom_VTY_Functions.ttcn Native_Functions.ttcn Native_FunctionDefs.cc GSM_Types.ttcn GSM_RR_Types.ttcn Osmocom_Types.ttcn RLCMAC_Templates.ttcn RLCMAC_Types.ttcn RLCMAC_CSN1_Templates.ttcn RLCMAC_CSN1_Types.ttcn RLCMAC_EncDec.cc "
|
||||||
FILES+="NS_Emulation.ttcn NS_CodecPort.ttcn NS_CodecPort_CtrlFunct.ttcn NS_CodecPort_CtrlFunctDef.cc "
|
FILES+="NS_Emulation.ttcn NS_CodecPort.ttcn NS_CodecPort_CtrlFunct.ttcn NS_CodecPort_CtrlFunctDef.cc "
|
||||||
FILES+="BSSGP_Emulation.ttcn Osmocom_Gb_Types.ttcn "
|
FILES+="BSSGP_Emulation.ttcn Osmocom_Gb_Types.ttcn "
|
||||||
FILES+="LLC_Templates.ttcn L3_Templates.ttcn L3_Common.ttcn "
|
FILES+="LLC_Templates.ttcn L3_Templates.ttcn L3_Common.ttcn "
|
||||||
|
|
|
@ -39,7 +39,7 @@ FILES="MobileL3_CC_Types.ttcn MobileL3_CommonIE_Types.ttcn MobileL3_GMM_SM_Types
|
||||||
gen_links $DIR $FILES
|
gen_links $DIR $FILES
|
||||||
|
|
||||||
DIR=../library
|
DIR=../library
|
||||||
FILES="Misc_Helpers.ttcn General_Types.ttcn Osmocom_Types.ttcn GSM_Types.ttcn IPA_Types.ttcn IPA_CodecPort.ttcn IPA_CodecPort_CtrlFunct.ttcn IPA_CodecPort_CtrlFunctDef.cc IPA_Emulation.ttcnpp L3_Templates.ttcn BSSMAP_Templates.ttcn RLCMAC_CSN1_Types.ttcn GSM_RR_Types.ttcn RSL_Types.ttcn BSSAP_CodecPort.ttcn Osmocom_CTRL_Types.ttcn Osmocom_CTRL_Functions.ttcn GSUP_Types.ttcn"
|
FILES="Misc_Helpers.ttcn General_Types.ttcn Osmocom_Types.ttcn GSM_Types.ttcn IPA_Types.ttcn IPA_CodecPort.ttcn IPA_CodecPort_CtrlFunct.ttcn IPA_CodecPort_CtrlFunctDef.cc IPA_Emulation.ttcnpp L3_Templates.ttcn BSSMAP_Templates.ttcn RLCMAC_CSN1_Templates.ttcn RLCMAC_CSN1_Types.ttcn GSM_RR_Types.ttcn RSL_Types.ttcn BSSAP_CodecPort.ttcn Osmocom_CTRL_Types.ttcn Osmocom_CTRL_Functions.ttcn GSUP_Types.ttcn"
|
||||||
gen_links $DIR $FILES
|
gen_links $DIR $FILES
|
||||||
|
|
||||||
ignore_pp_results
|
ignore_pp_results
|
||||||
|
|
|
@ -83,7 +83,7 @@ FILES+="RANAP_Types.ttcn RANAP_Templates.ttcn RANAP_CodecPort.ttcn RANAP_EncDec.
|
||||||
gen_links $DIR $FILES
|
gen_links $DIR $FILES
|
||||||
|
|
||||||
DIR=../library
|
DIR=../library
|
||||||
FILES="Misc_Helpers.ttcn General_Types.ttcn GSM_Types.ttcn GSM_RR_Types.ttcn Osmocom_Types.ttcn RLCMAC_Types.ttcn RLCMAC_CSN1_Types.ttcn RLCMAC_EncDec.cc "
|
FILES="Misc_Helpers.ttcn General_Types.ttcn GSM_Types.ttcn GSM_RR_Types.ttcn Osmocom_Types.ttcn RLCMAC_Templates.ttcn RLCMAC_Types.ttcn RLCMAC_CSN1_Templates.ttcn RLCMAC_CSN1_Types.ttcn RLCMAC_EncDec.cc "
|
||||||
FILES+="NS_Emulation.ttcn NS_CodecPort.ttcn NS_CodecPort_CtrlFunct.ttcn NS_CodecPort_CtrlFunctDef.cc "
|
FILES+="NS_Emulation.ttcn NS_CodecPort.ttcn NS_CodecPort_CtrlFunct.ttcn NS_CodecPort_CtrlFunctDef.cc "
|
||||||
FILES+="BSSGP_Emulation.ttcn Osmocom_Gb_Types.ttcn "
|
FILES+="BSSGP_Emulation.ttcn Osmocom_Gb_Types.ttcn "
|
||||||
FILES+="Osmocom_CTRL_Types.ttcn Osmocom_CTRL_Functions.ttcn Osmocom_CTRL_Adapter.ttcn "
|
FILES+="Osmocom_CTRL_Types.ttcn Osmocom_CTRL_Functions.ttcn Osmocom_CTRL_Adapter.ttcn "
|
||||||
|
|
|
@ -25,7 +25,7 @@ FILES="TELNETasp_PT.cc TELNETasp_PT.hh TELNETasp_PortType.ttcn"
|
||||||
gen_links $DIR $FILES
|
gen_links $DIR $FILES
|
||||||
|
|
||||||
DIR=../library
|
DIR=../library
|
||||||
FILES="GSMTAP_PortType.ttcn GSMTAP_Types.ttcn GSM_SystemInformation.ttcn GSM_RR_Types.ttcn RLCMAC_CSN1_Types.ttcn GSM_Types.ttcn IPL4_GSMTAP_CtrlFunct.ttcn IPL4_GSMTAP_CtrlFunctDef.cc Osmocom_Types.ttcn Misc_Helpers.ttcn General_Types.ttcn Osmocom_VTY_Functions.ttcn"
|
FILES="GSMTAP_PortType.ttcn GSMTAP_Types.ttcn GSM_SystemInformation.ttcn GSM_RR_Types.ttcn RLCMAC_CSN1_Templates.ttcn RLCMAC_CSN1_Types.ttcn GSM_Types.ttcn IPL4_GSMTAP_CtrlFunct.ttcn IPL4_GSMTAP_CtrlFunctDef.cc Osmocom_Types.ttcn Misc_Helpers.ttcn General_Types.ttcn Osmocom_VTY_Functions.ttcn"
|
||||||
gen_links $DIR $FILES
|
gen_links $DIR $FILES
|
||||||
|
|
||||||
ignore_pp_results
|
ignore_pp_results
|
||||||
|
|
Loading…
Reference in New Issue