IP Library Granted Patent US 7,187,676
Granted Patent B2
US 7,187,676 · App. 10/163,043 · Granted Mar 6, 2007

Apparatus and method for steering a communication to an open stream

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,187,676
App. No.
10/163,043
Granted
Mar 6, 2007
Kind
B2
Abstract

An apparatus and method for expeditiously steering a received communication (e.g., packet, cell, frame) to one or more communication streams. When a new communication stream is opened on a network interface circuit or other Primary Point of Attachment (PPA), the protocol to which the stream is bound is used as a Service Access Point (SAP). A hierarchy of SAP nodes (e.g., a binary tree) is constructed, with each node corresponding to a unique SAP. Each node includes its corresponding SAP value, a count of the number of communication streams bound to the associated protocol, and a reference to those streams. When a communication is received, its SAP is extracted and the hierarchy is searched for a matching node. The communication is then forwarded to each referenced stream.

Claims (78)

1. A method of steering a packet to a communication stream, comprising:

receiving a first packet at a communication interface;

extracting a first SAP (Service Access Point) value from the first packet;

within a soft state data structure for the communication interface, accessing a hierarchical arrangement of nodes representing SAPs;

searching the hierarchical arrangement for a first node representing the first SAP;

retrieving from the first node a count of the number of communication streams associated with the first SAP; and

forwarding the first packet to one or more communication streams identified in the first node.

2. The method of claim 1 , further comprising prior to said receiving:

associating a first communication stream with the first SAP;

adding the first node to the hierarchical arrangement; and

inserting a reference to the first communication stream into the first node.

3. The method of claim 1 , further comprising:

retrieving from the first node a list comprising the one or more communication streams.

4. The method of claim 1 , wherein said extracting comprises:

reading a predetermined field of the first packet.

5. A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of steering a packet to a communication stream, the method comprising:

receiving a first packet at a communication interface;

extracting a first SAP (Service Access Point) value from the first packet;

within a soft state data structure for the communication interface, accessing a hierarchical arrangement of nodes representing SAPs;

searching the hierarchical arrangement for a first node representing the first SAP;

retrieving from the first node a count of the number of communication streams associated with the first SAP; and

forwarding the first packet to one or more communication streams identified in the first node.

6. A method of facilitating the use of a hierarchical representation of SAPs (Service Access Points) to steer received packets to communication streams associated with the SAPs, the method comprising:

attaching a first communication stream to a communication interface;

associating the first communication stream with a first SAP value;

within a hierarchy of SAP nodes, wherein each SAP node corresponds to a SAP, configuring a first SAP node in the set of nodes to include:

the first SAP value; and

a reference to the first communication stream;

receiving a first packet containing the first SAP value;

traversing the hierarchy of SAP nodes to locate the first SAP node; and

forwarding the first packet to one or more communication streams identified in the first SAP node.

7. The method of claim 6 , further comprising:

creating a reference to the hierarchy of SAP nodes within a soft state data structure configured to store status information regarding the communication interface.

8. The method of claim 6 , wherein said associating comprises:

binding the first communication stream to a first communication protocol associated with the first SAP value.

9. The method of claim 6 , wherein said configuring further comprises:

configuring the first SAP node to include a count of the number of communication streams associated with the first SAP value.

10. The method of claim 6 , further comprising:

associating a second communication stream with the first SAP value; and

modifying the first SAP node to include a reference to the second communication stream.

11. The method of claim 10 , wherein:

said reference to the first communication stream comprises a list of communication streams; and

said modifying comprises adding the second communication stream to the list.

12. The method of claim 10 , wherein said modifying comprises:

increasing a count of the number of communication streams associated with the first SAP value.

13. A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of facilitating the use of a hierarchical representation of SAPs (Service Access Points) to steer received packets to communication streams bound to the SAPs, the method comprising:

attaching a first communication stream to a communication interface;

associating the first communication stream with a first SAP value;

within a hierarchy of SAP nodes, wherein each SAP node corresponds to a SAP, configuring a first SAP node in the set of nodes to include:

the first SAP value; and

a reference to the first communication stream;

receiving a first packet containing the first SAP value;

traversing the hierarchy of SAP nodes to locate the first SAP node; and

forwarding the first packet to one or more communication streams identified in the first SAP node.

14. A computer readable storage medium containing a data structure comprising a hierarchical index of nodes representing SAPs (Service Access Points) associated with communication streams, the data structure comprising:

a set of nodes, each node comprising:

a SAP value;

a count of the number of communication streams bound to a protocol corresponding to said SAP value;

a reference to the communication streams bound to the protocol corresponding to said SAP value;

a first pointer configured to reference a first node having a lower SAP value than said SAP value; and

a second pointer configured to reference a second node having a higher SAP value than said SAP value.

15. An apparatus for steering a packet to an open communication stream, comprising:

a communication interface configured to receive a first packet for a host computing device;

a memory configured to store a hierarchy of SAP (Service Access Point) nodes, wherein each said SAP node identifies only those communication streams traversing the communication interface that are associated with said SAP; and

a device driver configured to:

manage the communication streams on behalf of one or more applications; and

remove a first SAP node from said hierarchy when a communication stream is closed if the communication stream is the only communication stream through the communication interface that is associated with said first SAP.

16. The apparatus of claim 15 , wherein each said SAP node comprises:

said SAP;

a reference to a first communication stream associated with said SAP; and

a count of the number of communication streams associated with said SAP.

17. The apparatus of claim 15 , wherein a first SAP is stored as a type/length field in the first packet, wherein the first packet belongs to a first communication stream associated with the first SAP.

18. The apparatus of claim 15 , wherein said hierarchy of SAP nodes comprises a binary tree.

19. The apparatus of claim 15 , wherein said device driver is further configured to add a new SAP node to said hierarchy when a communication stream is associated with a SAP not already included in said hierarchy.

20. The apparatus of claim 15 , wherein said device driver is further configured to:

retrieve a first SAP from the first packet;

search said hierarchy for a first SAP node corresponding to the first SAP; and

forward the first packet to one or more communication streams identified by the first SAP node.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037302/0719 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 4, 2002
From: DIMAMBRO, FRANCESCO
To: SUN MICROSYSTEMS, INC.
Reel/Frame 012974/0772 →