File: Examples/MPLS/TestTE_Tunnel/RSVPTE4.ned
Example network to demonstrate RSVP-TE.
See the README file in the model directory for scenario description.
The following diagram shows usage relationships between modules, networks and channels. Unresolved module (and channel) types are missing from the diagram. Click here to see the full picture.
If a module type shows up more than once, that means it has been defined in more than one NED file.
FailureManager | (no description) |
NAMTrace | NAMTrace manages a "nam" trace file which can be played back with ns2's Network ANimator, nam. The trace is actually written by NAMTraceWriter modules which should occur per host or router. |
RSVP_LSR | An RSVP-TE capable router. |
ScenarioManager | ScenarioManager is for setting up and controlling simulation experiments. You can schedule certain events to take place at specified times, like changing a parameter value, changing the bit error rate of a connection, removing or adding connections, removing or adding routes in a routing table, etc, so that you can observe the transient behaviour. |
StandardHost |
RSVPTE | (no description) |
RSVPTE | (no description) |
RSVPTE | (no description) |
RSVPTE | (no description) |
RSVPTE | (no description) |
Name | Type | Description |
---|---|---|
nam.logfile | string | |
nam.prolog | string | |
LSR1.namid | numeric | |
LSR1.routerId | string | |
LSR1.routingFile | string | |
LSR1.rsvp.traffic | xml | specifies paths to set up |
LSR1.rsvp.helloInterval | numeric | |
LSR1.rsvp.helloTimeout | numeric | |
LSR1.classifier.conf | xml | |
LSR1.networkLayer.proxyARP | bool | |
LSR1.networkLayer.ip.procDelay | numeric const | |
LSR1.networkLayer.arp.retryTimeout | numeric | number seconds ARP waits between retries to resolve an IP address |
LSR1.networkLayer.arp.retryCount | numeric | number of times ARP will attempt to resolve an IP address |
LSR1.networkLayer.arp.cacheTimeout | numeric | number seconds unused entries in the cache will time out |
LSR1.ppp[*].queueType | string | |
LSR1.libTable.conf | xml | table contents to be loaded on startup |
LSR2.namid | numeric | |
LSR2.routerId | string | |
LSR2.routingFile | string | |
LSR2.rsvp.traffic | xml | specifies paths to set up |
LSR2.rsvp.helloInterval | numeric | |
LSR2.rsvp.helloTimeout | numeric | |
LSR2.classifier.conf | xml | |
LSR2.networkLayer.proxyARP | bool | |
LSR2.networkLayer.ip.procDelay | numeric const | |
LSR2.networkLayer.arp.retryTimeout | numeric | number seconds ARP waits between retries to resolve an IP address |
LSR2.networkLayer.arp.retryCount | numeric | number of times ARP will attempt to resolve an IP address |
LSR2.networkLayer.arp.cacheTimeout | numeric | number seconds unused entries in the cache will time out |
LSR2.ppp[*].queueType | string | |
LSR2.libTable.conf | xml | table contents to be loaded on startup |
LSR3.namid | numeric | |
LSR3.routerId | string | |
LSR3.routingFile | string | |
LSR3.rsvp.traffic | xml | specifies paths to set up |
LSR3.rsvp.helloInterval | numeric | |
LSR3.rsvp.helloTimeout | numeric | |
LSR3.classifier.conf | xml | |
LSR3.networkLayer.proxyARP | bool | |
LSR3.networkLayer.ip.procDelay | numeric const | |
LSR3.networkLayer.arp.retryTimeout | numeric | number seconds ARP waits between retries to resolve an IP address |
LSR3.networkLayer.arp.retryCount | numeric | number of times ARP will attempt to resolve an IP address |
LSR3.networkLayer.arp.cacheTimeout | numeric | number seconds unused entries in the cache will time out |
LSR3.ppp[*].queueType | string | |
LSR3.libTable.conf | xml | table contents to be loaded on startup |
LSR4.namid | numeric | |
LSR4.routerId | string | |
LSR4.routingFile | string | |
LSR4.rsvp.traffic | xml | specifies paths to set up |
LSR4.rsvp.helloInterval | numeric | |
LSR4.rsvp.helloTimeout | numeric | |
LSR4.classifier.conf | xml | |
LSR4.networkLayer.proxyARP | bool | |
LSR4.networkLayer.ip.procDelay | numeric const | |
LSR4.networkLayer.arp.retryTimeout | numeric | number seconds ARP waits between retries to resolve an IP address |
LSR4.networkLayer.arp.retryCount | numeric | number of times ARP will attempt to resolve an IP address |
LSR4.networkLayer.arp.cacheTimeout | numeric | number seconds unused entries in the cache will time out |
LSR4.ppp[*].queueType | string | |
LSR4.libTable.conf | xml | table contents to be loaded on startup |
LSR5.namid | numeric | |
LSR5.routerId | string | |
LSR5.routingFile | string | |
LSR5.rsvp.traffic | xml | specifies paths to set up |
LSR5.rsvp.helloInterval | numeric | |
LSR5.rsvp.helloTimeout | numeric | |
LSR5.classifier.conf | xml | |
LSR5.networkLayer.proxyARP | bool | |
LSR5.networkLayer.ip.procDelay | numeric const | |
LSR5.networkLayer.arp.retryTimeout | numeric | number seconds ARP waits between retries to resolve an IP address |
LSR5.networkLayer.arp.retryCount | numeric | number of times ARP will attempt to resolve an IP address |
LSR5.networkLayer.arp.cacheTimeout | numeric | number seconds unused entries in the cache will time out |
LSR5.ppp[*].queueType | string | |
LSR5.libTable.conf | xml | table contents to be loaded on startup |
LSR6.namid | numeric | |
LSR6.routerId | string | |
LSR6.routingFile | string | |
LSR6.rsvp.traffic | xml | specifies paths to set up |
LSR6.rsvp.helloInterval | numeric | |
LSR6.rsvp.helloTimeout | numeric | |
LSR6.classifier.conf | xml | |
LSR6.networkLayer.proxyARP | bool | |
LSR6.networkLayer.ip.procDelay | numeric const | |
LSR6.networkLayer.arp.retryTimeout | numeric | number seconds ARP waits between retries to resolve an IP address |
LSR6.networkLayer.arp.retryCount | numeric | number of times ARP will attempt to resolve an IP address |
LSR6.networkLayer.arp.cacheTimeout | numeric | number seconds unused entries in the cache will time out |
LSR6.ppp[*].queueType | string | |
LSR6.libTable.conf | xml | table contents to be loaded on startup |
LSR7.namid | numeric | |
LSR7.routerId | string | |
LSR7.routingFile | string | |
LSR7.rsvp.traffic | xml | specifies paths to set up |
LSR7.rsvp.helloInterval | numeric | |
LSR7.rsvp.helloTimeout | numeric | |
LSR7.classifier.conf | xml | |
LSR7.networkLayer.proxyARP | bool | |
LSR7.networkLayer.ip.procDelay | numeric const | |
LSR7.networkLayer.arp.retryTimeout | numeric | number seconds ARP waits between retries to resolve an IP address |
LSR7.networkLayer.arp.retryCount | numeric | number of times ARP will attempt to resolve an IP address |
LSR7.networkLayer.arp.cacheTimeout | numeric | number seconds unused entries in the cache will time out |
LSR7.ppp[*].queueType | string | |
LSR7.libTable.conf | xml | table contents to be loaded on startup |
host1.numTcpApps | numeric const | |
host1.numUdpApps | numeric const | |
host1.tcpAppType | string | |
host1.udpAppType | string | |
host1.IPForward | bool | |
host1.namid | numeric const | |
host1.routingFile | string | |
host1.tcp.mss | numeric const | maximum segment size |
host1.tcp.advertisedWindow | numeric const | in bytes (Note: normally, NIC queues should be at least this size) |
host1.tcp.tcpAlgorithmClass | string | TCPTahoe/TCPReno/TCPNoCongestionControl/DumbTCP |
host1.tcp.sendQueueClass | string | TCPVirtualDataSendQueue/TCPMsgBasedSendQueue |
host1.tcp.receiveQueueClass | string | TCPVirtualDataRcvQueue/TCPMsgBasedRcvQueue |
host1.tcp.recordStats | bool | recording seqNum etc. into output vectors on/off |
host1.pingApp.destAddr | string | |
host1.pingApp.srcAddr | string | |
host1.pingApp.packetSize | numeric const | of ping payload, in bytes |
host1.pingApp.interval | numeric | time to wait between pings (can be random) |
host1.pingApp.hopLimit | numeric const | TTL or hopLimit for IP packets |
host1.pingApp.count | numeric const | stop after count ping requests, 0 means continuously |
host1.pingApp.startTime | numeric const | send first ping at startTime |
host1.pingApp.stopTime | numeric const | send no pings after stopTime, 0 means forever |
host1.pingApp.printPing | bool | dump on stdout |
host1.networkLayer.ip.procDelay | numeric const | |
host1.networkLayer.arp.retryTimeout | numeric | number seconds ARP waits between retries to resolve an IP address |
host1.networkLayer.arp.retryCount | numeric | number of times ARP will attempt to resolve an IP address |
host1.networkLayer.arp.cacheTimeout | numeric | number seconds unused entries in the cache will time out |
host1.ppp[*].queueType | string | |
host1.eth[*].queueType | string | |
host1.eth[*].mac.promiscuous | bool | if true, all packets are received, otherwise only the ones with matching destination MAC address |
host1.eth[*].mac.address | string | MAC address as hex string (12 hex digits), or "auto". "auto" values will be replaced by a generated MAC address in init stage 0. |
host1.eth[*].mac.txrate | numeric | maximum data rate supported by this station (bit/s); actually chosen speed may be lower due to auto- configuration. 0 means fully auto-configured. |
host1.eth[*].mac.duplexEnabled | bool | whether duplex mode can be enabled or not; whether MAC will actually use duplex mode depends on the result of the auto-configuration process (duplex is only possible with DTE-to-DTE connection). |
host1.eth[*].mac.writeScalars | bool | enable/disable recording statistics in omnetpp.sca |
host1.eth[*].encap.writeScalars | bool | enable/disable recording statistics in omnetpp.sca |
host2.numTcpApps | numeric const | |
host2.numUdpApps | numeric const | |
host2.tcpAppType | string | |
host2.udpAppType | string | |
host2.IPForward | bool | |
host2.namid | numeric const | |
host2.routingFile | string | |
host2.tcp.mss | numeric const | maximum segment size |
host2.tcp.advertisedWindow | numeric const | in bytes (Note: normally, NIC queues should be at least this size) |
host2.tcp.tcpAlgorithmClass | string | TCPTahoe/TCPReno/TCPNoCongestionControl/DumbTCP |
host2.tcp.sendQueueClass | string | TCPVirtualDataSendQueue/TCPMsgBasedSendQueue |
host2.tcp.receiveQueueClass | string | TCPVirtualDataRcvQueue/TCPMsgBasedRcvQueue |
host2.tcp.recordStats | bool | recording seqNum etc. into output vectors on/off |
host2.pingApp.destAddr | string | |
host2.pingApp.srcAddr | string | |
host2.pingApp.packetSize | numeric const | of ping payload, in bytes |
host2.pingApp.interval | numeric | time to wait between pings (can be random) |
host2.pingApp.hopLimit | numeric const | TTL or hopLimit for IP packets |
host2.pingApp.count | numeric const | stop after count ping requests, 0 means continuously |
host2.pingApp.startTime | numeric const | send first ping at startTime |
host2.pingApp.stopTime | numeric const | send no pings after stopTime, 0 means forever |
host2.pingApp.printPing | bool | dump on stdout |
host2.networkLayer.ip.procDelay | numeric const | |
host2.networkLayer.arp.retryTimeout | numeric | number seconds ARP waits between retries to resolve an IP address |
host2.networkLayer.arp.retryCount | numeric | number of times ARP will attempt to resolve an IP address |
host2.networkLayer.arp.cacheTimeout | numeric | number seconds unused entries in the cache will time out |
host2.ppp[*].queueType | string | |
host2.eth[*].queueType | string | |
host2.eth[*].mac.promiscuous | bool | if true, all packets are received, otherwise only the ones with matching destination MAC address |
host2.eth[*].mac.address | string | MAC address as hex string (12 hex digits), or "auto". "auto" values will be replaced by a generated MAC address in init stage 0. |
host2.eth[*].mac.txrate | numeric | maximum data rate supported by this station (bit/s); actually chosen speed may be lower due to auto- configuration. 0 means fully auto-configured. |
host2.eth[*].mac.duplexEnabled | bool | whether duplex mode can be enabled or not; whether MAC will actually use duplex mode depends on the result of the auto-configuration process (duplex is only possible with DTE-to-DTE connection). |
host2.eth[*].mac.writeScalars | bool | enable/disable recording statistics in omnetpp.sca |
host2.eth[*].encap.writeScalars | bool | enable/disable recording statistics in omnetpp.sca |
host3.numTcpApps | numeric const | |
host3.numUdpApps | numeric const | |
host3.tcpAppType | string | |
host3.udpAppType | string | |
host3.IPForward | bool | |
host3.namid | numeric const | |
host3.routingFile | string | |
host3.tcp.mss | numeric const | maximum segment size |
host3.tcp.advertisedWindow | numeric const | in bytes (Note: normally, NIC queues should be at least this size) |
host3.tcp.tcpAlgorithmClass | string | TCPTahoe/TCPReno/TCPNoCongestionControl/DumbTCP |
host3.tcp.sendQueueClass | string | TCPVirtualDataSendQueue/TCPMsgBasedSendQueue |
host3.tcp.receiveQueueClass | string | TCPVirtualDataRcvQueue/TCPMsgBasedRcvQueue |
host3.tcp.recordStats | bool | recording seqNum etc. into output vectors on/off |
host3.pingApp.destAddr | string | |
host3.pingApp.srcAddr | string | |
host3.pingApp.packetSize | numeric const | of ping payload, in bytes |
host3.pingApp.interval | numeric | time to wait between pings (can be random) |
host3.pingApp.hopLimit | numeric const | TTL or hopLimit for IP packets |
host3.pingApp.count | numeric const | stop after count ping requests, 0 means continuously |
host3.pingApp.startTime | numeric const | send first ping at startTime |
host3.pingApp.stopTime | numeric const | send no pings after stopTime, 0 means forever |
host3.pingApp.printPing | bool | dump on stdout |
host3.networkLayer.ip.procDelay | numeric const | |
host3.networkLayer.arp.retryTimeout | numeric | number seconds ARP waits between retries to resolve an IP address |
host3.networkLayer.arp.retryCount | numeric | number of times ARP will attempt to resolve an IP address |
host3.networkLayer.arp.cacheTimeout | numeric | number seconds unused entries in the cache will time out |
host3.ppp[*].queueType | string | |
host3.eth[*].queueType | string | |
host3.eth[*].mac.promiscuous | bool | if true, all packets are received, otherwise only the ones with matching destination MAC address |
host3.eth[*].mac.address | string | MAC address as hex string (12 hex digits), or "auto". "auto" values will be replaced by a generated MAC address in init stage 0. |
host3.eth[*].mac.txrate | numeric | maximum data rate supported by this station (bit/s); actually chosen speed may be lower due to auto- configuration. 0 means fully auto-configured. |
host3.eth[*].mac.duplexEnabled | bool | whether duplex mode can be enabled or not; whether MAC will actually use duplex mode depends on the result of the auto-configuration process (duplex is only possible with DTE-to-DTE connection). |
host3.eth[*].mac.writeScalars | bool | enable/disable recording statistics in omnetpp.sca |
host3.eth[*].encap.writeScalars | bool | enable/disable recording statistics in omnetpp.sca |
host4.numTcpApps | numeric const | |
host4.numUdpApps | numeric const | |
host4.tcpAppType | string | |
host4.udpAppType | string | |
host4.IPForward | bool | |
host4.namid | numeric const | |
host4.routingFile | string | |
host4.tcp.mss | numeric const | maximum segment size |
host4.tcp.advertisedWindow | numeric const | in bytes (Note: normally, NIC queues should be at least this size) |
host4.tcp.tcpAlgorithmClass | string | TCPTahoe/TCPReno/TCPNoCongestionControl/DumbTCP |
host4.tcp.sendQueueClass | string | TCPVirtualDataSendQueue/TCPMsgBasedSendQueue |
host4.tcp.receiveQueueClass | string | TCPVirtualDataRcvQueue/TCPMsgBasedRcvQueue |
host4.tcp.recordStats | bool | recording seqNum etc. into output vectors on/off |
host4.pingApp.destAddr | string | |
host4.pingApp.srcAddr | string | |
host4.pingApp.packetSize | numeric const | of ping payload, in bytes |
host4.pingApp.interval | numeric | time to wait between pings (can be random) |
host4.pingApp.hopLimit | numeric const | TTL or hopLimit for IP packets |
host4.pingApp.count | numeric const | stop after count ping requests, 0 means continuously |
host4.pingApp.startTime | numeric const | send first ping at startTime |
host4.pingApp.stopTime | numeric const | send no pings after stopTime, 0 means forever |
host4.pingApp.printPing | bool | dump on stdout |
host4.networkLayer.ip.procDelay | numeric const | |
host4.networkLayer.arp.retryTimeout | numeric | number seconds ARP waits between retries to resolve an IP address |
host4.networkLayer.arp.retryCount | numeric | number of times ARP will attempt to resolve an IP address |
host4.networkLayer.arp.cacheTimeout | numeric | number seconds unused entries in the cache will time out |
host4.ppp[*].queueType | string | |
host4.eth[*].queueType | string | |
host4.eth[*].mac.promiscuous | bool | if true, all packets are received, otherwise only the ones with matching destination MAC address |
host4.eth[*].mac.address | string | MAC address as hex string (12 hex digits), or "auto". "auto" values will be replaced by a generated MAC address in init stage 0. |
host4.eth[*].mac.txrate | numeric | maximum data rate supported by this station (bit/s); actually chosen speed may be lower due to auto- configuration. 0 means fully auto-configured. |
host4.eth[*].mac.duplexEnabled | bool | whether duplex mode can be enabled or not; whether MAC will actually use duplex mode depends on the result of the auto-configuration process (duplex is only possible with DTE-to-DTE connection). |
host4.eth[*].mac.writeScalars | bool | enable/disable recording statistics in omnetpp.sca |
host4.eth[*].encap.writeScalars | bool | enable/disable recording statistics in omnetpp.sca |
host5.numTcpApps | numeric const | |
host5.numUdpApps | numeric const | |
host5.tcpAppType | string | |
host5.udpAppType | string | |
host5.IPForward | bool | |
host5.namid | numeric const | |
host5.routingFile | string | |
host5.tcp.mss | numeric const | maximum segment size |
host5.tcp.advertisedWindow | numeric const | in bytes (Note: normally, NIC queues should be at least this size) |
host5.tcp.tcpAlgorithmClass | string | TCPTahoe/TCPReno/TCPNoCongestionControl/DumbTCP |
host5.tcp.sendQueueClass | string | TCPVirtualDataSendQueue/TCPMsgBasedSendQueue |
host5.tcp.receiveQueueClass | string | TCPVirtualDataRcvQueue/TCPMsgBasedRcvQueue |
host5.tcp.recordStats | bool | recording seqNum etc. into output vectors on/off |
host5.pingApp.destAddr | string | |
host5.pingApp.srcAddr | string | |
host5.pingApp.packetSize | numeric const | of ping payload, in bytes |
host5.pingApp.interval | numeric | time to wait between pings (can be random) |
host5.pingApp.hopLimit | numeric const | TTL or hopLimit for IP packets |
host5.pingApp.count | numeric const | stop after count ping requests, 0 means continuously |
host5.pingApp.startTime | numeric const | send first ping at startTime |
host5.pingApp.stopTime | numeric const | send no pings after stopTime, 0 means forever |
host5.pingApp.printPing | bool | dump on stdout |
host5.networkLayer.ip.procDelay | numeric const | |
host5.networkLayer.arp.retryTimeout | numeric | number seconds ARP waits between retries to resolve an IP address |
host5.networkLayer.arp.retryCount | numeric | number of times ARP will attempt to resolve an IP address |
host5.networkLayer.arp.cacheTimeout | numeric | number seconds unused entries in the cache will time out |
host5.ppp[*].queueType | string | |
host5.eth[*].queueType | string | |
host5.eth[*].mac.promiscuous | bool | if true, all packets are received, otherwise only the ones with matching destination MAC address |
host5.eth[*].mac.address | string | MAC address as hex string (12 hex digits), or "auto". "auto" values will be replaced by a generated MAC address in init stage 0. |
host5.eth[*].mac.txrate | numeric | maximum data rate supported by this station (bit/s); actually chosen speed may be lower due to auto- configuration. 0 means fully auto-configured. |
host5.eth[*].mac.duplexEnabled | bool | whether duplex mode can be enabled or not; whether MAC will actually use duplex mode depends on the result of the auto-configuration process (duplex is only possible with DTE-to-DTE connection). |
host5.eth[*].mac.writeScalars | bool | enable/disable recording statistics in omnetpp.sca |
host5.eth[*].encap.writeScalars | bool | enable/disable recording statistics in omnetpp.sca |
scenarioManager.script | xml |
module RSVPTE4 submodules: nam: NAMTrace; display: "p=152,280;i=old/floppy1"; LSR1: RSVP_LSR; parameters: peers = "ppp0 ppp1"; gatesizes: in[5], out[5]; display: "p=160,167;i=abstract/router"; LSR2: RSVP_LSR; parameters: peers = "ppp0 ppp1 ppp2"; gatesizes: in[3], out[3]; display: "p=254,255;i=abstract/router"; LSR3: RSVP_LSR; parameters: peers = "ppp0 ppp1 ppp2"; gatesizes: in[3], out[3]; display: "p=253,78;i=abstract/router"; LSR4: RSVP_LSR; parameters: peers = "ppp0 ppp1 ppp2"; gatesizes: in[3], out[3]; display: "p=358,167;i=abstract/router"; LSR5: RSVP_LSR; parameters: peers = "ppp0 ppp3 ppp4"; gatesizes: in[5], out[5]; display: "p=460,167;i=abstract/router"; LSR6: RSVP_LSR; parameters: peers = "ppp0 ppp1"; gatesizes: in[2], out[2]; display: "p=400,300;i=abstract/router"; LSR7: RSVP_LSR; parameters: peers = "ppp0 ppp1"; gatesizes: in[2], out[2]; display: "p=400,50;i=abstract/router"; host1: StandardHost; // client display: "p=71,80;i=device/pc2"; host2: StandardHost; // client display: "p=72,153;i=device/pc2"; host3: StandardHost; // server display: "p=570,88;i=device/server"; host4: StandardHost; // server display: "p=562,256;i=device/server"; host5: StandardHost; // client display: "p=73,233;i=device/pc2"; scenarioManager: ScenarioManager; display: "p=150,50;i=block/control_s"; failureManager: FailureManager; display: "p=500,50;i=block/control_s"; //nam: NAMTraceWriter; // display: "p=152,280;i=old/floppy1"; connections nocheck: LSR1.out[0] --> delay 15ms datarate 600000 --> LSR2.in[0]; LSR1.in[0] <-- delay 15ms datarate 600000 <-- LSR2.out[0]; LSR1.out[1] --> delay 5ms datarate 600000 --> LSR3.in[0]; LSR1.in[1] <-- delay 5ms datarate 600000 <-- LSR3.out[0]; host2.in++ <-- delay 10ms datarate 600000 <-- LSR1.out[2]; host2.out++ --> delay 10ms datarate 600000 --> LSR1.in[2]; host1.in++ <-- delay 10ms datarate 600000 <-- LSR1.out[3]; host1.out++ --> delay 10ms datarate 600000 --> LSR1.in[3]; LSR2.out[1] --> delay 5ms datarate 600000 --> LSR4.in[0]; LSR2.in[1] <-- delay 5ms datarate 600000 <-- LSR4.out[0]; LSR3.out[1] --> delay 5ms datarate 600000 --> LSR4.in[2]; LSR3.in[1] <-- delay 5ms datarate 600000 <-- LSR4.out[2]; LSR4.out[1] --> delay 5ms datarate 600000 --> LSR5.in[0]; LSR4.in[1] <-- delay 5ms datarate 600000 <-- LSR5.out[0]; LSR5.out[1] --> delay 10ms datarate 600000 --> host3.in++; LSR5.in[1] <-- delay 10ms datarate 600000 <-- host3.out++; LSR5.out[2] --> delay 10ms datarate 600000 --> host4.in++; LSR5.in[2] <-- delay 10ms datarate 600000 <-- host4.out++; LSR2.out[2] --> delay 10ms datarate 600000 --> LSR6.in[0]; LSR2.in[2] <-- delay 10ms datarate 600000 <-- LSR6.out[0]; LSR5.out[3] --> delay 10ms datarate 600000 --> LSR6.in[1]; LSR5.in[3] <-- delay 10ms datarate 600000 <-- LSR6.out[1]; LSR3.out[2] --> delay 10ms datarate 600000 --> LSR7.in[0]; LSR3.in[2] <-- delay 10ms datarate 600000 <-- LSR7.out[0]; LSR5.out[4] --> delay 10ms datarate 600000 --> LSR7.in[1]; LSR5.in[4] <-- delay 10ms datarate 600000 <-- LSR7.out[1]; host5.in++ <-- delay 10ms datarate 600000 <-- LSR1.out[4]; host5.out++ --> delay 10ms datarate 600000 --> LSR1.in[4]; endmodule