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; }