Network device architecture for consolidating input/output and reducing latency
First Claim
1. A method for processing more than one type of network traffic in a single network device, the method comprising:
- receiving first frames and second frames on physical links that are logically partitioned into a plurality of virtual lanes;
partitioning buffers of the network device into first buffer spaces for first frames received on a first virtual lane and second buffer spaces for second frames received on a second virtual lane;
storing the first frames in the first buffer spaces;
storing the second frames in the second buffer spaces;
applying a first set of rules to the first frames; and
applying a second set of rules to the second frames.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention provides methods and devices for implementing a Low Latency Ethernet (“LLE”) solution, also referred to herein as a Data Center Ethernet (“DCE”) solution, which simplifies the connectivity of data centers and provides a high bandwidth, low latency network for carrying Ethernet and storage traffic. Some aspects of the invention involve transforming FC frames into a format suitable for transport on an Ethernet. Some preferred implementations of the invention implement multiple virtual lanes (“VLs”) in a single physical connection of a data center or similar network. Some VLs are “drop” VLs, with Ethernet-like behavior, and others are “no-drop” lanes with FC-like behavior. Some preferred implementations of the invention provide guaranteed bandwidth based on credits and VL. Active buffer management allows for both high reliability and low latency while using small frame buffers. Preferably, the rules for active buffer management are different for drop and no drop VLs.
-
Citations
24 Claims
-
1. A method for processing more than one type of network traffic in a single network device, the method comprising:
-
receiving first frames and second frames on physical links that are logically partitioned into a plurality of virtual lanes;
partitioning buffers of the network device into first buffer spaces for first frames received on a first virtual lane and second buffer spaces for second frames received on a second virtual lane;
storing the first frames in the first buffer spaces;
storing the second frames in the second buffer spaces;
applying a first set of rules to the first frames; and
applying a second set of rules to the second frames. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A network device, comprising:
-
means for receiving first frames and second frames on physical links that are logically partitioned into a plurality of virtual lanes;
means for partitioning buffers of the network device into first buffer spaces for first frames received on a first virtual lane and second buffer spaces for second frames received on a second virtual lane;
means for storing the first frames in the first buffer spaces;
means for storing the second frames in the second buffer spaces;
means for applying a first set of rules to the first frames; and
means for applying a second set of rules to the second frames.
-
-
21. A network device, comprising:
-
a plurality of ports configured for receiving frames on a plurality of physical links;
a plurality of line cards, each line card in communication with one of the plurality of ports and configured to do the following;
receive frames from one of the plurality of ports;
identify first frames received on a first virtual lane and second frames received on a second virtual lane;
partition buffers into first buffer spaces for the first frames and second buffer spaces for the second frames;
store the first frames in the first buffer spaces;
store the second frames in the second buffer spaces;
apply a first set of rules to the first frames; and
apply a second set of rules to the second frames.
-
-
22. A method for carrying more than one type of traffic in a single network device, the method comprising:
-
identifying first frames received on first virtual lanes and second frames received on second virtual lanes;
dynamically partitioning buffers of the network device into first buffer spaces for the first frames and second buffer spaces for the second frames, wherein the buffers are dynamically partitioned according to one or more factors from the group of factors consisting of overall buffer occupancy, buffer occupancy per virtual lane, time of day, traffic loads, congestion, guaranteed minimum bandwidth allocation, known tasks requiring greater bandwidth and maximum bandwidth allocation;
storing the first frames in first virtual output queues (“
VOQs”
) of the first buffer spaces;
storing the second frames in second VOQs of the second buffer spaces;
applying a first set of rules to the first frames; and
applying a second set of rules to the second frames.
-
-
23. A network device, comprising:
-
means for identifying first frames received on first virtual lanes and second frames received on second virtual lanes;
means for dynamically partitioning buffers of the network device into first buffer spaces for the first frames and second buffer spaces for the second frames, wherein the buffers are dynamically partitioned according to one or more factors from the group of factors consisting of overall buffer occupancy, buffer occupancy per virtual lane, time of day, traffic loads, congestion, guaranteed minimum bandwidth allocation, known tasks requiring greater bandwidth and maximum bandwidth allocation;
means for storing the first frames in first virtual output queues (“
VOQs”
) of the first buffer spaces;
means for storing the second frames in second VOQs of the second buffer spaces;
means for applying a first set of rules to the first frames; and
means for applying a second set of rules to the second frames.
-
-
24. A network device, comprising:
-
a plurality of ports configured for receiving frames on a plurality of physical links;
a plurality of line cards, each line card in communication with one of the plurality of ports and configured to do the following;
identify first frames received on first virtual lanes and second frames received on second virtual lanes;
dynamically partition buffers of the network device into first buffer spaces for the first frames and second buffer spaces for the second frames, wherein the buffers are dynamically partitioned according to one or more factors from the group of factors consisting of overall buffer occupancy, buffer occupancy per virtual lane, time of day, traffic loads, congestion, guaranteed minimum bandwidth allocation, known tasks requiring greater bandwidth and maximum bandwidth allocation;
store the first frames in first virtual output queues (“
VOQs”
) of the first buffer spaces;
store the second frames in second VOQs of the second buffer spaces;
apply a first set of rules to the first frames; and
apply a second set of rules to the second frames.
-
Specification