IP Library Granted Patent US 9,225,672
Granted Patent B1
US 9,225,672 · App. 13/678,385 · Granted Dec 29, 2015

Systems and methods for packet grouping in networks

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,225,672
App. No.
13/678,385
Granted
Dec 29, 2015
Kind
B1
Abstract

Methods and systems for packet grouping in a network are provided. A packet is received at a receive segment of a port of a first network device for transmission to a destination port of a second network device. The port determines if the packet is a start packet of a packet sequence. When the packet is not the start packet of the packet sequence, the port determines whether the packet has a destination that is the same as a destination of a last prior packet. When the packet is for the same destination, a grouping count is increased and the packet priority is elevated.

Claims (39)

1. A machine-implemented method for packet grouping in a network, the method comprising:

receiving a packet at a receive segment of a port of a first network device for transmission to a destination port of a second network device;

determining if the packet is a start packet of a packet sequence;

when the packet is the start packet of the packet sequence, activating a group state that enables elevating processing priority for packets having a same destination;

storing group state information and packet destination of the received packet;

when the packet is not the start of the packet sequence but has a same destination of a last received packet, then:

incrementing a group count, where the group count limits a number of grouped packets whose priority is elevated due to the same destination;

elevating a priority of the received packet;

sending a request for processing the received packet with elevated priority; and

disabling priority elevation for packets with the same destination by clearing the group state, the stored destination and the group count, when the group count has reached a maximum count value.

2. The method of claim 1 , wherein the request for processing the packet is sent to a scheduler that arbitrates between requests for a plurality of packets received at a plurality of ports of the first network device.

3. The method of claim 2 , wherein the scheduler includes a first stage arbiter for arbitrating between requests received from a plurality of sub-ports of the plurality of ports.

4. The method of claim 1 , wherein the group count reaches the maximum value when a number of packets grouped together equals a programmed maximum number of packets that can be grouped together.

5. The method of claim 2 , wherein the scheduler includes a second stage arbiter for arbitrating between requests that are provided by a plurality of first stage arbiters of each port.

6. The method of claim 5 , wherein when two requests have a same priority, then an oldest among the two requests is selected for processing by the second stage arbiter.

7. The method of claim 5 , wherein when two requests have same priority and age, then a round robin method is used to select one of the requests by the second stage arbiter.

8. The method of claim 1 , wherein the first network device is a switch element.

9. The method of claim 1 , wherein the port includes a plurality of sub-ports configured to operate independently for sending and receiving information at a plurality of rates complying with a plurality of protocols.

10. The method of claim 9 , wherein one of the plurality of sub-ports is configured to operate as a Fibre Channel port.

11. The method of claim 9 , wherein one of the plurality of sub-ports is configured to operate as an Ethernet or Fibre Channel over Ethernet port.

12. A network device, comprising:

a base-port having a plurality of sub-ports configured to operate independently as a port for sending and receiving packets at a plurality of rates complying with a plurality of protocols;

a shared temporary memory storage device having a plurality of storage locations that are used to store packets received by the plurality of sub-ports; and

a routing sequencer for determining a destination for a packet received for a sub-port for transmission to a destination port of another network device; wherein the routing sequencer is configured to determine if the packet is a start packet of a packet sequence; and when the packet is not the start packet of the packet sequence, determines whether the packet has a destination that is the same as a destination of a last prior packet; and when the packet is for the same destination, the routing sequencer increments a group count and saves the packet destination while elevating a priority of the packet, where the group count limits a number of packets whose priority is elevated based on the packet destination; and

wherein to disable elevation of packet priority, the routing sequencer clears a group state that is activated when the start packet is received, a group packet destination, and the group count when the group count reaches a maximum value.

13. The network device of claim 12 , wherein a request for transmitting the packet is sent to a scheduler having a plurality of first stage arbiters for arbitrating between requests received from a plurality of sub-ports of a plurality of base-ports.

14. The network device of claim 12 , wherein the group count reaches the maximum value when a number of packets grouped together equals a programmed maximum number of packets that can be grouped together.

15. The network device of claim 13 , wherein the scheduler includes a second stage arbiter for arbitrating between requests that are provided by the plurality of first stage arbiters and when two requests have a same priority, then an oldest among the two requests is selected for processing by the second stage arbiter.

16. The network device of claim 12 , wherein the network device is a switch element.

17. The network device of claim 12 , wherein one of the plurality of sub-ports is configured to operate as a Fibre Channel port.

18. The network device of claim 12 , wherein one of the plurality of sub-ports is configured to operate as an Ethernet or Fibre Channel over Ethernet port.

19. A machine-implemented method for packet grouping in a network, the method comprising:

receiving a packet at a receive segment of a port of a first network device for transmission to a destination port of a second network device;

determining whether the packet has a destination that is the same as a destination of a last prior packet;

when the packet is the start packet of the packet sequence, activating a group state that enables elevating processing priority for packets, incrementing a group count, saving the packet destination, and elevating a priority of the packet, where the group count limits priority elevation for packets to the same destination;

sending a send request for the packet to a scheduler; and

determining whether the group count has reached a maximum value;

wherein the group count reaches the maximum value when a number of packets grouped together equals a programmed maximum number of packets that can be grouped together and when the group count has reached the maximum value, a routing sequencer for the network device clears a grouping state activated when a start of a packet sequence is received, a group destination, and the group count.

20. The method of claim 19 , wherein the port includes a plurality of sub-ports configured to operate independently for sending and receiving information at a plurality of rates complying with a plurality of protocols.

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.
To: QLOGIC, CORPORATION
Reel/Frame 029307/0237 →