DumbbellNetwork

Package: inet.networks.ethernet

DumbbellNetwork

network

(no description)

pcapRecorder[numPcapRecorders] : PcapRecorder

Records PCAP traces of frames sent/received by other modules within the same host.

Source:
pcapRecorder[numPcapRecorders]: PcapRecorder {
    parameters:
        moduleNamePatterns = ".^";
        @display("p=100,100;is=s");
} visualizer : like IIntegratedVisualizer

IIntegratedVisualizer: This module interface allows configuring different ~IIntegratedVisualizer submodules from INI files.

Source:
visualizer: <default(firstAvailableOrEmpty("IntegratedCanvasVisualizer"))> like IIntegratedVisualizer if typename != "" {
    parameters:
        @display("p=100,200;is=s");
} configurator : like IL3NetworkConfigurator

Ipv4NetworkConfigurator: This module assigns IPv4 addresses and sets up static routing for an IPv4 network.

IL3NetworkConfigurator: This module interface is implemented by all layer 3 network configurators.

Source:
configurator: <default("Ipv4NetworkConfigurator")> like IL3NetworkConfigurator if typename != "" {
    parameters:
        @display("p=100,300;is=s");
} macForwardingTableConfigurator : like INetworkConfigurator

INetworkConfigurator: This module interface is implemented by all network wide configurator modules.

Source:
macForwardingTableConfigurator: <default(hasGlobalArp ? "MacForwardingTableConfigurator" : "")> like INetworkConfigurator if typename != "" {
    @display("p=100,400;is=s");
} client1 : like IEthernetNetworkNode

StandardHost: IPv4 host with SCTP, TCP, UDP layers and applications.

IEthernetNetworkNode: This is the module interface for all Ethernet node types in a network.

Source:
client1: <default("StandardHost")> like IEthernetNetworkNode {
    @display("p=300,150");
} client2 : like IEthernetNetworkNode

StandardHost: IPv4 host with SCTP, TCP, UDP layers and applications.

IEthernetNetworkNode: This is the module interface for all Ethernet node types in a network.

Source:
client2: <default("StandardHost")> like IEthernetNetworkNode {
    @display("p=300,350");
} switch1 : like IEthernetNetworkNode

EthernetSwitch: Model of an Ethernet switch.

IEthernetNetworkNode: This is the module interface for all Ethernet node types in a network.

Source:
switch1: <default("EthernetSwitch")> like IEthernetNetworkNode {
    @display("p=500,250");
} switch2 : like IEthernetNetworkNode

EthernetSwitch: Model of an Ethernet switch.

IEthernetNetworkNode: This is the module interface for all Ethernet node types in a network.

Source:
switch2: <default("EthernetSwitch")> like IEthernetNetworkNode {
    @display("p=700,250");
} server1 : like IEthernetNetworkNode

StandardHost: IPv4 host with SCTP, TCP, UDP layers and applications.

IEthernetNetworkNode: This is the module interface for all Ethernet node types in a network.

Source:
server1: <default("StandardHost")> like IEthernetNetworkNode {
    @display("p=900,150");
} server2 : like IEthernetNetworkNode

StandardHost: IPv4 host with SCTP, TCP, UDP layers and applications.

IEthernetNetworkNode: This is the module interface for all Ethernet node types in a network.

Source:
server2: <default("StandardHost")> like IEthernetNetworkNode {
    @display("p=900,350");
}

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.

Extends

Name Type Description
WiredNetworkBase network (no description)

Parameters

Name Type Default value Description
recordPcap bool false
numPcapRecorders int recordPcap ? 1 : 0
hasGlobalArp bool true

Properties

Name Value Description
isNetwork
class NetworkBase

Unassigned submodule parameters

Name Type Default value Description
pcapRecorder.verbose bool true

whether to log packets on the module output

pcapRecorder.pcapFile string ""

the PCAP file to be written

pcapRecorder.fileFormat string "pcapng"
pcapRecorder.snaplen int 65535

maximum number of bytes to record per packet

pcapRecorder.dumpBadFrames bool true

enable dump of frames with hasBitError

pcapRecorder.sendingSignalNames string "packetSentToLower"

space-separated list of outbound packet signals to subscribe to

pcapRecorder.receivingSignalNames string "packetReceivedFromLower"

space-separated list of inbound packet signals to subscribe to

pcapRecorder.dumpProtocols string "ethernetmac ppp ieee80211mac"

space-separated list of protocol names as defined in the Protocol class

pcapRecorder.packetFilter object "*"

which packets are considered, matches all packets by default

pcapRecorder.helpers string ""

usable PcapRecorder::IHelper helpers for accept packettype and store/convert packet as specified linktype currently available: "inet::AckingMacToEthernetPcapRecorderHelper"

pcapRecorder.alwaysFlush bool false

flush the pcapFile after each write to ensure that all packets are captured in case of a crash

pcapRecorder.displayStringTextFormat string "rec: %n pks"
client1.numEthInterfaces int
client2.numEthInterfaces int
switch1.numEthInterfaces int
switch2.numEthInterfaces int
server1.numEthInterfaces int
server2.numEthInterfaces int

Source code

network DumbbellNetwork extends WiredNetworkBase
{
    parameters:
        *.eth[*].bitrate = default(100Mbps);
    submodules:
        client1: <default("StandardHost")> like IEthernetNetworkNode {
            @display("p=300,150");
        }
        client2: <default("StandardHost")> like IEthernetNetworkNode {
            @display("p=300,350");
        }
        switch1: <default("EthernetSwitch")> like IEthernetNetworkNode {
            @display("p=500,250");
        }
        switch2: <default("EthernetSwitch")> like IEthernetNetworkNode {
            @display("p=700,250");
        }
        server1: <default("StandardHost")> like IEthernetNetworkNode {
            @display("p=900,150");
        }
        server2: <default("StandardHost")> like IEthernetNetworkNode {
            @display("p=900,350");
        }
    connections:
        client1.ethg++ <--> EthernetLink <--> switch1.ethg++;
        client2.ethg++ <--> EthernetLink <--> switch1.ethg++;
        switch2.ethg++ <--> EthernetLink <--> server1.ethg++;
        switch2.ethg++ <--> EthernetLink <--> server2.ethg++;
        switch1.ethg++ <--> EthernetLink <--> switch2.ethg++;
}

File: src/inet/networks/ethernet/DumbbellNetwork.ned