From 94dbfb43746445e91e775c498db89392313934c7 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Thu, 25 Jun 2015 17:30:12 +0100 Subject: [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 --- src/net/stp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/net/stp.c b/src/net/stp.c index cafb6b8e..d4e65a1a 100644 --- a/src/net/stp.c +++ b/src/net/stp.c @@ -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; } -- cgit