Subject: [rbridge] Shared VLAN learning: What is it and why should we care?

From: Radia.Perlman at sun.com (Radia Perlman)
Date: Wed, 28 Mar 2007 23:56:04 -0700

Hopefully this explanation will be clear enough for people to at least 
figure out whether we
are all talking about the same thing. Of course, feel free to correct me 
if my understanding is wrong.

First we need to understand what problem it is trying to solve. This is 
my understanding of that:

THE PROBLEM
------------------

Someone has a block of IP addresses to divvy up among
a set of different organizations. Let's say the address block has
100 addresses, and there are 4 organizations. One strategy might be
to give each organization 1/4 of the IP addresses each, and then 
possibly even
wind up having separate IP subnets (if the addresses can be assigned
to be in different prefixes).

The problem, though, is that you don't know in advance how many addresses
each organization will need. Perhaps even the IP address block is 
oversubscribed,
so that there are more potential switch ports than IP addresses, and you
just hope that not everyone connects at once (or if they do, they don't
get an IP address).

So we're going to allow basically random assignment of IP addresses
within the IP address block to each of the four organizations.

But you still want to keep the organizations separate, as in, they don't 
see each other's traffic. They
don't get bothered with each other's ARPs and so forth. And you don't 
want to change the IP nodes
(endnodes or routers)
to know anything funny is going on.

So you use VLANs to separate the communities. A particular port
on a switch/bridge in a L2 cloud
is configured as to what community the attached endnode belongs to, by
having it configured with a VLAN ID.

But you'd like all the IP nodes in the cloud, even though in different
communities, to share the same IP router, also possibly other services such
as the DHCP server. And we don't want the IP router
to have to know about the different communities. The IP router just
thinks the cloud is one big happy can't-we-all-just-get-along IP subnet.

But the bridges inside the L2 cloud have to somehow do two things:
a) enforce some sort of separation between the communities, and
b) allow them all to talk to the IP router.

So this is how they are doing this. Assign each of the 4 communities a 
VLAN ID, say
VLANs A, B, C, and D. Now what VLAN ID should the IP router belong to? 
You want it
to be able to talk to nodes in any of the VLANs {A, B, C, or D}.

The way this is done is to declare a VLAN group known as a FID (filtering
ID for those that want to see an acronym expanded -- personally, the
expansion of that acronym didn't help me understand what a FID is).
So a FID is a group of VLAN IDs, say Z, A, B, C, D, with one of the IDs,
say Z, being the "primary". The IP router that serves all the communities
(in this case, A, B, C, D) will be assigned to the "primary" VLAN, in 
this case, Z. Endnodes
will be in one of {A, B, C, D}. IP routers serving these communities will
be assigned VLAN Z.

To clarify, if there are n communities, there will be n+1 VLANs, one
for each of the communities, and one for the IP router(s) serving
the communities in that IP subnet.

Switches are configured to know that {Z, A, B, C, D} is a special 
grouping of VLANs, such
that something transmitted from a VLAN Z port goes to all ports in the 
group, i.e., all ports in
Z, A, B, C, and D. However, something transmitted from a VLAN A port 
goes only to ports in
VLAN A and VLAN Z. Something from VLAN B goes to ports in VLAN B and VLAN Z.

*************
Now a little quiz...

For those of you that are following-- and in case I actually have 
captured the concept,
let me ask a question.

How do two endnodes in the IP subnet talk to each other?
The first case is two endnodes in VLAN A, say S and D.
S, observing that D is in the same subnet, will ARP. Since D is in the 
same VLAN, it will receive
the ARP request, and respond. Everything works fine.

But how do two endnodes in different VLANs, but in the same IP address 
block communicate? S will
ARP, like before, because IP nodes are (blissfully) unaware of VLANs. 
The answer people tell me
is "in that case communication between S and D has to go through the IP 
router". OK. So how would
that work? The
answer I get is "the switch does proxy ARP on behalf of the IP router". 
I don't understand that. How does the
switch know *when* to proxy ARP? The switch doesn't necessarily know 
which VLAN node D is in.

*******************
Well, bravely continuing on...

Endnode MAC address learning is done by VLAN as before. If a frame is
received by bridge b on
port p, with source S, from VLAN A, then bridge b remembers that {S, 
VLAN A} is on port p.

Furthermore, a Z-tagged unicast frame is checked against the learning
tables of Z, A, B, C, D, to determine where to forward it. So if bridge 
b receives
a frame with
destination=D, bridge b checks for D in any of the VLANs Z, A, B, C, D, and
forwards accordingly.

&&&&&&&&&&&&&&&&&
So, that's how bridges work (I hope). So how would we support this 
functionality in
RBridges?

As it turns out, despite the complexity of the concept,
it will not be that difficult to support this with RBridges, and
even in a somewhat more optimal way, since RBridges can do multicast
filtering within the core rather that just at the final port.

RBridges, like bridges, would have to be configured with FIDs, i.e., 
VLAN groupings as described above.

Let's call a FID by the name of the "primary" VLAN; in our example, Z.

RB1 would be configured that FID Z = {Z, A,B,C, D}, where Z, A, B, C, D are
all 12-bit VLAN IDs.

To avoid requiring configuration of all RBridges with these FIDs, and
still allow multicast filtering, I propose we have RBridges advertise,
in their IS-IS core instance, FIDs that they are configured with. So at 
least one RBridge will say "Hey guys,
I think VLANs Z, A, B, C, and D form a FID with primary=Z" and the other 
RBridges will, I guess
believe him.

What to do if RB1 says that FID Z = {Z, A, B, C, D}, and RB2 says that
FID Z = {Z,A,D, F} is an interesting question, but at least there is
enough information to log an error. Lot of possibilities for overlapping 
FIDs, inconsistent FIDs, etc.
I assume all those will be errors. If there is a FID called "Z", then 
everyone better agree about what the
VLAN membership of Z is, and none of the VLANs in Z better be in any 
other FIDs.

Once there is a FID of {Z, A, B, C, D}, there will no longer be
a VLAN-A instance of IS-IS, or a VLAN-B instance of IS-IS, or C or D. 
Instead
the Z-instance will announce VLANs A, B, C, and D membership as well as 
VLAN Z membership.

The Z-instance of IS-IS will specify which MAC addresses are in which VLAN.
So, RB1 might announce, in the Z-instance, {Z; a, b, q, d, f},
{A; r, n, j}, {B; c, p, o, h}, {C; m,l}, {D;g, x, k}. The lower case 
letters are endnode MAC
addresses. The upper case letters are 12-bit VLAN IDs.

Multicast packets marked as VLAN Z (inner VLAN) will be sent to
all links in Z, A, B, C, or D. So the LSPs in the VLAN Z instance of 
IS-IS will
be delivered to all RBridges in Z, A, B, C, and D.

That way RBridges with ports in Z, A, B, C, and/or D will learn all the 
endnode addresses
in any of those VLANs (all the ports in FID Z).

If ingress RB1 is attached to Z, and receives a packet with
destination D tagged as Z, RB1 checks for D in VLANs A, B, C, D, and Z 
's endnode
membership. As soon as RB1 finds it, let's say, as reported by
RB2 as being in VLAN D, RB1 tunnels the packet in TRILL to RB2,
leaving the tag as Z. When RB2 decapsulates the packet, I assume it will
rewrite the inner VLAN tag from "Z" to "D".

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Conclusions:

The changes to the spec:

a) announce in the core instance, FIDs as a set of VLANs, the
first listed being the "primary".

b) multicast forwarding: if the packet is (inner) tagged with
the VLAN ID of a primary VLAN in a FID, forward the packet on
all in the links in the selected tree that lead to any of the VLANs
in the FID. If the packet is tagged with the VLAN ID of a non-primary
VLAN in a FID, forward the packet on all the ports that reach
links in either that VLAN or in the primary VLAN for that FID.

c) when ingressing a packet with destination D, tagged with a
VLAN tag of a primary VLAN in a FID, check the endnode information
for all the VLANs in the FID to determine the egress RBridge.

d) when ingressing a packet with destination D, tagged with
a VLAN tag of a secondary VLAN in a FID, check the endnode
information for exactly two VLANs; the one the packet is
currently tagged with, and the primary VLAN for that FID, to
determine the egress RBridge.

e) if two RBridges, in the core instance, report inconsistent FID 
membership, what should we do?

(Note: There was a fortune cookie program in Unix, one of the fortunes 
being "Never check for an error
condition that you don't know how to handle". For the record--I think 
that's a cute joke but really bad policy.).

Radia

---

From: sanjays at cisco.com (Sanjay Sane (sanjays))
Date: Thu, 29 Mar 2007 12:36:03 -0700

To answer your quiz: the "enhanced" proxy arp feature is to be supported
by the router, NOT by the switch. The enhancement is essentially to be
able to proxy arp for local hosts, i.e for those hosts which are on the
same subnet as the router interface. This is the "ip local proxy arp"
supported feature at least in Cisco implementations. 

This way, the L3 communication between the hosts belonging to different
secondary vlans, is achieved *only* via the router. i.e. if host ip-A
(vlan-A) wants to talk to ip-D (vlan-D), it would take 2 hops:
mac-A --> mac-router 
mac-router --> mac-D
I think we should preserve this behavior with rbridges. Changing the
vlans of the packet should NOT be done by rbridges, imo. 

-Sanjay

-----Original Message-----
From: rbridge-bounces at postel.org [mailto:rbridge-bounces at postel.org] On
Behalf Of Radia Perlman
Sent: Wednesday, March 28, 2007 11:56 PM
To: rbridge at postel.org
Subject: [rbridge] Shared VLAN learning: What is it and why should we
care?

Hopefully this explanation will be clear enough for people to at least
figure out whether we are all talking about the same thing. Of course,
feel free to correct me if my understanding is wrong.

THE PROBLEM
------------------

Someone has a block of IP addresses to divvy up among a set of different
organizations. Let's say the address block has 100 addresses, and there
are 4 organizations. One strategy might be to give each organization 1/4
of the IP addresses each, and then possibly even wind up having separate
IP subnets (if the addresses can be assigned to be in different
prefixes).

The problem, though, is that you don't know in advance how many
addresses each organization will need. Perhaps even the IP address block
is oversubscribed, so that there are more potential switch ports than IP
addresses, and you just hope that not everyone connects at once (or if
they do, they don't get an IP address).

But you still want to keep the organizations separate, as in, they don't
see each other's traffic. They don't get bothered with each other's ARPs
and so forth. And you don't want to change the IP nodes (endnodes or
routers) to know anything funny is going on.

So you use VLANs to separate the communities. A particular port on a
switch/bridge in a L2 cloud is configured as to what community the
attached endnode belongs to, by having it configured with a VLAN ID.

But you'd like all the IP nodes in the cloud, even though in different
communities, to share the same IP router, also possibly other services
such as the DHCP server. And we don't want the IP router to have to know
about the different communities. The IP router just thinks the cloud is
one big happy can't-we-all-just-get-along IP subnet.

So this is how they are doing this. Assign each of the 4 communities a
VLAN ID, say VLANs A, B, C, and D. Now what VLAN ID should the IP router
belong to? 
You want it
to be able to talk to nodes in any of the VLANs {A, B, C, or D}.

The way this is done is to declare a VLAN group known as a FID
(filtering ID for those that want to see an acronym expanded --
personally, the expansion of that acronym didn't help me understand what
a FID is).
So a FID is a group of VLAN IDs, say Z, A, B, C, D, with one of the IDs,
say Z, being the "primary". The IP router that serves all the
communities (in this case, A, B, C, D) will be assigned to the "primary"
VLAN, in this case, Z. Endnodes will be in one of {A, B, C, D}. IP
routers serving these communities will be assigned VLAN Z.

To clarify, if there are n communities, there will be n+1 VLANs, one for
each of the communities, and one for the IP router(s) serving the
communities in that IP subnet.

Switches are configured to know that {Z, A, B, C, D} is a special
grouping of VLANs, such that something transmitted from a VLAN Z port
goes to all ports in the group, i.e., all ports in Z, A, B, C, and D.
However, something transmitted from a VLAN A port goes only to ports in
VLAN A and VLAN Z. Something from VLAN B goes to ports in VLAN B and
VLAN Z.

*************
Now a little quiz...

For those of you that are following-- and in case I actually have
captured the concept, let me ask a question.

How do two endnodes in the IP subnet talk to each other?
The first case is two endnodes in VLAN A, say S and D.
S, observing that D is in the same subnet, will ARP. Since D is in the
same VLAN, it will receive the ARP request, and respond. Everything
works fine.

But how do two endnodes in different VLANs, but in the same IP address
block communicate? S will ARP, like before, because IP nodes are
(blissfully) unaware of VLANs. 
The answer people tell me
is "in that case communication between S and D has to go through the IP
router". OK. So how would that work? The answer I get is "the switch
does proxy ARP on behalf of the IP router". 
I don't understand that. How does the
switch know *when* to proxy ARP? The switch doesn't necessarily know
which VLAN node D is in.

*******************

Endnode MAC address learning is done by VLAN as before. If a frame is
received by bridge b on port p, with source S, from VLAN A, then bridge
b remembers that {S, VLAN A} is on port p.

Furthermore, a Z-tagged unicast frame is checked against the learning
tables of Z, A, B, C, D, to determine where to forward it. So if bridge
b receives a frame with destination=D, bridge b checks for D in any of
the VLANs Z, A, B, C, D, and forwards accordingly.

&&&&&&&&&&&&&&&&&

RB1 would be configured that FID Z = {Z, A,B,C, D}, where Z, A, B, C, D
are
all 12-bit VLAN IDs.

RBridges will, I guess
believe him.

The Z-instance of IS-IS will specify which MAC addresses are in which
VLAN.
So, RB1 might announce, in the Z-instance, {Z; a, b, q, d, f},
{A; r, n, j}, {B; c, p, o, h}, {C; m,l}, {D;g, x, k}. The lower case 
letters are endnode MAC
addresses. The upper case letters are 12-bit VLAN IDs.

The changes to the spec:

Radia

_______________________________________________
rbridge mailing list
rbridge at postel.org
http://mailman.postel.org/mailman/listinfo/rbridge

---

From: caitlinb at broadcom.com (Caitlin Bestler)
Date: Thu, 29 Mar 2007 13:02:51 -0700

rbridge-bounces at postel.org wrote:
> To answer your quiz: the "enhanced" proxy arp feature is to
> be supported by the router, NOT by the switch. The
> enhancement is essentially to be able to proxy arp for local
> hosts, i.e for those hosts which are on the same subnet as
> the router interface. This is the "ip local proxy arp"
> This way, the L3 communication between the hosts belonging to
> different secondary vlans, is achieved *only* via the router.
> i.e. if host ip-A
> I think we should preserve this behavior with rbridges.
> Changing the vlans of the packet should NOT be done by rbridges, imo.
> 
> -Sanjay
> 
> 
> 
I would agree that 'routing' between VLAN-A and VLAN-D
should only be done as a result of an explicitly created
'route', and that this is part of being a proxy ARP.

I don't see any real problem with an RBridge doing so,
as long as it only does so based on explicit instructions
from the network administrators. It definitely must not
just assume that it is ok to forward packets between
two VLANs based upon their both using the same subnet.

While this functionality is certainly more natural 
in a router, is there any reason to forbid explicitly
delegating this task to RBridges? It could save a few
hops on the end-to-end path.

---

From: sgai at nuovasystems.com (Silvano Gai)
Date: Thu, 29 Mar 2007 15:54:00 -0700

Caitlin,

inline

> Behalf Of Caitlin Bestler
> Sent: Thursday, March 29, 2007 1:03 PM
> To: Sanjay Sane (sanjays); Radia Perlman; rbridge at postel.org
> Subject: Re: [rbridge] Shared VLAN learning: What is it and why should
we
> hops on the end-to-end path.

Are we talking standards or products? Products can do whatever they
want, we don't care. IMHO the RBridge standard MUST NOT specify IP
routing functionality. IETF has already tons of standards in the IP
area.

-- Silvano

---

From: caitlinb at broadcom.com (Caitlin Bestler)
Date: Thu, 29 Mar 2007 15:57:37 -0700

Silvano Gai wrote:
>> From: rbridge-bounces at postel.org [mailto:rbridge-bounces at postel.org]
>> On Behalf Of Caitlin Bestler Sent: Thursday, March 29, 2007 1:03 PM
>>> To answer your quiz: the "enhanced" proxy arp feature is to be
>>> supported by the router, NOT by the switch. The enhancement is
>>> essentially to be able to proxy arp for local hosts, i.e for those
>>> hosts which are on the same subnet as the router interface. This is
>>> the "ip local proxy arp" supported feature at least in Cisco
>>> implementations. 
>>> 
>>> different secondary vlans, is achieved *only* via the router. i.e.
>>> if host ip-A (vlan-A) wants to talk to ip-D (vlan-D), it would take
>>> 2 hops: mac-A --> mac-router mac-router --> mac-D
>> I would agree that 'routing' between VLAN-A and VLAN-D should only be
>> done as a result of an explicitly created 'route', and that this is
>> part of being a proxy ARP. 
>> 
>> I don't see any real problem with an RBridge doing so, as long as it
>> only does so based on explicit instructions from the network
>> administrators. It definitely must not just assume that it is ok to
>> forward packets between two VLANs based upon their both using the
>> same subnet. 
>> 
>> While this functionality is certainly more natural in a router, is
>> there any reason to forbid explicitly delegating this task to
>> RBridges? It could save a few hops on the end-to-end path.
> 
> 
> Are we talking standards or products? Products can do
> whatever they want, we don't care. IMHO the RBridge standard
> MUST NOT specify IP routing functionality. IETF has already
> tons of standards in the IP area.
> 

It would probably be safe to mandate that the RBridge MUST NOT
forward from VLAN to VLAN, as part of its RBridge functionality.
If a *product* includes some additional non-RBRidge functionality
that would be fine. But I would not want language that implied 
that because you called your box an RBridge that you MUST NOT
include this feature in the same box.

---

From: dwcarder at doit.wisc.edu (Dale W. Carder)
Date: Thu, 29 Mar 2007 23:18:52 -0500

Comments inline:

On Mar 29, 2007, at 1:56 AM, Radia Perlman wrote:

> First we need to understand what problem it is trying to solve.

It may be helpful to read IEEE 802.1Q-2005, Annex B.1.3 Asymmetric VLANs

Also, similar problems (with different solutions, of course) are given
in RFC 3069 and also draft-sanjib-private-vlan-06.txt

TRILL sould allow one of those solutions in addition to allowing Shared
Vlan Learning as described in 802.1q.

I think the ideas behind this also somewhat remind me of ATM half- 
bridging.

> This is
> addresses
> (filtering
> communities

I think in the 802.1Q Shared Vlan Learning case, this is assumed not
to occur, or at least not by using bridges.  There are some other  
comments
in 802.1Q-2005 Annex B about constraints for using SVL's that might
apply.

> I don't understand that.

Cisco calls this feature "local-proxy-arp".  This feature makes the  
router
respond to *all* ARP requests on a subnet, and forward traffic  
between all
hosts on the subnet.

> How does the

This is the enhanced proxy-arp capable router's responsibility, not the
switch.

Off-list, Radia asked me

> a) why not just make them all one broadcast/multicast domain? What  
> exactly are people trying to
> accomplish by making them separate but still all able to talk?

Limit the size of the broadcast domain.  An example would be for  
large-scale
wireless networks, where irrelevant broadcasts eat up valuable airtime.

Another example for large-scale switched networks would be to  
separate what
would have been one gigantic spanning-tree domain into separate domains.

Dale

---

From: caitlinb at broadcom.com (Caitlin Bestler)
Date: Fri, 30 Mar 2007 10:58:31 -0700

> From: rbridge-bounces at postel.org 
> [mailto:rbridge-bounces at postel.org] On Behalf Of Radia Perlman
> Subject: [rbridge] Shared VLAN learning: What is it and why 
> should we care?
> 
> 
> 
> But how do two endnodes in different VLANs, but in the same 
> IP address block communicate? S will ARP, like before, 
> because IP nodes are (blissfully) unaware of VLANs. 
> is "in that case communication between S and D has to go 
> through the IP router". OK. So how would that work? The 
> switch know *when* to proxy ARP? The switch doesn't 
> necessarily know which VLAN node D is in.
> 

As others have already answered, the "switch" does not
forward the traffic between the two VLANs sharing the
same IP subnet, but rather some router-like ProxyARP
functionality.

This can be desirable/acceptable precisely because the
traffic is going through this L3-aware entity. The two
sub-groups may be willing to exchange traffic, but unwilling
to grant each other unchecked/unlogged/unfiltered access.
If the traffic can only be forwarded at L3 it is subject
to L3 firewalling/logging/etc.

While the same protocols did not apply, I recall a very
similar issue with traffic between cable modems. There was
no real reason to flat forbid such traffic, but it was 
definitely something that you did not want  to be handled
at the reflex/L2 layer where it could not be throttled/
logged/monitored/etc.

> membership, what should we do?

One way to avoid that would be for each RBridge to simply 
advertise which VIDs it forwarded to, and which additional
VIDs that its FIDs overlapped with. The first set determines
what it needs to know for forwarding purposes, the second
set determines what it needs to know for purposes of deleting
entries.

Expressed that way, there is no need for FIDs to be consistent.
At least for RBridge protocol purposes, consistency of FID
mapping is still highly desirable for the preservation of
network administrator sanity.

---

From: riw at cisco.com (Russ White)
Date: Fri, 30 Mar 2007 14:19:39 -0400

> I think VLANs Z, A, B, C, and D form a FID with primary=Z" and the other 

I'm trying to sort through this entire thing, and I wanted to ask:

1. The reason we'd want to configure this on all rbridges would be to
optimize traffic flow?

2. If 1 is true, and we didn't do the configuration on all rbridges, how
much less efficient would the rbridge network be?

3. Does this have a larger impact on multicast, or smaller?

:-)

Russ

---

From: sgai at nuovasystems.com (Silvano Gai)
Date: Fri, 30 Mar 2007 11:46:41 -0700

Radia,

Catching up with my emails, inline

... snip ...

> VLAN membership of Z is, and none of the VLANs in Z better be in any

Today bridges don't announce the association between VID and FID and I
am not sure why RBridges should act differently. There are many
combinations of FID to VID mapping that are perfectly compatible, for
example an RBridge may have more granularity than another RBridge.

> a VLAN-A instance of IS-IS, or a VLAN-B instance of IS-IS, or C or D.

The main purpose of the VLAN instance is learning of end-node MAC
addresses. This is always done on the VID, never on the FID. Therefore
IMHO it is incorrect to suppress the IS-IS VLAN instances.

I am even not sure what that means. In IVL there is a FID for each VID,
are we going to suppress all the VID?

Also consider that it is always legal to insert an IVL RBridge in a
network of RBridges that do SVL. How will the IVL Rbridge learn, if
there are no more per VLAN instances?

I repeat what I already said in a previous email: "... in bridges what
triggers learning is always the reception of a frame that has a {VID,
MAC-address} pair. The fact that the VID, on that particular bridge,
shares the FID with other VIDs is what causes shared learning. But
shared learning NEVER propagates. TRILL MUST NOT propagate shared
learning. IT MUST always propagate {VID, MAC-address}. Recipients may
decide to do individual or shared learning."

> rewrite the inner VLAN tag from "Z" to "D".

I don't see why this is necessary or useful.

> the VLAN ID of a primary VLAN in a FID,

The frames MUST always be tagged with the VLAN they belong to, not with
the primary VLAN.

-- Silvano

 forward the packet on

---

From: caitlinb at broadcom.com (Caitlin Bestler)
Date: Fri, 30 Mar 2007 12:15:03 -0700

> [mailto:rbridge-bounces at postel.org] On Behalf Of Russ White
> Sent: Friday, March 30, 2007 11:20 AM
> To: Radia Perlman
> Cc: rbridge at postel.org
> Subject: Re: [rbridge] Shared VLAN learning: What is it and 
> why should we care?
> 
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> 
> 
> > in their IS-IS core instance, FIDs that they are configured 
> with. So 
> > at least one RBridge will say "Hey guys, I think VLANs Z, 
> A, B, C, and 
> > D form a FID with primary=Z" and the other RBridges will, I guess 
> > believe him.
> 
> 1. The reason we'd want to configure this on all rbridges 
> would be to optimize traffic flow?
> 
> 2. If 1 is true, and we didn't do the configuration on all 
> rbridges, how much less efficient would the rbridge network be?
> 

No, I'd say that the purpose of this is to enable bridge that
do Shared Learning to also be RBridges.

The most recent drafts effectively block that, by only distributing
endnode discovery information within a VLAN. An RBridge that did shared
learning would need to know of updates not so that it could forward
packets to those addresses, but so that it could delete conflicting
uses of the same MAC address from its tables.

I believe there is a strong concensus that we do not want to forward
all endnode discovery updates to all RBridges on the presumption that
any of them could be doing shared learning. Since most bridges,
and presumably most RBridges, do Independent Learning this would
be an undesirable default.

That leaves, in my evaluation, two ways to deal with this issue.

One, you could simply state that the shared discovery information
assumes Independent Learning and effectively require all RBridges
to do independent learning (theoretically they could do shared
learning "locally" but then share information as though they were
independent, but that would be harder than just doing independent
learning). Essentially, go ahead and block it, but be explicit
about this restriction in the specification.

Two, you could include information in the RBridge advertisements
that lets you more accurately determine which RBridges require
which endnode discovery updates. For example, knowing VID to FID
mapping for each RBridge would definitely accomplish this. I
have suggested that a simpler listing of "additional VIDs" would
be sufficient. In either case the goal is not to send more unicast
or multicast traffic, merely to send more endnode discoveries.

Radia's email cites a scenario where migration of IP addresses
between VLANs is normal, and it is highly desirable that a given
IP and MAC Address be found in at most one of the VLANs. The
shared router's Proxy ARP wants to have a single location for
the IP address, not a current and a stale one. This is a
scenario that should be kept in mind. The other common motivation
for shared learning is even simpler to understand; 48-bit keys
are cheaper than 60-bit keys. If you have 48-bit keys, changing
to 60-bit keys can be more challenging that just adding functionality
by firmware/software. So there are motivations for having a global
MAC Address actually be global at both the usage and implementation
planes.

---

From: sgai at nuovasystems.com (Silvano Gai)
Date: Fri, 30 Mar 2007 13:26:20 -0700

Caitlin,

You say:

> endnode discovery information within a VLAN.

Can we agree that:
- FID is a concept internal to the box;
- FID is never present in any frame;
- The VID to FID mapping is internal to each box and potentially
different on different boxes;
- The VID to FID mapping is never propagated in today networks.

If we have agreed the previous, let's consider what triggers learning:
- In bridges the reception of a data frame with a {VID, MAC address}
pair;
- In Rbridges the reception of a per VLAN instance ISIS PDU that
contains a {VID, MAC address} pair.
I don't see any difference.

Both Rbridges and Bridges learn this information as SVL or IVL,
depending on their configuration. It is an internal decision of each
device. It is not something that is or must be propagated among devices.
Again, I don't see any difference.

