BSSAP_Adapter: Introduce transport over IPA/SCCPlite
In addition to the existing 3GPP AoIP stacking, allow BSSAP to run on top of a SCCPlite stacking. Implement both the server and the client role for IPA. Related: OS#2544 Change-Id: Ie844c4de62e0ef5d5c4c366185968211a7f6d676
This commit is contained in:
parent
6a50c7cae0
commit
7ef51aa2a2
|
@ -100,6 +100,7 @@ modulepar {
|
|||
charstring mp_test_ip := "127.0.0.1";
|
||||
|
||||
BSSAP_Configuration mp_bssap_cfg := {
|
||||
transport := BSSAP_TRANSPORT_AoIP,
|
||||
sccp_service_type := "mtp3_itu",
|
||||
sctp_addr := { 23905, "127.0.0.1", 2905, "127.0.0.1" },
|
||||
own_pc := 185,
|
||||
|
|
|
@ -4,6 +4,6 @@ MAIN=BSC_Tests.ttcn
|
|||
|
||||
FILES="*.ttcn *.ttcnpp IPA_CodecPort_CtrlFunctDef.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc SCTPasp_PT.cc RTP_EncDec.cc SDP_EncDec.cc RTP_CodecPort_CtrlFunctDef.cc MGCP_CodecPort_CtrlFunctDef.cc IuUP_EncDec.cc Native_FunctionDefs.cc TELNETasp_PT.cc *.c"
|
||||
|
||||
export CPPFLAGS_TTCN3="-DIPA_EMULATION_RSL -DIPA_EMULATION_MGCP -DUSE_MTP3_DISTRIBUTOR"
|
||||
export CPPFLAGS_TTCN3="-DIPA_EMULATION_RSL -DIPA_EMULATION_MGCP -DIPA_EMULATION_SCCP -DUSE_MTP3_DISTRIBUTOR"
|
||||
|
||||
../regen-makefile.sh $MAIN $FILES
|
||||
|
|
|
@ -13,6 +13,8 @@ import from M3UA_Emulation all;
|
|||
import from MTP3asp_Types all;
|
||||
import from MTP3asp_PortType all;
|
||||
|
||||
import from IPA_Emulation all;
|
||||
|
||||
import from SCCP_Types all;
|
||||
import from SCCPasp_Types all;
|
||||
import from SCCP_Emulation all;
|
||||
|
@ -26,7 +28,8 @@ import from BSSMAP_Emulation all;
|
|||
|
||||
type record BSSAP_Adapter {
|
||||
/* component references */
|
||||
M3UA_CT vc_M3UA,
|
||||
M3UA_CT vc_M3UA, /* only in 3GPP AoIP */
|
||||
IPA_Emulation_CT vc_IPA, /* only in SCCPliste */
|
||||
SCCP_CT vc_SCCP,
|
||||
|
||||
MSC_SCCP_MTP3_parameters sccp_pars,
|
||||
|
@ -37,7 +40,14 @@ type record BSSAP_Adapter {
|
|||
BSSMAP_Emulation_CT vc_BSSMAP
|
||||
}
|
||||
|
||||
type enumerated BSSAP_Transport {
|
||||
BSSAP_TRANSPORT_AoIP, /* 3GPP AoIP: SCCP over M3UA over SCTP */
|
||||
BSSAP_TRANSPORT_SCCPlite_SERVER, /* SCCPlite: SCCP over IPA over TCP */
|
||||
BSSAP_TRANSPORT_SCCPlite_CLIENT /* SCCPlite: SCCP over IPA over TCP */
|
||||
};
|
||||
|
||||
type record BSSAP_Configuration {
|
||||
BSSAP_Transport transport,
|
||||
charstring sccp_service_type,
|
||||
SCTP_Association_Address sctp_addr,
|
||||
integer own_pc,
|
||||
|
@ -87,18 +97,42 @@ function f_bssap_init(inout BSSAP_Adapter ba, in BSSAP_Configuration cfg, charst
|
|||
ops.sccp_addr_peer := ba.sccp_addr_peer;
|
||||
|
||||
/* create components */
|
||||
ba.vc_M3UA := M3UA_CT.create(id & "-M3UA");
|
||||
ba.vc_SCCP := SCCP_CT.create(id & "-SCCP");
|
||||
if (isvalue(ops)) {
|
||||
ba.vc_BSSMAP := BSSMAP_Emulation_CT.create(id & "-BSSMAP");
|
||||
}
|
||||
select (cfg.transport) {
|
||||
case (BSSAP_TRANSPORT_AoIP) {
|
||||
ba.vc_M3UA := M3UA_CT.create(id & "-M3UA");
|
||||
map(ba.vc_M3UA:SCTP_PORT, system:sctp);
|
||||
/* connect MTP3 service provider (M3UA) to lower side of SCCP */
|
||||
connect(ba.vc_M3UA:MTP3_SP_PORT, ba.vc_SCCP:MTP3_SCCP_PORT);
|
||||
ba.vc_M3UA.start(f_M3UA_Emulation(cfg.sctp_addr, cfg.rctx));
|
||||
}
|
||||
case (BSSAP_TRANSPORT_SCCPlite_SERVER) {
|
||||
ba.vc_IPA := IPA_Emulation_CT.create(id & "-IPA");
|
||||
map(ba.vc_IPA:IPA_PORT, system:IPA_CODEC_PT);
|
||||
/* connect MTP3 service provider (IPA) to lower side of SCCP */
|
||||
connect(ba.vc_IPA:MTP3_SP_PORT, ba.vc_SCCP:MTP3_SCCP_PORT);
|
||||
ba.vc_IPA.start(IPA_Emulation.main_server(cfg.sctp_addr.local_ip_addr,
|
||||
cfg.sctp_addr.local_sctp_port));
|
||||
}
|
||||
case (BSSAP_TRANSPORT_SCCPlite_CLIENT) {
|
||||
ba.vc_IPA := IPA_Emulation_CT.create(id & "-IPA");
|
||||
map(ba.vc_IPA:IPA_PORT, system:IPA_CODEC_PT);
|
||||
/* connect MTP3 service provider (IPA) to lower side of SCCP */
|
||||
connect(ba.vc_IPA:MTP3_SP_PORT, ba.vc_SCCP:MTP3_SCCP_PORT);
|
||||
ba.vc_IPA.start(IPA_Emulation.main_client(cfg.sctp_addr.remote_ip_addr,
|
||||
cfg.sctp_addr.remote_sctp_port,
|
||||
cfg.sctp_addr.local_ip_addr,
|
||||
cfg.sctp_addr.local_sctp_port));
|
||||
}
|
||||
case else {
|
||||
setverdict(fail, "Unsuppored BSSAP_Transport");
|
||||
self.stop;
|
||||
}
|
||||
}
|
||||
|
||||
map(ba.vc_M3UA:SCTP_PORT, system:sctp);
|
||||
|
||||
/* connect MTP3 service provider (M3UA) to lower side of SCCP */
|
||||
connect(ba.vc_M3UA:MTP3_SP_PORT, ba.vc_SCCP:MTP3_SCCP_PORT);
|
||||
|
||||
ba.vc_M3UA.start(f_M3UA_Emulation(cfg.sctp_addr, cfg.rctx));
|
||||
ba.vc_SCCP.start(SCCPStart(ba.sccp_pars));
|
||||
|
||||
if (isvalue(ops)) {
|
||||
|
|
|
@ -2,6 +2,6 @@
|
|||
|
||||
FILES="*.ttcn *.ttcnpp SCCP_EncDec.cc SCTPasp_PT.cc TCCConversion.cc TCCInterface.cc UD_PT.cc MNCC_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc SDP_EncDec.cc RTP_EncDec.cc IPA_CodecPort_CtrlFunctDef.cc RTP_CodecPort_CtrlFunctDef.cc MGCP_CodecPort_CtrlFunctDef.cc TELNETasp_PT.cc Native_FunctionDefs.cc SMPP_EncDec.cc SMPP_CodecPort_CtrlFunctDef.cc *.c"
|
||||
|
||||
export CPPFLAGS_TTCN3="-DIPA_EMULATION_MGCP -DIPA_EMULATION_GSUP -DUSE_MTP3_DISTRIBUTOR"
|
||||
export CPPFLAGS_TTCN3="-DIPA_EMULATION_MGCP -DIPA_EMULATION_GSUP -DIPA_EMULATION_SCCP -DUSE_MTP3_DISTRIBUTOR"
|
||||
|
||||
../regen-makefile.sh MSC_Tests.ttcn $FILES
|
||||
|
|
Loading…
Reference in New Issue