System and method for facilitating data-driven intelligent network
AssigneeHewlett Packard Enterprise Development LP
InventorJonathan P. Beecroft
Life of this patent
Estimating the term…
Abstract
Data-driven intelligent networking systems and methods are provided. The system can accommodate dynamic traffic with fast, effective congestion control. The system can maintain state information of individual packet flows, which can be set up or released dynamically based on injected data. Each flow can be provided with a flow-specific input queue upon arriving at a switch. Packets of a respective flow can be acknowledged after reaching the egress point of the network, and the acknowledgement packets can be sent back to the ingress point of the flow along the same data path. As a result, each switch can obtain state information of each flow and perform flow control on a per-flow basis.
Claims20
A switch, comprising:
- a storage device to buffer an incoming packet flow, wherein the packet flow corresponds to packets with one or more common header fields and is identified by an incoming flow identifier that is unique within an input port via which the packet flow is received;
- and
- an input flow logic block to maintain state information of the packet flow, and to free the incoming flow identifier in response to determining that all forwarded data of the packet flow have been acknowledged, thereby allowing the freed flow identifier to be used by another packet flow, wherein determining that all forwarded data has been acknowledged comprises computing the total downstream packet data for the packet flow and determining that the total downstream packet data for the packet flow is zero;
- wherein the state information indicates an amount of forwarded but unacknowledged data belonging to the packet flow;
- and
- wherein the input flow logic block is coupled to the storage device.
A switch, comprising:
- a storage device to store packet header information and flow identifiers, wherein a respective flow identifier is unique within an input port and identifies a packet flow which corresponds to packets with one or more common header fields;
- an edge flow logic block to perform a hardware-based lookup in the storage device for a flow identifier using a match pattern that includes header information of a received packet, and to create an entry in the storage device that maps the match pattern to a new flow identifier in response to the lookup not resulting in a match;
- and
- an input queue management logic block to determine when a packet of the packets with one or more common header fields can be dequeued from an input queue and sent to a data crossbar switch based on flow-control parameters stored in the entry.
A method, comprising:
- buffering an incoming packet flow in a storage device, wherein the packet flow corresponds to packets with one or more common header fields and is identified by an incoming flow identifier that is unique within an input port via which the packet flow is received;
- maintaining state information of the packet flow, wherein the state information indicates an amount of forwarded but unacknowledged data belonging to the packet flow;
- and
- freeing the incoming flow identifier in response to determining that all forwarded data of the packet flow have been acknowledged, thereby allowing the freed flow identifier to be used by another packet flow, wherein determining that all forwarded data has been acknowledged comprises computing the total downstream packet data for the packet flow and determining that the total downstream packet data for the packet flow is zero.
A method, comprising:
- storing in a storage device packet header information and flow identifiers, wherein a respective flow identifier is unique within an input port and identifies a packet flow which corresponds to packets with one or more common header fields;
- performing a hardware-based lookup in the storage device for a flow identifier using a match pattern that includes header information of a received packet;
- creating an entry in the storage device that maps the match pattern to a new flow identifier in response to the lookup not resulting in a match;
- and
- determining when a packet of the packets with one or more common header fields can be dequeued from an input queue and sent to a data crossbar switch based on flow-control parameters stored in the entry.
Dependencies are inferred from the claim text.