Skip to content

Commit 9d56590

Browse files
committed
TSN: Fixed #989, the compound MAC layer should not have a queue when frame preemption is enabled.
There are already queues in the express and preemptable MAC sublayers.
1 parent a4f201e commit 9d56590

2 files changed

Lines changed: 2 additions & 2 deletions

File tree

src/inet/node/tsn/TsnDevice.ned

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ module TsnDevice extends StandardHost
4949
ethernet.typename = default("EthernetLayer"); // Use Ethernet protocol layer outside of network interfaces
5050
eth[*].typename = default("LayeredEthernetInterface"); // Switch to modular Ethernet interface
5151
eth[*].macLayer.typename = default(hasFramePreemption ? "EthernetPreemptingMacLayer" : "EthernetMacLayer");
52-
eth[*].macLayer.queue.typename = default(hasEgressTrafficShaping ? "Ieee8021qTimeAwareShaper" : (hasFramePreemption ? "" : "PacketQueue")); // Use priority queue having multiple subqueues controlled by separate gates
52+
eth[*].macLayer.queue.typename = default(hasFramePreemption ? "" : (hasEgressTrafficShaping ? "Ieee8021qTimeAwareShaper" : "PacketQueue")); // Use priority queue having multiple subqueues controlled by separate gates
5353
eth[*].phyLayer.typename = default(hasCutthroughSwitching ? "EthernetStreamingPhyLayer" : (hasFramePreemption ? "EthernetPreemptingPhyLayer" : "EthernetPhyLayer")); // Use packet streaming when cut-through switching is enabled
5454
bridging.typename = default(hasBridging ? "BridgingLayer" : ""); // Switch to modular bridging
5555
bridging.interfaceRelay.typename = default(""); // Disable frame relaying

src/inet/node/tsn/TsnSwitch.ned

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ module TsnSwitch extends EthernetSwitch
4848
ethernet.typename = default("EthernetLayer"); // Use Ethernet protocol layer outside of network interfaces
4949
eth[*].typename = default(hasCutthroughSwitching ? "EthernetCutthroughInterface" : "LayeredEthernetInterface"); // Switch to modular Ethernet interface
5050
eth[*].macLayer.typename = default(hasFramePreemption ? "EthernetPreemptingMacLayer" : "EthernetMacLayer");
51-
eth[*].macLayer.queue.typename = default(hasEgressTrafficShaping ? "Ieee8021qTimeAwareShaper" : "PacketQueue"); // Use compound priority queue having multiple subqueues controlled by separate gates when egress traffic shaping is enabled
51+
eth[*].macLayer.queue.typename = default(hasFramePreemption ? "" : (hasEgressTrafficShaping ? "Ieee8021qTimeAwareShaper" : "PacketQueue")); // Use compound priority queue having multiple subqueues controlled by separate gates when egress traffic shaping is enabled
5252
eth[*].phyLayer.typename = default(hasCutthroughSwitching ? "EthernetStreamThroughPhyLayer" : (hasFramePreemption ? "EthernetPreemptingPhyLayer" : "EthernetPhyLayer")); // Use packet streaming when cut-through switching is enabled
5353
bridging.typename = default("BridgingLayer"); // Switch to modular bridging
5454
bridging.directionReverser.cutthroughBarrier.typename = default(hasCutthroughSwitching ? "EthernetCutthroughBarrier" : ""); // Enable cut-through barrier when cut-through switching is enabled

0 commit comments

Comments
 (0)