Uplink data congestion detection for low-latency services in wireless communication networks
US-2024373448-A1 · Nov 7, 2024 · US
US9231870B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9231870-B2 |
| Application number | US-201113334116-A |
| Country | US |
| Kind code | B2 |
| Filing date | Dec 22, 2011 |
| Priority date | Dec 22, 2011 |
| Publication date | Jan 5, 2016 |
| Grant date | Jan 5, 2016 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A network fabric may divide a physical connection into a plurality of VLANs as defined by IEEE 802.1Q. Moreover, many network fabrics use Priority Flow Control to identify and segregate network traffic based on different traffic classes or priorities. Current routing protocols define only eight traffic classes. In contrast, a network fabric may contain thousands of unique VLANs. When network congestion occurs, network devices (e.g., switches, bridges, routers, servers, etc.) can negotiate to pause the network traffic associated with one of the different traffic classes. Pausing the data packets associated with a single traffic class may also stop the data packets associated with thousands of VLANs. The embodiments disclosed herein permit a network fabric to individually pause VLANs rather than entire traffic classes.
Opening claim text (preview).
What is claimed is: 1. A computer program product for pausing network traffic, the computer program product comprising: a non-transitory computer-readable medium having computer-readable program code embodied therewith, the computer-readable program code comprising computer-readable program code configured to: divide a buffer into a plurality of logical memory portions, wherein each of the plurality of logical memory portions corresponds to a respective one of a plurality of Priority Flow Control (PFC) classes each defining a respective class of network traffic; subdivide at least one of the plurality of logical memory portions into a plurality of sub-portions wherein each of the sub-portions corresponds to a different one of a plurality of virtual local area networks (VLANs); upon receiving a data packet specifying one of the PFC classes, store the data packet in a corresponding one of the plurality of logical memory portions of the buffer based on the specified PFC class; upon determining, based on a predefined congestion condition occurring for a first one of the plurality of logical memory portions of the buffer, to suspend network traffic belonging to a first PFC traffic class corresponding to the first logical memory portion and flowing through a VLAN of a plurality of VLANs, generate a data frame comprising a specific VLAN ID that specifies the VLAN and a desired pause length, the data frame configured to instruct a computing device to at least temporarily stop transmitting data packets assigned to the VLAN and belonging to the first PFC traffic class for the desired pause length; and transmit the data frame to the computing device to suspend network traffic specific to the VLAN, while permitting other network traffic belonging to the first PFC traffic class and specifying at least one other of the plurality of VLANs to continue to flow. 2. The computer program product of claim 1 , wherein the VLAN is configured based on at least one of: IEEE 802.1Q and a derivative of IEEE 802.1Q. 3. The computer program product of claim 1 , wherein the VLAN is a service VLAN (S-VLAN) and the VLAN ID is an S-VLAN ID. 4. The computer program product of claim 3 , wherein the data frame further comprises a customer VLAN ID that is associated with a customer VLAN that is assigned to the S-VLAN. 5. The computer program product of claim 3 , wherein the S-VLAN is configured based on at least one of: IEEE 802.1QinQ and a derivative of IEEE 802.1QinQ. 6. The computer program product of claim 1 , wherein the data frame further comprises a priority enable value that selects a traffic class as defined by IEEE 802.1Qbb. 7. The computer program product of claim 1 , wherein the data frame further comprises a plurality of VLAN IDs that are each associated with a respective VLAN. 8. The computer program product of claim 7 , wherein the data frame further comprises a VLAN count value that represents a total number of the plurality of VLAN IDs in the data frame. 9. The computer program product of claim 1 , wherein the suspension of network traffic specific to the VLAN is effected without having to suspend network traffic for an entirety of the first traffic class, wherein the computing device comprises a transmitting node, wherein the network traffic is transmitted at a first point in time from the transmitting node to a second computing device associated with the VLAN and comprising a receiving node different from the transmitting node, whereby the receiving node is configured to instruct the transmitting node using the data frame the VLAN ID and the desired pause length during which the transmitting node stops transmitting data packets of the VLAN to the receiving node, wherein the VLAN ID and the desired pause length is determined by the receiving node, wherein the receiving node is specified as a destination node of the network traffic. 10. A network device, comprising: a computer processor; and a memory containing a program that, when executed on the computer processor, performs the steps of: divide a buffer into a plurality of logical memory portions, wherein each of the plurality of logical memory portions corresponds to a respective one of a plurality of Priority Flow Control (PFC) classes each defining a respective class of network traffic; subdivide at least one of the plurality of logical memory portions into a plurality of sub-portions, wherein each of the sub-portions corresponds to a different one of a plurality of virtual local area networks (VLANs); upon receiving a data packet specifying one of the PFC classes, store the data packet in a corresponding one of the plurality of logical memory portions of the buffer based on the specified PFC class; upon determining, based on a predefined congestion condition occurring for a first one of the plurality of logical memory portions of the buffer, to suspend network traffic belonging to a first PFC traffic class corresponding to the first logical memory portion and flowing through a VLAN of a plurality of VLANs, generate a data frame comprising a specific VLAN ID that specifies the VLAN and a desired pause length, the data frame configured to instruct a computing device to at least temporarily stop transmitting data packets assigned to the VLAN and belonging to the first PFC traffic class for the desired pause length; and transmit the data frame to the computing device to suspend network traffic specific to the VLAN, while permitting other network traffic belonging to the first PFC traffic class and specifying at least one other of the plurality of VLANs to continue to flow. 11. The network device of claim 10 , wherein the VLAN is configured based on at least one of: IEEE 802.1Q and a derivative of IEEE 802.1Q. 12. The network device of claim 10 , wherein the VLAN is a service VLAN (S-VLAN) and the VLAN ID is an S-VLAN ID. 13. The network device of claim 12 , wherein the data frame further comprises a customer VLAN ID that is associated with a customer VLAN that is assigned to the S-VLAN. 14. The network device of claim 12 wherein the S-VLAN is configured based on at least one of: IEEE 802.1QinQ and a derivative of IEEE 802.1QinQ. 15. The network device of claim 10 , wherein the data frame further comprises a priority enable value that selects a traffic class as defined by IEEE 802.1Qbb. 16. The network device of claim 10 , wherein the data frame further comprises a plurality of VLAN IDs that are each associated with a respective VLAN. 17. The network device of claim 16 , wherein the data frame further comprises a VLAN count value that represents a total number of the plurality of VLAN IDs in the data frame. 18. The computer program product of claim 9 , wherein the receiving node is further configured to, in respective instances, effect resumption of the network traffic specific to the VLAN, via each of a plurality of distinct mechanisms including an intra-frame mechanism implemented via the desired pause length specified in the data frame, in which case no data frame other than the data frame is required in order to instruct the transmitting node to resume transmitting data packets assigned to the VLAN, wherein the desired pause length is programmatically determined based on a predefined decongestion condition, wherein the predefined decongestion condition is associated with the utilization of a buffer in the receiving node, wherein the desired pause length is programmatically determined by the receiving node without requiring user input, wherein the desired pause length is not determined by the transmitting node.
Avoiding congestion; Recovering from congestion · CPC title
Virtual LANs, VLANs, e.g. virtual private networks [VPN] (LAN interconnection over a bridge based backbone H04L12/462; encapsulation techniques H04L12/4633; routing of packets H04L45/00; packet switches H04L49/00; virtual private networks for security H04L63/0272) · CPC title
Stopping or restarting the source, e.g. X-on or X-off · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.