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: This module interface is implemented by packet flows.

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

PacketClassifier: This module connects one packet producer to multiple packet consumers.

IPacketClassifier: This module interface is implemented by 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

This module 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

This module connects multiple packet producers to one packet consumer.

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

IPacketFlow: This module interface is implemented by 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

This module connects multiple applications, protocols and interfaces with each other and...

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
m1.displayStringTextFormat string "passed %p pk (%l)"

determines the text that is written on top of the submodule

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

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

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

determines the text that is written on top of the submodule

dp.forwardServiceRegistration bool true
dp.forwardProtocolRegistration bool true

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