The only caution is that an RBridge must only include in its ISIS
announcement the {VID, MAC address} pairs that it has learnt observing
traffic, not the ones that derives from its internal mapping of VIDs to
FIDs.

-- Silvano

---

From: caitlinb at broadcom.com (Caitlin Bestler)
Date: Fri, 30 Mar 2007 13:45:22 -0700

> From: Silvano Gai [mailto:sgai at nuovasystems.com] 
> Sent: Friday, March 30, 2007 1:26 PM
> To: Caitlin Bestler; Russ White; Radia Perlman
> Subject: RE: [rbridge] Shared VLAN learning: What is it and 
> why should we care?
> 
> Caitlin,
> 
> You say:
> 
> > 
> - The VID to FID mapping is internal to each box and 
> potentially different on different boxes;
> - In bridges the reception of a data frame with a {VID, MAC 
> address} pair;
> - In Rbridges the reception of a per VLAN instance ISIS PDU 
> that contains a {VID, MAC address} pair.

Following the lines of the example Radia posted, endnode IP J MAC X
was previously on VLAN A where RBridge S learned of its existence.

Now endnode IP J/MAC X is migrated to VLAN B where RBRidge T learns
of its existence. This is an extremely plausible scenario where VLANs
A and B represent logical functions within a company. Or it could be as
simple as someone carrying a laptop from a "secure" area to another
area within the same buildig.

Meanwhile, Router Z receives an incoming packet with destination IP J.
Since that is not in its ARP tables, it sends an ARP request. Both
RBridge S and RBridge T, acting as PRoxy ARPs, will answer.

What is Router Z supposed to do? If it just accepts both ARP responses
and only keeps the last one, it could easily forward the packet to
VLAN A and thereby cause the connection to ultimately drop.

The root cause of this problem is that RBridge T did not share its
discovery of IP J/MAC X with RBridge S, even though they are part
of the same FID.

This can be done with exposing VID/FID mappings on the wire. You
export an "discovery-only VID" list instead. But I do not see how it
can be done if discovery announcements are shared exclusively
within VIDs without exception.

---

From: sgai at nuovasystems.com (Silvano Gai)
Date: Fri, 30 Mar 2007 14:43:01 -0700

Caitlin,

inline

> From: Caitlin Bestler [mailto:caitlinb at broadcom.com]
> Sent: Friday, March 30, 2007 1:45 PM
> To: Silvano Gai; Russ White; Radia Perlman
> Subject: RE: [rbridge] Shared VLAN learning: What is it and why should
we
> Since that is not in its ARP tables, it sends an ARP request.

On which VLAN does the router Z send the request?
It must be either A or B. The way this is decided is a longest prefix
match on IP J that returns a directly connected sub-interface. The VLAN
associated to that sub-interface is the one on which the ARP is sent.
If it is A, S replies.
If it is B, T replies.

What am I missing?

Two more points:

1) An endnode cannot move from one VLAN to another keeping its IP
address (excluding the Private VLAN case that was not under discussion
when this thread about SVL started).

2) IMHO ARP proxy in Rbridges creates more corner cases of the problem
that it solves. In Dinesh presentation from 03 to 04 there was a slide
about making it optional and separating it to another draft.

-- Silvano

 Both

---

From: Radia.Perlman at sun.com (Radia Perlman)
Date: Sat, 31 Mar 2007 23:39:45 -0700

I don't understand a lot of what's being said on this thread, and I 
suspect everyone is
talking about subtly different solutions to a fairly esoteric set of 
somewhat related problems (sharing
an IP router, sharing addresses in an IP subnet, NAT'ting VLAN IDs, 
...). As Dale Carder mentioned,
and gave us some pointers, there are several somewhat overlapping 
proposals floating around the industry.
I believe there isn't a single cleanly stated problem, or a single 
cleanly statable solution.

So TRILL should do something. Whatever it is, I want to be able to 
understand what it is that RBridges should do.

But to answer Russ's questions (see at bottom of this note) -- the 
current RBridge protocol
spec assumes that *all* RBridges filter based on VLAN tag.
So an RBridge in the core, even if it doesn't attach to VLAN A, knows 
which other RBridges do. This
allows efficient distribution of VLAN A traffic, for instance, the IS-IS 
announcements of VLAN A endnode
information.

The reason we need to let all the RBridges know what VLANs are in a 
group, say {Z, A, B, C, D},
where Z is the primary, is so that an RBridge in
the core knows that something tagged with VLAN Z needs to be transmitted 
to all links in any of the
5 VLAN tags {Z, A, B, C, D} and something tagged with one of the 
secondaries, say A, needs to go to
A and Z.

An example -- suppose there is an IP router R on VLAN Z (the primary). 
When R does an ARP for an
endnode "d" in the IP subnet, R has no idea about VLANs, and the RBridge 
RB1 that R attaches to, although
RB1 might know that there's a grouping of VLANs, doesn't know which VLAN 
to transmit the ARP to.
Perhaps RB1 could duplicate broadcast packets tagged with Z, sending a 
copy to each of {Z, A, B, C, D}.

So RBridges in the core have to know to send the ARP along the 
distribution tree to all ports that are
in any of the VLANs in the set.

In theory we could ignore VLAN tags, except at the final hop, and then, 
as Russ said, it
would be just an optimization for the RBridges in the core to know about
the groupings. But I still think things would be weird
if the final RBridges had inconsistent configurations of the VLAN 
groupings, so I think it's a good idea to
make sure all the RBridges agree on the groupings.

To summarize, it's good for them to agree because of three reasons:
a) we can do optimal delivery of multicasts, filtering within the core 
rather than just at the final hop
b) we detect misconfiguration
c) we allow more central configuration (we don't need to configure all 
the RBridges, though that's a bit
dangerous if all the RBridges that have been configured go down, since 
suddenly the groupings might disappear)

Radia

>> 3. Does this have a larger impact on multicast, or smaller?

I don't understand the question, though given that he put a smiley face in, perhaps
it was a joke. I'm hoping that someone, tomorrow, will inform me that all this
SVL/FID stuff was a joke...

Radia

Russ White wrote:

>-----BEGIN PGP SIGNATURE-----
>Version: GnuPG v1.4.3 (Darwin)
>Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
>iD8DBQFGDVS6ER27sUhU9OQRAnbCAJ99um0k9+At9V+z97fksfH4gUVoGACgw7Mg
>DSuMdrc10XgRmx8w4PdN/f4=
>=ItDw
>-----END PGP SIGNATURE-----
>  
>

Date: Sat, 31 Mar 2007 23:39:45 -0700
From: Radia Perlman <[email-masked]>
To: Russ White <[email-masked]>
Cc: [email-masked]
Subject: Re: [rbridge] Shared VLAN learning: What is it and why should we care?
Status: RO
Content-Length: 4104

I don't understand a lot of what's being said on this thread, and I 
suspect everyone is
talking about subtly different solutions to a fairly esoteric set of 
somewhat related problems (sharing
an IP router, sharing addresses in an IP subnet, NAT'ting VLAN IDs, 
...). As Dale Carder mentioned,
and gave us some pointers, there are several somewhat overlapping 
proposals floating around the industry.
I believe there isn't a single cleanly stated problem, or a single 
cleanly statable solution.

So TRILL should do something. Whatever it is, I want to be able to 
understand what it is that RBridges should do.

But to answer Russ's questions (see at bottom of this note) -- the 
current RBridge protocol
spec assumes that *all* RBridges filter based on VLAN tag.
So an RBridge in the core, even if it doesn't attach to VLAN A, knows 
which other RBridges do. This
allows efficient distribution of VLAN A traffic, for instance, the IS-IS 
announcements of VLAN A endnode
information.

The reason we need to let all the RBridges know what VLANs are in a 
group, say {Z, A, B, C, D},
where Z is the primary, is so that an RBridge in
the core knows that something tagged with VLAN Z needs to be transmitted 
to all links in any of the
5 VLAN tags {Z, A, B, C, D} and something tagged with one of the 
secondaries, say A, needs to go to
A and Z.

An example -- suppose there is an IP router R on VLAN Z (the primary). 
When R does an ARP for an
endnode "d" in the IP subnet, R has no idea about VLANs, and the RBridge 
RB1 that R attaches to, although
RB1 might know that there's a grouping of VLANs, doesn't know which VLAN 
to transmit the ARP to.
Perhaps RB1 could duplicate broadcast packets tagged with Z, sending a 
copy to each of {Z, A, B, C, D}.

So RBridges in the core have to know to send the ARP along the 
distribution tree to all ports that are
in any of the VLANs in the set.

In theory we could ignore VLAN tags, except at the final hop, and then, 
as Russ said, it
would be just an optimization for the RBridges in the core to know about
the groupings. But I still think things would be weird
if the final RBridges had inconsistent configurations of the VLAN 
groupings, so I think it's a good idea to
make sure all the RBridges agree on the groupings.

To summarize, it's good for them to agree because of three reasons:
a) we can do optimal delivery of multicasts, filtering within the core 
rather than just at the final hop
b) we detect misconfiguration
c) we allow more central configuration (we don't need to configure all 
the RBridges, though that's a bit
dangerous if all the RBridges that have been configured go down, since 
suddenly the groupings might disappear)

Radia

>> 3. Does this have a larger impact on multicast, or smaller?

I don't understand the question, though given that he put a smiley face in, perhaps
it was a joke. I'm hoping that someone, tomorrow, will inform me that all this
SVL/FID stuff was a joke...

Radia

Russ White wrote:

>-----BEGIN PGP SIGNATURE-----
>Version: GnuPG v1.4.3 (Darwin)
>Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
>iD8DBQFGDVS6ER27sUhU9OQRAnbCAJ99um0k9+At9V+z97fksfH4gUVoGACgw7Mg
>DSuMdrc10XgRmx8w4PdN/f4=
>=ItDw
>-----END PGP SIGNATURE-----
>  
>

Content-class: urn:content-classes:message
Date: Fri, 30 Mar 2007 14:43:01 -0700
From: "Silvano Gai" <[email-masked]>
To: "Caitlin Bestler" <[email-masked]>, "Russ White" <[email-masked]>, "Radia Perlman" <[email-masked]>
Cc: [email-masked]
Subject: Re: [rbridge] Shared VLAN learning: What is it and why should we care?
Status: RO
Content-Length: 3377

Caitlin,

inline

> From: Caitlin Bestler [mailto:[email-masked]]
> Cc: [email-masked]
we
> > From: Silvano Gai [mailto:[email-masked]]
> > Cc: [email-masked]

What am I missing?

Two more points:

-- Silvano

 Both
> within VIDs without exception.

Content-class: urn:content-classes:message
Date: Fri, 30 Mar 2007 13:45:22 -0700
From: "Caitlin Bestler" <[email-masked]>
To: "Silvano Gai" <[email-masked]>, "Russ White" <[email-masked]>, "Radia Perlman" <[email-masked]>
Cc: [email-masked]
Subject: Re: [rbridge] Shared VLAN learning: What is it and why should we care?
Status: RO
Content-Length: 2232

> From: Silvano Gai [mailto:[email-masked]] 
> Cc: [email-masked]

Content-class: urn:content-classes:message
Date: Fri, 30 Mar 2007 13:26:20 -0700
From: "Silvano Gai" <[email-masked]>
To: "Caitlin Bestler" <[email-masked]>, "Russ White" <[email-masked]>, "Radia Perlman" <[email-masked]>
Cc: [email-masked]
Subject: Re: [rbridge] Shared VLAN learning: What is it and why should we care?
Status: RO
Content-Length: 1145

Caitlin,

Can we agree that:

-- Silvano

Content-class: urn:content-classes:message
Date: Fri, 30 Mar 2007 12:15:03 -0700
From: "Caitlin Bestler" <[email-masked]>
To: "Russ White" <[email-masked]>, "Radia Perlman" <[email-masked]>
Cc: [email-masked]
Subject: Re: [rbridge] Shared VLAN learning: What is it and why should we care?
Status: RO
Content-Length: 3528

> From: [email-masked] 
> [mailto:[email-masked]] On Behalf Of Russ White
> Cc: [email-masked]

Content-class: urn:content-classes:message
Date: Fri, 30 Mar 2007 11:46:41 -0700
From: "Silvano Gai" <[email-masked]>
To: "Radia Perlman" <[email-masked]>, <[email-masked]>
Subject: Re: [rbridge] Shared VLAN learning: What is it and why should we care?
Status: RO
Content-Length: 5130

Radia,

... snip ...

-- Silvano

 forward the packet on
> [email-masked]

Date: Fri, 30 Mar 2007 14:19:39 -0400
From: Russ White <[email-masked]>
To: Radia Perlman <[email-masked]>
Cc: [email-masked]
Subject: Re: [rbridge] Shared VLAN learning: What is it and why should we care?
Status: RO
Content-Length: 1034

:-)

Russ

Content-class: urn:content-classes:message
Date: Fri, 30 Mar 2007 10:58:31 -0700
From: "Caitlin Bestler" <[email-masked]>
To: "Radia Perlman" <[email-masked]>, [email-masked]
Subject: Re: [rbridge] Shared VLAN learning: What is it and why should we care?
Status: RO
Content-Length: 2270

> From: [email-masked] 
> [mailto:[email-masked]] On Behalf Of Radia Perlman
> To: [email-masked]

Date: Fri, 30 Mar 2007 13:32:51 -0400
From: Russ White <[email-masked]>
To: [email-masked]
Subject: Re: [rbridge] Last Call: draft-ietf-trill-routing-reqs (TRILL Routing Requirements in Support of RBridges) to Informational RFC
Status: RO
Content-Length: 1401

I have reviewed this draft, and it looks fine to move forward.

:-)

Russ

The IESG wrote:
> The IESG has received a request from the Transparent Interconnection of 
> Lots of Links WG (trill) to consider the following document:
> 
> - 'TRILL Routing Requirements in Support of RBridges '
>    <draft-ietf-trill-routing-reqs-02.txt> as an Informational RFC
> 
> The IESG plans to make a decision in the next few weeks, and solicits
> final comments on this action.  Please send substantive comments to the
> [email-masked] mailing lists by 2007-03-30. Exceptionally, 
> comments may be sent to [email-masked] instead. In either case, please 
> retain the beginning of the Subject line to allow automated sorting.
> 
> The file can be obtained via
> http://www.ietf.org/internet-drafts/draft-ietf-trill-routing-reqs-02.txt
> 
> 
> IESG discussion can be tracked via
> https://datatracker.ietf.org/public/pidtracker.cgi?command=view_id&dTag=15187&rfc_flag=0
> 
> [email-masked]

Date: Thu, 29 Mar 2007 23:18:52 -0500
From: "Dale W. Carder" <[email-masked]>
To: Radia Perlman <[email-masked]>
Cc: [email-masked]
Subject: Re: [rbridge] Shared VLAN learning: What is it and why should we care?
Status: RO
Content-Length: 10833

Comments inline:

Off-list, Radia asked me

Dale

Content-class: urn:content-classes:message
Date: Thu, 29 Mar 2007 15:57:37 -0700
From: "Caitlin Bestler" <[email-masked]>
To: "Silvano Gai" <[email-masked]>, "Sanjay Sane (sanjays)" <[email-masked]>, "Radia Perlman" <[email-masked]>, [email-masked]
Subject: Re: [rbridge] Shared VLAN learning: What is it and why should we care?
Status: RO
Content-Length: 2476

Silvano Gai wrote:
>> From: [email-masked] [mailto:[email-masked]]
>> To: Sanjay Sane (sanjays); Radia Perlman; [email-masked]
> why should
>> [email-masked] wrote:

Content-class: urn:content-classes:message
Date: Thu, 29 Mar 2007 15:54:00 -0700
From: "Silvano Gai" <[email-masked]>
To: "Caitlin Bestler" <[email-masked]>, "Sanjay Sane \(sanjays\)" <[email-masked]>, "Radia Perlman" <[email-masked]>, <[email-masked]>
Subject: Re: [rbridge] Shared VLAN learning: What is it and why should we care?
Status: RO
Content-Length: 2219

Caitlin,

inline

> From: [email-masked] [mailto:[email-masked]]
On
> To: Sanjay Sane (sanjays); Radia Perlman; [email-masked]
we
> care?
> 
> [email-masked] wrote:

-- Silvano

> [email-masked]

Content-class: urn:content-classes:message
Date: Thu, 29 Mar 2007 13:02:51 -0700
From: "Caitlin Bestler" <[email-masked]>
To: "Sanjay Sane (sanjays)" <[email-masked]>, "Radia Perlman" <[email-masked]>, [email-masked]
Subject: Re: [rbridge] Shared VLAN learning: What is it and why should we care?
Status: RO
Content-Length: 1435

Content-class: urn:content-classes:message
Date: Thu, 29 Mar 2007 12:36:03 -0700
From: "Sanjay Sane \(sanjays\)" <[email-masked]>
To: "Radia Perlman" <[email-masked]>, <[email-masked]>
Subject: Re: [rbridge] Shared VLAN learning: What is it and why should we care?
Status: RO
Content-Length: 10044

-Sanjay

-----Original Message-----
From: [email-masked] [mailto:[email-masked]] On
Behalf Of Radia Perlman
Sent: Wednesday, March 28, 2007 11:56 PM
To: [email-masked]
Subject: [rbridge] Shared VLAN learning: What is it and why should we
care?

THE PROBLEM
------------------

*************
Now a little quiz...

*******************

&&&&&&&&&&&&&&&&&

RBridges will, I guess
believe him.

The changes to the spec:

Radia

[email-masked]

Date: Wed, 28 Mar 2007 23:56:04 -0700
From: Radia Perlman <[email-masked]>
To: [email-masked]
Subject: [rbridge] Shared VLAN learning: What is it and why should we care?
Status: RO
Content-Length: 8929

THE PROBLEM
------------------

*************
Now a little quiz...

*******************

&&&&&&&&&&&&&&&&&

The changes to the spec:

Radia

Date: Wed, 28 Mar 2007 23:02:33 -0700
From: Radia Perlman <[email-masked]>
To: [email-masked]
Subject: [rbridge] I completely misunderstood what "shared VLAN learning" was
Status: RO
Content-Length: 1715

I took the words "shared VLAN learning" and came up with a concept
that could be described by those words. But that's not what IEEE 802 
means by those words.

Anyway, in my next email to the list, I will describe my current 
understanding of what it is, and how we can support
it with TRILL. If indeed people are deploying this feature in layer 2, I 
think TRILL should support it.

Anyway, it took a really long time for Dinesh to explain to me what 
shared 802-style VLAN learning actually is,
and I'm still not totally sure I understand it.
Especially since when I found other 802 types in the hallways during 
IETF to ask detailed questions, I got
inconsistent answers.  And especially because I still don't understand 
how a few things actually would
work.

And now a plea -- I'm not the only one that has been confused. I suspect 
a lot of people just gave
up on trying to understand the issue. If you don't understand an issue, 
it's OK to ask someone to
explain it.

And please -- the more IEEE 802 literate people on the mailing list
should try to make fewer assumptions about what
people on this mailing understand about 802 arcana. So for instance, 
most people (including me) didn't
know what a "FID" was. It's common for email threads to be 
incomprehensible because people really
are making different assumptions, and not understanding each other.

It's always a good idea to explain everything carefully, with limited 
jargon, to ensure that everyone is
talking about the same thing. Which we weren't, in the case of the 
"shared VLAN learning" thread.

Anyway, I'm sure you're all looking forward to my next message where the 
exciting concept of
"shared VLAN learning" will be revealed.

Radia

Content-class: urn:content-classes:message
Date: Thu, 22 Mar 2007 11:08:21 -0500
From: "Eric Gray \(LO/EUS\)" <[email-masked]>
To: "Dinesh G Dutt" <[email-masked]>
Cc: [email-masked], [email-masked], IETF-Announce <[email-masked]>
Subject: Re: [rbridge] Last Call: draft-ietf-trill-routing-reqs (TRILL Routing Requirements in Support of RBridges) to Informational RFC
Status: RO
Content-Length: 2384

Dinesh,

	Please see one more question below...

Thanks!

--
Eric Gray
Principal Engineer
Ericsson  

> From: Dinesh G Dutt [mailto:[email-masked]] 
> Sent: Wednesday, March 21, 2007 3:15 PM
> To: Eric Gray (LO/EUS)
> Cc: [email-masked]; [email-masked]; IETF-Announce
> Subject: Re: [rbridge] Last Call: 
> draft-ietf-trill-routing-reqs (TRILL Routing Requirements in 
> Support of RBridges) to Informational RFC
> 
> Hi Eric,
> 
> Eric Gray (LO/EUS) wrote:
> >>   - "Inefficient inter-bridge connection usage". What do you 
> >>     mean by this phrase?
> >>     
> >
> >   
> I guess my issue is the choice of words "inter-bridge 
> connection usage". 
> "connection" is undefined and not sure if it is the right word.
> > If traffic is demonstrably required to traverse more links
> > than some theoretical minimum, than link utilization is -
> > by definition - less efficient than it theoretically can
> > be.
> >   
> If this what you want to say, something along the lines of
"Non-optimal 
> pair-wise forwarding of unicast frames using spanning tree also
results 
> in inefficient usage of links" will be sufficient. However, I think
that 
> merely stating the lack of non-optimal pair-wise forwarding is
sufficient 
> to imply this and many other issues around this style.

I'm not sure how much clearer it is to say what you're suggesting
than what it already says.  However this is not critical text, so
what would you like it to say and where would you like it to go?

What I'm asking for is "replace text saying <$*%&(%)> with new text
saying <*$&*@(_&$&>"...

> >> What is proposed in the current solution is to run a spanning tree 
> >> protocol instance per port which maybe not scalable. 
> >>
> >> I think something like "It's strongly desirable to minimize the
> >> interaction between the bridges and Rbridges and constrain a 
> >> spanning tree" is more appropriate.
> >>     
> >
> > Yet it is difficult to imagine how this would translate to a 
> > requirement that would make sense to someone evaluating the 
> > acceptability of a routing protocol for the TRILL problem-space.
> > Perhaps it would be simpler to omit the offending text?
> >   
> OK with me.
> 
> Dinesh
> 
> -- 
> We make our world significant by the courage of our questions and by 
> the depth of our answers.                               - Carl Sagan
> 

Content-class: urn:content-classes:message
Date: Thu, 22 Mar 2007 09:02:23 -0400
From: "Eastlake III Donald-LDE008" <[email-masked]>
To: <[email-masked]>
Subject: [rbridge] WG Meeting Presentations Updated
Status: RO
Content-Length: 412

Several of the presentations given at the TRILL WG meeting yesterday
were updated in minor ways during the meeting while they were being
shown. These tweaked presentations have now been uploaded to the meeting
materials page:
https://datatracker.ietf.org/public/meeting_materials.cgi?meeting_num=68

(In particular, the Agenda, -02 to -03, Multicast Input Link Filtering,
and Extensions presentations.)

Donald

Date: Wed, 21 Mar 2007 22:26:16 -0700
From: Radia Perlman <[email-masked]>
To: [email-masked], [email-masked], [email-masked]
Subject: [rbridge] Making fields in TRILL's IS-IS bigger?
Status: RO
Content-Length: 822

There were some fields in IS-IS that, 40 years ago or whatever, we made 
too small. We actually
can change the size of fields for TRILL, right? How badly would that 
make it to adapt an implementation
of IS-IS to TRILL if we changed the size of:

a) fragment number (to 2 bytes presumable)
b) pseudonode extra byte (to 2 bytes?)

Actually, I don't think b) needs to be done, because all that matters is 
that the pseudonode have
a unique ID, not that the first 6 bytes have to be the same as the 
system ID of the DR. So the
DR could assign the pseudonode address to be its MAC address *on that 
link*, with
a final byte of 1. And so a single byte, as it is currently, shouldn't 
be a problem.

So the only example I can think of in this (insomniacal) moment is the 
fragment number.
Are there any other examples?

Radia

Date: Wed, 21 Mar 2007 12:15:07 -0700
From: Dinesh G Dutt <[email-masked]>
To: "Eric Gray (LO/EUS)" <[email-masked]>
Cc: [email-masked], [email-masked], IETF-Announce <[email-masked]>
Subject: Re: [rbridge] Last Call: draft-ietf-trill-routing-reqs (TRILL Routing Requirements in Support of RBridges) to Informational RFC
Status: RO
Content-Length: 1556

Hi Eric,

Eric Gray (LO/EUS) wrote:
>>   - "Inefficient inter-bridge connection usage". What do you 
>>     mean by this phrase?
>>     
>
>   
I guess my issue is the choice of words "inter-bridge connection usage". 
"connection" is undefined and not sure if it is the right word.
> If traffic is demonstrably required to traverse more links
> than some theoretical minimum, than link utilization is -
> by definition - less efficient than it theoretically can
> be.
>   
If this what you want to say, something along the lines of "Non-optimal 
pair-wise forwarding of unicast frames using spanning tree also results 
in inefficient usage of links" will be sufficient. However, I think that 
merely stating the lack of non-optimal pair-wise forwarding is 
sufficient to imply this and many other issues around this style.
>> What is proposed in the current solution is to run a spanning tree 
>> protocol instance per port which maybe not scalable. 
>>
>> I think something like "It's strongly desirable to minimize the
>> interaction between the bridges and Rbridges and constrain a 
>> spanning tree" is more appropriate.
>>     
>
> Yet it is difficult to imagine how this would translate to a 
> requirement that would make sense to someone evaluating the 
> acceptability of a routing protocol for the TRILL problem-space.
> Perhaps it would be simpler to omit the offending text?
>   
OK with me.

Dinesh

-- 
We make our world significant by the courage of our questions and by 
the depth of our answers.                               - Carl Sagan

Date: Wed, 21 Mar 2007 19:23:31 +0800
From: caowayne <[email-masked]>
To: "Eric Gray (LO/EUS)" <[email-masked]>, Dinesh G Dutt <[email-masked]>, [email-masked]
Cc: [email-masked], IETF-Announce <[email-masked]>
Subject: Re: [rbridge] Last Call: draft-ietf-trill-routing-reqs (TRILL	Routing Requirements in Support of RBridges) to Informational RFC
Status: RO
Content-Length: 7447

----- Original Message ----- 
From: "Eric Gray (LO/EUS)" <[email-masked]>
To: "Dinesh G Dutt" <[email-masked]>; <[email-masked]>
Cc: <[email-masked]>; "IETF-Announce" <[email-masked]>
Sent: Wednesday, March 21, 2007 6:48 PM
Subject: Re: [rbridge] Last Call: draft-ietf-trill-routing-reqs (TRILL Routing Requirements in Support of RBridges) to Informational RFC

