net: sched: sch_netem: Refactor code in 4-state loss generator
authorHarshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
Fri, 12 Nov 2021 21:36:47 +0000 (13:36 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 15 Nov 2021 13:23:23 +0000 (13:23 +0000)
Fixed comments to match description with variable names and
refactored code to match the convention as per [1].

To match the convention mapping is done as follows:
State 3 - LOST_IN_BURST_PERIOD
State 4 - LOST_IN_GAP_PERIOD

[1] S. Salsano, F. Ludovici, A. Ordine, "Definition of a general
and intuitive loss model for packet networks and its implementation
in the Netem module in the Linux kernel"

Fixes: a6e2fe17eba4 ("sch_netem: replace magic numbers with enumerate")
Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/sch_netem.c

index ecbb10d..ed4ccef 100644 (file)
@@ -208,17 +208,17 @@ static bool loss_4state(struct netem_sched_data *q)
         * next state and if the next packet has to be transmitted or lost.
         * The four states correspond to:
         *   TX_IN_GAP_PERIOD => successfully transmitted packets within a gap period
-        *   LOST_IN_BURST_PERIOD => isolated losses within a gap period
-        *   LOST_IN_GAP_PERIOD => lost packets within a burst period
-        *   TX_IN_GAP_PERIOD => successfully transmitted packets within a burst period
+        *   LOST_IN_GAP_PERIOD => isolated losses within a gap period
+        *   LOST_IN_BURST_PERIOD => lost packets within a burst period
+        *   TX_IN_BURST_PERIOD => successfully transmitted packets within a burst period
         */
        switch (clg->state) {
        case TX_IN_GAP_PERIOD:
                if (rnd < clg->a4) {
-                       clg->state = LOST_IN_BURST_PERIOD;
+                       clg->state = LOST_IN_GAP_PERIOD;
                        return true;
                } else if (clg->a4 < rnd && rnd < clg->a1 + clg->a4) {
-                       clg->state = LOST_IN_GAP_PERIOD;
+                       clg->state = LOST_IN_BURST_PERIOD;
                        return true;
                } else if (clg->a1 + clg->a4 < rnd) {
                        clg->state = TX_IN_GAP_PERIOD;
@@ -227,24 +227,24 @@ static bool loss_4state(struct netem_sched_data *q)
                break;
        case TX_IN_BURST_PERIOD:
                if (rnd < clg->a5) {
-                       clg->state = LOST_IN_GAP_PERIOD;
+                       clg->state = LOST_IN_BURST_PERIOD;
                        return true;
                } else {
                        clg->state = TX_IN_BURST_PERIOD;
                }
 
                break;
-       case LOST_IN_GAP_PERIOD:
+       case LOST_IN_BURST_PERIOD:
                if (rnd < clg->a3)
                        clg->state = TX_IN_BURST_PERIOD;
                else if (clg->a3 < rnd && rnd < clg->a2 + clg->a3) {
                        clg->state = TX_IN_GAP_PERIOD;
                } else if (clg->a2 + clg->a3 < rnd) {
-                       clg->state = LOST_IN_GAP_PERIOD;
+                       clg->state = LOST_IN_BURST_PERIOD;
                        return true;
                }
                break;
-       case LOST_IN_BURST_PERIOD:
+       case LOST_IN_GAP_PERIOD:
                clg->state = TX_IN_GAP_PERIOD;
                break;
        }