Zum Hauptinhalt springen

Method and apparatus to perform a multi-field matching search

Guerrero, Miguel ; Sit, Kinyip ; et al.
2009
Online Patent

Titel:
Method and apparatus to perform a multi-field matching search
Autor/in / Beteiligte Person: Guerrero, Miguel ; Sit, Kinyip ; Kurupati, Sreenath
Link:
Veröffentlichung: 2009
Medientyp: Patent
Sonstiges:
  • Nachgewiesen in: USPTO Patent Grants
  • Sprachen: English
  • Patent Number: 7,516,126
  • Publication Date: April 07, 2009
  • Appl. No: 10/611770
  • Application Filed: June 30, 2003
  • Assignees: Intel Corporation (Santa Clara, CA, US)
  • Claim: 1. A computer-implemented method utilizing a processor comprising: grouping single fields of a multiple-field source in a computer memory into a plurality of multiple-field keys (MFKs) of a search target, each MFK of the search target having single fields that correspond to single fields in one of a plurality of multiple-field vectors (MFVs) of entries in a data structure; utilizing the processor to generate a set of queries based, at least in part, on the MFKs, wherein each query includes one or more of the MFKs and wherein each query has a different MFK as a lead MFK; using a query to determine whether the non-wildcard values in the MFVs of an entry match the non-wildcard values in corresponding MFKs of the search target; and: if an entry has non-wildcard values in the MFVs that match the corresponding non-wildcard values in the MFKs, then performing an operation associated with the matching entry; or if no entry has non-wildcard values in the MFVs that match the corresponding non-wildcard values in the MFKs, then using the queries to determine whether the entry has non-wildcard values in a MFV that match the non-wildcard values in a corresponding lead MFK, and whether remaining MFVs of the entry match corresponding remaining MFKs based on matching the non-wildcard values and wildcard values.
  • Claim: 2. The method of claim 1 , wherein the entries of the data structure are stored in the computer memory such that the MFVs that have non-wildcard values are located at the end of the entry.
  • Claim: 3. The method of claim 1 , further comprising arranging the entries of the data structure so that the MFVs that have non-wildcard values are placed at the end of the entry.
  • Claim: 4. The method of claim 1 , wherein the non-wildcard values comprise a fixed value, a range of fixed values, or both.
  • Claim: 5. The method of claim 1 , further comprising: locating the entry having non-wildcard values in the MFV that match the non-wildcard values in the corresponding lead MFK and having remaining MFVs that match corresponding remaining MFKs based on matching the non-wildcard values and wildcard values; and performing an operation associated with the located entry.
  • Claim: 6. The method of claim 1 , wherein the multiple-field source comprises a data packet having single fields in its header.
  • Claim: 7. The method of claim 6 , wherein the operation comprises one of the following: dropping the data packet, mirroring, metering, traffic shaping, rate limiting, accounting, statistics gathering, providing quality of service (QoS), redirecting to a central processing unit (CPU) for further processing, or sampling a subset of the packets to a CPU.
  • Claim: 8. The method of claim 1 , wherein fewer than all MFVs in the entries include one single field.
  • Claim: 9. The method of claim 1 , wherein the MFVs in the entries include two or more single fields.
  • Claim: 10. An apparatus comprising: a processor to process data; a computer memory to store data, the computer memory including a data structure having a plurality of entries, wherein each entry has a group of multiple-field vectors (MFVs) that each include a number of single fields having all wildcard values or all non-wildcard values; and a search unit to group single fields of a multiple-field source into a plurality of multiple-field keys (MFKs) of a search target, each MFK having single fields that correspond to the single fields in a corresponding MFV of the entries in the data structure, generate a set of queries based, at least in part, on the MFKs, wherein each query includes one or more of the MFKs and has a different MFK as a lead MFK, use a query to determine whether the non-wildcard values in the MFVs of an entry match the non-wildcard values in corresponding MFKs of the search target; and: if an entry has non-wildcard values in the MFVs that match the corresponding non-wildcard values in the MFKs, then performing an operation associated with the matching entry; or if no entry has non-wildcard values in the MFVs that match the corresponding non-wildcard values in the MFKs, using the queries to determine whether the entry has non-wildcard values in a MFV that match the non-wildcard values in a corresponding lead MFK, and whether remaining MFVs of the entry match corresponding remaining MFKs based on matching the non-wildcard values and wildcard values.
  • Claim: 11. The apparatus of claim 10 , wherein the entries of the data structure are stored in the computer memory such that the MFVs that have non-wildcard values are located at the end of the entry.
  • Claim: 12. The apparatus of claim 10 , wherein the search unit arranges the entries of the data structure so that the MFVs that have non-wildcard values are placed at the end of the entry.
  • Claim: 13. The apparatus of claim 10 , wherein the non-wildcard values comprise a fixed value, a range of fixed values, or both.
  • Claim: 14. The apparatus of claim 10 , wherein the search unit locates the entry having non-wildcard values in the MFV that match the non-wildcard values in the corresponding lead MFK and having remaining MFVs that match corresponding remaining MFKs based on matching the non-wildcard values and wildcard values; and performs an operation associated with the located entry.
  • Claim: 15. The apparatus of claim 10 , wherein the multiple-field source comprises a data packet having single fields in its header.
  • Claim: 16. The apparatus of claim 15 , wherein the operation comprises one of the following: dropping the data packet, mirroring, metering, traffic shaping, rate limiting, accounting, statistics gathering, providing quality of service (QoS), redirecting to a central processing unit (CPU) for further processing, or sampling a subset of the packets to a CPU.
  • Claim: 17. The apparatus of claim 10 , wherein fewer than all MFVs in the entries include one single field.
  • Claim: 18. The apparatus of claim 10 , wherein the MFVs in the entries include two or more single fields.
  • Claim: 19. An article of manufacture comprising: a computer-readable storage medium including thereon sequences of instructions that, when executed, cause a processor to: group single fields of a multiple-field source in a computer memory into a plurality of multiple-field keys (MFKs) of a search target, each MFK of the search target having single fields that correspond to single fields in one of a plurality of multiple-field vectors (MFVs) of entries in a data structure; generate a set of queries based, at least in part, on the MFKs, wherein each query includes one or more of the plurality of MFKs and wherein each query has a different MFK as a lead MFK; use a query to determine whether the non-wildcard values in the MFVs of an entry match the non-wildcard values in corresponding MFKs of the search target; and: if an entry has non-wildcard values in the MFVs that match the corresponding non-wildcard values in the MFKs, then performing an operation associated with the matching entry; or if no entry has non-wildcard values in the MFVs that match the corresponding non-wildcard values in the MFKs, then use the queries to determine whether the entry has non-wildcard values in a MFV that match the non-wildcard values in a corresponding lead MFK, and whether remaining MFVs of the entry match corresponding remaining MFKs based on matching the non-wildcard values and wildcard values.
  • Claim: 20. The article of manufacture of claim 19 , wherein the entries of the data structure are stored in computer memory such that the MFVs that have non-wildcard values are located at the end of the entry.
  • Claim: 21. The article of manufacture of claim 19 , wherein the computer-readable storage medium further comprises sequences of instructions that, when executed, cause the electronic system to arrange the entries of the data structure so that the MFVs that have non-wildcard values are placed at the end of the entry.
  • Claim: 22. The article of manufacture of claim 19 , wherein the non-wildcard values comprise a fixed value, a range of fixed values, or both.
  • Claim: 23. The article of manufacture of claim 19 , wherein the computer-readable storage medium further comprises sequences of instructions that, when executed, cause the processor to: locate the entry having non-wildcard values in the MFV that match the non-wildcard values in the corresponding lead MFK and having remaining MFVs that match corresponding remaining MFKs based on matching the non-wildcard values and wildcard values; and perform an operation associated with the located entry.
  • Claim: 24. The article of manufacture of claim 19 , wherein the multiple-field source comprises a data packet having single fields in its header.
  • Claim: 25. The article of manufacture of claim 24 , wherein the operation comprises one of the following: dropping the data packet, mirroring, metering, traffic shaping, rate limiting, accounting, statistics gathering, providing quality of service (QoS), redirecting to a central processing unit (CPU) for further processing, or sampling a subset of the packets to a CPU.
  • Claim: 26. The article of manufacture of claim 19 , wherein fewer than all MFVs in the entries include one single field.
  • Claim: 27. The article of manufacture of claim 24 , wherein the MFVs in the entries include two or more single fields.
  • Claim: 28. A system, comprising: a processor; a network interface coupled with the processor; and an article of manufacture comprising a computer-readable storage medium including thereon sequences of instructions that, when executed, cause a processor to: group single fields of a multiple-field source into a plurality of multiple-field keys (MFKs) of a search target, each MFK of the search target having single fields that correspond to the single fields in one of a plurality of multiple-field vectors (MFVs) of entries in a data structure; generate a set of queries based, at least in part, on the MFKs, wherein each query includes one or more of the plurality of MFKs and has a different MFK as a lead MFK; use a query to determine whether the non-wildcard values in the MFVs of an entry match the non-wildcard values in corresponding MFKs of the search target; and: if an entry has non-wildcard values in the MFVs that match the corresponding non-wildcard values in the MFKs, then performing an operation associated with the matching entry; or if no entry has non-wildcard values in the MFVs that match the corresponding non-wildcard values in the MFKs, then use the queries to determine whether the entry has non-wildcard values in a MFV that match the non-wildcard values in a corresponding lead MFK, and whether remaining MFVs of the entry match corresponding remaining MFKs based on matching the non-wildcard values and wildcard values.
  • Claim: 29. The system of claim 28 , wherein the non-wildcard values comprise a fixed value, a range of fixed values, or both.
  • Claim: 30. The system of claim 28 , wherein the multiple-field source comprises a data packet having single fields in its header.
  • Current U.S. Class: 707/4
  • Patent References Cited: 6542896 April 2003 Gruenwald ; 6778530 August 2004 Greene ; 7054315 May 2006 Liao ; 2002/0188587 December 2002 McGreevy
  • Other References: V. Srinivasan et al., “Fast and Scalable Layer Four Switching”, Proc. of Sigcom, 1998, www.acm.org. cited by other ; P. Gupta et al., “Packet Classification on Multiple Fields”, Proc. of Sigcom, 1998, www.acm.org. cited by other
  • Assistant Examiner: Chan, Sai-Ming
  • Primary Examiner: Rao, Seema S
  • Attorney, Agent or Firm: Blakely, Sokoloff, Taylor & Zafman LLP

Klicken Sie ein Format an und speichern Sie dann die Daten oder geben Sie eine Empfänger-Adresse ein und lassen Sie sich per Email zusenden.

oder
oder

Wählen Sie das für Sie passende Zitationsformat und kopieren Sie es dann in die Zwischenablage, lassen es sich per Mail zusenden oder speichern es als PDF-Datei.

oder
oder

Bitte prüfen Sie, ob die Zitation formal korrekt ist, bevor Sie sie in einer Arbeit verwenden. Benutzen Sie gegebenenfalls den "Exportieren"-Dialog, wenn Sie ein Literaturverwaltungsprogramm verwenden und die Zitat-Angaben selbst formatieren wollen.

xs 0 - 576
sm 576 - 768
md 768 - 992
lg 992 - 1200
xl 1200 - 1366
xxl 1366 -