> Dinesh,
> 
> Thank you for your comments.  Please see below...
> 
> Thanks!
> 
> --
> Eric Gray
> Principal Engineer
> Ericsson  
> 
>> From: [email-masked] 
>> [mailto:[email-masked]] On Behalf Of Dinesh G Dutt
>> Sent: Tuesday, March 20, 2007 10:33 PM
>> To: [email-masked]
>> Cc: [email-masked]; IETF-Announce
>> Subject: Re: [rbridge] Last Call: 
>> draft-ietf-trill-routing-reqs (TRILL Routing Requirements in 
>> Support of RBridges) to Informational RFC
>> 
>> I have a few comments on the document.
>> 
>> - Section 1, Bridging Limitations: The first two paragraphs are 
>> structured around the logic: because ethernet header doesn't have 
>> a TTL or a hop count, the only choice was to use spanning tree. 
>> IEEE 802.1 has defined several headers such as 802.1Q header that 
>> carries the VLAN. If they wanted to add a TTL, they could have. 
>> They picked spanning tree and said that therefore they didn't need 
>> a TTL.  To the extent this represents history, I think it is 
>> inaccurate. To the extent it attempts to explain the rationale for 
>> RBridges, it seems unnecessary. A sufficient replacement maybe 
>> along the lines of: 
>>
>> "Spanning Tree Protocol and its variants are the control protocol 
>> deployed in current 802.1D Ethernet bridges.  This protocol 
>> constructs a single tree out of a mesh of network connections. 
>> This tree eliminates usage of equal cost multipaths and results in 
>> non-optimal pair-wise forwarding."
>> 
> 
> This is a reasonable proposal for replacement text.  If there
> are no objections from the working group, or the IESG, I would
> be happy to make this change.
> 
> Thanks!
> 
>> - Section 1, Bridging Limitations: More specific comments:
>>   - "Because of the potential for severe impact from looping traffic, 
>>     many (if not most) current bridge implementations stop forwarding
>>     of traffic frames following a topology change event and restart 
>>     only after STP/RSTP is complete" is incorrect. All 802.1D bridges 
>>     allow (R/M)STP to complete before moving a port to forwarding 
>>     state. I'd remove the phrase in parentheses.
> 
> Good suggestion.  Assuming the same acceptance, I can make this
> change as well.
> 
>>   - "Inefficient inter-bridge connection usage". What do you 
>>     mean by this phrase?
> 
> I assume this is a reasonably well understood aspect of using
> a spanning tree as opposed to using shortest path routing.
> 
> It is not difficult to come up with a reasonable scenario in
> which shortest path forwarding results in 80% of the total
> link-by-link forwarding load that is generated by the same
> amount of traffic in a corresponding spanning tree scenario.
> 
> The reason why this happens is that a spanning tree may be
> constructed in which the path for some destinations will
> traverse at least one additional link, when arriving from
> some sources.  Practically speaking, unless a spanning tree 
> is constructed per-source bridge, it's easy to show that 
> this will be true for at least some source and destination 
> pairs.
> 
> Assuming the simplistic (VLAN-free) scenario that is basic
> to the "configuration-free" capability that is part of the
> chartered goals of TRILL, there would only be one spanning
> tree in a bridged network.  Hence, in this scenario, there
> would be many cases in which traffic traverses at least one
> additional link.
> 
> If traffic is demonstrably required to traverse more links
> than some theoretical minimum, than link utilization is -
> by definition - less efficient than it theoretically can
> be.
> 
>> 
>> - Section 1.2, Backward Compatibility and section 4.1: "...they 
>> terminate a bridged spanning tree, (i.e. - they do not forward 
>> BPDUs)". 
>>
>> I thought that we have not concluded the discussion on preventing 
>> loops for interconnected Bridges and RBridges based on the email 
>> thread that started a while back. Putting a decision in this 
>> section on the solution seems a little unnecessary. 
> 
> I am not sure that this text - or something like it - is unnecessary 
> from a compatibility perspective, and it may be the case that this 
> change would require a new working group last call.  However, if it 
> is acceptable to the IESG either that the change does not require a 
> new last call, or a second working group last call is needed, then I 
> would be happy to make this change as well.
> 
>> What is proposed in the current solution is to run a spanning tree 
>> protocol instance per port which maybe not scalable. 
>>
>> I think something like "It's strongly desirable to minimize the
>> interaction between the bridges and Rbridges and constrain a 
>> spanning tree" is more appropriate.
> 
> Yet it is difficult to imagine how this would translate to a 
> requirement that would make sense to someone evaluating the 
> acceptability of a routing protocol for the TRILL problem-space.
> Perhaps it would be simpler to omit the offending text?
> 
>> 
>> - Ethernet and 802 is used interchangeably. Isn't Ethernet 
>> 802.3 only ? 
>> Look at: http://en.wikipedia.org/wiki/IEEE_802.3 or 
>> http://www.ieee802.org/3/.
>> 
>> I don't see anything on what I consider to be another 
>> important goal: to 
>> have a single protocol to compute unicast, multicast and broadcast 
>> routes. This reduces operational overhead by having to understand and 
>> debug a single protocol.
>> 
>> The IESG wrote:
>> > The IESG has received a request from the Transparent 
>> Interconnection of 
>> > Lots of Links WG (trill) to consider the following document:
>> >
>> > - 'TRILL Routing Requirements in Support of RBridges '
>> >    <draft-ietf-trill-routing-reqs-02.txt> as an Informational RFC
>> >
>> > The IESG plans to make a decision in the next few weeks, 
>> and solicits
>> > final comments on this action.  Please send substantive 
>> comments to the
>> > [email-masked] mailing lists by 2007-03-30. Exceptionally, 
>> > comments may be sent to [email-masked] instead. In either 
>> case, please 
>> > retain the beginning of the Subject line to allow automated sorting.
>> >
>> > The file can be obtained via
>> > 
>> http://www.ietf.org/internet-drafts/draft-ietf-trill-routing-r
>> eqs-02.txt
>> >
>> >
>> > IESG discussion can be tracked via
>> > 
>> https://datatracker.ietf.org/public/pidtracker.cgi?command=vie
>> w_id&dTag=15187&rfc_flag=0
>> >
>> > [email-masked]
>> -- 
>> We make our world significant by the courage of our questions and by 
>> the depth of our answers.                               - Carl Sagan
>> [email-masked]
> [email-masked]

Content-class: urn:content-classes:message
Date: Wed, 21 Mar 2007 05:48:15 -0500
From: "Eric Gray \(LO/EUS\)" <[email-masked]>
To: "Dinesh G Dutt" <[email-masked]>, <[email-masked]>
Cc: [email-masked], IETF-Announce <[email-masked]>
Subject: Re: [rbridge] Last Call: draft-ietf-trill-routing-reqs (TRILL Routing Requirements in Support of RBridges) to Informational RFC
Status: RO
Content-Length: 6675

Dinesh,

	Thank you for your comments.  Please see below...

Thanks!

--
Eric Gray
Principal Engineer
Ericsson  

> From: [email-masked] 
> [mailto:[email-masked]] On Behalf Of Dinesh G Dutt
> Sent: Tuesday, March 20, 2007 10:33 PM
> To: [email-masked]
> Cc: [email-masked]; IETF-Announce
> Subject: Re: [rbridge] Last Call: 
> draft-ietf-trill-routing-reqs (TRILL Routing Requirements in 
> Support of RBridges) to Informational RFC
> 
> I have a few comments on the document.
> 
> - Section 1, Bridging Limitations: The first two paragraphs are 
> structured around the logic: because ethernet header doesn't have 
> a TTL or a hop count, the only choice was to use spanning tree. 
> IEEE 802.1 has defined several headers such as 802.1Q header that 
> carries the VLAN. If they wanted to add a TTL, they could have. 
> They picked spanning tree and said that therefore they didn't need 
> a TTL.  To the extent this represents history, I think it is 
> inaccurate. To the extent it attempts to explain the rationale for 
> RBridges, it seems unnecessary. A sufficient replacement maybe 
> along the lines of: 
>
> "Spanning Tree Protocol and its variants are the control protocol 
> deployed in current 802.1D Ethernet bridges.  This protocol 
> constructs a single tree out of a mesh of network connections. 
> This tree eliminates usage of equal cost multipaths and results in 
> non-optimal pair-wise forwarding."
> 

This is a reasonable proposal for replacement text.  If there
are no objections from the working group, or the IESG, I would
be happy to make this change.

Thanks!

> - Section 1, Bridging Limitations: More specific comments:
>   - "Because of the potential for severe impact from looping traffic, 
>     many (if not most) current bridge implementations stop forwarding
>     of traffic frames following a topology change event and restart 
>     only after STP/RSTP is complete" is incorrect. All 802.1D bridges 
>     allow (R/M)STP to complete before moving a port to forwarding 
>     state. I'd remove the phrase in parentheses.

Good suggestion.  Assuming the same acceptance, I can make this
change as well.

>   - "Inefficient inter-bridge connection usage". What do you 
>     mean by this phrase?

I assume this is a reasonably well understood aspect of using
a spanning tree as opposed to using shortest path routing.

It is not difficult to come up with a reasonable scenario in
which shortest path forwarding results in 80% of the total
link-by-link forwarding load that is generated by the same
amount of traffic in a corresponding spanning tree scenario.

The reason why this happens is that a spanning tree may be
constructed in which the path for some destinations will
traverse at least one additional link, when arriving from
some sources.  Practically speaking, unless a spanning tree 
is constructed per-source bridge, it's easy to show that 
this will be true for at least some source and destination 
pairs.

Assuming the simplistic (VLAN-free) scenario that is basic
to the "configuration-free" capability that is part of the
chartered goals of TRILL, there would only be one spanning
tree in a bridged network.  Hence, in this scenario, there
would be many cases in which traffic traverses at least one
additional link.

If traffic is demonstrably required to traverse more links
than some theoretical minimum, than link utilization is -
by definition - less efficient than it theoretically can
be.

> 
> - Section 1.2, Backward Compatibility and section 4.1: "...they 
> terminate a bridged spanning tree, (i.e. - they do not forward 
> BPDUs)". 
>
> I thought that we have not concluded the discussion on preventing 
> loops for interconnected Bridges and RBridges based on the email 
> thread that started a while back. Putting a decision in this 
> section on the solution seems a little unnecessary. 

I am not sure that this text - or something like it - is unnecessary 
from a compatibility perspective, and it may be the case that this 
change would require a new working group last call.  However, if it 
is acceptable to the IESG either that the change does not require a 
new last call, or a second working group last call is needed, then I 
would be happy to make this change as well.

> What is proposed in the current solution is to run a spanning tree 
> protocol instance per port which maybe not scalable. 
>
> I think something like "It's strongly desirable to minimize the
> interaction between the bridges and Rbridges and constrain a 
> spanning tree" is more appropriate.

Yet it is difficult to imagine how this would translate to a 
requirement that would make sense to someone evaluating the 
acceptability of a routing protocol for the TRILL problem-space.
Perhaps it would be simpler to omit the offending text?

> 
> - Ethernet and 802 is used interchangeably. Isn't Ethernet 
> 802.3 only ? 
> Look at: http://en.wikipedia.org/wiki/IEEE_802.3 or 
> http://www.ieee802.org/3/.
> 
> I don't see anything on what I consider to be another 
> important goal: to 
> have a single protocol to compute unicast, multicast and broadcast 
> routes. This reduces operational overhead by having to understand and 
> debug a single protocol.
> 
> The IESG wrote:
> > The IESG has received a request from the Transparent 
> Interconnection of 
> > Lots of Links WG (trill) to consider the following document:
> >
> > - 'TRILL Routing Requirements in Support of RBridges '
> >    <draft-ietf-trill-routing-reqs-02.txt> as an Informational RFC
> >
> > The IESG plans to make a decision in the next few weeks, 
> and solicits
> > final comments on this action.  Please send substantive 
> comments to the
> > [email-masked] mailing lists by 2007-03-30. Exceptionally, 
> > comments may be sent to [email-masked] instead. In either 
> case, please 
> > retain the beginning of the Subject line to allow automated sorting.
> >
> > The file can be obtained via
> > 
> http://www.ietf.org/internet-drafts/draft-ietf-trill-routing-r
> eqs-02.txt
> >
> >
> > IESG discussion can be tracked via
> > 
> https://datatracker.ietf.org/public/pidtracker.cgi?command=vie
> w_id&dTag=15187&rfc_flag=0
> >
> > [email-masked]
> -- 
> We make our world significant by the courage of our questions and by 
> the depth of our answers.                               - Carl Sagan
> [email-masked]

Date: Wed, 21 Mar 2007 02:52:33 -0700
From: Erik Nordmark <[email-masked]>
To: "J. R. Rivers" <[email-masked]>
Cc: [email-masked], Radia Perlman <[email-masked]>
Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
Status: RO
Content-Length: 313

J. R. Rivers wrote:
> That seems more like a set of issues associated with access control
> management that is beyond the scope of TRILL.

The question we need to answer is whether RBridges need to support SVL, 
or whether we can say that we only do IVL. That is something that the WG 
needs to decide.

    Erik

Content-class: urn:content-classes:message
Date: Wed, 21 Mar 2007 04:32:55 -0500
From: "Eric Gray \(LO/EUS\)" <[email-masked]>
To: "Harald Tveit Alvestrand" <[email-masked]>, "Silvano Gai" <[email-masked]>, <[email-masked]>
Cc: [email-masked]
Subject: Re: [rbridge] Last Call: draft-ietf-trill-routing-reqs (TRILL	RoutingRequirements in Support of RBridges) to Informational RFC
Status: RO
Content-Length: 2023

Harald,

	As it was originally chartered, the TRILL working group allowed
scope for definition of TRILL bridges that could be cheaply produced,
modulo the inclusion of a ink-state routing protocol as a complicating
factor.  It is not clear at this point that this has changed.

	Consequently, at least some of the people working on this are
thinking that a <well-known but not named here> work group switch may
very well be replaced by a TRILL capable bridge - possibly made by the
same vendor, at the same manufacturing facility.

--
Eric

> From: [email-masked] 
> [mailto:[email-masked]] On Behalf Of Harald Tveit 
> Alvestrand
> Sent: Wednesday, March 21, 2007 3:59 AM
> To: Silvano Gai; [email-masked]
> Cc: [email-masked]
> Subject: Re: [rbridge] Last Call: 
> draft-ietf-trill-routing-reqs (TRILL RoutingRequirements in 
> Support of RBridges) to Informational RFC
> 
> 
> 
> --On 20. mars 2007 09:35 -0700 Silvano Gai 
> <[email-masked]> wrote:
> 
> > 5) Introduction - Bridging limitation. The first paragraph refers to
> > Ethernet networks used without Spanning Tree. This is 
> irrelevant, since
> > Spanning Tree is always deployed in conjunction with Ethernet. The
> > correct contrast must be between Ethernet with Spanning Tree and
> > Ethernet with TRILL. The claim of a single 
> broadcast/flooding domain is
> > incorrect since VLANs have solved this issue many years ago.
> 
> "always" is too strong, since most unmanaged bridges (intended for 
> consumers' home networks, but often dangled off the edge of corporate 
> networks as port expanders, without asking for permission) 
> don't seem to be 
> supporting Spanning Tree. However, these are not going to 
> support TRILL 
> either, so for the environments considered here, "always" is 
> probably true.
> 
>                Harald
> 
> [email-masked]

Date: Wed, 21 Mar 2007 02:21:04 -0700
From: Joe Touch <[email-masked]>
To: "Developing a hybrid router/bridge." <[email-masked]>
Subject: [rbridge] protocol spec - change from "nonvolatile memory"
Status: RO
Content-Length: 1080

This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enigE232F68094B1F8386A6E47FD
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Hi, Silvano (et al.),

I'd like to suggest a change from:

   Once an RBridge has successfully acquired an address it SHOULD store
   it in non-volatile memory and reuse it in the case of a reboot.

to:

   Once an RBridge has successfully acquired an address it SHOULD reuse
   it in the case of a restart.

I.e., I think it's sufficient to describe the behavior desired.

Joe

--------------enigE232F68094B1F8386A6E47FD
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

--------------enigE232F68094B1F8386A6E47FD--

Date: Wed, 21 Mar 2007 08:58:42 +0100
From: Harald Tveit Alvestrand <[email-masked]>
To: Silvano Gai <[email-masked]>, [email-masked]
Cc: [email-masked]
Subject: Re: [rbridge] Last Call: draft-ietf-trill-routing-reqs (TRILL	RoutingRequirements in Support of RBridges) to Informational RFC
Status: RO
Content-Length: 885

--On 20. mars 2007 09:35 -0700 Silvano Gai <[email-masked]> wrote:

> 5) Introduction - Bridging limitation. The first paragraph refers to
> Ethernet networks used without Spanning Tree. This is irrelevant, since
> Spanning Tree is always deployed in conjunction with Ethernet. The
> correct contrast must be between Ethernet with Spanning Tree and
> Ethernet with TRILL. The claim of a single broadcast/flooding domain is
> incorrect since VLANs have solved this issue many years ago.

"always" is too strong, since most unmanaged bridges (intended for 
consumers' home networks, but often dangled off the edge of corporate 
networks as port expanders, without asking for permission) don't seem to be 
supporting Spanning Tree. However, these are not going to support TRILL 
either, so for the environments considered here, "always" is probably true.

               Harald

Date: Tue, 20 Mar 2007 19:33:26 -0700
From: Dinesh G Dutt <[email-masked]>
To: [email-masked]
Cc: [email-masked], IETF-Announce <[email-masked]>
Subject: Re: [rbridge] Last Call: draft-ietf-trill-routing-reqs (TRILL Routing Requirements in Support of RBridges) to Informational RFC
Status: RO
Content-Length: 3717

I have a few comments on the document.

- Section 1, Bridging Limitations: The first two paragraphs are 
structured around the logic: because ethernet header doesn't have a TTL 
or a hop count, the only choice was to use spanning tree. IEEE 802.1 has 
defined several headers such as 802.1Q header that carries the VLAN. If 
they wanted to add a TTL, they could have. They picked spanning tree and 
said that therefore they didn't need a TTL.  To the extent this 
represents history, I think it is inaccurate. To the extent it attempts 
to explain the rationale for RBridges, it seems unnecessary. A 
sufficient replacement maybe along the lines of: "Spanning Tree Protocol 
and its variants are the control protocol deployed in current 802.1D 
Ethernet bridges. This protocol constructs a single tree out of a mesh 
of network connections. This tree eliminates usage of equal cost 
multipaths and results in non-optimal pair-wise forwarding."

- Section 1, Bridging Limitations: More specific comments:
  - "Because of the potential for severe impact from looping traffic, 
many (if not most) current bridge  
    implementations stop forwarding of traffic frames following a 
topology change event and restart only after STP/RSTP is
    complete" is incorrect. All 802.1D bridges allow (R/M)STP to 
complete before moving a port to forwarding state. I'd
    remove the phrase in parentheses.
  - "Inefficient inter-bridge connection usage". What do you mean by 
this phrase ?

- Section 1.2, Backward Compatibility and section 4.1: "...they 
terminate a bridged spanning tree, (i.e. - they do not forward BPDUs)". 
I thought that we have not concluded the discussion on preventing loops 
for interconnected Bridges and RBridges based on the email thread that 
started a while back. Putting a decision in this section on the solution 
seems a little unnecessary. What is proposed in the current solution is 
to run a spanning tree protocol instance per port which maybe not 
scalable. I think something like "It's strongly desirable to minimize 
the interaction between the bridges and Rbridges and constrain a 
spanning tree" is more appropriate.

- Ethernet and 802 is used interchangeably. Isn't Ethernet 802.3 only ? 
Look at: http://en.wikipedia.org/wiki/IEEE_802.3 or 
http://www.ieee802.org/3/.

I don't see anything on what I consider to be another important goal: to 
have a single protocol to compute unicast, multicast and broadcast 
routes. This reduces operational overhead by having to understand and 
debug a single protocol.

The IESG wrote:
> The IESG has received a request from the Transparent Interconnection of 
> Lots of Links WG (trill) to consider the following document:
>
> - 'TRILL Routing Requirements in Support of RBridges '
>    <draft-ietf-trill-routing-reqs-02.txt> as an Informational RFC
>
> The IESG plans to make a decision in the next few weeks, and solicits
> final comments on this action.  Please send substantive comments to the
> [email-masked] mailing lists by 2007-03-30. Exceptionally, 
> comments may be sent to [email-masked] instead. In either case, please 
> retain the beginning of the Subject line to allow automated sorting.
>
> The file can be obtained via
> http://www.ietf.org/internet-drafts/draft-ietf-trill-routing-reqs-02.txt
>
>
> IESG discussion can be tracked via
> https://datatracker.ietf.org/public/pidtracker.cgi?command=view_id&dTag=15187&rfc_flag=0
>
> [email-masked]

-- 
We make our world significant by the courage of our questions and by 
the depth of our answers.                               - Carl Sagan

Content-class: urn:content-classes:message
Date: Tue, 20 Mar 2007 14:34:36 -0700
From: "Silvano Gai" <[email-masked]>
To: "Eric Gray \(LO/EUS\)" <[email-masked]>, <[email-masked]>
Cc: [email-masked]
Subject: Re: [rbridge] Last Call: draft-ietf-trill-routing-reqs (TRILLRoutingRequirements in Support of RBridges) to Informational RFC
Status: RO
Content-Length: 11721

Eric,

Inline

> From: Eric Gray (LO/EUS) [mailto:[email-masked]]
> Sent: Tuesday, March 20, 2007 11:31 AM
> To: Silvano Gai; [email-masked]
> Cc: [email-masked]
> Subject: RE: [rbridge] Last Call: draft-ietf-trill-routing-reqs
> (TRILLRoutingRequirements in Support of RBridges) to Informational RFC
> 
> Silvano,
> 
> 	Thanks for posting these comments.  Please see below.
> 
> --
> Eric Gray
> Principal Engineer
> Ericsson
> 
> > From: [email-masked]
> > [mailto:[email-masked]] On Behalf Of Silvano Gai
> > Sent: Tuesday, March 20, 2007 12:35 PM
> > To: [email-masked]
> > Cc: [email-masked]
> > Subject: Re: [rbridge] Last Call:
> > draft-ietf-trill-routing-reqs (TRILLRoutingRequirements in
> > Support of RBridges) to Informational RFC
> >
> >
> > This document has some issues that need to be corrected before it
can
> > pass an IESG last call.
> 
> I think as a strict matter of process, we don't get to say what MUST
be
> corrected before a document can pass IESG last call (if there is such
a
> thing).
> 
> Luckily, I believe this is an IETF Last Call, where the idea is that
the
> IESG is asking for our input before making _their_ decision as to what
-
> if anything - MUST be changed.
> 
> >
> > In order of importance:
> > 1) The document equates Ethernet with IEEE 802 and this is clearly
> > incorrect, since IEEE 802 includes also technologies like Token
Ring,
> > DQDB, Wireless that are clearly outside the scope of TRILL. Ethernet
> > must be equated with IEEE 802.3
> 
> Which is historically at least as incorrect.
> 
> This comment was made during the working group last call.  Specific
> changes were made that I hoped would address this comment.

I made many comments to this document during working group last call,
some were considered, some were ignored. There was not a second WG last
call, the IESG last call was posted and I repeated the comments that
were not addressed and that I think need to be addressed. I may have
used slightly different words  in the two postings.

> 
> Why did you not earlier state specifically what part of the changes
> made were not satisfactory to you at that time?
> 

I stated very clear that IEEE 802 is a larger project that includes not
only Ethernet, but Token Ring, Token Bus, DQDB, Wireless, etc.

Ethernet is specified in IEEE 802.3.

Since you and I continue to disagree and you don't accept to replace
IEEE 802 with IEEE 802.3 I think this should be judged by an IEEE expert
in the IESG.

> >
> > 2) The document discusses Spanning Tree compatibility in section 1.2
> > where it claims that BPDUs must be terminated and in Section 4.1
where
> > the term "block" is used. This is clearly in contrast with what
> > discussed in the WG and in the base protocol spec, where BPDUs are
at
> > least processed (in one proposal) or even sourced by RBridges (in an
> > alternate proposal).
> 
> This was the terminology decided on by the working group at the time.
> 
> This comment was also made during the working group last call, and
> explanations were provided and - I believe - some small explanatory
> changes were made to the text.
> 
> Again, why did you not earlier state specifically what part of the
> changes made were not satisfactory to you at that time?
> 

I stated at that time that this text was inappropriate and the base
protocol draft contains text agreed in the WG that contradict your view.

> >
> > 3) Section 1.1 Terminology is formally incorrect since [TARCH] is
not
> an
> > approved document. It is also substantially incorrect since many
terms
> > listed are not used in this document and some are not agreed in the
> WG.
> > I propose to eliminate this section.
> 
> As a matter of process, again, this issue is addressed by listing the
> Architecture as a Normative reference.
> 
> Because the document is intended to be an informational RFC, the WG
> chairs informed me that IESG members are comfortable with pushing this
> to IETF last call ahead of its (one) normative reference.
> 
> That, again, is their prerogative.
> 
> >
> > 4) The document uses the term "will" that is not compliant with
> RFC2119.
> > In general a better definition of what is mandatory and what is
> optional
> > is important in a requirement document.
> 
> This is an informational document, proposed as an informational RFC.
> 
> This is also a requirements document, stating what is needed from any
> candidate routing protocol.  It is not an options list, or a wish
list.
> People may decide to ignore requirements in this document, and that is
> okay - because it is strictly informational.  The requirements listed
> in this document represent the things that the TRILL working group had
> agreed were needed and should be documented at the time the document
> was/is/will be published.
> 
> The choice to avoid 2119 language was - for this reason - a deliberate
> one, discussed on several occasions in the working group.  There is no
> inclusion of the "usage" of RFC 2119 terminology, nor any reference to
> RFC 2119.  Hence the word "will" can be, and is, used as it would be
> interpreted in the English language.
> 
> If you would care to provide a reasonably authoritative reference for
> English usage of the word "will" that is in conflict with any specific
> usage of the word in this document, I'd be happy to consider including
> it as a reference in this document and changing the specific instances
> you point out.
> 
> >
> > 5) Introduction - Bridging limitation. The first paragraph refers to
> > Ethernet networks used without Spanning Tree. This is irrelevant,
> > since Spanning Tree is always deployed in conjunction with Ethernet.
> 
> This follows only because:
> 
> o	you disagree with the inclusive way this document uses the term
> 	Ethernet.  Let's not conflate issues here.
> 
> 	The way the document uses the term Ethernet was explained to you
> 
> 	- and to the working group - as a result of your earlier working
> 
> 	group last call comments.
> 
> o	you exclude Ethernet deployments in small networks where small
> 	Ethernet switches _clearly_ do not use spanning tree.
> 
> o	you exclude Ethernet, and Ethernet-like, encapsulation in new,
> 	in progress, and yet to be developed technologies in making
> 	this statement.
> 
> In short, your statement that spanning tree is always used in Ethernet
> networks is correct only if you define Ethernet networks as including
> spanning tree.  Interestingly enough, I do not recall that spanning
> tree is actually defined by 802.3.
> 

That is because the work that TRILL does is really an IEEE 802.1
replacement, but still DOES NOT cover IEEE 802 as a whole.

