TcpNsc

Package: inet.transportlayer.tcp_nsc

TcpNsc

simple module

TCP model based on the Network Simulation Cradle by Sam Jansen. The NSC is available on the http://research.wand.net.nz/software/nsc.php page. You must read the inet/3dparty/README before use this TCP implementation. This model is compatible with both IPv4 (Ipv4) and IPv6 (Ipv6). The TCP_TRANSFER_OBJECT data transfer mode isn't implemented yet. See the ITcp for the TCP layer general informations.

Settings

stackName: You can select a TCP implementation with the stackName parameter (On the 64 bit systems, the liblinux2.6.26.so and liblinux2.6.16.so are available only).

stackBufferSize: The buffer size value for selected TCP implementation. The NSC sets the wmem_max, rmem_max, tcp_rmem, tcp_wmem parameters to this value on linux TCP implementations. For details, you can see the NSC documentation.

TcpNsc

Inheritance diagram

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

Parameters

Name Type Default value Description
stackName string "liblinux2.6.26.so"

full library name of the tcp stack implementation

stackBufferSize int 80000

the size of buffer used when communicating with the specified NSC stack

sendQueueClass string ""
receiveQueueClass string ""
crcMode string "declared"

Properties

Name Value Description
display i=block/wheelbarrow

Gates

Name Direction Size Description
appIn input
ipIn input
appOut output
ipOut output

Source code

//
// TCP model based on the Network Simulation Cradle by Sam Jansen.
// The NSC is available on the http://research.wand.net.nz/software/nsc.php page.
// You must read the inet/3dparty/README before use this TCP implementation.
// This model is compatible with both IPv4 (~Ipv4) and IPv6 (~Ipv6).
// The TCP_TRANSFER_OBJECT data transfer mode isn't implemented yet.
// See the ~ITcp for the TCP layer general informations.
//
// <b>Settings</b>
//
// stackName: You can select a TCP implementation with the stackName parameter
// (On the 64 bit systems, the liblinux2.6.26.so and liblinux2.6.16.so are available only).
//
// stackBufferSize: The buffer size value for selected TCP implementation.
// The NSC sets the wmem_max, rmem_max, tcp_rmem, tcp_wmem parameters to this value
// on linux TCP implementations. For details, you can see the NSC documentation.
//
simple TcpNsc like ITcp
{
    parameters:
        // full library name of the tcp stack implementation
        string stackName @choice("liblinux2.6.10.so","liblinux2.6.18.so","liblinux2.6.26.so","liblwip.so","libopenbsd3.5.so","libfreebsd5.3.so") = default("liblinux2.6.26.so");
        int stackBufferSize = default(80000); // the size of buffer used when communicating with the specified NSC stack
        string sendQueueClass = default("");    //# TODO: Obsolete!!!
        string receiveQueueClass = default(""); //# TODO: Obsolete!!!
        string crcMode @enum("declared","computed") = default("declared");
        @display("i=block/wheelbarrow");

    gates:
        input appIn @messageKinds(inet::TcpCommandCode);
        input ipIn;
        output appOut @messageKinds(inet::TcpStatusInd);
        output ipOut;
}

File: src/inet/transportlayer/tcp_nsc/TcpNsc.ned