Permalink
Switch branches/tags
Find file
Fetching contributors…
Cannot retrieve contributors at this time
127 lines (98 sloc) 5.37 KB
INET Framework for OMNEST/OMNeT++ 4.0
=====================================
The INET framework is an open-source communication networks simulation
package, written for the OMNEST/OMNeT++ simulation system. The INET framework
contains models for several Internet protocols: beyond TCP and IP there is UDP,
Ethernet, PPP and MPLS with LDP and RSVP-TE signalling. See the CREDITS file
for the names of people who have contributed to the INET Framework.
IMPORTANT: The INET Framework is continuously being improved: new parts
are added, bugs are corrected, and so on. We cannot assert that any protocol
implemented here will work fully according to the specifications. YOU ARE
RESPONSIBLE YOURSELF TO MAKE SURE THAT THE MODELS YOU USE IN YOUR SIMULATIONS
WORK CORRECTLY, AND YOU'RE GETTING VALID RESULTS.
Contributions are highly welcome. You can make a difference!
See the WHATSNEW file for recent changes.
GETTING STARTED
---------------
You may start by downloading and installing the INET demo on Windows.
Then you can gather initial experience by following the INET tutorial. After
that, you can learn the NED language from the OMNeT++ manual & sample
simulations.
After that, you may write your own topologies using the NED language. You may
assign some of the submodule parameters in NED files. You may leave some of
them unassigned.
Then, you may assign unassigned module parameters in omnetpp.ini of your
simulation. (You can refer to sample simulations & manual for the content of
omnetpp.ini)
Finally, you will be ready to run your simulation. As you see, you may use
the INET framework without writing any C++ code, as long as you use the
available modules.
To implement new protocols or modify existing ones, you'll need to
download the INET source, compile it yourself, then start adding/modifying
source files yourself.
It is a workable approach to compile your C++ code as shared library (.so on
Linux/Unix), and get the INET executable load it dynamically.
If you want to use extarnal intefaces in INET, please install libpcap-dev (on linux)
or winpcap (on windows from www.winpcap.org), then re-run the omnetpp configuration
script (./configure). You should also enable the pcap support by editing the
src/makefrag and the regeneration the INET makefiles (with the "make makefiles" command)
Directory structure
-------------------
Directories of INET framework source are arranged roughly along the OSI layers.
Bottom-up:
src/
networkinterfaces/ L2 (data link layer) protocols
contract/ API to common L2 functionality
ethernet/ Ethernet model (MAC, LLC, Encap)
etherswitch/ Ethernet switch (relay unit) model
ppp/ basic PPP model (framing only)
mfcore/ Core modules from the Mobility Framework (modified)
mf80211/ MF's 802.11b ad-hoc mode model (modified)
ext/ External interface
experimental/ Experimental protocols
underTest/ protocols that must be tested
network/ L3 (network layer) protocols
contract/ API to common L3 functionality
autorouting/ autoconfiguration of static routes
arp/ ARP protocol
queue/ router queues (QoS, RED, etc)
ipv4/ IPv4 and associated protocols
ipv6/ IPv6 implementation (currently in work)
icmpv6/ ICMPv6 implementation (currently in work)
mpls/ MPLS implementation (will be replaced soon)
ldp/ LDP signalling protocol for MPLS
rsvp_te/ RSVP-TE signalling protocol for MPLS (will be replaced soon)
scenario/ specific for RSVP-TE (will be replaced soon)
manetrouting Manet routing protocols
transport/ transport layer protocols
contract/ API to transport layer functionality
tcp/ TCP protocol
udp/ UDP protocol
rtp/ Realtime Transport Protocol (not yet integrated)
sctp/ Stream Control Transmission Protocol
applications/ application layer
tcpapp/ TCP application models
udpapp/ UDP application models (VideoStream, etc.)
generic/ traffic generators (directly for IP)
ethernet/ traffic generators (directly for Ethernet)
pingapp/ ping application
world/ scenario manager, MF channel manager
nodes/ protocol stacks, host and router models
inet/ IP-based components
ipv6/ IPv6-based components
mpls/ router models with MPLS/LDP/RSVP-TE
base/ common header files, base classes
util/ utility classes
examples/ example networks
ethernet/ example Ethernet networks
inet/ IP-based example networks
ipv6/ IPv6-based example networks
mpls/ example networks for MPLS/LDP/RSVP-TE
rtp/ RTP examples (not yet integrated)
mobileadhoc/ mobile and ad-hoc networks (incomplete)
doc/ documentation
tests/ some test
ipv4/ for IPv4 components
ipv6/ for IPv6 components
mpls/ for the MPLS models
newtcp/ for the TCP model