IS-IS Multi-Part TLVs

A TLV is a tuple of (Type, Length, Value) that is used by the IS-IS protocol to advertise information. TLVs contain information called keys which indicate the identity of the object to which the contents of the TLV apply.

In IS-IS, the length of a TLV is limited to 255 bytes. However, based on the local configuration, there could be more than 255 bytes of information to advertise about a particular object. In such cases, multiple TLVs are required. This is referred to as multi-part TLV (MP-TLV).

Currently, Cisco's IS-IS implementation supports the sending of MP-TLVs for prefix-reachability, router capability, and IS-neighbor advertisements, by default. However, in a network, not all routers might support the processing of MP-TLVs. This could result in interoperability problems, including incorrect routing and forwarding.

From Cisco IOS XE 17.13.1 release, you can choose to selectively disable the sending of MP-TLVs based on type. When you disable the sending of MP-TLV, the amount of information sent for a given object is limited to 255 bytes. If the configuration requires sending more than 255 bytes, some information will not be advertised, which could result in incorrect routing.


Warning


If a configuration requires sending MP-TLVs and not all routers in the network support MP-TLVs for an object, the operation of the network will be compromised.


Disabling Multi-Part TLVs

To disable multi-part TLV, run the multi-part tlv disable command. This command allows you to disable MP-TLV for prefix-reachability, neighbor or router-capability TLVs.

Router(config-router)# multi-part-tlv disable ?
 level-1               Disable multi-part tlv in level-1
 level-2               Disable multi-part tlv in level-2
 neighbor              Disable multi-part-tlv for neighbor
 prefix                Disable multi-part tlv for prefix 
 router-capability     Disable multi-part tlv for router-capability
  <cr>               <cr>

The following is a sample of the disable command executed in a Cisco ASR1000 router running on Cisco IOS XE 17.13.1 image.

ASR1k(config-router)# multi-part-tlv disable neighbor

Note


To enable this feature again, use the no form of the multi-part tlv disable command.


Verifying Successful Disabling of Multi-Part TLVs

To verify whether the MP-TLV functionality is disabled in your router, run the show isis command.

Router# show isis protocol 
Tag 1:
IS-IS Router: 1 (0x10000)
  System Id: 1720.1600.1001.00  IS-Type: level-1  lsp-mtu: 512
  Manual area address(es): 
	49.1234
  Routing for area address(es): 
	49.1234
  Interfaces supported by IS-IS:
	Ethernet1/0 - IP - IPv6
	Ethernet0/2 - IP - IPv6
	Ethernet0/1 - IP - IPv6
	Ethernet0/0 - IP - IPv6
	Loopback0 - IP - IPv6
  Redistribute(CLNS):
    static (on by default)
  Distance for L2 CLNS routes: 110
  RRR level: level-1-2
  Generate narrow metrics: none
  Accept narrow metrics:   none
  Generate wide metrics:   level-1-2
  Accept wide metrics:     level-1-2
  Parallel flooding:       suppressed
  Adjacency stagger:       disabled
  IP/IPv6 Redistribution Limit: 10000(Default) Threshold: 75%  
    L1 Redistributed routes: 0
  Maintenance Mode ID:     140331958078648
  Maintenance Mode:        disabled
  Maintenance Mode Timer:  stopped (0)
  Graceful Reload state:   GR_NONE
  Multi-part-tlv Disabled: Level-1 
    prefix
  Multi-part-tlv Disabled: Level-2
    neighbor prefix router-capability

Note the disabled status of Multi-part TLV in the above-mentioned sample show output.


Note


When you disable MP-TLV and the local configuration requires sending more than 255 bytes about an object, you will see one of the following in the logs:

  • MP-TLVs are disabled, and neighbor TLV <name> in level <num> is advertising partial link-state information.

  • MP-TLVs are disabled, and prefix TLV <address> in level <num> is advertising partial link-state information.

  • MP-TLVs are disabled, and router-cap TLV advertisement is truncated to fit in one TLV.