< draft-ietf-trill-address-flush-05.txt | af39fftoc.txt | |||
---|---|---|---|---|
TRILL Working Group Weiguo Hao | TRILL Working Group Weiguo Hao | |||
INTERNET-DRAFT Donald Eastlake | INTERNET-DRAFT Donald Eastlake | |||
Intended status: Proposed Standard Yizhou Li | Intended status: Proposed Standard Yizhou Li | |||
Huawei | Huawei | |||
Mohammed Umair | Mohammed Umair | |||
Cisco | Cisco | |||
Expires: July 21, 2018 January 22, 2018 | Expires: September 13, 2018 March 14, 2018 | |||
TRILL: Address Flush Message | TRILL (TRansparent Interconnection of Lots of Links): | |||
<draft-ietf-trill-address-flush-05.txt> | Address Flush Message | |||
<draft-ietf-trill-address-flush-06.txt> | ||||
Abstract | Abstract | |||
The TRILL (TRansparent Interconnection of Lots of Links) protocol, by | The TRILL (TRansparent Interconnection of Lots of Links) protocol, by | |||
default, learns end station addresses from observing the data plane. | default, learns end station addresses from observing the data plane. | |||
In particular, it learns local MAC addresses and edge switch port of | In particular, it learns local MAC addresses and edge switch port of | |||
attachment from the receipt of local data frames and learns remote | attachment from the receipt of local data frames and learns remote | |||
MAC addresses and edge switch of attachment from the decapsulation of | MAC addresses and edge switch of attachment from the decapsulation of | |||
remotely sourced TRILL Data packets. | remotely sourced TRILL Data packets. | |||
skipping to change at page 3, line 14 ¶ | skipping to change at page 3, line 14 ¶ | |||
INTERNET-DRAFT Address Flush Message | INTERNET-DRAFT Address Flush Message | |||
Table of Contents | Table of Contents | |||
1. Introduction............................................4 | 1. Introduction............................................4 | |||
1.1 Terminology and Acronyms...............................4 | 1.1 Terminology and Acronyms...............................4 | |||
2. Address Flush Message Details...........................6 | 2. Address Flush Message Details...........................6 | |||
2.1 VLAN Block Only Case...................................7 | 2.1 VLAN Block Only Case...................................7 | |||
2.2 Extensible Case........................................8 | 2.2 Extensible Case........................................9 | |||
2.2.1 Blocks of VLANs.....................................11 | 2.2.1 Blocks of VLANs.....................................12 | |||
2.2.2 Bit Map of VLANs....................................11 | 2.2.2 Bit Map of VLANs....................................12 | |||
2.2.3 Blocks of FGLs......................................12 | 2.2.3 Blocks of FGLs......................................13 | |||
2.2.4 list of FGLs........................................13 | 2.2.4 list of FGLs........................................13 | |||
2.2.5 Big Map of FGLs.....................................13 | 2.2.5 Big Map of FGLs.....................................14 | |||
2.2.6 All Data Labels.....................................14 | 2.2.6 All Data Labels.....................................14 | |||
2.2.7 MAC Address List....................................14 | 2.2.7 MAC Address List....................................15 | |||
2.2.8 MAC Address Blocks..................................15 | 2.2.8 MAC Address Blocks..................................15 | |||
3. IANA Considerations....................................16 | 3. IANA Considerations....................................17 | |||
3.1 Address Flush RBridge Channel Protocol Number.........16 | 3.1 Address Flush RBridge Channel Protocol Number.........17 | |||
3.2 TRILL Address Flush TLV Types.........................16 | 3.2 TRILL Address Flush TLV Types.........................17 | |||
4. Security Considerations................................17 | 4. Security Considerations................................18 | |||
Normative References......................................18 | Normative References......................................19 | |||
Informative References....................................18 | Informative References....................................19 | |||
Acknowledgements..........................................18 | Acknowledgements..........................................19 | |||
Authors' Addresses........................................19 | Authors' Addresses........................................21 | |||
INTERNET-DRAFT Address Flush Message | INTERNET-DRAFT Address Flush Message | |||
1. Introduction | 1. Introduction | |||
Edge TRILL (Transparent Interconnection of Lots of Links) switches | Edge TRILL (Transparent Interconnection of Lots of Links) switches | |||
[RFC6325] [RFC7780], also called edge RBridges, by default learn end | [RFC6325] [RFC7780], also called edge RBridges, by default learn end | |||
station MAC address reachability from observing the data plane. On | station MAC address reachability from observing the data plane. On | |||
receipt of a native frame from an end station, they would learn the | receipt of a native frame from an end station, they would learn the | |||
local MAC address attachment of the source end station. And on | local MAC address attachment of the source end station. And on | |||
skipping to change at page 4, line 27 ¶ | skipping to change at page 4, line 27 ¶ | |||
[RFC7172]). | [RFC7172]). | |||
TRILL has mechanisms for timing out such learning and appropriately | TRILL has mechanisms for timing out such learning and appropriately | |||
clearing it based on some network connectivity and configuration | clearing it based on some network connectivity and configuration | |||
changes; however, there are circumstances under which it would be | changes; however, there are circumstances under which it would be | |||
helpful for a TRILL switch to be able to explicitly flush (purge) | helpful for a TRILL switch to be able to explicitly flush (purge) | |||
certain learned end station reachability information in remote | certain learned end station reachability information in remote | |||
RBridges to achieve more rapid convergence. Section 6.2 of [RFC4762] | RBridges to achieve more rapid convergence. Section 6.2 of [RFC4762] | |||
is an example of the use of such a mechanism. | is an example of the use of such a mechanism. | |||
Another example is based on Appendix A.3 of [RFC6325] ("Wiring Closet | Another example, based on Appendix A.3 of [RFC6325] ("Wiring Closet | |||
Topology") presents a bridged LAN connected to a TRILL network via | Topology"), presents a bridged LAN connected to a TRILL network via | |||
multiple RBridge ports. For optimum paths, Appendix A.3.3 suggests | multiple RBridge ports. For optimum paths, Appendix A.3.3 suggests | |||
configuring the RBridge ports to be like one Spanning Tree Protocol | configuring the RBridge ports to be like one Spanning Tree Protocol | |||
(STP) tree root in the bridged LAN. The address flush message in this | (STP) tree root in the bridged LAN. The address flush message in this | |||
document could also be triggered in this case when one of the edge | document could also be triggered in this case when one of the edge | |||
RBridges receives topology change information (e.g., TC in STP, TCN | RBridges receives topology change information (e.g., TC (Topology | |||
in MSTP) in order to rapidly flush the MAC addresses for specific | Change) in STP, TCN (Topology Change Notification) in MSTP (Multiple | |||
VLANs learned at the other edge RBridge ports. | Spanning Tree Protocol) in order to rapidly flush the MAC addresses | |||
for specific VLANs learned at the other edge RBridge ports. | ||||
A TRILL switch RB1 can easily flush any locally learned addresses it | A TRILL switch can easily flush any locally learned addresses it | |||
wants. This document specifies an RBridge Channel protocol [RFC7178] | wants. This document specifies an RBridge Channel protocol [RFC7178] | |||
message to request flushing address information for specific VLANs or | message to request flushing address information for specific VLANs or | |||
FGLs learned from decapsulating TRILL Data packets. | FGLs (Fine Grained Labels [RFC7172]) learned from decapsulating TRILL | |||
Data packets. | ||||
1.1 Terminology and Acronyms | 1.1 Terminology and Acronyms | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in [RFC2119]. | document are to be interpreted as described in [RFC2119] [RFC8174] | |||
when, and only when, they appear in all capitals, as shown here. | ||||
This document uses the terms and acronyms defined in [RFC6325] and | This document uses the terms and acronyms defined in [RFC6325] and | |||
[RFC7978] as well as the following: | [RFC7978] as well as the following: | |||
Data Label - VLAN or FGL. | Data Label - VLAN or FGL. | |||
INTERNET-DRAFT Address Flush Message | ||||
Edge TRILL switch - A TRILL switch attached to one or more links | Edge TRILL switch - A TRILL switch attached to one or more links | |||
that provide end station service. | that provide end station service. | |||
INTERNET-DRAFT Address Flush Message | FCS - Frame Check Sequence. | |||
FGL - Fine Grained Label [RFC7172]. | FGL - Fine Grained Label [RFC7172]. | |||
Management VLAN - A VLAN in which all TRILL switches in a campus | Management VLAN - A VLAN in which all TRILL switches in a campus | |||
indicate interest so that multi-destination TRILL Data packets, | indicate interest so that multi-destination TRILL Data packets, | |||
including RBridge Channel messages [RFC7978], sent with that | including RBridge Channel messages [RFC7978], sent with that | |||
VLAN as the Inner.VLAN will be delivered to all TRILL switches | VLAN as the Inner.VLAN will be delivered to all TRILL switches | |||
in the campus. Usually no end station service is offered in the | in the campus. Usually no end station service is offered in the | |||
Management VLAN. | Management VLAN. | |||
MAC - Media Access Control. | ||||
RBridge - An alternative name for a TRILL switch. | RBridge - An alternative name for a TRILL switch. | |||
STP - Spanning Tree Protocol. | STP - Spanning Tree Protocol. | |||
TC - Topology Change message. | ||||
TCN - Topology Change Notification message. | ||||
TRILL switch - A device implementing the TRILL protocol [RFC6325] | TRILL switch - A device implementing the TRILL protocol [RFC6325] | |||
[RFC7780]. | [RFC7780]. | |||
INTERNET-DRAFT Address Flush Message | INTERNET-DRAFT Address Flush Message | |||
2. Address Flush Message Details | 2. Address Flush Message Details | |||
The Address Flush message is an RBridge Channel protocol message | The Address Flush message is an RBridge Channel protocol message | |||
[RFC7178]. | [RFC7178]. | |||
skipping to change at page 6, line 41 ¶ | skipping to change at page 6, line 41 ¶ | |||
| Link Trailer (FCS if Ethernet)| | | Link Trailer (FCS if Ethernet)| | |||
+----------------------------------+ | +----------------------------------+ | |||
Figure 1. RBridge Channel Protocol Message Structure | Figure 1. RBridge Channel Protocol Message Structure | |||
An Address Flush RBridge Channel message by default applies to | An Address Flush RBridge Channel message by default applies to | |||
addresses within the Data Label that appears right after the Inner | addresses within the Data Label that appears right after the Inner | |||
Ethernet Addresses. Address Flush protocol messages are usually sent | Ethernet Addresses. Address Flush protocol messages are usually sent | |||
as multi-destination packets (TRILL Header M bit equal to one) so as | as multi-destination packets (TRILL Header M bit equal to one) so as | |||
to reach all TRILL switches offering end station service in the VLAN | to reach all TRILL switches offering end station service in the VLAN | |||
or FGL specified by that Data Label. Such messages SHOULD be sent at | or FGL specified by that Data Label. Both multi-destination and | |||
priority 6 since they are important control messages but are lower | unicast Address Flush messages SHOULD be sent at priority 6 since | |||
priority than control messages that establish or maintain adjacency. | they are important control messages but are lower priority than | |||
control messages that establish or maintain adjacency. | ||||
Nevertheless: | Nevertheless: | |||
- There are provisions for optionally indicating the Data Label(s) | - There are provisions for optionally indicating the Data Label(s) | |||
to be flushed for cases where the Address Flush message is sent | to be flushed for cases where the Address Flush message is sent | |||
over a Management VLAN or the like. | over a Management VLAN or the like. | |||
- An Address Flush message can be sent unicast, if it is desired to | - An Address Flush message can be sent unicast, if it is desired to | |||
clear addresses at one TRILL switch only. | clear addresses at one TRILL switch only. | |||
- An Address Flush message can be sent selectively to the RBridges | - An Address Flush message can be sent selectively to the RBridges | |||
that have at least one access port configured as one of VLANs or | that have at least one access port configured as one of VLANs or | |||
FGLs specified in the Address Flush message payload. | FGLs specified in the Address Flush message payload. | |||
Implementations should consider logging address flush messages | ||||
INTERNET-DRAFT Address Flush Message | INTERNET-DRAFT Address Flush Message | |||
received with appropriate protections against packet storms. | ||||
2.1 VLAN Block Only Case | 2.1 VLAN Block Only Case | |||
Figure 2 below expands the RBridge Channel Header and Channel | Figure 2 below expands the RBridge Channel Header and Channel | |||
Protocol Specific Payload from Figure 1 for the case of the VLAN only | Protocol Specific Payload from Figure 1 for the case of the VLAN only | |||
based Address Flush message. This form of the Address Flush message | based Address Flush message. This form of the Address Flush message | |||
is optimized for flushing MAC addressed based on nickname and blocks | is optimized for flushing MAC addressed based on nickname and blocks | |||
of VLANs. 0x8946 is the Ethertype assigned by IEEE for the RBridge | of VLANs. 0x8946 is the Ethertype assigned by IEEE for the RBridge | |||
Channel protocol. | Channel protocol. | |||
0 1 2 3 | 0 1 2 3 | |||
skipping to change at page 7, line 53 ¶ | skipping to change at page 8, line 4 ¶ | |||
Figure 2. Address Flush Message - VLAN Block Case | Figure 2. Address Flush Message - VLAN Block Case | |||
The fields in Figure 2 related to the Address Flush message are as | The fields in Figure 2 related to the Address Flush message are as | |||
follows: | follows: | |||
Channel Protocol: The RBridge Channel Protocol value allocated | Channel Protocol: The RBridge Channel Protocol value allocated | |||
for Address Flush (see Section 3). | for Address Flush (see Section 3). | |||
K-nicks: K-nicks is the number of nicknames listed as an unsigned | K-nicks: K-nicks is the number of nicknames listed as an unsigned | |||
integer. If this is zero, the ingress nickname in the TRILL | integer. If this is zero, the ingress nickname in the TRILL | |||
INTERNET-DRAFT Address Flush Message | ||||
Header [RFC6325] is considered to be the only nickname to which | Header [RFC6325] is considered to be the only nickname to which | |||
the message applies. If non-zero, it given the number of | the message applies. If non-zero, it given the number of | |||
nicknames listed right after K-nicks to which the message | nicknames listed right after K-nicks to which the message | |||
applies and, in this non-zero case, the flush does not apply to | applies and, in this non-zero case, the flush does not apply to | |||
INTERNET-DRAFT Address Flush Message | ||||
the ingress nickname in the TRILL Header unless it is also | the ingress nickname in the TRILL Header unless it is also | |||
listed. The message flushes address learning due to egressing | listed. The message flushes address learning due to egressing | |||
TRILL Data packets that had an ingress nickname to which the | TRILL Data packets that had an ingress nickname to which the | |||
message applies. | message applies. | |||
Nickname: A listed nickname to which it is intended that the | Nickname: A listed nickname to which it is intended that the | |||
Address Flush message apply. If an unknown or reserved | Address Flush message apply. If an unknown or reserved | |||
nickname occurs in the list, it is ignored but the address | nickname occurs in the list, it is ignored but the address | |||
flush operation is still executed with the other nicknames. If | flush operation is still executed with the other nicknames. If | |||
an incorrect nickname occurs in the list, so some address | an incorrect nickname occurs in the list, so some address | |||
skipping to change at page 8, line 48 ¶ | skipping to change at page 9, line 5 ¶ | |||
flush operation is still executed with other VLAN blocks in the | flush operation is still executed with other VLAN blocks in the | |||
message. VLAN blocks may overlap, in which case the address | message. VLAN blocks may overlap, in which case the address | |||
flush operation is applicable to a VLAN covered by any one or | flush operation is applicable to a VLAN covered by any one or | |||
more of the blocks in the message. | more of the blocks in the message. | |||
This message flushes all addresses in an applicable VLAN learned from | This message flushes all addresses in an applicable VLAN learned from | |||
egressing TRILL Data packets with an applicable nickname as ingress. | egressing TRILL Data packets with an applicable nickname as ingress. | |||
To flush addresses for all VLANs, it is easy to specify a block | To flush addresses for all VLANs, it is easy to specify a block | |||
covering all valid VLAN IDs, this is, from 0x001 to 0xFFE. | covering all valid VLAN IDs, this is, from 0x001 to 0xFFE. | |||
INTERNET-DRAFT Address Flush Message | ||||
2.2 Extensible Case | 2.2 Extensible Case | |||
A more general form of the Address Flush message is provided to | A more general form of the Address Flush message is provided to | |||
support flushing by FGL and more efficient encodings of VLANs and | support flushing by FGL and more efficient encodings of VLANs and | |||
FGLs where using a set of contiguous blocks if cumbersome. It also | FGLs where using a set of contiguous blocks is cumbersome. It also | |||
supports optionally specifying the MAC addresses to clear. This form | supports optionally specifying the MAC addresses to clear. This form | |||
is extensible. | is extensible. | |||
INTERNET-DRAFT Address Flush Message | ||||
The extensible case is indicated by a zero in the byte shown in | The extensible case is indicated by a zero in the byte shown in | |||
Figure 2 as "K-VLBs" followed by other information encoded as TLVs. | Figure 2 as "K-VLBs" followed by other information encoded as TLVs. | |||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
RBridge Channel Header: | RBridge Channel Header: | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| RBridge-Channel (0x8946) | 0x0 | Channel Protocol = TBD | | | RBridge-Channel (0x8946) | 0x0 | Channel Protocol = TBD | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Flags | ERR | | | Flags | ERR | | |||
skipping to change at page 9, line 49 ¶ | skipping to change at page 10, line 4 ¶ | |||
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | |||
| Type | Length | Value | | Type | Length | Value | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | |||
Figure 4. Type, Length, Value | Figure 4. Type, Length, Value | |||
Type: The 8-bit TLV type as shown in the table below. See | Type: The 8-bit TLV type as shown in the table below. See | |||
subsections of this Section 2.2 for details on each type | subsections of this Section 2.2 for details on each type | |||
assigned below. If the type is reserved or not known by a | assigned below. If the type is reserved or not known by a | |||
INTERNET-DRAFT Address Flush Message | ||||
receiving RBridge, that receiving RBridge ignores the value and | receiving RBridge, that receiving RBridge ignores the value and | |||
skips to the next TLV by use of the Length byte. There is no | skips to the next TLV by use of the Length byte. There is no | |||
provision for a list of VLAN IDs TLV as there are few enough of | provision for a list of VLAN IDs TLV as there are few enough of | |||
them that an arbitrary subset of VLAN IDs can be represented as | them that an arbitrary subset of VLAN IDs can be represented as | |||
a bit map. | a bit map. | |||
INTERNET-DRAFT Address Flush Message | ||||
Type Description Reference | Type Description Reference | |||
------ ------------------ ----------------- | ------ ------------------ ----------------- | |||
0 Reserved [this document] | 0 Reserved [this document] | |||
1 Blocks of VLANs [this document] | 1 Blocks of VLANs [this document] | |||
2 Bit Map of VLANs [this document] | 2 Bit Map of VLANs [this document] | |||
3 Blocks of FGLs [this document] | 3 Blocks of FGLs [this document] | |||
4 List of FGLs [this document] | 4 List of FGLs [this document] | |||
5 Bit Map of FGLs [this document] | 5 Bit Map of FGLs [this document] | |||
6 All Data Labels [this document] | 6 All Data Labels [this document] | |||
7 MAC Address List [this document] | 7 MAC Address List [this document] | |||
skipping to change at page 10, line 34 ¶ | skipping to change at page 10, line 40 ¶ | |||
RBridge Channel Protocol Specific Payload area. If it does, the | RBridge Channel Protocol Specific Payload area. If it does, the | |||
Address Flush message is corrupt and MUST be ignored. | Address Flush message is corrupt and MUST be ignored. | |||
Value: Depends on the TLV type. | Value: Depends on the TLV type. | |||
In an extensible Address Flush message, when the TLVs are parsed | In an extensible Address Flush message, when the TLVs are parsed | |||
those TLVs having unknown types are ignored by the receiving RBridge. | those TLVs having unknown types are ignored by the receiving RBridge. | |||
There may be multiple instances of TLVs with the same Type in the | There may be multiple instances of TLVs with the same Type in the | |||
same address flush message and TLVs are not required to be in any | same address flush message and TLVs are not required to be in any | |||
particular order. | particular order. | |||
All RBridges implementing the Address Flush RBridge Channel | o All RBridges implementing the Address Flush RBridge Channel | |||
message MUST implement types 1 and 2, the VLAN types, and type 6, | message MUST implement types 1 and 2, the VLAN types, and type 6, | |||
which indicates addresses are to be flushed for all Data Labels. | which indicates addresses are to be flushed for all Data Labels. | |||
RBridges that implement FGL ingress/egress MUST implement types 3, | o RBridges that implement the Address Flush message and implement | |||
4, and 5, the FGL types. (An RBridge that is merely FGL safe | FGL ingress/egress MUST implement types 3, 4, and 5, the FGL | |||
[RFC7172], but cannot egress FGL TRILL Data packets, SHOULD ignore | types. (An RBridge that is merely FGL safe [RFC7172], but cannot | |||
the FGL types as it will not learn any FGL scoped MAC addresses from | egress FGL TRILL Data packets, SHOULD ignore the FGL types as it | |||
the data plane.) | will not learn any FGL scoped MAC addresses from the data plane.) | |||
RBridges SHOULD implement types 7 and 8 so that specific MAC | o RBridges that implement the Address Flush message SHOULD implement | |||
addresses can be flushed. If they do not, the effect will be to flush | types 7 and 8 so that specific MAC addresses can be flushed. If | |||
all MAC addresses for the indicated Data Labels, which may be | they do not, the effect will be to flush all MAC addresses for the | |||
inefficient as any MAC addresses not intended to be flushed will have | indicated Data Labels, which may be inefficient as any MAC | |||
to be re-learned. | addresses not intended to be flushed will have to be re-learned. | |||
The parsing of the TLVs by a receiving RBridge results in three items | The parsing of the TLVs by a receiving RBridge results in three items | |||
of information: a flag indicating whether one or more Type 6 TLVs | of information: | |||
(All Data Labels) were encountered; a set of Data Labels accumulated | 1. a flag indicating whether one or more Type 6 TLVs (All Data | |||
from VLAN and/or FGL specifying TLVs in the message; and, if the MAC | ||||
address TLV types are implemented, and a set of MAC addresses | ||||
accumulated from MAC address specifying TLVs in the message. | ||||
VLANs/FGLs might be indicated more than once due to overlapping | ||||
blocks or the like and a VLAN/FGL is included in the above set of | ||||
VLANs/FGLs if it occurs in any TLV in the address flush message. A | ||||
INTERNET-DRAFT Address Flush Message | INTERNET-DRAFT Address Flush Message | |||
MAC addresses might be indicated more than once due to overlapping | Labels) were encountered; | |||
2. a set of Data Labels accumulated from VLAN and/or FGL | ||||
specifying TLVs in the message; and, | ||||
3. if the MAC address TLV types are implemented, and a set of MAC | ||||
addresses accumulated from MAC address specifying TLVs in the | ||||
message. | ||||
VLANs/FGLs might be indicated more than once due to overlapping | ||||
blocks or the like and a VLAN/FGL is included in the above set of | ||||
VLANs/FGLs if it occurs in any TLV in the address flush message. A | ||||
MAC address might be indicated more than once due to overlapping | ||||
blocks or the like and a MAC address is included in the above set of | blocks or the like and a MAC address is included in the above set of | |||
MAC addresses if it occurs in any TLV in the address flush message. | MAC addresses if it occurs in any TLV in the address flush message. | |||
If the set of MAC addresses accumulated from parsing the address | ||||
flush message is null, the message applies to all MAC addresses. | After the above information has been accumulated by parsing the TLVs, | |||
If the flag indicating the presence of an All Data Labels TLV is | three sets are derived as described below: a set of nicknames, a set | |||
true, then the address flush message applies to all Data Labels and | of Data Labels, and a set of MAC addresses. The address flush | |||
the set of Data Labels and block of Data labels specified has no | operation at the receiver applies to the cross product of these | |||
effect. If the flag indicating the presence of an All Data Labels TLV | derived sets. That is, a { Data Label, MAC address, nickname } triple | |||
is false, then the address flush messages applies only to the set of | is flushed if and only if the Data Label matches an element in the | |||
Data Labels accumulated from parsing the message; if that set is | derived set of Data Labels, the MAC address matches an element in the | |||
null, the address flush message does nothing. | derived set of MAC address, and the nickname matches an element in | |||
the derived set of nicknames. In the case of Data Labels and MAC | ||||
addresses, a special value of the set, {ALL}, is permitted which | ||||
matches all values. | ||||
The sets are derived as follows: | ||||
Data Labels set: | ||||
If the Type 6 TLV has been encountered, the set is {ALL}, else, | ||||
if any Data Labels have been accumulated by processing Data | ||||
Label TLVs (Types 1, 2, 3, 4, and 5), the set is those | ||||
accumulated Data Labels, else, | ||||
the Data Labels set is null and the address flush message does | ||||
nothing. | ||||
MAC Addresses set: | ||||
In the receiver does not implement the MAC address types (Types | ||||
7 and 8) or it does implement those types but no MAC | ||||
addresses are accumulated in parsing the TLVs, then the MAC | ||||
Address set is {ALL}, | ||||
else, the MAC Addresses set is the set of MAC addresses | ||||
accumulated in processing the TLVs. | ||||
Nicknames set: | ||||
If the K-nicks field in the Address Flush message was zero, | ||||
then the ingress nickname in the TRILL Header of the message | ||||
is the sole nickname set member, else, | ||||
the nicknames set members are the K-nicks nicknames listed in | ||||
the Address Flush message. | ||||
INTERNET-DRAFT Address Flush Message | ||||
The various formats below are provided for encoding efficiency. A | The various formats below are provided for encoding efficiency. A | |||
block of values is most efficient when there are a number of | block of values is most efficient when there are a number of | |||
consecutive values. A bit map is most efficient if there are | consecutive values. A bit map is most efficient if there are | |||
scattered values within a limited range. And a list of single values | scattered values within a limited range. And a list of single values | |||
is most efficient if there are widely scattered values. | is most efficient if there are widely scattered values. | |||
2.2.1 Blocks of VLANs | 2.2.1 Blocks of VLANs | |||
If the TLV Type is 1, the value is a list of blocks of VLANs as | If the TLV Type is 1, the value is a list of blocks of VLANs as | |||
skipping to change at page 11, line 43 ¶ | skipping to change at page 12, line 30 ¶ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| RESV | Start.VLAN 1 | RESV | End.VLAN 1 | | | RESV | Start.VLAN 1 | RESV | End.VLAN 1 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| RESV | Start.VLAN 2 | RESV | End.VLAN 2 | | | RESV | Start.VLAN 2 | RESV | End.VLAN 2 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| RESV | Start.VLAN ... | RESV | End.VLAN ... | | | RESV | Start.VLAN ... | RESV | End.VLAN ... | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
The meaning of Start.VLAN and End.VLAN is as specified in Section | The meaning of Start.VLAN and End.VLAN is as specified in Section | |||
2.1. Length MUST be a multiple of 4. If Length is not a multiple of | 2.1. Length MUST be a multiple of 4. If Length is not a multiple of | |||
4, the TLV is corrupt and the Address Flush message MUST be ignored. | 4, the TLV is corrupt and the Address Flush message MUST be | |||
discarded. | ||||
2.2.2 Bit Map of VLANs | 2.2.2 Bit Map of VLANs | |||
If the TLV Type is 2, the value is a bit map of VLANs as follows: | If the TLV Type is 2, the value is a bit map of VLANs as follows: | |||
INTERNET-DRAFT Address Flush Message | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type = 2 | Length | | | Type = 2 | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | |||
| RESV | Start.VLAN | Bits... | | RESV | Start.VLAN | Bits... | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | |||
The value portion of the TLV begins with two bytes having the 12-bit | The value portion of the TLV begins with two bytes having the 12-bit | |||
starting VLAN ID right justified (the top 4 bits are as specified in | starting VLAN ID right justified (the top 4 bits are as specified in | |||
Section 2.1 RESV). This is followed by bytes with one bit per VLAN | Section 2.1 RESV). This is followed by bytes with one bit per VLAN | |||
ID. The high order bit of the first byte is for VLAN N, the next to | ID. The high order bit of the first byte is for VLAN N, the next to | |||
the highest order bit is for VLAN N+1, the low order bit of the first | the highest order bit is for VLAN N+1, the low order bit of the first | |||
byte is for VLAN N+7, the high order bit of the second byte, if there | byte is for VLAN N+7, the high order bit of the second byte, if there | |||
is a second byte, is for VLAN N+8, and so on. If that bit is a one, | is a second byte, is for VLAN N+8, and so on. If that bit is a one, | |||
the Address Flush message applies to that VLAN. If that bit is a | the Address Flush message applies to that VLAN. If that bit is a | |||
zero, then addresses that have been learned in that VLAN are not | zero, then addresses that have been learned in that VLAN are not | |||
flushed. Note that Length MUST be at least 2. If Length is 0 or 1 | flushed. Note that Length MUST be at least 2. If Length is 0 or 1 | |||
the TLV is corrupt and the Address Flush message MUST be ignored. | ||||
INTERNET-DRAFT Address Flush Message | ||||
the TLV is corrupt and the Address Flush message MUST be discarded. | ||||
VLAN IDs do not wrap around. If there are enough bytes so that some | VLAN IDs do not wrap around. If there are enough bytes so that some | |||
bits correspond to VLAN ID 0xFFF or higher, those bits are ignored | bits correspond to VLAN ID 0xFFF or higher, those bits are ignored | |||
but the message is still processed for bits corresponding to valid | but the message is still processed for bits corresponding to valid | |||
VLAN IDs. | VLAN IDs. | |||
2.2.3 Blocks of FGLs | 2.2.3 Blocks of FGLs | |||
If the TLV Type is 3, the value is a list of blocks of FGLs as | If the TLV Type is 3, the value is a list of blocks of FGLs as | |||
follows: | follows: | |||
skipping to change at page 13, line 4 ¶ | skipping to change at page 13, line 39 ¶ | |||
| Start.FGL ... | | | Start.FGL ... | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| End.FGL ... | | | End.FGL ... | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
The TLV value consists of sets of Start.FGL and End.FGL numbers. The | The TLV value consists of sets of Start.FGL and End.FGL numbers. The | |||
Address Flush information applies to the FGLs in that range, | Address Flush information applies to the FGLs in that range, | |||
inclusive. A single FGL is indicated by setting both Start.FGL and | inclusive. A single FGL is indicated by setting both Start.FGL and | |||
End.FGL to the same value. If End.FGL is less than Start.FGL, | End.FGL to the same value. If End.FGL is less than Start.FGL, | |||
considering them as unsigned integers, that block is ignored but the | considering them as unsigned integers, that block is ignored but the | |||
INTERNET-DRAFT Address Flush Message | ||||
Address Flush message is still processed for any other blocks | Address Flush message is still processed for any other blocks | |||
present. For this Type, Length MUST be a multiple of 6; if it is not, | present. For this Type, Length MUST be a multiple of 6; if it is not, | |||
the TLV is corrupt and the Address Flush message MUST be discarded if | the TLV is corrupt and the Address Flush message MUST be discarded if | |||
the receiving RBridge implements Type 3. | the receiving RBridge implements Type 3. | |||
2.2.4 list of FGLs | 2.2.4 list of FGLs | |||
If the TLV Type is 4, the value is a list of FGLs as follows: | If the TLV Type is 4, the value is a list of FGLs as follows: | |||
INTERNET-DRAFT Address Flush Message | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type = 4 | Length | | | Type = 4 | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| FGL 1 | | | FGL 1 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| FGL 2 | | | FGL 2 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| FGL ... | | | FGL ... | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
skipping to change at page 14, line 4 ¶ | skipping to change at page 14, line 44 ¶ | |||
The TLV value consists of three bytes with the 24-bit starting FGL | The TLV value consists of three bytes with the 24-bit starting FGL | |||
value N. This is followed by bytes with one bit per FGL. The high | value N. This is followed by bytes with one bit per FGL. The high | |||
order bit of the first byte is for FGL N, the next to the highest | order bit of the first byte is for FGL N, the next to the highest | |||
order bit is for FGL N+1, the low order bit of the first byte is for | order bit is for FGL N+1, the low order bit of the first byte is for | |||
FGL N+7, the high order bit of the second byte, if there is a second | FGL N+7, the high order bit of the second byte, if there is a second | |||
byte, is for FGL N+8, and so on. If that bit is a one, the Address | byte, is for FGL N+8, and so on. If that bit is a one, the Address | |||
Flush message applies to that FGL. If that bit is a zero, then | Flush message applies to that FGL. If that bit is a zero, then | |||
addresses that have been learned in that FGL are not flushed. Note | addresses that have been learned in that FGL are not flushed. Note | |||
that Length MUST be at least 3. If Length is 0, 1, or 2 for a Type 5 | that Length MUST be at least 3. If Length is 0, 1, or 2 for a Type 5 | |||
TLV, the TLV is corrupt and the Address Flush message MUST be | TLV, the TLV is corrupt and the Address Flush message MUST be | |||
discarded if type 5 is implemented. FGLs do not wrap around. If | ||||
INTERNET-DRAFT Address Flush Message | there are enough bytes so that some bits correspond to an FGL higher | |||
than 0xFFFFFF, those bits are ignored but the message is still | ||||
discarded. FGLs do not wrap around. If there are enough bytes so | processed for bits corresponding to valid FGLs. | |||
that some bits correspond to an FGL higher than 0xFFFFFF, those bits | ||||
are ignored but the message is still processed for bits corresponding | ||||
to valid FGLs. | ||||
2.2.6 All Data Labels | 2.2.6 All Data Labels | |||
If the TLV Type is 6, the value is null as follows: | If the TLV Type is 6, the value is null as follows: | |||
INTERNET-DRAFT Address Flush Message | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type = 6 | Length = 0 | | | Type = 6 | Length = 0 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
This type is used when a RBridge wants to withdraw all addresses for | This type is used when a RBridge wants to withdraw all addresses for | |||
all the Data Labels (all VLANs and FGLs). Length MUST be zero. If | all the Data Labels (all VLANs and FGLs). Length MUST be zero. If | |||
Length is any other value, the TLV is corrupt and the Address Flush | Length is any other value, the TLV is corrupt and the Address Flush | |||
message MUST be ignored. | message MUST be discarded. | |||
2.2.7 MAC Address List | 2.2.7 MAC Address List | |||
If the TLV Type is 7, the value is a list of MAC addresses as | If the TLV Type is 7, the value is a list of MAC addresses as | |||
follows: | follows: | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type = 7 | Length | | | Type = 7 | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| MAC 1 upper half | | | MAC 1 upper half | | |||
skipping to change at page 14, line 48 ¶ | skipping to change at page 15, line 39 ¶ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| MAC 2 lower half | | | MAC 2 lower half | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| MAC ... upper half | | | MAC ... upper half | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| MAC ... lower half | | | MAC ... lower half | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
The TLV value consists of a list of 48-bit MAC addresses. Length MUST | The TLV value consists of a list of 48-bit MAC addresses. Length MUST | |||
be a multiple of 6. If it is not, the TLV is corrupt and the Address | be a multiple of 6. If it is not, the TLV is corrupt and the Address | |||
Flush message MUST be ignored if the receiving RBridge implements | Flush message MUST be discarded if the receiving RBridge implements | |||
Type 7. | Type 7. | |||
INTERNET-DRAFT Address Flush Message | ||||
2.2.8 MAC Address Blocks | 2.2.8 MAC Address Blocks | |||
If the TLV Type is 8, the value is a list of blocks of MAC addresses | If the TLV Type is 8, the value is a list of blocks of MAC addresses | |||
as follows: | as follows: | |||
INTERNET-DRAFT Address Flush Message | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type = 8 | Length | | | Type = 8 | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| MAC.start 1 upper half | | | MAC.start 1 upper half | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| MAC.start 1 lower half | | | MAC.start 1 lower half | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| MAC.end 1 upper half | | | MAC.end 1 upper half | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| MAC.end 1 lower half | | | MAC.end 1 lower half | | |||
skipping to change at page 18, line 38 ¶ | skipping to change at page 19, line 38 ¶ | |||
Ghanwani, A., and S. Gupta, "Transparent Interconnection of | Ghanwani, A., and S. Gupta, "Transparent Interconnection of | |||
Lots of Links (TRILL): Clarifications, Corrections, and | Lots of Links (TRILL): Clarifications, Corrections, and | |||
Updates", RFC 7780, DOI 10.17487/RFC7780, February 2016, | Updates", RFC 7780, DOI 10.17487/RFC7780, February 2016, | |||
<http://www.rfc-editor.org/info/rfc7780>. | <http://www.rfc-editor.org/info/rfc7780>. | |||
[RFC7978] - Eastlake 3rd, D., Umair, M., and Y. Li, "Transparent | [RFC7978] - Eastlake 3rd, D., Umair, M., and Y. Li, "Transparent | |||
Interconnection of Lots of Links (TRILL): RBridge Channel | Interconnection of Lots of Links (TRILL): RBridge Channel | |||
Header Extension", RFC 7978, DOI 10.17487/RFC7978, September | Header Extension", RFC 7978, DOI 10.17487/RFC7978, September | |||
2016, <http://www.rfc-editor.org/info/rfc7978>. | 2016, <http://www.rfc-editor.org/info/rfc7978>. | |||
[RFC8174] - Leiba, B., "Ambiguity of Uppercase vs Lowercase in | ||||
RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | ||||
May 2017, <http://www.rfc-editor.org/info/rfc8174> | ||||
Informative References | Informative References | |||
[RFC4762] - Lasserre, M., Ed., and V. Kompella, Ed., "Virtual Private | [RFC4762] - Lasserre, M., Ed., and V. Kompella, Ed., "Virtual Private | |||
LAN Service (VPLS) Using Label Distribution Protocol (LDP) | LAN Service (VPLS) Using Label Distribution Protocol (LDP) | |||
Signaling", RFC 4762, January 2007. | Signaling", RFC 4762, January 2007. | |||
Acknowledgements | Acknowledgements | |||
The following are thanked for their contributions: | The following are thanked for their contributions: | |||
Ramkumar Parameswaran, Henning Rogge | Ramkumar Parameswaran, Henning Rogge | |||
INTERNET-DRAFT Address Flush Message | ||||
The document was prepared in raw nroff. All macros used were defined | The document was prepared in raw nroff. All macros used were defined | |||
within the source file. | within the source file. | |||
INTERNET-DRAFT Address Flush Message | INTERNET-DRAFT Address Flush Message | |||
Authors' Addresses | Authors' Addresses | |||
Weiguo Hao | Weiguo Hao | |||
Huawei Technologies | Huawei Technologies | |||
101 Software Avenue, | 101 Software Avenue, | |||
End of changes. 45 change blocks. | ||||
86 lines changed or deleted | 144 lines changed or added | |||
This html diff was produced by rfcdiff 1.46. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |