--- Author: Endre Kulcsár Version: 155 17-CNL 113 675, Rev. A Date: 2010-07-01 --- = TCP Protocol Modules for TTCN-3 Toolset with TITAN, Function Specification :author: Endre Kulcsár :revnumber: 155 17-CNL 113 675, Rev. A :revdate: 2010-07-01 :toc: == How to Read This Document This is the Function Specification for the set of TCP protocol modules. TCP protocol modules are developed for the TTCN-3 Toolset with TITAN. == Scope The purpose of this document is to specify the content of the TCP protocol modules. = General Protocol modules implement the message structures of the related protocol in a formalized way, using the standard specification language TTCN-3. This allows defining of test data (templates) in the TTCN-3 language and correctly encoding/decoding messages when executing test suites using the TITAN TTCN-3 test environment. Protocol modules are using TITAN’s RAW encoding attributes <<_1, [1]>> and hence are usable with the TITAN test toolset only. = Functional Specification == Protocol Version Implemented This protocol module contains the protocol messages and elements of the TCP protocol (see <<_3, [3]>>), [[modifications-deviations-related-to-the-protocol-specification]] == Modifications/Deviations Related to the Protocol Specification === Implemented Messages All message types listed in protocol description are implemented. [[protocol-modifications-deviations]] === Protocol Modifications/Deviations None. [[encoding-decoding-and-other-related-functions]] == Encoding/Decoding and Other Related Functions This product also contains encoding/decoding functions that provide for the correct encoding of messages when sent from TITAN and correct decoding of messages when received by TITAN. The encoder can be instructed to update the checksum field with the correct value. The encoder can also be instructed to update the data offset field with the correct value. Implemented encoding/decoding functions: [cols=3*,options=header] |=== |Name |Type of formal parameters |Type of return value |`f_enc_PDU_TCP` |IP_Address, //src. IPv4 or IPv6 address + IP_Address, //dest. IPv4 or IPv6 address + PDU_TCP, + boolean // automatically calculate data offset + boolean // automatically calculate checksum | octetstring |`f_dec_PDU_TCP` |octetstring |PDU_TCP |=== There is also a function which verifies the `checksum` field in an encoded TCP message: [cols=3*,options=header] |=== |Name |Type of formal parameters |Type of return value |`f_TCP_verify_checksum` |octetstring, IP_Address, IP_Address |boolean |=== = Terminology TITAN TTCN-3 Test Executor. = Abbreviations IETF:: Internet Engineering Task Force RFC:: Request for Comments TCP:: Transmission Control Protocol TTCN-3:: Testing and Test Control Notation version 3 = References [[_1]] [1] Programmer’s Technical Reference for the TITAN TTCN-3 Test Executor [[_2]] [2] ETSI ES 201 873-1 v.4.1.1 (2009-06) + The Testing and Test Control Notation version 3. Part 1: Core Language [[_3]] [3] IETF https://tools.ietf.org/html/rfc793[RFC 793] + Transmission Control Protocol