IP Library Granted Patent US 9,158,570
Granted Patent B2
US 9,158,570 · App. 14/221,134 · Granted Oct 13, 2015

Method and system for facilitating quality of service in edge devices in a fibre channel network

Inventors: Amit Kanda (San Jose, CA); Ramkumar Vadivelu (San Jose, CA); Vinodh Ravindran (San Jose, CA); Ponpandiaraj Rajarathinam (Karnataka, IN)
Assignee: BROCADE COMMUNICATIONS SYSTEMS, INC.
G06F9/45558H04L5/0037H04L47/10H04L47/11H04L47/12H04L47/263H04L67/327H04Q11/0005G06F2009/45595Y02B60/31
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,158,570
App. No.
14/221,134
Granted
Oct 13, 2015
Kind
B2
Abstract

One embodiment of the present invention provides a system that facilitates quality of service (QoS) in a Fiber Channel (FC) host bus adaptor (HBA). In this system the bandwidth on an FC link between the HBA and the FC switch can be allocated into a plurality of logical channels, and a respective logical channel can transport data frames of variable length. Furthermore, a respective logical channel is associated with a dedicated buffer. During operation, the HBA communicates to an FC switch the HBA's capability of receiving or sending a data flow over a logical channel that couples the HBA to the FC switch. The HBA further receives logical-channel allocation information from the FC switch. Furthermore, the HBA associates data frames with a logical channel and transmits data frames to the FC switch on the corresponding logical channel.

Claims (86)

1. A method for facilitating quality of service (QoS) in a network interface card, the method comprising:

constructing one or more packets to indicate the network interface card's capability of receiving or sending a data flow over a logical channel on a port of the network interface card, wherein the network interface card comprises network interface circuitry;

wherein bandwidth of the port of the network interface card is allocated into a plurality of logical channels;

wherein a respective logical channel supports transportation of data frames of variable length; and

wherein a respective logical channel is associated with a dedicated buffer for the logical channel;

identifying logical-channel allocation information of the plurality of logical channels received via the port; and

associating a data frame with a logical channel for transmitting via the port, wherein the data frame is from a dedicated buffer associated with the logical channel.

2. The method of claim 1 , wherein the logical-channel allocation information indicates a QoS class to which a respective logical channel belongs.

3. The method of claim 1 , further comprising:

initiating a login process to a switch; and

including a data structure which indicates whether the network interface card receives or sends data frames over a logical channel in the one or more packets.

4. The method of claim 3 , further comprising negotiating with the switch a buffer-to-buffer credit for a respective logical channel based on the logical-channel allocation information.

5. The method of claim 1 , wherein prior to identifying the logical-channel allocation information, the method comprises selecting a default logical channel reserved for inter-switch communications.

6. The method of claim 1 , further comprising:

constructing a request packet requesting port assignment; and

identifying port assignment information for a physical device or logical entity associated with the network interface card.

7. The method of claim 1 , further comprising constructing a logical-channel query comprising information indicating association between a logical channel and a data flow originated from the port, wherein the query includes a port identifier for the port.

8. The method of claim 7 , wherein the destination address of the query is a well-known address of a switch.

9. The method of claim 7 ,

wherein the query indicates a destination to which a logical entity corresponding to the port identifier is to communicate; and

wherein the method further comprises identifying an answer comprising information indicating a logical channel assigned to a data flow between the logical entity and the destination indicated in the query.

10. The method of claim 9 , further comprising identifying a second answer indicating a logical channel assigned to a data flow between the logical entity and a second destination.

11. The method of claim 7 , further comprising constructing a logical-channel query for a respective port of the network interface card, thereby allowing data flows originated from different ports of the network interface card to be allocated on different logical channels.

12. The method of claim 1 , further comprising identifying an update indicating a change in an association between the logical channels and QoS classes.

13. A network card for facilitating quality of service (QoS), the network interface card comprising:

network interface circuitry;

wherein the network interface card is configured to construct one or more packets to indicate the network interface card's capability of receiving or sending a data flow over a logical channel on a port of the network interface card

wherein bandwidth of the port of the network interface card is allocated into a plurality of logical channels;

wherein a respective logical channel supports transportation of data frames of variable length; and

wherein a respective logical channel is associated with a dedicated buffer for the logical channel;

wherein the network interface card is further configured to:

identify logical-channel allocation information of the plurality of logical channels received via the port; and

associate a data frame with a logical channel for transmitting via the port, wherein the data frame is from a dedicated buffer associated with the logical channel.

14. The network interface card of claim 13 , wherein the logical-channel allocation information indicates a QoS class to which a respective logical channel belongs.

15. The network card of claim 13 , wherein the network interface card is further configured to:

initiate a login process to a switch; and

include a data structure which indicates whether the network interface card receives or sends data frames over a logical channel in the one or more packets.

