Ethernet Interface with Throughput Meter
Ethernet network interface which supports full-duplex operation only. Complements EtherMAC2 and EtherEncap with an output queue for QoS and RED support. It also incorporates a throuput meter, but easier recording of statistics.
See also: EthernetInterface, EthernetInterfaceNoQueue, ThruputMeter.
If a module type shows up more than once, that means it has been defined in more than one NED file.
| PSRouter (compound module) |
The Publish-Subscribe Router |
| PubHost (compound module) |
The Publisher Host |
| SubHost (compound module) |
The Subscriber Host |
| Name | Type | Default value | Description |
|---|---|---|---|
| queueType | string | "DropTailQueue" |
| Name | Value | Description |
|---|---|---|
| display | i=block/ifcard;bgb=214,341 |
| Name | Direction | Size | Description |
|---|---|---|---|
| netwIn | input | ||
| netwOut | output | ||
| phys | inout |
| Name | Type | Default value | Description |
|---|---|---|---|
| mac.promiscuous | bool | false |
if true, all packets are received, otherwise only the ones with matching destination MAC address |
| mac.address | string | "auto" |
MAC address as hex string (12 hex digits), or "auto". "auto" values will be replaced by a generated MAC address in init stage 0. |
| mac.mtu | int | 1500 | |
| thruputMeter.startTime | double | 0s | |
| thruputMeter.batchSize | int | 10000 | |
| thruputMeter.maxInterval | double | 1s |
// // <b> Ethernet Interface with Throughput Meter </b> // // Ethernet network interface which supports full-duplex operation only. // Complements EtherMAC2 and EtherEncap with an output queue for QoS and // RED support. It also incorporates a throuput meter, but easier recording // of statistics. // // @see EthernetInterface, EthernetInterfaceNoQueue, ThruputMeter. // module EthernetInterfaceThrMtr like INetworkInterface { parameters: string queueType = default("DropTailQueue"); @display("i=block/ifcard;bgb=214,341"); gates: input netwIn; output netwOut; inout phys @labels(EtherFrame); submodules: queue: <queueType> like OutputQueue { parameters: @display("p=76,65;q=l2queue"); } mac: EtherMAC2 { parameters: queueModule = "queue"; txQueueLimit = 1; // queue sends one packet at a time @display("p=129,267"); } encap: EtherEncap { parameters: @display("p=129,187"); } thruputMeter: ThrPutMeter { @display("p=76,125"); } connections: netwIn --> queue.in; queue.out --> thruputMeter.in; netwOut <-- { @display("m=n"); } <-- encap.upperLayerOut; encap.lowerLayerOut --> mac.upperLayerIn; encap.lowerLayerIn <-- mac.upperLayerOut; mac.phys <--> phys; thruputMeter.out --> encap.upperLayerIn; }