[rbridge] draft protocol-10 WGLC Maximum Bridge Transit Delay
Anoop Ghanwani
anoop at brocade.com
Mon Dec 1 18:20:04 PST 2008
I think it may be worth adding it as a MAY (or even a SHOULD).
Bridges do actually implement this and it can happen due to
starvation of service, either because of strict priority
queueing (as pointed out by Donald) or because link-level
flow control such as 802.3x is in use.
For routers, according to RFC 1812
When a router forwards a packet, it MUST reduce the TTL by at least
one. If it holds a packet for more than one second, it MAY decrement
the TTL by one for each second.
We know how many people implement the optional part :-),
but at least the issue is discussed.
Anoop
> -----Original Message-----
> From: rbridge-bounces at postel.org
> [mailto:rbridge-bounces at postel.org] On Behalf Of Donald Eastlake
> Sent: Monday, December 01, 2008 9:55 AM
> To: James Carlson
> Cc: Developing a hybrid router/bridge.
> Subject: Re: [rbridge] draft protocol-10 WGLC Maximum Bridge
> Transit Delay
>
> Hi Jim,
>
> On Mon, Dec 1, 2008 at 9:15 AM, James Carlson
> <james.d.carlson at sun.com> wrote:
> > Donald Eastlake writes:
> >> > Do modern bridges actually _implement_ such a feature,
> or do they just
> >> > have a knob labeled "Maximum Bridge Transit Delay"
> that's connected to
> >> > nothing underneath?
> >>
> >> It is my impression that low end 802.1D bridges don't
> implement this
> >> but mid and high end 802.1Q bridges do. Typically, when a frame is
> >> received, a control block is created with the VLAN,
> priority, time of
> >> receipt, and other control information. When a frame is
> de-queued for
> >> transmission, the time is checked and frame discarded if it is too
> >> old. This time check doesn't need to be, and probably
> isn't, extremely
> >> accurate.
> >
> > Under what conditions would that be expected to happen?
>
> Actually, I think I may have misstated what happens as you would want
> old frames discarded that were just sitting around in a queue, not
> just when they were de-queued.
>
> All you need is enough higher priority frames and low priority ones
> could be queued forever even with no link ever going down and no flow
> control impediments.
>
> > I suspect that one good reason to avoid bothering with such
> a feature
> > on high-end switches is that the amount of buffering
> required to reach
> > a 1 second delay at high line rates becomes prohibitive -- in other
> > words, you'll ordinarily drop on queue entry well before
> that happens
> > in all but pathological cases, so why bother caring?
>
> Hummm, it's not clear to me what the resolution of the maximum transit
> delay is... although 1 second is the default, the resolution could be
> small allowing it to be set to some number of milliseconds or
> something...
>
> As above, you could have a stream of, say, 1 Gbps higher priority
> frames going from port 1 to port 3 and one lower priority frame for
> port 3 that drifts in port 2 and this poor low priority frame could
> just sit in a queue for days and then pop out due to a hiccup in the
> high priority stream. I won't argue if you want to call that
> pathological but it doesn't seem good that it could happen.
>
> >> > I'm inclined to say "no" to this, just on the basis that
> I cannot see
> >> > how it would serve any real purpose. It looks like a
> spec for the
> >> > sake of a spec.
> >>
> >> In bridges, I think it is required to back up the assurances of
> >> Spanning Tree Protocol. I think bridges also flush the output queue
> >> and any input queue associated with a port when the port goes down.
> >> Generally, it seems like good hygiene not to keep a frame
> for a long
> >> time and then release it...
>
> (As I recall, the 802.1 bridging model does not really admit that
> input queues can exist so any frame in an input queue is logically
> considered not to have been received yet by the bridge...)
>
> > We're not using STP here, though, so we don't need to back up its
> > assurances.
>
> The specific provisions in 802.1D-2004 include :
> "6.3.6 Frame lifetime
> The MAC Service mandates an upper bound to the transit delay
> experienced for a particular instance of
> communication. This maximum frame lifetime is necessary to ensure the
> correct operation of higher layer
> protocols. ..."
>
> "7.1.1 Relay
> A MAC Bridge relays individual MAC user data frames between the
> separate MACs of the bridged LANs
> connected to its Ports. The functions that support relaying frames and
> maintain QoS are as follows:
> ...
> l) Frame discard to ensure that a maximum bridge transit delay is not
> exceeded (6.3.6).
> ..."
>
> "7.7.3 Queuing frames
> ...
> A frame queued for transmission on a Port shall be removed from that
> queue if that is necessary to ensure
> that the maximum bridge transit delay (6.3.6, Table 7-3) will not be
> exceeded at the time at which the frame
> would subsequently be transmitted.
> ..."
>
> Similar provisions appear in 802.1Q-2005.
>
> > As for avoiding a too-old release, I don't think that's
> easy to avoid
> > with modern hardware due to the funky 802 flow control
> mechanism. If
> > the other end is having trouble, you can end up with a really old
> > frame caught in your transmission craw. It'd require some fancy
> > footwork in most implementations I've seen to detect that
> sort of edge
> > case, reset, and restart.
> >
> >> It would certainly be easy enough to make this a SHOULD rather than
> >> being mandatory the way it is in 802.1, not that people seem to pay
> >> that much attention to what is mandatory in 802.1. But perhaps it
> >> really isn't necessary for RBridges... Anyone else have an
> opinion on
> >> this.
> >
> > That 'one second delay' smells to me too much like the old IP TTL
> > specification, and likely dates back to the same rules of thumb.
> >
> > I think that SHOULD is a fairly strong statement; it means that
> > implementors who choose not to implement that feature need to have a
> > clear explanation of why they don't, if they're going to
> try to follow
> > the spirit of the RFC. I don't think it ought to be a SHOULD unless
> > it's something that's required for interoperability in most
> cases, but
> > can be avoided in a few. As 2119 says:
> >
> > 3. SHOULD This word, or the adjective "RECOMMENDED", mean
> that there
> > may exist valid reasons in particular circumstances to ignore a
> > particular item, but the full implications must be understood and
> > carefully weighed before choosing a different course.
> >
> > Do RBridge implementors really need to weigh the pros and cons of
> > implementing the delay time check in order to achieve
> > interoperability?
> >
> > MAY is closer to the intent of saying, "here's something
> that's common
> > in this field and that may be helpful in an implementation, but that
> > is not known to be required for the sake of interoperability of
> > RBridges."
>
> Well, I'm OK with saying MAY. Since this is described in the 802.1
> standards as being in the port output queue behavior, and since we now
> incorporate that by reference unless we say otherwise, one could argue
> that it is mandatory under the current draft. Unless people weigh in
> with other opinions, I'll change it to MAY.
>
> > James Carlson, Solaris Networking
> <james.d.carlson at sun.com>
> > Sun Microsystems / 35 Network Drive 71.232W Vox +1
> 781 442 2084
> > MS UBUR02-212 / Burlington MA 01803-2757 42.496N Fax +1
> 781 442 1677
>
> Thanks,
> Donald
> =============================
> Donald E. Eastlake 3rd +1-508-634-2066 (home)
> 155 Beaver Street
> Milford, MA 01757 USA
> d3e3e3 at gmail.com
> _______________________________________________
> rbridge mailing list
> rbridge at postel.org
> http://mailman.postel.org/mailman/listinfo/rbridge
>
More information about the rbridge
mailing list