[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] [PATCH] bugfix: virNetDevBridgeSetSTPDelay on BSD



  Daniel P. Berrange wrote:

> On Sat, Jun 22, 2013 at 06:01:17PM +0400, Roman Bogorodskiy wrote:
> > virNetDevBridgeSetSTPDelay accepts delay in milliseconds,
> > but BSD implementation was expecting seconds. Therefore,
> > it was working correctly only with delay == 0.
> > ---
> >  src/util/virnetdevbridge.c | 5 +++--
> >  1 file changed, 3 insertions(+), 2 deletions(-)
> > 
> > diff --git a/src/util/virnetdevbridge.c b/src/util/virnetdevbridge.c
> > index ffcb4a4..9d95374 100644
> > --- a/src/util/virnetdevbridge.c
> > +++ b/src/util/virnetdevbridge.c
> > @@ -593,10 +593,11 @@ int virNetDevBridgeSetSTPDelay(const char *brname,
> >                                 int delay)
> >  {
> >      struct ifbrparam param;
> > +    u_long delay_seconds = delay / 1000;
> >  
> >      /* FreeBSD doesn't allow setting STP delay < 4 */
> > -    delay = delay < 4 ? 4 : delay;
> > -    param.ifbrp_fwddelay = ((u_long)delay) & 0xff;
> > +    delay_seconds = delay_seconds < 4 ? 4 : delay_seconds;
> > +    param.ifbrp_fwddelay = delay_seconds & 0xff;
> >  
> >      if (virNetDevBridgeCmd(brname, BRDGSFD, &param, sizeof(param)) < 0) {
> >          virReportSystemError(errno,
> 
> ACK.
> 
> 
> Does FreeBSD really not allow setting a delay less than 4 seconds ?
> That would make PXE boot fairly unreliable, because QEMU will start
> and iPXE will run significantly before that 4 second network delay
> has expired causing the PXE packets to be lost.

Yes, it doesn't. Quoting ifconfig(8):

fwddelay seconds
  Set the time that must pass before an interface begins
  forwarding packets when Spanning Tree is enabled.  The default
  is 15 seconds.  The minimum is 4 seconds and the maximum is 30 seconds.

Roman Bogorodskiy

Attachment: pgpE27A1uijob.pgp
Description: PGP signature


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]