- * <table>
- * <tr>
- * <td><b>Case</b></td>
- * <td><b>Base wait</b></td>
- * <td><b>Wait window</b></td>
- * <td><b>Description</b></td>
- * </tr>
- * <tr>
- * <td>Forwarding</td>
- * <td>Immediate</td>
- * <td>Immediate</td>
- * <td>When the ForwardingEngine receives a packet to forward and it is not
- * already sending a packet (queue is empty). In this case, it immediately
- * forwards the packet.</td>
- * </tr>
- * <tr>
- * <td>Success</td>
- * <td>SENDDONE_OK_OFFSET</td>
- * <td>SENDDONE_OK_WINDOW</td>
- * <td>When the ForwardingEngine successfully sends a packet to the next
- * hop, it waits this long before sending the next packet in the queue.
- * </td>
- * </tr>
- * <tr>
- * <td>Ack Failure</td>
- * <td>SENDDONE_NOACK_OFFSET</td>
- * <td>SENDDONE_NOACK_WINDOW</td>
- * <td>If the link layer supports acks and the ForwardingEngine did not
- * receive an acknowledgment from the next hop, it waits this long before
- * trying a retransmission. If the packet has exceeded the retransmission
- * count, ForwardingEngine drops the packet and uses the Success timer instead. </td>
- * </tr>
- * <tr>
- * <td>Loop Detection</td>
- * <td>LOOPY_OFFSET</td>
- * <td>LOOPY_WINDOW</td>
- * <td>If the ForwardingEngine is asked to forward a packet from a node that
- * believes it is closer to the root, the ForwardingEngine pauses its
- * transmissions for this interval and triggers the RoutingEngine to
- * send an update. The goal is to let the gradient become consistent before
- * sending packets, in order to prevent routing loops from consuming
- * bandwidth and energy.</td>
- * </tr>
- * </table>
+ * <p>While this implementation can work on top of a variety of link estimators,
+ * it is designed to work with a 4-bit link estimator (4B). Details on 4B can
+ * be found in the HotNets paper "Four Bit Link Estimation" by Rodrigo Fonseca
+ * et al. The forwarder provides the "ack" bit for each sent packet, telling the
+ * estimator whether the packet was acknowledged.</p>