EthernetCutthroughInterface.ned
NED File src/inet/linklayer/ethernet/modular/EthernetCutthroughInterface.ned
| Name | Type | Description |
|---|---|---|
| EthernetCutthroughInterface | compound module |
Represents an Ethernet network interface with Ethernet cut-through switching support. In contrast with store-and-forward switching, Ethernet cut-through switching can begin the transmission of the outgoing packet before the reception of the corresponding incoming packet ends. Ethernet cut-through switching can significantly reduce end-to-end delay in the network. |
Source code
// // Copyright (C) 2020 OpenSim Ltd. // // SPDX-License-Identifier: LGPL-3.0-or-later // package inet.linklayer.ethernet.modular; // // Represents an Ethernet network interface with Ethernet cut-through // switching support. In contrast with store-and-forward switching, Ethernet // cut-through switching can begin the transmission of the outgoing packet before // the reception of the corresponding incoming packet ends. Ethernet cut-through // switching can significantly reduce end-to-end delay in the network. // // There are some important limitations with the current Ethernet cut-through // switching implementation: // - FCS is not checked for cut-through packets in Ethernet switches // - packet data cannot be changed for cut-through packets in Ethernet switches // - Ethernet frame preemption is not supported with cut-through packets // // The Ethernet FCS is simply forwarded as it is for cut-through packets. Moreover, // the packet data cannot be changed inside the Ethernet switch, because it would // imply changing the FCS of the packet. Changing the FCS of the packet would // require checking the current FCS and aborting incorrect frames. The Ethernet // cut-through implementation also assumes that transmissions are not updated on // the channel as is the case for Ethernet frame preemption. The packet contents // at the start of the reception are the same as the packet contents at the end of // the reception. // // The main reason for these limitations is that with Ethernet cut-through // switching a received packet can reach far away both inside the network node // and also in the network, and the current architecture doesn't support updating // this process. // module EthernetCutthroughInterface extends LayeredEthernetInterface { parameters: string macTableModule; *.bitrate = default(this.bitrate); *.macTableModule = default(this.macTableModule); phyLayer.typename = default("EthernetStreamThroughPhyLayer"); phyLayer.cutthroughSource.typename = default("EthernetCutthroughSource"); phyLayer.cutthroughSink.typename = default("EthernetCutthroughSink"); }