convert over to Titan3 ProtocolModules for IP + UDP
This avoids the need to carrry the 3GPP CommonIP.ttcn + Parameters.ttcnmaster
parent
94e4d90c38
commit
a5c6eaf8fb
|
@ -1,13 +1,20 @@
|
|||
testproject/IPL4asp_Functions.ttcn
|
||||
testproject/IPL4asp_PT.cc
|
||||
testproject/IPL4asp_PT.hh
|
||||
testproject/IPL4asp_PortType.ttcn
|
||||
testproject/IPL4asp_Types.ttcn
|
||||
testproject/IPL4asp_discovery.cc
|
||||
testproject/IPL4asp_protocol_L234.hh
|
||||
testproject/Socket_API_Definitions.ttcn
|
||||
testproject/TCCInterface_Functions.ttcn
|
||||
testproject/TCCConversion_Functions.ttcn
|
||||
testproject/TCCConversion.cc
|
||||
testproject/TCCInterface.cc
|
||||
testproject/TCCInterface_ip.h
|
||||
|
||||
testproject/UsefulTtcn3Types.ttcn
|
||||
testproject/XSD.ttcn
|
||||
testproject/http_www_netfilter_org_xml_libnetfilter_conntrack.ttcn
|
||||
|
||||
testproject/General_Types.ttcn
|
||||
|
||||
testproject/IP_EncDec.cc
|
||||
testproject/IP_Types.ttcn
|
||||
|
||||
testproject/UDP_EncDec.cc
|
||||
testproject/UDP_Types.ttcn
|
||||
|
||||
testproject/TCP_EncDec.cc
|
||||
testproject/TCP_Types.ttcn
|
||||
|
|
|
@ -1,445 +0,0 @@
|
|||
/******************************************************************************/
|
||||
// @copyright Copyright Notification
|
||||
// No part may be reproduced except as authorized by written permission.
|
||||
// The copyright and the foregoing restriction extend to reproduction in all media.
|
||||
// Trademark 2012, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC).
|
||||
// All rights reserved.
|
||||
// @version: 36.523-3v10.1.0
|
||||
// $Date: 2012-09-03 00:32:42 +0200 (Mon, 03 Sep 2012) $
|
||||
// $Rev: 7245 $
|
||||
/******************************************************************************/
|
||||
|
||||
module CommonIP {
|
||||
|
||||
import from CommonDefs all;
|
||||
import from Parameters all;
|
||||
|
||||
const UInt8_Type tsc_IP_Protocol_ICMP := 1; /* @status APPROVED */
|
||||
|
||||
const UInt8_Type tsc_IP_Protocol_UDP := 17; /* @status APPROVED */
|
||||
|
||||
const UInt8_Type tsc_ICMP_Type_EchoReply := 0; /* @status APPROVED */
|
||||
|
||||
const UInt8_Type tsc_IP_Protocol_TCP := 6; /* @status APPROVED */
|
||||
|
||||
const UInt8_Type tsc_IP_Protocol_IPSec := 50; /* @status APPROVED */
|
||||
|
||||
const integer tsc_IMS_PortNumber_5060 := 5060; /* @status APPROVED */
|
||||
|
||||
const octetstring tsc_IP_AnyData := '00112233445566778899AABBCCDDEEFF'O; /* @status APPROVED */
|
||||
|
||||
function fl_LoopbackModeB_IPv4IPv6Address(boolean p_UseIPv4,
|
||||
charstring p_IPv4Addr,
|
||||
charstring p_IPv6Addr) return charstring
|
||||
{
|
||||
if (p_UseIPv4) { return p_IPv4Addr; }
|
||||
else { return p_IPv6Addr; }
|
||||
}
|
||||
|
||||
function f_LoopbackModeB_IP_Address_UE(boolean p_UseIPv4 := pc_IPv4,
|
||||
PDN_Index_Type p_PdnIndex := PDN_1) return charstring
|
||||
{
|
||||
var charstring v_IPAddr := "";
|
||||
select (p_PdnIndex) {
|
||||
case (PDN_1) { v_IPAddr := fl_LoopbackModeB_IPv4IPv6Address(p_UseIPv4, px_IPv4_Address1_UE, px_IPv6_Address1_UE); }
|
||||
case (PDN_2) { v_IPAddr := fl_LoopbackModeB_IPv4IPv6Address(p_UseIPv4, px_IPv4_Address2_UE, px_IPv6_Address2_UE); }
|
||||
}
|
||||
return v_IPAddr;
|
||||
}
|
||||
|
||||
function f_LoopbackModeB_IP_Address_NW(boolean p_UseIPv4 := pc_IPv4,
|
||||
PDN_Index_Type p_PdnIndex := PDN_1) return charstring
|
||||
{
|
||||
var charstring v_IPAddr := "";
|
||||
select (p_PdnIndex) {
|
||||
case (PDN_1) { v_IPAddr := fl_LoopbackModeB_IPv4IPv6Address(p_UseIPv4, px_IPv4_Address1_NW, px_IPv6_Address1_NW); }
|
||||
case (PDN_2) { v_IPAddr := fl_LoopbackModeB_IPv4IPv6Address(p_UseIPv4, px_IPv4_Address2_NW, px_IPv6_Address2_NW); }
|
||||
}
|
||||
return v_IPAddr;
|
||||
}
|
||||
|
||||
function f_IpAddressIsIPv4(charstring p_IpAddress) return boolean
|
||||
{
|
||||
var template charstring v_Pattern := pattern "[0-9]+[.][0-9]+[.][0-9]+[.][0-9]+";
|
||||
return match(p_IpAddress, v_Pattern);
|
||||
};
|
||||
|
||||
function f_IpAddressIsIPv6(charstring p_IpAddress) return boolean
|
||||
{
|
||||
var Char1List_Type v_SplitCharList := {":"};
|
||||
var CharStringList_Type v_FieldList := f_StringSplit(p_IpAddress, v_SplitCharList);
|
||||
var integer v_FieldCnt := lengthof(v_FieldList);
|
||||
var charstring v_Field;
|
||||
var charstring v_Pattern;
|
||||
var integer v_FieldLength;
|
||||
var integer i;
|
||||
|
||||
if ((v_FieldCnt == 1) or (v_FieldCnt > 8)) { return false; }
|
||||
|
||||
for (i:=0; i<v_FieldCnt; i:=i+1) {
|
||||
v_Field := v_FieldList[i];
|
||||
v_FieldLength := lengthof(v_Field);
|
||||
v_Pattern := "[0-9a-f]#(" & int2str(v_FieldLength) & ")";
|
||||
|
||||
if (v_FieldLength > 4) { return false; }
|
||||
if (not match(v_Field, pattern v_Pattern)) { return false; }
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function f_Convert_IPv4Addr2OctString(charstring p_IPv4AddrChar) return O4_Type
|
||||
{
|
||||
var Char1List_Type v_SplitCharList := {"."};
|
||||
var CharStringList_Type v_FieldList := f_StringSplit(p_IPv4AddrChar, v_SplitCharList);
|
||||
var octetstring v_IPv4AddrOct := ''O;
|
||||
var integer v_FieldCnt := lengthof(v_FieldList);
|
||||
var integer v_IntVal;
|
||||
var integer i;
|
||||
|
||||
if (v_FieldCnt != 4) {
|
||||
FatalError(__FILE__, __LINE__, "invalid IP Address");
|
||||
}
|
||||
for (i:=0; i<v_FieldCnt; i:=i+1) {
|
||||
v_IntVal := str2int(v_FieldList[i]);
|
||||
v_IPv4AddrOct := v_IPv4AddrOct & int2oct(v_IntVal, 1);
|
||||
}
|
||||
return v_IPv4AddrOct;
|
||||
}
|
||||
|
||||
function f_Convert_IPv6Addr2OctString(charstring p_IPv6AddrChar) return O16_Type
|
||||
{
|
||||
var Char1List_Type v_SplitCharList := {":"};
|
||||
var CharStringList_Type v_FieldList := f_StringSplit(p_IPv6AddrChar, v_SplitCharList);
|
||||
var octetstring v_IPv6AddrOct := ''O;
|
||||
var integer v_FieldCnt := lengthof(v_FieldList);
|
||||
var boolean v_EmptyBlocksExpanded := false; /* set to true when "::" has been expanded => subsequent empty fields will just be replaced by '0000' */
|
||||
var charstring v_Field;
|
||||
var integer v_NoOfEmptyBlocks;
|
||||
var integer i;
|
||||
var integer k;
|
||||
|
||||
if (v_FieldCnt > 8) {
|
||||
FatalError(__FILE__, __LINE__, "invalid IP Address");
|
||||
}
|
||||
for (i:=0; i<v_FieldCnt; i:=i+1) {
|
||||
v_Field := v_FieldList[i];
|
||||
select (lengthof(v_Field)) {
|
||||
case (0) { // empty block
|
||||
if (not v_EmptyBlocksExpanded) { /* e.g. for "2001:0ba0::" we have two empty blocks at the end of the address but only one of them shall be expanded; @sic R5s110645 change 5 sic@ */
|
||||
v_EmptyBlocksExpanded := true;
|
||||
v_NoOfEmptyBlocks := 8 - (v_FieldCnt - 1); /* "-1" because one empty block is already contained in v_FieldCnt */
|
||||
for (k:=0; k < v_NoOfEmptyBlocks; k:=k+1) {
|
||||
v_IPv6AddrOct := v_IPv6AddrOct & '0000'O;
|
||||
}
|
||||
} else { /* "::" has already been expanded */
|
||||
v_IPv6AddrOct := v_IPv6AddrOct & '0000'O;
|
||||
}
|
||||
}
|
||||
case (1) {
|
||||
v_IPv6AddrOct := v_IPv6AddrOct & str2oct("000" & v_Field);
|
||||
}
|
||||
case (2) {
|
||||
v_IPv6AddrOct := v_IPv6AddrOct & str2oct("00" & v_Field);
|
||||
}
|
||||
case (3) {
|
||||
v_IPv6AddrOct := v_IPv6AddrOct & str2oct("0" & v_Field);
|
||||
}
|
||||
case (4) {
|
||||
v_IPv6AddrOct := v_IPv6AddrOct & str2oct(v_Field);
|
||||
|
||||
}
|
||||
case else {
|
||||
FatalError(__FILE__, __LINE__, "invalid IP Address");
|
||||
}
|
||||
}
|
||||
}
|
||||
return v_IPv6AddrOct;
|
||||
}
|
||||
|
||||
function f_Convert_OctString2IPv6Addr(O16_Type p_IPv6AddrOct) return charstring
|
||||
{ /* @sic R5s110603 change 2 sic@ */
|
||||
var charstring v_IPv6Addr := "";
|
||||
var integer v_AddrLength := lengthof(p_IPv6AddrOct);
|
||||
var integer i := 0;
|
||||
|
||||
while (i < v_AddrLength) {
|
||||
v_IPv6Addr := v_IPv6Addr & oct2str(substr(p_IPv6AddrOct, i, 2));
|
||||
i:=i+2;
|
||||
if (i < v_AddrLength) {
|
||||
v_IPv6Addr := v_IPv6Addr & ":";
|
||||
}
|
||||
}
|
||||
return v_IPv6Addr;
|
||||
}
|
||||
|
||||
function f_IpChecksum(octetstring p_OctetString) return O2_Type
|
||||
{ /* calculate header checksum; within the given octetstring the header checksum shall be set to '0000'O */
|
||||
var integer i;
|
||||
var octetstring v_Word;
|
||||
var integer v_DataLength := lengthof(p_OctetString);
|
||||
var integer v_Sum := 0;
|
||||
|
||||
if (v_DataLength mod 2 != 0) {
|
||||
p_OctetString := p_OctetString & '00'O;
|
||||
}
|
||||
|
||||
// accumulate all words of the IP header
|
||||
for (i:=0; i < v_DataLength; i := i+2) {
|
||||
v_Word := p_OctetString[i] & p_OctetString[i+1];
|
||||
v_Sum := v_Sum + oct2int(v_Word);
|
||||
}
|
||||
// deal with the
|
||||
while (v_Sum > tsc_UInt16Max) {
|
||||
v_Sum := (v_Sum mod (tsc_UInt16Max+1)) + (v_Sum / (tsc_UInt16Max+1));
|
||||
}
|
||||
// get complement
|
||||
v_Sum := tsc_UInt16Max - v_Sum;
|
||||
return int2oct(v_Sum, 2);
|
||||
}
|
||||
|
||||
function f_IPv4Packet_Create(O2_Type p_Identification := '6d7d'O, // Identification; random value (can be used to generate different packets
|
||||
O1_Type p_TOS := '00'O, // Differentiated services (RFC 2474), Explicit Congestion Notification (ECN, RFC 3168), former TOS (RFC 791)
|
||||
UInt8_Type p_Protocol,
|
||||
charstring p_SourceAddr,
|
||||
charstring p_DestAddr,
|
||||
octetstring p_IPPayload)
|
||||
return octetstring
|
||||
{
|
||||
var integer v_TotalLength := lengthof(p_IPPayload) + 20; // 20 bytes IP header
|
||||
var O4_Type v_SourceAddrStr := f_Convert_IPv4Addr2OctString(p_SourceAddr);
|
||||
var O4_Type v_DestAddrStr := f_Convert_IPv4Addr2OctString(p_DestAddr);
|
||||
var octetstring v_OctetString;
|
||||
|
||||
// IP header
|
||||
v_OctetString := '45'O; // version and header length
|
||||
v_OctetString := v_OctetString & p_TOS;
|
||||
v_OctetString := v_OctetString & int2oct(v_TotalLength, 2);
|
||||
v_OctetString := v_OctetString & p_Identification;
|
||||
v_OctetString := v_OctetString & '0000'O; // flags (3 bits; typically 0 for UDP) and fragment offset (13 bits; typically 0 for UDP)
|
||||
v_OctetString := v_OctetString & '80'O; // Time to live (random value)
|
||||
v_OctetString := v_OctetString & int2oct(p_Protocol, 1);
|
||||
v_OctetString := v_OctetString & f_IpChecksum(v_OctetString & '0000'O & v_SourceAddrStr & v_DestAddrStr);
|
||||
v_OctetString := v_OctetString & v_SourceAddrStr;
|
||||
v_OctetString := v_OctetString & v_DestAddrStr;
|
||||
v_OctetString := v_OctetString & p_IPPayload;
|
||||
|
||||
return v_OctetString;
|
||||
}
|
||||
|
||||
function f_IPv6Packet_Create(O1_Type p_TrafficClass := '00'O,
|
||||
UInt20_Type p_FlowLabel := 0,
|
||||
UInt8_Type p_Protocol,
|
||||
charstring p_SourceAddr,
|
||||
charstring p_DestAddr,
|
||||
octetstring p_IPPayload)
|
||||
return octetstring
|
||||
{
|
||||
var hexstring v_Version := '6'H;
|
||||
var hexstring v_TrafficClass := oct2hex (p_TrafficClass);
|
||||
var hexstring v_FlowLabel := int2hex (p_FlowLabel, 5);
|
||||
var O16_Type v_SourceAddrStr := f_Convert_IPv6Addr2OctString(p_SourceAddr);
|
||||
var O16_Type v_DestAddrStr := f_Convert_IPv6Addr2OctString(p_DestAddr);
|
||||
var octetstring v_OctetString;
|
||||
|
||||
// IP header
|
||||
v_OctetString := hex2oct(v_Version & v_TrafficClass & v_FlowLabel); // Version, Traffic Class and Flow Label to be revised
|
||||
v_OctetString := v_OctetString & int2oct (lengthof(p_IPPayload), 2); // Payload Length
|
||||
v_OctetString := v_OctetString & int2oct(p_Protocol, 1); // Next header
|
||||
v_OctetString := v_OctetString & '40'O; // Hop Limit
|
||||
v_OctetString := v_OctetString & v_SourceAddrStr;
|
||||
v_OctetString := v_OctetString & v_DestAddrStr;
|
||||
v_OctetString := v_OctetString & p_IPPayload;
|
||||
return v_OctetString;
|
||||
}
|
||||
|
||||
function f_IPv4UdpDatagram_Create(charstring p_SourceAddr,
|
||||
charstring p_DestAddr,
|
||||
UInt16_Type p_SourcePort,
|
||||
UInt16_Type p_DestPort,
|
||||
octetstring p_UdpPayload)
|
||||
return octetstring
|
||||
{ /* @desc create UDP datagram */
|
||||
var integer v_UdpDatagramLength := lengthof(p_UdpPayload) + 8; // 8 bytes UDP header
|
||||
// Pseudo Header:
|
||||
var O4_Type v_SourceAddrStr := f_Convert_IPv4Addr2OctString(p_SourceAddr);
|
||||
var O4_Type v_DestAddrStr := f_Convert_IPv4Addr2OctString(p_DestAddr);
|
||||
var O2_Type v_LengthStr := int2oct(v_UdpDatagramLength, 2);
|
||||
var O1_Type v_Protocol := '11'O; // UDP
|
||||
var octetstring v_PseudoHeader := v_SourceAddrStr & v_DestAddrStr &'00'O & v_Protocol & v_LengthStr;
|
||||
var O2_Type v_ChecksumDummy := '0000'O;
|
||||
var octetstring v_OctetString := ''O;
|
||||
|
||||
v_OctetString := v_OctetString & int2oct(p_SourcePort, 2);
|
||||
v_OctetString := v_OctetString & int2oct(p_DestPort, 2);
|
||||
v_OctetString := v_OctetString & v_LengthStr;
|
||||
v_OctetString := v_OctetString & f_IpChecksum(v_PseudoHeader & v_OctetString & v_ChecksumDummy & p_UdpPayload); /* Note: the UDP checksum can also be '0000'O what means "no chcksum"; but that is not the usual case */
|
||||
v_OctetString := v_OctetString & p_UdpPayload;
|
||||
|
||||
return v_OctetString;
|
||||
}
|
||||
|
||||
function f_IPv6UdpDatagram_Create(charstring p_SourceAddr,
|
||||
charstring p_DestAddr,
|
||||
UInt16_Type p_SourcePort,
|
||||
UInt16_Type p_DestPort,
|
||||
octetstring p_UdpPayload)
|
||||
return octetstring
|
||||
{
|
||||
var integer v_UdpDatagramLength := lengthof(p_UdpPayload) + 8; // 8 bytes UDP header
|
||||
var O16_Type v_SourceAddrStr := f_Convert_IPv6Addr2OctString(p_SourceAddr);
|
||||
var O16_Type v_DestAddrStr := f_Convert_IPv6Addr2OctString(p_DestAddr);
|
||||
var O4_Type v_LengthStr := int2oct(v_UdpDatagramLength, 4); // RFC 2460 clause 8.1
|
||||
var octetstring v_PseudoHeader;
|
||||
var octetstring v_OctetString;
|
||||
|
||||
// Prepare the pseudo header, see RFC 2460 and illustration in Wikipedia
|
||||
v_PseudoHeader := v_SourceAddrStr & v_DestAddrStr & v_LengthStr;
|
||||
v_PseudoHeader := v_PseudoHeader & v_LengthStr; // UDP length
|
||||
v_PseudoHeader := v_PseudoHeader & '000000'O & '11'O; // Zeros and Next header (= Protocol)
|
||||
v_PseudoHeader := v_PseudoHeader & int2oct(p_SourcePort, 2) & int2oct(p_DestPort, 2) & int2oct(v_UdpDatagramLength, 2) & '0000'O;
|
||||
v_PseudoHeader := v_PseudoHeader & p_UdpPayload;
|
||||
|
||||
// Now set the UDP packet
|
||||
v_OctetString := int2oct(p_SourcePort, 2);
|
||||
v_OctetString := v_OctetString & int2oct(p_DestPort, 2);
|
||||
v_OctetString := v_OctetString & int2oct(v_UdpDatagramLength, 2);
|
||||
v_OctetString := v_OctetString & f_IpChecksum(v_PseudoHeader);
|
||||
v_OctetString := v_OctetString & p_UdpPayload;
|
||||
|
||||
return v_OctetString;
|
||||
}
|
||||
|
||||
function f_IPv4TcpDatagram_Create(charstring p_SourceAddr,
|
||||
charstring p_DestAddr,
|
||||
UInt16_Type p_SourcePort,
|
||||
UInt16_Type p_DestPort,
|
||||
octetstring p_TcpPayload)
|
||||
return octetstring
|
||||
{
|
||||
var integer v_TcpDatagramLength := lengthof(p_TcpPayload) + 20; // 20 bytes TCP header
|
||||
// Pseudo Header:
|
||||
var O4_Type v_SourceAddrStr := f_Convert_IPv4Addr2OctString(p_SourceAddr);
|
||||
var O4_Type v_DestAddrStr := f_Convert_IPv4Addr2OctString(p_DestAddr);
|
||||
var O2_Type v_LengthStr := int2oct(v_TcpDatagramLength, 2);
|
||||
var O1_Type v_Protocol := int2oct(tsc_IP_Protocol_TCP, 1);
|
||||
var octetstring v_PseudoHeader := v_SourceAddrStr & v_DestAddrStr &'00'O & v_Protocol & v_LengthStr;
|
||||
var O2_Type v_ChecksumDummy := '0000'O;
|
||||
var octetstring v_UrgPointer := '0000'O;
|
||||
var octetstring v_OctetString := ''O;
|
||||
|
||||
v_OctetString := v_OctetString & int2oct(p_SourcePort, 2);
|
||||
v_OctetString := v_OctetString & int2oct(p_DestPort, 2);
|
||||
v_OctetString := v_OctetString & int2oct(0, 4); // Sequence Number
|
||||
v_OctetString := v_OctetString & int2oct(0, 4); // Acknowledgment Number
|
||||
v_OctetString := v_OctetString & '5011'O; // 4bits HeaderLen/6bits Reserved/URG/ACK/PSH/RST/SYN/FIN
|
||||
v_OctetString := v_OctetString & int2oct(256, 4); // How to set the windows size?
|
||||
v_OctetString := v_OctetString & f_IpChecksum(v_PseudoHeader & v_OctetString & v_ChecksumDummy & v_UrgPointer & p_TcpPayload); /* Note: the TCP checksum can also be '0000'O what means "no chcksum"; but that is not the usual case */
|
||||
v_OctetString := v_OctetString & v_UrgPointer;
|
||||
v_OctetString := v_OctetString & p_TcpPayload;
|
||||
|
||||
return v_OctetString;
|
||||
}
|
||||
|
||||
function f_IPv6TcpDatagram_Create(charstring p_SourceAddr,
|
||||
charstring p_DestAddr,
|
||||
UInt16_Type p_SourcePort,
|
||||
UInt16_Type p_DestPort,
|
||||
octetstring p_TcpPayload)
|
||||
return octetstring
|
||||
{ /* @sic R5s110645 change 4: IPv6 address instead of IPv4 sic@ */
|
||||
var integer v_TcpDatagramLength := lengthof(p_TcpPayload) + 20; // 20 bytes TCP header
|
||||
// Pseudo Header:
|
||||
var O16_Type v_SourceAddrStr := f_Convert_IPv6Addr2OctString(p_SourceAddr);
|
||||
var O16_Type v_DestAddrStr := f_Convert_IPv6Addr2OctString(p_DestAddr);
|
||||
var O4_Type v_LengthStr := int2oct(v_TcpDatagramLength, 4); // 2460 clause 8.1
|
||||
var O1_Type v_Protocol := int2oct(tsc_IP_Protocol_TCP, 1);
|
||||
var octetstring v_PseudoHeader;
|
||||
var O2_Type v_ChecksumDummy := '0000'O;
|
||||
var octetstring v_UrgPointer := '0000'O;
|
||||
var octetstring v_OctetString := ''O;
|
||||
|
||||
// Prepare the pseudo header, see RFC 2460 and illustration in Wikipedia
|
||||
v_PseudoHeader := v_SourceAddrStr & v_DestAddrStr & v_LengthStr;
|
||||
v_PseudoHeader := v_PseudoHeader & '000000'O & v_Protocol; // Zeros and Next header (= Protocol)
|
||||
|
||||
v_OctetString := v_OctetString & int2oct(p_SourcePort, 2);
|
||||
v_OctetString := v_OctetString & int2oct(p_DestPort, 2);
|
||||
v_OctetString := v_OctetString & int2oct(0, 4); // Sequence Number
|
||||
v_OctetString := v_OctetString & int2oct(0, 4); // Acknowledgment Number
|
||||
v_OctetString := v_OctetString & '5011'O; // 4bits HeaderLen/6bits Reserved/URG/ACK/PSH/RST/SYN/FIN
|
||||
v_OctetString := v_OctetString & int2oct(256, 4); // How to set the windows size?
|
||||
v_OctetString := v_OctetString & f_IpChecksum(v_PseudoHeader & v_OctetString & v_ChecksumDummy & v_UrgPointer & p_TcpPayload); /* Note: the TCP checksum can also be '0000'O what means "no chcksum"; but that is not the usual case */
|
||||
v_OctetString := v_OctetString & v_UrgPointer;
|
||||
v_OctetString := v_OctetString & p_TcpPayload;
|
||||
|
||||
return v_OctetString;
|
||||
}
|
||||
|
||||
function fl_IcmpDatagram_Create(UInt8_Type p_IcmpType,
|
||||
O2_Type p_SequenceNumber,
|
||||
octetstring p_Data)
|
||||
return octetstring
|
||||
{ /* @desc create ICMP datagram */
|
||||
var O2_Type v_ChecksumDummy := '0000'O;
|
||||
var O2_Type v_Id := '0001'O;
|
||||
var octetstring v_OctetString := ''O;
|
||||
|
||||
v_OctetString := v_OctetString & int2oct(p_IcmpType, 1); // Type
|
||||
v_OctetString := v_OctetString & '00'O; // Code
|
||||
v_OctetString := v_OctetString & f_IpChecksum(v_OctetString & v_ChecksumDummy & v_Id & p_Data);
|
||||
v_OctetString := v_OctetString & v_Id;
|
||||
v_OctetString := v_OctetString & p_SequenceNumber;
|
||||
v_OctetString := v_OctetString & p_Data;
|
||||
|
||||
return v_OctetString;
|
||||
}
|
||||
|
||||
function f_IcmpEchoReply(integer p_SequenceNumber) return octetstring
|
||||
{
|
||||
var O2_Type v_IcmpSequenceNumber := int2oct(p_SequenceNumber, 2);
|
||||
var octetstring v_IcmpPayload := ''O;
|
||||
var integer i;
|
||||
|
||||
for (i:=0; i<p_SequenceNumber; i:=i+1) {
|
||||
v_IcmpPayload := v_IcmpPayload & tsc_IP_AnyData;
|
||||
}
|
||||
return fl_IcmpDatagram_Create(tsc_ICMP_Type_EchoReply, v_IcmpSequenceNumber, v_IcmpPayload);
|
||||
}
|
||||
|
||||
function f_IPv4IPv6_IcmpEchoReply(charstring p_SourceAddr,
|
||||
charstring p_DestAddr := "",
|
||||
integer p_SequenceNumber := 1) return octetstring
|
||||
{
|
||||
var charstring v_DestAddr:= p_DestAddr;
|
||||
var octetstring v_Payload := f_IcmpEchoReply(p_SequenceNumber);
|
||||
var UInt8_Type v_Protocol := tsc_IP_Protocol_ICMP;
|
||||
var octetstring v_IpPacket;
|
||||
|
||||
if (v_DestAddr == "") { v_DestAddr := p_SourceAddr; }
|
||||
|
||||
if (f_IpAddressIsIPv4(p_SourceAddr)) {
|
||||
v_IpPacket := f_IPv4Packet_Create('10'O & int2oct(p_SequenceNumber, 1), -, v_Protocol, p_SourceAddr, p_DestAddr, v_Payload);
|
||||
} else {
|
||||
v_IpPacket := f_IPv6Packet_Create(-, -, v_Protocol, p_SourceAddr, v_DestAddr, v_Payload);
|
||||
}
|
||||
return v_IpPacket;
|
||||
}
|
||||
|
||||
function f_IPv4IPv6_AnyUdpPacket(charstring p_SourceAddr,
|
||||
charstring p_DestAddr,
|
||||
UInt16_Type p_SourcePort,
|
||||
UInt16_Type p_DestPort) return octetstring
|
||||
{
|
||||
var UInt8_Type v_Protocol := tsc_IP_Protocol_UDP;
|
||||
var octetstring v_Payload := tsc_IP_AnyData;
|
||||
var octetstring v_IpPacket;
|
||||
|
||||
if (f_IpAddressIsIPv4(p_SourceAddr)) {
|
||||
v_IpPacket := f_IPv4Packet_Create(-, -, v_Protocol, p_SourceAddr, p_DestAddr, f_IPv4UdpDatagram_Create(p_SourceAddr, p_DestAddr, p_SourcePort, p_DestPort, v_Payload));
|
||||
} else {
|
||||
v_IpPacket := f_IPv6Packet_Create(-, -, v_Protocol, p_SourceAddr, p_DestAddr, f_IPv6UdpDatagram_Create(p_SourceAddr, p_DestAddr, p_SourcePort, p_DestPort, v_Payload));
|
||||
}
|
||||
return v_IpPacket;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,8 +1,13 @@
|
|||
module IPL4_example {
|
||||
|
||||
import from CommonIP all;
|
||||
import from General_Types all;
|
||||
import from IP_Types all;
|
||||
import from UDP_Types all;
|
||||
import from CommonDefs all;
|
||||
|
||||
import from TunDevice_PortType all;
|
||||
import from TunDevice_Types all;
|
||||
|
||||
import from NetfilterConntrack_Functions all;
|
||||
import from http_www_netfilter_org_xml_libnetfilter_conntrack all;
|
||||
import from XSD all;
|
||||
|
@ -27,6 +32,9 @@ module IPL4_example {
|
|||
template (value) Tun_send tunmsg(octetstring p_data) := { msg := p_data };
|
||||
template (value) Tun_recv tunrcv(octetstring p_data) := { msg := p_data };
|
||||
|
||||
const integer AF_INET := 2;
|
||||
const integer AF_INET6 := 23;
|
||||
|
||||
import from UsefulTtcn3Types all;
|
||||
|
||||
type enumerated nfct_direction { DIR_ORIG, DIR_REPLY };
|
||||
|
@ -48,15 +56,20 @@ module IPL4_example {
|
|||
}
|
||||
|
||||
/* generate a flow_info using pre-defined default addresses + * incremented port */
|
||||
private function flow_gen(integer port_delta, unsignedbyte l4_prot := tsc_IP_Protocol_UDP) return flow_info {
|
||||
private function flow_gen(integer port_delta, unsignedbyte l3_prot := 4, unsignedbyte l4_prot := c_ip_proto_udp) return flow_info {
|
||||
var flow_info flowi := {
|
||||
l3_protocol := 2,
|
||||
l3_protocol := c_ip_proto_ipv4,
|
||||
src_ip := "1.1.1.200",
|
||||
dst_ip := "2.2.2.200",
|
||||
l4_protocol := l4_prot,
|
||||
src_port := 1000 + port_delta,
|
||||
dst_port := 2000 + port_delta
|
||||
}
|
||||
if (l3_prot == 6) {
|
||||
flowi.l3_protocol := c_ip_proto_ipv6;
|
||||
flowi.src_ip := "";
|
||||
flowi.dst_ip := "";
|
||||
}
|
||||
return flowi
|
||||
}
|
||||
|
||||
|
@ -65,8 +78,196 @@ module IPL4_example {
|
|||
return float2int(r * (65535.0 - 2000.0));
|
||||
}
|
||||
|
||||
private function get_random_id() return unsignedshort {
|
||||
var float r := rnd();
|
||||
return float2int(r * 65535.0);
|
||||
}
|
||||
|
||||
template IPv4_header t_ipv4h_normal(LIN1 l4_proto, OCT4 saddr, OCT4 daddr) := {
|
||||
ver := c_ip_version_ipv4,
|
||||
hlen := 5,
|
||||
tos := 0,
|
||||
tlen := 0,
|
||||
id := get_random_id(),
|
||||
res := '0'B,
|
||||
dfrag := '0'B,
|
||||
mfrag := '0'B,
|
||||
foffset := 0,
|
||||
ttl := 128,
|
||||
proto := l4_proto,
|
||||
cksum := 0,
|
||||
srcaddr := saddr,
|
||||
dstaddr := daddr
|
||||
}
|
||||
|
||||
template IPv6_header t_ipv6h_normal(LIN1 l4_proto, OCT16 saddr, OCT16 daddr, NonNegativeInteger plen) := {
|
||||
ver := c_ip_version_ipv6,
|
||||
trclass := 0,
|
||||
flabel := 0,
|
||||
plen := plen,
|
||||
nexthead := l4_proto,
|
||||
hlim := 128,
|
||||
srcaddr := saddr,
|
||||
dstaddr := daddr
|
||||
}
|
||||
|
||||
/* generate a payload (L5+) */
|
||||
private function flow_gen_payload(flow_info flowi, pkt_info pkti) return octetstring {
|
||||
var integer random_offset := float2int(rnd()*256.0);
|
||||
return substr(tsc_RandomPRBS, random_offset, 232);
|
||||
}
|
||||
|
||||
/* generate a UDP pseudo-header */
|
||||
private function flow_gen_udp_pseudo_hdr4(flow_info flowi, pkt_info pkti, integer plen) return UDP_pseudo_header {
|
||||
var UDP_pseudo_header ret := {
|
||||
ipv4 := {
|
||||
zero := 0,
|
||||
proto := c_ip_proto_udp,
|
||||
plen := plen
|
||||
}
|
||||
};
|
||||
|
||||
if (pkti.direction == DIR_ORIG) {
|
||||
ret.ipv4.srcaddr := f_IPv4_addr_enc(flowi.src_ip);
|
||||
ret.ipv4.dstaddr := f_IPv4_addr_enc(flowi.dst_ip);
|
||||
} else {
|
||||
ret.ipv4.srcaddr := f_IPv4_addr_enc(flowi.dst_ip);
|
||||
ret.ipv4.dstaddr := f_IPv4_addr_enc(flowi.src_ip);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
private function flow_gen_udp_pseudo_hdr6(flow_info flowi, pkt_info pkti, integer plen) return UDP_pseudo_header {
|
||||
var UDP_pseudo_header ret := {
|
||||
ipv6 := {
|
||||
plen := plen,
|
||||
zero := 0,
|
||||
nextheader := c_ip_proto_udp
|
||||
}
|
||||
};
|
||||
|
||||
if (pkti.direction == DIR_ORIG) {
|
||||
ret.ipv6.srcaddr := f_IPv6_addr_enc(flowi.src_ip);
|
||||
ret.ipv6.dstaddr := f_IPv6_addr_enc(flowi.dst_ip);
|
||||
} else {
|
||||
ret.ipv6.srcaddr := f_IPv6_addr_enc(flowi.dst_ip);
|
||||
ret.ipv6.dstaddr := f_IPv6_addr_enc(flowi.src_ip);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
private function flow_gen_udp_pseudo_hdr(flow_info flowi, pkt_info pkti, integer plen) return UDP_pseudo_header {
|
||||
if (flowi.l3_protocol == c_ip_proto_ipv4) {
|
||||
return flow_gen_udp_pseudo_hdr4(flowi, pkti, plen);
|
||||
} else if (flowi.l3_protocol == c_ip_proto_ipv6) {
|
||||
return flow_gen_udp_pseudo_hdr6(flowi, pkti, plen);
|
||||
} else {
|
||||
testcase.stop("unknown/unsupported L3 Protocol");
|
||||
}
|
||||
}
|
||||
|
||||
/* generate a L4 packet according to flowi + pkti */
|
||||
private function flow_gen_l4_pkt(flow_info flowi, pkt_info pkti) return octetstring {
|
||||
var octetstring payload := flow_gen_payload(flowi, pkti);
|
||||
var octetstring data;
|
||||
var OCT2 csum;
|
||||
if (flowi.l4_protocol == c_ip_proto_udp) {
|
||||
var UDP_packet udp := {
|
||||
header := {
|
||||
len := lengthof(payload),
|
||||
cksum := 0
|
||||
},
|
||||
payload := payload
|
||||
};
|
||||
if (pkti.direction == DIR_ORIG) {
|
||||
udp.header.srcport := flowi.src_port;
|
||||
udp.header.dstport := flowi.dst_port;
|
||||
} else {
|
||||
udp.header.srcport := flowi.dst_port;
|
||||
udp.header.dstport := flowi.src_port;
|
||||
}
|
||||
data := f_UDP_enc(udp);
|
||||
csum := f_UDP_checksum(f_UDP_pseudo_header_enc(flow_gen_udp_pseudo_hdr(flowi, pkti, lengthof(data))) & data);
|
||||
data[6] := csum[0];
|
||||
data[7] := csum[1];
|
||||
} else {
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
/* generate an IPv4 packet according to flowi + pkti */
|
||||
function flow_gen_ipv4_pkt(flow_info flowi, pkt_info pkti) return octetstring {
|
||||
var octetstring data;
|
||||
var OCT2 csum;
|
||||
var charstring src_ip, dst_ip;
|
||||
|
||||
if (pkti.direction == DIR_ORIG) {
|
||||
src_ip := flowi.src_ip;
|
||||
dst_ip := flowi.dst_ip;
|
||||
} else {
|
||||
src_ip := flowi.dst_ip;
|
||||
dst_ip := flowi.src_ip;
|
||||
}
|
||||
|
||||
var IPv4_packet ip := {
|
||||
header := valueof(t_ipv4h_normal(flowi.l4_protocol,
|
||||
f_IPv4_addr_enc(src_ip),
|
||||
f_IPv4_addr_enc(dst_ip))),
|
||||
ext_headers := omit,
|
||||
payload := flow_gen_l4_pkt(flowi, pkti)
|
||||
}
|
||||
data := f_IPv4_enc(ip);
|
||||
csum := f_IPv4_checksum(data);
|
||||
data[10] := csum[0];
|
||||
data[11] := csum[1];
|
||||
return data;
|
||||
}
|
||||
|
||||
/* generate an IPv6 packet according to flowi + pkti */
|
||||
function flow_gen_ipv6_pkt(flow_info flowi, pkt_info pkti) return octetstring {
|
||||
var octetstring payload := flow_gen_l4_pkt(flowi, pkti);
|
||||
var octetstring data;
|
||||
var OCT2 csum;
|
||||
var charstring src_ip, dst_ip;
|
||||
|
||||
if (pkti.direction == DIR_ORIG) {
|
||||
src_ip := flowi.src_ip;
|
||||
dst_ip := flowi.dst_ip;
|
||||
} else {
|
||||
src_ip := flowi.dst_ip;
|
||||
dst_ip := flowi.src_ip;
|
||||
}
|
||||
|
||||
var IPv6_packet ip := {
|
||||
header := valueof(t_ipv6h_normal(flowi.l4_protocol, f_IPv4_addr_enc(src_ip), f_IPv4_addr_enc(dst_ip), lengthof(payload))),
|
||||
payload := payload
|
||||
}
|
||||
data := f_IPv6_enc(ip);
|
||||
csum := f_IPv4_checksum(data);
|
||||
data[10] := csum[0];
|
||||
data[11] := csum[1];
|
||||
return data;
|
||||
}
|
||||
|
||||
/* generate a packet according to the input flow + pkt information */
|
||||
function flow_gen_pkt(flow_info flowi, pkt_info pkti) return octetstring {
|
||||
var octetstring data;
|
||||
if (flowi.l3_protocol == c_ip_proto_ipv4) {
|
||||
data := flow_gen_ipv4_pkt(flowi, pkti);
|
||||
} else if (flowi.l3_protocol == c_ip_proto_ipv6) {
|
||||
data := flow_gen_ipv6_pkt(flowi, pkti);
|
||||
} else {
|
||||
data := ''O;
|
||||
}
|
||||
if (pkti.trunc_len > 0 and pkti.trunc_len < lengthof(data)) {
|
||||
data := substr(data, 0, pkti.trunc_len);
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
/* generate a packet according to the input flow + pkt information */
|
||||
/*
|
||||
function flow_gen_pkt_(flow_info flowi, pkt_info pkti) return octetstring {
|
||||
var octetstring ret;
|
||||
var unsignedshort src_port, dst_port;
|
||||
var charstring src_ip, dst_ip;
|
||||
|
@ -81,7 +282,7 @@ module IPL4_example {
|
|||
dst_ip := flowi.src_ip
|
||||
dst_port := flowi.src_port
|
||||
}
|
||||
if (flowi.l4_protocol == tsc_IP_Protocol_UDP) {
|
||||
if (flowi.l4_protocol == c_ip_proto_udp) {
|
||||
ret := f_IPv4IPv6_AnyUdpPacket(src_ip, dst_ip, src_port, dst_port);
|
||||
}
|
||||
if (pkti.trunc_len > 0 and pkti.trunc_len < lengthof(ret)) {
|
||||
|
@ -89,6 +290,7 @@ module IPL4_example {
|
|||
}
|
||||
return ret
|
||||
}
|
||||
*/
|
||||
|
||||
/* reverse the L3 portion */
|
||||
private function f_nfct_l3_reverse(template Layer3_type input) return template Layer3_type {
|
||||
|
@ -120,13 +322,23 @@ module IPL4_example {
|
|||
return output
|
||||
}
|
||||
|
||||
function f_proto_to_af(integer proto) return integer {
|
||||
if (proto == c_ip_proto_ipv4) {
|
||||
return AF_INET;
|
||||
} else if (proto == c_ip_proto_ipv6) {
|
||||
return AF_INET6;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* construct a template that can be used to match nf-conntrack XML */
|
||||
function f_nfct_templ_from_flow(flow_info flowi) return template Flow {
|
||||
/* construct original tuple from flow */
|
||||
var template Orig_repl_group orig := {
|
||||
layer3 := {
|
||||
protoname := *,
|
||||
protonum := int2str(flowi.l3_protocol),
|
||||
protonum := int2str(f_proto_to_af(flowi.l3_protocol)),
|
||||
src := flowi.src_ip,
|
||||
dst := flowi.dst_ip
|
||||
},
|
||||
|
@ -196,6 +408,7 @@ module IPL4_example {
|
|||
/* get nf_conntrack from kernel for given flow and match against template */
|
||||
function get_nfct_and_match(flow_info flowi, template Flow t_flow) return boolean {
|
||||
var Flow ct := f_get_conntrack(flowi);
|
||||
log("conntrack found: ", ct);
|
||||
var boolean ret := match(ct, t_flow);
|
||||
if (not ret) {
|
||||
setverdict(fail);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# This Makefile was generated by the Makefile Generator
|
||||
# of the TTCN-3 Test Executor version CRL 113 200/6 R2A
|
||||
# for Harald Welte (laforge@nataraja) on Thu Jul 6 23:53:14 2017
|
||||
# for Harald Welte (laforge@nataraja) on Fri Jul 7 19:19:20 2017
|
||||
|
||||
# Copyright (c) 2000-2017 Ericsson Telecom AB
|
||||
|
||||
|
@ -67,27 +67,27 @@ ARCHIVE_DIR = backup
|
|||
#
|
||||
|
||||
# TTCN-3 modules of this project:
|
||||
TTCN3_MODULES = IPL4_example.ttcn CommonDefs.ttcn CommonIP.ttcn NetfilterConntrack_Functions.ttcn Parameters.ttcn TunDevice_PortType.ttcn TunDevice_Types.ttcn UsefulTtcn3Types.ttcn XSD.ttcn http_www_netfilter_org_xml_libnetfilter_conntrack.ttcn
|
||||
TTCN3_MODULES = IPL4_example.ttcn CommonDefs.ttcn General_Types.ttcn IP_Types.ttcn NetfilterConntrack_Functions.ttcn TCCConversion_Functions.ttcn TCCInterface_Functions.ttcn TCP_Types.ttcn TunDevice_PortType.ttcn TunDevice_Types.ttcn UDP_Types.ttcn UsefulTtcn3Types.ttcn XSD.ttcn http_www_netfilter_org_xml_libnetfilter_conntrack.ttcn
|
||||
|
||||
# ASN.1 modules of this project:
|
||||
ASN1_MODULES =
|
||||
|
||||
# C++ source & header files generated from the TTCN-3 & ASN.1 modules of
|
||||
# this project:
|
||||
GENERATED_SOURCES = IPL4_example.cc CommonDefs.cc CommonIP.cc NetfilterConntrack_Functions.cc Parameters.cc TunDevice_PortType.cc TunDevice_Types.cc UsefulTtcn3Types.cc XSD.cc http_www_netfilter_org_xml_libnetfilter_conntrack.cc
|
||||
GENERATED_HEADERS = IPL4_example.hh CommonDefs.hh CommonIP.hh NetfilterConntrack_Functions.hh Parameters.hh TunDevice_PortType.hh TunDevice_Types.hh UsefulTtcn3Types.hh XSD.hh http_www_netfilter_org_xml_libnetfilter_conntrack.hh
|
||||
GENERATED_SOURCES = IPL4_example.cc CommonDefs.cc General_Types.cc IP_Types.cc NetfilterConntrack_Functions.cc TCCConversion_Functions.cc TCCInterface_Functions.cc TCP_Types.cc TunDevice_PortType.cc TunDevice_Types.cc UDP_Types.cc UsefulTtcn3Types.cc XSD.cc http_www_netfilter_org_xml_libnetfilter_conntrack.cc
|
||||
GENERATED_HEADERS = IPL4_example.hh CommonDefs.hh General_Types.hh IP_Types.hh NetfilterConntrack_Functions.hh TCCConversion_Functions.hh TCCInterface_Functions.hh TCP_Types.hh TunDevice_PortType.hh TunDevice_Types.hh UDP_Types.hh UsefulTtcn3Types.hh XSD.hh http_www_netfilter_org_xml_libnetfilter_conntrack.hh
|
||||
|
||||
# C/C++ Source & header files of Test Ports, external functions and
|
||||
# other modules:
|
||||
USER_SOURCES = NetfilterConntrack.cc TunDevice_PT.cc
|
||||
USER_SOURCES = IP_EncDec.cc NetfilterConntrack.cc TCCConversion.cc TCCInterface.cc TCP_EncDec.cc TunDevice_PT.cc UDP_EncDec.cc
|
||||
USER_HEADERS = TunDevice_PT.hh
|
||||
|
||||
# Object files of this project that are needed for the executable test suite:
|
||||
OBJECTS = $(GENERATED_OBJECTS) $(USER_OBJECTS)
|
||||
|
||||
GENERATED_OBJECTS = IPL4_example.o CommonDefs.o CommonIP.o NetfilterConntrack_Functions.o Parameters.o TunDevice_PortType.o TunDevice_Types.o UsefulTtcn3Types.o XSD.o http_www_netfilter_org_xml_libnetfilter_conntrack.o
|
||||
GENERATED_OBJECTS = IPL4_example.o CommonDefs.o General_Types.o IP_Types.o NetfilterConntrack_Functions.o TCCConversion_Functions.o TCCInterface_Functions.o TCP_Types.o TunDevice_PortType.o TunDevice_Types.o UDP_Types.o UsefulTtcn3Types.o XSD.o http_www_netfilter_org_xml_libnetfilter_conntrack.o
|
||||
|
||||
USER_OBJECTS = NetfilterConntrack.o TunDevice_PT.o
|
||||
USER_OBJECTS = IP_EncDec.o NetfilterConntrack.o TCCConversion.o TCCInterface.o TCP_EncDec.o TunDevice_PT.o UDP_EncDec.o
|
||||
|
||||
# Other files of the project (Makefile, configuration files, etc.)
|
||||
# that will be added to the archived source files:
|
||||
|
|
|
@ -1,723 +0,0 @@
|
|||
/******************************************************************************/
|
||||
// @copyright Copyright Notification
|
||||
// No part may be reproduced except as authorized by written permission.
|
||||
// The copyright and the foregoing restriction extend to reproduction in all media.
|
||||
// Trademark 2012, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC).
|
||||
// All rights reserved.
|
||||
// @version: 36.523-3v10.1.0
|
||||
/******************************************************************************/
|
||||
|
||||
/******************************************************************************/
|
||||
// AUTOMATICLLY GENERATED MODUEL - DO NOT MODIFY
|
||||
// $Date:
|
||||
// $Author:
|
||||
// $Rev:
|
||||
/******************************************************************************/
|
||||
|
||||
module Parameters {
|
||||
|
||||
import from CommonDefs all;
|
||||
//import from NAS_CommonTypeDefs all;
|
||||
|
||||
//****************************************************************************
|
||||
// PIXIT Parameters
|
||||
//----------------------------------------------------------------------------
|
||||
modulepar octetstring px_AccessPointName; // @desc Access Point Name
|
||||
|
||||
modulepar EUTRA_ATTACH_TESTED_Type px_AttachTypeTested := EPS_ATTACH_ONLY; // @desc Attach Type to be tested, if UE supports both pc_Attach and pc_Combined_Attach
|
||||
// Supported values: EPS_ATTACH_ONLY, COMBINED_ATTACH
|
||||
|
||||
modulepar B16_Type px_AuthAMF; // @desc Authentication Management Field (16 bits). The value shall be different from '1111 1111 1111 111'B (AMFresynch).
|
||||
// Default value: no default value can be proposed
|
||||
// Reference to other Spec: 34.123-3, Table B.1
|
||||
|
||||
modulepar B128_Type px_AuthK := oct2bit('000102030405060708090A0B0C0D0E0F'O);
|
||||
// @desc Authentication Key
|
||||
// Reference to other Spec: 34.123-3, Table B.1
|
||||
|
||||
modulepar O43_Type px_ETWS_DigitalSignature; // @desc ETWS Digital Signature
|
||||
|
||||
modulepar charstring px_EmergencyCallNumber := "112"; // @desc Emergency Number used by UE to initiate an emergency call
|
||||
// Reference to other Spec: 34.123-3, Table B.1.2
|
||||
|
||||
// modulepar EmergencyLocalNumberList px_EmergencyLocalNumberList := {"301", "302", "303", "304", "305", "306", "307", "308", "309", "310"};
|
||||
// @desc This list must not contain any emergency numbers already stored in the USIM or UE
|
||||
|
||||
modulepar hexstring px_IMEI_Def; // @desc Default IMEI value. No default can be proposed as this is a manufacturer defined value
|
||||
// Reference to other Spec: 34.123-3, Table B.1
|
||||
|
||||
modulepar hexstring px_IMSI_Def := '001010123456063'H;
|
||||
// @desc Default IMSI
|
||||
// Reference to other Spec: 34.123-3, Table B.1
|
||||
|
||||
modulepar charstring px_IPv4_Address1_NW; // @desc IPv4 Gateway Address in PDN1
|
||||
|
||||
modulepar charstring px_IPv4_Address1_UE; // @desc IPv4 Address connected to PDN1
|
||||
|
||||
modulepar charstring px_IPv4_Address2_NW; // @desc IPv4 Gateway Address in PDN2
|
||||
|
||||
modulepar charstring px_IPv4_Address2_UE; // @desc IPv4 Address connected to PDN2
|
||||
|
||||
modulepar charstring px_IPv4_Address_HomeAgent; // @desc IPv4 Home Address Agent
|
||||
|
||||
modulepar charstring px_IPv6_Address1_NW; // @desc IPv6 Gateway Address in PDN1
|
||||
|
||||
modulepar charstring px_IPv6_Address1_UE; // @desc IPv6 Address in PDN1
|
||||
|
||||
modulepar charstring px_IPv6_Address2_NW; // @desc IPv6 Gateway Address in PDN2
|
||||
|
||||
modulepar charstring px_IPv6_Address2_UE; // @desc IPv6 Address in PDN2
|
||||
|
||||
modulepar charstring px_IPv6_Address_HomeAgent; // @desc IPv6 Home Address Agent
|
||||
|
||||
modulepar octetstring px_PTMSI_Def := 'C2345678'O; // @desc Default PTMSI
|
||||
// Reference to other Spec: 34.123-3, Table B.1
|
||||
|
||||
modulepar octetstring px_PTMSI_SigDef := 'AB1234'O; // @desc Default PTMSI signature (3 octets, 3GPP 24.008 / 10.5.5.8).
|
||||
// Reference to other Spec: 34.123-3, Table B.1
|
||||
|
||||
modulepar charstring px_PWS_CB_DataPage1; // @desc ETWS or CMAS Page 1 warning data message
|
||||
|
||||
modulepar charstring px_PWS_CB_DataPage2; // @desc ETWS or CMAS Page 2 warning data message
|
||||
|
||||
modulepar charstring px_PWS_CB_DataPage3; // @desc CMAS or ETWS Page 3 warning data message
|
||||
|
||||
modulepar charstring px_PWS_CB_DataPage4; // @desc CMAS or ETWS Page 4 warning data message
|
||||
|
||||
modulepar RATComb_Tested_Type px_RATComb_Tested := EUTRA_UTRA; // @desc This parameter represents the network RAT capability/preference and indicates which, if any is supported, RAT combination is to be tested
|
||||
// Supported values: EUTRA_UTRA, EUTRA_GERAN, EUTRA_Only
|
||||
|
||||
modulepar boolean px_SMS_ChkMsgReceived := true; // @desc Whether the operator can check an MT Short Message received
|
||||
|
||||
modulepar integer px_SMS_IndexOffset := 0; // @desc Memory location index at UE for SMS storage, used in +CMSS command
|
||||
// Reference to other Spec: 34.123-3, Table B.1.2
|
||||
|
||||
modulepar charstring px_SMS_MsgFrmt := "1"; // @desc UE which only supports PDU mode will be configured for text mode @sic R5s110750 sic@
|
||||
|
||||
modulepar charstring px_SMS_PrefMem1 := "SM"; // @desc SMS Preferred Memory 1 <mem1> of TS 27.005 [31], clause 3.2.2
|
||||
// Reference to other Spec: 34.123-3, Table B.1.2
|
||||
|
||||
modulepar charstring px_SMS_PrefMem2 := "SM"; // @desc SMS Preferred Memory 2 <mem2> of TS 27.005 [31], clause 3.2.2
|
||||
// Reference to other Spec: 34.123-3, Table B.1.2
|
||||
|
||||
modulepar charstring px_SMS_PrefMem3 := "MT"; // @desc SMS Preferred Memory 3 <mem3> of TS 27.005 [31], clause 3.2.2
|
||||
// Reference to other Spec: 34.123-3, Table B.1.2
|
||||
|
||||
modulepar charstring px_SMS_Service := "0"; // @desc SMS Service <service> of TS 27.005 [31], clause 3.2.1
|
||||
// Reference to other Spec: 34.123-3, Table B.1.2
|
||||
|
||||
modulepar SinglePLMN_TestedType px_SinglePLMN_Tested := MultiPLMN; // @desc This parameter represents the network capability/preference to support multi PLMNs on the same test Band and indicates the preference of multi PLMNs or single PLMN test environment
|
||||
// Supported values: SinglePLMN, MultiPLMN, MultiPLMNinPrimaryBand, MultiPLMNinSecondaryBand
|
||||
|
||||
modulepar octetstring px_TMSI_Def := '12345678'O; // @desc Default TMSI
|
||||
// Reference to other Spec: 34.123-3, Table B.1
|
||||
|
||||
/*
|
||||
modulepar CS_PS_MODE px_UE_CS_PS_UsageSetting_Tested := VOICE_CENTRIC;
|
||||
// @desc specifies which CS/PS mode is under test @sic R5s120274 sic@
|
||||
// Supported values: VOICE_CENTRIC, DATA_CENTRIC
|
||||
|
||||
modulepar PS_MODE px_UE_PS_UsageSetting_Tested := VOICE_CENTRIC; // @desc specifies which PS mode is under test @sic R5s120274 sic@
|
||||
// Supported values: VOICE_CENTRIC, DATA_CENTRIC
|
||||
*/
|
||||
|
||||
modulepar UTRAN_FDD_TDD_Type px_UTRAN_ModeUnderTest := UTRAN_FDD; // @desc specifies which radio access technology is being tested in UTRAN
|
||||
// Supported values: UTRAN_FDD, UTRAN_TDD
|
||||
|
||||
modulepar B128_Type px_eAuthRAND := oct2bit('A3DE0C6D363E30C364A4078F1BF8D577'O);
|
||||
// @desc Random Challenge
|
||||
|
||||
//modulepar NAS_Mcc px_eJapanMCC_Band6 := '442'H; // @desc Japan MCC code to be used for Band 6. The same value will be used for E-UTRAN and Inter-RAT cells. Type is different to that defined in 34.123-3.
|
||||
|
||||
|
||||
//****************************************************************************
|
||||
// PICS Parameters
|
||||
//----------------------------------------------------------------------------
|
||||
modulepar boolean pc_1xCSfallback := false; // @desc Support of 1xCS fallback
|
||||
// Reference: 36.523-2, A.4.2.1.1-1/3
|
||||
|
||||
modulepar boolean pc_1xRTT := false; // @desc UE supports CDMA2000 1xRTT band class
|
||||
// Reference: 36.523-2, A.4.1-1/4
|
||||
|
||||
modulepar boolean pc_Allowed_CSG_list := false; // @desc Support of Allowed CSG list
|
||||
// Reference: 36.523-2 A.4.4-1/2
|
||||
|
||||
modulepar boolean pc_Attach := false; // @desc Support EPS attach (with or without pre-configuration)
|
||||
// Reference: 36.523-2 A.4.4-2/1
|
||||
|
||||
modulepar boolean pc_Auto_Attach_after_TAU_Reject := false; // @desc Support of automatic re-activation of the EPS bearer(s) after the TAU Reject
|
||||
// Reference: 36.523-2 A.4.4-1/xx
|
||||
|
||||
modulepar boolean pc_Automatic_EPS_Re_Attach := false; // @desc Support of automatic re-activation of the EPS bearer(s)
|
||||
// Reference: 36.523-2 A.4.4-1/xx
|
||||
|
||||
modulepar boolean pc_Automatic_Re_Attach := false; // @desc Support of automatic re-activation of the EPS bearer(s) during Network Initiated Detach with detach type set to re-attach required
|
||||
// Reference: 36.523-2 A.4.4-1/27
|
||||
|
||||
modulepar boolean pc_CMAS_Message := false; // @desc Support of CMAS message
|
||||
// Reference: 36.523-2 ??/58
|
||||
|
||||
modulepar boolean pc_CS := false; // @desc UE supports CS domain services
|
||||
// Reference: 34.123-2 A.3/1
|
||||
|
||||
modulepar boolean pc_CS_Em_Call_in_1xRTT := false; // @desc Support for establishing the emergency call using the CS domain in 1xRTT
|
||||
// Reference: 36.523-2 A.4.4-1/37
|
||||
|
||||
modulepar boolean pc_CS_Em_Call_in_GERAN := false; // @desc Support for establishing the emergency call using the CS domain in GERAN
|
||||
// Reference: 36.523-2 A.4.4-1/36
|
||||
|
||||
modulepar boolean pc_CS_Em_Call_in_UTRA := false; // @desc Support for establishing the emergency call using the CS domain in UTRA
|
||||
// Reference: 36.523-2 A.4.4-1/35
|
||||
|
||||
modulepar boolean pc_CS_Fallback := false; // @desc The UE supports CS fallback for voice calls. If true, pc_CS and at least one of pc_FDD, pc_TDD_HCR, pc_TDD_LCR, pc_TDD_VHCR or pc_UMTS_GSM is also true.
|
||||
// Reference: 36.523-2, A.4.2.1.1-1/1
|
||||
|
||||
modulepar boolean pc_CS_PS_data_centric := false; // @desc Support of CS/PS mode 2
|
||||
// Reference: 36.523-2 A.4.4-2/5
|
||||
|
||||
modulepar boolean pc_CS_PS_voice_centric := false; // @desc Support of configuring the UE to voice centric
|
||||
// Reference: 36.523-2 A.4.4-2/4
|
||||
|
||||
modulepar boolean pc_Combined_Attach := false; // @desc Support combined EPS/IMSI attach (with or without pre-configuration)
|
||||
// Reference: 36.523-2 A.4.4-2/2
|
||||
|
||||
modulepar boolean pc_DSMIPv6 := false; // @desc Support of Mobility management based on Dual-Stack Mobile IPv6
|
||||
// Reference: 36.523-2 A.4.4-1/6
|
||||
|
||||
modulepar boolean pc_EDTM := false; // @desc Support for EDTM
|
||||
// Reference: 36.523-2 A.4.4-1/38
|
||||
|
||||
modulepar boolean pc_EMM_Information := false; // @desc Support of EMM Information message
|
||||
// Reference: 36.523-2 A.4.4-1/9
|
||||
|
||||
modulepar boolean pc_EPS_Disable := false; // @desc Support of disabling of EPS capability
|
||||
// Reference: 36.523-2 A.4.4-1/26
|
||||
|
||||
modulepar boolean pc_ESM_MO_Bearer_Allocation := false; // @desc Support of ESM UE requested bearer resource allocation procedure
|
||||
// Reference: 36.523-2 A.4.4-1/10
|
||||
|
||||
modulepar boolean pc_ESM_MO_Bearer_Modification := false; // @desc Support of ESM UE requested bearer resource modification procedure
|
||||
// Reference: 36.523-2 A.4.4-1/11
|
||||
|
||||
modulepar boolean pc_ESM_UE_Modification_NW_TFT := false; // @desc Support for UE requested modification of network allocated TFTs
|
||||
// Reference: 36.523-2 A.4.4-1/zz
|
||||
|
||||
modulepar boolean pc_ETWS_message := false; // @desc Support of ETWS message
|
||||
// Reference: 36.523-2 A.4.4-1/20
|
||||
|
||||
modulepar boolean pc_ETWS_message_security := false; // @desc Support of ETWS message with security
|
||||
// Reference: 36.523-2 A.4.4-1/24
|
||||
|
||||
modulepar boolean pc_E_UTRAN_2_GERAN_PSHO := false; // @desc Support for inter-RAT PS handover from E_UTRAN to GERAN
|
||||
// Reference: 36.523-2 A.4.4-1/xx
|
||||
|
||||
modulepar boolean pc_Enhanced_1xCSfallback := false; // @desc Support of Enhanced 1xCS fallback
|
||||
// Reference: 36.523-2, A.4.2.1.1-1/x
|
||||
|
||||
modulepar boolean pc_FDD := true; // @desc UE supports UTRA band as defined in TS 25.101
|
||||
// Reference: 34.123-2 A.1/1
|
||||
|
||||
modulepar boolean pc_FeatrGrp_1 := false; // @desc ########################################################################################################################################
|
||||
// Reference: 36.523-2 A.4.5-1/1
|
||||
|
||||
modulepar boolean pc_FeatrGrp_10 := false; // @desc Support of EUTRA RRC_CONNECTED to GERAN (Packet_)Idle by Cell Change Order, EUTRA RRC_CONNECTED to GERAN (Packet_)Idle by Cell Change Order with NACC (Network Assisted Cell Change)
|
||||
// Reference: 36.523-2 A.4.5-1/10
|
||||
|
||||
modulepar boolean pc_FeatrGrp_10_F := false; // @desc Support of EUTRA RRC_CONNECTED to GERAN (Packet_)Idle by Cell Change Order, EUTRA RRC_CONNECTED to GERAN (Packet_)Idle by Cell Change Order with NACC (Network Assisted Cell Change)
|
||||
// Reference: 36.523-2 A.4.5-1a/10
|
||||
|
||||
modulepar boolean pc_FeatrGrp_10_T := false; // @desc Support of EUTRA RRC_CONNECTED to GERAN (Packet_)Idle by Cell Change Order, EUTRA RRC_CONNECTED to GERAN (Packet_)Idle by Cell Change Order with NACC (Network Assisted Cell Change)
|
||||
// Reference: 36.523-2 A.4.5-1b/10
|
||||
|
||||
modulepar boolean pc_FeatrGrp_11 := false; // @desc Support of EUTRA RRC_CONNECTED to 1xRTT CS Active handover
|
||||
// Reference: 36.523-2 A.4.5-1/11
|
||||
|
||||
modulepar boolean pc_FeatrGrp_11_F := false; // @desc Support of EUTRA RRC_CONNECTED to 1xRTT CS Active handover
|
||||
// Reference: 36.523-2 A.4.5-1a/11
|
||||
|
||||
modulepar boolean pc_FeatrGrp_11_T := false; // @desc Support of EUTRA RRC_CONNECTED to 1xRTT CS Active handover
|
||||
// Reference: 36.523-2 A.4.5-1b/11
|
||||
|
||||
modulepar boolean pc_FeatrGrp_12 := false; // @desc Support of EUTRA RRC_CONNECTED to HRPD Active handover
|
||||
// Reference: 36.523-2 A.4.5-1/12
|
||||
|
||||
modulepar boolean pc_FeatrGrp_12_F := false; // @desc Support of EUTRA RRC_CONNECTED to HRPD Active handover
|
||||
// Reference: 36.523-2 A.4.5-1a/12
|
||||
|
||||
modulepar boolean pc_FeatrGrp_12_T := false; // @desc Support of EUTRA RRC_CONNECTED to HRPD Active handover
|
||||
// Reference: 36.523-2 A.4.5-1b/12
|
||||
|
||||
modulepar boolean pc_FeatrGrp_13 := false; // @desc Support of Inter-frequency handover (within FDD or TDD)
|
||||
// Reference: 36.523-2 A.4.5-1/13
|
||||
|
||||
modulepar boolean pc_FeatrGrp_13_F := false; // @desc Support of Inter-frequency handover (within FDD or TDD)
|
||||
// Reference: 36.523-2 A.4.5-1a/13
|
||||
|
||||
modulepar boolean pc_FeatrGrp_13_T := false; // @desc Support of Inter-frequency handover (within FDD or TDD)
|
||||
// Reference: 36.523-2 A.4.5-1b/13
|
||||
|
||||
modulepar boolean pc_FeatrGrp_14 := false; // @desc Support of Measurement reporting event: Event A4 - Neighbour > threshold, Measurement reporting event: Event A5 - Serving < threshold1 & Neighbour > threshold2
|
||||
// Reference: 36.523-2 A.4.5-1/14
|
||||
|
||||
modulepar boolean pc_FeatrGrp_14_F := false; // @desc Support of Measurement reporting event: Event A4 - Neighbour > threshold, Measurement reporting event: Event A5 - Serving < threshold1 & Neighbour > threshold2
|
||||
// Reference: 36.523-2 A.4.5-1a/14
|
||||
|
||||
modulepar boolean pc_FeatrGrp_14_T := false; // @desc Support of Measurement reporting event: Event A4 - Neighbour > threshold, Measurement reporting event: Event A5 - Serving < threshold1 & Neighbour > threshold2
|
||||
// Reference: 36.523-2 A.4.5-1b/14
|
||||
|
||||
modulepar boolean pc_FeatrGrp_15 := false; // @desc Support of Measurement reporting event: Event B1 - Neighbour > threshold
|
||||
// Reference: 36.523-2 A.4.5-1/15
|
||||
|
||||
modulepar boolean pc_FeatrGrp_15_F := false; // @desc Support of Measurement reporting event: Event B1 - Neighbour > threshold
|
||||
// Reference: 36.523-2 A.4.5-1a/15
|
||||
|
||||
modulepar boolean pc_FeatrGrp_15_T := false; // @desc Support of Measurement reporting event: Event B1 - Neighbour > threshold
|
||||
// Reference: 36.523-2 A.4.5-1b/15
|
||||
|
||||
modulepar boolean pc_FeatrGrp_16 := false; // @desc Support of Periodical measurement reporting for non-ANR related measurements
|
||||
// Reference: 36.523-2 A.4.5-1/16
|
||||
|
||||
modulepar boolean pc_FeatrGrp_16_F := false; // @desc Support of Periodical measurement reporting for non-ANR related measurements
|
||||
// Reference: 36.523-2 A.4.5-1a/16
|
||||
|
||||
modulepar boolean pc_FeatrGrp_16_T := false; // @desc Support of Periodical measurement reporting for non-ANR related measurements
|
||||
// Reference: 36.523-2 A.4.5-1b/16
|
||||
|
||||
modulepar boolean pc_FeatrGrp_17 := false; // @desc Support of Periodical measurement reporting for SON / ANR and ANR related intra-frequency measurement reporting events
|
||||
// Reference: 36.523-2 A.4.5-1/17
|
||||
|
||||
modulepar boolean pc_FeatrGrp_17_F := false; // @desc Support of Periodical measurement reporting for SON / ANR and ANR related intra-frequency measurement reporting events
|
||||
// Reference: 36.523-2 A.4.5-1a/17
|
||||
|
||||
modulepar boolean pc_FeatrGrp_17_T := false; // @desc Support of Periodical measurement reporting for SON / ANR and ANR related intra-frequency measurement reporting events
|
||||
// Reference: 36.523-2 A.4.5-1b/17
|
||||
|
||||
modulepar boolean pc_FeatrGrp_18 := false; // @desc Support of ANR related inter-frequency measurement reporting events
|
||||
// Reference: 36.523-2 A.4.5-1/18
|
||||
|
||||
modulepar boolean pc_FeatrGrp_18_F := false; // @desc Support of ANR related inter-frequency measurement reporting events
|
||||
// Reference: 36.523-2 A.4.5-1a/18
|
||||
|
||||
modulepar boolean pc_FeatrGrp_18_T := false; // @desc Support of ANR related inter-frequency measurement reporting events
|
||||
// Reference: 36.523-2 A.4.5-1b/18
|
||||
|
||||
modulepar boolean pc_FeatrGrp_19 := false; // @desc Support of ANR related inter-RAT measurement reporting events
|
||||
// Reference: 36.523-2 A.4.5-1/19
|
||||
|
||||
modulepar boolean pc_FeatrGrp_19_F := false; // @desc Support of ANR related inter-RAT measurement reporting events
|
||||
// Reference: 36.523-2 A.4.5-1a/19
|
||||
|
||||
modulepar boolean pc_FeatrGrp_19_T := false; // @desc Support of ANR related inter-RAT measurement reporting events
|
||||
// Reference: 36.523-2 A.4.5-1b/19
|
||||
|
||||
modulepar boolean pc_FeatrGrp_1_F := false; // @desc ########################################################################################################################################
|
||||
// Reference: 36.523-2 A.4.5-1a/1
|
||||
|
||||
modulepar boolean pc_FeatrGrp_1_T := false; // @desc ########################################################################################################################################
|
||||
// Reference: 36.523-2 A.4.5-1b/1
|
||||
|
||||
modulepar boolean pc_FeatrGrp_2 := false; // @desc ########################################################################################################################################
|
||||
// Reference: 36.523-2 A.4.5-1/2
|
||||
|
||||
modulepar boolean pc_FeatrGrp_20 := false; // @desc Support of RB combination: SRB1 and SRB2 for DCCH + x AM DRB + x UM DRB
|
||||
// Reference: 36.523-2 A.4.5-1/20
|
||||
|
||||
modulepar boolean pc_FeatrGrp_20_F := false; // @desc Support of RB combination: SRB1 and SRB2 for DCCH + x AM DRB + x UM DRB
|
||||
// Reference: 36.523-2 A.4.5-1a/20
|
||||
|
||||
modulepar boolean pc_FeatrGrp_20_T := false; // @desc Support of RB combination: SRB1 and SRB2 for DCCH + x AM DRB + x UM DRB
|
||||
// Reference: 36.523-2 A.4.5-1b/20
|
||||
|
||||
modulepar boolean pc_FeatrGrp_21 := false; // @desc Support of Predefined intra-subframe frequency hopping for PUSCH with N_sb > 1, Predefined inter-subframe frequency hopping for PUSCH with N_sb > 1
|
||||
// Reference: 36.523-2 A.4.5-1/21
|
||||
|
||||
modulepar boolean pc_FeatrGrp_21_F := false; // @desc Support of Predefined intra-subframe frequency hopping for PUSCH with N_sb > 1, Predefined inter-subframe frequency hopping for PUSCH with N_sb > 1
|
||||
// Reference: 36.523-2 A.4.5-1a/21
|
||||
|
||||
modulepar boolean pc_FeatrGrp_21_T := false; // @desc Support of Predefined intra-subframe frequency hopping for PUSCH with N_sb > 1, Predefined inter-subframe frequency hopping for PUSCH with N_sb > 1
|
||||
// Reference: 36.523-2 A.4.5-1b/21
|
||||
|
||||
modulepar boolean pc_FeatrGrp_22 := false; // @desc Support of UTRAN measurements and reporting in E-UTRA connected mode
|
||||
// Reference: 36.523-2 A.4.5-1/22
|
||||
|
||||
modulepar boolean pc_FeatrGrp_22_F := false; // @desc Support of UTRAN measurements and reporting in E-UTRA connected mode
|
||||
// Reference: 36.523-2 A.4.5-1a/22
|
||||
|
||||
modulepar boolean pc_FeatrGrp_22_T := false; // @desc Support of UTRAN measurements and reporting in E-UTRA connected mode
|
||||
// Reference: 36.523-2 A.4.5-1b/22
|
||||
|
||||
modulepar boolean pc_FeatrGrp_23 := false; // @desc Support of GERAN measurements and reporting in E-UTRA connected mode
|
||||
// Reference: 36.523-2 A.4.5-1/23
|
||||
|
||||
modulepar boolean pc_FeatrGrp_23_F := false; // @desc Support of GERAN measurements and reporting in E-UTRA connected mode
|
||||
// Reference: 36.523-2 A.4.5-1a/23
|
||||
|
||||
modulepar boolean pc_FeatrGrp_23_T := false; // @desc Support of GERAN measurements and reporting in E-UTRA connected mode
|
||||
// Reference: 36.523-2 A.4.5-1b/23
|
||||
|
||||
modulepar boolean pc_FeatrGrp_24 := false; // @desc Support of cdma2000 measurements and reporting in E-UTRA connected mode
|
||||
// Reference: 36.523-2 A.4.5-1/24
|
||||
|
||||
modulepar boolean pc_FeatrGrp_24_F := false; // @desc Support of cdma2000 measurements and reporting in E-UTRA connected mode
|
||||
// Reference: 36.523-2 A.4.5-1a/24
|
||||
|
||||
modulepar boolean pc_FeatrGrp_24_T := false; // @desc Support of cdma2000 measurements and reporting in E-UTRA connected mode
|
||||
// Reference: 36.523-2 A.4.5-1b/24
|
||||
|
||||
modulepar boolean pc_FeatrGrp_25 := false; // @desc Support of Inter-frequency measurements and reporting in E-UTRA connected mode
|
||||
// Reference: 36.523-2 A.4.5-1/25
|
||||
|
||||
modulepar boolean pc_FeatrGrp_25_F := false; // @desc Support of Inter-frequency measurements and reporting in E-UTRA connected mode
|
||||
// Reference: 36.523-2 A.4.5-1a/25
|
||||
|
||||
modulepar boolean pc_FeatrGrp_25_T := false; // @desc Support of Inter-frequency measurements and reporting in E-UTRA connected mode
|
||||
// Reference: 36.523-2 A.4.5-1b/25
|
||||
|
||||
modulepar boolean pc_FeatrGrp_26 := false; // @desc Support of HRPD measurements, reporting and measurement reporting event B2 in E-UTRA connected mode
|
||||
// Reference: 36.523-2 A.4.5-1/26
|
||||
|
||||
modulepar boolean pc_FeatrGrp_26_F := false; // @desc Support of HRPD measurements, reporting and measurement reporting event B2 in E-UTRA connected mode
|
||||
// Reference: 36.523-2 A.4.5-1a/26
|
||||
|
||||
modulepar boolean pc_FeatrGrp_26_T := false; // @desc Support of HRPD measurements, reporting and measurement reporting event B2 in E-UTRA connected mode
|
||||
// Reference: 36.523-2 A.4.5-1b/26
|
||||
|
||||
modulepar boolean pc_FeatrGrp_27 := false; // @desc Support of EUTRA RRC_CONNECTED to UTRA CELL_DCH CS handover
|
||||
// Reference: 36.523-2 A.4.5-1/27
|
||||
|
||||
modulepar boolean pc_FeatrGrp_27_F := false; // @desc Support of EUTRA RRC_CONNECTED to UTRA CELL_DCH CS handover
|
||||
// Reference: 36.523-2 A.4.5-1a/27
|
||||
|
||||
modulepar boolean pc_FeatrGrp_27_T := false; // @desc Support of EUTRA RRC_CONNECTED to UTRA CELL_DCH CS handover
|
||||
// Reference: 36.523-2 A.4.5-1b/27
|
||||
|
||||
modulepar boolean pc_FeatrGrp_28 := false; // @desc Support of TTI bundling
|
||||
// Reference: 36.523-2 A.4.5-1/28
|
||||
|
||||
modulepar boolean pc_FeatrGrp_28_F := false; // @desc Support of TTI bundling
|
||||
// Reference: 36.523-2 A.4.5-1a/28
|
||||
|
||||
modulepar boolean pc_FeatrGrp_28_T := false; // @desc Support of TTI bundling
|
||||
// Reference: 36.523-2 A.4.5-1b/28
|
||||
|
||||
modulepar boolean pc_FeatrGrp_29 := false; // @desc Support of Semi-Persistent Scheduling
|
||||
// Reference: 36.523-2 A.4.5-1/29
|
||||
|
||||
modulepar boolean pc_FeatrGrp_29_F := false; // @desc Support of Semi-Persistent Scheduling
|
||||
// Reference: 36.523-2 A.4.5-1a/29
|
||||
|
||||
modulepar boolean pc_FeatrGrp_29_T := false; // @desc Support of Semi-Persistent Scheduling
|
||||
// Reference: 36.523-2 A.4.5-1b/29
|
||||
|
||||
modulepar boolean pc_FeatrGrp_2_F := false; // @desc ########################################################################################################################################
|
||||
// Reference: 36.523-2 A.4.5-1a/2
|
||||
|
||||
modulepar boolean pc_FeatrGrp_2_T := false; // @desc ########################################################################################################################################
|
||||
// Reference: 36.523-2 A.4.5-1b/2
|
||||
|
||||
modulepar boolean pc_FeatrGrp_3 := false; // @desc Support of Semi-persistent scheduling, TTI bundling, 5bit RLC UM SN, 7bit PDCP SN
|
||||
// Reference: 36.523-2 A.4.5-1/3
|
||||
|
||||
modulepar boolean pc_FeatrGrp_30 := false; // @desc Support of Handover between FDD and TDD
|
||||
// Reference: 36.523-2 A.4.5-1/30
|
||||
|
||||
modulepar boolean pc_FeatrGrp_30_F := false; // @desc Support of Handover between FDD and TDD
|
||||
// Reference: 36.523-2 A.4.5-1a/30
|
||||
|
||||
modulepar boolean pc_FeatrGrp_30_T := false; // @desc Support of Handover between FDD and TDD
|
||||
// Reference: 36.523-2 A.4.5-1b/30
|
||||
|
||||
modulepar boolean pc_FeatrGrp_33 := false; // @desc ########################################################################################################################################
|
||||
// Reference: 36.523-2 A.4.5-1d/1
|
||||
|
||||
modulepar boolean pc_FeatrGrp_33_F := false; // @desc ########################################################################################################################################
|
||||
// Reference: 36.523-2 A.4.5-1d/1
|
||||
|
||||
modulepar boolean pc_FeatrGrp_33_T := false; // @desc ########################################################################################################################################
|
||||
// Reference: 36.523-2 A.4.5-1e/1
|
||||
|
||||
modulepar boolean pc_FeatrGrp_34 := false; // @desc ########################################################################################################################################
|
||||
// Reference: 36.523-2 A.4.5-1d/2
|
||||
|
||||
modulepar boolean pc_FeatrGrp_34_F := false; // @desc ########################################################################################################################################
|
||||
// Reference: 36.523-2 A.4.5-1d/2
|
||||
|
||||
modulepar boolean pc_FeatrGrp_34_T := false; // @desc ########################################################################################################################################
|
||||
// Reference: 36.523-2 A.4.5-1e/2
|
||||
|
||||
modulepar boolean pc_FeatrGrp_35 := false; // @desc ########################################################################################################################################
|
||||
// Reference: 36.523-2 A.4.5-1d/3
|
||||
|
||||
modulepar boolean pc_FeatrGrp_35_F := false; // @desc ########################################################################################################################################
|
||||
// Reference: 36.523-2 A.4.5-1d/3
|
||||
|
||||
modulepar boolean pc_FeatrGrp_35_T := false; // @desc ########################################################################################################################################
|
||||
// Reference: 36.523-2 A.4.5-1e/3
|
||||
|
||||
modulepar boolean pc_FeatrGrp_36 := false; // @desc ########################################################################################################################################
|
||||
// Reference: 36.523-2 A.4.5-1d/4
|
||||
|
||||
modulepar boolean pc_FeatrGrp_36_F := false; // @desc ########################################################################################################################################
|
||||
// Reference: 36.523-2 A.4.5-1d/4
|
||||
|
||||
modulepar boolean pc_FeatrGrp_36_T := false; // @desc ########################################################################################################################################
|
||||
// Reference: 36.523-2 A.4.5-1e/4
|
||||
|
||||
modulepar boolean pc_FeatrGrp_3_F := false; // @desc Support of Semi-persistent scheduling, TTI bundling, 5bit RLC UM SN, 7bit PDCP SN
|
||||
// Reference: 36.523-2 A.4.5-1a/3
|
||||
|
||||
modulepar boolean pc_FeatrGrp_3_T := false; // @desc Support of Semi-persistent scheduling, TTI bundling, 5bit RLC UM SN, 7bit PDCP SN
|
||||
// Reference: 36.523-2 A.4.5-1b/3
|
||||
|
||||
modulepar boolean pc_FeatrGrp_4 := false; // @desc Support of Short DRX cycle
|
||||
// Reference: 36.523-2 A.4.5-1/4
|
||||
|
||||
modulepar boolean pc_FeatrGrp_4_F := false; // @desc Support of Short DRX cycle
|
||||
// Reference: 36.523-2 A.4.5-1a/4
|
||||
|
||||
modulepar boolean pc_FeatrGrp_4_T := false; // @desc Support of Short DRX cycle
|
||||
// Reference: 36.523-2 A.4.5-1b/4
|
||||
|
||||
modulepar boolean pc_FeatrGrp_5 := false; // @desc Support of Long DRX cycle, DRX command MAC control element
|
||||
// Reference: 36.523-2 A.4.5-1/5
|
||||
|
||||
modulepar boolean pc_FeatrGrp_5_F := false; // @desc Support of Long DRX cycle, DRX command MAC control element
|
||||
// Reference: 36.523-2 A.4.5-1a/5
|
||||
|
||||
modulepar boolean pc_FeatrGrp_5_T := false; // @desc Support of Long DRX cycle, DRX command MAC control element
|
||||
// Reference: 36.523-2 A.4.5-1b/5
|
||||
|
||||
modulepar boolean pc_FeatrGrp_6 := false; // @desc Support of Piroritized bit rate
|
||||
// Reference: 36.523-2 A.4.5-1/6
|
||||
|
||||
modulepar boolean pc_FeatrGrp_6_F := false; // @desc Support of Piroritized bit rate
|
||||
// Reference: 36.523-2 A.4.5-1a/6
|
||||
|
||||
modulepar boolean pc_FeatrGrp_6_T := false; // @desc Support of Piroritized bit rate
|
||||
// Reference: 36.523-2 A.4.5-1b/6
|
||||
|
||||
modulepar boolean pc_FeatrGrp_7 := false; // @desc Support of RLC UM
|
||||
// Reference: 36.523-2 A.4.5-1/7
|
||||
|
||||
modulepar boolean pc_FeatrGrp_7_F := false; // @desc Support of RLC UM
|
||||
// Reference: 36.523-2 A.4.5-1a/7
|
||||
|
||||
modulepar boolean pc_FeatrGrp_7_T := false; // @desc Support of RLC UM
|
||||
// Reference: 36.523-2 A.4.5-1b/7
|
||||
|
||||
modulepar boolean pc_FeatrGrp_8 := false; // @desc Support of EUTRA RRC_CONNECTED to UTRA CELL_DCH PS handover
|
||||
// Reference: 36.523-2 A.4.5-1/8
|
||||
|
||||
modulepar boolean pc_FeatrGrp_8_F := false; // @desc Support of EUTRA RRC_CONNECTED to UTRA CELL_DCH PS handover
|
||||
// Reference: 36.523-2 A.4.5-1a/8
|
||||
|
||||
modulepar boolean pc_FeatrGrp_8_T := false; // @desc Support of EUTRA RRC_CONNECTED to UTRA CELL_DCH PS handover
|
||||
// Reference: 36.523-2 A.4.5-1b/8
|
||||
|
||||
modulepar boolean pc_FeatrGrp_9 := false; // @desc Support of EUTRA RRC_CONNECTED to GERAN GSM_Dedicated handover
|
||||
// Reference: 36.523-2 A.4.5-1/9
|
||||
|
||||
modulepar boolean pc_FeatrGrp_9_F := false; // @desc Support of EUTRA RRC_CONNECTED to GERAN GSM_Dedicated handover
|
||||
// Reference: 36.523-2 A.4.5-1a/9
|
||||
|
||||
modulepar boolean pc_FeatrGrp_9_T := false; // @desc Support of EUTRA RRC_CONNECTED to GERAN GSM_Dedicated handover
|
||||
// Reference: 36.523-2 A.4.5-1b/9
|
||||
|
||||
modulepar boolean pc_FullNameNetwork := false; // @desc Support of storage of the network full name
|
||||
// Reference: 36.523-2 A.4.4-1/12
|
||||
|
||||
modulepar boolean pc_GERAN := false; // @desc UE Supports GSM and/or GPRS
|
||||
// Reference: 36.523-2 A.4.1-1/6
|
||||
|
||||
modulepar boolean pc_GERAN_2_E_UTRAN_PSHO := false; // @desc Support of GERAN to E-UTRAN PS Handover
|
||||
// Reference: 36.523-2 A.4.4-1/29
|
||||
|
||||
modulepar boolean pc_GERAN_2_E_UTRAN_meas
|
||||
:= false; // @desc Supports Neighbour Cell measurements and Network controlled & autonomous cell reselection to E-UTRAN
|
||||
// Reference: 36.523-2 A.4.4-1/21
|
||||
|
||||
modulepar boolean pc_GERAN_2_E_UTRAN_measreporting_CCN := false; // @desc Supports CCN towards E-UTRAN, E-UTRAN Neighbour cell measurement reporting and Network controlled cell reselection to E-UTRAN
|
||||
// Reference: 36.523-2 A.4.4-1/39
|
||||
|
||||
modulepar boolean pc_HO_from_UTRA_to_eFDD := false; // @desc Support of Inter-RAT PS handover to E-UTRA from UTRA (FDD)
|
||||
// Reference: 36.523-2 A.4.4-1/8
|
||||
|
||||
modulepar boolean pc_HO_from_UTRA_to_eTDD := false; // @desc Support of Inter-RAT PS handover to E-UTRA from UTRA (TDD)
|
||||
// Reference: 36.523-2 A.4.4-1/aa
|
||||
|
||||
modulepar boolean pc_HRPD := false; // @desc UE supports CDMA2000 HRPD band class
|
||||
// Reference: 36.523-2, A.4.1-1/3
|
||||
|
||||
modulepar boolean pc_IMS := false; // @desc Support of IMS
|
||||
// Reference: 36.523-2 A.4.4-1/25
|
||||
|
||||
modulepar boolean pc_IMSI_Detach := false; // @desc Support of detach for non-EPS services
|
||||
// Reference: 36.523-2 A.4.4-1/34
|
||||
|
||||
modulepar boolean pc_IMS_emergency_call := false; // @desc Support of MS emergency call
|
||||
// Reference: 36.523-2, A.4.2.1.1-1/4
|
||||
|
||||
modulepar boolean pc_IPv4 := true; // @desc UE supports IPv4 (used IMS PICS as currently not defined in LTE)
|
||||
// Reference: 34.229-2 A.7/1
|
||||
|
||||
modulepar boolean pc_IPv6 := false; // @desc UE supports IPv6 (used IMS PICS as currently not defined in LTE)
|
||||
// Reference: 34.229-2 A.7/2
|
||||
|
||||
modulepar boolean pc_ISR := false; // @desc Support of ISR
|
||||
// Reference: 36.523-2 A.4.4-1/5
|
||||
|
||||
modulepar boolean pc_ImmConnect := false; // @desc Immediate connection supported for all circuit switched basic services
|
||||
// Reference: 34.123 A.4.4/6
|
||||
|
||||
modulepar boolean pc_LocalTimeZone := false; // @desc Support of storage of the local time zone
|
||||
// Reference: 36.523-2 A.4.4-1/14
|
||||
|
||||
modulepar boolean pc_Manual_CSG_Selection := false; // @desc Support of Manual CSG selection
|
||||
// Reference: 36.523-2 A.4.4-1/49
|
||||
|
||||
modulepar boolean pc_Multiple_PDN := false; // @desc Support for multiple PDN connections
|
||||
// Reference: 36.523-2 A.4.4-1/29
|
||||
|
||||
modulepar boolean pc_PS := true; // @desc Packet Switched
|
||||
// Reference: 34.123-2 A.3/2
|
||||
|
||||
modulepar boolean pc_PS_data_centric := false; // @desc Support of configuring the UE to PS data centric
|
||||
// Reference: 36.523-2 A.4.4-2/8
|
||||
|
||||
modulepar boolean pc_PS_voice_centric := false; // @desc Support of configuring the UE to PS voice centric
|
||||
// Reference: 36.523-2 A.4.4-2/7
|
||||
|
||||
modulepar boolean pc_PWS_UpperLayer := false; // @desc Presence of PWS upper layer for functions like duplicate definition
|
||||
// Reference: 36.523-2 A.4.4-1/6x
|
||||
|
||||
modulepar boolean pc_ROHC_profile0x0001 := false; // @desc Support for ROHC profile0x0001
|
||||
// Reference: 36.523-2 A.4.4-1/aa
|
||||
|
||||
modulepar boolean pc_ROHC_profile0x0002 := false; // @desc Support for ROHC profile0x0002
|
||||
// Reference: 36.523-2 A.4.4-1/bb
|
||||
|
||||
modulepar boolean pc_ROHC_profile0x0003 := false; // @desc Support for ROHC profile0x0003
|
||||
// Reference: 36.523-2 A.4.4-1/cc
|
||||
|
||||
modulepar boolean pc_ROHC_profile0x0004 := false; // @desc Support for ROHC profile0x0004
|
||||
// Reference: 36.523-2 A.4.4-1/dd
|
||||
|
||||
modulepar boolean pc_ROHC_profile0x0006 := false; // @desc Support for ROHC profile0x0006
|
||||
// Reference: 36.523-2 A.4.4-1/ee
|
||||
|
||||
modulepar boolean pc_ROHC_profile0x0101 := false; // @desc Support for ROHC profile0x0101
|
||||
// Reference: 36.523-2 A.4.4-1/ff
|
||||
|
||||
modulepar boolean pc_ROHC_profile0x0102 := false; // @desc Support for ROHC profile0x0102
|
||||
// Reference: 36.523-2 A.4.4-1/gg
|
||||
|
||||
modulepar boolean pc_ROHC_profile0x0103 := false; // @desc Support for ROHC profile0x0103
|
||||
// Reference: 36.523-2 A.4.4-1/hh
|
||||
|
||||
modulepar boolean pc_ROHC_profile0x0104 := false; // @desc Support for ROHC profile0x0104
|
||||
// Reference: 36.523-2 A.4.4-1/ii
|
||||
|
||||
modulepar boolean pc_Re_Attach_AfterDetachColl := false; // @desc Support of automatic re-activation of the EPS bearers during network initiated detach, even though UE has initiated a detach procedure with detach type set to EPS detach or combined EPS/IMSI detach
|
||||
// Reference: 36.523-2 A.4.4-1/55
|
||||
|
||||
modulepar boolean pc_RequestIPv4HAAddress_DuringAttach := false; // @desc Support for being configured to request the IPv4 address of the Home Agent during Attach procedure
|
||||
// Reference: 36.523-2 A.4.4-1/23
|
||||
|
||||
modulepar boolean pc_RequestIPv6HAAddress_DuringAttach := false; // @desc Support for being configured to request the IPv6 address of the Home Agent during Attach procedure
|
||||
// Reference: 36.523-2 A.4.4-1/22
|
||||
|
||||
modulepar boolean pc_SMS_SGs := false; // @desc The UE supports SMS over SGs and is configured for SMS over SGs. If true, at least one of pc_SMS_SGs_MT and pc_SMS_SGs_MO is true.
|
||||
//
|
||||
// Reference: 36.523-2, A.4.2.1.1-1/2
|
||||
|
||||
modulepar boolean pc_SMS_SGs_MO := false; // @desc Support of Short Message Service (SMS) MO over SGs
|
||||
// Reference: 36.523-2 A.4.4-1/4
|
||||
|
||||
modulepar boolean pc_SMS_SGs_MT := false; // @desc Support of Short Message Service (SMS) MT over SGs
|
||||
// Reference: 36.523-2 A.4.4-1/3
|
||||
|
||||
modulepar boolean pc_SRVCC_GERAN_UTRAN := false; // @desc Support for SRVCC from E-UTRAN to GERAN/UTRAN
|
||||
// Reference: 36.523-2 A.4.4-1/32
|
||||
|
||||
modulepar boolean pc_Semi_Persistence_Scheduling := false; // @desc Support of semi persistance scheduling
|
||||
// Reference: 36.523-2 A.4.4-1/50
|
||||
|
||||
modulepar boolean pc_ShortNameNetwork := false; // @desc Support of storage of the network short name
|
||||
// Reference: 36.523-2 A.4.4-1/13
|
||||
|
||||
modulepar boolean pc_Speech := false; // @desc UE supports Speech
|
||||
// Reference: 34.123-2 A.2/1
|
||||
|
||||
modulepar boolean pc_Squal_based_CellReselection_to_E_UTRAN_from_UTRAN := false;
|
||||
// @desc Support of Squal based cell reselection to E-UTRAN from UTRAN
|
||||
// Reference: 36.523-2 A.4.4-1/yy
|
||||
|
||||
modulepar boolean pc_Squal_based_CellReselection_to_UTRAN_from_E_UTRAN := false;
|
||||
// @desc Support of Squal based cell reselection to UTRAN from E-UTRAN
|
||||
// Reference: 36.523-2 A.4.4-1/zz
|
||||
|
||||
modulepar boolean pc_SupportOpModeA := false; // @desc UE supports Operation Mode A
|
||||
// Reference: 34.123-2 A.3/3
|
||||
|
||||
modulepar boolean pc_SwitchOnOff := true; // @desc switch on/off supported
|
||||
// Reference: 36.523-2, A4.4-1/10
|
||||
|
||||
modulepar boolean pc_TDD_HCR := false; // @desc UE supports UTRA band as defined in TS 25.102
|
||||
// Reference: 34.123-2 A.1/2
|
||||
|
||||
modulepar boolean pc_TDD_LCR := false; // @desc UE supports UTRA band as defined in TS 25.102
|
||||
// Reference: 34.123-2 A.1/3
|
||||
|
||||
modulepar boolean pc_TDD_VHCR := false; // @desc UE supports UTRA band as defined in TS 25.102
|
||||
// Reference: 34.123-2 A.1/8
|
||||
|
||||
modulepar boolean pc_TTI_Bundling := false; // @desc Support of TTI Bundling
|
||||
// Reference: 36.523-2 A.4.4-1/51
|
||||
|
||||
modulepar boolean pc_UMI_ProcNeeded_DuringCSFB := false; // @desc Requiring UMI proceeding to paging response
|
||||
// Reference: 36.523-2 A.4.4-2/6
|
||||
|
||||
modulepar boolean pc_USIM_Removal := false; // @desc USIM removable without power down supported
|
||||
// Reference: 36.523-2, A4.4-1/1
|
||||
|
||||
modulepar boolean pc_UTRA := false; // @desc UE supports UTRA
|
||||
// Reference: 36.523-2 A.4.1-1/5
|
||||
|
||||
modulepar boolean pc_UTRA_FeatrGrp_1 := false; // @desc Support of UTRA CELL_PCH and URA_PCH to RRC_IDLE cell reselection
|
||||
// Reference: 36.523-2 A.4.5-2/1
|
||||
|
||||
modulepar boolean pc_UTRA_FeatrGrp_2 := false; // @desc Support of EUTRAN measurements and reporting in connected mode
|
||||
// Reference: 36.523-2 A.4.5-2/2
|
||||
|
||||
modulepar boolean pc_UniversalAndLocalTimeZone := false; // @desc Support of storage of the universal time and local time zone
|
||||
// Reference: 36.523-2 A.4.4-1/15
|
||||
|
||||
modulepar boolean pc_VoLTE := false; // @desc Support of VoLTE in GSMA PRD IR.92: "IMS profile for Voice and SMS"
|
||||
// Reference: 36.523-2 A.4.4-1/yy
|
||||
|
||||
modulepar boolean pc_eFDD := false; // @desc UE supports EUTRA FDD
|
||||
// Reference: 36.523-2 A.4.1-1/1
|
||||
|
||||
modulepar boolean pc_eRedirectionUTRA := false; // @desc Support of use of the UTRA system information provided by RRCConnectionRelease upon redirection
|
||||
// Reference: 36.523-2 A.4.4-1/31
|
||||
|
||||
modulepar boolean pc_eTDD := false; // @desc UE supports EUTRA TDD
|
||||
// Reference: 36.523-2 A.4.1-1/2
|
||||
|
||||
modulepar boolean pc_ue_Category_1 := false; // @desc UE Category 1
|
||||
// Reference: 36.523-2 A.4.3.2-1/1
|
||||
|
||||
modulepar boolean pc_ue_Category_2 := false; // @desc UE Category 2
|
||||
// Reference: 36.523-2 A.4.3.2-1/2
|
||||
|
||||
modulepar boolean pc_ue_Category_3 := false; // @desc UE Category 3
|
||||
// Reference: 36.523-2 A.4.3.2-1/3
|
||||
|
||||
modulepar boolean pc_ue_Category_4 := false; // @desc UE Category 4
|
||||
// Reference: 36.523-2 A.4.3.2-1/4
|
||||
|
||||
modulepar boolean pc_ue_Category_5 := false; // @desc UE Category 5
|
||||
// Reference: 36.523-2 A.4.3.2-1/5
|
||||
|
||||
|
||||
}
|
|
@ -11,16 +11,25 @@ gen_links() {
|
|||
done
|
||||
}
|
||||
|
||||
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=$BASEDIR/titan.TestPorts.Common_Components.Socket-API/src
|
||||
FILES="Socket_API_Definitions.ttcn"
|
||||
gen_links $DIR $FILES
|
||||
|
||||
DIR=$BASEDIR/titan.Libraries.TCCUsefulFunctions/src
|
||||
FILES="TCCInterface_Functions.ttcn TCCConversion_Functions.ttcn TCCConversion.cc TCCInterface.cc TCCInterface_ip.h"
|
||||
gen_links $DIR $FILES
|
||||
|
||||
DIR=$BASEDIR/titan.core/regression_test/ttcn2json
|
||||
FILES="General_Types.ttcn"
|
||||
gen_links $DIR $FILES
|
||||
|
||||
DIR=$BASEDIR/titan.ProtocolModules.IP/src
|
||||
FILES="IP_Types.ttcn IP_EncDec.cc"
|
||||
gen_links $DIR $FILES
|
||||
|
||||
DIR=$BASEDIR/titan.ProtocolModules.UDP/src
|
||||
FILES="UDP_Types.ttcn UDP_EncDec.cc"
|
||||
gen_links $DIR $FILES
|
||||
|
||||
DIR=$BASEDIR/titan.ProtocolModules.TCP/src
|
||||
FILES="TCP_Types.ttcn TCP_EncDec.cc"
|
||||
gen_links $DIR $FILES
|
||||
|
||||
|
||||
xsd2ttcn libnetfilter_conntrack.xsd
|
||||
|
|
Loading…
Reference in New Issue