Ieee8022LlcLayer

Package: inet.linklayer.ieee8022

Ieee8022LlcLayer

compound module

(no description)

socketTable : Ieee8022LlcSocketTable

Source:
socketTable: Ieee8022LlcSocketTable if hasSocketSupport {
    @display("p=100,100");
} socketCommandProcessor : like IPacketFlow

IPacketFlow: Interface for packet flows.

Source:
socketCommandProcessor: <default(hasSocketSupport ? "Ieee8022LlcSocketCommandProcessor" : "")> like IPacketFlow {
    @display("p=400,100");
} classifier : like IPacketClassifier

PacketClassifier: Connects one packet producer to multiple packet consumers.

IPacketClassifier: Interface for packet classifier modules.

Source:
classifier: <default("PacketClassifier")> like IPacketClassifier {
    @display("p=400,200");
} snapInserter : like IIeee8022SnapInserter

Source:
snapInserter: <default("Ieee8022SnapInserter")> like IIeee8022SnapInserter if typename != "" {
    @display("p=300,300");
} m1 : PacketMultiplexer

Connects multiple packet producers to one packet consumer.

Source:
m1: PacketMultiplexer {
    @display("p=300,400");
} llcInserter : like IIeee8022LlcInserter

Source:
llcInserter: <default("Ieee8022LlcInserter")> like IIeee8022LlcInserter if typename != "" {
    @display("p=300,500");
} m2 : PacketMultiplexer

Connects multiple packet producers to one packet consumer.

Source:
m2: PacketMultiplexer {
    @display("p=400,600");
} socketPacketProcessor : like IPacketFlow

IPacketFlow: Interface for packet flows.

Source:
socketPacketProcessor: <default(hasSocketSupport ? "Ieee8022LlcSocketPacketProcessor" : "")> like IPacketFlow {
    @display("p=700,100");
} protocolChecker : ProtocolChecker

Source:
protocolChecker: ProtocolChecker {
    @display("p=700,200");
} llcChecker : like IIeee8022LlcChecker

Source:
llcChecker: <default("Ieee8022LlcChecker")> like IIeee8022LlcChecker {
    @display("p=600,500");
} snapChecker : like IIeee8022SnapChecker

Source:
snapChecker: <default("Ieee8022SnapChecker")> like IIeee8022SnapChecker {
    @display("p=800,500");
} dp : MessageDispatcher

Facilitates the interconnection of applications, protocols, and network interfaces, dispatching...

Source:
dp: MessageDispatcher {
    @display("p=700,400;b=100,5,,,,1");
}

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
hasSocketSupport bool false

Properties

Name Value Description
display i=block/layer

Gates

Name Direction Size Description
upperLayerIn input
upperLayerOut output
lowerLayerIn input
lowerLayerOut output

Unassigned submodule parameters

Name Type Default value Description
socketTable.displayStringTextFormat string ""

Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information

m1.displayStringTextFormat string "passed %p pk (%l)"

Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information

m1.forwardServiceRegistration bool true
m1.forwardProtocolRegistration bool true
m2.displayStringTextFormat string "passed %p pk (%l)"

Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information

m2.forwardServiceRegistration bool true
m2.forwardProtocolRegistration bool true
protocolChecker.displayStringTextFormat string "dropped %d/%p pk (%k/%l)"

Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information

protocolChecker.backpressure bool false
dp.displayStringTextFormat string "processed %p pk (%l)"

Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information

dp.interfaceTableModule string

Module path to the ~InterfaceTable module

dp.forwardServiceRegistration bool true
dp.forwardProtocolRegistration bool true
dp.interfaceMapping object {}

Maps network interface names to connected submodule names (e.g. {"eth0": "bridging"}), overrides automatically learned dispatching; * overrides all learned network interfaces, ? overrides default

dp.serviceMapping object {}

Maps protocols to connected submodule names (e.g. {"ethernetmac": "bridging"}), overrides automatically learned dispatching; * overrides all learned services, ? overrides default

dp.protocolMapping object {}

Maps protocols to connected submodule names (e.g. {"ipv4": "bridging"}), overrides automatically learned dispatching; * overrides all learned protocols, ? overrides default

Source code

module Ieee8022LlcLayer like IIeee8022LlcLayer
{
    parameters:
        bool hasSocketSupport = default(false);
        @display("i=block/layer");
    gates:
        input upperLayerIn;
        output upperLayerOut;
        input lowerLayerIn;
        output lowerLayerOut;
    submodules:
        socketTable: Ieee8022LlcSocketTable if hasSocketSupport {
            @display("p=100,100");
        }
        socketCommandProcessor: <default(hasSocketSupport ? "Ieee8022LlcSocketCommandProcessor" : "")> like IPacketFlow {
            @display("p=400,100");
        }
        classifier: <default("PacketClassifier")> like IPacketClassifier {
            @display("p=400,200");
        }
        snapInserter: <default("Ieee8022SnapInserter")> like IIeee8022SnapInserter if typename != "" {
            @display("p=300,300");
        }
        m1: PacketMultiplexer {
            @display("p=300,400");
        }
        llcInserter: <default("Ieee8022LlcInserter")> like IIeee8022LlcInserter if typename != "" {
            @display("p=300,500");
        }
        m2: PacketMultiplexer {
            @display("p=400,600");
        }
        socketPacketProcessor: <default(hasSocketSupport ? "Ieee8022LlcSocketPacketProcessor" : "")> like IPacketFlow {
            @display("p=700,100");
        }
        protocolChecker: ProtocolChecker {
            @display("p=700,200");
        }
        llcChecker: <default("Ieee8022LlcChecker")> like IIeee8022LlcChecker {
            @display("p=600,500");
        }
        snapChecker: <default("Ieee8022SnapChecker")> like IIeee8022SnapChecker {
            @display("p=800,500");
        }
        dp: MessageDispatcher {
            @display("p=700,400;b=100,5,,,,1");
        }
    connections:
        upperLayerIn --> { @display("m=n"); } --> socketCommandProcessor.in;
        socketCommandProcessor.out --> classifier.in;
        classifier.out++ --> snapInserter.in if exists(snapInserter);
        classifier.out++ --> m1.in++;
        snapInserter.out --> m1.in++ if exists(snapInserter);
        m1.out --> llcInserter.in;
        classifier.out++ --> m2.in++ if exists(llcInserter);
        llcInserter.out --> m2.in++ if exists(llcInserter);
        m2.out --> { @display("m=s"); } --> lowerLayerOut;

        lowerLayerIn --> { @display("m=s"); } --> dp.in++;
        dp.out++ --> llcChecker.in;
        dp.out++ --> snapChecker.in;
        llcChecker.out --> dp.in++;
        snapChecker.out --> dp.in++;
        dp.out++ --> protocolChecker.in;
        protocolChecker.out --> socketPacketProcessor.in;
        socketPacketProcessor.out --> { @display("m=n"); } --> upperLayerOut;
}
File: src/inet/linklayer/ieee8022/Ieee8022LlcLayer.ned