16. The network interface card of claim 15 , wherein the network interface card is further configured to negotiate with the switch a buffer-to-buffer credit for a respective logical channel based on the logical-channel allocation information.

17. The network interface card of claim 13 , wherein, prior to identifying the logical-channel allocation information, the network interface card is further configured to select a default logical channel reserved for inter-switch communications.

18. The network interface card of claim 13 , wherein the network interface card is further configured to:

construct a request packet requesting port assignment from the switch; and

identify port assignment information for a physical device or logical entity associated with the network interface card.

19. The network interface card of claim 13 , wherein the network interface card is further configured to construct a logical-channel query comprising information indicating association between a logical channel and a data flow originated from the port, wherein the query includes an identifier for the port.

20. The network interface card of claim 19 , wherein the destination address of the query is a well-known address of a switch.

21. The network interface card of claim 19 , wherein the query indicates a destination to which a logical entity corresponding to the port identifier is to communicate; and

wherein the network interface card is further configured to identify an answer comprising information indicating a logical channel assigned to a data flow between the logical entity and the destination indicated in the query.

22. The network interface card of claim 21 , wherein the network interface card is further configured to identify a second answer indicating a logical channel assigned to a data flow between the logical entity and a second destination.

23. The network interface card of claim 19 , wherein the network interface card is further configured to construct a logical-channel query for a respective port of the network interface card, thereby allowing data flows originated from different ports of the network interface card to be allocated on different logical channels.

24. The network interface card of claim 13 , wherein the network interface card is further configured to identify an update indicating a change in an association between the logical channels and QoS classes.

25. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for facilitating quality of service (QoS) in a network interface card, the method comprising:

constructing one or more packets to indicate the network interface card's capability of receiving or sending a data flow over a logical channel on a port of the network interface card, wherein the network interface card comprises network interface circuitry;

wherein bandwidth of the port of the network interface card is allocated into a plurality of logical channels;

wherein a respective logical channel supports transportation of data frames of variable length; and

wherein a respective logical channel is associated with a dedicated buffer for the logical channel;

identifying logical-channel allocation information of the plurality of logical channels received via the port; and

associating a data frame with a logical channel for transmitting via the port, wherein the data frame is from a dedicated buffer associated with the logical channel.

26. A system, comprising:

a switch;

a network interface card, comprising network interface circuitry;

a physical link coupling the network interface card to the switch;

wherein bandwidth on the physical link between the network interface card and the switch is allocated into a plurality of logical channels;

wherein a respective logical channel supports transportation of data frames of variable length;

wherein a respective logical channel is associated with a dedicated buffer for the logical channel; and

wherein the network interface card is configured to:

communicate to the switch the network interface card's capability of receiving or sending a data flow over a logical channel that couples the network interface card to the switch;

receive logical-channel allocation information of the plurality of logical channels from the switch; and

associate a data frame with a logical channel for transmitting to the switch, wherein the data frame is from a dedicated buffer associated with the logical channel.

27. A computing system, comprising:

a network interface card, comprising network interface circuitry;

wherein bandwidth of a port of the network interface card is allocated into a plurality of logical channels;

wherein a respective logical channel supports transportation of data frames of variable length;

wherein a respective logical channel is associated with a dedicated buffer for the logical channel; and

wherein the network interface card is configured to:

construct one or more packets to indicate the network interface card's capability of receiving or sending a data flow over a logical channel on the port of the network interface card;

identify logical-channel allocation information received via the port; and

associate a data frame with a logical channel for transmitting via the port, wherein the data frame is from a dedicated buffer associated with the logical channel.

28. A switch for facilitating quality of service (QoS) in a network, the switch comprising:

a processor;

a network interface card comprising network interface circuitry;

a non-transitory computer-readable storage medium storing instructions which when executed by the processor causes the processor to perform a method, the method comprising:

constructing one or more packets to indicate the network interface card's capability of receiving or sending a data flow over a logical channel on a port of the network interface card;

wherein bandwidth on a link of the port of the network interface card is allocated into a plurality of logical channels;

wherein a respective logical channel supports transportation of data frames of variable length; and

wherein a respective logical channel is associated with a dedicated buffer in the switch for the logical channel; and

identifying logical-channel allocation information of the plurality of logical channels received via the port; and

associating the data frame with a logical channel for transmitting via the port, wherein the data frame is from a dedicated buffer associated with the logical channel.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2018
From: BROCADE COMMUNICATIONS SYSTEMS LLC
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047270/0247 →
CHANGE OF NAME Recorded Dec 13, 2017
From: BROCADE COMMUNICATIONS SYSTEMS, INC.
To: BROCADE COMMUNICATIONS SYSTEMS LLC
Reel/Frame 044891/0536 →
Continuity (3)
Continuation 12119430 · May 12, 2008
Provisional Application 61002252 · Nov 7, 2007
Related Publication 20140204957A1 · Jul 24, 2014