> There was not at the time of the working group last call, nor have
> I seen any indication that there is now, a consensus to change the
> wording of this document with respect to this issue.
> 
> My earlier justification that using a less inclusive interpretation
> of "Ethernet" would mean replacing the term Ethernet with a more
> explicitly inclusive (and complex) phrase in each place where it
> occurs, still applies.
> 
> > The correct contrast must be between Ethernet with Spanning Tree and
> > Ethernet with TRILL.
> 
> This only follows if you assume that the way that Ethernet is used
> in this document is wrong.
> 
> A point has been made - more than once - that there is no absolutely
> cannonical definition of Ethernet. 

Not True. Ethernet is commonly defined as:
Digital Equipment Corporation, Intel, Xerox, The Ethernet, Version 2.0,
November 1982.

This document and the term "Ethernet" are widely referenced in IEEE
802.3 (just do a search on the PDF file). In particular TRILL uses the
Ethernet V2 encapsulation (the same used by IEEE 802.1Q) in which Length
is replaced by Type. Please see IEEE 802.3 standard.

 You might choose to decide that
> Ethernet is defined by 802.3 - in spite of the fact that Ethernet and
> 802.3 have been considered by many to be distinct for many years.  If
> you do, then you would be limiting the definition to exclude how the
> technology works with bridges, 

I never said that bridges are IEEE 802.3, Bridges are a combination of
IEEE 802.1D and IEEE 802.1Q.

-- Silvano

and you would be forcing arbitrarily
> complicated verbiage in what is essentially a relatively high-level
> document that doesn't need that degree of technical precision.  And
> you would still be wrong by some (other) definitions of Ethernet.
> 
> > The claim of a single broadcast/flooding domain is incorrect since
> > VLANs have solved this issue many years ago.
> 
> For the purposes of this document, it is not explicitly necessary -
> nor necessarily even a good idea - to dwell in too great detail on
> the ways that a domain that would be "a single broadcast/flooding
> domain" in the absence of VLANs, becomes multiply sub-setted by the
> inclusions of VLANs.
> 
> I do not recall seeing this comment during the working group last
> call.  If I had, one of the things I would have pointed out is that
> this is not explicitly an "issue" in forming requirements in this
> document, and that your taking exception to the wording - in a more
> representative context - is based on your interpretation of the
> statement (possibly in a less representative context).  Here is the
> context:
> 
> "... bridged networks consist of single broadcast/flooding domains."
> 
> One - fairly simplistic - way to look at VLANs is that the use of a
> VLAN ID allows VLAN bridges to treat the non-VLAN broadcast domain
> as having been divided into multiple logical broadcast domains, with
> each such logical broadcast domain being effectively - logically -
> a bridged network consisting of a single broadcast/flooding domain.
> 
> In this view, the statement is not incorrect - however you might not
> like it.
> 
> If you would like me to phrase this point some other way, propose an
> alternative wording, don't just say "it's wrong."
> 
> >
> > -- Silvano Gai
> >
> >
> >
> > > From: [email-masked]
[mailto:[email-masked]]
> > On
> > > Behalf Of The IESG
> > > Sent: Friday, March 16, 2007 2:53 PM
> > > To: IETF-Announce
> > > Cc: [email-masked]
> > > Subject: [rbridge] Last Call: draft-ietf-trill-routing-reqs (TRILL
> > > RoutingRequirements in Support of RBridges) to Informational RFC
> > >
> > > The IESG has received a request from the Transparent
Interconnection
> > of
> > > Lots of Links WG (trill) to consider the following document:
> > >
> > > - 'TRILL Routing Requirements in Support of RBridges '
> > >    <draft-ietf-trill-routing-reqs-02.txt> as an Informational RFC
> > >
> > > The IESG plans to make a decision in the next few weeks,
> > and solicits
> > > final comments on this action.  Please send substantive comments
to
> > the
> > > [email-masked] mailing lists by 2007-03-30. Exceptionally,
> > > comments may be sent to [email-masked] instead. In either
> > case, please
> > > retain the beginning of the Subject line to allow automated
sorting.
> > >
> > > The file can be obtained via
> > >
> > http://www.ietf.org/internet-drafts/draft-ietf-trill-routing-r
> > eqs-02.txt
> > >
> > >
> > > IESG discussion can be tracked via
> > >
> > https://datatracker.ietf.org/public/pidtracker.cgi?command=vie
> > w_id&dTag=
> > 15
> > > 187&rfc_flag=0
> > >
> > > [email-masked]
> > [email-masked]

Content-class: urn:content-classes:message
Date: Tue, 20 Mar 2007 13:29:21 -0700
From: "J. R. Rivers" <[email-masked]>
To: "Erik Nordmark" <[email-masked]>, "Caitlin Bestler" <[email-masked]>
Cc: [email-masked], Radia Perlman <[email-masked]>
Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
Status: RO
Content-Length: 2204

That seems more like a set of issues associated with access control
management that is beyond the scope of TRILL.

JR

> From: [email-masked] 
> [mailto:[email-masked]] On Behalf Of Erik Nordmark
> Sent: Tuesday, March 20, 2007 12:53 PM
> To: Caitlin Bestler
> Cc: [email-masked]; Radia Perlman
> Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
> 
> Caitlin Bestler wrote:
> 
> > It's a perfectly reasonable behavior, as long as the VID is at
> > least checked (i.e., it is an attribute, not a key field). A set
> > of RBridges that *all* used this approach would work perfectly fine.
> 
> Are you taking into account hosts that maliciously change their MAC 
> address in order to affect the bridging of packets for a host 
> that is on 
> a different VLAN?
> 
> Are you taking int account hosts that are part of multiple 
> VLANs using a 
> single NIC and single MAC address (servers often are 
> configured in such 
> ways by having the server add the 802.1Q headers and the bridge just 
> enforce that the VID is in the allowed set for that port).
> 
>     Erik
> 
> 
> 
> > The real issue is whether RBridges that will realistically tend to
> > use Independent Learning can easily accommodate some of their peers
> > doing Shared Learning, and if so, how.
> > 
> > For example, the rule could be that you can use Shared Learning as
> > long as no other RBridge can detect that you aren't using 
> Independent
> > Learning. Or Shared/Independent Learning could be a flag that each
> > RBridge advertises. Or each RBridge could advertise it's 
> VID->FID map.
> > 
> > All of these work, the question is which are justified. As much as I
> > dislike increasing the key size I can certainly see the 
> advantages to
> > maintaining a distributed database of requiring all RBridges to use
> > Independent Learning. So I'd lean toward simply standardizing on
> > Independent Learning. But any new requirement is best explicitly
> > stated, not inferred from the data descriptions.
> > 
> 
> [email-masked]

Date: Tue, 20 Mar 2007 12:53:11 -0700
From: Erik Nordmark <[email-masked]>
To: Caitlin Bestler <[email-masked]>
Cc: [email-masked], Radia Perlman <[email-masked]>
Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
Status: RO
Content-Length: 1550

Caitlin Bestler wrote:

> It's a perfectly reasonable behavior, as long as the VID is at
> least checked (i.e., it is an attribute, not a key field). A set
> of RBridges that *all* used this approach would work perfectly fine.

Are you taking into account hosts that maliciously change their MAC 
address in order to affect the bridging of packets for a host that is on 
a different VLAN?

Are you taking int account hosts that are part of multiple VLANs using a 
single NIC and single MAC address (servers often are configured in such 
ways by having the server add the 802.1Q headers and the bridge just 
enforce that the VID is in the allowed set for that port).

    Erik

> The real issue is whether RBridges that will realistically tend to
> use Independent Learning can easily accommodate some of their peers
> doing Shared Learning, and if so, how.
> 
> For example, the rule could be that you can use Shared Learning as
> long as no other RBridge can detect that you aren't using Independent
> Learning. Or Shared/Independent Learning could be a flag that each
> RBridge advertises. Or each RBridge could advertise it's VID->FID map.
> 
> All of these work, the question is which are justified. As much as I
> dislike increasing the key size I can certainly see the advantages to
> maintaining a distributed database of requiring all RBridges to use
> Independent Learning. So I'd lean toward simply standardizing on
> Independent Learning. But any new requirement is best explicitly
> stated, not inferred from the data descriptions.
> 

Content-class: urn:content-classes:message
Date: Tue, 20 Mar 2007 13:30:32 -0500
From: "Eric Gray \(LO/EUS\)" <[email-masked]>
To: "Silvano Gai" <[email-masked]>, <[email-masked]>
Cc: [email-masked]
Subject: Re: [rbridge] Last Call: draft-ietf-trill-routing-reqs (TRILLRoutingRequirements in Support of RBridges) to Informational RFC
Status: RO
Content-Length: 9481

Silvano,

	Thanks for posting these comments.  Please see below.

--
Eric Gray
Principal Engineer
Ericsson  

> From: [email-masked] 
> [mailto:[email-masked]] On Behalf Of Silvano Gai
> Sent: Tuesday, March 20, 2007 12:35 PM
> To: [email-masked]
> Cc: [email-masked]
> Subject: Re: [rbridge] Last Call: 
> draft-ietf-trill-routing-reqs (TRILLRoutingRequirements in 
> Support of RBridges) to Informational RFC
> 
> 
> This document has some issues that need to be corrected before it can
> pass an IESG last call.

I think as a strict matter of process, we don't get to say what MUST be
corrected before a document can pass IESG last call (if there is such a
thing).

Luckily, I believe this is an IETF Last Call, where the idea is that the
IESG is asking for our input before making _their_ decision as to what -
if anything - MUST be changed.

> 
> In order of importance:
> 1) The document equates Ethernet with IEEE 802 and this is clearly
> incorrect, since IEEE 802 includes also technologies like Token Ring,
> DQDB, Wireless that are clearly outside the scope of TRILL. Ethernet
> must be equated with IEEE 802.3

Which is historically at least as incorrect.

This comment was made during the working group last call.  Specific
changes were made that I hoped would address this comment.

Why did you not earlier state specifically what part of the changes
made were not satisfactory to you at that time?

> 
> 2) The document discusses Spanning Tree compatibility in section 1.2
> where it claims that BPDUs must be terminated and in Section 4.1 where
> the term "block" is used. This is clearly in contrast with what
> discussed in the WG and in the base protocol spec, where BPDUs are at
> least processed (in one proposal) or even sourced by RBridges (in an
> alternate proposal).

This was the terminology decided on by the working group at the time.

This comment was also made during the working group last call, and
explanations were provided and - I believe - some small explanatory
changes were made to the text.

Again, why did you not earlier state specifically what part of the 
changes made were not satisfactory to you at that time?

> 
> 3) Section 1.1 Terminology is formally incorrect since [TARCH] is not
an
> approved document. It is also substantially incorrect since many terms
> listed are not used in this document and some are not agreed in the
WG.
> I propose to eliminate this section.

As a matter of process, again, this issue is addressed by listing the
Architecture as a Normative reference.

Because the document is intended to be an informational RFC, the WG 
chairs informed me that IESG members are comfortable with pushing this
to IETF last call ahead of its (one) normative reference.

That, again, is their prerogative.

> 
> 4) The document uses the term "will" that is not compliant with
RFC2119.
> In general a better definition of what is mandatory and what is
optional
> is important in a requirement document.

This is an informational document, proposed as an informational RFC.

This is also a requirements document, stating what is needed from any
candidate routing protocol.  It is not an options list, or a wish list.
People may decide to ignore requirements in this document, and that is
okay - because it is strictly informational.  The requirements listed
in this document represent the things that the TRILL working group had
agreed were needed and should be documented at the time the document 
was/is/will be published.

The choice to avoid 2119 language was - for this reason - a deliberate
one, discussed on several occasions in the working group.  There is no
inclusion of the "usage" of RFC 2119 terminology, nor any reference to
RFC 2119.  Hence the word "will" can be, and is, used as it would be
interpreted in the English language.

If you would care to provide a reasonably authoritative reference for
English usage of the word "will" that is in conflict with any specific
usage of the word in this document, I'd be happy to consider including 
it as a reference in this document and changing the specific instances
you point out.

> 
> 5) Introduction - Bridging limitation. The first paragraph refers to
> Ethernet networks used without Spanning Tree. This is irrelevant, 
> since Spanning Tree is always deployed in conjunction with Ethernet. 

This follows only because: 

o	you disagree with the inclusive way this document uses the term 
	Ethernet.  Let's not conflate issues here.
	
	The way the document uses the term Ethernet was explained to you

	- and to the working group - as a result of your earlier working

	group last call comments.

o	you exclude Ethernet deployments in small networks where small
	Ethernet switches _clearly_ do not use spanning tree.

o	you exclude Ethernet, and Ethernet-like, encapsulation in new,
	in progress, and yet to be developed technologies in making 
	this statement.

In short, your statement that spanning tree is always used in Ethernet
networks is correct only if you define Ethernet networks as including
spanning tree.  Interestingly enough, I do not recall that spanning 
tree is actually defined by 802.3.

There was not at the time of the working group last call, nor have 
I seen any indication that there is now, a consensus to change the
wording of this document with respect to this issue. 

My earlier justification that using a less inclusive interpretation
of "Ethernet" would mean replacing the term Ethernet with a more 
explicitly inclusive (and complex) phrase in each place where it 
occurs, still applies.

> The correct contrast must be between Ethernet with Spanning Tree and
> Ethernet with TRILL. 

This only follows if you assume that the way that Ethernet is used
in this document is wrong.

A point has been made - more than once - that there is no absolutely 
cannonical definition of Ethernet.  You might choose to decide that
Ethernet is defined by 802.3 - in spite of the fact that Ethernet and
802.3 have been considered by many to be distinct for many years.  If 
you do, then you would be limiting the definition to exclude how the
technology works with bridges, and you would be forcing arbitrarily
complicated verbiage in what is essentially a relatively high-level
document that doesn't need that degree of technical precision.  And
you would still be wrong by some (other) definitions of Ethernet.

> The claim of a single broadcast/flooding domain is incorrect since 
> VLANs have solved this issue many years ago.

For the purposes of this document, it is not explicitly necessary -
nor necessarily even a good idea - to dwell in too great detail on
the ways that a domain that would be "a single broadcast/flooding
domain" in the absence of VLANs, becomes multiply sub-setted by the
inclusions of VLANs.

I do not recall seeing this comment during the working group last
call.  If I had, one of the things I would have pointed out is that
this is not explicitly an "issue" in forming requirements in this
document, and that your taking exception to the wording - in a more 
representative context - is based on your interpretation of the 
statement (possibly in a less representative context).  Here is the 
context:

"... bridged networks consist of single broadcast/flooding domains."

One - fairly simplistic - way to look at VLANs is that the use of a
VLAN ID allows VLAN bridges to treat the non-VLAN broadcast domain
as having been divided into multiple logical broadcast domains, with
each such logical broadcast domain being effectively - logically -
a bridged network consisting of a single broadcast/flooding domain.

In this view, the statement is not incorrect - however you might not
like it.

If you would like me to phrase this point some other way, propose an
alternative wording, don't just say "it's wrong."

> -- Silvano Gai
> > From: [email-masked] [mailto:[email-masked]]
> On
> > Behalf Of The IESG
> > Sent: Friday, March 16, 2007 2:53 PM
> > To: IETF-Announce
> > Cc: [email-masked]
> > Subject: [rbridge] Last Call: draft-ietf-trill-routing-reqs (TRILL
> > RoutingRequirements in Support of RBridges) to Informational RFC
> > 
> > The IESG has received a request from the Transparent Interconnection
> of
> > Lots of Links WG (trill) to consider the following document:
> > 
> > - 'TRILL Routing Requirements in Support of RBridges '
> >    <draft-ietf-trill-routing-reqs-02.txt> as an Informational RFC
> > 
> > The IESG plans to make a decision in the next few weeks, 
> and solicits
> > final comments on this action.  Please send substantive comments to
> the
> > [email-masked] mailing lists by 2007-03-30. Exceptionally,
> > comments may be sent to [email-masked] instead. In either 
> case, please
> > retain the beginning of the Subject line to allow automated sorting.
> > 
> > The file can be obtained via
> >
> http://www.ietf.org/internet-drafts/draft-ietf-trill-routing-r
> eqs-02.txt
> > 
> > 
> > IESG discussion can be tracked via
> >
> https://datatracker.ietf.org/public/pidtracker.cgi?command=vie
> w_id&dTag=
> 15
> > 187&rfc_flag=0
> > 
> > [email-masked]
> [email-masked]

Content-class: urn:content-classes:message
Date: Tue, 20 Mar 2007 10:16:51 -0700
From: "Caitlin Bestler" <[email-masked]>
To: "Silvano Gai" <[email-masked]>, "Radia Perlman" <[email-masked]>
Cc: [email-masked], Erik Nordmark <[email-masked]>
Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
Status: RO
Content-Length: 2129

Silvano Gai wrote:
>> From: Caitlin Bestler [mailto:[email-masked]]
>> Sent: Monday, March 19, 2007 2:50 PM
>> To: Silvano Gai; Radia Perlman
>> Cc: [email-masked]; Erik Nordmark
>> Subject: RE: [rbridge] VLAN Scoping / MAC Uniqueness
>> 
>> Silvano Gai wrote:
>>> I think TRILL needs to do exactly what IEEE 802.1Q does.
>>> AN IEEE 802.1Q bridge has M VIDs and N FIDs with M >= 1, N >=1, M
>>> =N. 
>>> 
>>> N is never advertised outside the bridge, and the mapping of M to N
>>> is never advertised outside the bridge. TRILL must do the same.
>>> 
>>> Learning is done on {VID, MAC-address} pairs. TRILL must do the
>>> same. 
>>> 
>> My reading of Appendix B is that Shared Learning is allowed, where
>> VID is not a key field (i.e, there is only one FID supported).
>> Appendix B details some of the problems this creates. I believe the
>> problems for RBridges are even greater than for simple Bridges. This
>> probably justifies restricting RBridges to the Independent Learning
>> model, but any such additional restriction should be explicitly
>> stated. 
> 
> I am not saying I want to restrict, I am saying that in
> bridges what triggers learning is always the reception of a
> frame that has a {VID, MAC-address} pair. The fact that the
> VID, on that particular bridge, shares the FID with other
> VIDs is what causes shared learning. But shared learning
> NEVER propagates. TRILL MUST NOT propagate shared learning.
> IT MUST always propagate {VID, MAC-address}. Recipients may
> decide to do individual or shared learning.
> 
> -- Silvano

>From a standards point of view I could see stating that all
TRILL-related protocols MUST be based on Independent Learning,
but that an RBridge MAY use Shared Learning for its local ports
when acting as a Bridge. And I suppose if you literally grafted
an RBridge as an add-on module to an existing Bridge with shared
learning it might even make sense.

Effectively, however, it is requiring RBridges to use Independent
Learning. I see that requirement as inevitable, and therefore best
stated explicitly.

Content-class: urn:content-classes:message
Date: Tue, 20 Mar 2007 10:06:43 -0700
From: "Silvano Gai" <[email-masked]>
To: "Caitlin Bestler" <[email-masked]>, "Radia Perlman" <[email-masked]>
Cc: [email-masked], Erik Nordmark <[email-masked]>
Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
Status: RO
Content-Length: 1545

Caitlin,

inline

> From: Caitlin Bestler [mailto:[email-masked]]
> Sent: Monday, March 19, 2007 2:50 PM
> To: Silvano Gai; Radia Perlman
> Cc: [email-masked]; Erik Nordmark
> Subject: RE: [rbridge] VLAN Scoping / MAC Uniqueness
> 
> Silvano Gai wrote:
> > I think TRILL needs to do exactly what IEEE 802.1Q does.
> > AN IEEE 802.1Q bridge has M VIDs and N FIDs with M >= 1, N >=1, M
>=N.
> >
> > N is never advertised outside the bridge, and the mapping of
> > M to N is never advertised outside the bridge. TRILL must do the
same.
> >
> > Learning is done on {VID, MAC-address} pairs. TRILL must do the
same.
> >
> My reading of Appendix B is that Shared Learning is allowed, where VID
> is not a key field (i.e, there is only one FID supported). Appendix B
> details some of the problems this creates. I believe the problems for
> RBridges are even greater than for simple Bridges. This probably
> justifies
> restricting RBridges to the Independent Learning model, but any such
> additional restriction should be explicitly stated.

I am not saying I want to restrict, I am saying that in bridges what
triggers learning is always the reception of a frame that has a {VID,
MAC-address} pair. The fact that the VID, on that particular bridge,
shares the FID with other VIDs is what causes shared learning. But
shared learning NEVER propagates. TRILL MUST NOT propagate shared
learning. IT MUST always propagate {VID, MAC-address}. Recipients may
decide to do individual or shared learning.

-- Silvano

Content-class: urn:content-classes:message
Date: Tue, 20 Mar 2007 09:35:03 -0700
From: "Silvano Gai" <[email-masked]>
To: <[email-masked]>
Cc: [email-masked]
Subject: Re: [rbridge] Last Call: draft-ietf-trill-routing-reqs (TRILL RoutingRequirements in Support of RBridges) to Informational RFC
Status: RO
Content-Length: 2952

This document has some issues that need to be corrected before it can
pass an IESG last call.

In order of importance:
1) The document equates Ethernet with IEEE 802 and this is clearly
incorrect, since IEEE 802 includes also technologies like Token Ring,
DQDB, Wireless that are clearly outside the scope of TRILL. Ethernet
must be equated with IEEE 802.3

2) The document discusses Spanning Tree compatibility in section 1.2
where it claims that BPDUs must be terminated and in Section 4.1 where
the term "block" is used. This is clearly in contrast with what
discussed in the WG and in the base protocol spec, where BPDUs are at
least processed (in one proposal) or even sourced by RBridges (in an
alternate proposal).

3) Section 1.1 Terminology is formally incorrect since [TARCH] is not an
approved document. It is also substantially incorrect since many terms
listed are not used in this document and some are not agreed in the WG.
I propose to eliminate this section.

4) The document uses the term "will" that is not compliant with RFC2119.
In general a better definition of what is mandatory and what is optional
is important in a requirement document.

5) Introduction - Bridging limitation. The first paragraph refers to
Ethernet networks used without Spanning Tree. This is irrelevant, since
Spanning Tree is always deployed in conjunction with Ethernet. The
correct contrast must be between Ethernet with Spanning Tree and
Ethernet with TRILL. The claim of a single broadcast/flooding domain is
incorrect since VLANs have solved this issue many years ago.

-- Silvano Gai

> From: [email-masked] [mailto:[email-masked]]
On
> Behalf Of The IESG
> Sent: Friday, March 16, 2007 2:53 PM
> To: IETF-Announce
> Cc: [email-masked]
> Subject: [rbridge] Last Call: draft-ietf-trill-routing-reqs (TRILL
> RoutingRequirements in Support of RBridges) to Informational RFC
> 
> The IESG has received a request from the Transparent Interconnection
of
> Lots of Links WG (trill) to consider the following document:
> 
> - 'TRILL Routing Requirements in Support of RBridges '
>    <draft-ietf-trill-routing-reqs-02.txt> as an Informational RFC
> 
> The IESG plans to make a decision in the next few weeks, and solicits
> final comments on this action.  Please send substantive comments to
the
> [email-masked] mailing lists by 2007-03-30. Exceptionally,
> comments may be sent to [email-masked] instead. In either case, please
> retain the beginning of the Subject line to allow automated sorting.
> 
> The file can be obtained via
>
http://www.ietf.org/internet-drafts/draft-ietf-trill-routing-reqs-02.txt
> 
> 
> IESG discussion can be tracked via
>
https://datatracker.ietf.org/public/pidtracker.cgi?command=view_id&dTag=
15
> 187&rfc_flag=0
> [email-masked]

Date: Tue, 20 Mar 2007 09:06:26 -0700
From: Radia Perlman <[email-masked]>
To: Erik Nordmark <[email-masked]>
Cc: [email-masked]
Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
Status: RO
Content-Length: 1136

Re Erik's:

 >>I don't see it being a reasonable default for RBridges.

Not just not reasonable as default, but *ever*. I'm sure we don't want 
to have a parameter
allowing RBridges to do shared learning.

Radia

Erik Nordmark wrote:

> Caitlin Bestler wrote:
>
>> My reading of Appendix B is that Shared Learning is allowed, where VID
>> is not a key field (i.e, there is only one FID supported). Appendix B
>> details some of the problems this creates. I believe the problems for
>> RBridges are even greater than for simple Bridges. This probably
>> justifies
>> restricting RBridges to the Independent Learning model, but any such
>> additional restriction should be explicitly stated.
>
>
> My understanding is is that shared learning is useless when VLANs are 
> used for isolation/security. With shared learning a host on VLAN A can 
> trivially cause a DoS attack VLAN B by just sending packets with the 
> source MAC address being the MAC address of another host on another VLAN.
>
> Thus I'd be surprised if it is used much in practice with bridges.
>
> I don't see it being a reasonable default for RBridges.
>
>    Erik

Content-class: urn:content-classes:message
Date: Tue, 20 Mar 2007 08:44:35 -0700
From: "J. R. Rivers" <[email-masked]>
To: "Erik Nordmark" <[email-masked]>, "Caitlin Bestler" <[email-masked]>
Cc: [email-masked], Radia Perlman <[email-masked]>
Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
Status: RO
Content-Length: 1513

If I'm remembering my history correctly, 3Com wanted to use this "mode"
to enable a short-cut routing mechanism (whose name escapes me now).

JR

> From: [email-masked] 
> [mailto:[email-masked]] On Behalf Of Erik Nordmark
> Sent: Tuesday, March 20, 2007 8:14 AM
> To: Caitlin Bestler
> Cc: [email-masked]; Radia Perlman
> Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
> 
> Caitlin Bestler wrote:
> 
> > My reading of Appendix B is that Shared Learning is 
> allowed, where VID
> > is not a key field (i.e, there is only one FID supported). 
> Appendix B
> > details some of the problems this creates. I believe the 
> problems for
> > RBridges are even greater than for simple Bridges. This probably
> > justifies
> > restricting RBridges to the Independent Learning model, but any such
> > additional restriction should be explicitly stated.
> 
> My understanding is is that shared learning is useless when VLANs are 
> used for isolation/security. With shared learning a host on 
> VLAN A can 
> trivially cause a DoS attack VLAN B by just sending packets with the 
> source MAC address being the MAC address of another host on 
> another VLAN.
> 
> Thus I'd be surprised if it is used much in practice with bridges.
> 
> I don't see it being a reasonable default for RBridges.
> 
>     Erik
> [email-masked]

Content-class: urn:content-classes:message
Date: Tue, 20 Mar 2007 08:29:24 -0700
From: "Caitlin Bestler" <[email-masked]>
To: "Erik Nordmark" <[email-masked]>
Cc: [email-masked], Radia Perlman <[email-masked]>
Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
Status: RO
Content-Length: 1961

