US 9,813,339 B2
Filtering and route lookup in a switching device
Dennis C. Ferguson, Palo Alto, CA (US); Rajiv Patel, Los Altos, CA (US); Gerald Cheung, Palo Alto, CA (US); and Pradeep Sindhu, Los Altos Hills, CA (US)
Assigned to Juniper Networks, Inc., Sunyvale, CA (US)
Filed by JUNIPER NETWORKS, INC., Sunnyvale, CA (US)
Filed on Dec. 30, 2015, as Appl. No. 14/985,081.
Application 14/985,081 is a continuation of application No. 14/531,260, filed on Nov. 3, 2014, granted, now 9,258,228.
Application 14/531,260 is a continuation of application No. 13/955,383, filed on Jul. 31, 2013, granted, now 8,879,395, issued on Nov. 4, 2014.
Application 13/955,383 is a continuation of application No. 13/539,164, filed on Jun. 29, 2012, granted, now 8,503,304, issued on Aug. 6, 2013.
Application 13/539,164 is a continuation of application No. 13/163,477, filed on Jun. 17, 2011, granted, now 8,238,246, issued on Aug. 7, 2012.
Application 13/163,477 is a continuation of application No. 12/697,101, filed on Jan. 29, 2010, granted, now 7,986,629, issued on Jul. 26, 2011.
Application 12/697,101 is a continuation of application No. 11/614,583, filed on Dec. 21, 2006, granted, now 7,688,727, issued on Mar. 30, 2010.
Application 11/614,583 is a continuation of application No. 10/017,719, filed on Dec. 14, 2001, granted, now 7,215,637, issued on May 8, 2007.
Application 10/017,719 is a continuation in part of application No. 09/550,413, filed on Apr. 17, 2000, granted, now 6,798,777, issued on Sep. 28, 2004.
Claims priority of provisional application 60/258,882, filed on Jan. 2, 2001.
Claims priority of provisional application 60/258,886, filed on Jan. 2, 2001.
Claims priority of provisional application 60/258,887, filed on Jan. 2, 2001.
Claims priority of provisional application 60/258,888, filed on Jan. 2, 2001.
Prior Publication US 2016/0119235 A1, Apr. 28, 2016
Int. Cl. H04L 12/26 (2006.01); H04L 12/741 (2013.01); H04L 12/701 (2013.01); H04L 12/773 (2013.01); H04L 12/743 (2013.01); H04L 12/801 (2013.01); H04L 12/803 (2013.01); H04L 12/813 (2013.01); H04L 29/06 (2006.01); H04L 12/931 (2013.01); H04L 12/935 (2013.01)
CPC H04L 45/745 (2013.01) [H04L 45/00 (2013.01); H04L 45/60 (2013.01); H04L 45/7457 (2013.01); H04L 47/10 (2013.01); H04L 47/11 (2013.01); H04L 47/125 (2013.01); H04L 47/20 (2013.01); H04L 63/0227 (2013.01); H04L 69/22 (2013.01); H04L 49/205 (2013.01); H04L 49/3009 (2013.01); H04L 49/3036 (2013.01); H04L 49/3072 (2013.01); H04L 63/1458 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method, comprising:
receiving, by a device, a data packet;
dividing, by the device, the data packet into data units;
transferring, by the device, the data units to an input switch of the device;
extracting, by the input switch of the device, key information from the data units;
storing, by the input switch of the device, the key information in a buffer;
routing, by the input switch of the device, the data units to memory banks;
sending, by the device, a lookup request to a controller of the device,
the lookup request comprising the key information;
generating, by the controller of the device, destination information based on the lookup request,
generating the destination information including:
performing, by the controller of the device, a plurality of chained lookup operations,
the plurality of chained lookup operations including a filtering operation, and
generating, by the controller of the device, the destination information based on performing the plurality of chained lookup operations;
sending, by the controller of the device, the destination information to an output switch; and
transferring, by the device, the data units from the memory banks to the output switch.