GPSR

Package: inet.routing.gpsr

GPSR

simple module

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 htk/publication/2000-mobi-karp-kung.pdf" target="_blank">http://www.eecs.harvard.edu/htk/publication/2000-mobi-karp-kung.pdf

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;
}

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