Erik Nordmark wrote:
> Caitlin Bestler wrote:
> 
>> My reading of Appendix B is that Shared Learning is allowed, where
>> VID is not a key field (i.e, there is only one FID supported).
>> Appendix B details some of the problems this creates. I believe the
>> problems for RBridges are even greater than for simple Bridges. This
>> probably justifies restricting RBridges to the Independent Learning
>> model, but any such additional restriction should be explicitly
>> stated. 
> 
> My understanding is is that shared learning is useless when
> VLANs are used for isolation/security. With shared learning a
> host on VLAN A can trivially cause a DoS attack VLAN B by
> just sending packets with the source MAC address being the
> MAC address of another host on another VLAN.
> 
> Thus I'd be surprised if it is used much in practice with bridges.
> 
> I don't see it being a reasonable default for RBridges.
> 
>     Erik

It's a perfectly reasonable behavior, as long as the VID is at
least checked (i.e., it is an attribute, not a key field). A set
of RBridges that *all* used this approach would work perfectly fine.

The real issue is whether RBridges that will realistically tend to
use Independent Learning can easily accommodate some of their peers
doing Shared Learning, and if so, how.

For example, the rule could be that you can use Shared Learning as
long as no other RBridge can detect that you aren't using Independent
Learning. Or Shared/Independent Learning could be a flag that each
RBridge advertises. Or each RBridge could advertise it's VID->FID map.

All of these work, the question is which are justified. As much as I
dislike increasing the key size I can certainly see the advantages to
maintaining a distributed database of requiring all RBridges to use
Independent Learning. So I'd lean toward simply standardizing on
Independent Learning. But any new requirement is best explicitly
stated, not inferred from the data descriptions.

Date: Tue, 20 Mar 2007 08:14:09 -0700
From: Erik Nordmark <[email-masked]>
To: Caitlin Bestler <[email-masked]>
Cc: [email-masked], Radia Perlman <[email-masked]>
Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
Status: RO
Content-Length: 868

Caitlin Bestler wrote:

> My reading of Appendix B is that Shared Learning is allowed, where VID
> is not a key field (i.e, there is only one FID supported). Appendix B
> details some of the problems this creates. I believe the problems for
> RBridges are even greater than for simple Bridges. This probably
> justifies
> restricting RBridges to the Independent Learning model, but any such
> additional restriction should be explicitly stated.

My understanding is is that shared learning is useless when VLANs are 
used for isolation/security. With shared learning a host on VLAN A can 
trivially cause a DoS attack VLAN B by just sending packets with the 
source MAC address being the MAC address of another host on another VLAN.

Thus I'd be surprised if it is used much in practice with bridges.

I don't see it being a reasonable default for RBridges.

    Erik

Date: Mon, 19 Mar 2007 15:29:29 -0700
From: Dinesh G Dutt <[email-masked]>
To: Radia Perlman <[email-masked]>
Cc: [email-masked]
Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
Status: RO
Content-Length: 2937

Radia,

I prefer option b as well. Just as in regular 802.1d bridges, we need to 
age out MAC addresses periodically if we don't see them. One important 
point is that we should set the default age timer to be greater than the 
default ARP cache timer to avoid flooding due to aging out a MAC entry 
but with the hosts still retaining the ARP entry.

Dinesh
Radia Perlman wrote:
> Ah. Now I understand the issue, I think. You are saying that if MAC 
> addresses are globally unique,
> an RBridge attached only to VLAN A should still monitor the endnode 
> membership of the other VLANs,
> in case one of its endnodes moves and appears elsewhere.
>
> So I think we are talking about two alternatives:
> a) have all RBridges see all endnode memberships on all VLANs
> b) have RBridges only see endnode memberships for VLANs they are 
> directly attached to.
>
> I see the disadvantages of each as:
> a) extra bandwidth and storage for having endnode membership go everywhere
> b) less timely noticing an endnode has moved to another VLAN
>
> If I understand things correctly, I much prefer b), for the following 
> reasons:
> 1) option a offers an endnode in VLAN A the ability to annoy VLAN B by 
> pretending to be MAC addresses
>  belonging to VLAN B (so option b is safer and provides more separation 
> between VLANs)
> 2) option b) greatly lowers the burden on RBridges because they only 
> have to keep information for
> their own VLANs
> 3) option b) is likely to save bandwidth on distributing endnode information
> 4) there might be cases where an endnode might attach to multiple VLANs, 
> and the RBridges will
> panic unnecessarily
>
> Radia
>
> Caitlin Bestler wrote:
>
>   
>> The issue is not how the information is relayed, or how it is stored,
>> but who determines what information is relevant.
>>
>> If all RBridges track MAC Addresses scoped within a VLAN scope
>> then everything you suggest works perfectly fine. The only correction
>> needed would be to emphasize that this is indeed a requirement.
>>
>> But any RBridge that uses a global scope for MAC Addresses should
>> be told of new MAC detections on different VLANs because such
>> an RBridge would want to delete the old location.
>>
>> Unless the RBridge that detected the MAC address knows that all
>> other RBridges are using VLAN scoped MAC addresses they should
>> distribute the new information to *all* RBRidges, not just those on
>> the VLAN where the address was discovered.
>>
>>
>> [email-masked]
> [email-masked]

-- 
We make our world significant by the courage of our questions and by 
the depth of our answers.                               - Carl Sagan

Date: Mon, 19 Mar 2007 15:24:56 -0700
From: Dinesh G Dutt <[email-masked]>
To: Caitlin Bestler <[email-masked]>
Cc: [email-masked], Radia Perlman <[email-masked]>
Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
Status: RO
Content-Length: 2015

Hi Caitlin,

Caitlin Bestler wrote:
> My understanding of 802.1 specifications is that the following sequence
> is acceptable behavior for a bridge:
>
> 1) VLAN 7 MAC X is seen on port 1.
> 2) Bridge learns that MAC X is on port 1 with VLAN 7.
> 3) VLAN 8 MAC X is seen on port 1.
> 4) Bridge learns that MAC X is on port 1 with VLAN 8 (erasing the prior information about X).
>   
I don't think it happens this way. 802.1d bridges map the Vlan ID into a 
separate filtering database ID called FID and learn the MAC addresses 
along with the FID, not the VID. In independent VLAN learning, FID == 
VID whereas in shared VLAN learning, multiple VIDs map into a single 
FID. Therefore in your example above, Bridge learns MAC X on port 1, FID 
z where z is the same for VLANs 7 & 8 or it learns MAC x, FID z1 and MAC 
x, FID z2 where Vlan 7 = FID z1 and Vlan 8 = FID z2.

ARP/ND based learning is specific to TRILL and needs to decide its 
behavior. Silvano and I discuss this a bit in our presentation  on Wed.

Dinesh
> This is of course undesirable, but a livable quirk. It is best avoided by either
> ensuring that global MAC Addresses are truly unique, or ensuring that all bridges
> deployed in one subnet agree on exactly how unique a "globally unique" address is.
>
> RBridges do more than merely forward ethernet frames amongst themselves, they collaborate
> to implement a distributed ARP/ND proxy. That probably justifies stating that for purposes
> of the shared discovery data that MAC Addresses are assumed to be unique only as scoped
> within a VLAN, but I think we should acknowledge (and highlight) that we are narrowing
> the scope of legal behaviors that would have been available to a bridge.
>
>
>
> [email-masked]

-- 
We make our world significant by the courage of our questions and by 
the depth of our answers.                               - Carl Sagan

Content-class: urn:content-classes:message
Date: Mon, 19 Mar 2007 14:50:11 -0700
From: "Caitlin Bestler" <[email-masked]>
To: "Silvano Gai" <[email-masked]>, "Radia Perlman" <[email-masked]>
Cc: [email-masked], Erik Nordmark <[email-masked]>
Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
Status: RO
Content-Length: 777

Silvano Gai wrote:
> I think TRILL needs to do exactly what IEEE 802.1Q does.
> AN IEEE 802.1Q bridge has M VIDs and N FIDs with M >= 1, N >=1, M >=N.
> 
> N is never advertised outside the bridge, and the mapping of
> M to N is never advertised outside the bridge. TRILL must do the same.
> 
> Learning is done on {VID, MAC-address} pairs. TRILL must do the same.
> 
My reading of Appendix B is that Shared Learning is allowed, where VID
is not a key field (i.e, there is only one FID supported). Appendix B
details some of the problems this creates. I believe the problems for
RBridges are even greater than for simple Bridges. This probably
justifies
restricting RBridges to the Independent Learning model, but any such
additional restriction should be explicitly stated.

Content-class: urn:content-classes:message
Date: Mon, 19 Mar 2007 12:35:51 -0700
From: "J. R. Rivers" <[email-masked]>
To: "Russ White" <[email-masked]>, "Radia Perlman" <[email-masked]>
Cc: [email-masked]
Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
Status: RO
Content-Length: 4301

Seems like Radia's option B is a reasonable option.

Just because an RBridge has directly connected hosts on VLAN A doesn't
qualify it to understand what should (or shouldn't) be connected on VLAN
B.

There are many examples of locally assigned Ethernet addresses being
used within a subnet.  It doesn't seem like there is any fundamental
requirement for TRILL to change this.  Clearly... there needs to be a
policy for handling the same address connected to different RBridges in
the SAME VLAN.

My $0.02,

JR

> From: [email-masked] 
> [mailto:[email-masked]] On Behalf Of Russ White
> Sent: Monday, March 19, 2007 12:06 PM
> To: Radia Perlman
> Cc: [email-masked]
> Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
> 
> - From an IS-IS perspective, if we do a, we only have, I 
> think, a single
> process, while if we do b, it makes more sense to do multiple 
> processes,
> right? In reality, the way the TLVs are laid out today, we 
> can advertise
> each l2 address with a vid, or not, or a group of l2 addresses with a
> single vid to indicate they are all within this vid, or some other
> various combinations.
> 
> :-)
> 
> Russ
> 
> Radia Perlman wrote:
> > Ah. Now I understand the issue, I think. You are saying that if MAC 
> > addresses are globally unique,
> > an RBridge attached only to VLAN A should still monitor the endnode 
> > membership of the other VLANs,
> > in case one of its endnodes moves and appears elsewhere.
> > 
> > So I think we are talking about two alternatives:
> > a) have all RBridges see all endnode memberships on all VLANs
> > b) have RBridges only see endnode memberships for VLANs they are 
> > directly attached to.
> > 
> > I see the disadvantages of each as:
> > a) extra bandwidth and storage for having endnode 
> membership go everywhere
> > b) less timely noticing an endnode has moved to another VLAN
> > 
> > If I understand things correctly, I much prefer b), for the 
> following 
> > reasons:
> > 1) option a offers an endnode in VLAN A the ability to 
> annoy VLAN B by 
> > pretending to be MAC addresses
> >  belonging to VLAN B (so option b is safer and provides 
> more separation 
> > between VLANs)
> > 2) option b) greatly lowers the burden on RBridges because 
> they only 
> > have to keep information for
> > their own VLANs
> > 3) option b) is likely to save bandwidth on distributing 
> endnode information
> > 4) there might be cases where an endnode might attach to 
> multiple VLANs, 
> > and the RBridges will
> > panic unnecessarily
> > 
> > Radia
> > 
> > Caitlin Bestler wrote:
> > 
> >> The issue is not how the information is relayed, or how it 
> is stored,
> >> but who determines what information is relevant.
> >>
> >> If all RBridges track MAC Addresses scoped within a VLAN scope
> >> then everything you suggest works perfectly fine. The only 
> correction
> >> needed would be to emphasize that this is indeed a requirement.
> >>
> >> But any RBridge that uses a global scope for MAC Addresses should
> >> be told of new MAC detections on different VLANs because such
> >> an RBridge would want to delete the old location.
> >>
> >> Unless the RBridge that detected the MAC address knows that all
> >> other RBridges are using VLAN scoped MAC addresses they should
> >> distribute the new information to *all* RBRidges, not just those on
> >> the VLAN where the address was discovered.
> >>
> >>
> >> [email-masked]
> > [email-masked]
> - --
> [email-masked] CCIE <>< Grace Alone
> 
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.6 (MingW32)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
> 
> iD8DBQFF/t8wER27sUhU9OQRArzYAJ9WuW82Wcaeml5+OVEmb/OAChUO4wCg7cgY
> 6bS0r3gfLceCcCIUYXFR5HI=
> =F2tF
> -----END PGP SIGNATURE-----
> [email-masked]

Date: Mon, 19 Mar 2007 15:06:24 -0400
From: Russ White <[email-masked]>
To: Radia Perlman <[email-masked]>
Cc: [email-masked]
Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
Status: RO
Content-Length: 3152

- From an IS-IS perspective, if we do a, we only have, I think, a single
process, while if we do b, it makes more sense to do multiple processes,
right? In reality, the way the TLVs are laid out today, we can advertise
each l2 address with a vid, or not, or a group of l2 addresses with a
single vid to indicate they are all within this vid, or some other
various combinations.

:-)

Russ

Radia Perlman wrote:
> Ah. Now I understand the issue, I think. You are saying that if MAC 
> addresses are globally unique,
> an RBridge attached only to VLAN A should still monitor the endnode 
> membership of the other VLANs,
> in case one of its endnodes moves and appears elsewhere.
> 
> So I think we are talking about two alternatives:
> a) have all RBridges see all endnode memberships on all VLANs
> b) have RBridges only see endnode memberships for VLANs they are 
> directly attached to.
> 
> I see the disadvantages of each as:
> a) extra bandwidth and storage for having endnode membership go everywhere
> b) less timely noticing an endnode has moved to another VLAN
> 
> If I understand things correctly, I much prefer b), for the following 
> reasons:
> 1) option a offers an endnode in VLAN A the ability to annoy VLAN B by 
> pretending to be MAC addresses
>  belonging to VLAN B (so option b is safer and provides more separation 
> between VLANs)
> 2) option b) greatly lowers the burden on RBridges because they only 
> have to keep information for
> their own VLANs
> 3) option b) is likely to save bandwidth on distributing endnode information
> 4) there might be cases where an endnode might attach to multiple VLANs, 
> and the RBridges will
> panic unnecessarily
> 
> Radia
> 
> Caitlin Bestler wrote:
> 
>> The issue is not how the information is relayed, or how it is stored,
>> but who determines what information is relevant.
>>
>> If all RBridges track MAC Addresses scoped within a VLAN scope
>> then everything you suggest works perfectly fine. The only correction
>> needed would be to emphasize that this is indeed a requirement.
>>
>> But any RBridge that uses a global scope for MAC Addresses should
>> be told of new MAC detections on different VLANs because such
>> an RBridge would want to delete the old location.
>>
>> Unless the RBridge that detected the MAC address knows that all
>> other RBridges are using VLAN scoped MAC addresses they should
>> distribute the new information to *all* RBRidges, not just those on
>> the VLAN where the address was discovered.
>>
>>
>> [email-masked]
> [email-masked]

- --
[email-masked] CCIE <>< Grace Alone

Content-class: urn:content-classes:message
Date: Sat, 17 Mar 2007 12:27:23 -0700
From: "Caitlin Bestler" <[email-masked]>
To: "Silvano Gai" <[email-masked]>, "Radia Perlman" <[email-masked]>
Cc: [email-masked], Erik Nordmark <[email-masked]>
Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
Status: RO
Content-Length: 400

Silvano Gai wrote:
> Caitlin,
> 
> Is you problem with:
> 1) "Learning" or
> 2) "ARP/ND discovery"?
> 
> In my email I was only addressing 1), but I agree with you
> that we also need to address 2).
> 

Maybe I'm not playing spec lawyer well enough. But thinking
of how I would implement these features in a smart NIC I
simply don't see the distinction. It's all information keyed
by the L2 Index.

Content-class: urn:content-classes:message
Date: Sat, 17 Mar 2007 07:50:25 -0700
From: "Silvano Gai" <[email-masked]>
To: "Caitlin Bestler" <[email-masked]>, "Radia Perlman" <[email-masked]>
Cc: [email-masked], Erik Nordmark <[email-masked]>
Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
Status: RO
Content-Length: 2940

Caitlin,

Is you problem with: 
1) "Learning" or
2) "ARP/ND discovery"?

In my email I was only addressing 1), but I agree with you that we also
need to address 2).

-- Silvano

> From: Caitlin Bestler [mailto:[email-masked]]
> Sent: Friday, March 16, 2007 11:27 PM
> To: Silvano Gai; Radia Perlman
> Cc: [email-masked]; Erik Nordmark
> Subject: RE: [rbridge] VLAN Scoping / MAC Uniqueness
> 
> 
> 
> 
> From: Silvano Gai [mailto:[email-masked]]
> Sent: Fri 3/16/2007 2:16 AM
> To: Radia Perlman; Caitlin Bestler
> Cc: [email-masked]; Erik Nordmark
> Subject: RE: [rbridge] VLAN Scoping / MAC Uniqueness
> 
> 
> I think TRILL needs to do exactly what IEEE 802.1Q does.
> AN IEEE 802.1Q bridge has M VIDs and N FIDs with M >= 1, N >=1, M >=N.
> 
> N is never advertised outside the bridge, and the mapping of M to N is
> never advertised outside the bridge. TRILL must do the same.
> 
> Learning is done on {VID, MAC-address} pairs. TRILL must do the same.
> 
> We agreed that bridges learn from data frames and data frames are
always
> associated to a VID and RBridges learn from the per VLAN instance of
> ISIS.
> 
> Let's suppose that we have an RBridge with 2 VLANs (7 and 9) that are
> mapped to the same FID. MAC-A is learnt on VLAN=7 and automatically
> becomes available on VLAN=9.
> 
> Now the tricky question: should the RBridge announce MAC-A on both
VLAN
> 7 and VLAN 9 or only on VLAN 7?
> 
> IMHO the correct answer is that it MUST only announce it on VLAN 7,
i.e.
> it must only announce what it has learnt from data frames, not the
> internal associations it has made. If the information was learnt on
data
> packets, it would only be learnt on VLAN 7!
> 
> If we do this we are perfectly equivalent to an IEEE 802.1Q bridge.
> 
> -- Silvano
> 
> -----End Original Message-----
> 
> 
> My understanding of 802.1 specifications is that the following
sequence
> is acceptable behavior for a bridge:
> 
> 1) VLAN 7 MAC X is seen on port 1.
> 2) Bridge learns that MAC X is on port 1 with VLAN 7.
> 3) VLAN 8 MAC X is seen on port 1.
> 4) Bridge learns that MAC X is on port 1 with VLAN 8 (erasing the
prior
> information about X).
> 
> This is of course undesirable, but a livable quirk. It is best avoided
by
> either
> ensuring that global MAC Addresses are truly unique, or ensuring that
all
> bridges
> deployed in one subnet agree on exactly how unique a "globally unique"
> address is.
> 
> RBridges do more than merely forward ethernet frames amongst
themselves,
> they collaborate
> to implement a distributed ARP/ND proxy. That probably justifies
stating
> that for purposes
> of the shared discovery data that MAC Addresses are assumed to be
unique
> only as scoped
> within a VLAN, but I think we should acknowledge (and highlight) that
we
> are narrowing
> the scope of legal behaviors that would have been available to a
bridge.

Content-class: urn:content-classes:message
Date: Fri, 16 Mar 2007 23:26:44 -0700
From: "Caitlin Bestler" <[email-masked]>
To: "Silvano Gai" <[email-masked]>, "Radia Perlman" <[email-masked]>
Cc: [email-masked], Erik Nordmark <[email-masked]>
Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
Status: RO
Content-Length: 2372

-----Original Message-----
From: Silvano Gai [mailto:[email-masked]]
Sent: Fri 3/16/2007 2:16 AM
To: Radia Perlman; Caitlin Bestler
Cc: [email-masked]; Erik Nordmark
Subject: RE: [rbridge] VLAN Scoping / MAC Uniqueness

I think TRILL needs to do exactly what IEEE 802.1Q does.
AN IEEE 802.1Q bridge has M VIDs and N FIDs with M >= 1, N >=1, M >=N.

N is never advertised outside the bridge, and the mapping of M to N is
never advertised outside the bridge. TRILL must do the same.

Learning is done on {VID, MAC-address} pairs. TRILL must do the same.

We agreed that bridges learn from data frames and data frames are always
associated to a VID and RBridges learn from the per VLAN instance of
ISIS. 

Let's suppose that we have an RBridge with 2 VLANs (7 and 9) that are
mapped to the same FID. MAC-A is learnt on VLAN=7 and automatically
becomes available on VLAN=9.

Now the tricky question: should the RBridge announce MAC-A on both VLAN
7 and VLAN 9 or only on VLAN 7?

IMHO the correct answer is that it MUST only announce it on VLAN 7, i.e.
it must only announce what it has learnt from data frames, not the
internal associations it has made. If the information was learnt on data
packets, it would only be learnt on VLAN 7!

If we do this we are perfectly equivalent to an IEEE 802.1Q bridge.

-- Silvano

-----End Original Message-----

My understanding of 802.1 specifications is that the following sequence
is acceptable behavior for a bridge:

1) VLAN 7 MAC X is seen on port 1.
2) Bridge learns that MAC X is on port 1 with VLAN 7.
3) VLAN 8 MAC X is seen on port 1.
4) Bridge learns that MAC X is on port 1 with VLAN 8 (erasing the prior information about X).

This is of course undesirable, but a livable quirk. It is best avoided by either
ensuring that global MAC Addresses are truly unique, or ensuring that all bridges
deployed in one subnet agree on exactly how unique a "globally unique" address is.

RBridges do more than merely forward ethernet frames amongst themselves, they collaborate
to implement a distributed ARP/ND proxy. That probably justifies stating that for purposes
of the shared discovery data that MAC Addresses are assumed to be unique only as scoped
within a VLAN, but I think we should acknowledge (and highlight) that we are narrowing
the scope of legal behaviors that would have been available to a bridge.

To: IETF-Announce <[email-masked]>
From: The IESG <[email-masked]>
Date: Fri, 16 Mar 2007 17:52:56 -0400
Cc: [email-masked]
Subject: [rbridge] Last Call: draft-ietf-trill-routing-reqs (TRILL Routing Requirements in Support of RBridges) to Informational RFC
Reply-To: [email-masked]
Status: RO
Content-Length: 828

The IESG has received a request from the Transparent Interconnection of 
Lots of Links WG (trill) to consider the following document:

- 'TRILL Routing Requirements in Support of RBridges '
   <draft-ietf-trill-routing-reqs-02.txt> as an Informational RFC

The IESG plans to make a decision in the next few weeks, and solicits
final comments on this action.  Please send substantive comments to the
[email-masked] mailing lists by 2007-03-30. Exceptionally, 
comments may be sent to [email-masked] instead. In either case, please 
retain the beginning of the Subject line to allow automated sorting.

The file can be obtained via
http://www.ietf.org/internet-drafts/draft-ietf-trill-routing-reqs-02.txt

IESG discussion can be tracked via
https://datatracker.ietf.org/public/pidtracker.cgi?command=view_id&dTag=15187&rfc_flag=0

Content-class: urn:content-classes:message
Date: Fri, 16 Mar 2007 02:16:11 -0700
From: "Silvano Gai" <[email-masked]>
To: "Radia Perlman" <[email-masked]>, "Caitlin Bestler" <[email-masked]>
Cc: [email-masked], Erik Nordmark <[email-masked]>
Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
Status: RO
Content-Length: 5007

I think TRILL needs to do exactly what IEEE 802.1Q does.
AN IEEE 802.1Q bridge has M VIDs and N FIDs with M >= 1, N >=1, M >=N.

N is never advertised outside the bridge, and the mapping of M to N is
never advertised outside the bridge. TRILL must do the same.

Learning is done on {VID, MAC-address} pairs. TRILL must do the same.

We agreed that bridges learn from data frames and data frames are always
associated to a VID and RBridges learn from the per VLAN instance of
ISIS. 

Let's suppose that we have an RBridge with 2 VLANs (7 and 9) that are
mapped to the same FID. MAC-A is learnt on VLAN=7 and automatically
becomes available on VLAN=9.

Now the tricky question: should the RBridge announce MAC-A on both VLAN
7 and VLAN 9 or only on VLAN 7?

IMHO the correct answer is that it MUST only announce it on VLAN 7, i.e.
it must only announce what it has learnt from data frames, not the
internal associations it has made. If the information was learnt on data
packets, it would only be learnt on VLAN 7!

If we do this we are perfectly equivalent to an IEEE 802.1Q bridge.

-- Silvano

