Compound Module RTPHost

Package: inet.transport.rtp
File: src/transport/rtp/RTPHost.ned

(no description)

NotificationBoard InterfaceTable RoutingTable RTPApplication RTPLayer UDP NetworkLayer PPPInterface

Usage diagram:

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram. Click here to see the full picture.

Inheritance diagram:

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram. Click here to see the full picture.

Networks:

RTPMulticast1 (network) (no description)
RTPNetwork (network) (no description)

Parameters:

Name Type Default value Description
profileName string
destinationAddress string
portNumber int
bandwidth double
fileName string
payloadType int
IPForward bool

network information

routingFile string

Properties:

Name Value Description
display i=device/pc2

Gates:

Name Direction Size Description
pppg [ ] inout

Unassigned submodule parameters:

Name Type Default value Description
application.commonName string
application.sessionEnterDelay double
application.transmissionStartDelay double
application.transmissionStopDelay double
application.sessionLeaveDelay double
networkLayer.ip.procDelay double 0s
networkLayer.arp.retryTimeout double 1s

number seconds ARP waits between retries to resolve an IP address

networkLayer.arp.retryCount int 3

number of times ARP will attempt to resolve an IP address

networkLayer.arp.cacheTimeout double 120s

number seconds unused entries in the cache will time out

ppp.ppp.mtu int 4470

Source code:

module RTPHost
{
    parameters:
        string profileName;
        string destinationAddress;
        int portNumber;
        double bandwidth;
        string fileName;
        int payloadType;
        // network information
        bool IPForward;
        string routingFile;
        @display("i=device/pc2");

    gates:
        inout pppg[] @labels(PPPFrame-conn);

    submodules:
        notificationBoard: NotificationBoard {
            @display("p=60,70");
        }
        interfaceTable: InterfaceTable {
            @display("p=60,134");
        }
        routingTable: RoutingTable {
            parameters:
                IPForward = IPForward;
                routerId = "";
                routingFile = routingFile;
                @display("p=60,214");
        }
        application: RTPApplication {
            parameters:
                profileName = profileName;
                destinationAddress = destinationAddress;
                portNumber = portNumber;
                bandwidth = bandwidth;
                fileName = fileName;
                payloadType = payloadType;
                @display("p=161,36");
        }
        rtpLayer: RTPLayer {
            parameters:
                @display("p=161,104");
        }
        udpModule: UDP {
            parameters:
                @display("p=161,170");
            gates:
                appIn[2];
                appOut[2];
        }
        networkLayer: NetworkLayer {
            parameters:
                proxyARP = false;
                @display("p=161,246");
            gates:
                ifIn[sizeof(pppg)];
                ifOut[sizeof(pppg)];
        }
        ppp[sizeof(pppg)]: PPPInterface {
            parameters:
                @display("p=161,324,row");
        }
    connections allowunconnected:
        // transport connections
        application.rtpOut --> rtpLayer.appIn;
        application.rtpIn <-- rtpLayer.appOut;

        rtpLayer.toUDPfromRTP --> udpModule.appIn[0];
        rtpLayer.fromUDPtoRTP <-- udpModule.appOut[0];

        rtpLayer.toUDPfromRTCP --> udpModule.appIn[1];
        rtpLayer.fromUDPtoRTCP <-- udpModule.appOut[1];

        networkLayer.udpOut --> udpModule.ipIn;
        networkLayer.udpIn <-- udpModule.ipOut;

        // connections to network outside
        for i=0..sizeof(pppg)-1 {
            pppg[i] <--> ppp[i].phys;
            ppp[i].netwOut --> networkLayer.ifIn[i];
            ppp[i].netwIn <-- networkLayer.ifOut[i];
        }

}