EPON for OMNeT++ (4.0 - 4.1)

0.7Beta

DESCRIPTION

This is a basic implementation of Ethernet Passive Optical Network. OLT and ONU modules are defined and they both support one or multiple LLIDs. MPCP protocol has been implemented on OLT and ONU models to assign LLIDs dynamically. The devices are implemented in a structured way per network Layer and basic goal is to keep them extensible. Different Queue Management, Relay and traffic classification modules should be easily integrated into the existing devices using the same MAC and MAC Control Layers.

screenshot_small.jpeg

Preview

FEATURES

PON_Splitter

Simple passive splitting. On collision, the module discards the second frame while the first one has already been transmitted. Also it counts upstream and downstream collisions. This should actually never happen, but is really useful if you want to change the TDMA functions.

MPCP Protocol implementation

The current implementation varies a bit from the RFCs on the registration process. It currently send the GATE message AFTER the ONU acknowledgment, while the drafts say that the GATE should be sent right after the REGISTER message. This way we avoid allocating resources for an ONU that may not send ACK message later. Actually it just simplifies the upstream bandwidth allocation.

Layers

INSTALLATION

Dependencies

  1. OMNet++ versions 4.0 or 4.1 (http: *omnetpp.org/omnetpp/cat_view/17-downloads/1-omnet-releases/4-older-versions)
  2. INET or INET/MANET FrameWork for the above versions (http: *inet.omnetpp.org/index.php?n=Main.Download)
  3. This version depends on a smaller project for 802.1Q vlans that comes in the same archive.

Installation should be straight forward. OMNet++ 4.0 and INET framework are required. Steps:

Troubleshooting

Some common errors, I usually receive emails for, are listed bellow:

1. "inetmanet/src/linklayer/contract/Ieee802Ctrl_m.h:83:5: error: expected identifier before numeric constant" There are some illegal characters in the file Ieee802Ctrl.msg and specifically in the "enum EtherType". Solutions:

2. "Conversion from 'cPar' to 'uint64_t' is ambiguous" Some casting is needed i.e: datarateLimit=(uint64_t)par("datarateLimit");

NOTES

Tested on:

With many inetmanet versions but...: Latest INET versions will not work (v2). The same for OMNet++ 4.2!. You need to get OMNet++ 4.1 and compatible INET! Porting will not be done (not now at least - Any ported code is more than welcome)

For any comments or corrections email me at bodozoglou@gmail.com

I hope it works for you...
Andreas

Generated on Sun Mar 18 14:17:50 2012 for EPONImplementationforOMNet++ by  doxygen 1.6.3