> From: [email-masked] [mailto:[email-masked]]
On
> Behalf Of Radia Perlman
> Sent: Tuesday, March 13, 2007 11:26 AM
> To: Caitlin Bestler
> Cc: [email-masked]; Erik Nordmark
> Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
> 
> The current spec (and my understanding) is that membership of VLAN A
> would be distributed
> as link state information in IS-IS. If we include this in the link
state
> information in the core instance,
> then every RBridge has to store it all, since IS-IS flooding requires
> every RBridge to store all (the most
> recently generated from each RBridge) link state information. R1
doesn't
> just look at the link state
> information and decide what it's interested in and delete the rest. R1
> has to keep it in order for
> the reliable flooding to work.
> 
> With the way the current spec is written, endnode information is *NOT*
> distributed in the core instance.
> Instead, VLAN A information
> is distributed like a VLAN A multicast data packet, which means the
core
> RBridges distribute
> it along a tree, filtered so as not to unnecessarily go on branches
that
> don't lead to VLAN A links.
> 
> With that design, the only RBridges that would see information about
> VLAN A endnode membership are
> RBridges attached to VLAN A.
> The topology that the IS-IS instance for distributing VLAN A sees is
as
> a single hop, with all RBridges
> attached to VLAN A being neighbors.
> 
> There is a variant of this design that would have the property you are
> imagining; that all endnode information
> goes everywhere, gets seen by all RBridges, and that only RBridges in
> VLAN A have to actually store the
> information. That is to have a multicast distribution tree that sends
> things to *all* RBridges that attach to
> endnodes. This is a subtly different distribution mechanism than the
> core instance. If there are core RBridges,
> not attached to any endnodes, they would just pass the link state
> information along. And a "border" RBridge R2
> (one that does attach to endnodes) would be allowed, if it chose, to
> simply scan VLAN A information and
> then delete it, since R2 would never need to forward this link state
> ifnormation to a neighbor.
> 
> I still prefer the way the spec is now, since I think the advantage of
> noticing endnodes moving to a
> different VLAN is outweighed by the downsides (more cost to distribute
> endnode information, and
> the ability for nasty behavior of an endnode in VLAN A to disrupt VLAN
B
> maliciously, and confusion
> when nonmaliciously an endnode resides on multiple VLANs with the same
> MAC address.
> 
> Radia
> 
> 
> 
> Caitlin Bestler wrote:
> 
> >Radia Perlman wrote:
> >
> >
> >>With IS-IS flooding, an RBridge can't simply scan the
> >>information for VLAN A and then delete it.
> >>It has to store it, since LSPs have to be flooded reliably,
> >>so each RBridge would have to keep all endnode information for all
> >>VLANs.
> >>
> >>
> >>
> >
> >I'm not following. If an RBridge is using globally scoped MAC
> >addresses, and it receives endnode information for a VLAN that
> >it does not support, the only thing I can see that it would have
> >to do is to delete any information it had on the same MAC address
> >on a different VLAN.
> >
> >It would never send to VLAN A, so why would it retain any information
> >once the contradictory data was eliminated? A deleted record can be
> >considered to be reliably delected, can't it?
> >
> >If it's knowledge of MAC Addresses is VLAN scoped then nothing
> >about VLAN A is ever relevant. That is why it is a very simple
> >solution, but one that creates an RBridge requirement for scoped
> >learning that does not apply to simple Bridges.
> >
> >
> >
> 
> [email-masked]

Content-class: urn:content-classes:message
Date: Fri, 16 Mar 2007 02:16:15 -0700
From: "Silvano Gai" <[email-masked]>
To: "Erik Nordmark" <[email-masked]>, "Dino Farinacci" <[email-masked]>
Cc: [email-masked], [email-masked]
Subject: Re: [rbridge] How to do RPF checks for bidirectional RBridge trees
Status: RO
Content-Length: 2714

EriK,

inline

> From: Erik Nordmark [mailto:[email-masked]]
> Sent: Friday, March 09, 2007 3:59 PM
> To: Dino Farinacci
> Cc: Silvano Gai; [email-masked]; [email-masked]
> Subject: Re: [rbridge] How to do RPF checks for bidirectional RBridge
> trees
> 
> Dino Farinacci wrote:
> 
> > The simplest example is when using multi-access links. The fact that
> > some switches use the multi-access link as an oif and others use the
> > link as an expected-incoming interface.
> >
> > So if the ones that are using the multi-access link as an oif happen
to
> > join the root through one of the other switches (which can be many
hops
> > away), then the multicast forwarding (and replication) loop occurs.
> 
> With TRILL be clearly have to be careful at the edge (the ingress and
> egress rbridges) when it comes to the relationship between 802.1D and
> designated RBridge in order to handle topology changes. In particular
> since the frames without the TRILL header header doesn't have a TTL.
> 
> But leaving that aside for a moment, the way Radia described the
> forwarding check (the "expected incoming adjacency" check), the
transit
> paths between the RBridges would act as point-to-point due to checking
> both the incoming port and the previous hop RBridge.

IMHO you can build the most sophisticated RPF check, but it will always
be based on local information. Since it is well known that the local
information of two RBridges may be temporary out of sync, due to the way
IS-IS works, the possibility of a temporary loop is concrete.

Temporary loop == Broadcast Storm

-- Silvano

> 
> It was in such a pt-pt topology that I tried to find a simple example
of
> a temporary loop.
> 
> >> Have you observed temporary IP Multicast loops? (apart from the PIM
SM
> >> ones before ASSERTS where added). What was the topology and change
> >> necessary to trigger those?
> >
> > Oh definitely, when two routers think the RP for a (*,G) are
different.
> > And this can happen when the topology is in steady state.
> >
> > And this happens due to misconfiguration or in the early days of PIM
> > when you detect one RP down, you move to another one, but others in
the
> > topology stayed with the original one. Again, in a steady-state
> > topology. The reason some thought the RP went down is because the
> > network was congested and the RP keepalives were all lost. Those
were
> > interesting times.  ;-)
> >
> > So this can happen in IS-IS as well if the not everyone is using the
> > same roots.
> 
> But AFAICT that type of loop can't happen in TRILL since we have an
> explicit designator for the tree to use in every multi-destination
data
> frame.
>     Erik

Date: Tue, 13 Mar 2007 20:07:20 +0100
From: "Jose Morales Barroso" <[email-masked]>
To: [email-masked]
Subject: Re: [rbridge] Global MAC Addresses
Reply-To: [email-masked]
Status: RO
Content-Length: 1924

Dear colleagues:

UETS/EFR architecture uses locally administered (U/L bit = 1)
MAC addresses, "taking  advantage of interface identifiers
with universal scope", as described at:

 http://www.lmdata.es/uets/draft/uets-efr-addressing.pdf

This technology permits to switch Ethernet frames at the physical
layer, making it unnecessary to use routing, bridging, or signaling
techniques. The Destination Address has the path information,
and does not need tables of switching, look-up or forwarding:

 http://www.lmdata.es/uets/draft/uets-efr-scenario-wwn.pdf

Using MAC-in-MAC or SNAP, each connection support another
Ethernet domain.  In this case, the addressing will be huge, even
bigger than IPv6, making possible to build a "Global Ethernet".

You have more information in the UETS/EFR page:

 http://www.lmdata.es/uets.htm

Jose Morales
[email-masked]

Eric Gray (LO/EUS) wrote:

>> Interstingly enough, I am really sure that the IPv6 folks
>> have looked at this before.  And I am also sure that at least one
>> suggested solution has been considered.  I do not know if any (of
>> possibly many) proposals were actually adopted but, if none were,
>> it would be because the IPv6 people did not see this as a problem.
>
>AFAIK the IPv6 folks have not considered this.
>But as you pointed out, the global IPv6 addresses would still be
>globally unique since they would have different subnet prefixes.
>
> The only issue for IPv6 is that this (and host-side virtualization in
> general) means that the the semantics of the universal bit in the
> modified EUI-64 format is even weaker than before.
> But there is no protocol to date which assumes anything about the
> semantics of this bit. As RFC 4291 says:

>   The use of the universal/local bit in the Modified EUI-64 format
>   identifier is to allow development of future technology that can take
>   advantage of interface identifiers with universal scope.

>  Erik

Content-class: urn:content-classes:message
Date: Tue, 13 Mar 2007 11:36:47 -0700
From: "Caitlin Bestler" <[email-masked]>
To: "Radia Perlman" <[email-masked]>
Cc: [email-masked], Erik Nordmark <[email-masked]>
Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
Status: RO
Content-Length: 2860

Radia Perlman wrote:
> The current spec (and my understanding) is that membership of
> VLAN A would be distributed as link state information in
> IS-IS. If we include this in the link state information in
> the core instance, then every RBridge has to store it all,
> since IS-IS flooding requires every RBridge to store all (the
> most recently generated from each RBridge) link state
> information. R1 doesn't just look at the link state
> information and decide what it's interested in and delete the
> rest. R1 has to keep it in order for the reliable flooding to work.
> 
> With the way the current spec is written, endnode information
> is *NOT* distributed in the core instance.
> Instead, VLAN A information
> is distributed like a VLAN A multicast data packet, which
> means the core RBridges distribute it along a tree, filtered
> so as not to unnecessarily go on branches that don't lead to
> VLAN A links.
> 
> With that design, the only RBridges that would see
> information about VLAN A endnode membership are RBridges
> attached to VLAN A.
> The topology that the IS-IS instance for distributing VLAN A
> sees is as a single hop, with all RBridges attached to VLAN A being
> neighbors. 
> 
> There is a variant of this design that would have the
> property you are imagining; that all endnode information goes
> everywhere, gets seen by all RBridges, and that only RBridges
> in VLAN A have to actually store the information. That is to
> have a multicast distribution tree that sends things to *all*
> RBridges that attach to endnodes. This is a subtly different
> distribution mechanism than the core instance. If there are
> core RBridges, not attached to any endnodes, they would just
> pass the link state information along. And a "border" RBridge
> R2 (one that does attach to endnodes) would be allowed, if it
> chose, to simply scan VLAN A information and then delete it,
> since R2 would never need to forward this link state
> ifnormation to a neighbor.
> 
> I still prefer the way the spec is now, since I think the
> advantage of noticing endnodes moving to a different VLAN is
> outweighed by the downsides (more cost to distribute endnode
> information, and the ability for nasty behavior of an endnode
> in VLAN A to disrupt VLAN B maliciously, and confusion when
> nonmaliciously an endnode resides on multiple VLANs with the
> same MAC address.
> 
> Radia
> 

It might be sufficient to merely note that any RBridge attempting
to maintain global scoping of MAC Addresses needs to be aware that
the distribution of endnode information is optimized for per-VLAN
scoping. Because of this it MUST NOT rely on prompt notification
of migration of a MAC Address to a new VLAN on a different RBridge.

I also agree that it makes sense to optimize the wire protocol
on the assumption that typical RBridges will do per-VLAN learning.

Date: Tue, 13 Mar 2007 11:26:11 -0700
From: Radia Perlman <[email-masked]>
To: Caitlin Bestler <[email-masked]>
Cc: [email-masked], Erik Nordmark <[email-masked]>
Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
Status: RO
Content-Length: 3328

The current spec (and my understanding) is that membership of VLAN A 
would be distributed
as link state information in IS-IS. If we include this in the link state 
information in the core instance,
then every RBridge has to store it all, since IS-IS flooding requires 
every RBridge to store all (the most
recently generated from each RBridge) link state information. R1 doesn't 
just look at the link state
information and decide what it's interested in and delete the rest. R1 
has to keep it in order for
the reliable flooding to work.

With the way the current spec is written, endnode information is *NOT* 
distributed in the core instance.
Instead, VLAN A information
is distributed like a VLAN A multicast data packet, which means the core 
RBridges distribute
it along a tree, filtered so as not to unnecessarily go on branches that 
don't lead to VLAN A links.

With that design, the only RBridges that would see information about 
VLAN A endnode membership are
RBridges attached to VLAN A.
The topology that the IS-IS instance for distributing VLAN A sees is as 
a single hop, with all RBridges
attached to VLAN A being neighbors.

There is a variant of this design that would have the property you are 
imagining; that all endnode information
goes everywhere, gets seen by all RBridges, and that only RBridges in 
VLAN A have to actually store the
information. That is to have a multicast distribution tree that sends 
things to *all* RBridges that attach to
endnodes. This is a subtly different distribution mechanism than the 
core instance. If there are core RBridges,
not attached to any endnodes, they would just pass the link state 
information along. And a "border" RBridge R2
(one that does attach to endnodes) would be allowed, if it chose, to 
simply scan VLAN A information and
then delete it, since R2 would never need to forward this link state 
ifnormation to a neighbor.

I still prefer the way the spec is now, since I think the advantage of 
noticing endnodes moving to a
different VLAN is outweighed by the downsides (more cost to distribute 
endnode information, and
the ability for nasty behavior of an endnode in VLAN A to disrupt VLAN B 
maliciously, and confusion
when nonmaliciously an endnode resides on multiple VLANs with the same 
MAC address.

Radia

Caitlin Bestler wrote:

>Radia Perlman wrote:
>  
>
>>With IS-IS flooding, an RBridge can't simply scan the
>>information for VLAN A and then delete it.
>>It has to store it, since LSPs have to be flooded reliably,
>>so each RBridge would have to keep all endnode information for all
>>VLANs. 
>>
>>    
>>
>
>I'm not following. If an RBridge is using globally scoped MAC
>addresses, and it receives endnode information for a VLAN that
>it does not support, the only thing I can see that it would have
>to do is to delete any information it had on the same MAC address
>on a different VLAN.
>
>It would never send to VLAN A, so why would it retain any information
>once the contradictory data was eliminated? A deleted record can be
>considered to be reliably delected, can't it?
>
>If it's knowledge of MAC Addresses is VLAN scoped then nothing
>about VLAN A is ever relevant. That is why it is a very simple
>solution, but one that creates an RBridge requirement for scoped
>learning that does not apply to simple Bridges.
>
>  
>

Content-class: urn:content-classes:message
Date: Tue, 13 Mar 2007 10:59:38 -0700
From: "Caitlin Bestler" <[email-masked]>
To: "Radia Perlman" <[email-masked]>
Cc: [email-masked], Erik Nordmark <[email-masked]>
Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
Status: RO
Content-Length: 971

Radia Perlman wrote:
> With IS-IS flooding, an RBridge can't simply scan the
> information for VLAN A and then delete it.
> It has to store it, since LSPs have to be flooded reliably,
> so each RBridge would have to keep all endnode information for all
> VLANs. 
> 

I'm not following. If an RBridge is using globally scoped MAC
addresses, and it receives endnode information for a VLAN that
it does not support, the only thing I can see that it would have
to do is to delete any information it had on the same MAC address
on a different VLAN.

It would never send to VLAN A, so why would it retain any information
once the contradictory data was eliminated? A deleted record can be
considered to be reliably delected, can't it?

If it's knowledge of MAC Addresses is VLAN scoped then nothing
about VLAN A is ever relevant. That is why it is a very simple
solution, but one that creates an RBridge requirement for scoped
learning that does not apply to simple Bridges.

Date: Tue, 13 Mar 2007 10:54:47 -0700
From: Radia Perlman <[email-masked]>
To: Caitlin Bestler <[email-masked]>
Cc: [email-masked], Erik Nordmark <[email-masked]>
Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
Status: RO
Content-Length: 1064

With IS-IS flooding, an RBridge can't simply scan the information for 
VLAN A and then delete it.
It has to store it, since LSPs have to be flooded reliably, so each 
RBridge would have to keep all
endnode information for all VLANs.

Radia

Caitlin Bestler wrote:

>Radia Perlman wrote:
>
>  
>
>>The advantage of this is that flooding of endnode information 
>>for VLAN A need not be stored by any RBridges except those
>>that attach to VLAN A.
>>    
>>
>
>That line leapt out at me on re-read.
>
>*If* we are going to allow RBridges to have the traditional
>bridge option of using scoped or global MAC address learning,
>then we do indeed have to flood endnode information about 
>VLAN A. This is not so that RBridges that are not part of
>VLAN A can *store* the new endnode information, it is so
>they can *delete* contradictory information.
>
>Alternatively, if we explicitly require scoped learning,
>then any RBridge that is not part of VLAN A cannot have
>contradictory information. Then there would be no need
>to flood endnode advertisements.
>
>
>  
>

Date: Tue, 13 Mar 2007 10:40:44 -0700
From: Radia Perlman <[email-masked]>
To: Caitlin Bestler <[email-masked]>
Cc: [email-masked]
Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
Status: RO
Content-Length: 2147

Ah. Now I understand the issue, I think. You are saying that if MAC 
addresses are globally unique,
an RBridge attached only to VLAN A should still monitor the endnode 
membership of the other VLANs,
in case one of its endnodes moves and appears elsewhere.

So I think we are talking about two alternatives:
a) have all RBridges see all endnode memberships on all VLANs
b) have RBridges only see endnode memberships for VLANs they are 
directly attached to.

I see the disadvantages of each as:
a) extra bandwidth and storage for having endnode membership go everywhere
b) less timely noticing an endnode has moved to another VLAN

If I understand things correctly, I much prefer b), for the following 
reasons:
1) option a offers an endnode in VLAN A the ability to annoy VLAN B by 
pretending to be MAC addresses
 belonging to VLAN B (so option b is safer and provides more separation 
between VLANs)
2) option b) greatly lowers the burden on RBridges because they only 
have to keep information for
their own VLANs
3) option b) is likely to save bandwidth on distributing endnode information
4) there might be cases where an endnode might attach to multiple VLANs, 
and the RBridges will
panic unnecessarily

Radia

Caitlin Bestler wrote:

>The issue is not how the information is relayed, or how it is stored,
>but who determines what information is relevant.
>
>If all RBridges track MAC Addresses scoped within a VLAN scope
>then everything you suggest works perfectly fine. The only correction
>needed would be to emphasize that this is indeed a requirement.
>
>But any RBridge that uses a global scope for MAC Addresses should
>be told of new MAC detections on different VLANs because such
>an RBridge would want to delete the old location.
>
>Unless the RBridge that detected the MAC address knows that all
>other RBridges are using VLAN scoped MAC addresses they should
>distribute the new information to *all* RBRidges, not just those on
>the VLAN where the address was discovered.
>
>
>[email-masked]

Content-class: urn:content-classes:message
Date: Tue, 13 Mar 2007 10:37:09 -0700
From: "Caitlin Bestler" <[email-masked]>
To: "Radia Perlman" <[email-masked]>, "Erik Nordmark" <[email-masked]>
Cc: [email-masked]
Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
Status: RO
Content-Length: 759

Radia Perlman wrote:

> The advantage of this is that flooding of endnode information 
> for VLAN A need not be stored by any RBridges except those
> that attach to VLAN A.

That line leapt out at me on re-read.

*If* we are going to allow RBridges to have the traditional
bridge option of using scoped or global MAC address learning,
then we do indeed have to flood endnode information about 
VLAN A. This is not so that RBridges that are not part of
VLAN A can *store* the new endnode information, it is so
they can *delete* contradictory information.

Alternatively, if we explicitly require scoped learning,
then any RBridge that is not part of VLAN A cannot have
contradictory information. Then there would be no need
to flood endnode advertisements.

Content-class: urn:content-classes:message
Date: Tue, 13 Mar 2007 07:23:55 -0700
From: "Caitlin Bestler" <[email-masked]>
To: [email-masked]
Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
Status: RO
Content-Length: 737

The issue is not how the information is relayed, or how it is stored,
but who determines what information is relevant.

If all RBridges track MAC Addresses scoped within a VLAN scope
then everything you suggest works perfectly fine. The only correction
needed would be to emphasize that this is indeed a requirement.

But any RBridge that uses a global scope for MAC Addresses should
be told of new MAC detections on different VLANs because such
an RBridge would want to delete the old location.

Unless the RBridge that detected the MAC address knows that all
other RBridges are using VLAN scoped MAC addresses they should
distribute the new information to *all* RBRidges, not just those on
the VLAN where the address was discovered.

Date: Tue, 13 Mar 2007 10:23:35 +0100
From: Jose Morales Barroso <[email-masked]>
To: [email-masked], [email-masked]
Cc: [email-masked]
Subject: Re: [rbridge] Global MAC Addresses
Status: RO
Content-Length: 3107

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Dear colleagues:<br>
<br>
UETS/EFR architecture uses locally administered MAC addresses (U/L bit
= 1), <br>
as you can see at:<br>
<br>
<a class="moz-txt-link-freetext" href="http://www.lmdata.es/uets/draft/uets-efr-addressing.pdf">http://www.lmdata.es/uets/draft/uets-efr-addressing.pdf</a><br>
<br>
This technology permits to switch Ethernet frames directly at the
physical layer, <br>
making it unnecessary to use routing, bridging, or signaling
techniques. <br>
The Destination Address has the routing information, and does not need
tables<br>
of switching, look-up or forwarding, as described in:<br>
<br>
<a class="moz-txt-link-freetext" href="http://www.lmdata.es/uets/draft/uets-efr-scenario-wwn.pdf">http://www.lmdata.es/uets/draft/uets-efr-scenario-wwn.pdf</a><br>
<br>
<br>
Using MAC-in-MAC or SNAP, each connection will support another Ethernet
domain.<br>
In this case, the addressing will be huge, even bigger than IPv6,
making possible<br>
to build a "Global Ethernet".<br>
<br>
Jose Morales<br>
<br>
<br>
<blockquote type="cite">
  <div class="moz-text-plain" wrap="true" graphical-quote="true"
 style="font-size: 12px;" lang="x-western">
  <pre wrap="">Eric Gray (LO/EUS) wrote:

  </pre>
  <blockquote type="cite">
    <pre wrap=""><span class="moz-txt-citetags">&gt; </span>	Interstingly enough, I am really sure that the IPv6 folks 
<span class="moz-txt-citetags">&gt; </span>have looked at this before.  And I am also sure that at least one
<span class="moz-txt-citetags">&gt; </span>suggested solution has been considered.  I do not know if any (of
<span class="moz-txt-citetags">&gt; </span>possibly many) proposals were actually adopted but, if none were,
<span class="moz-txt-citetags">&gt; </span>it would be because the IPv6 people did not see this as a problem.
    </pre>
  </blockquote>
  <pre wrap=""><!---->
AFAIK the IPv6 folks have not considered this.
But as you pointed out, the global IPv6 addresses would still be 
globally unique since they would have different subnet prefixes.

The only issue for IPv6 is that this (and host-side virtualization in 
general) means that the the semantics of the universal bit in the 
modified EUI-64 format is even weaker than before.
But there is no protocol to date which assumes anything about the 
semantics of this bit. As RFC 4291 says:

    The use of the universal/local bit in the Modified EUI-64 format
    identifier is to allow development of future technology that can take
    advantage of interface identifiers with universal scope.

   Erik

_______________________________________________
rbridge mailing list
<a class="moz-txt-link-abbreviated" href="mailto:[email-masked]">[email-masked]</a>
<a class="moz-txt-link-freetext"
 href="http://mailman.postel.org/mailman/listinfo/rbridge">http://mailman.postel.org/mailman/listinfo/rbridge</a>

  </pre>
  </div>
</blockquote>
</body>
</html>

Date: Mon, 12 Mar 2007 18:35:32 -0700
From: Radia Perlman <[email-masked]>
To: Caitlin Bestler <[email-masked]>
Cc: [email-masked]
Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
Status: RO
Content-Length: 2563

I'm not sure I understand what you're saying. But I think the issue is 
how link state information is distributed.

The core instance link state information is flooded to all RBridges, but 
transmitted hop by hop. That means
every RBridge, including core RBridges that do not attach to any VLANs, 
have to store this information,
in addition to forwarding it, in case it needs to be retransmitted to a 
neighbor, or transmitted to a new
neighbor that might come up later.

As the spec currently is, the endnode information is multicast. So R1, 
attached to VLAN A, just multicasts
a single copy of its VLAN A information, and it gets distributed by the 
core like any VLAN A multicast
data packet. It magically gets received just by RBridges attached to 
VLAN A. Only RBridges actually
attached to VLAN A need to store this information. It is not sent 
reliably neighbor-to-neighbor. Only
R1 has to ensure that all the relevant RBridges have received the link 
state information about VLAN A.
THe intervening RBridges just forward it and forget it.

So as I said, you could get rid of running the per-instance IS-IS 
hellos, by just listing, in the core
instance LSP, which VLANs you attach to. There really isn't anything 
that the per-VLAN instance
of the hello protocol
needs to know that isn't already in the core instance link state 
information, so we could eliminate running
4000 Hello and Designated RBridge elections.

However, the per-VLAN link state information (listing the endnodes) is 
potentially large enough that
I believe it is useful to avoid having non-VLAN-A RBridges keep track of 
the VLAN A endnodes (and
VLAN A IP groups and multicast routers).

And if we are using multicast to distribute, I don't see how R1 can 
choose which RBridges to send the
information to, or to format it differently depending on the recipient.

For as many as possible of these sorts of things that are OK to do
either this way or that way, I think we should choose,
rather than making it a parameter.

Radia

Caitlin Bestler wrote:

>One suggestion that I think is adequate:
>
>RBridge Hello messages would be from the core instance
>and sent to core instance. It would list the VLAN IDs
>and whether it maintained a single destination database
>or a per VLAN database.
>
>In the latter case, other RBridges would only forward
>relevant advertisements to RBridges that advertised the
>relevant VLAN. An RBridge using an unscoped database
>would be send all address advertisements.
>
>Alternately, we could explicitly require per VLAN scoping.
>
>
>
>  
>

Content-class: urn:content-classes:message
Date: Mon, 12 Mar 2007 16:00:25 -0700
From: "Caitlin Bestler" <[email-masked]>
To: "Radia Perlman" <[email-masked]>, "Erik Nordmark" <[email-masked]>
Cc: [email-masked]
Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
Status: RO
Content-Length: 501

One suggestion that I think is adequate:

RBridge Hello messages would be from the core instance
and sent to core instance. It would list the VLAN IDs
and whether it maintained a single destination database
or a per VLAN database.

In the latter case, other RBridges would only forward
relevant advertisements to RBridges that advertised the
relevant VLAN. An RBridge using an unscoped database
would be send all address advertisements.

Alternately, we could explicitly require per VLAN scoping.

Date: Mon, 12 Mar 2007 15:49:36 -0700
From: Radia Perlman <[email-masked]>
To: Erik Nordmark <[email-masked]>
Cc: [email-masked]
Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
Status: RO
Content-Length: 3087

Yes. There are three ways of sending per-VLAN endnode information:

a) a single instance of IS-IS for both "core" information and "endnode" 
information. Endnode
information would be marked as (VLAN ID, {set of endnodes}).
RBridges that are
not in VLAN A would need to store the VLAN A endnode information, and 
all endnode information would
go to all parts of the campus

b) two instances of  IS-IS: one for core information (which RBridges are 
connected to which other
RBridges, and which VLANs are attached to which RBridges), and one for 
endnode information. Not
sure what advantage/disadvantage this has over a), since all link state 
information would go to all RBridges.

c) n+1 instance of IS-IS, where n is the number of VLANs that are in 
use. Each RBridge R1 would run
k+1 instances of IS-IS; the core instance, and one for each of the k 
VLANs that R1 is attached to.
The advantage of this is that flooding of endnode information for VLAN A 
need not be stored by
any RBridges except those that attach to VLAN A. Also, because the core 
instance enables flooding
of VLAN multicast just to links that are interested (RBridges that are 
attached to VLAN A), there is
further optimization because this information does not need to traverse 
all the links in the campus; just
those needed to get the packet from the RBridge that originates the LSP 
for VLAN A endnode
information to the RBridges that attach to VLAN A.

I prefer c). I don't think there is that much overhead to running n 
instances. It's really like separating
the endnode information into distinct LSPs. Except for...the Hello 
Protocol. If all RBridges are connected
to 4000 VLANs, then they'd all be sending 4000 Hellos, one for each 
instance. The core instance Hellos
are a bit different -- they only go to direct neighbors. But the VLAN 
instances get flooded by the core
to all links throughout the campus attached to that VLAN.

We could eliminate the hello protocol for the per-VLAN instance of 
IS-IS, since there's enough information
in the core instance for all VLAN A RBridges to know about each other 
and decide which should be
Designated (for sending out CSNPs).

Radia

Erik Nordmark wrote:

