IP Library Granted Patent US 8,155,135
Granted Patent B2
US 8,155,135 · App. 12/857,325 · Granted Apr 10, 2012

Network interface device with flow-oriented bus interface

Assignee: Broadcom Corporation
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 8,155,135
App. No.
12/857,325
Granted
Apr 10, 2012
Kind
B2
Abstract

A network interface device includes a bus interface that communicates over a bus with a host processor and memory, and a network interface that sends and receive data packets carrying data over a packet network. A protocol processor conveys the data between the network interface and the memory via the bus interface while performing protocol offload processing on the data packets in accordance with multiple different application flows. The bus interface queues the data for transmission over the bus in a plurality of queues that are respectively assigned to the different application flows, and transmits the data over the bus according to the queues.

Claims (63)

1. A network interface device, comprising:

a network interface configured to receive a plurality of data packets carrying data over a packet network;

a protocol processor configured to perform protocol offload processing on the plurality of data packets in accordance with priority associated with an application flow, wherein the protocol offload processing begins upon receiving a header of the received data packets from a parser without waiting for a remainder of the received plurality of data packets to arrive; and

a bus interface that schedules and transmits the plurality of data packets based upon application flow priority, wherein the plurality of data packets are stored in a queue associated with the application flow, and wherein the queue is one of a plurality of queues.

2. The network interface device according to claim 1 , wherein the bus is a Peripheral Component Interconnect Express packet bus.

3. The network interface device according to claim 1 , wherein the header of a received data packet is detected by a filter.

4. The network interface device according to claim 3 , wherein the received data packet is a management packet.

5. The network interface device according to claim 1 , wherein the plurality of queues comprises a sequence of priority queues.

6. The network interface device according to claim 5 , wherein priority in the sequence of priority queues is assigned according to a weighted queuing scheme, wherein weights are determined according to traffic in the plurality of application flows.

7. The network interface device according to claim 6 , wherein the bus interface allocates bandwidth to each of the application flows according to the weighted queuing scheme.

8. The network interface device according to claim 1 , wherein the bus interface is operable to transmit sequentially in queue order.

9. The network interface device according to claim 1 , wherein a queue is formed by a virtual pointer to a location in a memory.

10. The network interface device according to claim 1 , wherein a queue is a virtual queue.

11. The network interface device according to claim 1 , wherein each application flow in the plurality of application flows is associated with a different virtual queue.

12. The network interface device according to claim 1 , wherein the parser is operable to parse VLAN tags.

13. The network interface device according to claim 1 , wherein the protocol processor is operable to perform protocol offload processing on a first application flow having a first protocol and a second application flow having a second protocol.

14. The network interface device according to claim 1 , wherein the bus has a bus bandwidth, and wherein the bus interface allocates bandwidth for transmission of the data over the bus according to the plurality of application flows.

15. The network interface device according to claim 14 , wherein a distribution of traffic is estimated based on use of the network interface device.

16. The network interface device according to claim 15 , wherein prioritization of the application flows is determined according to the estimated distribution of the traffic.

17. The network interface device according to claim 1 , wherein each of the queues comprises a sequence of transmission requests, and wherein the bus interface processes the transmission requests sequentially in queue order.

18. The network interface device according to claim 1 , wherein the bus interface is operable to apply back-pressure on one or more of the queues when resources are not available to serve the application flows to which the one or more of the queues are assigned.

19. A method for processing data, comprising:

receiving a plurality of data packets carrying data over a packet network;

performing protocol offload processing on the plurality of data packets in accordance with a plurality of application flows, wherein the protocol offload processing is performed in an offload engine and begins upon receiving a header of the received plurality of data packets from a parser without waiting for a remainder of the received data packets to arrive; and

transmitting the plurality of data packets over a bus based upon application flow priority, wherein the plurality of data packets are stored in a queue associated with the application flow, and wherein the queue is one of a plurality of queues.

20. The method according to claim 19 , wherein the bus is a Peripheral Component Interconnect Express packet bus.

21. The method according to claim 19 , wherein the header of a received data packet is detected by a filter.

22. The method according to claim 21 , wherein the received data packet is a management packet.

23. The method according to claim 19 , wherein the plurality of queues comprises a sequence of priority queues.

24. The method according to claim 23 , wherein priority in the sequence of priority queues is assigned according to a weighted queuing scheme, wherein weights are determined according to traffic in the plurality of application flows.

25. The method according to claim 24 , wherein bandwidth is allocated to each of the application flows according to the weighted queuing scheme.

