Patents by Inventor Dennis C. Ferguson

Dennis C. Ferguson 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: 8189605
    Abstract: A method and apparatus for switching a data packet between a source and destination in a network. The data packet includes a header portion and a data portion. The header portion includes routing information for the data packet. The method includes defining a data path in the router comprising a path through the router along which the data portion of the data packet travels and defining a control path comprising a path through the router along which routing information from the header portion travels. The method includes separating the data path and control path in the router such that the routing information can be separated from the data portion allowing for the separate processing of each in the router. The data portion can be stored in a global memory while routing decisions are made on the routing information in the control path.
    Type: Grant
    Filed: December 31, 2008
    Date of Patent: May 29, 2012
    Assignee: Juniper Networks, Inc.
    Inventors: Pradeep S. Sindhu, Kireeti Kompella, Dennis C. Ferguson, Bjorn O Liencres, Nalini Agarwal, Hann-Hwan Ju, Raymond Marcelino Manese Lim, Rasoul Mirzazadeh Oskouy, Sreeram Veeragandham
  • 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: 20120057597
    Abstract: A method and apparatus for in-line processing a data packet while routing the packet through a router in a system transmitting data packets between a source and a destination over a network including the router. The method includes receiving the data packet and pre-processing layer header data for the data packet as the data packet is received and prior to transferring any portion of the data packet to packet memory. The data packet is thereafter stored in the packet memory. A routing through the router is determined including a next hop index describing the next connection in the network. The data packet is retrieved from the packet memory and a new layer header for the data packet is constructed from the next hop index while the data packet is being retrieved from memory. The new layer header is coupled to the data packet prior to transfer from the router.
    Type: Application
    Filed: November 11, 2011
    Publication date: March 8, 2012
    Applicant: JUNIPER NETWORKS, INC.
    Inventors: Rasoul Mirzazadeh OSKOUY, Dennis C. FERGUSON, Hann-Hwan JU, Raymond Marcelino Manese LIM, Pradeep S. SINDHU, Sreeram VEERAGANDHAM, Jeff ZIMMER, Michael M.Y. HUI
  • Patent number: 8117333
    Abstract: A network device includes at least one input interface, at least one processing path and at least one output interface. The at least one input interface receives data blocks from a plurality of streams in a first order. The at least one processing path processes each of the data blocks, the processing including performing one or more route look-ups for each of the data blocks. The at least one output interface re-orders the data blocks based on a number of the one or more route look-ups associated with each of the data blocks.
    Type: Grant
    Filed: April 22, 2003
    Date of Patent: February 14, 2012
    Assignee: Juniper Networks, Inc.
    Inventors: Junying James Yu, Dennis C. Ferguson, Hasan F. Ugurdag, Atsushi Kasuya
  • 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: 8082364
    Abstract: A software module operating within a router, such as an operating system, manages state information within a hierarchically ordered and temporally-linked data structure. The software module sends state change messages to other software modules within the router, referred to as consumers, in an order that corresponds to the hierarchical order and the temporal linking. The data structure may comprise a plurality of objects to store state information. The operating system may receive event messages that indicate a change to the state information. The objects may be hierarchically linked in accordance with a hierarchy representing relationships of event messages. The objects may be temporally linked in accordance with the order in which the operating system receives event messages. The operating system may traverse the data structure according to the temporal and hierarchical links to select state change messages to send to a consumer.
    Type: Grant
    Filed: March 28, 2011
    Date of Patent: December 20, 2011
    Assignee: Juniper Networks, Inc.
    Inventors: David M. Katz, Dennis C. Ferguson
  • Patent number: 8077724
    Abstract: A method and apparatus for in-line processing a data packet while routing the packet through a router in a system transmitting data packets between a source and a destination over a network including the router. The method includes receiving the data packet and pre-processing layer header data for the data packet as the data packet is received and prior to transferring any portion of the data packet to packet memory. The data packet is thereafter stored in the packet memory. A routing through the router is determined including a next hop index describing the next connection in the network. The data packet is retrieved from the packet memory and a new layer header for the data packet is constructed from the next hop index while the data packet is being retrieved from memory. The new layer header is coupled to the data packet prior to transfer from the router.
    Type: Grant
    Filed: August 13, 2010
    Date of Patent: December 13, 2011
    Assignee: Juniper Networks, Inc.
    Inventors: Rasoul Mirzazadeh Oskouy, Dennis C Ferguson, Hann-Hwan Ju, Raymond Marcelino Manese Lim, Pradeep S Sindhu, Sreeram Veeragandham, Jeff Zimmer, Michael M. Y. Hui
  • 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
  • Publication number: 20110235643
    Abstract: A network device for performing redirect checking includes an input device and processing logic. The input device receives a data packet on a first one of a number of interfaces. The data packet includes source and destination addresses. The processing logic assigns an incoming interface to the data packet and generates forwarding information identifying a next hop for the data packet. The processing logic also identifies an outgoing interface based on the next hop and determines whether the incoming interface index is equal to the outgoing interface index. The processing logic also determines whether the data packet originated from a station that is part of the same subnet as the next hop. When both of these conditions are met, the processing logic generates a redirect message.
    Type: Application
    Filed: June 10, 2011
    Publication date: September 29, 2011
    Applicant: JUNIPER NETWORKS, INC.
    Inventors: Raymond Marcelino Manese LIM, Dennis C. Ferguson, Jeffrey Glenn Libby
  • Publication number: 20110235642
    Abstract: A network device includes one or more sprayers, multiple packet processors, and one or more desprayers. The sprayers receive packets on at least one incoming packet stream and distribute the packets according to a load balancing scheme that balances the number of bytes of packet data that is given to each of the packet processors. The packet processors receive the packets from the sprayers and process the packets to determine routing information for the packets. The desprayers receive the processed packets from the packet processors and transmit the packets on at least one outgoing packet stream based on the routing information.
    Type: Application
    Filed: June 6, 2011
    Publication date: September 29, 2011
    Applicant: JUNIPER NETWORKS, INC.
    Inventors: Stefan DYCKERHOFF, Pankaj Patel, Pradeep Sindhu, Ashok Krishnamurthi, Hann-Hwan Ju, Ramalingam K. Anand, Dennis C. Ferguson, Chang-Hong Wu
  • Patent number: 8004980
    Abstract: A data flow rate policer enforces data flow policies for a number of data flows using a probabilistic policy enforcement mechanism. The policer includes a memory that stores the state of each data flow in a compact data structure. Additionally, the policer includes one or more policing engines that implement the actual data flow policies based on information derived from the data structures. The policing engines may be implemented in hardware to increase performance.
    Type: Grant
    Filed: March 26, 2010
    Date of Patent: August 23, 2011
    Assignee: Juniper Networks, Inc.
    Inventors: Dennis C Ferguson, Devereaux C Chen, John W Stewart, III, James Washburn, Jeffrey R Zimmer
  • Patent number: 7995586
    Abstract: A network device for processing data packets includes input logic, a register, route lookup logic and output processing logic. The input logic receives a data packet having at least one multi-protocol label switching (MPLS) tag, stores the packet and forwards a portion of the packet including the MPLS tag. The route lookup logic receives the portion of the packet, generates next hop information based on the MPLS tag and determines whether at least one MPLS tag is to be removed from the packet before the packet is to be output by the network device. The route lookup logic also modifies a start offset value in the register for each MPLS tag that is to be removed and forwards the start offset. The output processing logic receives the start offset and begins processing the data packet for output at a location identified by the start offset.
    Type: Grant
    Filed: February 26, 2010
    Date of Patent: August 9, 2011
    Assignee: Juniper Networks, Inc.
    Inventors: Dennis C. Ferguson, Der-Hwa Gan
  • Patent number: 7986717
    Abstract: A transmitting system inserts runt abort packets in an outgoing data stream during idle time inter-frame time fill. The runt abort packets cause the receiving system to synchronize itself to the transmitting system so that even if an error during inter-frame time fill causes the receiving system to go into an erroneous state, the receiving system will be synchronized with the transmitting system before receiving valid data. In one embodiment, the transmitting system transmits data in packets over SONET. The packet data is scrambled at the transmitting end and descrambled at the receiving end. Runt abort packets sent during inter-frame time fill resynchronize the descrambler. If there is an error in the inter-frame time fill bytes, causing the receiving end descrambler to no longer be synchronized with the transmitting end scrambler, the runt abort packets will cause the descrambler to resynchronize state with the transmitting scrambler.
    Type: Grant
    Filed: June 26, 2009
    Date of Patent: July 26, 2011
    Assignee: Juniper Networks, Inc.
    Inventors: Dennis C. Ferguson, Devereaux C. Chen, Eric M. Verwillow, Ramesh Padmanabhan, Thomas Michael Skibo
  • 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
  • Patent number: 7983290
    Abstract: A network device includes one or more sprayers, multiple packet processors, and one or more desprayers. The sprayers receive packets on at least one incoming packet stream and distribute the packets according to a load balancing scheme that balances the number of bytes of packet data that is given to each of the packet processors. The packet processors receive the packets from the sprayers and process the packets to determine routing information for the packets. The desprayers receive the processed packets from the packet processors and transmit the packets on at least one outgoing packet stream based on the routing information.
    Type: Grant
    Filed: March 25, 2010
    Date of Patent: July 19, 2011
    Assignee: Juniper Networks, Inc.
    Inventors: Stefan Dyckerhoff, Pankaj Patel, Pradeep Sindhu, Ashok Krishnamurthi, Hann-Hwan Ju, Ramalingam K Anand, Dennis C Ferguson, Chang-Hong Wu
  • Patent number: 7983278
    Abstract: A network device includes an input device configured to receive a data packet, where the input device includes a number of interfaces and the data packet includes a source address and a destination address. The network device also includes processing logic configured to generate forwarding information identifying a next hop for the data packet and determine whether an interface on which the data packet was received is a same interface on which the data packet is to be forwarded to the next hop. The processing logic is also configured to determine whether the data packet originated from a device that is part of a same subnet as the next hop.
    Type: Grant
    Filed: July 18, 2006
    Date of Patent: July 19, 2011
    Assignee: Juniper Networks, Inc.
    Inventors: Raymond Marcelino Manese Lim, Dennis C. Ferguson, Jeffrey Glenn Libby
  • Publication number: 20110164618
    Abstract: A router for switching data packets from a source to a destination in a network in which the router includes a distributed memory. The distributed memory includes two or more memory banks. Each memory bank is used for storing uniform portions of a data packet received from a source and linking information for each data packet to allow for the extraction of the uniform portions of a data packet from distributed locations in memory in proper order after a routing determination has been made by the router.
    Type: Application
    Filed: January 7, 2011
    Publication date: July 7, 2011
    Applicant: JUNIPER NETWORKS, INC.
    Inventors: Pradeep S. SINDHU, Dennis C. FERGUSON, Bjorn O. LIENCRES, Nalini AGARWAL, Hann-Hwan JU, Raymond Marcelino Manese LIM, Rasoul Mirzazadeh OSKOUY, Sreeram VEERAGANDHAM
  • Patent number: 7917578
    Abstract: A software module operating within a router, such as an operating system, manages state information within a hierarchically ordered and temporally-linked data structure. The software module sends state change messages to other software modules within the router, referred to as consumers, in an order that corresponds to the hierarchical order and the temporal linking. The data structure may comprise a plurality of objects to store state information. The operating system may receive event messages that indicate a change to the state information. The objects may be hierarchically linked in accordance with a hierarchy representing relationships of event messages. The objects may be temporally linked in accordance with the order in which the operating system receives event messages. The operating system may traverse the data structure according to the temporal and hierarchical links to select state change messages to send to a consumer.
    Type: Grant
    Filed: August 30, 2007
    Date of Patent: March 29, 2011
    Assignee: Juniper Networks, Inc.
    Inventors: David M. Katz, Dennis C. Ferguson