bts: Support passing PCUIF messages over IPA multiplex
Related: SYS#5303 Change-Id: I3cd0988cb654f1c5816d1c4717255a5e802d7925
This commit is contained in:
parent
52c5485462
commit
6924ef7199
|
@ -52,6 +52,8 @@ type component BSC_OML_CT {
|
||||||
/* Port for OML */
|
/* Port for OML */
|
||||||
port IPA_OML_PT OML;
|
port IPA_OML_PT OML;
|
||||||
var uint8_t g_bts_nr := 0;
|
var uint8_t g_bts_nr := 0;
|
||||||
|
/* Port for Abis/Osmo/PCU */
|
||||||
|
port IPA_OSMO_PCU_PT IPA_OSMO_PCU;
|
||||||
|
|
||||||
/* global test case guard timer */
|
/* global test case guard timer */
|
||||||
timer T_oml_guard := 60.0;
|
timer T_oml_guard := 60.0;
|
||||||
|
@ -97,6 +99,7 @@ function f_init_oml(charstring id) runs on BSC_OML_CT {
|
||||||
vc_IPA_OML := IPA_Emulation_CT.create(id & "-OML-IPA");
|
vc_IPA_OML := IPA_Emulation_CT.create(id & "-OML-IPA");
|
||||||
map(vc_IPA_OML:IPA_PORT, system:IPA_CODEC_PT);
|
map(vc_IPA_OML:IPA_PORT, system:IPA_CODEC_PT);
|
||||||
connect(vc_IPA_OML:IPA_OML_PORT, self:OML);
|
connect(vc_IPA_OML:IPA_OML_PORT, self:OML);
|
||||||
|
connect(vc_IPA_OML:IPA_OSMO_PCU_PORT, self:IPA_OSMO_PCU);
|
||||||
vc_IPA_OML.start(IPA_Emulation.main_server(mp_oml_ip, mp_oml_port));
|
vc_IPA_OML.start(IPA_Emulation.main_server(mp_oml_ip, mp_oml_port));
|
||||||
|
|
||||||
T_oml_guard.start;
|
T_oml_guard.start;
|
||||||
|
|
|
@ -2,6 +2,6 @@
|
||||||
|
|
||||||
FILES="*.ttcn *.ttcnpp IPA_CodecPort_CtrlFunctDef.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc UD_PT.cc RLCMAC_EncDec.cc Native_FunctionDefs.cc TRXC_CodecPort_CtrlFunctDef.cc L1CTL_PortType_CtrlFunctDef.cc TELNETasp_PT.cc"
|
FILES="*.ttcn *.ttcnpp IPA_CodecPort_CtrlFunctDef.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc UD_PT.cc RLCMAC_EncDec.cc Native_FunctionDefs.cc TRXC_CodecPort_CtrlFunctDef.cc L1CTL_PortType_CtrlFunctDef.cc TELNETasp_PT.cc"
|
||||||
|
|
||||||
export CPPFLAGS_TTCN3="-DIPA_EMULATION_RSL -DIPA_EMULATION_OML -DIPA_EMULATION_CTRL"
|
export CPPFLAGS_TTCN3="-DIPA_EMULATION_RSL -DIPA_EMULATION_OML -DIPA_EMULATION_CTRL -DIPA_EMULATION_OSMO_PCU"
|
||||||
|
|
||||||
../regen-makefile.sh BTS_Tests.ttcn $FILES
|
../regen-makefile.sh BTS_Tests.ttcn $FILES
|
||||||
|
|
|
@ -55,6 +55,10 @@ import from RSPRO_Types all;
|
||||||
import from Osmocom_CTRL_Types all;
|
import from Osmocom_CTRL_Types all;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef IPA_EMULATION_OSMO_PCU
|
||||||
|
import from PCUIF_Types all;
|
||||||
|
#endif
|
||||||
|
|
||||||
modulepar {
|
modulepar {
|
||||||
/* Use Osmocom extended IPA mux header */
|
/* Use Osmocom extended IPA mux header */
|
||||||
boolean mp_ipa_mgcp_uses_osmo_ext := true;
|
boolean mp_ipa_mgcp_uses_osmo_ext := true;
|
||||||
|
@ -190,6 +194,12 @@ type port IPA_RSPRO_PT message {
|
||||||
} with { extension "internal" }
|
} with { extension "internal" }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef IPA_EMULATION_OSMO_PCU
|
||||||
|
/* Client port for Osmocom PCU extension inside IPA */
|
||||||
|
type port IPA_OSMO_PCU_PT message {
|
||||||
|
inout PCUIF_Message, ASP_IPA_Event;
|
||||||
|
} with { extension "internal" }
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -224,6 +234,10 @@ type component IPA_Emulation_CT {
|
||||||
/* up-facing port for RSPRO */
|
/* up-facing port for RSPRO */
|
||||||
port IPA_RSPRO_PT IPA_RSPRO_PORT;
|
port IPA_RSPRO_PT IPA_RSPRO_PORT;
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef IPA_EMULATION_OSMO_PCU
|
||||||
|
/* up-facing port for RSPRO */
|
||||||
|
port IPA_OSMO_PCU_PT IPA_OSMO_PCU_PORT;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* up-facing port for other streams */
|
/* up-facing port for other streams */
|
||||||
port IPA_SP_PT IPA_SP_PORT;
|
port IPA_SP_PT IPA_SP_PORT;
|
||||||
|
@ -349,6 +363,11 @@ private function f_send_IPA_EVT(template (value) ASP_IPA_Event evt) runs on IPA_
|
||||||
if (IPA_RSPRO_PORT.checkstate("Connected")) {
|
if (IPA_RSPRO_PORT.checkstate("Connected")) {
|
||||||
IPA_RSPRO_PORT.send(evt);
|
IPA_RSPRO_PORT.send(evt);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
#ifdef IPA_EMULATION_OSMO_PCU
|
||||||
|
if (IPA_OSMO_PCU_PORT.checkstate("Connected")) {
|
||||||
|
IPA_OSMO_PCU_PORT.send(evt);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
/* FIXME: to other ports */
|
/* FIXME: to other ports */
|
||||||
}
|
}
|
||||||
|
@ -585,6 +604,13 @@ private function f_rspro_to_user(octetstring msg) runs on IPA_Emulation_CT {
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef IPA_EMULATION_OSMO_PCU
|
||||||
|
private function f_osmo_pcu_to_user(octetstring msg) runs on IPA_Emulation_CT {
|
||||||
|
var PCUIF_Message pcuif_msg := dec_PCUIF_Message(msg);
|
||||||
|
IPA_OSMO_PCU_PORT.send(pcuif_msg);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef IPA_EMULATION_MGCP
|
#ifdef IPA_EMULATION_MGCP
|
||||||
private function f_mgcp_to_user(octetstring msg) runs on IPA_Emulation_CT {
|
private function f_mgcp_to_user(octetstring msg) runs on IPA_Emulation_CT {
|
||||||
var charstring msg_ch := oct2char(msg);
|
var charstring msg_ch := oct2char(msg);
|
||||||
|
@ -657,6 +683,9 @@ private function ScanEvents() runs on IPA_Emulation_CT {
|
||||||
#ifdef IPA_EMULATION_RSPRO
|
#ifdef IPA_EMULATION_RSPRO
|
||||||
var RsproPDU rspro;
|
var RsproPDU rspro;
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef IPA_EMULATION_OSMO_PCU
|
||||||
|
var PCUIF_Message pcu;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Set function for dissecting the binary */
|
/* Set function for dissecting the binary */
|
||||||
var f_IPL4_getMsgLen vl_f := refers(f_IPL4_fixedMsgLen);
|
var f_IPL4_getMsgLen vl_f := refers(f_IPL4_fixedMsgLen);
|
||||||
|
@ -732,6 +761,11 @@ private function ScanEvents() runs on IPA_Emulation_CT {
|
||||||
case (IPAC_PROTO_EXT_RSPRO) {
|
case (IPAC_PROTO_EXT_RSPRO) {
|
||||||
f_rspro_to_user(ipa_rx.msg);
|
f_rspro_to_user(ipa_rx.msg);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
#ifdef IPA_EMULATION_OSMO_PCU
|
||||||
|
case (IPAC_PROTO_EXT_OSMO_PCU) {
|
||||||
|
f_osmo_pcu_to_user(ipa_rx.msg);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
case else {
|
case else {
|
||||||
IPA_SP_PORT.send(f_to_asp(ipa_rx));
|
IPA_SP_PORT.send(f_to_asp(ipa_rx));
|
||||||
|
@ -826,6 +860,14 @@ private function ScanEvents() runs on IPA_Emulation_CT {
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef IPA_EMULATION_OSMO_PCU
|
||||||
|
[] IPA_OSMO_PCU_PORT.receive(PCUIF_Message:?) -> value pcu {
|
||||||
|
payload := enc_PCUIF_Message(pcu);
|
||||||
|
ipa_ud := valueof(t_ASP_IPA_UD(IPAC_PROTO_OSMO, payload, IPAC_PROTO_EXT_OSMO_PCU));
|
||||||
|
IPA_PORT.send(f_from_asp(f_ipa_conn_id(), ipa_ud));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef IPA_EMULATION_RSL
|
#ifdef IPA_EMULATION_RSL
|
||||||
/* Received RSL -> down into IPA */
|
/* Received RSL -> down into IPA */
|
||||||
[] IPA_RSL_PORT.receive(ASP_RSL_Unitdata:?) -> value rsl {
|
[] IPA_RSL_PORT.receive(ASP_RSL_Unitdata:?) -> value rsl {
|
||||||
|
|
|
@ -35,7 +35,8 @@ type enumerated IpaExtStreamId {
|
||||||
IPAC_PROTO_EXT_ORC ('04'H),
|
IPAC_PROTO_EXT_ORC ('04'H),
|
||||||
IPAC_PROTO_EXT_GSUP ('05'H),
|
IPAC_PROTO_EXT_GSUP ('05'H),
|
||||||
IPAC_PROTO_EXT_OAP ('06'H),
|
IPAC_PROTO_EXT_OAP ('06'H),
|
||||||
IPAC_PROTO_EXT_RSPRO ('07'H)
|
IPAC_PROTO_EXT_RSPRO ('07'H),
|
||||||
|
IPAC_PROTO_EXT_OSMO_PCU ('08'H)
|
||||||
} with { variant "FIELDLENGTH(8)" }
|
} with { variant "FIELDLENGTH(8)" }
|
||||||
|
|
||||||
external function enc_PDU_IPA(in PDU_IPA pdu) return octetstring
|
external function enc_PDU_IPA(in PDU_IPA pdu) return octetstring
|
||||||
|
|
Loading…
Reference in New Issue