TLV stands for (Type Length Value) and it is a Variable-Length field appended to the IS-IS PDUs and gives the IS-IS a lot of capabilities.
IS-IS was not designed to be for IP routing, it was designed for CLNS but after integration it became working in both environments CLNS or IP or both together and then called to be Integrated IS-IS ,one of the things which make IS-IS extensible for any new variable information is the TLVs, also when the IPV6 came out, all what we needed is to add a new TLV that could carry the IPV6 information and that is it. So you could have IPV4 and IPV6 network routing processes under the same IS-IS Instance , and if there are new capabilities needed to be added to IS-IS we need only to add new TLV type.
The Format of the TLV field is divided to three sub-fields as the Following:
- Type [Code] Field 1-Octet
- Length Field 1-Octet
- Value Filed Length
Fields details:
- Type [Code] Field is a number specifying what is the content of the Value Field , is it IPV4 information or IPV6 or any other information.
- Length Field is the Length or the size of the Value Field in Octets.
- Value Field is the information itself and the maximum size of that field is 255 Octets.
Let’s list the TLVs that could be appended to the IS-IS Hello PDU [IIH]:-
- Area Address [Code#1]
- Intermediate System Neighbors [Code#6]
- Padding [Code#8]
- Authentication [Code#10]
- Protocol supported[Code#129]
- Optional checksum [Code#12]
- IPv4 interface address [Code#132]
- Restart [Code#211]
- Multi-topology [Code#229]
- IPV6 interface address [Code#232]
- Experimental [Code#250]
The following TLVs are supported by Cisco:-
1- Area Address TLV [Code#1]
This TLV would be appended to IIH in order to identify the area address which the originator router belong to.
2- Intermediate System Neighbors TLV [Code#6]
IS-Neighbors TLV which associated to Hello-PDU is appends to the Hello message in case the originator is in LAN network, and it dose not appends in case the originator send this Hello to point-to-point Neighbor as there is no DIS election needed in the Point-to-Point adjacency, this TLV carry list of neighbors MAC addresses that the originator recently heard hellos from.
Note: There is another IS-Neighbors TLV append to the the IS-IS link-state PDU LSP but is different in type code and the information which is carrying.
3 – Padding TLV [Code#8]
The Padding TLV appends to IS-IS Hello (IIH) packets to detect the maximum transmission unit (MTU) of the interfaces, IIH packets are padded to the fullest MTU of the interface.
4 – Authentication TLV [Code#10]
Authentication TLV is used when authentication is configured, and carries the authentication information which Neighbors agreed with , the Value field of this TLV is divided to two sections first one is [Authentication Type field] and it is identify the types by number from 1 to 255 , Cisco IOS support only Clear-Text [Type#1] and HMAC-MD5 [Type#54].
5 – Protocol Supported TLV [Code#129]
The main function of this TLV is to tell the Neighbor what is the protocol I will work with [CLNP ,IPv4,IPv6 or all of these] , the value sub-field is contains the NLPID (Network layer protocol ID]of which Protocol would be supported.
6 – IP interface TLV [Code#132]
This TLV is carrying the IP address of the interface which the PDU has been sent out of it , note: the TLV length field is 1-octet numbered up to 255 , so theoretically the value field can carry 63 IPV4 address [225/4 IPV4 length].
Hope you find this useful;
Mohamed Wagdy