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: 11924044
    Abstract: In general, techniques are described for organizing execution of distributed operating systems for network devices. A device comprising hardware computing nodes may be configured to perform the techniques. The hardware computing nodes may execute a protocol by which to discover a topology of the plurality of hardware computing nodes, and determine, based on the topology, a subset of the plurality of hardware computing nodes to manage execution of a distributed operating system. The determined subset of the plurality of hardware computing nodes may execute a communication bus by which to synchronize operating system state information between the subset of the plurality of hardware computing nodes. The hardware computing nodes may further execute, based on the operating system state information, the distributed operating system to provide an execution environment in which one or more applications execute.
    Type: Grant
    Filed: March 24, 2022
    Date of Patent: March 5, 2024
    Assignee: Juniper Networks, Inc.
    Inventors: David M. Katz, Ross W. Callon, Scott Mackie, Dennis C. Ferguson
  • Publication number: 20220217053
    Abstract: In general, techniques are described for organizing execution of distributed operating systems for network devices. A device comprising hardware computing nodes may be configured to perform the techniques. The hardware computing nodes may execute a protocol by which to discover a topology of the plurality of hardware computing nodes, and determine, based on the topology, a subset of the plurality of hardware computing nodes to manage execution of a distributed operating system. The determined subset of the plurality of hardware computing nodes may execute a communication bus by which to synchronize operating system state information between the subset of the plurality of hardware computing nodes. The hardware computing nodes may further execute, based on the operating system state information, the distributed operating system to provide an execution environment in which one or more applications execute.
    Type: Application
    Filed: March 24, 2022
    Publication date: July 7, 2022
    Inventors: David M. Katz, Ross W. Callon, Scott Mackie, Dennis C. Ferguson
  • Patent number: 11316775
    Abstract: In general, techniques are described for maintaining coherency in distributed operating systems for network devices. A network device comprising hardware computing nodes may be configured to perform the techniques. The hardware computing nodes may execute a distributed operating system. At least one the hardware computing nodes may determine whether one or more of the plurality of hardware computing nodes has failed and is no longer supporting execution of the distributed operating system, and determine whether remaining ones of the plurality of hardware computing nodes exceeds a quorum threshold. The at least one of the hardware computing nodes may further restart, when the remaining ones of the plurality of hardware computing nodes is less than the quorum threshold, the distributed operating system.
    Type: Grant
    Filed: June 29, 2017
    Date of Patent: April 26, 2022
    Assignee: Juniper Networks, Inc.
    Inventors: David M. Katz, Ross W. Callon, Scott Mackie, Dennis C. Ferguson
  • Patent number: 11316744
    Abstract: In general, techniques are described for organizing execution of distributed operating systems for network devices. A device comprising hardware computing nodes may be configured to perform the techniques. The hardware computing nodes may execute a protocol by which to discover a topology of the plurality of hardware computing nodes, and determine, based on the topology, a subset of the plurality of hardware computing nodes to manage execution of a distributed operating system. The determined subset of the plurality of hardware computing nodes may execute a communication bus by which to synchronize operating system state information between the subset of the plurality of hardware computing nodes. The hardware computing nodes may further execute, based on the operating system state information, the distributed operating system to provide an execution environment in which one or more applications execute.
    Type: Grant
    Filed: June 29, 2017
    Date of Patent: April 26, 2022
    Assignee: Juniper Networks, Inc.
    Inventors: David M. Katz, Ross W. Callon, Scott Mackie, Dennis C. Ferguson
  • Patent number: 11265216
    Abstract: In general, techniques are described for communicating state information in distribute operating system. A network device comprises a first hardware node and a second hardware node. The first hardware node may execute a first instance of a distributed operating system, and maintain a first data structure that stores a plurality of objects defining a portion of state information. The second hardware node may execute a second instance of the distributed operating system, and maintain a second data structure that stores synchronized versions of the plurality of objects. The first hardware node may further receive updated state information, update the first data structure to include the updated state information, and synchronize the updated first data structure with the second data structure. The second hardware node may synchronize the second data structure with the updated first data structure.
    Type: Grant
    Filed: December 28, 2020
    Date of Patent: March 1, 2022
    Assignee: Juniper Networks, Inc.
    Inventors: David M. Katz, Ross W. Callon, Scott Mackie, Dennis C. Ferguson
  • Publication number: 20210119872
    Abstract: In general, techniques are described for communicating state information in distribute operating system. A network device comprises a first hardware node and a second hardware node. The first hardware node may execute a first instance of a distributed operating system, and maintain a first data structure that stores a plurality of objects defining a portion of state information. The second hardware node may execute a second instance of the distributed operating system, and maintain a second data structure that stores synchronized versions of the plurality of objects. The first hardware node may further receive updated state information, update the first data structure to include the updated state information, and synchronize the updated first data structure with the second data structure. The second hardware node may synchronize the second data structure with the updated first data structure.
    Type: Application
    Filed: December 28, 2020
    Publication date: April 22, 2021
    Inventors: David M. Katz, Ross W. Callon, Scott Mackie, Dennis C. Ferguson
  • Patent number: 10887173
    Abstract: In general, techniques are described for communicating state information in distribute operating system. A network device comprises a first hardware node and a second hardware node. The first hardware node may execute a first instance of a distributed operating system, and maintain a first data structure that stores a plurality of objects defining a portion of state information. The second hardware node may execute a second instance of the distributed operating system, and maintain a second data structure that stores synchronized versions of the plurality of objects. The first hardware node may further receive updated state information, update the first data structure to include the updated state information, and synchronize the updated first data structure with the second data structure. The second hardware node may synchronize the second data structure with the updated first data structure.
    Type: Grant
    Filed: June 29, 2017
    Date of Patent: January 5, 2021
    Assignee: Juniper Networks, Inc.
    Inventors: David M. Katz, Ross W. Callon, Scott Mackie, Dennis C. Ferguson
  • Publication number: 20180176093
    Abstract: In general, techniques are described for organizing execution of distributed operating systems for network devices. A device comprising hardware computing nodes may be configured to perform the techniques. The hardware computing nodes may execute a protocol by which to discover a topology of the plurality of hardware computing nodes, and determine, based on the topology, a subset of the plurality of hardware computing nodes to manage execution of a distributed operating system. The determined subset of the plurality of hardware computing nodes may execute a communication bus by which to synchronize operating system state information between the subset of the plurality of hardware computing nodes. The hardware computing nodes may further execute, based on the operating system state information, the distributed operating system to provide an execution environment in which one or more applications execute.
    Type: Application
    Filed: June 29, 2017
    Publication date: June 21, 2018
    Inventors: David M. Katz, Ross W. Callon, Scott Mackie, Dennis C. Ferguson
  • Publication number: 20180176120
    Abstract: In general, techniques are described for maintaining coherency in distributed operating systems for network devices. A network device comprising hardware computing nodes may be configured to perform the techniques. The hardware computing nodes may execute a distributed operating system. At least one the hardware computing nodes may determine whether one or more of the plurality of hardware computing nodes has failed and is no longer supporting execution of the distributed operating system, and determine whether remaining ones of the plurality of hardware computing nodes exceeds a quorum threshold. The at least one of the hardware computing nodes may further restart, when the remaining ones of the plurality of hardware computing nodes is less than the quorum threshold, the distributed operating system.
    Type: Application
    Filed: June 29, 2017
    Publication date: June 21, 2018
    Inventors: David M. Katz, Ross W. Callon, Scott Mackie, Dennis C. Ferguson
  • Publication number: 20180176082
    Abstract: In general, techniques are described for communicating state information in distribute operating system. A network device comprises a first hardware node and a second hardware node. The first hardware node may execute a first instance of a distributed operating system, and maintain a first data structure that stores a plurality of objects defining a portion of state information. The second hardware node may execute a second instance of the distributed operating system, and maintain a second data structure that stores synchronized versions of the plurality of objects. The first hardware node may further receive updated state information, update the first data structure to include the updated state information, and synchronize the updated first data structure with the second data structure. The second hardware node may synchronize the second data structure with the updated first data structure.
    Type: Application
    Filed: June 29, 2017
    Publication date: June 21, 2018
    Inventors: David M. Katz, Ross W. Callon, Scott Mackie, Dennis C. Ferguson
  • Patent number: 9912590
    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: October 24, 2016
    Date of Patent: March 6, 2018
    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
  • Publication number: 20180062999
    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: Application
    Filed: November 3, 2017
    Publication date: March 1, 2018
    Inventors: Dennis C. Ferguson, Rajiv Patel, Gerald Cheung, Pradeep Sindhu
  • Patent number: 9813339
    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 30, 2015
    Date of Patent: November 7, 2017
    Assignee: Juniper Networks, Inc.
    Inventors: Dennis C. Ferguson, Rajiv Patel, Gerald Cheung, Pradeep Sindhu
  • Publication number: 20170237661
    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: Application
    Filed: May 3, 2017
    Publication date: August 17, 2017
    Inventors: Dennis C. FERGUSON, Rajiv PATEL, Gerald CHEUNG, Pradeep S. SINDHU
  • Patent number: 9647940
    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: August 11, 2014
    Date of Patent: May 9, 2017
    Assignee: Juniper Networks, Inc.
    Inventors: Dennis C. Ferguson, Rajiv Patel, Gerald Cheung, Pradeep S. Sindhu
  • Publication number: 20170041228
    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: October 24, 2016
    Publication date: February 9, 2017
    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: 9479436
    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: September 30, 2014
    Date of Patent: October 25, 2016
    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: 9411776
    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: February 27, 2014
    Date of Patent: August 9, 2016
    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: 9356880
    Abstract: The invention is directed to techniques for supporting multi-link protocols within a computer network. In one embodiment, a method includes receiving a set of data blocks from a plurality of links in one or more interface cards according to a multi-link protocol and sending the data blocks to a multi-link service card for sequencing. The data blocks may then be sent to the one or more interface cards for communication to a destination device over a computer network. Implementing a multi-link service card may allow a network device, such as a router, to support multi-link protocols.
    Type: Grant
    Filed: July 8, 2013
    Date of Patent: May 31, 2016
    Assignee: Juniper Networks, Inc.
    Inventors: David J. Ofelt, Stephen W. Turner, Dennis C. Ferguson
  • Publication number: 20160119235
    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: Application
    Filed: December 30, 2015
    Publication date: April 28, 2016
    Inventors: Dennis C. FERGUSON, Rajiv PATEL, Gerald CHEUNG, Pradeep SINDHU