Claims
- 1. A method for handling asynchronous transfer mode cells, comprising the steps of:
receiving an ATM cell having a cell header which includes at least cell destination information; examining the cell header with a first hardware filter; determining whether the cell destination information is included within a first hardware lookup table; identifying a cell flow data structure associated with an entry in the first hardware lookup table associated with the cell destination information if it is determined that the cell destination information is included within the first hardware lookup table; and performing the following steps if it is determined that the cell destination is not included within the first hardware lookup table:
passing the ATM cell to a second software filter; examining the cell header with the second software filter; and identifying the identifying a cell flow associated with an entry in the second software lookup table associated with the cell destination information.
- 2. The method of claim 1, wherein the first hardware lookup table is limited to a predetermined size.
- 3. The method of claim 1, wherein the cell destination information includes a virtual path identifier and/or a virtual circuit identifier and wherein the first hardware lookup table includes a first hardware VPI table and a first hardware VCI table.
- 4. The method of claim 3, wherein the step of passing the ATM cell to a secondary software filter, further comprises the steps of:
hashing the virtual path identifier or virtual channel identifier extracted from the cell header; and identifying a cell flow data structure associated with an entry in a secondary software hash table associated with the hashed virtual path identifier or virtual channel.
- 5. The method of claim 3, wherein the step of determining whether the cell destination information is included within a first hardware lookup table further comprises the steps of:
extracting the virtual path identifier and the virtual channel identifier from the cell header; determining whether the virtual path identifier is zero or non-zero; performing the following steps if it is determined that the virtual path identifier is zero:
determining whether the virtual channel identifier is included within the first hardware VCI table:
passing the ATM cell to the secondary software filter if it is determined that the virtual channel identifier is not included within the first hardware VCI table; and identifying a cell flow data structure associated with an entry in the first hardware VCI table associated with the extracted virtual channel identifier if it is determined that the virtual channel identifier is included within the first hardware VCI table; performing the following steps if it is determined that the virtual path identifier is non-zero:
determining whether the virtual path identifier is included within the first hardware VPI table; and performing the following steps if it is determined that the virtual path identifier is included within the first hardware VPI table:
determining whether the cell header also includes a virtual channel identifier; passing the ATM cell to the secondary software filter if it is determined that the cell header also includes a virtual channel identifier; and identifying a cell flow data structure associated with an entry in the first hardware VPI table associated with the extracted virtual channel identifier if it is determined that a virtual channel identifier is not included within the cell header; and passing the cell to the secondary software filter if it is determined that the virtual path identifier is not included within the first hardware VPI table.
- 6. The method of claim 5, wherein the step of passing the ATM cell to the secondary software filter if it is determined that the virtual channel identifier is not included within the first hardware VCI table, further comprises the steps of:
hashing the virtual channel identifier; and identifying a cell flow data structure associated with an entry in a secondary software VCI hash table.
- 7. The method of claim 5, wherein the step of passing the ATM cell to the secondary software filter if it is determined that the cell header also includes a virtual channel identifier, further comprises the steps of:
hashing the virtual channel identifier; and identifying a cell flow data structure associated with an entry in a secondary software VCI hash table associated with the identified virtual path identifier.
- 8. The method of claim 5, wherein the step of passing the cell to the secondary software filter if it is determined that the virtual path identifier is not included within the first hardware VPI table, further comprises the following steps:
hashing the virtual path identifier; and identifying an entry in a secondary software VPI has table associated with the hashed virtual path identifier; determining whether the cell header also includes a virtual channel identifier; performing the following steps if it is determined that the cell header also includes a virtual channel identifier:
hashing the identified virtual channel identifier; identifying a cell flow data structure associated with an entry in a secondary software VCI hash table associated with the identified virtual path identifier; and identifying a cell flow data structure associated with an entry in the secondary software VPI hash table associated with the identified virtual path identifier if it is determined that the cell header does not include a virtual channel identifier.
- 9. A system for handling asynchronous transfer mode cells, comprising:
means for receiving an ATM cell having a cell header which includes at least cell destination information; means for examining the cell header with a first hardware filter; means for determining whether the cell destination information is included within a first hardware lookup table; means for identifying a cell flow data structure associated with an entry in the first hardware lookup table associated with the cell destination information if it is determined that the cell destination information is included within the first hardware lookup table; and means for performing the following steps if it is determined that the cell destination is not included within the first hardware lookup table:
passing the ATM cell to a second software filter; examining the cell header with the second software filter; and identifying the identifying a cell flow associated with an entry in the second software lookup table associated with the cell destination information.
- 10. The system of claim 9, wherein the first hardware lookup table is limited to a predetermined size.
- 11. The system of claim 9, wherein the cell destination information includes a virtual path identifier and/or a virtual circuit identifier and wherein the first hardware lookup table includes a first hardware VPI table and a first hardware VCI table.
- 12. The system of claim 11, wherein the means for passing the ATM cell to a secondary software filter, further comprises:
means for hashing the virtual path identifier or virtual channel identifier extracted from the cell header; and means for identifying a cell flow data structure associated with an entry in a secondary software hash table associated with the hashed virtual path identifier or virtual channel.
- 13. The system of claim 11, wherein the means for determining whether the cell destination information is included within a first hardware lookup table further comprises the steps of:
means for extracting the virtual path identifier and the virtual channel identifier from the cell header; means for determining whether the virtual path identifier is zero or non-zero; means for performing the following steps if it is determined that the virtual path identifier is zero:
determining whether the virtual channel identifier is included within the first hardware VCI table; passing the ATM cell to the secondary software filter if it is determined that the virtual channel identifier is not included within the first hardware VCI table; and identifying a cell flow data structure associated with an entry in the first hardware VCI table associated with the extracted virtual channel identifier if it is determined that the virtual channel identifier is included within the first hardware VCI table; means for performing the following steps if it is determined that the virtual path identifier is non-zero:
determining whether the virtual path identifier is included within the first hardware VPI table; and means for performing the following steps if it is determined that the virtual path identifier is included within the first hardware VPI table:
determining whether the cell header also includes a virtual channel identifier; passing the ATM cell to the secondary software filter if it is determined that the cell header also includes a virtual channel identifier; and identifying a cell flow data structure associated with an entry in the first hardware VPI table associated with the extracted virtual channel identifier if it is determined that a virtual channel identifier is not included within the cell header; and means for passing the cell to the secondary software filter if it is determined that the virtual path identifier is not included within the first hardware VPI table.
- 14. The system of claim 13, wherein the means for passing the ATM cell to the secondary software filter if it is determined that the virtual channel identifier is not included within the first hardware VCI table, further comprises:
means for hashing the virtual channel identifier; and means for identifying a cell flow data structure associated with an entry in a secondary software VCI hash table.
- 15. The system of claim 13, wherein the means for passing the ATM cell to the secondary software filter if it is determined that the cell header also includes a virtual channel identifier, further comprises:
means for hashing the virtual channel identifier; and means for identifying a cell flow data structure associated with an entry in a secondary software VCI hash table associated with the identified virtual path identifier.
- 16. The system of claim 13, wherein the means for passing the cell to the secondary software filter if it is determined that the virtual path identifier is not included within the first hardware VPI table, further comprises:
means for hashing the virtual path identifier; and means for identifying an entry in a secondary software VPI has table associated with the hashed virtual path identifier; means for determining whether the cell header also includes a virtual channel identifier; means for performing the following steps if it is determined that the cell header also includes a virtual channel identifier:
hashing the identified virtual channel identifier; identifying a cell flow data structure associated with an entry in a secondary software VCI hash table associated with the identified virtual path identifier; and means for identifying a cell flow data structure associated with an entry in the secondary software VPI hash table associated with the identified virtual path identifier if it is determined that the cell header does not include a virtual channel identifier.
- 17. A computer readable medium incorporating instructions for handling asynchronous transfer mode cells, the instructions comprising:
one or more instructions for receiving an ATM cell having a cell header which includes at least cell destination information; one or more instructions for examining the cell header with a first hardware filter; one or more instructions for determining whether the cell destination information is included within a first hardware lookup table; one or more instructions for identifying a cell flow data structure associated with an entry in the first hardware lookup table associated with the cell destination information if it is determined that the cell destination information is included within the first hardware lookup table; and performing the following instructions if it is determined that the cell destination is not included within the first hardware lookup table:
one or more instructions for passing the ATM cell to a second software filter; one or more instructions for examining the cell header with the second software filter; and one or more instructions for identifying the identifying a cell flow associated with an entry in the second software lookup table associated with the cell destination information.
- 18. The computer readable medium of claim 17, wherein the first hardware lookup table is limited to a predetermined size.
- 19. The computer readable medium of claim 17, wherein the cell destination information includes a virtual path identifier and/or a virtual circuit identifier and wherein the first hardware lookup table includes a first hardware VPI table and a first hardware VCI table.
- 20. The computer readable medium of claim 19, wherein the one or more instructions for passing the ATM cell to a secondary software filter, further comprises the following instructions:
one or more instructions for hashing the virtual path identifier or virtual channel identifier extracted from the cell header; and one or more instructions for identifying a cell flow data structure associated with an entry in a secondary software hash table associated with the hashed virtual path identifier or virtual channel.
- 21. The computer readable medium of claim 19, wherein the one or more instructions for determining whether the cell destination information is included within a first hardware lookup table further comprises the following instructions:
one or more instructions for extracting the virtual path identifier and the virtual channel identifier from the cell header; one or more instructions for determining whether the virtual path identifier is zero or non-zero; performing the following instructions if it is determined that the virtual path identifier is zero:
one or more instructions for determining whether the virtual channel identifier is included within the first hardware VCI table; one or more instructions for passing the ATM cell to the secondary software filter if it is determined that the virtual channel identifier is not included within the first hardware VCI table; and one or more instructions for identifying a cell flow data structure associated with an entry in the first hardware VCI table associated with the extracted virtual channel identifier if it is determined that the virtual channel identifier is included within the first hardware VCI table; performing the following instructions if it is determined that the virtual path identifier is non-zero:
one or more instructions for determining whether the virtual path identifier is included within the first hardware VPI table; and performing the following instructions if it is determined that the virtual path identifier is included within the first hardware VPI table:
one or more instructions for determining whether the cell header also includes a virtual channel identifier; one or more instructions for passing the ATM cell to the secondary software filter if it is determined that the cell header also includes a virtual channel identifier; and one or more instructions for identifying a cell flow data structure associated with an entry in the first hardware VPI table associated with the extracted virtual channel identifier if it is determined that a virtual channel identifier is not included within the cell header; and one or more instructions for passing the cell to the secondary software filter if it is determined that the virtual path identifier is not included within the first hardware VPI table.
- 22. The computer readable medium of claim 21, wherein the one or more instructions for passing the ATM cell to the secondary software filter if it is determined that the virtual channel identifier is not included within the first hardware VCI table, further comprises the following instructions:
one or more instructions for hashing the virtual channel identifier; and one or more instructions for identifying a cell flow data structure associated with an entry in a secondary software VCI hash table.
- 23. The computer readable medium of claim 21, wherein the one or more instructions for passing the ATM cell to the secondary software filter if it is determined that the cell header also includes a virtual channel identifier, further comprises the following instructions:
one or more instructions for hashing the virtual channel identifier; and one or more instructions for identifying a cell flow data structure associated with an entry in a secondary software VCI hash table associated with the identified virtual path identifier.
- 24. The computer readable medium of claim 21, wherein the one or more instructions for passing the cell to the secondary software filter if it is determined that the virtual path identifier is not included within the first hardware VPI table, further comprises the following instructions:
one or more instructions for hashing the virtual path identifier; and one or more instructions for identifying an entry in a secondary software VPI has table associated with the hashed virtual path identifier; one or more instructions for determining whether the cell header also includes a virtual channel identifier; performing the following instructions if it is determined that the cell header also includes a virtual channel identifier:
one or more instructions for hashing the identified virtual channel identifier; one or more instructions for identifying a cell flow data structure associated with an entry in a secondary software VCI hash table associated with the identified virtual path identifier; and one or more instructions for identifying a cell flow data structure associated with an entry in the secondary software VPI hash table associated with the identified virtual path identifier if it is determined that the cell header does not include a virtual channel identifier.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. provisional patent application Ser. No. 60/284,168 filed Apr. 17, 2001, the disclosure of which is incorporated herein by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60284168 |
Apr 2001 |
US |