[stp] Fix interpretaton of hello time

Times in STP packets are expressed in units of 1/256 of a second.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
pull/37/head
Michael Brown 2015-06-25 17:30:12 +01:00
parent fb28c4a979
commit 94dbfb4374
1 changed files with 3 additions and 3 deletions

View File

@ -65,7 +65,7 @@ static int stp_rx ( struct io_buffer *iobuf, struct net_device *netdev,
const void *ll_source __unused,
unsigned int flags __unused ) {
struct stp_bpdu *stp;
unsigned int timeout;
unsigned int hello;
int rc;
/* Sanity check */
@ -110,8 +110,8 @@ static int stp_rx ( struct io_buffer *iobuf, struct net_device *netdev,
"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;
}