data structures are cleared. This pseudo-code demonstrates what happens if a control frame/packet is overheard by a node $i$ and how from specific packets we extract information that is useful for channel estimation. The main characteristic of the algorithm is that it leverages the existing RTS/CTS mechanism as many cooperative protocols do [@coopmac; @laneman04] and in addition the *clear-to-cooperate* (CTC) message that is introduced in this paper. The precise rules for overhearing and channel estimation are as follows: (1) The first requirement is that all nodes should overhear RTS messages regardless of whether the transmission is intended for them or not and estimate the channel between the transmitting node and themselves (line 3 in the algorithm). (2) All nodes should overhear the CTC message transmissions of their neighbors. Each node should maintain a data structure that it should contain the nodes and the associated relay that were involved in an overheard COOP or ANC-OL transmission. This data structure is named $\mathbf{anfl}$ in the algorithm and its organization can be seen in Table \[tab1\]. Furthermore, this data structure should be updated continuously with more recent information that is extracted from overheard CTC messages (lines 23-30 in the algorithm), and its size 