System and methods for distributed quality of service enforcement
First Claim
1. A grid router for routing data over a grid sessionwise, comprising:
- a plurality of devices configured to forward data according to sessions over an unreliable network between said devices, said devices comprising a first multiplicity of ingress units to receive said session data from devices external to said network, a second multiplicity of mailbox units to handle said session data after receiving said session data from said ingress units, and a third multiplicity of egress units to forward said session data to said devices external to said network after receiving said session data from said ingress units, said mailbox units, and said egress units being connected in a CLOS network such that each mailbox unit is accessible by each ingress unit and each egress unit; and
a distributed entity, configured to assign each one of said sessions respectively to a specific mailbox unit and to a specific egress unit and further to provide quality of service (QoS) levels defined for each said session in the presence of congestion in one of;
said network and said devices,wherein at least one of the devices comprises a transport unit having a work queue from which said data is transported across a link subject to congestion with acknowledgement to said transport unit, said data remaining in said work queue after being transported, said data added to a completion queue of said transport unit and removed from said work queue responsive to receiving acknowledgment of receipt of said data over said link,wherein said distributed entity interrogates said transport unit to determine a number of packets remaining in said work queue, infers the presence of congestion through said link from said number of packets, and modifies transportation of additional data to said transport unit as a function of said inferred congestion,and wherein said function is of a plurality of priority levels of said additional data as well as of said inferred congestion.
4 Assignments
0 Petitions
Accused Products
Abstract
A grid router for routing data over a grid sessionwise, involves multiple devices forwarding data according to sessions over an unreliable network between the devices. The devices include a first group of mailbox units to handle the sessions and a second group of egress units to forward session data to devices external to the network. The mailbox units and egress units are connected in a CLOS network such that each mailbox unit is accessible by each egress unit. The router further includes a distributed entity, which assigning specific sessions to specific mailbox units and to specific egress units and further defomes quality of service (QoS) levels for each session in the presence of congestion in either the network or the devices.
-
Citations
24 Claims
-
1. A grid router for routing data over a grid sessionwise, comprising:
-
a plurality of devices configured to forward data according to sessions over an unreliable network between said devices, said devices comprising a first multiplicity of ingress units to receive said session data from devices external to said network, a second multiplicity of mailbox units to handle said session data after receiving said session data from said ingress units, and a third multiplicity of egress units to forward said session data to said devices external to said network after receiving said session data from said ingress units, said mailbox units, and said egress units being connected in a CLOS network such that each mailbox unit is accessible by each ingress unit and each egress unit; and a distributed entity, configured to assign each one of said sessions respectively to a specific mailbox unit and to a specific egress unit and further to provide quality of service (QoS) levels defined for each said session in the presence of congestion in one of;
said network and said devices,wherein at least one of the devices comprises a transport unit having a work queue from which said data is transported across a link subject to congestion with acknowledgement to said transport unit, said data remaining in said work queue after being transported, said data added to a completion queue of said transport unit and removed from said work queue responsive to receiving acknowledgment of receipt of said data over said link, wherein said distributed entity interrogates said transport unit to determine a number of packets remaining in said work queue, infers the presence of congestion through said link from said number of packets, and modifies transportation of additional data to said transport unit as a function of said inferred congestion, and wherein said function is of a plurality of priority levels of said additional data as well as of said inferred congestion. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A method of transporting data of a plurality of priority levels across a link subject to congestion, said link being an intermediate part of a multi-link communication path, the method comprising:
-
transporting said data from an output queue to a work queue co-located with a transport unit; transporting said data within said work queue, said transport unit being one member of the group consisting of an RDMA transport unit and a TCP transport unit, said transport unit transporting said data across said link subject to congestion with acknowledgement to said transport unit, said data remaining within said work queue after being transported; responsive to receiving acknowledgment of receipt of said data over said link, adding said data to a completion queue co-located with said transport unit; removing said data from said work queue after receiving said acknowledgment; interrogating said transport unit to determine a work queue size of untransported units, the work queue size being a number of packets remaining in said work queue, the work queue being made up of packets of a given one of said priority levels in said output queue, said output queue comprising a plurality of said priority levels, and inferring the presence of congestion throughout said link from said queue size; and modifying said transporting from said output queue to said transport unit as a function of said inferred congestion and of said priority levels. - View Dependent Claims (21, 22, 23)
-
-
24. A method comprising:
-
programming a plurality of devices of a grid router so that after said programming said devices forward data according to sessions over an unreliable network between said devices, said devices comprising a first multiplicity of ingress units to receive said session data from devices external to said network, a second multiplicity of mailbox units to handle said session data after receiving said session data from said ingress units, and a third multiplicity of egress units to forward said session data to said devices external to said network after receiving said session data from said ingress units, said mailbox units, and said egress units being connected in a CLOS network such that each mailbox unit is accessible by each ingress unit and each egress unit; and programming a distributed entity of the grid router so that after said programming said distributed entity assigns each one of said sessions respectively to a specific mailbox unit and to a specific egress unit and further to provide quality of service (QoS) levels defined for each said session in the presence of congestion in one of;
said network and said devices, wherein at least one of the devices comprises a transport unit having a work queue from which said data is transported across a link subject to congestion with acknowledgement to said transport unit, said data remaining in said work queue after being transported, said data added to a completion queue of said transport unit and removed from said work queue responsive to receiving acknowledgment of receipt of said data over said link,wherein said distributed entity interrogates said transport unit to determine a number of packets remaining in said work queue, infers the presence of congestion through said link from said number of packets, and modifies transportation of additional data to said transport unit as a function of said inferred congestion, and wherein said function is of a plurality of priority levels of said additional data as well as of said inferred congestion.
-
Specification