Compound Module OLT_IF

Package: PON.OLT
File: src/OLT/OLT_IF.ned

TODO auto-generated module

EPON_mac OLTMacCtl OLT_Q_mgmt

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.

Used in compound modules:

If a module type shows up more than once, that means it has been defined in more than one NED file.

EPON_OLT (compound module)

TODO auto-generated module

Parameters:

Name Type Default value Description
queueType string "DropTailQueue"
QMgmtUnit string "OLT_QPL_RR"
MacCtlModule string "OLTMacCtl_NP"

Properties:

Name Value Description
display i=block/ifcard;bgb=168,241

Gates:

Name Direction Size Description
netwIn input
netwOut output
phys inout

Unassigned submodule parameters:

Name Type Default value Description
epon_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.

epon_mac.txQueueLimit int 2

maximum number of frames queued up for transmission; additional frames are dropped. Only used if queueModule=="" The 2nd frame is used in case of changing registers with MPCP ... sometimes 1 is already transmitted and the next MPCP decides to transmitt again with the new times.

epon_mac.queueModule string ""

name of optional external queue module

epon_mac.mtu int 1500
olt_Q_mgmt.slotLength int
olt_Q_mgmt.slotNumber int
olt_Q_mgmt.regTimeInt int
olt_Q_mgmt.regAckTimeOut int
olt_Q_mgmt.queueLimit int
olt_Q_mgmt.datarateLimit int

Limit the assigned bandwidth to scale down the simulation

Source code:

//
// TODO auto-generated module
//
module OLT_IF
{
    parameters:
        string queueType = default("DropTailQueue");
        @display("i=block/ifcard;bgb=168,241");
        string QMgmtUnit = default("OLT_QPL_RR");
        string MacCtlModule = default("OLTMacCtl_NP");

    gates:
        input netwIn;
        output netwOut;
        inout phys;

    submodules:
        epon_mac: EPON_mac {
            @display("p=84,185;i=block/rxtx");
            promiscuous = true;
        }
        oltMacCtl: <MacCtlModule> like OLTMacCtl {
            @display("p=84,116");
        }

        olt_Q_mgmt: <QMgmtUnit> like OLT_Q_mgmt {
            @display("p=84,42");
        }
    connections:
        epon_mac.upperLayerOut --> oltMacCtl.lowerLayerIn;
        oltMacCtl.lowerLayerOut --> epon_mac.upperLayerIn;

        olt_Q_mgmt.lowerLayerOut --> oltMacCtl.upperLayerIn;
        olt_Q_mgmt.upperLayerOut --> netwOut;

        epon_mac.phys <--> phys;
        netwIn --> olt_Q_mgmt.upperLayerIn;
        oltMacCtl.upperLayerOut --> olt_Q_mgmt.lowerLayerIn;
}