Patents by Inventor Gerald Cheung

Gerald Cheung has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 8189576
    Abstract: A system includes an input device configured to receive a packet having a header and a packet processing device. The packet processing device is configured to examine the header, identify at least one function from a group of functions based on at least a portion of the header, where the group of functions includes an index table lookup function, a filtering function, and a longest best match lookup function, perform the identified at least one function for the packet to obtain a result, and forward the packet using the result.
    Type: Grant
    Filed: August 18, 2004
    Date of Patent: May 29, 2012
    Assignee: Juniper Networks, Inc.
    Inventors: Dennis C. Ferguson, Rajiv Patel, Gerald Cheung, Pradeep S. Sindhu
  • Patent number: 8170028
    Abstract: A network device includes an input interface, at least one processing path and an output interface. The input interface receives data units on a plurality of streams and assigns a first sequence number to each of the received data units. The at least one processing path performs a route look-up for each of the data units, where the route look-up determines a routing destination for a respective data unit. The output interface assigns a second sequence number to each of the processed data units based on a number of memory references associated with the route look-up for each of the data units and re-orders the processed data units based on the second sequence number assigned to each of the processed data units.
    Type: Grant
    Filed: July 29, 2009
    Date of Patent: May 1, 2012
    Assignee: Juniper Networks, Inc.
    Inventors: Dennis C Ferguson, Hann-Hwan Ju, Atsushi Kasuya, Gerald Cheung, Devereaux C Chen
  • Publication number: 20120027019
    Abstract: Ordering logic ensures that data items being processed by a number of parallel processing units are unloaded from the processing units in the original per-flow order that the data items were loaded into the parallel processing units. The ordering logic includes a pointer memory, a tail vector, and a head vector. Through these three elements, the ordering logic keeps track of a number of “virtual queues” corresponding to the data flows. A round robin arbiter unloads data items from the processing units only when a data item is at the head of its virtual queue.
    Type: Application
    Filed: September 30, 2011
    Publication date: February 2, 2012
    Applicant: JUNIPER NETWORKS, INC.
    Inventors: Dennis C. FERGUSON, Philippe LACROUTE, Chi-Chung CHEN, Gerald CHEUNG, Tatao CHUANG, Pankaj PATEL, Viswesh ANANTHAKRISHNAN
  • Patent number: 8059543
    Abstract: Ordering logic ensures that data items being processed by a number of parallel processing units are unloaded from the processing units in the original per-flow order that the data items were loaded into the parallel processing units. The ordering logic includes a pointer memory, a tail vector, and a head vector. Through these three elements, the ordering logic keeps track of a number of “virtual queues” corresponding to the data flows. A round robin arbiter unloads data items from the processing units only when a data item is at the head of its virtual queue.
    Type: Grant
    Filed: June 15, 2010
    Date of Patent: November 15, 2011
    Assignee: Juniper Networks, Inc.
    Inventors: Dennis C. Ferguson, Philippe Lacroute, Chi-Chung Chen, Gerald Cheung, Tatao Chuang, Pankaj Patel, Viswesh Anathakrishnan
  • Publication number: 20110264822
    Abstract: Methods and devices for processing packets are provided.
    Type: Application
    Filed: June 17, 2011
    Publication date: October 27, 2011
    Applicant: JUNIPER NETWORKS, INC.
    Inventors: Dennis C. FERGUSON, Rajiv PATEL, Gerald CHEUNG, Pradeep SINDHU
  • Patent number: 7986629
    Abstract: Methods and devices for processing packets are provided. The processing device may Include an input interface for receiving data units containing header information of respective packets; a first module configurable to perform packet filtering based on the received data units; a second module configurable to perform traffic analysis based on the received data units; a third module configurable to perform load balancing based on the received data units; and a fourth module configurable to perform route lookups based on the received data units.
    Type: Grant
    Filed: January 29, 2010
    Date of Patent: July 26, 2011
    Assignee: Juniper Networks, Inc.
    Inventors: Dennis C. Ferguson, Rajiv Patel, Gerald Cheung, Pradeep Sindhu
  • Publication number: 20100246584
    Abstract: Ordering logic ensures that data items being processed by a number of parallel processing units are unloaded from the processing units in the original per-flow order that the data items were loaded into the parallel processing units. The ordering logic includes a pointer memory, a tail vector, and a head vector. Through these three elements, the ordering logic keeps track of a number of “virtual queues” corresponding to the data flows. A round robin arbiter unloads data items from the processing units only when a data item is at the head of its virtual queue.
    Type: Application
    Filed: June 15, 2010
    Publication date: September 30, 2010
    Applicant: JUNIPER NETWORKS, INC.
    Inventors: Dennis C. FERGUSON, Philippe LACROUTE, Chi-Chung CHEN, Gerald CHEUNG, Tatao CHUANG, Pankaj PATEL, Viswesh ANANTHAKRISHNAN
  • Patent number: 7764606
    Abstract: Ordering logic ensures that data items being processed by a number of parallel processing units are unloaded from the processing units in the original per-flow order that the data items were loaded into the parallel processing units. The ordering logic includes a pointer memory, a tail vector, and a head vector. Through these three elements, the ordering logic keeps track of a number of “virtual queues” corresponding to the data flows. A round robin arbiter unloads data items from the processing units only when a data item is at the head of its virtual queue.
    Type: Grant
    Filed: May 30, 2007
    Date of Patent: July 27, 2010
    Assignee: Juniper Networks, Inc.
    Inventors: Dennis C. Ferguson, Philippe Lacroute, Chi-Chung Chen, Gerald Cheung, Tatao Chuang, Pankaj Patel, Viswesh Ananthakrishnan
  • Publication number: 20100165990
    Abstract: A network device constructs a notification corresponding to a received multicast data unit, where the notification includes administrative data associated with the multicast data unit that does not include a payload of the multicast data unit. The network device replicates the notification at least three different processing elements at different locations in a processing path of the network device to produce multiple replicated data items and produces a copy of the multicast data unit for each of replicated notifications. The network device forwards each copy of the multicast data unit towards a multicast destination.
    Type: Application
    Filed: March 12, 2010
    Publication date: July 1, 2010
    Applicant: Juniper Networks, Inc.
    Inventors: Pradeep SINDHU, Debashis BASU, Pankaj PATEL, Raymond LIM, Avanindra GODBOLE, Tatao CHUANG, Chi-Chung K. CHEN, Jeffrey G. LIBBY, Dennis FERGUSON, Philippe LACROUTE, Gerald CHEUNG
  • Patent number: 7710994
    Abstract: A network device constructs a notification corresponding to a received multicast data unit, where the notification includes administrative data associated with the multicast data unit that does not include a payload of the multicast data unit. The network device replicates the notification at least three different processing elements at different locations in a processing path of the network device to produce multiple replicated data items and produces a copy of the multicast data unit for each of replicated notifications. The network device forwards each copy of the multicast data unit towards a multicast destination.
    Type: Grant
    Filed: September 12, 2007
    Date of Patent: May 4, 2010
    Assignee: Juniper Networks, Inc.
    Inventors: Pradeep Sindhu, Debashis Basu, Pankaj Patel, Raymond Lim, Avanindra Godbole, Tatao Chuang, Chi-Chung K. Chen, Jeffrey G. Libby, Dennis Fersuson, Philippe Lacroute, Gerald Cheung
  • Patent number: 7688727
    Abstract: Methods and devices for processing packets are provided. The processing device may Include an input interface for receiving data units containing header information of respective packets; a first module configurable to perform packet filtering based on the received data units; a second module configurable to perform traffic analysis based on the received data units; a third module configurable to perform load balancing based on the received data units; and a fourth module configurable to perform route lookups based on the received data units.
    Type: Grant
    Filed: December 21, 2006
    Date of Patent: March 30, 2010
    Assignee: Juniper Networks, Inc.
    Inventors: Dennis C. Ferguson, Rajiv Patel, Gerald Cheung, Pradeep Sindhu
  • Patent number: 7586917
    Abstract: A network device includes an input interface, at least one processing path and an output interface. The input interface receives data units on a plurality of streams and assigns a first sequence number to each of the received data units. The at least one processing path performs a route look-up for each of the data units, where the route look-up determines a routing destination for a respective data unit. The output interface assigns a second sequence number to each of the processed data units based on a number of memory references associated with the route look-up for each of the data units and re-orders the processed data units based on the second sequence number assigned to each of the processed data units.
    Type: Grant
    Filed: May 19, 2004
    Date of Patent: September 8, 2009
    Assignee: Juniper Networks, Inc.
    Inventors: Dennis C. Ferguson, Hann-Hwan Ju, Atsushi Kasuya, Gerald Cheung, Devereaux C. Chen
  • Patent number: 7289503
    Abstract: A network device includes an interface and packet processing logic. The interface receives a multicast packet. The packet processing logic determines identifier data corresponding to the received multicast packet and replicates the identifier data to multiple outgoing packet forward engines at a first point in a processing path. The packet processing logic further replicates the identifier data to multiple data streams at a second point in the processing path and replicates the identifier data to multiple logical interfaces in the same stream at a third point in the processing path.
    Type: Grant
    Filed: July 30, 2002
    Date of Patent: October 30, 2007
    Assignee: Juniper Networks, Inc.
    Inventors: Pradeep Sindhu, Debashis Basu, Pankaj Patel, Raymond Lim, Avanindra Godbole, Tatao Chuang, Chi-Chung K. Chen, Jeffrey G. Libby, Dennis Ferguson, Philippe Lacroute, Gerald Cheung
  • Patent number: 7243184
    Abstract: Ordering logic ensures that data items being processed by a number of parallel processing units are unloaded from the processing units in the original per-flow order that the data items were loaded into the parallel processing units. The ordering logic includes a pointer memory, a tail vector, and a head vector. Through these three elements, the ordering logic keeps track of a number of “virtual queues” corresponding to the data flows. A round robin arbiter unloads data items from the processing units only when a data item is at the head of its virtual queue.
    Type: Grant
    Filed: July 12, 2002
    Date of Patent: July 10, 2007
    Assignee: Juniper Networks, Inc.
    Inventors: Dennis C. Ferguson, Philippe Lacroute, Chi-Chung Chen, Gerald Cheung, Tatao Chuang, Pankaj Patel, Visweh Ananthakrishnan
  • Patent number: 7215637
    Abstract: Methods and devices for processing packets are provided. The processing device may include an input interface for receiving data units containing header information of respective packets; a first module configurable to perform packet filtering based on the received data units; a second module configurable to perform traffic analysis based on the received data units; a third module configurable to perform load balancing based on the received data units; and a fourth module configurable to perform route lookups based on the received data units.
    Type: Grant
    Filed: December 14, 2001
    Date of Patent: May 8, 2007
    Assignee: Juniper Networks, Inc.
    Inventors: Dennis C. Ferguson, Rajiv Patel, Gerald Cheung, Pradeep Sindhu
  • Publication number: 20050018682
    Abstract: A system includes an input device configured to receive a packet having a header and a packet processing device. The packet processing device is configured to examine the header, identify at least one function from a group of functions based on at least a portion of the header, where the group of functions includes an index table lookup function, a filtering function, and a longest best match lookup function, perform the identified at least one function for the packet to obtain a result, and forward the packet using the result.
    Type: Application
    Filed: August 18, 2004
    Publication date: January 27, 2005
    Inventors: Dennis Ferguson, Rajiv Patel, Gerald Cheung, Pradeep Sindhu
  • Patent number: 6798777
    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.
    Type: Grant
    Filed: April 17, 2000
    Date of Patent: September 28, 2004
    Assignee: Juniper Networks, Inc.
    Inventors: Dennis C. Ferguson, Rajiv Patel, Gerald Cheung, Pradeep S. Sindhu
  • Patent number: 5978874
    Abstract: Snooping is implemented on a split transaction snooping bus for a computer system having one or many such buses. Circuit boards including CPU or other devices and/or distributed memory, data input/output buffers, queues including request tag queues, coherent input queues ("CIQ"), and address controller implementing address bus arbitration plug-into one or more split transaction snooping bus systems. All devices snoop on the address bus to learn whether an identified line is owned or shared, and an appropriate owned/shared signal is issued. Receipt of an ignore signal blocks CIQ loading of a transaction until the transaction is reloaded and ignore is deasserted. Ownership of a requested memory line transfers immediately at time of request. Asserted requests are queued such that state transactions on the address bus occur atomically logically without dependence upon the request. Subsequent requests for the same data are tagged to become the responsibility of the owner-requestor.
    Type: Grant
    Filed: July 1, 1996
    Date of Patent: November 2, 1999
    Assignee: Sun Microsystems, Inc.
    Inventors: Ashok Singhal, Bjorn Liencres, Jeff Price, Frederick M. Cerauskis, David Broniarczyk, Gerald Cheung, Erik Hagersten, Nalini Agarwal
  • Patent number: 5911052
    Abstract: A split transaction snooping bus protocol and architecture is provided for use in a system having one or many such buses. Circuit boards including CPU or other devices and/or distributed memory, data input/output buffers, queues including request tag queues, coherent input queues ("CIQ"), and address controller implementing address bus arbitration plug-into one or more split transaction snooping bus systems. All devices snoop on the address bus to learn whether an identified line is owned or shared, and an appropriate owned/shared signal is issued. Receipt of an ignore signal blocks CIQ loading of a transaction until the transaction is reloaded and ignore is deasserted. Ownership of a requested memory line transfers immediately at time of request. Asserted requests are queued such that state transactions on the address bus occur atomically logically without dependence upon the request. Subsequent requests for the same data are tagged to become the responsibility of the owner-requestor.
    Type: Grant
    Filed: July 1, 1996
    Date of Patent: June 8, 1999
    Assignee: Sun Microsystems, Inc.
    Inventors: Ashok Singhal, Bjorn Liencres, Jeff Price, Frederick M. Cerauskis, David Broniarczyk, Gerald Cheung, Erik Hagersten, Nalini Agarwal