Claims
- 1. A method of classifying data in a data classifier deployed in a network device, the network device including a plurality of ports coupled to a heterogeneous communications network, the method comprising the steps of:
receiving a data packet at one of the plurality of ports of the network device, the data packet including a first portion; receiving the first portion of the data packet at the data classifier; extracting a plurality of tags and a logical port identifier (ID) from the first portion; determining a flow ID representative of a network service on the heterogeneous communications network associated with the data packet; determining a priority ID; combining the flow ID and the priority ID to create a queue ID.
- 2. The method of claim 1, wherein the step of receiving the data packet includes checking whether a packet type of the data packet matches a port type of the receiving one of the plurality of ports.
- 3. The method of claim 2, wherein the step of checking further includes generating a type error tag if the packet type does not match the port type.
- 4. The method of claim 1, wherein the step of extracting the plurality of tags includes storing the tags in a tag memory.
- 5. The method of claim 4, wherein the step of determining a flow ID includes, first, reading one or more of the plurality of tags from the tag memory.
- 6. The method of claim 1, wherein the plurality of tags includes one or more of a flow tag, a media access control destination address tag, a media access control source address tag, a priority tag and a balancer tag.
- 7. The method of claim 6, wherein the flow tag is used to derive one or more of an input flow ID, an output flow ID and a customer ID.
- 8. The method of claim 1, wherein the network service includes one or more private line service or a private local area network service.
- 9. The method of claim 1, wherein the step of determining the flow ID uses one or more of the plurality of tags and the logical port ID.
- 10. The method of claim 9, wherein the plurality of tags includes one or more of a flow tag, a media access control destination address tag and a media access control source address tag.
- 11. The method of claim 10, wherein the flow tag is used to derive one or more of an input flow ID, an output flow ID and a customer ID.
- 12. The method of claim 6, wherein the step of determining the flow ID further includes:
a flow tag lookup process; a media access control destination address lookup process; a media access control source address learning process; and an output flow ID selection process.
- 13. The method of claim 12, wherein the flow tag lookup process:
receives as inputs the flow tag and the logical port ID; and provides as outputs: a first output flow ID to the output flow ID selection process; a customer ID to both the media access control destination address lookup process and the media access control source address learning process; and an input flow ID to the media access control source address learning process.
- 14. The method of claim 13, wherein the media access control destination address lookup process:
receives as inputs the customer ID and the media access control destination address tag; accesses a hash table; and provides as outputs a second output flow ID and an output flow ID selector to the output flow ID selection process.
- 15. The method of claim 14, wherein the media access control source address learning process:
receives as inputs the customer ID, the input flow ID and the media access control source address tag; accesses the hash table; and provides as output learned flow parameters to the hash table.
- 16. The method of claim 15, wherein the output flow ID selection process:
receives as inputs the first output flow ID, the second output flow ID and the output flow ID selector; and provides as output the flow ID.
- 17. The method of claim 1, wherein the step of determining the flow ID further includes:
generating a balanced flow ID; and using the balanced flow ID as the flow ID for creating the queue ID.
- 18. The method of claim 17, wherein the step of generating the balanced flow ID uses one or more of the plurality of tags.
- 19. The method of claim 18, wherein the plurality of tags includes a balancer tag.
- 20. The method of claim 1, wherein the step of determining the priority ID uses one or more of the plurality of tags.
- 21. The method of claim 20, wherein the plurality of tags includes a priority tag.
- 22. A data classifier deployed in a network device, the network device including a plurality of ports coupled to a heterogeneous communications network, comprising:
a tag extraction unit capable of extracting a plurality of tags and a logical port identifier (ID) from a first portion of a data packet, the data packet having been received at one of the plurality of ports of the network device; and a tag lookup engine coupled to the tag extraction unit and capable of:
determining a flow ID from one or more of the plurality of tags and the logical port ID, the flow ID representing a network service on the heterogeneous communications network associated with the data packet; and determining a priority ID; and a queue ID generator coupled to the tag lookup engine and capable of combining the flow ID and the priority ID to create a queue ID.
- 23. The device of claim 22, wherein the tag extraction unit includes a tag checker capable of determining whether a packet type of the data packet matches a port type of the receiving one of the plurality of ports.
- 24. The device of claim 23, wherein the tag checker is further capable of generating a type error tag if the packet type does not match the port type.
- 25. The device of claim 22, wherein the tag checker includes a tag memory capable of storing the plurality of tags.
- 26. The device of claim 25, wherein the tag lookup engine is further capable of accessing the one or more of the plurality of tags in the tag memory.
- 27. The device of claim 22, wherein the plurality of tags includes one or more of a flow tag, a media access control destination address tag, a media access control source address tag, a priority tag and a balancer tag.
- 28. The device of claim 27, wherein the flow tag is used to derive one or more of an input flow ID, an output flow ID and a customer ID.
- 29. The device of claim 22, wherein the network service includes one or more private line service or a private local area network service.
- 30. The device of claim 27, wherein the tag lookup engine includes:
a flow tag lookup coupled to the tag extraction unit; a media access control destination address lookup coupled to the tag extraction unit, the flow tag lookup and a hash table; a media access control source address learner coupled to the tag extraction unit, the flow tag lookup and the hash table; and an output flow ID selector coupled to the flow tag lookup, the media access control destination lookup and the queue ID selector.
- 31. The device of claim 30, wherein the flow tag lookup is capable of:
receiving the flow tag and the logical port ID as inputs; and providing as outputs: a first output flow ID to the output flow ID selector; a customer ID to both the media access control destination address lookup and the media access control source address learner; and an input flow ID to the media access control source address learner.
- 32. The device of claim 31, wherein the media access control destination address lookup is capable of:
receiving the customer ID and the media access control destination address tag as inputs; accessing the hash table; and providing a second output flow ID and an output flow ID selector to the output flow ID selector as outputs.
- 33. The device of claim 32, wherein the media access control source address learner is capable of:
receiving the customer ID, the input flow ID and the media access control source address tag as inputs; accessing the hash table; and providing learned flow parameters to the hash table as output.
- 34. The device of claim 33, wherein the output flow ID selector is capable of:
receiving the first output flow ID, the second output flow ID and the output flow ID selector as inputs; and providing the flow ID to the queue ID generator as output.
- 35. The device of claim 34, wherein the tag lookup engine further includes a priority tag lookup coupled to the tag extraction unit, the output flow ID selector, and the queue ID generator.
- 36. The device of claim 35, wherein the priority tag lookup is capable of:
receiving the priority tag and flow ID as inputs; and providing the priority ID to the queue ID generator as output.
- 37. The device of claim 36, wherein the tag lookup engine further includes a balancer tag lookup coupled to the tag extraction unit, the output flow ID selector and the queue ID generator.
- 38. The device of claim 37, wherein the balancer tag lookup is capable of:
receiving the balancer tag and the flow ID as inputs; and providing a balanced flow ID to the queue ID generator as output.
- 39. The device of claim 38, wherein the queue ID generator is further capable of combining the balanced flow ID and the priority ID to create the queue ID.
- 40. The device of claim 39, wherein the data classifier is fabricated on a single die.
- 41. The device of claim 40, wherein the data classifier is fabricated on a single functional block on the single die.
- 42. The device of claim 22, wherein the data classifier is fabricated on a single die.
- 43. The device of claim 42, wherein the data classifier is fabricated on a single functional block on the single die.
- 44. A method of classifying data in a data classifier deployed in a network device, the network device including a plurality of ports coupled to a heterogeneous communications network, the method comprising the steps of:
receiving a data packet at one of the plurality of ports of the network device, the data packet including a first portion; receiving the first portion of the data packet at the data classifier; extracting a plurality of tags and a logical port identifier (ID) from the first portion, the plurality of tags including one or more of a flow tag, a media access control destination address tag, a media access control source address tag, a priority tag and a balancer tag; determining a flow ID representative of a network service on the heterogeneous communications network associated with the data packet, including:
a flow tag lookup process; a media access control destination address lookup process; a media access control source address learning process; and an output flow ID selection process. determining a priority ID; combining the flow ID and the priority ID to create a queue ID.
- 45. A data classifier deployed in a network device, the network device including a plurality of ports coupled to a heterogeneous communications network, and fabricated on a single die comprising:
a tag extraction unit capable of extracting a plurality of tags and a logical port identifier (ID) from a first portion of a data packet, the data packet having been received at one of the plurality of ports of the network device, wherein the plurality of tags includes a flow tag, a media access control destination address tag, a media access control source address tag, a priority tag and a balancer tag; and a tag lookup engine coupled to the tag extraction unit including:
a plurality of tag lookups and one or more flow ID selectors coupled to the tag extraction unit; and wherein the tag lookup engine is capable of:
determining a flow ID from one or more of the plurality of tags and the logical port ID, the flow ID representing a network service on the heterogeneous communications network associated with the data packet; and determining a priority ID; and a queue ID generator coupled to the tag lookup engine and capable of combining the flow ID and the priority ID to create a queue ID.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of priority under 35 U.S.C. § 19(e) from U.S. Provisional Application No. 60/443,159 to Paolo Narvaez, filed Jan. 27, 2003 and entitled “Classification of Packets in a Heterogeneous Data Redirection Device,” which is fully incorporated by reference in its entirety and for all purposes.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60443159 |
Jan 2003 |
US |