Gpsr

Package: inet.routing.gpsr

Gpsr

simple module

C++ definition

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

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
GpsrRouter compound module (no description)
GpsrRouter compound module

A mobile node with the Greedy Perimeter Stateless Routing (GPSR) protocol. It extends AdhocHost by adding the GPSR routing protocol module.

GpsrStandardHost compound module (no description)
GpsrWirelessHost compound module (no description)

Extends

Name Type Description
SimpleModule simple module

Base module for all INET simple modules.

Parameters

Name Type Default value Description
displayStringTextFormat string ""

Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information

interfaceTableModule string

context parameters

routingTableModule string "^.ipv4.routingTable"
networkProtocolModule string "^.ipv4.ip"
planarizationMode string "GG"

GPSR parameters

interfaces string "*"
beaconInterval double 10s
maxJitter double 0.5 * beaconInterval
neighborValidityInterval double 4.5 * beaconInterval
positionByteLength int 2 * 4B
displayBubbles bool false

visualization parameters

Properties

Name Value Description
class Gpsr
display i=block/routing

properties

Gates

Name Direction Size Description
ipIn input
ipOut output

Source code

//
// 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 extends SimpleModule like IManetRouting
{
    parameters:
        @class(Gpsr);
        // properties
        @display("i=block/routing");

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

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

        // visualization parameters
        bool displayBubbles = default(false);   // Display bubble messages about changes in routing state for packets
    gates:
        input ipIn;
        output ipOut;
}

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