IP Library Granted Patent US 7,293,100
Granted Patent B2
US 7,293,100 · App. 10/233,304 · Granted Nov 6, 2007

Methods and apparatus for partially reordering data packets

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 7,293,100
App. No.
10/233,304
Granted
Nov 6, 2007
Kind
B2
Abstract

A method in a target device for partially reordering a plurality of data packets transmitted from a source device. The source device is coupled to the target device via a computer network. The method receiving a first set of data packets from the transmitted device, and ascertaining whether the first set of data packets represents a set of data packets that the target device expects to receive next. If the first set of data packets does not represents the set of data packets that the target expects to receive next, the method includes storing the first set of data packets in a memory buffer of the target device. The storing includes arranging the first set of data packets in the memory buffer such that data packets in the memory buffer, including the first set of data packets, are in order in the memory buffer.

Claims (16)

1. In a target device, a method for partially reordering a plurality of data packets transmitted from a source device, said source device being coupled to said target device via a computer network, comprising:

receiving a first set of data packets from said transmitted device;

ascertaining whether said first set of data packets represents a set of data packets that said target device expects to receive next; and

if said first set of data packets does not represents said set of data packets in an expected sequence number that said target expects to receive next, storing said first set of data packets in a memory buffer of said target device, said storing including arranging said first set of data packets in said memory buffer such that data packets in said memory buffer, including said first set of data packets, are in order in said memory buffer, wherein each packet of said plurality of data packets is associated with a sequence number, said sequence number determining a spatial relationship of said each packet relative to other packets in said plurality of data packets, said memory buffer is comprised of a plurality of storage structures for storing data packets of said plurality of data packets by their sequence numbers, and said each storage structure of said plurality of storage structures is configured to store a pointer to a memory location different from said memory buffer, said memory location being employed to store at least part of a packet received by said target device.

2. The method of claim 1 , including allocating in advance at least one storage structure of said plurality of storage structures for storing a given data packet, said given data packet represents a data packet that said target device expects to receive next from said source device.

3. The method of claim 2 wherein a data packet received at said target device after said allocating is discarded if said data packet received at said target device after said allocating does not represent said data packet that said target device expects to receive next from said source device.

4. The method of claim 1 , including allocating in advance, using a look-ahead algorithm, a set of storage structures of said plurality of storage structures for storing a given plurality of data packets, said given plurality of data packets represents data packets that said target device expects to receive next from said source device.

5. The method of claim 3 wherein data packets received at said target device after said allocating are discarded if said data packets received at said target device after said allocating do not represent said data packets that said target device expects to receive next from said source device.

6. A target device for partially reordering a plurality of data packets transmitted from a source device, said source device being coupled to said target device via a computer network, comprising:

means for receiving a first set of data packets from said transmitted device;

means for ascertaining whether said first set of data packets represents a set of data packets that said target device expects to receive next; and

if said first set of data packets does not represents said set of data packets in an expected sequence number that said target expects to receive next, means for storing said first set of data packets in a memory buffer of said target device, said storing including arranging said first set of data packets in said memory buffer such that data packets in said memory buffer, including said first set of data packets, are in order in said memory buffer, wherein each packet of said plurality of data packets is associated with a sequence number, said sequence number determining a spatial relation ship of said each packet relative to other packets in said plurality of data packets, said memory buffer is comprised of a plurality of storage structures for storing data packets of said plurality of data packets by their sequence numbers, and said each storage structure of said plurality of storage structures is configured to store a pointer a memory location different from said memory buffer, said memory location being employed to store at least part of a packet received by said target device.

7. The target device of claim 6 , including allocating in advance at least one storage structure of said plurality of storage structures for storing a given data packet, said given data packet represents a data packet that said target device expects to receive next from said source device.

8. The target device of claim 7 , wherein a data packet received at said target device after said allocating is discarded if said data packet received at said target device after said allocating does not represent said data packet that said target device expects to receive next from said source device.

9. The target device of claim 6 , including allocating in advance, using a look-ahead algorithm, a set of storage structures of said plurality of storage structures for storing a given plurality of data packets, said given plurality of data packets represents data packets that said target device expects to receive next from said source device.

10. The target device of claim 8 , wherein data packets received at said target device after said allocating are discarded if said data packets received at said target device after said allocating do not represent said data packets that said target device expects to receive next from said source device.

Assignments (6)
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE PREVIOUSLY RECORDED AT REEL: 047422 FRAME: 0464. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 6, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048883/0702 →
MERGER Recorded Oct 5, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047422/0464 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041710/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037808/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2015
From: EMULEX CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 036942/0213 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2014
From: EMULEX DESIGN AND MANUFACTURING CORPORATION
To: EMULEX CORPORATION
Reel/Frame 032087/0842 →