CA2382151C

Filtering and route lookup in a switching device

Abstract

A method and apparatus for performinga lookup (Fig. 3) in a switching device (150) of a packetswitched network where the lookup includes a pluralityof distinct operations each of which returns a resultthat includes a pointer to a next operation in a sequenceof operations for the lookup. The method includes determining a first lookup operation to be executed, executing the first lookup operation including returning aresult and determining if the result includes a pointer toanother lookup operation in the sequence of operations.If the result includes a pointer to another lookup operation, the lookup operation indicated by the result is executed. Else, the lookup is terminated.

CA2382151C, drawing sheet 1
Sheet 1 of 22

Term

Term ended

Expired 10 April 2021, 5.5 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

9 claims: 4 independent, 5 dependent

  1. 1
    CA 02382151 2005-07-11 50483-4 CLAIMS :1. A method for performing a lookup in a switching device of a packet switched network where the lookup includes a plurality of distinct operations each of which returns a result that includes a pointer to a next operation in a sequence of operations for the lookup, the method comprising: determining a first lookup operation to be executed, the first lookup operation being selected from a group including at least a tree search, an index search, and a filter operation;executing the first lookup operation including returning a result;determining if the result includes a pointer to another lookup operation in the sequence of operations;if so, executing the lookup operation indicated by the result;and else, terminating the lookup, wherein a lookup operation includes a function list that specifies one or more functions to execute during the execution of the lookup operation and wherein the function is selected from the group of a management function, accounting function and policing function, wherein the method further comprises identifying when a lookup operation specifies a function and executing the function including returning a result that indicates a next lookup operation in the sequence of operations to be executed, and CA 02382151 2005-07-11 50483-4 wherein the execution of the function includes determining when a packet should be sampled for further processing and including in the result a designation that indicates the packet is to be sampled.
  2. 3
    A route lookup engine for performing a lookup in a packet switched network where the lookup includes a plurality of distinct operations each of which returns a result that includes a pointer to a next operation in a sequence of operations for the lookup, the route lookup engine comprising:a group of different lookup operation engines for executing lookup operations including returning a result, the group of different lookup operation engines including a tree search lookup engine, an index search engine, and a filter engine;a lookup engine operable to determine a first lookup operation in the sequence to be executed, evaluate the result returned from the execution of the first lookup operation to determine if the result includes a pointer to another lookup operation in the sequence of operations, invoke a particular lookup operation engine from the group of lookup operation engines based on the pointer to execute a next lookup operation in the sequence of operations and terminate the lookup and return a result to be used in routing the packet through the packet switched network;and a memory configurable to store one or more tree data structures where the pointer returned for invoking the tree search engine includes an indicator point to a CA 02382151 2005-07-11 50483-4 particular tree data structure stored in the memory to be searched in the lookup operation.
  3. 5
    Ά route lookup engine for performing a lookup in a packet switched network where the lookup includes a plurality of distinct operations each of which returns a result that includes a pointer to a next operation in a sequence of operations for the lookup, the route lookup engine comprising:a group of different lookup operation engines for executing lookup operations including returning a result, the group of different lookup operation engines including a tree search lookup engine, an index search engine, and a filter engine;a lookup engine operable to determine a first lookup operation in the sequence to be executed, evaluate the result returned from the execution of the first lookup operation to determine if the result includes a pointer to another lookup operation in the sequence of operations, invoke a particular lookup operation engine from the group of lookup operation engines based on the pointer to execute a next lookup operation in the sequence of operations and terminate the lookup and return a result to be used in routing the packet through the packet switched network;and a memory configurable to store one or more filter data structures and where the pointer returned for invoking 58 CA 02382151 2005-07-11 50483-4 the filter engine includes an indicator pointing to a particular filter data structure stored in the memory to be searched in the lookup operation.
  4. 9
    A route lookup engine for performing a lookup in a packet switched network where the lookup includes a plurality of distinct operations each of which returns a result that includes a pointer to a next operation in a sequence of operations for the lookup, the route lookup engine comprising:a group of different lookup operation engines for executing lookup operations including returning a result;and a lookup engine operable to determine a first lookup operation in the sequence to be executed, evaluate the result returned from the execution of the first lookup operation to determine if the result includes a pointer to CA 02382151 2005-07-11 50483-4 another lookup operation in the sequence of operations, invoke a particular lookup operation engine from the group of lookup operation engines based on the pointer to execute a next lookup operation in the sequence of operations and 5 terminate the lookup and return a result to be used in routinq the packet through the packet switched network, wherein the lookup engine is operable to identify when a lookup operation specifies a function and execute the function including returning a result that indicates a next 10 lookup operation in the sequence of operations to be executed, and where the execution of the function includes determining when a packet should be sampled for further processing and including in the result a designation that 15 indicates the packet is to be sampled. SMART & BIGGAR OTTAWA, CANADA PATENT AGENTS