TcpLwip

Package: inet.transportlayer.tcp_lwip

TcpLwip

simple module

TCP model based on the LWIP 1.3.2 project. The original LWIP is available on this page.

See ITcp for general TCP layer informations.

Inheritance diagram

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

Parameters

Name Type Default value Description
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

Scheduled messages (observed)

msgkindctrltagsmsgnamecontext
omnetpp::cMessage0lwip_fast_timer

Direct method calls (observed)

call tofunctioninfo
MessageDispatcherinet::MessageDispatcher::arrivedarrived
MessageDispatcherinet::MessageDispatcher::handleRegisterProtocolhandleRegisterProtocol
MessageDispatcherinet::MessageDispatcher::handleRegisterServicehandleRegisterService
Ipv4inet::Ipv4::registerHookregisterHook()

Incoming messages (observed)

gatemsgkindctrlsrcModuletags
appInPacket4 (TcpCommandCode::TCP_C_SEND)TcpEchoAppDispatchProtocolReq, SocketReq
appInPacket4 (TcpCommandCode::TCP_C_SEND)TcpSessionAppDispatchProtocolReq, SocketReq
appInPacket4 (TcpCommandCode::TCP_C_SEND)TelnetAppDispatchProtocolReq, SocketReq
appInRequest1 (TcpCommandCode::TCP_C_OPEN_ACTIVE)TcpOpenCommandTcpSessionAppDispatchProtocolReq, SocketReq
appInRequest1 (TcpCommandCode::TCP_C_OPEN_ACTIVE)TcpOpenCommandTelnetAppDispatchProtocolReq, SocketReq
appInRequest2 (TcpCommandCode::TCP_C_OPEN_PASSIVE)TcpOpenCommandTcpEchoAppDispatchProtocolReq, SocketReq
appInRequest2 (TcpCommandCode::TCP_C_OPEN_PASSIVE)TcpOpenCommandTcpGenericServerAppDispatchProtocolReq, SocketReq
appInRequest3 (TcpCommandCode::TCP_C_ACCEPT)TcpAcceptCommandTcpEchoAppDispatchProtocolReq, SocketReq
appInRequest3 (TcpCommandCode::TCP_C_ACCEPT)TcpAcceptCommandTcpGenericServerAppDispatchProtocolReq, SocketReq
appInRequest5 (TcpCommandCode::TCP_C_CLOSE)TcpCommandTcpEchoAppDispatchProtocolReq, SocketReq
appInRequest5 (TcpCommandCode::TCP_C_CLOSE)TcpCommandTcpSessionAppDispatchProtocolReq, SocketReq
ipInPacket0Ipv4DispatchProtocolReq, DscpInd, EcnInd, HopLimitInd, InterfaceInd, L3AddressInd, NetworkProtocolInd, PacketProtocolTag, TosInd, MacAddressInd?
ipInPacket0Ipv6DispatchProtocolInd, DispatchProtocolReq, DscpInd, EcnInd, HopLimitInd, InterfaceInd, L3AddressInd, MacAddressInd, NetworkProtocolInd, PacketProtocolTag, TosInd

Outgoing messages (observed)

gatemsgkindctrldestModuletags
appOutIndication3 (TcpStatusInd::TCP_I_AVAILABLE)TcpAvailableInfoTcpEchoAppSocketInd, TransportProtocolInd
appOutIndication3 (TcpStatusInd::TCP_I_AVAILABLE)TcpAvailableInfoTcpGenericServerAppSocketInd, TransportProtocolInd
appOutIndication4 (TcpStatusInd::TCP_I_ESTABLISHED)TcpConnectInfoTcpEchoAppSocketInd, TransportProtocolInd
appOutIndication4 (TcpStatusInd::TCP_I_ESTABLISHED)TcpConnectInfoTcpGenericServerAppSocketInd, TransportProtocolInd
appOutIndication4 (TcpStatusInd::TCP_I_ESTABLISHED)TcpConnectInfoTcpSessionAppSocketInd, TransportProtocolInd
appOutIndication4 (TcpStatusInd::TCP_I_ESTABLISHED)TcpConnectInfoTelnetAppSocketInd, TransportProtocolInd
appOutIndication5 (TcpStatusInd::TCP_I_PEER_CLOSED)TcpCommandTcpEchoAppSocketInd, TransportProtocolInd
appOutIndication6 (TcpStatusInd::TCP_I_CLOSED)TcpCommandTcpSessionAppSocketInd, TransportProtocolInd
appOutPacket1 (TcpStatusInd::TCP_I_DATA)TcpEchoAppSocketInd, TransportProtocolInd
appOutPacket1 (TcpStatusInd::TCP_I_DATA)TcpSessionAppSocketInd, TransportProtocolInd
ipOutPacket0Ipv4DispatchProtocolReq, L3AddressReq, PacketProtocolTag, TransportProtocolInd
ipOutPacket0Ipv6DispatchProtocolReq, L3AddressReq, PacketProtocolTag, TransportProtocolInd

Packet operations (observed)

chunkTypepacketAction
peekDataAsBytes, peekDataAt, trimFront
BytesChunkPacket, insertAtBack
TcpHeaderinsertAtFront, peekAtFront, removeAtFront

Shared Tagging operations (observed)

tagTypetagAction
DispatchProtocolReqaddTag
InterfaceIndgetTag
L3AddressIndgetTag
L3AddressReqaddTag
PacketProtocolTagaddTagIfAbsent, getTag
SocketIndaddTag
SocketReqgetTag
TransportProtocolIndaddTag, addTagIfAbsent

Source code

//
// TCP model based on the LWIP 1.3.2 project.
// The original LWIP is available on
// <a href="http://savannah.nongnu.org/projects/lwip/" target="_blank">this page</a>.
//
// See ~ITcp for general TCP layer informations.
//
simple TcpLwip like ITcp
{
    parameters:
        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_lwip/TcpLwip.ned