## 4 Proposed Solution
### Schedule Constraints  
We introduce integer decision variable \(\varphi[k,i,j]\in[0,f_{k}.prd]\), which is the offset of the time slot occupied by \(f_{k}\) in the first cycle with respect to the zero time slot on link \((v_{i},v_{j})\). Another integer variable \(\omega[k,i,j]\in[0,\frac{\varv_{s,pred}^{i}(v_{j})}{f_{1}.prd}-1]\) is the offset of the transmission window, which is the positive integer multiple of the flow period \(f_{k}.prd\). Hence, we can locate time slot position at the beginning of the transmission of the flow \(f_{i}\) on link \((v_{i},v_{j})\) as \(ts[k,i,j]=\varphi[k,i,j]+\omega[k,i,j]\times f_{k}.prd\). We denote \(TS\triangleq\{ts[k,i,j]|f_{k}\in F,(v_{i},v_{j})\in R_{k}\}\). To ensure that the constraints on scheduling decision variable work when link \((v_{i},v_{j})\) is occupied by flow \(f_{k}\), the basic constraint is  
\[\varphi[k,i,j]\leq M_{1}\times r[k,i,j],\forall f_{i}\in F,\forall(v_{a},v_{b })\in E \tag{12}\]  
where \(M_{1}\) is an arbitrary but sufficiently large constant.  
**Contention Constraints:** To achieve zero congestion transmission, it is required that all assigned time slots are nonoverlapping. For any two flows \(f_{m},f_{k}\), no flow can be sent to the same link at the same time, otherwise, a conflict occurs. The forward time of outgoing ports of each switch does not conflict. We have the condition  
\[\forall f_{m},f_{k}\in F(m\
eq k),\ \forall(v_{i},v_{j})\in E,r[m,i,j] +r[k,i,j]\geq 2:\] \[\varphi[m,i,j]+\omega[m,i,j]\times f_{m}.prd\geq\varphi[k,i,j]+ \omega[k,i,j]\times f_{k}.prd+f_{k}.td,\] \[\textbf{or}\quad\varphi[k,i,j]+\omega[k,i,j]\times f_{k}.prd \geq\varphi[m,i,j]+\omega[m,i,j]\times f_{m}.prd+f_{m}.td. \tag{13}\]  
**Transmission Cycle Constraints:** The flow must be transmitted during its cycle and cannot be confused with the next cycle. The transmission start time of the flow \(f_{k}\) on the link \(v_{i},v_{j}\) is constrained by:  
\[\forall f_{k}\in F,\forall(v_{i},v_{j})\in R_{k}: \tag{14}\] \[0\leq\varphi[k,i,j]\leq f_{k}.prd-f_{k}.td,\]  
\[\forall f_{k}\in F,\forall(v_{i},v_{j})\in R_{k}: \tag{15}\] \[\varphi[k,i,j]+\omega[k,i,j]\leq M\times r[k,i,j]\]  
Equation (16) ensures that \(\varphi[k,i,j]\) and \(\omega[k,i,j]\) are invalid when the link \((v_{i},v_{j})\) is not reserved for flow \(f_{k}\).  
**Path Order Constraints:** Only when the flow is received by the current node, the previous node can start to transmit the next flow. Hence, the constraint is  
\[\forall f_{k}\in F,\forall(v_{x},v_{y}),(v_{y},v_{z})\in R_{k}: \tag{16}\] \[\varphi_{k,y,z}\geq\varphi_{k,x,y}+f_{k}.D-M\times(1-r[k,y,z])\]  
where \(f_{k}.D\) is the one-hop delay of flow \(f_{k}\), i.e., \(f_{k}.D=f_{k}.td+d_{prop}+d_{proc}\). This inequality is meaningful only when the flow \(f_{k}\) passes through the link \((v_{y},v_{z})\), i.e., \(r[k,y,z]=1\).  
**No-wait Forwarding Constraints:** We assume that each switch forwards a data frame immediately after it is received, while satisfying the path constraint above.  
\[\forall f_{k}\in F,\forall(v_{x},v_{y}),(v_{y},v_{z})\in R_{i}: \tag{17}\] \[\varphi_{k,y,z}+\omega_{k,y,z}\times f_{k}.prd=\varphi_{k,x,y}+ \omega_{k,x,y}\times f_{k}.prd+f_{k}.td\]