Filtering and route lookup in a switching device
AssigneeJuniper Networks, Inc.
InventorsDennis C. Ferguson, Rajiv Patel, Gerald Cheung, Pradeep S. Sindhu
Life of this patent
Estimating the term…
Abstract
A method and apparatus 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 includes determining a first lookup operation to be executed, executing the first lookup operation including returning a result and determining if the result includes a pointer to another 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.
Claims9
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, where the function is selected from the group comprising a management function, an accounting function, and a 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
- 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 indicates the packet is to be sampled.
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 apparatus 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 look up 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 and where the pointer returned for invoking the tree search engine includes an indicator pointing to a particular tree data structure stored in the memory to be searched in the lookup operation.
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 apparatus 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 look up 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 the filter engine includes an indicator pointing to a particular filter data structure stored in the memory to be searched in the lookup operation.
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 apparatus 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 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,
- 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 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 indicates the packet is to be sampled.
Dependencies are inferred from the claim text.