IP Library Granted Patent US 9,071,559
Granted Patent B1
US 9,071,559 · App. 13/678,367 · Granted Jun 30, 2015

Network devices having configurable receive packet queues and related methods

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,071,559
App. No.
13/678,367
Granted
Jun 30, 2015
Kind
B1
Abstract

Method and system for configuring a receive packet queue in a network device are provided. The method includes determining how many sub-ports of a port of the network device are configured; assigning memory to each of the configured sub-ports based on the determination of how many sub-ports are configured; determining a flow control scheme to be used for packet transmission; and dividing the receive packet queue based on the determination of the flow control scheme to be used.

Claims (38)

1. A machine-implemented method for configuring a receive packet queue in a network device, the method comprising:

determining how many sub-ports of a port of the network device are configured, wherein the port includes a plurality of sub-ports configured to operate as independent ports for sending and receiving packets using one of a plurality of network links at a plurality of rates and complying with a plurality of protocols;

assigning memory to each of the configured sub-ports based on the determination of how many sub-ports are configured;

determining a flow control scheme to be used for packet transmission; and

dividing the receive packet queue based on the determination of the flow control scheme to be used.

2. The method of claim 1 , wherein when only one sub-port is configured then all of the memory is assigned to it.

3. The method of claim 1 , wherein when only two sub-ports are configured then half of the memory is assigned to each sub-port.

4. The method of claim 1 , wherein when only three sub-ports are configured half of the memory is assigned to a first one of the configured sub-ports and one-quarter of the memory is assigned to each of the other configured sub-ports.

5. The method of claim 4 , wherein the first one of the configured sub-ports is a dual-lane port.

6. The method of claim 1 , wherein when four sub-ports are configured then one-quarter of the memory is assigned to each.

7. The method of claim 1 , wherein determining the flow control scheme to be used comprises determining whether a protocol being used is Fibre Channel.

8. The method of claim 7 , wherein if the protocol being used is Fibre Channel, determining whether virtual lanes (VL's) are enabled.

9. The method of claim 8 , wherein when VL's are enabled, dividing the receive packet queue equally by a number of VL's.

10. The method of claim 7 , wherein when the protocol being used is not Fibre Channel, determining whether flow control is enabled.

11. The method of claim 10 , wherein when flow control is enabled, determining whether Per Priority Flow Control is in effect.

12. The method of claim 11 , wherein when Per Priority Flow Control is in effect, dividing the receive packet segment by a number of priorities or classes of service supported.

13. A network device comprising:

at least one port, wherein the port includes a plurality of sub-ports configured to operate as independent ports for sending and receiving packets using one of a plurality of network links at a plurality of rates and complying with a plurality of protocols;

a memory containing machine readable medium comprising machine executable code having stored thereon instructions; and

a processor module coupled to the memory, the processor module configured to execute the machine executable code to:

determine how many sub-ports of the at least one port of the network device are configured;

assign memory to each of the configured sub-ports based on the determination of how many sub-ports are configured;

determine a flow control scheme to be used for packet transmission; and

divide the receive packet queue based on the determination of the flow control scheme to be used.

14. The network device of claim 13 , wherein when only one sub-port is configured then all of the memory is assigned to it.

15. The network device of claim 13 , wherein when only two sub-ports are configured then half of the memory is assigned to each sub-port.

16. The network device of claim 13 , wherein when only three sub-ports are configured half of the memory is assigned to a first one of the configured sub-ports and one-quarter of the memory is assigned to each of the other configured sub-ports.

17. The network device of claim 16 , wherein the first one of the configured sub-ports is a dual-lane port.

18. The network device of claim 13 , wherein when four sub-ports are configured then one-quarter of the memory is assigned to each.

19. The network device of claim 13 , wherein the code to determine the flow control scheme to be used comprises code to determine whether a protocol being used is Fibre Channel.

20. The network device of claim 19 , wherein if the protocol being used is Fibre Channel, the code further determines whether virtual lanes (VL's) are enabled.

21. The network device of claim 20 , wherein when VL's are enabled, the code further divides the receive packet queue equally by a number of VL's.

22. A non-transitory, machine-readable storage medium having stored thereon instructions for performing a method, comprising machine executable code which when executed by at least one machine, causes the machine to:

determine how many sub-ports of a port of a network device are configured, wherein the port includes a plurality of sub-ports configured to operate as independent ports for sending and receiving packets using one of a plurality of network links at a plurality of rates and complying with a plurality of protocols;

assign memory to each of the configured sub-ports based on the determination of how many sub-ports are configured;

determine a flow control scheme to be used for packet transmission; and

divide the receive packet queue based on the determination of the flow control scheme to be used.

23. The storage medium of claim 22 , wherein when only one sub-port is configured then all of the memory is assigned to it.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
CHANGE OF NAME Recorded Oct 8, 2018
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 047205/0953 →
RELEASE OF SECURITY INTEREST Recorded Jul 6, 2018
From: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: CAVIUM, INC; CAVIUM NETWORKS LLC; QLOGIC CORPORATION
Reel/Frame 046496/0001 →
MERGER Recorded Oct 18, 2017
From: QLOGIC CORPORATION
To: CAVIUM, INC.
Reel/Frame 044812/0504 →
SECURITY AGREEMENT Recorded Mar 1, 2017
From: QLOGIC CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 041854/0119 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2012
From: DROPPS, FRANK R.; VERBA, CRAIG M.; SLECHTA, LEO J., JR.
To: QLOGIC, CORPORATION
Reel/Frame 029307/0172 →