| < draft-ietf-trill-address-flush-01.txt | draft-ietf-trill-address-flush-02.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 | |||
| IPinfusion | IPinfusion | |||
| Expires: June 5, 2017 December 6, 2016 | Expires: July 26, 2017 January 26, 2017 | |||
| TRILL: Address Flush Message | TRILL: Address Flush Message | |||
| <draft-ietf-trill-address-flush-01.txt> | <draft-ietf-trill-address-flush-02.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 9, line 39 ¶ | skipping to change at page 9, line 39 ¶ | |||
| in Section 2.1. | in Section 2.1. | |||
| TLVs: If the byte immediately before the TLVs field, which is the | TLVs: If the byte immediately before the TLVs field, which is the | |||
| byte labeled "K-VLBs" in Figure 2, is zero, as shown in Figure | byte labeled "K-VLBs" in Figure 2, is zero, as shown in Figure | |||
| 3, the remainder of the message consists of TLVs encoded as | 3, the remainder of the message consists of TLVs encoded as | |||
| shown in Figure 4. | shown in Figure 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 | |||
| receiving RBridge, that receiving RBridge ignores the value and | receiving RBridge, that receiving RBridge ignores the value and | |||
| can easily skip to the next TLV by use of the Length byte. | can easily skip to the next TLV by use of the Length byte. | |||
| There is no provision for a list of VLAN IDs TLV as there are | There is no provision for a list of VLAN IDs TLV as there are | |||
| few enough of them that an arbitrary subset of VLAN IDs can be | few enough of them that an arbitrary subset of VLAN IDs can be | |||
| represented as a bit map. | represented as a bit map. | |||
| INTERNET-DRAFT Address Flush Message | INTERNET-DRAFT Address Flush Message | |||
| skipping to change at page 10, line 33 ¶ | skipping to change at page 10, line 33 ¶ | |||
| Length: The 8-bit unsigned integer length of the remaining | Length: The 8-bit unsigned integer length of the remaining | |||
| information in the TLV after the length byte. The length MUST | information in the TLV after the length byte. The length MUST | |||
| NOT imply that the value extends beyond the end of RBridge | NOT imply that the value extends beyond the end of RBridge | |||
| Channel Protocol Specific Payload area. If it does, the Address | Channel Protocol Specific Payload area. If it does, the Address | |||
| Flush message is corrupt and MUST be ignored. | Flush message is corrupt and MUST be ignored. | |||
| Value: Depends on the TLV type. | Value: Depends on the TLV type. | |||
| The TLVs in an extensible Address Flush message are parsed with types | The TLVs in an extensible Address Flush message are parsed with types | |||
| unknown by the receiving RBridge ignored. | unknown by the receiving RBridge ignored. | |||
| All RBridges implementing the Address Flush RBridge Channel | ||||
| message MUST implement types 1 and 2, the VLAN types, and type 6, | ||||
| which indicates addresses are to be flushed for all Data Labels. | ||||
| RBridges that implement FGL ingress/egress MUST implement types 3, | ||||
| 4, and 5, the FGL types. (An RBridge that is merely FGL safe | ||||
| [RFC7172], but cannot egress FGL TRILL Data packets, SHOULD ignore | ||||
| the FGL types as it will not learn any FGL scoped MAC addresses from | ||||
| the data plane.) | ||||
| RBridges SHOULD implement types 7 and 8 so that specific MAC | ||||
| addresses can be flushed. If they do not, the effect will be to flush | ||||
| all MAC addresses for the indicated Data Labels, which will be | ||||
| inefficient as those 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 processing requirements based on support for Address Flush | |||
| of information: a flag indicating whether one or more type 6 TLVs | Channel message plus the additional types: | |||
| (All Data Labels) were encountered; a set of Data Labels and blocks | ||||
| of data labels compiled from VLAN and/or FGL specifying TLVs in the | Basic RBridges functionality: All RBridges supporting the Address | |||
| message; and, if the MAC address TLV types are implemented, a set of | Flush Channel message MUST implement type 1 (Blocks of VLANs), | |||
| MAC addresses and blocks of MAC addresses compiled from MAC address | type 2 (Bit map of VLANs), and type 6 (All Data labels). Type 6 | |||
| specifying TLVs in the message. If the set of MAC addresses and | indicates that all addresses are to be flushed for all data labels. | |||
| blocks of MAC address is null, the address flush message applies to | ||||
| all MAC addresses. If the flag indicating the presence of an All Data | Optional RBridges functionality: RBridges SHOULD implement types 7 | |||
| Labels TLV is true, then the address flush message applies to all | and type 8 so that specific MAC addresses can be can be flushed. | |||
| If a set of RBridges does not implement types 7 and 8, the flush | ||||
| will be inefficient as those not intent to be flashed will have to | ||||
| be relearned. | ||||
| FGL functionality : All RBridges implementing the FGL ingress/egress | ||||
| support and the Address Flush Channel message MUST implement | ||||
| type 3 (Blocks of FGLs), type 4 (Lists of FGLs), | ||||
| and type 5 (Bit Map of FGL). An RBridge that is merely FGL | ||||
| safe [RFC7172], but cannot egress TRILL data packets, SHOULD ignore | ||||
| the FGL types with the Address Flush Channel message as it will not | ||||
| learn any MAC addresses with FGL scope from the MAC data plane. | ||||
| The parsing of the TLVs in an Rbridge Channel Message in the Address | ||||
| Flush Protocol Specific TLVS by a receiving bridge results in three | ||||
| items: | ||||
| INTERNET-DRAFT Address Flush Message | INTERNET-DRAFT Address Flush Message | |||
| Data Labels and the set of Data Labels and block of Data labels | 1) A flag indicating whether one or more types | |||
| specified has no effect. If the flag indicating the presence of an | 6 TLVs (All Data Labels) were encountered. | |||
| All Data Labels TLV is false, then the address flush messages applies | 2) A set of Data labels and blocks of data labels compiled from | |||
| to the set of Data Labels and blocks of Data Labels; if that set is | VLAN TLVs (types 1 and 2), and/or FGL TLVs (types 3, 4, and 5). | |||
| null, the address flush message does nothing. | 3) If a MAC TLVs types (type 6 and 7) are implemented, a set of | |||
| MAC addresses and Blocks of MAC addresses from the MAC TLVs. | ||||
| For the following flag settings, the processing is as follows: | ||||
| a) If the set of MAC addresses and Block of MAC address is null | ||||
| (item 3 above) then Address Flush applies to all messages. | ||||
| b) If the All-Data-label-found flag (item 1 above) is true, | ||||
| then the address flush message applies to all data labels. | ||||
| The set of Data label and block of data labels (item 2 above) | ||||
| does not have any effect. | ||||
| c) If the All-Data-label-found flag (item 1 above) is false, then | ||||
| the Address Flush message applies to the set of | ||||
| Data labels (see item 2 above) found in VLAn | ||||
| TLVs (types 1 and 2), and/or FGLs TLVS (types 3, 4, and 5). | ||||
| If the set of Data Labels (see item 2 above) is null, the | ||||
| Address Flush message does nothing. | ||||
| 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 | |||
| follows: | follows: | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type = 1 | Length | | | Type = 1 | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | RESV | Start.VLAN 1 | RESV | End.VLAN 1 | | | RESV | Start.VLAN 1 | RESV | End.VLAN 1 | | |||
| skipping to change at page 11, line 43 ¶ | skipping to change at page 12, line 4 ¶ | |||
| 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: | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | 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 | |||
| INTERNET-DRAFT Address Flush Message | ||||
| 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. | the TLV is corrupt and the Address Flush message MUST be ignored. | |||
| INTERNET-DRAFT Address Flush Message | ||||
| 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: | |||
| End of changes. 9 change blocks. | ||||
| 34 lines changed or deleted | 52 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||