Times in STP packets are expressed in units of 1/256 of a second.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
const void *ll_source __unused,
unsigned int flags __unused ) {
struct stp_bpdu *stp;
- unsigned int timeout;
+ unsigned int hello;
int rc;
/* Sanity check */
"forwarding\n",
netdev->name, eth_ntoa ( stp->sender.mac ),
ntohs ( stp->port ), stp->flags );
- timeout = ( ntohs ( stp->hello ) * TICKS_PER_SEC * 2 );
- netdev_link_block ( netdev, timeout );
+ hello = ( ( ntohs ( stp->hello ) * TICKS_PER_SEC ) / 256 );
+ netdev_link_block ( netdev, ( hello * 2 ) );
rc = -ENETUNREACH;
goto done;
}