> [email-masked] wrote:
>
>> I don't agree that we have to explicitly advertise which VLAN a MAC 
>> address belongs to, because
>> each VLAN runs its own instance of IS-IS in which endnodes are 
>> announced. This could be looked
>> at as implicitly advertising the VLAN. In other words, the endnode 
>> information is announced in
>> an instance of IS-IS distinguished by having an inner VLAN tag (I 
>> think that's how we differentiate it).
>> Core RBridges forward it like a multicast packet for that VLAN. Only 
>> border RBridges of that VLAN actually
>> store the information.
>
>
> That is true if you are required to have N IS-IS VLAN instances when 
> there are N VLANs in use.
>
> I don't know if that is overkill when all the RBridges are all part of 
> all N VLANs - basically when it is just different subsets of 
> stations/hosts that make up the different VLANs.
>
>    Erik

Date: Mon, 12 Mar 2007 14:44:19 -0700
From: Erik Nordmark <[email-masked]>
To: [email-masked]
Cc: [email-masked]
Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
Status: RO
Content-Length: 853

[email-masked] wrote:
> I don't agree that we have to explicitly advertise which VLAN a MAC address belongs to, because
> each VLAN runs its own instance of IS-IS in which endnodes are announced. This could be looked
> at as implicitly advertising the VLAN. In other words, the endnode information is announced in
> an instance of IS-IS distinguished by having an inner VLAN tag (I think that's how we differentiate it).
> Core RBridges forward it like a multicast packet for that VLAN. Only border RBridges of that VLAN actually
> store the information.

That is true if you are required to have N IS-IS VLAN instances when 
there are N VLANs in use.

I don't know if that is overkill when all the RBridges are all part of 
all N VLANs - basically when it is just different subsets of 
stations/hosts that make up the different VLANs.

    Erik

Content-class: urn:content-classes:message
Date: Sun, 11 Mar 2007 18:25:32 -0700
From: "Caitlin Bestler" <[email-masked]>
To: [email-masked], "Erik Nordmark" <[email-masked]>
Cc: [email-masked]
Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
Status: RO
Content-Length: 2413

[email-masked] wrote:
> I don't agree that we have to explicitly advertise which VLAN
> a MAC address belongs to, because each VLAN runs its own
> instance of IS-IS in which endnodes are announced. This could
> be looked at as implicitly advertising the VLAN. In other
> words, the endnode information is announced in an instance of
> IS-IS distinguished by having an inner VLAN tag (I think
> that's how we differentiate it).
> Core RBridges forward it like a multicast packet for that
> VLAN. Only border RBridges of that VLAN actually store the
> information. 
> 
> Radia
> 

VLAN tagging the endnode announcement assumes that the 
announcement is only relevant within the VLAN. That still
leaves the following scenario:

	RBridge I participates in VLANs R and S.
	It uses a single (VLAN independent) MAC learning database.
	It believes the MAC X is on a local port for VLAN R.

	RBridge J participates in VLANs S and T.
	It uses a single (VLAN independent) MAC learning database.
	
	RBridge K participates in VLAN T
	It detects MAC X on a local port for VLAN T.

It would share that information with RBridge J, but not RBridge I.
RBRidge J can now receive contradictory information from I and K.

This is avoided if RBridge K does not presume which RBridges 
need this informaton, or if RBridge I advertises itself as
wanting information for all VLANs (that is, it is a member
of VLAN T, but only for purposes of getting endnode announcements).

As for the more general problem, obviously any CRED which
has varying concepts on the scope over which a MAC address
is unique is going to have potential problems. But most of
that problem is well outside of TRILL's scope. 

The issue that is within TRILL's scope is ensuring that 
endnode announcements are distributed everywhere that
the information is needed.

The prior drafts explicitly assumed that information about
MAC Address X was not relevant to any RBridge that was not
in the same VLAN. This is only a valid assumption if port
learning is being done on a per VLAN basis.

The current drafts do not have this problem, because they
merely state that distribution might be limited based upon
VLAN (which would be appropriate if the RBridges are known
to have compatible scoping concepts).

The language could be more explicit, but to be realistic,
network administrators would generally avoid allowing
this problem to exist in the first place.

Date: Sat, 10 Mar 2007 23:25:14 -0800
From: [email-masked]
To: Erik Nordmark <[email-masked]>
Priority: normal
Cc: [email-masked]
Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
Status: RO
Content-Length: 2326

I don't agree that we have to explicitly advertise which VLAN a MAC address belongs to, because
each VLAN runs its own instance of IS-IS in which endnodes are announced. This could be looked
at as implicitly advertising the VLAN. In other words, the endnode information is announced in
an instance of IS-IS distinguished by having an inner VLAN tag (I think that's how we differentiate it).
Core RBridges forward it like a multicast packet for that VLAN. Only border RBridges of that VLAN actually
store the information.

Radia

----- Original Message -----
From: Erik Nordmark <[email-masked]>
Date: Friday, March 9, 2007 4:11 pm
Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness

> Caitlin Bestler wrote:
> 
> > This suggests three options:
> > 
> > 	1) Require all RBridges to scope on a per-VLAN basis.
> >            The only real flaw in this is that it is a RBridge
> >            requirement that does not apply to conventional bridges.
> > 
> > 	2) Allow all RBridges to have whatever scoping rules they
> >            want, but require that all updates go to all RBridgges.
> >            Each RBridge can judge for itself it the information is
> >            relevant to it, and organize that data however it wants.
> > 
> > 	3) Punt: require the network adminstrator to ensure that naming
> >            scopes enforced by RBRidges are "consistent" and provide
> >            only text-based suggestions on how to achieve this.
> 
> I didn't see a conclusion on this discussion.
> 
> I think 802.1D mandates that bridges be capable of doing learning 
> independently for each VLAN (what is called IVL). Thus mandating 
> the 
> same for RBridges (option 1 above) seems natural.
> 
> I think this means that the link state routing protocol needs to be 
> able 
> to carry <VLAN tag, L2 address> in the LSAs instead of just <L2 
> address>. If that is correct then we should clarify this in the 
> routing 
> requirements. They currently say
>    o  layer 2 addresses of nodes within the domain which have
>       transmitted frames but have not transmitted ARP or ND replies
> and that would need to be the tuple of VLAN tag and L2 address.
> 
>    Erik
> [email-masked]

Date: Fri, 09 Mar 2007 16:11:25 -0800
From: Erik Nordmark <[email-masked]>
To: Caitlin Bestler <[email-masked]>
Cc: [email-masked]
Subject: Re: [rbridge] VLAN Scoping / MAC Uniqueness
Status: RO
Content-Length: 1364

Caitlin Bestler wrote:

> This suggests three options:
> 
> 	1) Require all RBridges to scope on a per-VLAN basis.
> 	   The only real flaw in this is that it is a RBridge
> 	   requirement that does not apply to conventional bridges.
> 
> 	2) Allow all RBridges to have whatever scoping rules they
> 	   want, but require that all updates go to all RBridgges.
> 	   Each RBridge can judge for itself it the information is
> 	   relevant to it, and organize that data however it wants.
> 
> 	3) Punt: require the network adminstrator to ensure that naming
> 	   scopes enforced by RBRidges are "consistent" and provide
> 	   only text-based suggestions on how to achieve this.

I didn't see a conclusion on this discussion.

I think 802.1D mandates that bridges be capable of doing learning 
independently for each VLAN (what is called IVL). Thus mandating the 
same for RBridges (option 1 above) seems natural.

I think this means that the link state routing protocol needs to be able 
to carry <VLAN tag, L2 address> in the LSAs instead of just <L2 
address>. If that is correct then we should clarify this in the routing 
requirements. They currently say
    o  layer 2 addresses of nodes within the domain which have
       transmitted frames but have not transmitted ARP or ND replies
and that would need to be the tuple of VLAN tag and L2 address.

    Erik

Date: Fri, 09 Mar 2007 16:06:11 -0800
From: Erik Nordmark <[email-masked]>
To: "Eric Gray (LO/EUS)" <[email-masked]>
Cc: [email-masked]
Subject: Re: [rbridge] Global MAC Addresses
Status: RO
Content-Length: 1055

Eric Gray (LO/EUS) wrote:

> 	Interstingly enough, I am really sure that the IPv6 folks 
> have looked at this before.  And I am also sure that at least one
> suggested solution has been considered.  I do not know if any (of
> possibly many) proposals were actually adopted but, if none were,
> it would be because the IPv6 people did not see this as a problem.

AFAIK the IPv6 folks have not considered this.
But as you pointed out, the global IPv6 addresses would still be 
globally unique since they would have different subnet prefixes.

The only issue for IPv6 is that this (and host-side virtualization in 
general) means that the the semantics of the universal bit in the 
modified EUI-64 format is even weaker than before.
But there is no protocol to date which assumes anything about the 
semantics of this bit. As RFC 4291 says:

    The use of the universal/local bit in the Modified EUI-64 format
    identifier is to allow development of future technology that can take
    advantage of interface identifiers with universal scope.

   Erik

Date: Fri, 09 Mar 2007 15:58:42 -0800
From: Erik Nordmark <[email-masked]>
To: Dino Farinacci <[email-masked]>
Cc: [email-masked], [email-masked]
Subject: Re: [rbridge] How to do RPF checks for bidirectional RBridge trees
Status: RO
Content-Length: 2023

Dino Farinacci wrote:

> The simplest example is when using multi-access links. The fact that 
> some switches use the multi-access link as an oif and others use the 
> link as an expected-incoming interface.
> 
> So if the ones that are using the multi-access link as an oif happen to 
> join the root through one of the other switches (which can be many hops 
> away), then the multicast forwarding (and replication) loop occurs.

With TRILL be clearly have to be careful at the edge (the ingress and 
egress rbridges) when it comes to the relationship between 802.1D and 
designated RBridge in order to handle topology changes. In particular 
since the frames without the TRILL header header doesn't have a TTL.

But leaving that aside for a moment, the way Radia described the 
forwarding check (the "expected incoming adjacency" check), the transit 
paths between the RBridges would act as point-to-point due to checking 
both the incoming port and the previous hop RBridge.

It was in such a pt-pt topology that I tried to find a simple example of 
a temporary loop.

>> Have you observed temporary IP Multicast loops? (apart from the PIM SM 
>> ones before ASSERTS where added). What was the topology and change 
>> necessary to trigger those?
> 
> Oh definitely, when two routers think the RP for a (*,G) are different. 
> And this can happen when the topology is in steady state.
> 
> And this happens due to misconfiguration or in the early days of PIM 
> when you detect one RP down, you move to another one, but others in the 
> topology stayed with the original one. Again, in a steady-state 
> topology. The reason some thought the RP went down is because the 
> network was congested and the RP keepalives were all lost. Those were 
> interesting times.  ;-)
> 
> So this can happen in IS-IS as well if the not everyone is using the 
> same roots.

But AFAICT that type of loop can't happen in TRILL since we have an 
explicit designator for the tree to use in every multi-destination data 
frame.

    Erik

From: Dino Farinacci <[email-masked]>
Date: Fri, 9 Mar 2007 15:36:03 -0800
To: Erik Nordmark <[email-masked]>
Cc: [email-masked], [email-masked]
Subject: Re: [rbridge] How to do RPF checks for bidirectional RBridge trees
Status: RO
Content-Length: 1593

> I'm trying to draw an example topology where a change causes a  
> transient multicast loop (with an "expected incoming adjacency"  
> check) and I can't  find one. Unicast is sooo much easier ;-)

The simplest example is when using multi-access links. The fact that  
some switches use the multi-access link as an oif and others use the  
link as an expected-incoming interface.

So if the ones that are using the multi-access link as an oif happen  
to join the root through one of the other switches (which can be many  
hops away), then the multicast forwarding (and replication) loop occurs.

This only happens when the link state database is not in sync among  
the switches involved because each one thinks the root is located on  
a different path while still consider the same location of the  
receivers.

> Have you observed temporary IP Multicast loops? (apart from the PIM  
> SM ones before ASSERTS where added). What was the topology and  
> change necessary to trigger those?

Oh definitely, when two routers think the RP for a (*,G) are  
different. And this can happen when the topology is in steady state.

And this happens due to misconfiguration or in the early days of PIM  
when you detect one RP down, you move to another one, but others in  
the topology stayed with the original one. Again, in a steady-state  
topology. The reason some thought the RP went down is because the  
network was congested and the RP keepalives were all lost. Those were  
interesting times.  ;-)

So this can happen in IS-IS as well if the not everyone is using the  
same roots.

Dino

Date: Fri, 09 Mar 2007 14:37:58 -0800
From: Erik Nordmark <[email-masked]>
To: Dino Farinacci <[email-masked]>
Cc: [email-masked], [email-masked]
Subject: Re: [rbridge] How to do RPF checks for bidirectional RBridge trees
Status: RO
Content-Length: 673

Dino Farinacci wrote:
>> Will you also agree with me that this technique is useful for  
>> network in
>> a steady state, but does not prevent temporary loops when there is a
>> topology change?
> 
> I agree there will be transient multicast packet looping when there  
> are topology changes.

Dino,

I'm trying to draw an example topology where a change causes a transient 
multicast loop (with an "expected incoming adjacency" check) and I can't 
  find one. Unicast is sooo much easier ;-)

Have you observed temporary IP Multicast loops? (apart from the PIM SM 
ones before ASSERTS where added). What was the topology and change 
necessary to trigger those?

    Erik

Content-class: urn:content-classes:message
Date: Fri, 9 Mar 2007 13:12:11 -0800
From: "Caitlin Bestler" <[email-masked]>
To: [email-masked]
Subject: [rbridge] NITS RE: I-D ACTION:draft-ietf-trill-rbridge-arch-02.txt
Status: RO
Content-Length: 441

The definition of "CRED" in section 2.2 fails to clarify
where the "D" comes from.

	o  CRED: Cooperating RBridges and Encapsulation Tunnels - a 
      topological construct consisting of a set of cooperating 
      RBridges, and the forwarding tunnels connecting them.

The CFT-RDT table is not given a distinct long name. This is
especially apparent when looking at the headers 3.2.1 and 3.2.2,
which differ only by the short names.

From: Dino Farinacci <[email-masked]>
Date: Thu, 8 Mar 2007 14:34:05 -0800
To: "Silvano Gai" <[email-masked]>
Cc: [email-masked], [email-masked]
Subject: Re: [rbridge] How to do RPF checks for bidirectional RBridge trees
Status: RO
Content-Length: 268

> Will you also agree with me that this technique is useful for  
> network in
> a steady state, but does not prevent temporary loops when there is a
> topology change?

I agree there will be transient multicast packet looping when there  
are topology changes.

Dino

Content-class: urn:content-classes:message
Date: Thu, 8 Mar 2007 14:01:00 -0800
From: "Silvano Gai" <[email-masked]>
To: "Dino Farinacci" <[email-masked]>, <[email-masked]>
Cc: [email-masked]
Subject: Re: [rbridge] How to do RPF checks for bidirectional RBridge trees
Status: RO
Content-Length: 1038

I am glad you agree ;-)

Will you also agree with me that this technique is useful for network in
a steady state, but does not prevent temporary loops when there is a
topology change?

-- Silvano 

> From: [email-masked] [mailto:[email-masked]]
On
> Behalf Of Dino Farinacci
> Sent: Thursday, March 08, 2007 11:49 AM
> To: [email-masked]
> Cc: [email-masked]
> Subject: Re: [rbridge] How to do RPF checks for bidirectional RBridge
> trees
> 
> > There is an open question, however, which is whether the "expected
> > incoming interface" check should be
> > SHOULD, MAY or MUST for checking not just port, but neighbor. The
> > downside is the extra 6-byte
> > check, as you point out. The upside is less likely to have bizarre
> > temporary loops. I'd vote for
> > MUST actually.
> 
> I definitely agree with MUST.
> 
> Dino
> [email-masked]

To: [email-masked]
From: [email-masked]
Date: Thu, 08 Mar 2007 15:50:03 -0500
Cc: [email-masked]
Subject: [rbridge] I-D ACTION:draft-ietf-trill-rbridge-arch-02.txt
Status: RO
Content-Length: 3764

--NextPart

A New Internet-Draft is available from the on-line Internet-Drafts 
directories.
This draft is a work item of the Transparent Interconnection of Lots of Links Working Group of the IETF.

	Title		: The Architecture of an RBridge Solution to TRILL
	Author(s)	: E. Gray
	Filename	: draft-ietf-trill-rbridge-arch-02.txt
	Pages		: 35
	Date		: 2007-3-8
	
RBridges are link layer (L2) devices that use routing protocols 
        as a control plane. They combine several of the benefits of the 
        link layer with network layer routing benefits. RBridges use 
        existing link state routing (without requiring configuration) to 
        improve RBridge to RBridge aggregate throughput. RBridges also 
        provide support for IP multicast and IP address resolution 
        optimizations. They are intended to be applicable to similar L2 
        network sizes as conventional bridges and are intended to be 
        backward compatible with those bridges as both ingress/egress 
        and transit. They also support VLANs (although this generally 
        requires configuration) and otherwise attempt to retain as much 
        'plug and play' as is already available in existing bridges. 
        This document proposes an RBridge system as a solution to the 
        TRILL problem. It also defines the RBridge architecture, defines 
        its terminology, and describes basic components and desired 
        behavior. One or more separate documents specify the protocols 
        and mechanisms that satisfy the architecture presented herein.

A URL for this Internet-Draft is:
http://www.ietf.org/internet-drafts/draft-ietf-trill-rbridge-arch-02.txt

To remove yourself from the I-D Announcement list, send a message to 
[email-masked] with the word unsubscribe in the body of 
the message. 
You can also visit https://www1.ietf.org/mailman/listinfo/I-D-announce 
to change your subscription settings.

Internet-Drafts are also available by anonymous FTP. Login with the 
username "anonymous" and a password of your e-mail address. After 
logging in, type "cd internet-drafts" and then 
"get draft-ietf-trill-rbridge-arch-02.txt".

A list of Internet-Drafts directories can be found in
http://www.ietf.org/shadow.html 
or ftp://ftp.ietf.org/ietf/1shadow-sites.txt

Internet-Drafts can also be obtained by e-mail.

Send a message to:
	[email-masked].
In the body type:
	"FILE /internet-drafts/draft-ietf-trill-rbridge-arch-02.txt".
	
NOTE:	The mail server at ietf.org can return the document in
	MIME-encoded form by using the "mpack" utility.  To use this
	feature, insert the command "ENCODING mime" before the "FILE"
	command.  To decode the response(s), you will need "munpack" or
	a MIME-compliant mail reader.  Different MIME-compliant mail readers
	exhibit different behavior, especially when dealing with
	"multipart" MIME messages (i.e. documents which have been split
	up into multiple messages), so check your local documentation on
	how to manipulate these messages.

Below is the data which will enable a MIME compliant mail reader
implementation to automatically retrieve the ASCII version of the
Internet-Draft.

--NextPart
Content-Type: Multipart/Alternative; Boundary="OtherAccess"

--OtherAccess
Content-Type: Message/External-body; access-type="mail-server";
	server="[email-masked]"

Content-Type: text/plain
Content-ID: <[email-masked]>

ENCODING mime
FILE /internet-drafts/draft-ietf-trill-rbridge-arch-02.txt

--OtherAccess
Content-Type: Message/External-body;
	name="draft-ietf-trill-rbridge-arch-02.txt"; site="ftp.ietf.org";
	access-type="anon-ftp"; directory="internet-drafts"

Content-Type: text/plain
Content-ID: <[email-masked]>

--OtherAccess--

--NextPart--

From: Dino Farinacci <[email-masked]>
Date: Thu, 8 Mar 2007 11:49:04 -0800
To: [email-masked]
Cc: [email-masked]
Subject: Re: [rbridge] How to do RPF checks for bidirectional RBridge trees
Status: RO
Content-Length: 367

> There is an open question, however, which is whether the "expected  
> incoming interface" check should be
> SHOULD, MAY or MUST for checking not just port, but neighbor. The  
> downside is the extra 6-byte
> check, as you point out. The upside is less likely to have bizarre  
> temporary loops. I'd vote for
> MUST actually.

I definitely agree with MUST.

Dino

Date: Thu, 08 Mar 2007 10:53:55 -0800
From: Radia Perlman <[email-masked]>
To: Dino Farinacci <[email-masked]>
Cc: [email-masked]
Subject: Re: [rbridge] How to do RPF checks for bidirectional RBridge trees
Reply-To: [email-masked]
Status: RO
Content-Length: 4278

Yup. The bottom line, for those only skimming, is that you and I are not 
disagreeing
about anything.

And the action item from this thread is that the extra announcement 
"these are the trees I will specify" should go
into IS-IS, in the core instance LSP.

Also, in the protocol spec, it we should update the forwarding/filtering 
rules to include
"allowed ingress RBridges on this adjacency/port", and make sure the 
filtering rules really
do specify what you and I said, in different words.

There is an open question, however, which is whether the "expected 
incoming interface" check should be
SHOULD, MAY or MUST for checking not just port, but neighbor. The 
downside is the extra 6-byte
check, as you point out. The upside is less likely to have bizarre 
temporary loops. I'd vote for
MUST actually.

Radia

Dino Farinacci wrote On 03/08/07 10:20,:

>>We're not talking about G's here, as in specific multicast  
>>destination addresses. We're talking
>>about
>>a) Distinct distribution trees: computed by using the link state  
>>database to compute a shortest path
>>tree from the named Root
>>b) ingress RBridges, for filtering based on "expected incoming  
>>interface (adjacency) check"
>>    
>>
>
>Yes, I understand that. But the state storage cost here is more in  
>control-plane memory which is less of a concern than forwarding-plane  
>memory. That is why I spoke up.
>
>  
>
>>(Note: when you say "interface" do you mean what I refer to as  
>>"adjacency" (which is a (port, neighbor) pair),
>>    
>>
>
>I meant port, but if you want to do a last-hop neighbor incoming  
>check then you have to do a 6-byte compare and are required to have  
>the last-hop MAC address in the frame. I know the frame formats have  
>been changing, so not sure that the last-hop MAC address is still in  
>the frame (I'm behind on TRILL reading).
>
>  
>
>>or do you mean "port"? -- I'll assume you mean "adjacency", and  
>>therefore I'll use "interface" because I
>>never really liked the word "adjacency" --- too many syllables, and  
>>it's a word I never tend to use in
>>ordinary conversation.
>>    
>>
>
>Right, adjacency tends to be more unicast centric and means  
>downstream. We are talking about upstream interfaces here (closer to  
>the source and not closer towards the destination).
>
>  
>
>>Anyway...where G's come in (as well as VLANs), is further filtering  
>>information on each interface in the
>>named tree.
>>    
>>
>
>Right.
>
>  
>
>>So the rules are, if  R3 receives a multicast packet on interface  
>>i, with named tree=R2, and ingress RBridge=R1,
>>then:
>>
>>if R1 is not on the expected source list for interface i, then the  
>>packet is dropped
>>    
>>
>
>Right, said another way if R1 is not the last-hop device on the  
>shortest path from R1 to R3, the packet is dropped.
>
>  
>
>>passing that check, for each interface other than i, in tree R2,  
>>filtering is done based on whether the VLAN
>>    
>>
>
>Yes. But I mentioned this before. The oif-list for the G is populated  
>based on the receivers downstream. So you actually filter by default  
>and only the ports in the oif-list get packets sent out on.
>
>I know why you say filtered, because you are describing a broadcast  
>tree which contains all links in the topology and the membership tree  
>is typically a subset of those links.
>
>Doesn't matter, just terms. I think we agree on the concept.
>
>  
>
>>specified in the inner frame can be reached downstream on that  
>>interface, and for IP multicast group G, whether
>>either IP multicast routers, or receivers for G are reachable  
>>downstream on that interface.
>>    
>>
>
>Right.
>
>But just to reiterate my point, when a packet comes into an rBridge,  
>in fast switching mode, an entry like this exists to be forwarded on  
>if the DA is G:
>
>     (*,G), incoming-interface: port i, oif-list: port j, k, l
>
>So as you say if the packet came in on port i, the packet gets  
>replicated out
>ports j,k,l. If the packet comes in on any other port, it is dropped.
>
>What I describe above could be implemented in a fast hardware  
>implementation.
>
>Dino
>[email-masked]

From: Dino Farinacci <[email-masked]>
Date: Thu, 8 Mar 2007 10:20:36 -0800
To: Radia Perlman <[email-masked]>
Cc: [email-masked]
Subject: Re: [rbridge] How to do RPF checks for bidirectional RBridge trees
Status: RO
Content-Length: 3110

> We're not talking about G's here, as in specific multicast  
> destination addresses. We're talking
> about
> a) Distinct distribution trees: computed by using the link state  
> database to compute a shortest path
> tree from the named Root
> b) ingress RBridges, for filtering based on "expected incoming  
> interface (adjacency) check"

Yes, I understand that. But the state storage cost here is more in  
control-plane memory which is less of a concern than forwarding-plane  
memory. That is why I spoke up.

> (Note: when you say "interface" do you mean what I refer to as  
> "adjacency" (which is a (port, neighbor) pair),

I meant port, but if you want to do a last-hop neighbor incoming  
check then you have to do a 6-byte compare and are required to have  
the last-hop MAC address in the frame. I know the frame formats have  
been changing, so not sure that the last-hop MAC address is still in  
the frame (I'm behind on TRILL reading).

> or do you mean "port"? -- I'll assume you mean "adjacency", and  
> therefore I'll use "interface" because I
> never really liked the word "adjacency" --- too many syllables, and  
> it's a word I never tend to use in
> ordinary conversation.

Right, adjacency tends to be more unicast centric and means  
downstream. We are talking about upstream interfaces here (closer to  
the source and not closer towards the destination).

> Anyway...where G's come in (as well as VLANs), is further filtering  
> information on each interface in the
> named tree.

Right.

> So the rules are, if  R3 receives a multicast packet on interface  
> i, with named tree=R2, and ingress RBridge=R1,
> then:
>
> if R1 is not on the expected source list for interface i, then the  
> packet is dropped

Right, said another way if R1 is not the last-hop device on the  
shortest path from R1 to R3, the packet is dropped.

> passing that check, for each interface other than i, in tree R2,  
> filtering is done based on whether the VLAN

Yes. But I mentioned this before. The oif-list for the G is populated  
based on the receivers downstream. So you actually filter by default  
and only the ports in the oif-list get packets sent out on.

I know why you say filtered, because you are describing a broadcast  
tree which contains all links in the topology and the membership tree  
is typically a subset of those links.

Doesn't matter, just terms. I think we agree on the concept.

> specified in the inner frame can be reached downstream on that  
> interface, and for IP multicast group G, whether
> either IP multicast routers, or receivers for G are reachable  
> downstream on that interface.

Right.

But just to reiterate my point, when a packet comes into an rBridge,  
in fast switching mode, an entry like this exists to be forwarded on  
if the DA is G:

     (*,G), incoming-interface: port i, oif-list: port j, k, l

So as you say if the packet came in on port i, the packet gets  
replicated out
ports j,k,l. If the packet comes in on any other port, it is dropped.

What I describe above could be implemented in a fast hardware  
implementation.

Dino

Date: Thu, 08 Mar 2007 09:57:31 -0800
From: Radia Perlman <[email-masked]>
To: Dino Farinacci <[email-masked]>
Cc: [email-masked]
Subject: Re: [rbridge] How to do RPF checks for bidirectional RBridge trees
Status: RO
Content-Length: 2054

We're not talking about G's here, as in specific multicast destination 
addresses. We're talking
about
a) Distinct distribution trees: computed by using the link state 
database to compute a shortest path
tree from the named Root
b) ingress RBridges, for filtering based on "expected incoming interface 
(adjacency) check"

