Simple Module PEtherApp

Package: pubsub_sim.PSetherApp
File: src/PSetherApp/PEtherApp.ned

C++ definition

The Ethernet Publisher Application

This publisher application needed in every publisher node in a publish subscribe network. It works just over the MAC layer, and this is why it is necessary to implement MAC encapsulation. This module extends the BasePSApp module and adds the necessary functionality. For instance, it is able only to publish new or existing Information Items, kept in the Information item table.

See also: BasePSApp

Author: Nikolaos Vastardis

PEtherApp

Extends:

BasePSApp (simple module)

The Base of the Pub-Sub Ethernet Applications

Used in compound modules:

If a module type shows up more than once, that means it has been defined in more than one NED file.

PubHost (compound module)

The Publisher Host

Parameters:

Name Type Default value Description
actPeak double 30s

The time period the application mainly active

datarate int 10Mbps

The datarate of each stream from the publisher

destAddress string "FF:FF:FF:FF:FF:FF"

destination MAC address, preferably broadcast

startTime double this.waitTime

time of sending the first request

pubInterval double 10s

time interval of making a new publication

waitInterval double uniform(0s,1s)

interval between sending requests

reqLength int 100B

length of request packets

respLength int 1KB

length of response packets

fileSize int 20Mb

the max size of the published files

Properties:

Name Value Description
display i=block/app
class PEtherApp

Gates:

Name Direction Size Description
ifIn [ ] input
ifOut [ ] output

Source code:

//
// <b> The Ethernet Publisher Application </b>
//
// This publisher application needed in every publisher node in a publish
// subscribe network. It works just over the MAC layer, and this is why it
// is necessary to implement MAC encapsulation. This module extends the 
// BasePSApp module and adds the necessary functionality. For instance, 
// it is able only to publish new or existing Information Items, kept in 
// the Information item table.
//
// @see BasePSApp
//
// @author Nikolaos Vastardis
//
simple PEtherApp extends BasePSApp
{
    parameters:
        @class(PEtherApp);
        string destAddress = default("FF:FF:FF:FF:FF:FF");  	// destination MAC address, preferably broadcast
        double startTime @unit("s") = default(this.waitTime);	// time of sending the first request
        double pubInterval @unit("s") = default(10s);  			// time interval of making a new publication
        volatile double waitInterval @unit("s") = default(uniform(0s,1s));  // interval between sending requests
        volatile int reqLength @unit(B) = default(100B);  		// length of request packets
        volatile int respLength @unit(B) = default(1KB);  		// length of response packets
        volatile int fileSize @unit(Mb) = default(20Mb);		// the max size of the published files
        @display("i=block/app");
}