Skip to content

de.tuilmenau.ics.fog.emulator

ThomasVolkert edited this page Apr 25, 2013 · 3 revisions

FoGSiEm Emulator Plug-In

Source code

Library "libpcap"

The source of the used "libpcap" library is available here: https://github.com/the-tcpdump-group/libpcap.

Library "libnet"

The source of the used "libnet" library is available here: https://github.com/sam-github/libnet.

Use-Case "FoG packets via Ethernet"

Scenario

  • tbd

Sniffing-Tool "FoGSniffer"

In the following picture, a screenshot of the output from the sniffer is shown. One single FoG packet was captured and is displayed there. From top to bottom, the picture shows the several layers of the packet, starting with the Ethernet header and ending with the payload of the corresponding FoG application in FoGSiEm:

FoGSiEm sniffer

Fragmentation

In order to support also application payload sizes beyond the maximum Ethernet payload size of 1500 bytes for one single frame, a new possibility for the fragmentation of application payload data was necessary. The following picture shows how such a fragmentation support was implemented. Special FoG LLC header are used. They signal the three different fragmentation unit types:

Start Fragment

FoGSiEm fragmentation start

Intermediate Fragment

FoGSiEm fragmentation continuation

End Fragment

FoGSiEm fragmentation end

Creating a simulation

The attachement of a real Ethernet interface is created via the following commands:

create ethernet <name of the simulation object> <interface name in> <interface name out>

If the last two parameters are equal, an attachement of a real Ethernet interface is implemented. The following example links the simulation with the Ethernet interface "eth0" and assigns it to the FoG host "nodeA":

create ethernet busEth eth0 eth0
connect nodeA busEth

If the last two names are different, an Ethenet interface can be simulated. For this purpose, the names label channels, which can be linked to each other. The following example links the FoG host "nodeA" and "nodeB" by the help of channels "in" and "out":

create ethernet bus1 in out
create ethernet bus2 out in
connect nodeA bus1
connect nodeB bus2