Patents by Inventor Nicholas George McDonald

Nicholas George McDonald 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: 11722406
    Abstract: A switch includes a plurality of ingress ports, a plurality of egress ports, and a plurality of buffers comprising a buffer coupled to each ingress port, egress port pair. An ingress port is to determine a plurality of potential egress ports for a packet. The ingress port is to select an egress port of the plurality of potential egress ports based on congestion of the corresponding buffers coupled to the ingress port and to each of the plurality of potential egress ports. The ingress port is to place the packet into the corresponding buffer coupled to the ingress port and the selected egress port.
    Type: Grant
    Filed: December 11, 2020
    Date of Patent: August 8, 2023
    Assignee: Hewlett Packard Enterprise Development LP
    Inventors: David Olson, Darel Neal Emmot, Nicholas George McDonald, John Kim
  • Patent number: 11601368
    Abstract: A system and method for predictive congestion detection for network devices is provided. A routing engine associated with an input of a router receives congestion information from an output, utilizing the received congestion information to initialize a congestion value associated with that output. Between receipt of updated congestion information from the output, the routing engine predicts a potential change in the congestion state at the output based on the congestion value and information regarding usage of the output that is known to the routing engine.
    Type: Grant
    Filed: March 19, 2019
    Date of Patent: March 7, 2023
    Assignee: Hewlett Packard Enterprise Development LP
    Inventor: Nicholas George McDonald
  • Patent number: 11323390
    Abstract: Example implementations relate to hybrid arbitration of requests for access to a shared pool of resources. An example implementation includes receiving a set of requests for access to the shared pool of resources. The requests may each be from any number of traffic classes. A traffic class may be selected according to turn-based arbitration logic. Additionally, a request from each traffic class of a subset of received requests may be selected. A request selected by the age-based arbitration logic and of the selected traffic class may be granted access to the shared pool of resources.
    Type: Grant
    Filed: June 8, 2020
    Date of Patent: May 3, 2022
    Assignee: Hewlett Packard Enterprise Development LP
    Inventors: Nicholas George McDonald, Darel Neal Emmot
  • Publication number: 20210258252
    Abstract: A switch includes a plurality of ingress ports, a plurality of egress ports, and a plurality of buffers comprising a buffer coupled to each ingress port, egress port pair. An ingress port is to determine a plurality of potential egress ports for a packet. The ingress port is to select an egress port of the plurality of potential egress ports based on congestion of the corresponding buffers coupled to the ingress port and to each of the plurality of potential egress ports. The ingress port is to place the packet into the corresponding buffer coupled to the ingress port and the selected egress port.
    Type: Application
    Filed: December 11, 2020
    Publication date: August 19, 2021
    Inventors: David Olson, Darel Neal Emmot, Nicholas George McDonald, John Kim
  • Patent number: 10972394
    Abstract: Example implementations relate to congestion management across a network fabric. An example implementation includes setting an uncongested sequence length threshold to a first value. A completed transaction received count may also be set to an initial value. The completed transaction received count may be incremented in response to a completion of a transaction request. In response to a detected congestion event, the injection rate may be decreased. A second value for the uncongested sequence length threshold may be determined from the CTR count, and the uncongested sequence length threshold may be set to the second value. Furthermore, in response to the CTR count being greater than or equal to the uncongested sequence length threshold, the injection rate may be increased.
    Type: Grant
    Filed: March 29, 2018
    Date of Patent: April 6, 2021
    Assignee: Hewlett Packard Enterprise Development LP
    Inventors: Gregg B. Lesartre, Derek Alan Sherlock, Nicholas George McDonald
  • Patent number: 10938751
    Abstract: Examples relate to hierarchical switching devices comprising a plurality of sub-switches forming a fully interconnected all-to-all network. The sub-switches comprise internal input ports and internal output ports to exchange packets with other sub-switches within the fully interconnected all-to-all network. The internal input ports of the sub-switches have exclusive access to a queue partition for each external output port of the respective sub-switch. A switch controller receives a packet at a first sub-switch of the plurality of sub-switches that is to be routed to a particular external output port of a second sub-switch of the plurality of sub-switches. The switch controller routes the packet directly from the first sub-switch to the second sub-switch using an internal output port of the first sub-switch and a queue partition of the second sub-switch that is for the particular external output port of the second sub-switch.
    Type: Grant
    Filed: April 18, 2018
    Date of Patent: March 2, 2021
    Assignee: Hewlett Packard Enterprise Development LP
    Inventors: Nicholas George McDonald, Darel N Emmot
  • Patent number: 10929322
    Abstract: An arbiter may include a plurality of cells, mapping logic, a fixed priority arbiter, and unmapping logic. Each cell may be associated with a corresponding client and configured to store a priority for the corresponding client. The mapping logic may be connected to the plurality of cells to order requests received from the clients according to the priorities stored in the cells. The fixed priority arbiter may receive the ordered requests and generate a grant for a winning request of the requests. The unmapping logic may use the stored priorities to yield the grant back to the winning client that sent the winning request.
    Type: Grant
    Filed: September 28, 2018
    Date of Patent: February 23, 2021
    Assignee: Hewlett Packard Enterprise Development LP
    Inventors: Nicholas George McDonald, Darel Neal Emmot
  • Patent number: 10887217
    Abstract: A technique includes receiving a packet at a network device, wherein the packet is to be routed in a network to a destination network device; determining a plurality of candidate routes for the packet to be routed to the destination network device; grouping the plurality of candidate routes into a first set of candidate routes and a second set of candidate routes based on hop counts associated with the plurality of candidate routes; selecting one of the first or second sets based on a congestion metric threshold; selecting a candidate route from the selected first or second set based on weight metric values associated with the candidate routes of the selected first or second set; and selecting an egress port associated with the selected candidate route.
    Type: Grant
    Filed: June 29, 2018
    Date of Patent: January 5, 2021
    Assignee: Hewlett Packard Enterprise Development LP
    Inventors: Nicholas George McDonald, Adriana B. Flores Miranda
  • Publication number: 20200304412
    Abstract: A system and method for predictive congestion detection for network devices is provided. A routing engine associated with an input of a router receives congestion information from an output, utilizing the received congestion information to initialize a congestion value associated with that output. Between receipt of updated congestion information from the output, the routing engine predicts a potential change in the congestion state at the output based on the congestion value and information regarding usage of the output that is known to the routing engine.
    Type: Application
    Filed: March 19, 2019
    Publication date: September 24, 2020
    Inventor: NICHOLAS GEORGE MCDONALD
  • Publication number: 20200304424
    Abstract: Example implementations relate to hybrid arbitration of requests for access to a shared pool of resources. An example implementation includes receiving a set of requests for access to the shared pool of resources. The requests may each be from any number of traffic classes. A traffic class may be selected according to turn-based arbitration logic. Additionally, a request from each traffic class of a subset of received requests may be selected. A request selected by the age-based arbitration logic and of the selected traffic class may be granted access to the shared pool of resources.
    Type: Application
    Filed: June 8, 2020
    Publication date: September 24, 2020
    Inventors: Nicholas George McDonald, Darel Neal Emmot
  • Patent number: 10757038
    Abstract: Examples relate to switching devices comprising a switch controller and a plurality of interconnected sub-switches forming an internal network of the switching device. A packet is received at a first sub-switch of the plurality of interconnected sub-switches. The packet is to be routed to a particular external output port of a second sub-switch of the plurality of interconnected sub-switches. Upon reception of the packet, the switch controller reserves a space for the packet in a queue associated to the particular external output port. Then, the switch controller routes the packet on the internal network to the particular external output to occupy the reserved space for the packet.
    Type: Grant
    Filed: July 6, 2018
    Date of Patent: August 25, 2020
    Assignee: Hewlett Packard Enterprise Development LP
    Inventors: Nicholas George McDonald, Darel Neal Emmot
  • Patent number: 10693808
    Abstract: Example implementations relate to hybrid arbitration of requests for access to a shared pool of resources. An example implementation includes receiving a set of requests for access to the shared pool of resources. The requests may each be from any number of traffic classes. A traffic class may be selected according to turn-based arbitration logic. Additionally, a request from each traffic class of a subset of received requests may be selected. A request selected by the age-based arbitration logic and of the selected traffic class may be granted access to the shared pool of resources.
    Type: Grant
    Filed: January 30, 2018
    Date of Patent: June 23, 2020
    Assignee: Hewlett Packard Enterprise Development LP
    Inventors: Nicholas George McDonald, Darel N. Emmot
  • Publication number: 20200104271
    Abstract: An arbiter may include a plurality of cells, mapping logic, a fixed priority arbiter, and unmapping logic. Each cell may be associated with a corresponding client and configured to store a priority for the corresponding client. The mapping logic may be connected to the plurality of cells to order requests received from the clients according to the priorities stored in the cells. The fixed priority arbiter may receive the ordered requests and generate a grant for a winning request of the requests. The unmapping logic may use the stored priorities to yield the grant back to the winning client that sent the winning request.
    Type: Application
    Filed: September 28, 2018
    Publication date: April 2, 2020
    Inventors: Nicholas George McDonald, Darel Neal Emmot
  • Publication number: 20200076742
    Abstract: Examples relate to methods for sending data between a senders and receivers coupled by a link. These methods comprise allocating a plurality of credit pools in a buffer on the receiver. These credits represent a portion of memory space in the buffer to store data received from the sender. Then, the sender allocates a number of credits from a plurality of credits to each virtual channel. A number of virtual channels from the plurality of virtual channels is mapped to the credit pools. The sender sends a data block to the receiver through a particular virtual channel when there are enough credits available in at least one of the particular virtual channel and the data pool to which the particular virtual channel is mapped. The sender decrements a credit counter associated with the corresponding at least one of the particular virtual channel and the data pool.
    Type: Application
    Filed: August 28, 2018
    Publication date: March 5, 2020
    Inventors: Nicholas George McDonald, Darel Neal Emmot
  • Publication number: 20200014635
    Abstract: Examples relate to switching devices comprising a switch controller and a plurality of interconnected sub-switches forming an internal network of the switching device. A packet is received at a first sub-switch of the plurality of interconnected sub-switches. The packet is to be routed to a particular external output port of a second sub-switch of the plurality of interconnected sub-switches. Upon reception of the packet, the switch controller reserves a space for the packet in a queue associated to the particular external output port. Then, the switch controller routes the packet on the internal network to the particular external output to occupy the reserved space for the packet.
    Type: Application
    Filed: July 6, 2018
    Publication date: January 9, 2020
    Inventors: Nicholas George McDonald, Darel Neal Emmot
  • Publication number: 20200007432
    Abstract: A technique includes receiving a packet at a network device of a plurality of network devices in a network. The packet is to be routed to a destination network device. The technique includes determining, by a routing engine of the network device, a plurality of candidate routes for the packet to be routed to the destination network device; and grouping, by the routing engine, the plurality of candidate routes into a first set of candidate routes and a second set of candidate routes based on hop counts that are associated with the plurality of candidate routes. The technique includes the routing engine selecting one of the first or second sets based on a congestion metric threshold; and the routing engine selecting a candidate route from the selected first or second set based on weight metric values that are associated with the candidate routes of the selected first or second set. The technique includes the routing engine selecting an egress port associated with the selected candidate route.
    Type: Application
    Filed: June 29, 2018
    Publication date: January 2, 2020
    Inventors: Nicholas George McDonald, Adriana Flores
  • Patent number: 10498631
    Abstract: Examples relate to routing packets using distance classes in multidimensional networks. A packet is received at a network device in a fully connected multidimensional network and all possible candidate output ports for the packet to be routed to the destination network device are determined. The candidate output ports correspond to candidate minimal paths and candidate non-minimal paths between the network device and the destination network device along all remaining unaligned dimensions of the multidimensional network. An optimal output port among all the candidate output ports is selected and the packet is routed to a next hop in the network though the optimal output port and using a next distance class.
    Type: Grant
    Filed: August 15, 2017
    Date of Patent: December 3, 2019
    Assignee: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
    Inventor: Nicholas George McDonald
  • Patent number: 10491545
    Abstract: Examples relate to virtual channel routing in networks considering VC actions to be performed by the packets while routed through the network. A packet is received at an input port of a network device of a network and an output port and a VC action is determined from a routing table associated to the input port based on a packet's destination network device. A VC mask is determined from a Virtual Channel Action Table (VCAT), associated to the routing table, based on a packet's ingress VC and the VC action. A particular VC among the set of VCs defined in the VC mask is selected and the packet is routed to the destination network device using the output port and the particular VC.
    Type: Grant
    Filed: May 26, 2017
    Date of Patent: November 26, 2019
    Assignee: Hewlett Packard Enterprise Development LP
    Inventors: Nicholas George McDonald, Gary Gostin, Darel N. Emmot, Gregg B. Lesartre, Al Davis, Derek Alan Sherlock
  • Patent number: 10476780
    Abstract: Examples relate to routing packets based on the actual congestion sensed in the minimal and the non-minimal candidate routes between a source network device and a destination network device. A packet is received at a network device in a network and all possible minimal and non-minimal candidate routes for the packet to be routed to the destination network device are determined. An adaptive weight is assigned to the non-minimal candidate routes, wherein the adaptive weight is a function of congestion of the minimal candidate routes and the non-minimal candidate routes. An optimal route is selected among the plurality of candidate routes and the packet is routed to the destination device using the optimal route.
    Type: Grant
    Filed: September 29, 2017
    Date of Patent: November 12, 2019
    Assignee: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
    Inventors: Nicholas George McDonald, Michael Isaev
  • Publication number: 20190327189
    Abstract: Examples relate to hierarchical switching devices comprising a plurality of sub-switches forming a fully interconnected all-to-all network. The sub-switches comprise internal input ports and internal output ports to exchange packets with other sub-switches within the fully interconnected all-to-all network. The internal input ports of the sub-switches have exclusive access to a queue partition for each external output port of the respective sub-switch. A switch controller receives a packet at a first sub-switch of the plurality of sub-switches that is to be routed to a particular external output port of a second sub-switch of the plurality of sub-switches. The switch controller routes the packet directly from the first sub-switch to the second sub-switch using an internal output port of the first sub-switch and a queue partition of the second sub-switch that is for the particular external output port of the second sub-switch.
    Type: Application
    Filed: April 18, 2018
    Publication date: October 24, 2019
    Inventors: Nicholas George MCDONALD, Darel N. EMMOT