Simple Module TCPSpoof

Package: inet.transportlayer.tcp_common
File: src/inet/transportlayer/tcp_common/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 (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.

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
ipOut output
appIn [ ] input

Not used!

ipIn input

Not used!

appOut [ ] output

Not used!

Signals:

Name Type Unit
sentPk cPacket

Statistics:

Name Title Source Record Unit Interpolation Mode
sentPk packets sent sentPk count, sum(packetBytes), vector(packetBytes) none

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 (~IPv4) and ~IPv6.
//
simple TCPSpoof like ITCP
{
    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");
        @signal[sentPk](type=cPacket);
        @statistic[sentPk](title="packets sent"; source=sentPk; record=count,"sum(packetBytes)","vector(packetBytes)"; interpolationmode=none);

    gates:
        output ipOut @labels(TCPSegment,IPv4ControlInfo/down,IPv6ControlInfo/down);

        input appIn[] @labels(TCPCommand/down); // Not used!
        input ipIn @labels(TCPSegment,IPv4ControlInfo/up,IPv6ControlInfo/up); // Not used!
        output appOut[] @labels(TCPCommand/up); // Not used!
}