Models a 802.11 Access Point with Ethernet ports. It can be used in conjunction with WirelessHost, or any other host model containing WirelessNicSTA.
See also: WirelessAP, WirelessAPSimplified, WirelessAPWithEth, WirelessAPWithEthSimplified
See also: WirelessHost, WirelessHostSimplified
See also: MobileHost, MFMobileHost
The following diagram shows usage relationships between types. Unresolved types are missing from the diagram.
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Name | Type | Default value | Description |
---|---|---|---|
relayUnitType | string | "MACRelayUnitNP" |
type of the MACRelayUnit (MACRelayUnitNP, MACRelayUnitPP, etc) |
Name | Value | Description |
---|---|---|
node | ||
labels | node | |
display | i=device/accesspoint |
Name | Direction | Size | Description |
---|---|---|---|
radioIn | input | ||
ethg [ ] | inout |
Name | Type | Default value | Description |
---|---|---|---|
relayUnit.addressTableFile | string |
set to empty string if not used |
|
relayUnit.addressTableSize | int |
max size of address table |
|
relayUnit.agingTime | double |
max idle time for address table entries (when it expires, entry is removed from the table) |
|
wlan.mgmt.ssid | string | "SSID" | |
wlan.mgmt.beaconInterval | double | 100ms | |
wlan.mgmt.frameCapacity | int | 100 |
maximum queue length |
wlan.mgmt.numAuthSteps | int | 4 |
use 2 for Open System auth, 4 for WEP |
wlan.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. |
wlan.mac.maxQueueSize | int |
max queue length in frames; only used if queueModule=="" |
|
wlan.mac.bitrate | double | ||
wlan.mac.rtsThresholdBytes | int | 2346B |
longer messages will be sent using RTS/CTS |
wlan.mac.retryLimit | int | -1 |
maximum number of retries per message, -1 means default |
wlan.mac.cwMinData | int | -1 |
contention window for normal data frames, -1 means default |
wlan.mac.cwMinBroadcast | int | -1 |
contention window for broadcast messages, -1 means default |
wlan.mac.mtu | int | 1500 | |
wlan.radio.channelNumber | int | 0 |
channel identifier |
wlan.radio.transmitterPower | double | 20mW |
power used for transmission of messages (in mW) |
wlan.radio.bitrate | double |
(in bits/s) |
|
wlan.radio.thermalNoise | double | -110dBm |
base noise level (dBm) |
wlan.radio.pathLossAlpha | double | 2 |
used by the path loss calculation |
wlan.radio.shadowingDeviation | double | 0dB |
used by the shadowing model calculation |
wlan.radio.snirThreshold | double | 4dB |
if signal-noise ratio is below this threshold, frame is considered noise (in dB) |
wlan.radio.sensitivity | double |
received signals with power below sensitivity are ignored |
|
eth.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. |
eth.txrate | double | 100Mbps |
maximum data rate supported by this station (bit/s); actually chosen speed may be lower due to auto- configuration. 0 means fully auto-configured. |
eth.duplexEnabled | bool | true |
whether duplex mode can be enabled or not; whether MAC will actually use duplex mode depends on the result of the auto-configuration process (duplex is only possible with DTE-to-DTE connection). |
eth.mtu | int | 1500 | |
mobility.x | double | -1 |
start x coordinate (-1 = display string position, or random if it's missing) |
mobility.y | double | -1 |
start y coordinate (-1 = display string position, or random if it's missing) |
// // Models a 802.11 Access Point with Ethernet ports. // It can be used in conjunction with WirelessHost, or any other host model // containing WirelessNicSTA. // // @see WirelessAP, WirelessAPSimplified, WirelessAPWithEth, WirelessAPWithEthSimplified // @see WirelessHost, WirelessHostSimplified // @see MobileHost, MFMobileHost // module WirelessAPWithEth { parameters: @node(); @labels(node,ethernet-node,wireless-node); @display("i=device/accesspoint"); string relayUnitType = default("MACRelayUnitNP"); // type of the MACRelayUnit (MACRelayUnitNP, MACRelayUnitPP, etc) gates: input radioIn @directIn; inout ethg[] @labels(EtherFrame-conn); submodules: relayUnit: <relayUnitType> like MACRelayUnit { parameters: @display("p=169,124"); gates: lowerLayerIn[sizeof(ethg)+1]; lowerLayerOut[sizeof(ethg)+1]; } wlan: Ieee80211NicAP { // see also Ieee80211NicAPSimplified parameters: @display("p=89,225;q=queue"); } eth[sizeof(ethg)]: EtherMAC { parameters: promiscuous = true; txQueueLimit = 1000; // increase if needed queueModule = ""; @display("p=174,225,row;q=queue"); } notificationBoard: NotificationBoard { parameters: @display("p=78,60"); } mobility: NullMobility { parameters: @display("p=71,121"); } connections allowunconnected: radioIn --> { @display("m=s"); } --> wlan.radioIn; wlan.uppergateIn <-- relayUnit.lowerLayerOut[0]; wlan.uppergateOut --> relayUnit.lowerLayerIn[0]; for i=0..sizeof(ethg)-1 { eth[i].upperLayerIn <-- relayUnit.lowerLayerOut[i+1]; eth[i].upperLayerOut --> relayUnit.lowerLayerIn[i+1]; eth[i].phys <--> ethg[i]; } }