Transparent Interconnection of Lots of Links (TRILL): Interface Addresses APPsub-TLV
Extracted elements (28)
AFN (Address Family Number) is used exclusively to represent address field types in the IA APPsub-TLV rather than Ethertype or hardware address type, even though other IETF protocols use those alternatives, because AFN provides a unified namespace for all address families.
The Addr Sets End field is always 2 bytes and allows sub-sub-TLVs to always be locatable by a receiver even when some AFNs are unknown, because the boundary between Address Sets and sub-sub-TLVs is explicitly encoded rather than derived by parsing.
The well-known Template values 32-39 are designed so that bits 0x01, 0x02, and 0x04 indicate the presence of IPv4, IPv6, and RBridge Port ID respectively, enabling easy decoding without a lookup table.
Sub-sub-TLV types and lengths use 2-byte fields when the enclosing IA APPsub-TLV is in an extended LSP TLV, but only 1-byte fields are usable in non-extended (traditional ISO-10589) LSPs. Types greater than 255 cannot be used in the non-extended context.
A TRILL switch that wishes to include an AFN that some receiving TRILL switch in the campus may not know SHOULD include an AFN Size sub-sub-TLV to allow parsing of the Address Sets even if the AFN is unrecognized.
If an IA APPsub-TLV is received with one or more AFNs in its Template for which the receiving TRILL switch does not know the length and no AFN Size sub-sub-TLV is present, that IA APPsub-TLV MUST be ignored.
If any AFNs in the Template are unknown to the receiving IS and the address length is not provided by an AFN Size sub-sub-TLV, the receiving IS MUST ignore the IA APPsub-TLV.
If the Addr Sets End field is greater than Length or points to before the end of the Template, the IA APPsub-TLV is corrupt and MUST be discarded.
If the Length field is 6 or less, or if the APPsub-TLV extends beyond the size of an encompassing TRILL GENINFO TLV or other context, the APPsub-TLV MUST be ignored.
If the Length of the AFN Size sub-sub-TLV is not a multiple of 3, the sub-sub-TLV MUST be ignored. Additionally, if a known AFN's declared size differs from the size known to the receiving switch, the enclosing IA APPsub-TLV MUST be ignored as corrupt.
If the Length of the Data Label sub-sub-TLV is not 2 or 3, the sub-sub-TLV MUST be ignored.
If the Length of the Fixed Address sub-sub-TLV is 0 or 1, the sub-sub-TLV MUST be ignored. If the implied Fixed Address size differs from the known size for the given AFN, the sub-sub-TLV MUST be ignored as corrupt.
If the Length of the Topology sub-sub-TLV is not 2, the sub-sub-TLV MUST be ignored.
Address synthesis rules: OUI (3 bytes) combined with MAC/24 (3 bytes) produces a 48-bit MAC; OUI combined with MAC/40 (5 bytes) produces a 64-bit MAC. IPv6/64 (8 bytes) combined with a 48-bit or 64-bit MAC (expanded per RFC 7042 Section 2.2.1) produces a 128-bit IPv6 address.
The AFN Size sub-sub-TLV (type 1) allows a TRILL switch to specify the byte size of an address type identified by an AFN, enabling parsing of unknown or variable-length AFNs. Each AFN Size Record is 3 bytes: 2-byte AFN and 1-byte AdrSize.
The Confidence field (1 byte, unsigned, 0-254) indicates the confidence level in the addresses being transported. A value of 255 is treated as 254.
The Data Label sub-sub-TLV (type 3) specifies the VLAN or FGL within which the interfaces are reachable. Length 2 encodes a VLAN ID (bottom 12 bits); Length 3 encodes an FGL. Multiple occurrences indicate reachability in all listed Data Labels.
The Fixed Address sub-sub-TLV (type 2) specifies an address that is implicitly present in every Address Set of the IA APPsub-TLV without appearing in the Template or individual Address Sets, saving space when the same address repeats across all sets.
The Flags byte contains the D (Directory) flag and L (Local) flag. D=1 indicates directory information; L=1 indicates locally learned information by observing ingressed frames. Both can be set simultaneously. Reserved bits MUST be sent as zero and ignored on receipt.
The Interface Addresses (IA) APPsub-TLV (type 10) is used to advertise sets of addresses that all designate the same interface (port) within a Data Label (VLAN or FGL), associating that interface with a TRILL switch and optionally a TRILL switch port. It carries a Template field specifying the address format, followed by one or more Address Sets, and optional sub-sub-TLVs.
The Template field determines the format of Address Sets. If the initial byte K is 1-31, it is followed by K AFNs (2 bytes each) specifying the address types. If K is 32-39, it encodes a well-known combination (e.g., 32=48-bit MAC only, 35=48-bit MAC+IPv4+IPv6). K=0 or K=255 causes the APPsub-TLV to be ignored.
The Topology sub-sub-TLV (type 4) specifies the 12-bit topology number in which the interfaces are reachable. Length MUST be 2; any other value causes the sub-sub-TLV to be ignored. The top 4 bits are reserved and must be sent as zero.
IANA allocated AFN values for use in IA APPsub-TLVs, including: IPv4 (0x0001), IPv6 (0x0002), 48-bit MAC (0x4005), 64-bit MAC (0x4006), OUI (0x4007), MAC/24 (0x4008), MAC/40 (0x4009), IPv6/64 (0x400A), and RBridge Port ID (0x400B) in the 'Address Family Numbers' registry.
IANA allocated type 10 as the IA APPsub-TLV in the 'TRILL APPsub-TLV Types under IS-IS TLV 251 Application Identifier 1' registry, with the name 'IA'.
IANA established a new sub-registry 'Interface Addresses APPsub-TLV Sub-sub-TLVs' under the TRILL Parameters registry with Expert Review procedure. Initial types: 0=Reserved, 1=AFN Size, 2=Fixed Address, 3=Data Label, 4=Topology, 5-254=Unassigned, 255=Reserved, 256-65534=Unassigned, 65535=Reserved.
Forged, altered, or incorrect address mapping or data labeling can lead to packet delivery to the wrong party, violating security policy. The document provides no explicit securing mechanisms beyond simple consistency checks; security must be provided by the transport (e.g., ESADI security or Channel Tunnel security).
If address mapping and reachability information is known to be complete and correct, it can be used to detect forged packet source addresses. If native traffic arrives at a TRILL switch from an address that authoritative data indicates should not be reachable from that switch, the traffic should be discarded.
The IA APPsub-TLV wire format includes: Type (2 bytes, value 10), Length (2 bytes, minimum 7), Addr Sets End (2 bytes), Nickname (2 bytes), Flags (1 byte with D and L bits), Confidence (1 byte, range 0-254), Template (variable), Address Sets (variable), and optional sub-sub-TLVs.