Simple Module GPSR

Package: inet.routing.gpsr
File: src/inet/routing/gpsr/GPSR.ned

C++ definition

This module provides Greedy Perimeter Stateless Routing for Wireless Networks. The implementation supports both GG and RNG planarization algorithms.

For more information on the routing algorithm, see the GPSR paper http://www.eecs.harvard.edu/htk/publication/2000-mobi-karp-kung.pdf

GPSR

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:

Name Type Description
MultiGPSR compound module

This module provides GPSR routing for multiple network protocols simultaneously.

Parameters:

Name Type Default value Description
interfaceTableModule string

context parameters

routingTableModule string
networkProtocolModule string "^.networkLayer.ip"
outputInterface string "wlan0"
planarizationMode int 0

GPSR parameters

interfaces string "*"
beaconInterval double 10s
maxJitter double 1s
neighborValidityInterval double 30s
positionByteLength int 2 * 4B

Properties:

Name Value Description
display i=block/routing

properties

Gates:

Name Direction Size Description
ipIn input
ipOut output

Source code:

//
// This module provides Greedy Perimeter Stateless Routing for Wireless Networks.
// The implementation supports both GG and RNG planarization algorithms.
//
// For more information on the routing algorithm, see the GPSR paper
// http://www.eecs.harvard.edu/~htk/publication/2000-mobi-karp-kung.pdf
//
simple GPSR like IGPSR
{
    parameters:
        // properties
        @display("i=block/routing");

        // context parameters
        string interfaceTableModule;   // The path to the InterfaceTable module
        string routingTableModule;
        string networkProtocolModule = default("^.networkLayer.ip");
        string outputInterface = default("wlan0");

        // GPSR parameters
        int planarizationMode @enum(0,1) = default(0); // 0 for GG, 1 for RNG
        string interfaces = default("*");
        double beaconInterval @unit("s") = default(10s);
        double maxJitter @unit("s") = default(1s);
        double neighborValidityInterval @unit("s") = default(30s);
        int positionByteLength @unit(B) = default(2 * 4B);

    gates:
        input ipIn;
        output ipOut;
}