Clone It Yourself Version - michaelkirsche/6lowpan4omnet-diy GitHub Wiki
Clone It Yourself Version
This page collects information to install and configure the 6LoWPAN simulation model in the Clone It Yourself version.
Refer to the Frequently Asked Questions page for a list of common questions.
The installation is split into several parts, which should be followed as listed here.
##Step 0: Prerequisites##
Next to a current OMNeT++ release, you will need to clone the following Github repositories and checkout the listed branches. Remember that INETMANET is just a branch of INET with additional models and protocols for wireless communication. If you want to use 6LoWPAN with IEEE 802.15.4 support, you have to include the 6LoWPAN module in INETMANET or use our own IEEE 802.15.4 simulation model for INET.
-
Change to a directory of choice (e.g. ~/git) or adjust the git clone command to clone the following two repos in directories of your choice
or
-
Use the OMNeT++ IDE to import the following two Git projects:
- Contiki → branch with OMNeT++ platform
git clone https://github.com/michaelkirsche/contiki.git
cd contiki
git checkout omnetpp
- INETMANET → branch with 6LoWPAN wrapper and example
git clone https://github.com/michaelkirsche/inetmanet-2.0.git
cd inetmanet-2.0
git checkout 6lowpan
##Step 1: Configure and compile Contiki##
The Contiki version in the repository is already configured and extended with an OMNeT++ platform. Follow these steps to compile a Contiki library:
- goto
/contiki/examples/hello-world
- compile Contiki with
make TARGET=omnetpp hello-world
- check that Contiki compiles without errors and that
hello-world.omnetpp
andcontiki-omnetpp.a
were created
##Step 2: Configure and compile INET / INETMANET##
The INETMANET version from the fork is already extended with the necessary 6LoWPAN wrapper.
You need to check or adjust two paths in the custom makefile of the _6lowpan
module (filename Makefile.6lowpan
).
- adjust
CONTIKI_PATH
to the root path of your Contiki installation (e.g.,CONTIKI_PATH = /home/user/git/contiki
) - adjust
CONTIKI_LIB
to the directory and name of the library that you just compiled in Step 1 (e.g.,CONTIKI_LIB = /examples/hello-world/contiki-omnetpp.a
)
You are ready to compile INET/INETMANET with the 6LoWPAN wrapper and Contiki's header files.
-
For INET - Recommend: Start the OMNeT++ Eclipse IDE, open the INET project, and de-select features that you do not use (to speed up the build process).
The following list of features must be left enabled: TCP common, TCP INET, IPv4 and IPv6 protocol, UDP protocol. Other recommend features are Mobility, Radio, and their according examples. -
For INETMANET - Recommend: Start the OMNeT++ Eclipse IDE, open the INETMANET project, and select necessary features and deselect not needed features (to speed up the build process).
If you want to use INETMANET to combine 6LoWPAN with IEEE 802.15.4, remember to include the IEEE 802.15.4 code in the project features dialog when building INETMANET.
As INETMANET 2.0 has yet some unresolved problems with project feature dependencies, you must enable at least the following module and according examples: TCP Common, TCP INET, IPv4, INET Examples, IPv6, UDP, Ethernet, PPP, MPLS, OSPFv2, MANET routing, Mobility, Radio, 802.11a/b/g/e (infrastructure/adhoc), wireless examples, 802.15.4 code, 802.11a/b/g/e (mesh networking).
Beware that you must not enable xMIPv6 as it breaks hybrid hosts with wireless and wired interfaces.
You can also compile INET/INETMANET manually on the shell (make cleanall
, make makefiles
and make all
). But you might run into troubles with INETMANET and its xMIPv6 module as described above. The recommended way is to use the Eclipse IDE, disable xMIPv6 and compile INETMANET afterwards.
If INET/INETMANET compiles without errors, you are ready to set up a 6LoWPAN simulation.
##Step 3: Start an example simulation##
Example simulation scenarios are provided in the release for convenient use with INET/INETMANET.
Take a look at these examples (located e.g., under /examples/wpan/sixlowpan
) for further information of how to include and use 6LoWPAN in your own simulations.
If you have any questions regarding the installation and use of the model or if you find errors or something missing in the description, please create an issue at the Github repository or contact the authors via Github.