26. The method according to claim 19 , wherein data is transmitted over the bus sequentially in queue order.

27. The method according to claim 19 , wherein a queue is formed by a virtual pointer to a location in a memory.

28. The method according to claim 19 , wherein a queue is a virtual queue.

29. The method according to claim 19 , wherein each application flow in the plurality of application flows is associated with a different virtual queue.

30. The method according to claim 19 , wherein the parser is operable to parse VLAN tags.

31. The method according to claim 19 , wherein the offload engine is operable to perform protocol offload processing on a first application flow having a first protocol and a second application flow having a second protocol.

32. The method according to claim 19 , wherein bandwidth for transmission of the data over the bus is allocated according to the plurality of application flows.

33. The method according to claim 32 , wherein a distribution of traffic is estimated based on use of the network interface device.

34. The method according to claim 33 , wherein prioritization of the application flows is determined according to the estimated distribution of the traffic.

35. The method according to claim 19 , wherein each of the queues comprises a sequence of transmission requests, and wherein the transmission requests are processed sequentially in queue order.

36. The method according to claim 19 , wherein back-Pressure is applied on one or more of the queues when resources are not available to serve the application flows to which the one or more of the queues are assigned.

37. An Ethernet controller, comprising:

a network interface configured to receive a plurality of data packets carrying data over Ethernet;

a protocol offload engine for processing the data packets in a plurality of application flows, wherein the protocol offload processing begins upon receiving a header of the data packets without waiting for a remainder of the plurality of data packets to arrive; and

a bus interface configured to transmit the plurality of data packets over a bus based upon application flow priority, wherein the plurality of data packets are stored in a queue associated with the application flow, and wherein the queue is one of a plurality of queues.

38. The Ethernet controller according to claim 37 , wherein the bus is a Peripheral Component Interconnect Express packet bus.

39. The Ethernet controller according to claim 37 , wherein the header of a received data packet is detected by a filter.

40. The Ethernet controller according to claim 39 , wherein the received data packet is a management packet.

41. The Ethernet controller according to claim 37 , wherein the plurality of queues comprises a sequence of priority queues.

42. The Ethernet controller according to claim 41 , wherein priority in the sequence of priority queues is assigned according to a weighted queuing scheme, wherein weights are determined according to traffic in the plurality of application flows.

43. The Ethernet controller according to claim 42 , wherein the bus interface allocates bandwidth to each of the application flows according to the weighted queuing scheme.

44. The Ethernet controller according to claim 37 , wherein the bus interface is operable to transmit sequentially in queue order.

45. The Ethernet controller according to claim 37 , wherein a queue is formed by a virtual pointer to a location in a memory.

46. The Ethernet controller according to claim 37 , wherein a queue is a virtual queue.

47. The Ethernet controller according to claim 37 , wherein each application flow in the plurality of application flows is associated with a different virtual queue.

48. The Ethernet controller according to claim 37 , wherein the data is VLAN tag based framed data.

49. The Ethernet controller according to claim 37 , wherein the protocol processor is operable to perform protocol offload processing on a first application flow having a first protocol and a second application flow having a second protocol.

50. The Ethernet controller according to claim 37 , wherein the bus has a bus bandwidth, and wherein the bus interface allocates bandwidth for transmission of the data over the bus according to the plurality of application flows.

51. The Ethernet controller according to claim 50 , wherein a distribution of traffic is estimated based on use of The Ethernet controller.

52. The Ethernet controller according to claim 51 , wherein prioritization of the application flows is determined according to the estimated distribution of the traffic.

53. The Ethernet controller according to claim 37 , wherein each of the queues comprises a sequence of transmission requests, and wherein the bus interface processes the transmission requests sequentially in queue order.

54. The Ethernet controller according to claim 37 , wherein the bus interface is operable to apply back-pressure on one or more of the queues when resources are not available to serve the application flows to which the one or more of the queues are assigned.

Assignments (5)
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER TO 09/05/2018 PREVIOUSLY RECORDED AT REEL: 047230 FRAME: 0133. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047630/0456 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047230/0133 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
Continuity (6)
Continuation 11416817 · May 3, 2006
Continuation In Part 11253509 · Oct 18, 2005
Provisional Application 60620098 · Oct 19, 2004
Provisional Application 60626283 · Nov 8, 2004
Provisional Application 60643335 · Jan 11, 2005
Related Publication 20100312941A1 · Dec 9, 2010