Network Switch Dynamic Multicast Queue Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
High-performance computing systems experience network congestion due to multicast packets, which are replicated across multiple output ports, reducing available bandwidth and causing head-of-line blocking in network switch fabrics, especially in Infiniband switches where packet dropping is not allowed.
Innovation Solution
Implementing a network switch fabric with separate virtual output queues (VOQs) for unicast and multicast packets, where the number of multicast VOQs can be dynamically modified based on flow priorities and quality-of-service (QoS), allowing for non-blocking behavior and efficient scheduling of packets.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multicast packets are replicated to all output ports, then multicast delivery is achieved, but network congestion increases and available bandwidth decreases
Solution Approach 1:
The patent segments the output queue into separate unicast VOQs and multicast VOQs. Each input port maintains separate virtual output queues for unicast packets and multicast packets, allowing independent management and scheduling of packet types. This segmentation prevents multicast packets from blocking unicast packets and vice versa, resolving the bandwidth congestion issue while maintaining multicast delivery efficiency.
2Ease of operation
If sequential scheduling of packets to output ports is used, then packet transmission is simplified, but head-of-line blocking occurs
Solution Approach 1:
By segmenting packets into separate unicast and multicast queues, the patent eliminates head-of-line blocking. Packets of the same type are scheduled independently, allowing parallel transmission without blocking. This maintains scheduling simplicity while significantly improving transmission reliability.
Solution Approach 2:
The patent implements dynamic scheduling where the scheduler can flexibly select which queue to serve based on current traffic conditions. The system dynamically adjusts scheduling decisions to optimize packet transmission, preventing blocking while maintaining operational simplicity through adaptive control.
3Reliability
If separate VOQs for unicast and multicast packets are implemented, then head-of-line blocking is avoided, but device complexity increases
Solution Approach 1:
The patent uses a universal VOQ structure that can handle both unicast and multicast packets through a unified architecture. The same basic VOQ mechanism is extended to support multiple packet types, reducing the need for completely separate management systems while maintaining the benefits of separation.
Solution Approach 2:
The patent introduces a scheduler as an intermediary component that manages the separate unicast and multicast queues. The scheduler acts as a mediator between the queues and the output ports, handling the complexity of queue management and scheduling decisions, thereby reducing the operational complexity at individual queue levels.
4Device complexity
If fixed number of multicast VOQs is used, then queue management is simplified, but adaptability to traffic patterns decreases
Solution Approach 1:
The patent implements dynamic adjustment of the number of multicast VOQs based on actual traffic conditions. The system can increase or decrease the number of active multicast queues according to the number of active multicast flows, providing adaptability to varying traffic patterns while maintaining manageable complexity through policy-based control.
Data Source
AI summary
A system for communicating a multicast packet through a network switch fabric is described. The system receives the multicast packet at an input port of the network switch fabric, where the multicast packet is directed to multiple output ports, and where the network switch fabric has a virtual output queue (VOQ)-based architecture, in which each input port maintains a separate VOQ for unicast packets to each output port and one or more VOQs for multicast packets destined to multiple output ports. The system sends the multicast packet by inserting the multicast packet into the one or more VOQs associated with the multiple output ports, so that multicast packets are queued separately from unicast packets. Moreover, the system may optionally dynamically modify a number of the one or more VOQs for the multicast packets based on a number of multicast flows through the network switch fabric.


