All of lore.kernel.org
 help / color / mirror / Atom feed
* [Bridge] delay in bridge learning when forward delay is 0
@ 2008-09-18 19:33 Uli Luckas
  2008-09-24 11:57 ` Uli Luckas
  0 siblings, 1 reply; 6+ messages in thread
From: Uli Luckas @ 2008-09-18 19:33 UTC (permalink / raw)
  To: bridge

Hi,
In July 2007 Philip Craig reported the following issue with 'forward delay'=0 
in great detail without receiving an answer. Has Philip's message got lost or 
was his analysis wrong?
The problem becomes a real problem if you bridge a fast LAN to a slow port 
like a bluetooth pan for example.


https://lists.linux-foundation.org/pipermail/bridge/2007-July/005476.html
Philip Craig philipc at snapgear.com 
> Hi,
>
> If you set the bridge forward delay to 0 with:
>         brctl setfd br0 0
> then the bridge does not learn addresses for the first 20 seconds,
> and so it floods everything during this time.
>
> The reason for this is that hold_time() returns 0 after a topology
> change, br_fdb_update() is a no-op if hold_time() is 0 (so that
> 'brctl setmaxage br0 0' can be used to disable learning), and the
> topology change flag isn't cleared for max_age seconds, so nothing
> is learnt during that time.
>
> It seems that the intent of hold_time() is to expire entries that are
> older than forward_delay seconds at the time of the topology change,
> which it does, but then it keeps on checking this expiry again for
> max_age seconds, and bases these checks on the current time rather
> than the time of the change.
>
> A quick fix for the forward delay 0 case would be to skip the
> topology change check if stp is disabled, but if I understand things
> correctly then the expiry isn't right for non-zero cases either.

^ permalink raw reply	[flat|nested] 6+ messages in thread
* [Bridge] delay in bridge learning when forward delay is 0
@ 2007-07-09  7:50 Philip Craig
  0 siblings, 0 replies; 6+ messages in thread
From: Philip Craig @ 2007-07-09  7:50 UTC (permalink / raw)
  To: bridge

Hi,

If you set the bridge forward delay to 0 with:
	brctl setfd br0 0
then the bridge does not learn addresses for the first 20 seconds,
and so it floods everything during this time.

The reason for this is that hold_time() returns 0 after a topology
change, br_fdb_update() is a no-op if hold_time() is 0 (so that
'brctl setmaxage br0 0' can be used to disable learning), and the
topology change flag isn't cleared for max_age seconds, so nothing
is learnt during that time.

It seems that the intent of hold_time() is to expire entries that are
older than forward_delay seconds at the time of the topology change,
which it does, but then it keeps on checking this expiry again for
max_age seconds, and bases these checks on the current time rather
than the time of the change.

A quick fix for the forward delay 0 case would be to skip the
topology change check if stp is disabled, but if I understand things
correctly then the expiry isn't right for non-zero cases either.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2008-10-14  9:36 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-18 19:33 [Bridge] delay in bridge learning when forward delay is 0 Uli Luckas
2008-09-24 11:57 ` Uli Luckas
2008-10-13 16:04   ` Uli Luckas
2008-10-13 18:10     ` Stephen Hemminger
2008-10-14  9:36       ` Uli Luckas
  -- strict thread matches above, loose matches on Subject: below --
2007-07-09  7:50 Philip Craig

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.