Package: inet.emulation.linklayer.ieee80211
ExtUpperIeee80211Interface
compound moduleThis module provides an IEEE 802.11 network interface suitable for emulation. The upper part of the network interface is realized in the real world using a real TAP device of the host computer which is running the simulation.
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 |
---|---|---|
ExtInterface | compound module |
This module provides a base module for external network interfaces. |
Parameters
Name | Type | Default value | Description |
---|---|---|---|
displayStringTextFormat | string | "%a (%i)\n%m" | |
interfaceTableModule | string | ||
device | string | ||
namespace | string | "" | |
copyConfiguration | string | "" | |
address | string | "auto" | |
broadcast | bool | true | |
multicast | bool | true | |
pointToPoint | bool | false | |
mtu | int | 4470B | |
energySourceModule | string | "" | |
opMode | string | "g(mixed)" | |
bitrate | double | -1bps |
Properties
Name | Value | Description |
---|---|---|
class | ExtInterface | |
display | i=block/ifcard |
Gates
Name | Direction | Size | Description |
---|---|---|---|
upperLayerIn | input | ||
upperLayerOut | output | ||
radioIn | input |
to receive signals |
Unassigned submodule parameters
Name | Type | Default value | Description |
---|---|---|---|
tap.device | string |
name of existing real tap interface |
|
tap.namespace | string | "" | |
tap.packetNameFormat | string | "Ext-%p-%t-%n" | |
mgmt.macModule | string |
The path to the MAC module |
Source code
// // This module provides an IEEE 802.11 network interface suitable for emulation. // The upper part of the network interface is realized in the real world using // a real TAP device of the host computer which is running the simulation. // module ExtUpperIeee80211Interface extends ExtInterface like IWirelessInterface { parameters: string energySourceModule = default(""); string opMode @enum("a","b","g(erp)","g(mixed)","n(mixed-2.4Ghz)","p","ac") = default("g(mixed)"); double bitrate @unit(bps) = default(-1bps); **.opMode = opMode; **.bitrate = bitrate; mac.modeSet = default(opMode); mac.*.rateSelection.dataFrameBitrate = default(bitrate); *.macModule = default(absPath(".mac")); *.mibModule = default(absPath(".mib")); *.interfaceTableModule = default(absPath(interfaceTableModule)); *.energySourceModule = default(absPath(energySourceModule)); @display("i=block/ifcard"); gates: input radioIn @labels(ISignal); // to receive signals submodules: mib: Ieee80211Mib { parameters: @display("p=100,100;is=s"); } tap: ExtEthernetTapDevice { parameters: @display("p=250,100"); } llc: <default("Ieee80211Portal")> like IIeee80211Llc { parameters: @display("p=250,200"); } classifier: <default("")> like IIeee8021dQosClassifier if typename != "" { parameters: @display("p=400,150"); } agent: <default("Ieee80211AgentSta")> like IIeee80211Agent if typename != "" { parameters: @display("p=550,350"); } mgmt: <default("Ieee80211MgmtSta")> like IIeee80211Mgmt { parameters: @display("p=400,350"); } mac: <default("Ieee80211Mac")> like IIeee80211Mac { parameters: @display("p=250,350"); } radio: <default("Ieee80211ScalarRadio")> like IRadio { parameters: @display("p=250,500"); } connections allowunconnected: radioIn --> { @display("m=s"); } --> radio.radioIn; radio.upperLayerIn <-- mac.lowerLayerOut; radio.upperLayerOut --> mac.lowerLayerIn; mac.mgmtOut --> mgmt.macIn; mac.mgmtIn <-- mgmt.macOut; mgmt.agentOut --> agent.mgmtIn if exists(agent); mgmt.agentIn <-- agent.mgmtOut if exists(agent); llc.upperLayerOut --> { @display("m=n"); } --> tap.lowerLayerIn; llc.upperLayerIn <-- { @display("m=n"); } <-- tap.lowerLayerOut if !exists(classifier); llc.upperLayerIn <-- { @display("m=n"); } <-- classifier.out if exists(classifier); llc.lowerLayerOut --> mac.upperLayerIn; llc.lowerLayerIn <-- mac.upperLayerOut; classifier.in <-- { @display("m=n"); } <-- tap.lowerLayerOut if exists(classifier); }File: src/inet/emulation/linklayer/ieee80211/ExtUpperIeee80211Interface.ned