initial import of new IPA test port
This commit is contained in:
parent
f6dd64dd52
commit
00566f55f0
|
@ -0,0 +1,19 @@
|
|||
[LOGGING]
|
||||
#FileMask := LOG_ALL | TTCN_DEBUG | TTCN_MATCHING | DEBUG_ENCDEC;
|
||||
#ConsoleMask := ERROR | WARNING | TESTCASE | TTCN_MATCHING | DEBUG_ENCDEC
|
||||
FileMask := LOG_ALL | TTCN_MATCHING;
|
||||
|
||||
[TESTPORT_PARAMETERS]
|
||||
#*.*.udpReuseAddress := "yes";
|
||||
|
||||
[MODULE_PARAMETERS]
|
||||
#mp_local_port := 2727;
|
||||
#mp_local_ip:= "127.0.0.1";
|
||||
#mp_remote_port := 2427;
|
||||
#mp_remote_ip:= "127.0.0.1";
|
||||
|
||||
[MAIN_CONTROLLER]
|
||||
|
||||
[EXECUTE]
|
||||
#MGCP_Test.TC_selftest
|
||||
IPA_Test.TC_recv_dump
|
|
@ -0,0 +1,46 @@
|
|||
module IPA_Test {
|
||||
|
||||
import from IPA_CodecPort all;
|
||||
import from IPA_CodecPort_CtrlFunct all;
|
||||
import from IPL4asp_Types all;
|
||||
|
||||
type component ipa_CT {
|
||||
port IPA_CODEC_PT IPA;
|
||||
var boolean g_initialized := false;
|
||||
|
||||
var ConnectionId g_ipa_conn_id := -1;
|
||||
}
|
||||
|
||||
modulepar {
|
||||
PortNumber mp_local_port := 0;
|
||||
charstring mp_local_ip := "127.0.0.1";
|
||||
PortNumber mp_remote_port := 3002;
|
||||
charstring mp_remote_ip := "127.0.0.1";
|
||||
}
|
||||
|
||||
private function f_init() runs on ipa_CT {
|
||||
var Result res;
|
||||
|
||||
if (g_initialized == true) {
|
||||
return;
|
||||
}
|
||||
g_initialized := true;
|
||||
map(self:IPA, system:IPA_CODEC_PT);
|
||||
|
||||
res := IPA_CodecPort_CtrlFunct.f_IPL4_connect(IPA, mp_remote_ip, mp_remote_port,
|
||||
mp_local_ip, mp_local_port, 0, { tcp:={} });
|
||||
g_ipa_conn_id := res.connId;
|
||||
}
|
||||
|
||||
testcase TC_recv_dump() runs on ipa_CT {
|
||||
f_init();
|
||||
|
||||
while (true) {
|
||||
IPA.receive;
|
||||
}
|
||||
}
|
||||
|
||||
control {
|
||||
execute( TC_recv_dump() );
|
||||
}
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
#!/bin/sh
|
||||
|
||||
BASEDIR=~/projects/git
|
||||
|
||||
gen_links() {
|
||||
DIR=$1
|
||||
FILES=$*
|
||||
for f in $FILES; do
|
||||
echo "Linking $f"
|
||||
ln -sf $DIR/$f $f
|
||||
done
|
||||
}
|
||||
|
||||
#DIR=$BASEDIR/titan.TestPorts.UNIX_DOMAIN_SOCKETasp/src
|
||||
#FILES="UD_PT.cc UD_PT.hh UD_PortType.ttcn UD_Types.ttcn"
|
||||
#gen_links $DIR $FILES
|
||||
|
||||
DIR=$BASEDIR/titan.Libraries.TCCUsefulFunctions/src
|
||||
FILES="TCCInterface_Functions.ttcn TCCConversion_Functions.ttcn TCCConversion.cc TCCConversion.hh TCCInterface.cc TCCInterface_ip.h"
|
||||
gen_links $DIR $FILES
|
||||
|
||||
DIR=$BASEDIR/titan.TestPorts.Common_Components.Socket-API/src
|
||||
FILES="Socket_API_Definitions.ttcn"
|
||||
gen_links $DIR $FILES
|
||||
|
||||
DIR=$BASEDIR/titan.TestPorts.IPL4asp/src
|
||||
FILES="IPL4asp_Functions.ttcn IPL4asp_PT.cc IPL4asp_PT.hh IPL4asp_PortType.ttcn IPL4asp_Types.ttcn IPL4asp_discovery.cc IPL4asp_protocol_L234.hh"
|
||||
gen_links $DIR $FILES
|
||||
|
||||
DIR=../library
|
||||
FILES="Osmocom_Types.ttcn IPA_Types.ttcn IPA_CodecPort.ttcn IPA_CodecPort_CtrlFunct.ttcn IPA_CodecPort_CtrlFunctDef.cc"
|
||||
gen_links $DIR $FILES
|
|
@ -0,0 +1,11 @@
|
|||
#!/bin/sh
|
||||
|
||||
MAIN=IPA_Test.ttcn
|
||||
|
||||
FILES="*.ttcn IPA_CodecPort_CtrlFunctDef.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc"
|
||||
|
||||
ttcn3_makefilegen -l -f $MAIN $FILES
|
||||
sed -i -e 's/# TTCN3_DIR = /TTCN3_DIR = \/usr/' Makefile
|
||||
sed -i -e 's/LDFLAGS = /LDFLAGS = -L \/usr\/lib\/titan /' Makefile
|
||||
#sed -i -e 's/TTCN3_LIB = ttcn3-parallel/TTCN3_LIB = ttcn3/' Makefile
|
||||
sed -i -e 's/CPPFLAGS = -D$(PLATFORM) -I$(TTCN3_DIR)\/include/CPPFLAGS = -D$(PLATFORM) -I$(TTCN3_DIR)\/include -I\/usr\/include\/titan/' Makefile
|
|
@ -0,0 +1,44 @@
|
|||
module IPA_CodecPort {
|
||||
|
||||
import from IPL4asp_PortType all;
|
||||
import from IPL4asp_Types all;
|
||||
import from IPA_Types all;
|
||||
|
||||
type record IPA_RecvFrom {
|
||||
ConnectionId connId,
|
||||
IpaStreamId streamId,
|
||||
octetstring msg
|
||||
}
|
||||
|
||||
type record IPA_Send {
|
||||
ConnectionId connId,
|
||||
IpaStreamId streamId,
|
||||
octetstring msg
|
||||
}
|
||||
|
||||
private function IPL4_to_IPA_RecvFrom(in ASP_RecvFrom pin, out IPA_RecvFrom pout) {
|
||||
var PDU_IPA ipa := dec_PDU_IPA(pin.msg);
|
||||
pout.connId := pin.connId;
|
||||
pout.streamId := ipa.streamId
|
||||
pout.msg := ipa.payloadData;
|
||||
} with { extension "prototype(fast)" }
|
||||
|
||||
private function IPA_to_IPL4_Send(in IPA_Send pin, out ASP_Send pout) {
|
||||
var PDU_IPA ipa := { 0, pin.streamId, pin.msg };
|
||||
pout.connId := pin.connId;
|
||||
pout.proto := { tcp := {} };
|
||||
pout.msg := enc_PDU_IPA(ipa);
|
||||
} with { extension "prototype(fast)" }
|
||||
|
||||
type port IPA_CODEC_PT message {
|
||||
out IPA_Send;
|
||||
in IPA_RecvFrom,
|
||||
ASP_ConnId_ReadyToRelease,
|
||||
ASP_Event;
|
||||
} with { extension "user IPL4asp_PT
|
||||
out(IPA_Send -> ASP_Send:function(IPA_to_IPL4_Send))
|
||||
in(ASP_RecvFrom -> IPA_RecvFrom: function(IPL4_to_IPA_RecvFrom);
|
||||
ASP_ConnId_ReadyToRelease -> ASP_ConnId_ReadyToRelease: simple;
|
||||
ASP_Event -> ASP_Event: simple)"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
module IPA_CodecPort_CtrlFunct {
|
||||
|
||||
import from IPA_CodecPort all;
|
||||
import from IPL4asp_Types all;
|
||||
|
||||
external function f_IPL4_listen(
|
||||
inout IPA_CODEC_PT portRef,
|
||||
in HostName locName,
|
||||
in PortNumber locPort,
|
||||
in ProtoTuple proto,
|
||||
in OptionList options := {}
|
||||
) return Result;
|
||||
|
||||
external function f_IPL4_connect(
|
||||
inout IPA_CODEC_PT portRef,
|
||||
in HostName remName,
|
||||
in PortNumber remPort,
|
||||
in HostName locName,
|
||||
in PortNumber locPort,
|
||||
in ConnectionId connId,
|
||||
in ProtoTuple proto,
|
||||
in OptionList options := {}
|
||||
) return Result;
|
||||
|
||||
external function f_IPL4_close(
|
||||
inout IPA_CODEC_PT portRef,
|
||||
in ConnectionId id,
|
||||
in ProtoTuple proto := { unspecified := {} }
|
||||
) return Result;
|
||||
|
||||
external function f_IPL4_setUserData(
|
||||
inout IPA_CODEC_PT portRef,
|
||||
in ConnectionId id,
|
||||
in UserData userData
|
||||
) return Result;
|
||||
|
||||
external function f_IPL4_getUserData(
|
||||
inout IPA_CODEC_PT portRef,
|
||||
in ConnectionId id,
|
||||
out UserData userData
|
||||
) return Result;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
#include "IPL4asp_PortType.hh"
|
||||
#include "IPA_CodecPort.hh"
|
||||
#include "IPL4asp_PT.hh"
|
||||
|
||||
namespace IPA__CodecPort__CtrlFunct {
|
||||
|
||||
IPL4asp__Types::Result f__IPL4__listen(
|
||||
IPA__CodecPort::IPA__CODEC__PT& portRef,
|
||||
const IPL4asp__Types::HostName& locName,
|
||||
const IPL4asp__Types::PortNumber& locPort,
|
||||
const IPL4asp__Types::ProtoTuple& proto,
|
||||
const IPL4asp__Types::OptionList& options)
|
||||
{
|
||||
return f__IPL4__PROVIDER__listen(portRef, locName, locPort, proto, options);
|
||||
}
|
||||
|
||||
IPL4asp__Types::Result f__IPL4__connect(
|
||||
IPA__CodecPort::IPA__CODEC__PT& portRef,
|
||||
const IPL4asp__Types::HostName& remName,
|
||||
const IPL4asp__Types::PortNumber& remPort,
|
||||
const IPL4asp__Types::HostName& locName,
|
||||
const IPL4asp__Types::PortNumber& locPort,
|
||||
const IPL4asp__Types::ConnectionId& connId,
|
||||
const IPL4asp__Types::ProtoTuple& proto,
|
||||
const IPL4asp__Types::OptionList& options)
|
||||
{
|
||||
return f__IPL4__PROVIDER__connect(portRef, remName, remPort,
|
||||
locName, locPort, connId, proto, options);
|
||||
}
|
||||
|
||||
IPL4asp__Types::Result f__IPL4__close(
|
||||
IPA__CodecPort::IPA__CODEC__PT& portRef,
|
||||
const IPL4asp__Types::ConnectionId& connId,
|
||||
const IPL4asp__Types::ProtoTuple& proto)
|
||||
{
|
||||
return f__IPL4__PROVIDER__close(portRef, connId, proto);
|
||||
}
|
||||
|
||||
IPL4asp__Types::Result f__IPL4__setUserData(
|
||||
IPA__CodecPort::IPA__CODEC__PT& portRef,
|
||||
const IPL4asp__Types::ConnectionId& connId,
|
||||
const IPL4asp__Types::UserData& userData)
|
||||
{
|
||||
return f__IPL4__PROVIDER__setUserData(portRef, connId, userData);
|
||||
}
|
||||
|
||||
IPL4asp__Types::Result f__IPL4__getUserData(
|
||||
IPA__CodecPort::IPA__CODEC__PT& portRef,
|
||||
const IPL4asp__Types::ConnectionId& connId,
|
||||
IPL4asp__Types::UserData& userData)
|
||||
{
|
||||
return f__IPL4__PROVIDER__getUserData(portRef, connId, userData);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
/* (C) 2017 by Harald Welte <laforge@gnumonks.org> */
|
||||
|
||||
module IPA_Types {
|
||||
|
||||
import from Osmocom_Types all;
|
||||
|
||||
type uint8_t IpaStreamId;
|
||||
|
||||
external function enc_PDU_IPA(in PDU_IPA pdu) return octetstring
|
||||
with { extension "prototype(convert)"
|
||||
extension "encode(RAW)"
|
||||
}
|
||||
|
||||
external function dec_PDU_IPA(in octetstring stream) return PDU_IPA
|
||||
with { extension "prototype(convert)"
|
||||
extension "decode(RAW)"
|
||||
}
|
||||
|
||||
type record PDU_IPA
|
||||
{
|
||||
uint16_t lengthInd,
|
||||
IpaStreamId streamId,
|
||||
octetstring payloadData
|
||||
} with {
|
||||
variant (lengthInd) "LENGTHTO(lengthInd,streamId,payloadData)";
|
||||
variant (lengthInd) "FIELDLENGTH(16)";
|
||||
variant (lengthInd) "BYTEORDER(last)";
|
||||
encode "RAW";
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue