EP1515500A2

Method and system for providing cascaded trie-based network packet search engines

Abstract

A method for providing cascaded trie-based network packet search engines is provided. A search command is received at one of the network packet search engines. The search command comprises a specific search key. A determination of a longest prefix match based on the specific search key is made at the network packet search engine. A determination is made at the network packet search engine regarding whether the longest prefix match comprises an overall longest prefix match among the cascaded network packet search engines such that any of the cascaded network packet search engines may comprise the overall longest matching prefix independently of position relative to the other cascaded network packet search engines.

EP1515500A2, drawing sheet 1
Sheet 1 of 3

Term

Term ended

Projected expiry passed 8 September 2024, 2 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

17 claims: 5 independent, 12 dependent

  1. 1
    A method for providing cascaded network packet search engines, comprising:receiving a search command at one of the network packet search engines, the search command comprising a specific search key;determining at the network packet search engine a longest prefix match based on the specific search key;and determining at the network packet search engine whether the longest prefix match comprises an overall longest prefix match among the cascaded network packet search engines such that any of the cascaded network packet search engines may comprise the overall longest matching prefix independently of position relative to the other cascaded network packet search engines.
  2. 2
    The method of Claim 1, further comprising responding to the search command when the longest prefix match comprises the overall longest prefix match.
  3. 3
    The method of Claim 1, further comprising storing a mock result when the longest prefix match fails to comprise the overall longest prefix match.
  4. 4
    The method of Claim 1, the one of the network packet search engines comprising a peripheral network packet search engine, determining whether the longest prefix match comprises the overall longest prefix match comprising:receiving longest match input data from an adjacent network packet search engine;comparing the longest match input data to the longest prefix match;and determining that the longest prefix match is longer than the longest match input data.
  5. 5
    The method of Claim 1, the one of the network packet search engines comprising a central network packet search engine, determining whether the longest prefix match comprises the overall longest prefix match comprising:receiving first longest match input data from a first adjacent network packet search engine and second longest match input data from a second adjacent network packet search engine;comparing the first longest match input data to the longest prefix match and the second longest match input data to the longest prefix match;and determining that the longest prefix match is longer than the first longest match input data and longer than the second longest match input data.
  6. 6
    A method for providing cascaded network packet search engines, comprising:receiving a search command at a plurality of network packet search engines, the search command comprising a specific search key;at each of the network packet search engines, determining a longest prefix match for the network packet search engine based on the specific search key;at each of the network packet search engines, determining whether the longest prefix match comprises an overall longest prefix match among the plurality of network packet search engines;and responding to the search command based on the determination that the network packet search engine comprises the overall longest prefix match.
  7. 7
    The method of Claim 2 of 6, responding to the search command comprising one of actively or passively responding to the search command.
  8. 8
    The method of Claim 6, further comprising storing a mock result based on the determination that the network packet search engine fails to comprise the overall longest prefix match.
  9. 9
    The method of Claim 6, determining whether the longest prefix match comprises the overall longest prefix match comprising, for each peripheral network packet search engine:receiving longest match input data from an adjacent network packet search engine;comparing the longest match input data to the longest prefix match;and determining whether the longest prefix match is longer than the longest match input data.
  10. 10
    The method of Claim 6, determining whether the longest prefix match comprises the overall longest prefix match comprising, for each central network packet search engine:receiving first longest match input data from a first adjacent network packet search engine and second longest match input data from a second adjacent network packet search engine;comparing the first longest match input data to the longest prefix match and the second longest match input data to the longest prefix match;and determining whether the longest prefix match is longer than the first longest match input data and longer than the second longest match input data.
  11. 11
    A method for operating a network processing unit coupled to a plurality of network packet search engines, comprising:sending a search command to the plurality of network packet search engines;and receiving a response to the search command from a single one of the network packet search engines, the single network packet search engine comprising an overall longest prefix match among the plurality of network packet search engines independently of position relative to the other network packet search engines.
  12. 12
    The method of Claim 11, receiving a response to the search command comprising receiving one of an active or a passive response to the search command.
  13. 13
    A network packet search engine coupled to at least one other network packet search engine, the network packet search engine operable to receive a search command, the search command comprising a specific search key, to determine a longest prefix match based on the specific search key, to determine whether the longest prefix match comprises an overall longest prefix match among the plurality of network packet search engines, and to respond to the search command based on the determination that the network packet search engine comprises the overall longest prefix match.
  14. 14
    The network packet search engine of Claim 13, further operable to one of actively respond or passively respond to the search command.
  15. 15
    The network packet search engine of Claim 13, the network packet search engine comprising a peripheral network packet search engine and further operable to determine whether the longest prefix match comprises the overall longest prefix match by receiving longest match input data from an adjacent network packet search engine, comparing the longest match input data to the longest prefix match, and determining whether the longest prefix match is longer than the longest match input data.
  16. 16
    The network packet search engine of Claim 13, the network packet search engine comprising a central network packet search engine and further operable to determine whether the longest prefix match comprises the overall longest prefix match by receiving first longest match input data from a first adjacent network packet search engine and second longest match input data from a second adjacent network packet search engine, comparing the first longest match input data to the longest prefix match and the second longest match input data to the longest prefix match, and determining whether the longest prefix match is longer than the first longest match input data and longer than the second longest match input data.
  17. 17
    A processing system, comprising:a network processing unit;and a plurality of network packet search engines coupled to the network processing unit, each network packet search engine operable to receive a search command from the network processing unit, the search command comprising a specific search key, to determine a longest prefix match based on the specific search key, to determine whether the longest prefix match comprises an overall longest prefix match among the plurality of network packet search engines, and to respond to the search command based on the determination that the network packet search engine comprises the overall longest prefix match.
Independent claims17