(Note: when you say "interface" do you mean what I refer to as 
"adjacency" (which is a (port, neighbor) pair),
or do you mean "port"? -- I'll assume you mean "adjacency", and 
therefore I'll use "interface" because I
never really liked the word "adjacency" --- too many syllables, and it's 
a word I never tend to use in
ordinary conversation.

Anyway...where G's come in (as well as VLANs), is further filtering 
information on each interface in the
named tree.

So the rules are, if  R3 receives a multicast packet on interface i, 
with named tree=R2, and ingress RBridge=R1,
then:

if R1 is not on the expected source list for interface i, then the 
packet is dropped

passing that check, for each interface other than i, in tree R2, 
filtering is done based on whether the VLAN
specified in the inner frame can be reached downstream on that 
interface, and for IP multicast group G, whether
either IP multicast routers, or receivers for G are reachable downstream 
on that interface.

Radia

Dino Farinacci wrote:

>
> The dominate state in the forwarding plane is number of group  
> entries, regardless of he number of roots. The forwarding plane  
> forwards on (*,G) entries, so that is the state volume we want to  
> keep an eye on.
>
>> The default is "compute a tree based on me" and "I will always choose
>> tree rooted as me", which would result in (# of trees) state. The only
>> RPF state at R2, for tree R1,
>> is to put R1 onto the adjacency from which frames
>> from R1 should arrive, and the null set on the other adjacencies in
>> the R1 tree.
>
>
> This doesn't make sense to me. You want to choose one root for a  
> particular (*,G) entry and all rBridges use the same root for this  
> entry.
>
> Dino

From: Dino Farinacci <[email-masked]>
Date: Thu, 8 Mar 2007 09:31:54 -0800
To: [email-masked]
Cc: [email-masked]
Subject: Re: [rbridge] How to do RPF checks for bidirectional RBridge trees
Status: RO
Content-Length: 1147

> As for terminology, I don't care. Is there a better term than "RPF  
> check"?

It it not an RPF check, because as you and Sanjay described it, the  
best-path from an rBridge to a receiver is on the forward path.

So an appropriate and less misleading term is "the expected incoming  
interface check".

> And as you observed, the reason for having R1 announce the set of  
> trees
> it will select is to avoid having (# of trees) * (# of RBridges)  
> RPF state.

The dominate state in the forwarding plane is number of group  
entries, regardless of he number of roots. The forwarding plane  
forwards on (*,G) entries, so that is the state volume we want to  
keep an eye on.

> The default is "compute a tree based on me" and "I will always choose
> tree rooted as me", which would result in (# of trees) state. The only
> RPF state at R2, for tree R1,
> is to put R1 onto the adjacency from which frames
> from R1 should arrive, and the null set on the other adjacencies in
> the R1 tree.

This doesn't make sense to me. You want to choose one root for a  
particular (*,G) entry and all rBridges use the same root for this  
entry.

Dino

Date: Thu, 08 Mar 2007 08:29:43 -0800
From: [email-masked]
To: "Sanjay Sane (sanjays)" <[email-masked]>
Priority: normal
Cc: [email-masked]
Subject: Re: [rbridge] How to do RPF checks for bidirectional RBridge trees
Status: RO
Content-Length: 4388

Sanjay,

We are agreeing on the technical details.

As for terminology, I don't care. Is there a better term than "RPF check"?

And as you observed, the reason for having R1 announce the set of trees
it will select is to avoid having (# of trees) * (# of RBridges) RPF state.

The default is "compute a tree based on me" and "I will always choose
tree rooted as me", which would result in (# of trees) state. The only
RPF state at R2, for tree R1,
is to put R1 onto the adjacency from which frames
from R1 should arrive, and the null set on the other adjacencies in
the R1 tree.

The only reasons R1 should choose a tree other than itself are:

a) R1 is configured to decline being a tree root, in order to cut down
on the number of trees RBridges need to compute, in which case R1 will,
in most cases,
be configured to just announce one tree, and always select that one

b) R1 is sourcing some high volume multicast sources, in which case
R1 is likely to be configured to choose perhaps 2, maybe 3, but not
"lots of" different trees.

So with this announcement of which trees R1 will choose when ingressing
packets, it greatly simplifies RPF state.

Radia

----- Original Message -----
From: "Sanjay Sane (sanjays)" <[email-masked]>
Date: Wednesday, March 7, 2007 11:19 pm
Subject: Re: [rbridge] How to do RPF checks for bidirectional RBridge trees

> 
> What every rbridge wants to do is -- 
> for every rbridge Rx that could use tree R1, 
> On this tree R1, find which is the interface that leads me towards Rx,
> or leads Rx towards me.
> Multicast packets ingressed from Rx, and using tree R1, should be
> allowed to come in only on this interface. 
> 
> The RPF state per interface could potentially be 
> #ofswitches * #oftrees
> 
> By announcing this field, are you just trying to reduce the RPF 
> state ? 
> 
> btw, should we use the term "RPF" to denote what's being checked here?
> What we're really checking is whether the ingress rbridge is really
> forwarding as per a given R1 tree. 
> 
> -Sanjay
> 
> 
> From: [email-masked] [[email-masked]] On
> Behalf Of Radia Perlman
> Sent: Wednesday, March 07, 2007 6:18 PM
> To: [email-masked]
> Subject: [rbridge] How to do RPF checks for bidirectional RBridge 
> trees
> It isn't totally obvious how to do RPF (reverse path forwarding) 
> checksto make multicast forwarding safer, when we're doing 
> bidirectional trees
> (ingress is R1, but R1 chooses tree root R2).
> 
> So after thinking about it, I think this is how it would work, and it
> introduces a new field that would be nice to add to the core instance
> IS-IS LSP. The field is "I promise to only choose the following set of
> RBridges to be tree roots". The only reasons for R1 to choose a
> distribution tree rooted on an RBridge other than itself are:
> 
> a) R1 is configured not to ask to be a tree root (so that RBridges 
> don'thave to calculate as many trees)
> 
> b) R1 wants to multipath multicast originating on its attached links.
> 
> The reason for having R1 preannounce is to simplify creating an RPF
> database associated with each tree.
> 
> If tree R1 is used if and only if R1 is the ingress for the data, then
> the RPF tree for tree R1 would look like this, at some RBridge R in 
> thecore:
> 
> for each "adjacency" (neighbor/port): one of the following: not in 
> tree,in-port, or out-port. The RPF check would discard any incoming 
> data for
> tree R1 except on the in-port.
> 
> However, if R1 chooses R2 as the root of the multicast tree, then the
> RPF database associated with the tree R2, at some core RBridge R looks
> like this:
> 
> Let S be the set of RBridges that have announced, in their LSPs, that
> they might choose R2 as the tree for multicast traffic they are 
> sourcinginto the campus.
> 
> R keeps, for tree R2, and for each adjacency, {set of RBridges that 
> areplausible ingress RBridges for packets received on that adjacency}.
> 
> The set union of all of those will be S.
> 
> I hope that's correct, and that I've explained it clearly....
> 
> Radia
> 
> [email-masked]
> [email-masked]

Content-class: urn:content-classes:message
Date: Wed, 7 Mar 2007 23:19:23 -0800
From: "Sanjay Sane \(sanjays\)" <[email-masked]>
To: "Radia Perlman" <[email-masked]>, <[email-masked]>
Subject: Re: [rbridge] How to do RPF checks for bidirectional RBridge trees
Status: RO
Content-Length: 2732

What every rbridge wants to do is -- 
for every rbridge Rx that could use tree R1, 
On this tree R1, find which is the interface that leads me towards Rx,
or leads Rx towards me.
Multicast packets ingressed from Rx, and using tree R1, should be
allowed to come in only on this interface. 

The RPF state per interface could potentially be 
#ofswitches * #oftrees

By announcing this field, are you just trying to reduce the RPF state ? 

btw, should we use the term "RPF" to denote what's being checked here?
What we're really checking is whether the ingress rbridge is really
forwarding as per a given R1 tree. 

-Sanjay

-----Original Message-----
From: [email-masked] [mailto:[email-masked]] On
Behalf Of Radia Perlman
Sent: Wednesday, March 07, 2007 6:18 PM
To: [email-masked]
Subject: [rbridge] How to do RPF checks for bidirectional RBridge trees

It isn't totally obvious how to do RPF (reverse path forwarding) checks
to make multicast forwarding safer, when we're doing bidirectional trees
(ingress is R1, but R1 chooses tree root R2).

So after thinking about it, I think this is how it would work, and it
introduces a new field that would be nice to add to the core instance
IS-IS LSP. The field is "I promise to only choose the following set of
RBridges to be tree roots". The only reasons for R1 to choose a
distribution tree rooted on an RBridge other than itself are:

a) R1 is configured not to ask to be a tree root (so that RBridges don't
have to calculate as many trees)

b) R1 wants to multipath multicast originating on its attached links.

The reason for having R1 preannounce is to simplify creating an RPF
database associated with each tree.

If tree R1 is used if and only if R1 is the ingress for the data, then
the RPF tree for tree R1 would look like this, at some RBridge R in the
core:

for each "adjacency" (neighbor/port): one of the following: not in tree,
in-port, or out-port. The RPF check would discard any incoming data for
tree R1 except on the in-port.

However, if R1 chooses R2 as the root of the multicast tree, then the
RPF database associated with the tree R2, at some core RBridge R looks
like this:

Let S be the set of RBridges that have announced, in their LSPs, that
they might choose R2 as the tree for multicast traffic they are sourcing
into the campus.

R keeps, for tree R2, and for each adjacency, {set of RBridges that are
plausible ingress RBridges for packets received on that adjacency}.

The set union of all of those will be S.

I hope that's correct, and that I've explained it clearly....

Radia

[email-masked]

Date: Wed, 07 Mar 2007 18:17:50 -0800
From: Radia Perlman <[email-masked]>
To: [email-masked]
Subject: [rbridge] How to do RPF checks for bidirectional RBridge trees
Status: RO
Content-Length: 1723

It isn't totally obvious how to do RPF (reverse path forwarding) checks 
to make multicast forwarding safer, when we're doing bidirectional trees 
(ingress is R1, but R1 chooses tree root R2).

So after thinking about it, I think this is how it would work, and it
introduces a new field that would be nice to add to the core instance 
IS-IS LSP. The field is "I promise to only choose the following set of 
RBridges to be tree roots". The only reasons for R1 to choose a 
distribution tree rooted on an RBridge other than itself are:

a) R1 is configured not to ask to be a tree root (so that RBridges don't 
have to calculate as many trees)

b) R1 wants to multipath multicast originating on its attached links.

The reason for having R1 preannounce is to simplify creating an RPF 
database associated with each tree.

If tree R1 is used if and only if R1 is the ingress for the data, then 
the RPF tree for tree R1 would look like this, at some RBridge R in the 
core:

for each "adjacency" (neighbor/port): one of the following: not in tree, 
in-port, or out-port. The RPF check would discard any incoming data for 
tree R1 except on the in-port.

However, if R1 chooses R2 as the root of the multicast tree, then the 
RPF database associated with the tree R2, at some core RBridge R looks 
like this:

Let S be the set of RBridges that have announced, in their LSPs, that 
they might choose R2 as the tree for multicast traffic they are sourcing 
into the campus.

R keeps, for tree R2, and for each adjacency, {set of RBridges that are 
plausible ingress RBridges for packets received on that adjacency}.

The set union of all of those will be S.

I hope that's correct, and that I've explained it clearly....

Radia

Date: Wed, 07 Mar 2007 10:58:13 -0800
From: Erik Nordmark <[email-masked]>
To: [email-masked]
Subject: [rbridge] Draft meeting agenda
Status: RO
Content-Length: 91

The draft agenda is at
http://www3.ietf.org/proceedings/07mar/agenda/trill.txt

    Erik

Date: Tue, 06 Mar 2007 17:35:17 -0800
From: Radia Perlman <[email-masked]>
To: Phanidhar Koganti <[email-masked]>
Cc: [email-masked]
Subject: Re: [rbridge] RBridge Ingress Address
Reply-To: [email-masked]
Status: RO
Content-Length: 5122

There were various arguments about that as well. Personally, I think 
it's reasonable either way,
and actually there might be a reason for some endnodes to be learned one 
way and others another.
For instance, for access points in which endnodes enroll, it is likely 
better to send around announcements
in IS-IS.

Some of the arguments, again, off the top of my head, for why it's good 
to announce at least some of the endnodes

a) sometimes it is clear when an endnode is no longer there (for 
instance, the access point finds out) in
which case it's advantageous to tell everyone

b) for IP nodes, it is possible for the RBridge to ping its attached 
endnodes to make sure they really are there.
Perhaps only in response to seeing some other RBridge announce an 
attached endnode.

c) in general only the egress RBridge will find out about S. If lots of 
people talk to S, then that traffic will
be flooded, unless S's RBridge announces where S is.

d) there might be a node that only occasionally talks and lots of nodes 
send it data, in which case traffic
to it will often be flooded.

e) I think some implementors were telling me that they didn't want to 
have to learn from decapsulated
traffic.

f) we probably do want to announce (layer 3, layer 2) pairs based on 
ARP/ND replies, so as to not require
flooding ARP/ND queries. If most nodes are IP nodes, then that would 
mean most (if not all) would be
advertised anyway.

One reason I was happy the WG wanted to put in ingress RBridge as well 
as egress RBridge was
because of the possibility of implicitly learning some of the endnodes.

Radia

Phanidhar Koganti wrote On 03/06/07 17:13,:

>Radia,
>
>Thanks for the response.
>
>In you point c) if can learn end node addresses from the data-path
>then why are we not doing it? Wouldn't it be a more scalable solution
>for the control plane (ISIS). 
>
>Thanks
>Phanidhar Koganti
>Brocade
>408 333 5455
>
>From: Radia Perlman [mailto:[email-masked]] 
>Sent: Tuesday, March 06, 2007 1:50 PM
>To: Phanidhar Koganti
>Cc: [email-masked]
>Subject: Re: [rbridge] RBridge Ingress Address
>
>You've really kind of answered your own question. Originally the shim 
>header only
>had a single RBridge nickname. For unicast it was "egress". For 
>multicast it was
>"ingress". Everything is engineering tradeoffs.  There's seldom a "right
>
>answer",
>but often two perfectly reasonable choices, and we don't want the WG 
>agonizing forever,
>se we seem to have chosen having both ingress and egress.
>
>The cost of having both ingress and
>egress is an extra 4 bytes.
>
>The advantages of having both are:
>a) some IEEE things (like BCN -- congestion notification) require 
>knowing where something
>came from, so could use "ingress RBridge"
>b) tunneling usually has both source and destination, so it's "more
>natural"
>c) we might at some point choose, as you suggested, to learn some or all
>
>of the endnodes
>based on decapsulated traffic (so only the egress RBridge would learn 
>the mapping between
>the source MAC and the ingress RBridge)
>d) for multicast, it allows multipathing by having the ingress RBridge 
>R1 choose a different
>tree (not the one rooted at R1), for distributing the multicast frame
>e) for multicast, it allows configuring things to compute fewer trees, 
>because instead of
>requiring all RBridges to compute a tree rooted at every ingress, 
>RBridges can request
>that they not be tree Roots. (except the RBridges with lowest IS-IS ID 
>-- that one has to be the
>root of a tree so that there is always at least one tree all the 
>RBridges compute).
>
>There might have been other reasons, but these are the ones I could 
>remember off the top of my head.
>
>Radia
>
>
>
>Phanidhar Koganti wrote On 03/06/07 12:45,:
>
>  
>
>>Hi,
>>
>>Went through the below draft briefly and had a basic question. Bear
>>    
>>
>with
>  
>
>>me if this has already been answered on the list
>>
>>http://www.ietf.org/internet-drafts/draft-ietf-trill-rbridge-protocol-0
>>    
>>
>3
>  
>
>>.txt
>>
>>For Known DA
>>
>> Trill.EgressRBridgesAddress = egress RBRIDGE; 
>> Trill.IngressRBridgesAddress = ingress RBRIDGE; 
>>
>>For Unknown DA / Multicast Traffic
>>
>> Trill.EgressRBridgesAddress = ingress RBRIDGE // Default Distribution
>>Tree
>> Trill.IngressRBridgesAddress = ingress RBRIDGE; 
>>
>>In both the above cases the unicast forwarding and the distribution
>>    
>>
>tree
>  
>
>>to use is conveyed using "Trill.EgressRBridgesAddress". 
>>
>>My question is where does the "Trill.IngressRBridgesAddress" play a
>>role?
>>
>>
>>My second question is
>>
>>Learning of L2 end-node addresses are done using ISIS TLVs, why can't
>>    
>>
>we
>  
>
>>learn from the data-path similar to 802.1D/Q? 
>>(Trill.IngressRBridgeAddress <-> Inner SRC MAC Address)
>>
>>In such a case there would be use for the
>>    
>>
>"Trill.IngressRBridgesAddress"
>  
>
>>Thanks
>>Phanidhar Koganti
>>Brocade
>>
>>[email-masked]

Content-class: urn:content-classes:message
Date: Tue, 6 Mar 2007 17:13:31 -0800
From: "Phanidhar Koganti" <[email-masked]>
To: <[email-masked]>
Cc: [email-masked]
Subject: Re: [rbridge] RBridge Ingress Address
Status: RO
Content-Length: 3262

Radia,

Thanks for the response.

In you point c) if can learn end node addresses from the data-path
then why are we not doing it? Wouldn't it be a more scalable solution
for the control plane (ISIS). 

Thanks
Phanidhar Koganti
Brocade
408 333 5455

-----Original Message-----
From: Radia Perlman [mailto:[email-masked]] 
Sent: Tuesday, March 06, 2007 1:50 PM
To: Phanidhar Koganti
Cc: [email-masked]
Subject: Re: [rbridge] RBridge Ingress Address

You've really kind of answered your own question. Originally the shim 
header only
had a single RBridge nickname. For unicast it was "egress". For 
multicast it was
"ingress". Everything is engineering tradeoffs.  There's seldom a "right

answer",
but often two perfectly reasonable choices, and we don't want the WG 
agonizing forever,
se we seem to have chosen having both ingress and egress.

The cost of having both ingress and
egress is an extra 4 bytes.

The advantages of having both are:
a) some IEEE things (like BCN -- congestion notification) require 
knowing where something
came from, so could use "ingress RBridge"
b) tunneling usually has both source and destination, so it's "more
natural"
c) we might at some point choose, as you suggested, to learn some or all

of the endnodes
based on decapsulated traffic (so only the egress RBridge would learn 
the mapping between
the source MAC and the ingress RBridge)
d) for multicast, it allows multipathing by having the ingress RBridge 
R1 choose a different
tree (not the one rooted at R1), for distributing the multicast frame
e) for multicast, it allows configuring things to compute fewer trees, 
because instead of
requiring all RBridges to compute a tree rooted at every ingress, 
RBridges can request
that they not be tree Roots. (except the RBridges with lowest IS-IS ID 
-- that one has to be the
root of a tree so that there is always at least one tree all the 
RBridges compute).

There might have been other reasons, but these are the ones I could 
remember off the top of my head.

Radia

Phanidhar Koganti wrote On 03/06/07 12:45,:

>Hi,
>
>Went through the below draft briefly and had a basic question. Bear
with
>me if this has already been answered on the list
>
>http://www.ietf.org/internet-drafts/draft-ietf-trill-rbridge-protocol-0
3
>.txt
>
>For Known DA
>
>  Trill.EgressRBridgesAddress = egress RBRIDGE; 
>  Trill.IngressRBridgesAddress = ingress RBRIDGE; 
>
>For Unknown DA / Multicast Traffic
>
>  Trill.EgressRBridgesAddress = ingress RBRIDGE // Default Distribution
>Tree
>  Trill.IngressRBridgesAddress = ingress RBRIDGE; 
>
>In both the above cases the unicast forwarding and the distribution
tree
>to use is conveyed using "Trill.EgressRBridgesAddress". 
>
>My question is where does the "Trill.IngressRBridgesAddress" play a
>role?
>
>
>My second question is
>
>Learning of L2 end-node addresses are done using ISIS TLVs, why can't
we
>learn from the data-path similar to 802.1D/Q? 
>(Trill.IngressRBridgeAddress <-> Inner SRC MAC Address)
>
>In such a case there would be use for the
"Trill.IngressRBridgesAddress"
>Thanks
>Phanidhar Koganti
>Brocade
>[email-masked]

Date: Tue, 06 Mar 2007 13:50:11 -0800
From: Radia Perlman <[email-masked]>
To: Phanidhar Koganti <[email-masked]>
Cc: [email-masked]
Subject: Re: [rbridge] RBridge Ingress Address
Reply-To: [email-masked]
Status: RO
Content-Length: 2800

You've really kind of answered your own question. Originally the shim 
header only
had a single RBridge nickname. For unicast it was "egress". For 
multicast it was
"ingress". Everything is engineering tradeoffs.  There's seldom a "right 
answer",
but often two perfectly reasonable choices, and we don't want the WG 
agonizing forever,
se we seem to have chosen having both ingress and egress.

The cost of having both ingress and
egress is an extra 4 bytes.

The advantages of having both are:
a) some IEEE things (like BCN -- congestion notification) require 
knowing where something
came from, so could use "ingress RBridge"
b) tunneling usually has both source and destination, so it's "more natural"
c) we might at some point choose, as you suggested, to learn some or all 
of the endnodes
based on decapsulated traffic (so only the egress RBridge would learn 
the mapping between
the source MAC and the ingress RBridge)
d) for multicast, it allows multipathing by having the ingress RBridge 
R1 choose a different
tree (not the one rooted at R1), for distributing the multicast frame
e) for multicast, it allows configuring things to compute fewer trees, 
because instead of
requiring all RBridges to compute a tree rooted at every ingress, 
RBridges can request
that they not be tree Roots. (except the RBridges with lowest IS-IS ID 
-- that one has to be the
root of a tree so that there is always at least one tree all the 
RBridges compute).

There might have been other reasons, but these are the ones I could 
remember off the top of my head.

Radia

Phanidhar Koganti wrote On 03/06/07 12:45,:

>Hi,
>
>Went through the below draft briefly and had a basic question. Bear with
>me if this has already been answered on the list
>
>http://www.ietf.org/internet-drafts/draft-ietf-trill-rbridge-protocol-03
>.txt
>
>For Known DA
>
>  Trill.EgressRBridgesAddress = egress RBRIDGE; 
>  Trill.IngressRBridgesAddress = ingress RBRIDGE; 
>
>For Unknown DA / Multicast Traffic
>
>  Trill.EgressRBridgesAddress = ingress RBRIDGE // Default Distribution
>Tree
>  Trill.IngressRBridgesAddress = ingress RBRIDGE; 
>
>In both the above cases the unicast forwarding and the distribution tree
>to use is conveyed using "Trill.EgressRBridgesAddress". 
>
>My question is where does the "Trill.IngressRBridgesAddress" play a
>role?
>
>
>My second question is
>
>Learning of L2 end-node addresses are done using ISIS TLVs, why can't we
>learn from the data-path similar to 802.1D/Q? 
>(Trill.IngressRBridgeAddress <-> Inner SRC MAC Address)
>
>In such a case there would be use for the "Trill.IngressRBridgesAddress"
>
>Thanks
>Phanidhar Koganti
>Brocade
>
>[email-masked]

Content-class: urn:content-classes:message
Date: Tue, 6 Mar 2007 12:45:09 -0800
From: "Phanidhar Koganti" <[email-masked]>
To: <[email-masked]>
Subject: [rbridge] RBridge Ingress Address
Status: RO
Content-Length: 1003

Hi,

Went through the below draft briefly and had a basic question. Bear with
me if this has already been answered on the list

http://www.ietf.org/internet-drafts/draft-ietf-trill-rbridge-protocol-03
.txt

For Known DA

  Trill.EgressRBridgesAddress = egress RBRIDGE; 
  Trill.IngressRBridgesAddress = ingress RBRIDGE; 

For Unknown DA / Multicast Traffic

  Trill.EgressRBridgesAddress = ingress RBRIDGE // Default Distribution
Tree
  Trill.IngressRBridgesAddress = ingress RBRIDGE; 

In both the above cases the unicast forwarding and the distribution tree
to use is conveyed using "Trill.EgressRBridgesAddress". 

My question is where does the "Trill.IngressRBridgesAddress" play a
role?

My second question is

Learning of L2 end-node addresses are done using ISIS TLVs, why can't we
learn from the data-path similar to 802.1D/Q? 
(Trill.IngressRBridgeAddress <-> Inner SRC MAC Address)

In such a case there would be use for the "Trill.IngressRBridgesAddress"

Thanks
Phanidhar Koganti
Brocade

To: [email-masked]
From: [email-masked]
Date: Mon, 05 Mar 2007 18:50:02 -0500
Cc: [email-masked]
Subject: [rbridge] I-D ACTION:draft-ietf-trill-rbridge-protocol-03.txt
Status: RO
Content-Length: 3123

--NextPart

A New Internet-Draft is available from the on-line Internet-Drafts 
directories.
This draft is a work item of the Transparent Interconnection of Lots of Links Working Group of the IETF.

	Title		: RBridges: Base Protocol Specification
	Author(s)	: R. Perlman, et al.
	Filename	: draft-ietf-trill-rbridge-protocol-03.txt
	Pages		: 36
	Date		: 2007-3-5
	
RBridges allow for optimal pair-wise forwarding with zero 
   configuration, safe forwarding even during periods of temporary 
   loops, and the ability to cut down on ARP/ND and IP multicast 
   traffic. They achieve these goals by replacing the Spanning Tree 
   protocol with IS-IS.  

   The design also supports VLANs, and allows forwarding tables to be 
   based on RBridge destinations (rather than endnode destinations), 
   which allows internal forwarding tables to be substantially smaller 
   than in conventional bridge systems.

A URL for this Internet-Draft is:
http://www.ietf.org/internet-drafts/draft-ietf-trill-rbridge-protocol-03.txt

To remove yourself from the I-D Announcement list, send a message to 
[email-masked] with the word unsubscribe in the body of 
the message. 
You can also visit https://www1.ietf.org/mailman/listinfo/I-D-announce 
to change your subscription settings.

Internet-Drafts are also available by anonymous FTP. Login with the 
username "anonymous" and a password of your e-mail address. After 
logging in, type "cd internet-drafts" and then 
"get draft-ietf-trill-rbridge-protocol-03.txt".

A list of Internet-Drafts directories can be found in
http://www.ietf.org/shadow.html 
or ftp://ftp.ietf.org/ietf/1shadow-sites.txt

Internet-Drafts can also be obtained by e-mail.

Send a message to:
	[email-masked].
In the body type:
	"FILE /internet-drafts/draft-ietf-trill-rbridge-protocol-03.txt".
	
NOTE:	The mail server at ietf.org can return the document in
	MIME-encoded form by using the "mpack" utility.  To use this
	feature, insert the command "ENCODING mime" before the "FILE"
	command.  To decode the response(s), you will need "munpack" or
	a MIME-compliant mail reader.  Different MIME-compliant mail readers
	exhibit different behavior, especially when dealing with
	"multipart" MIME messages (i.e. documents which have been split
	up into multiple messages), so check your local documentation on
	how to manipulate these messages.

Below is the data which will enable a MIME compliant mail reader
implementation to automatically retrieve the ASCII version of the
Internet-Draft.

--NextPart
Content-Type: Multipart/Alternative; Boundary="OtherAccess"

--OtherAccess
Content-Type: Message/External-body; access-type="mail-server";
	server="[email-masked]"

Content-Type: text/plain
Content-ID: <[email-masked]>

ENCODING mime
FILE /internet-drafts/draft-ietf-trill-rbridge-protocol-03.txt

--OtherAccess
Content-Type: Message/External-body;
	name="draft-ietf-trill-rbridge-protocol-03.txt";
	site="ftp.ietf.org"; access-type="anon-ftp";
	directory="internet-drafts"

Content-Type: text/plain
Content-ID: <[email-masked]>

--OtherAccess--

--NextPart--