The Publish-Subscribe Router
The PSRouter, may support any number of Ethernet interfaces, which on the other hand, all have to be connected to the Forwarder. There is no other protocol able to operate in the PSRouter, apart from the Publish-Subscribe scheme.
See also: Forwarder, FwTable, LinkMon.
Author: Nikolaos Vastardis
ICN_Net (network) |
The ICN Simulation Ground |
ICN_Network (network) |
The ICN Simulation Ground |
Name | Type | Default value | Description |
---|---|---|---|
routingFile | string | "" | |
numIf | int | 0 |
Name | Value | Description |
---|---|---|
node | ||
labels | node | |
display | i=abstract/router;bgb=538,330 |
Name | Direction | Size | Description |
---|---|---|---|
pppg [ ] | inout | ||
ethg [ ] | inout |
Name | Type | Default value | Description |
---|---|---|---|
eth.mac.promiscuous | bool | false |
if true, all packets are received, otherwise only the ones with matching destination MAC address |
eth.mac.address | string | "auto" |
MAC address as hex string (12 hex digits), or "auto". "auto" values will be replaced by a generated MAC address in init stage 0. |
eth.mac.mtu | int | 1500 | |
eth.thruputMeter.startTime | double | 0s | |
eth.thruputMeter.batchSize | int | 10000 | |
eth.thruputMeter.maxInterval | double | 1s | |
forwarder.procDelay | double | 0s | |
fwTable.routerId | string | "auto" |
for routers, the router id using IP address dotted notation; specify "auto" to select the highest interface address; should be left empty ("") for hosts |
fwTable.IPForward | bool | true |
turns IP forwarding on/off |
fwTable.routingFile | string | "" |
routing table file name |
linkMon.pollInt | double | uniform(1s,2s) |
Interval between polling for statistics |
linkMon.reportInt | double | 5s |
Interval between sending reports to the TM |
// // <b> The Publish-Subscribe Router </b> // // The PSRouter, may support any number of Ethernet interfaces, which // on the other hand, all have to be connected to the Forwarder. There // is no other protocol able to operate in the PSRouter, apart from the // Publish-Subscribe scheme. // // @see Forwarder, FwTable, LinkMon. // // @author Nikolaos Vastardis // module PSRouter { parameters: @node(); @labels(node,ethernet-node); @display("i=abstract/router;bgb=538,330"); string routingFile = default(""); int numIf = 0; gates: inout pppg[] @labels(PPPFrame-conn); inout ethg[] @labels(EtherFrame-conn); submodules: notificationBoard: NotificationBoard { parameters: @display("p=60,60"); } interfaceTable: InterfaceTable { parameters: @display("p=257,60"); } eth[sizeof(ethg)]: EthernetInterfaceThrMtr { parameters: @display("p=57,277,row;q=l2queue"); } forwarder: Forwarder { parameters: @display("p=257,143;i=block/fork"); gates: ifIn[sizeof(ethg)]; ifOut[sizeof(ethg)]; } fwTable: FwTable { @display("p=447,60"); } linkMon: LinkMon { @display("p=60,149"); } connections allowunconnected: for i=0..sizeof(ethg)-1 { ethg[i] <--> eth[i].phys; eth[i].netwOut --> forwarder.ifIn[i]; eth[i].netwIn <-- forwarder.ifOut[i]; } }