---
Author: Gábor Bettesch
Version: 198 17-CNL 113 529, Rev. A
Date: 2008-01-14

---
= ICMP Protocol Modules for TTCN-3 Toolset with TITAN, User Guide
:author: Gábor Bettesch
:revnumber: 198 17-CNL 113 529, Rev. A
:revdate: 2008-01-14
:toc:

== About This Document

=== How to Read This Document

This is the User Guide for the ICMP protocol module. The ICMP protocol module is developed for the TTCN-3 Toolset with TITAN. This document should be read together with Function Specification <<_4, [4]>>.

=== Presumed Knowledge

To use this protocol module the knowledge of the TTCN-3 language <<_1, [1]>> is essential.

== System Requirements

Protocol modules are a set of TTCN-3 source code files that can be used as part of TTCN-3 test suites only. Hence, protocol modules alone do not put specific requirements on the system used. However, in order to compile and execute a TTCN-3 test suite using the set of protocol modules the following system requirements must be satisfied:

* TITAN TTCN-3 Test Executor installed. For installation guide see <<_3, [3]>>.

= Protocol Modules

== Overview

Protocol modules implement the message structures of the corresponding protocol in a formalized way, using the standard specification language TTCN-3. This allows defining of test data (templates) in the TTCN-3 language <<_1, [1]>> 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 <<_2, [2]>> and hence are usable with the TITAN test toolset only.

The table below contains the implemented ICMP messages and the corresponding TTCN-3 type records. Using those type records, templates can be defined to send and receive a given message.

[cols=",,",options="header",]
|=======================================================================
|Message name |Reference |Corresponding type record in __ICMP_Types.ttcn__
|Echo Reply |<<_5, [5]>> p.13 |ICMP_EchoReply
|Destination Unreachable |<<_5, [5]>> p.3 |ICMP_DestinationUnreachable
|Source Quench |<<_5, [5]>> p.9 |ICMP_SourceQuench
|Redirect |<<_5, [5]>> p.11 |ICMP_Redirect
|Echo |<<_5, [5]>> p.13 |ICMP_Echo
|Time Exceeded |<<_5, [5]>> p.5 |ICMP_TimeExceeded
|Parameter Problem |<<_5, [5]>> p.7 |ICMP_ParameterProblem
|Timestamp |<<_5, [5]>> p.15 |ICMP_Timestamp
|Timestamp Reply |<<_5, [5]>> p.15 |ICMP_Timestamp Reply
|Information Request |<<_5, [5]>> p.17 |ICMP_InformationRequest
|Information Reply |<<_5, [5]>> p.17 |ICMP_InformationReply
|Address Mask Request |<<_6, [6]>> App.I |ICMP_AddressMaskRequest
|Address Mask Reply |<<_6, [6]>> App.I |ICMP_AddressMaskReply
|Router Advertisement, |<<_7, [7]>> p. 4 |ICMP_RouterAdvertisement
|Router Solicitation, |<<_7, [7]>> p.4 |ICMP_RouterSolicitation
|Traceroute |<<_8, [8]>> 2.3 |ICMP_Traceroute
|Conversion Failed |<<_9, [9]>> 6.2. |ICMP_ConversionFailed
|Domain Name Request |<<_10, [10]>> 2. |ICMP_DomainNameRequest
|Domain Name Reply |<<_10, [10]>> 3. |ICMP_DomainNameReply
|Security Failure |<<_11, [11]>> 2. |ICMP_SecurityFailure
|=======================================================================

The table below contains the implemented MIP Agent Advertisement Extensions (`extensions` field in `ICMP_RouterAdvertisement`) and the corresponding TTCN-3 type records

[width="100%",cols="34%,33%,33%",options="header",]
|======================================================================================
|Extension name |Reference |Corresponding type record in __ICMP_Types.ttcn__
|Mobile Agent Advertisement |<<_12, [12]>> 2.1.1. |ICMP_MIP_MobilityAgentAdvertisement_Extension
|Prefix Length |<<_12, [12]>> 2.1.2. |ICMP_MIP_PrefixLengths_Extension
|One Byte Padding |<<_12, [12]>> 2.1.3. |ICMP_MIP_OneBytePadding_Extension
|Challenge |<<_13, [13]>> 2. |ICMP_MIP_Challenge_Extension
|======================================================================================

== Installation

The set of protocol modules can be used in developing TTCN-3 test suites using any text editor. However, to make the work more efficient a TTCN-3-enabled text editor is recommended (for example, `nedit`, `xemacs`). Since the TRH protocol module is used as a part of a TTCN-3 test suite, this requires TTCN-3 Test Executor and a C compiler be installed before the module can be compiled and executed together with other parts of the test suite. For more details on the installation of TTCN-3 Test Executor see the relevant parts of <<_2, [2]>>.

== Encoding Feature

The encoder updates the checksum field with the correct value.

= Terminology

TITAN TTCN-3 Test Executor.

= Abbreviations

IETF:: Internet Engineering Task Force

IP:: Internet Protocol

ICMP:: Internet Control Message Protocol

MIP:: Mobile IP

RFC:: Request for Comments

TTCN-3:: Testing and Test Control Notation version 3

= References

[[_1]]
[1] ETSI ES 201 873–1 v.3.1.1 (06/2005) +
The Testing and Test Control Notation version 3. Part 1: Core Language

[[_2]]
[2] Programmer’s Technical Reference for the TITAN TTCN-3 Test Executor

[[_3]]
[3] Installation Guide for the TITAN TTCN-3 Test Executor

[[_4]]
[4] ICMP Protocol Modules for TTCN-3 Toolset with TITAN, Function Specification

[[_5]]
[5] IETF https://tools.ietf.org/html/rfc792[RFC 792] +
Internet Control Message Protocol

[[_6]]
[6] IETF https://tools.ietf.org/html/rfc950[RFC 950] +
Internet Standard Subnetting Procedure

[[_7]]
[7] IETF https://tools.ietf.org/html/rfc1256[RFC 1256] +
ICMP Router Discovery Messages

[[_8]]
[8] IETF https://tools.ietf.org/html/rfc1393[RFC 1393] +
Traceroute Using an IP Option

[[_9]]
[9] IETF https://tools.ietf.org/html/rfc1475[RFC 1475] +
TP/IX: The Next Internet

[[_10]]
[10] IETF https://tools.ietf.org/html/rfc1788[RFC 1788] +
ICMP Domain Name Messages

[[_11]]
[11] IETF https://tools.ietf.org/html/rfc2521[RFC 2521] +
ICMP Security Failures Messages

[[_12]]
[12] IETF https://tools.ietf.org/html/rfc3344[RFC 3344] +
IP Mobility Support for IPv4

[[_13]]
[13] IETF https://tools.ietf.org/html/rfc3012[RFC 3012] +
Mobile IPv4 Challenge/Response Extensions