Compound Module WirelessAPWithEthSimplified

Package: inet.nodes.wireless
File: src/nodes/wireless/WirelessAPWithEthSimplified.ned

Models a 802.11 Access Point with Ethernet ports, but using a simplified NIC that does not support handovers. It can be used in conjunction with WirelessHostSimplified, or any other host model containing WirelessNicSTASimplified.

See also: WirelessAP, WirelessAPSimplified, WirelessAPWithEth, WirelessAPWithEthSimplified

See also: WirelessHost, WirelessHostSimplified

See also: MobileHost, MFMobileHost

MACRelayUnit Ieee80211NicAPSimplified EtherMAC NotificationBoard NullMobility

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.

Parameters:

Name Type Default value Description
relayUnitType string "MACRelayUnitNP"

type of the MACRelayUnit (MACRelayUnitNP, MACRelayUnitPP, etc)

Properties:

Name Value Description
node
labels node
display i=device/accesspoint

Gates:

Name Direction Size Description
ethg [ ] inout
radioIn input

Unassigned submodule parameters:

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.frameCapacity int 100
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)

Source code:

//
// Models a 802.11 Access Point with Ethernet ports, but using a simplified NIC
// that does not support handovers. It can be used in conjunction with
// WirelessHostSimplified, or any other host model containing WirelessNicSTASimplified.
//
// @see WirelessAP, WirelessAPSimplified, WirelessAPWithEth, WirelessAPWithEthSimplified
// @see WirelessHost, WirelessHostSimplified
// @see MobileHost, MFMobileHost
//
module WirelessAPWithEthSimplified
{
    parameters:
        @node();
        @labels(node,ethernet-node,wireless-node);
        @display("i=device/accesspoint");
        string relayUnitType = default("MACRelayUnitNP"); // type of the MACRelayUnit (MACRelayUnitNP, MACRelayUnitPP, etc)
    gates:
        inout ethg[] @labels(EtherFrame-conn);
        input radioIn @directIn;
    submodules:
        relayUnit: <relayUnitType> like MACRelayUnit {
            parameters:
                @display("p=169,124");
            gates:
                lowerLayerIn[sizeof(ethg)+1];
                lowerLayerOut[sizeof(ethg)+1];
        }
        wlan: 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];
        }
}