Congestion control using hierarchical match action table framework
Metrics associated with the traffic on a network are received to perform congestion control. The metrics are compared with a set of conditions to look up a case entry for a current state of the congestion control in a case definition table of a hierarchical match action table framework. A state of the congestion control is updated to a next state indicated in the case entry of the match action table. One or more congestion control actions corresponding to the case entry are performed.
1 . A non-transitory computer readable medium storing program code that, when executed by one or more processors, causes the one or more processors to perform operations for congestion control in a computer network, the operations comprising:
receiving network related metrics including latency metrics, rate metrics, and inflight metrics associated with traffic on the network;
comparing the received network related metrics with a plurality of conditions to identify a case entry in a case definition table of a hierarchical match action table framework,
wherein the case definition table contains a plurality of case entries for each of a plurality of states of the congestion control including a slow-start state, a steady state, a probing state, and a draining state, and
wherein each case entry contains a state-case pair specifying a case of a particular state of the congestion control, a set of conditions designated for the case of the case entry, and a next state of the congestion control, wherein each condition is defined for a state-case pair in one or more condition tables of the hierarchical match action table framework;
updating a state of the congestion control to the next state indicated in the identified case entry; and
performing a set of congestion control actions to update network traffic goals and limits corresponding to the state-case pair of the identified case entry based on one or more action tables of the hierarchical match action table framework.
2 . The non-transitory computer readable medium of claim 1 , wherein the network related metrics are received at an end of each measurement phase.
3 . The non-transitory computer readable medium of claim 1 , wherein each measurement phase is taken over a multiple of round-trip time of packets.
4 . A method, comprising:
receiving metrics selected from one or more of latency metrics, rate metrics, or inflight metrics associated with traffic on a network to perform congestion control;
comparing the received metrics with conditions in a hierarchical match action table framework to look up a case entry for a current state of the congestion control, the hierarchical match action table framework having a case definition table and a set of condition tables,
wherein the case definition table contains a plurality of case entries for each of a plurality of states of the congestion control,
wherein each case entry contains a state-case pair specifying a case of a particular state of the congestion control, a set of conditions designated for that case entry, and a next state of the congestion control, and
wherein the set of conditions includes a condition that references a condition table in the set of condition tables to provide respective criteria for different state-case pairs to satisfy the condition;
updating a state of the congestion control to a next state indicated in the case entry; and
performing one or more congestion control actions corresponding to the case entry.
5 . The method of claim 4 , wherein the metrics associated with the traffic comprise latency metrics including one or more of round-trip time information, or a retransmission timeout information.
6 . The method of claim 4 , wherein the metrics associated with the traffic comprise rate metrics including one or more of transmission rate information, packet drop rate information, or acknowledgement rate information.
7 . The method of claim 4 , wherein the metrics associated with the traffic comprise inflight metrics including one or more of bytes inflight information, or packets inflight information.
8 . The method of claim 4 , wherein the set of conditions includes one or more of a comparison of a transmission rate to a rate limit, or a comparison of rate information specified for the case entry.
9 . The method of claim 4 , wherein the set of conditions includes one or more of a condition on bytes inflight, or a condition on packets inflight.
10 . The method of claim 4 , wherein the set of conditions includes one or more of a condition on round-trip time, or a condition on retransmission timeout.
11 . The method of claim 4 , wherein the set of conditions includes one or more of a condition on application limited status, a condition of a previous state of the congestion control, or a randomness factor.
12 . The method of claim 4 , wherein one or more of the conditions are set to a don't care value.
13 . The method of claim 4 , wherein the one or more congestion control actions include one or more of setting an inflight goal, setting an inflight limit, setting a round-trip time goal, setting a transmission rate goal, or setting a transmission rate limit.
14 . The method of claim 4 , wherein the congestion control includes a slow-start state, a steady state, a probing-up state, and a draining state.
15 . The method of claim 4 , wherein the next state indicated in the case entry is the current state.
16 . The method of claim 4 , further comprising modifying the congestion control by updating one or more tables in the hierarchical match action table framework.
17 . An integrated circuit (IC) device comprising:
a congestion control state machine having a plurality of states of congestion control, and control circuitry translated from a hierarchical match action table framework having a case definition table defining a plurality of case entries for the plurality of states of the congestion control, wherein each case entry corresponds to a case of a particular state of the congestion control, and wherein each case entry contains a set of conditions designated for the case of the case entry, and a next state of the congestion control,
wherein the congestion control state machine is operable to:
obtain a result vector containing results of comparing network related metrics to each condition specified in the case definition table;
identify a case entry having its set of condition satisfied based on the result vector; and
update a state of the congestion control to the next state indicated in the identified case entry.
18 . The IC device of claim 17 , wherein the congestion control state machine is operable to perform a set of congestion control actions to update network traffic goals and limits corresponding to the identified case entry.
19 . The IC device of claim 17 , wherein the set of conditions includes one or more of a comparison of a transmission rate to a rate limit, a comparison of rate information specified for the identified case entry, a condition on bytes inflight, a condition on packets inflight, a condition on round-trip time, a condition on retransmission timeout, a condition on application limited status, a condition of a previous state of the congestion control, or a randomness factor.
20 . The IC device of claim 17 , wherein the plurality of states of congestion control includes a slow-start state, a steady state, a probing-up state, and a draining state.