Compound Module AccessPoint

Package: inet.node.wireless
File: src/inet/node/wireless/AccessPoint.ned

A generic access point supporting multiple wireless radios, and multiple ethernet ports. The type of the ethernet MAC, relay unit and wireless card can be specified as parameters.

By default, the access point is stationary (StationaryMobility), but that can also be configured by a parameter.

The wlan[*].mgmtType can be configured for different management types currently it can be: Ieee80211MgmtAPSimplified and Ieee80211MgmtAP. By default it is Ieee80211MgmtAP. The Simplified version does not support channel scanning, authentication and association . In this case, nodes must explicitly specify the hardware address of the wlan card they want to be associated with.

NodeStatus InterfaceTable IMobility IMACAddressTable IMACRelayUnit IWirelessNic IWiredNic

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.

Networks:

Name Type Description
AggregationTest2 network (no description)
ConfiguratorD network (no description)
ConfiguratorF network (no description)
FilteringShowcase network (no description)
HandoverExample network (no description)
HandoverNetwork network (no description)
Ieee80211VisualizationAdvancedFeaturesShowcase network (no description)
Ieee80211VisualizationDisplayingAssociationsShowcase network (no description)
Ieee80211VisualizationExample network (no description)
Ieee80211VisualizationVisualizingHandoverShowcase network (no description)
InterfaceTableVisualizationAdvancedFeaturesShowcase network (no description)
InterfaceTableVisualizationExample network (no description)
Lan80211 network (no description)
mIPv6Network network (no description)
MultiRadio network (no description)
NetworkPathRIPShowcase network

TODO documentation

PacketDropQueueOverflowShowcase network (no description)
PhysicalLinkVisualizerFilteringShowcase network

TODO documentation

PropagationD network (no description)
PropagationE network (no description)
QosThroughput network (no description)
Throughput network (no description)
VisualizationD network (no description)
VisualizationF network (no description)
VisualizationH network (no description)
VisualizationTutorialA network (no description)
WiredAndWirelessHostsWithAP network (no description)
WirelessNetWith2DHCP network (no description)
WirelessNetWithDHCP network (no description)

Parameters:

Name Type Default value Description
mobilityType string "StationaryMobility"

how the node moves around. see: inet.mobility

relayUnitType string firstAvailable("Ieee8021dRelay","MACRelayUnit")

type of the IMACRelayUnit (MACRelayUnit, Ieee8021dRelay, etc)

macTableType string "MACAddressTable"

type of the IMACAddressTable

numRadios int 1

the number of radios in the access point

hasStatus bool false

Properties:

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

Gates:

Name Direction Size Description
radioIn [ ] input numRadios
ethg [ ] inout

Unassigned submodule parameters:

Name Type Default value Description
status.initialStatus string "UP"

TODO @signal, @statistic

interfaceTable.displayAddresses bool false

whether to display IP addresses on links

macTable.agingTime double
macTable.addressTableFile string

Source code:

//
// A generic access point supporting multiple wireless radios, and
// multiple ethernet ports. The type of the ethernet MAC, relay unit
// and wireless card can be specified as parameters.
//
// By default, the access point is stationary (~StationaryMobility),
// but that can also be configured by a parameter.
//
// The wlan[*].mgmtType can be configured for different management types
// currently it can be: ~Ieee80211MgmtAPSimplified and ~Ieee80211MgmtAP.
// By default it is ~Ieee80211MgmtAP. The Simplified version does not
// support channel scanning, authentication and association .
// In this case, nodes must explicitly specify the hardware address
// of the wlan card they want to be associated with.
//
module AccessPoint
{
    parameters:
        @networkNode();
        @labels(node,ethernet-node,wireless-node);
        @display("i=device/accesspoint");
        string mobilityType = default("StationaryMobility"); // how the node moves around. see: inet.mobility
        string relayUnitType = default(firstAvailable("Ieee8021dRelay","MACRelayUnit")); // type of the IMACRelayUnit (MACRelayUnit, Ieee8021dRelay, etc)
        string macTableType = default("MACAddressTable"); // type of the ~IMACAddressTable
        int numRadios = default(1);               // the number of radios in the access point
        bool hasStatus = default(false);
        wlan[*].mgmtType = default("Ieee80211MgmtAP");
        eth[*].encapType = "EtherEncapDummy";
        *.interfaceTableModule = default(absPath(".interfaceTable"));
    gates:
        input radioIn[numRadios] @directIn;
        inout ethg[] @labels(EtherFrame-conn);
    submodules:
        status: NodeStatus if hasStatus {
            @display("p=51,43");
        }

        interfaceTable: InterfaceTable {
            @display("p=51,121;is=s");
        }
        mobility: <mobilityType> like IMobility {
            parameters:
                @display("p=208,43");
        }
        macTable: <macTableType> like IMACAddressTable {
            @display("p=73,19;is=s");
        }
        relayUnit: <relayUnitType> like IMACRelayUnit if sizeof(ethg)+numRadios>1 && relayUnitType != "" {
            parameters:
                @display("p=151,121");
        }
        wlan[numRadios]: <default("Ieee80211Nic")> like IWirelessNic {
            parameters:
                @display("p=89,225,row;q=queue");
        }
        eth[sizeof(ethg)]: <default("EthernetInterface")> like IWiredNic {
            parameters:
                mac.promiscuous = true;
                @display("p=208,225,row;q=txQueue");
        }
    connections allowunconnected:
        // connections to network outside
        // wireless interfaces MUST be connected first (i.e. ports 0..numRadios-1)
        // because broadcasts must be handled differently for wireless IFs by the relayUnit
        for i=0..numRadios-1 {
            radioIn[i] --> wlan[i].radioIn;
            wlan[i].upperLayerOut --> relayUnit.ifIn++ if sizeof(ethg)+numRadios>1;
            wlan[i].upperLayerIn <-- relayUnit.ifOut++ if sizeof(ethg)+numRadios>1;
        }
        // ethernet must be connected only AFTER wireless ports
        for i=0..sizeof(ethg)-1 {
            eth[i].phys <--> ethg[i];
            eth[i].upperLayerIn <-- relayUnit.ifOut++ if sizeof(ethg)+numRadios>1;
            eth[i].upperLayerOut --> relayUnit.ifIn++ if sizeof(ethg)+numRadios>1;
        }
}