Abstract
Performing flow control inside a network can effectively avoid packet loss due to buffer overflow in switches. IEEE 802.1Qbb Priority-based Flow Control (PFC) exercises a scheme to achieve this goal. But it still suffers from several serious problems such as congestion spreading, deadlock, and packet loss.
In this work, we propose a Per-hop per-Flow Flow Control scheme (PFFC) to avoid all of these problems. We design, implement, and evaluate the performance of PFFC in P4 hardware switches. Experimental results show that
- PFFC outperforms PFC in many aspects including avoiding congestion spreading, deadlock, and packet loss
- The bandwidth overhead of PFFC is only slightly higher than that of PFC.
Design and Implementation
Our design and implementation including 3 main mechanisms: (1) Per-flow buffer usage accounting, (2) Per-flow control frames generation and (3) Per-flow control frames reaction
- Per-flow Buffer Usage Accounting
Fig. 1 illustrates the process of per-flow buffer usage accounting. When a packet enter IMAP (Ingress Match Action Pipeline), the FBU (Per-flow Buffer Usage) and PBU (Packet Buffer Usage) counters are incremented by the packet size respectively. When a packet is cloned in EMAP (Egress Match Action Pipeline), PFFC recirculate (re-enter IMAP) the cloned packet for decrement the FBU and PBU counters.
Fig. 1: The per-flow buffer usage accounting in PFFC
- Per-flow Control Frames Generation
If the FBU or PBU counter triggers the given threshold Xoff / Xon , a PAUSE/RESUME frame and a MIGRATE/MIGRATE-BACK frame will be generated and sent to upstream.
- Per-flow Control Frames Reaction
As shown in Fig. 2, if a flow is not paused, we direct its packet the DEQ (Default Egress Queue). When the node receives PAUSE frame, it pauses a PEQ (Paused Egress Queue). The MIGRATE frame directs the flow which is to be paused to a PEQ. When the node receives RESUME frame, it resumes a PEQ, The MIGRATE-BACK frame redirect the paused flow to DEQ.
Fig. 2: The DEQ and PEQs in an output port in PFFC
Contributions
- PFFC avoids many serious problems in PFC such as congestion spreading, deadlock and packet loss.
- In addition, the average flow completion time of mice flows in PFFC is shorter than that in PFC.
- The bandwidth overhead of PFFC is only slightly higher than that of PFC.
- PFFC is a good candidate scheme to be used for losses networks.
Publication: S.Y. Wang, Y.R. Chen, H.C. Hsieh, R.S. Lai, and Y.B. Lin, “A Flow Control Scheme based on Per Hop and Per Flow in Commodity Switches for Lossless Networks,” IEEE Access, Volume 9, pages 156013-166029, 2021. (Digital Object Identifier: 10.1109/ACCESS.2021.3129595)