Simple Module TCPSpoof

Package: inet.applications.tcpapp
File: src/applications/tcpapp/TCPSpoof.ned

C++ definition

Sends fabricated TCP packets. This is a base implementation, you'll probably have to customize it in C++ according to what you want to send and when you want to send it.

Compatible with both IPv4 and IPv6.

TCPSpoof

Usage diagram:

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram.

Inheritance diagram:

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.

Used in compound modules:

Name Type Description
TCPSpoofingHost compound module

IP host with TCPSpoof in the application layer.

Parameters:

Name Type Default value Description
srcAddress string ""

local address; may be left empty ("")

destAddress string ""

destination address

srcPort int

local port number

destPort int

destination port number

seqNo int

sequence number (-1 for TCP ISS)

isSYN bool true

whether to set SYN bit on packet

t double

simulation time to send at

Properties:

Name Value Description
display i=block/square

Gates:

Name Direction Size Description
ipv4Out output
ipv6Out output

Source code:

//
// Sends fabricated TCP packets. This is a base implementation,
// you'll probably have to customize it in C++ according to
// what you want to send and when you want to send it.
//
// Compatible with both IPv4 and IPv6.
//
simple TCPSpoof
{
    parameters:
        string srcAddress = default("");  // local address; may be left empty ("")
        string destAddress = default(""); // destination address
        int srcPort; // local port number
        int destPort; // destination port number
        int seqNo; // sequence number (-1 for TCP ISS)
        bool isSYN = default(true); // whether to set SYN bit on packet
        double t @unit("s"); // simulation time to send at
        @display("i=block/square");
    gates:
        output ipv4Out @labels(TCPSegment,IPControlInfo/down);
        output ipv6Out @labels(TCPSegment,IPv6ControlInfo/down);
}