special backoff counter. The contention slot counter at a relay is set in terms of slots as $T_{RBKF}=(2\cdot N - \lfloor \widetilde{R} \cdot N \rfloor ) \cdot T_s$, where $N$ is the maximum value for the contention slots. The value of $N$ depends on the maximum allowed delay and it should be configured for the complete network during the initialization phase. What this formula does is that it allocates a smaller number of slots for nodes that can achieve the higher rate with any transmission mode[^5]. In this way the relay with the highest possible rate obtains the channel by minimizing the number of slots it has to wait before it transmits a CTC message. Other potential relays that overhear a transmitted CTC, can infer safely that another more optimal node will relay the impending transmission, and they simply stop the $T_{RBKF}$ timer. Now, the overhead in time slots that the proposed protocol introduces can now be easily derived from Fig. \[fig:relay-prioritization\] as follows: $$T_{OVHD}=T_{RTS}+2T_{CTS}+3T_{SIFS}+2T_{s}+T_{RBKF}.$$ After the $T_{RBKF}$ timer expires, the relay transmits a CTC message towards both nodes that should transmit concurrently (line 9 in the $relay\_overhear()$ subroutine of Fig. \[fig:canc-mac\]). CTC is essentially a CTS message that contains 