Description

When LDP sync is configured under IGP, and LDP+IGP both are down, one end shows the following:
'State : In sync', 'Reason : IGP interface down'

while the other end shows the following:
'state: in hold-down' and 'reason: LDP down during config'.

LDP-IGP sync in hold-down shows the following:
'reason : LDP down during config'

Symptoms

One end shows LDP sync state and reason as below:
 
regress@R1_RE> show ospf interface ae1.0 extensive    
Interface           State   Area            DR ID           BDR ID          Nbrs
ae1.0               Down    0.0.0.0         0.0.0.0         0.0.0.0            0
  Type: P2P, Address: 100.10.10.1, Mask: 255.255.255.252, MTU: 1500, Cost: 2000
  Adj count: 0
  Hello: 1, Dead: 4, ReXmit: 5, Not Stub
  Auth type: None
  Protection type: None
  Topology default (ID 0) -> Cost: 2000
  LDP sync state: in sync, for: 00:05:26, reason: IGP interface down
           config holdtime: infinity
           
While, the other end shows a different LDP sync state and reason:
 
regress@R2_RE> show ospf interface ae1.0 extensive    
Interface           State   Area            DR ID           BDR ID          Nbrs
ae1.0               Down    0.0.0.0         0.0.0.0         0.0.0.0            0
  Type: P2P, Address: 100.10.10.2, Mask: 255.255.255.252, MTU: 1500, Cost: 65535
  Adj count: 0
  Hello: 1, Dead: 4, ReXmit: 5, Not Stub
  Auth type: None
  Protection type: None
  Topology default (ID 0) -> Cost: 2000
  LDP sync state: in hold-down, for: 00:00:10, reason: LDP down during config
           config holdtime: infinity

Solution

Synchronization between the Label Distribution Protocol (LDP) and the underlying interior gateway protocol (IGP) ensures that LDP is fully established before the IGP path is used for forwarding traffic

When synchronization is configured, LDP notifies the IGP to advertise the maximum cost for the link when one of the following triggering events takes place:

  • The LDP hello adjacency goes down.
  • The LDP session goes down.
  • LDP is not configured on an interface.

Even if LDP is not configured on the peer, with LDP-syncronization configuration present on the local device, it expects LDP to be up and because of which IGP will advertise highest metrics.

Refer to the document on Understanding LDP-IGP Synchronization

The following scenario is where both ends would report a different LDP sync state with different reasons:
 

R1 ------ ae1.0 ------- R2


Initially, LDP-IGP sync is only configured on R1:
 

regress@R1_RE> show configuration protocols ospf |display set 
set protocols ospf area 0.0.0.0 interface ae1.0 interface-type p2p
set protocols ospf area 0.0.0.0 interface ae1.0 metric 2000
set protocols ospf area 0.0.0.0 interface ae1.0 hello-interval 1
set protocols ospf area 0.0.0.0 interface ae1.0 ldp-synchronization
set protocols ospf area 0.0.0.0 interface lo0.0


regress@R1_RE> show configuration protocols ldp |display set 
set protocols ldp interface ae1.0
set protocols ldp interface lo0.0



LDP-IGP sync is not yet configured on R2:
 

regress@R2_RE> show configuration protocols ospf |display set 
set protocols ospf area 0.0.0.0 interface ae1.0 interface-type p2p
set protocols ospf area 0.0.0.0 interface ae1.0 metric 2000
set protocols ospf area 0.0.0.0 interface ae1.0 hello-interval 1


regress@R2_RE> show configuration protocols ldp |display set 
set protocols ldp interface ae1.0
set protocols ldp interface lo0.0


LDP and OSPF both are up between R1 and R2.
 
1. Initially, LDP-IGP is in sync on R1:

    regress@R1_RE> show ospf interface ae1.0 extensive    
    Interface           State   Area            DR ID           BDR ID          Nbrs
    ae1.0               PtToPt  0.0.0.0         0.0.0.0         0.0.0.0            1
      Type: P2P, Address: 100.10.10.1, Mask: 255.255.255.252, MTU: 1500, Cost: 2000
      Adj count: 1
      Hello: 1, Dead: 4, ReXmit: 5, Not Stub
      Auth type: None
      Protection type: None
      Topology default (ID 0) -> Cost: 2000
      LDP sync state: in sync, for: 00:00:38, reason: LDP session up
               config holdtime: infinity

           
2. At the same time, no LDP-IGP sync is configured on R2:

    regress@R2_RE> show ospf interface ae1.0 extensive    
    Interface           State   Area            DR ID           BDR ID          Nbrs
    ae1.0               PtToPt  0.0.0.0         0.0.0.0         0.0.0.0            1
      Type: P2P, Address: 100.10.10.2, Mask: 255.255.255.252, MTU: 1500, Cost: 2000
      Adj count: 1
      Hello: 1, Dead: 4, ReXmit: 5, Not Stub
      Auth type: None
      Protection type: None
      Topology default (ID 0) -> Cost: 2000


3. Bringing down IGP interface on R1 and the state still remains in sync. The reason changes to 'reason: IGP interface down'. This is expected since the IGP adjacency itself has been detected down by R1. Per above documentation, OSPF is not supposed to advertise Max metric in this scenario. The state on R1 would still remain 'in-sync' since the IGP has went down and for this state, Max metric is never advertised. A Max metric is supposed to be advertised only when OSPF/IGP is up but LDP is down, which leads to state ‘hold-down’
R2 remains unaffected for this output since LDP-IGP sync is not enabled on it 

    root@R1_RE:/var/home/regress # ifconfig ge-0/0/1 down

    regress@R1_RE> show ospf interface ae1.0 extensive    
    Interface           State   Area            DR ID           BDR ID          Nbrs
    ae1.0               Down    0.0.0.0         0.0.0.0         0.0.0.0            0
      Type: P2P, Address: 100.10.10.1, Mask: 255.255.255.252, MTU: 1500, Cost: 2000
      Adj count: 0
      Hello: 1, Dead: 4, ReXmit: 5, Not Stub
      Auth type: None
      Protection type: None
      Topology default (ID 0) -> Cost: 2000
      LDP sync state: in sync, for: 00:01:51, reason: IGP interface down
               config holdtime: infinity


Still LDP-IGP sync is not configured on R2 :

    regress@R2_RE> show ospf interface ae1.0 extensive    
    Interface           State   Area            DR ID           BDR ID          Nbrs
    ae1.0               Down    0.0.0.0         0.0.0.0         0.0.0.0            0
      Type: P2P, Address: 100.10.10.2, Mask: 255.255.255.252, MTU: 1500, Cost: 2000
      Adj count: 0
      Hello: 1, Dead: 4, ReXmit: 5, Not Stub
      Auth type: None
      Protection type: None
      Topology default (ID 0) -> Cost: 2000

      
      
4. Enable LDP-IGP sync on R2. The state on R2 shows as 'hold-down' and the reason as 'LDP down during config' with cost of 65535. 'LDP down during config', which means LDP adjacency was down when the sync was configured for the 1st time. The reason for LDP adjacency staying down could be anything like a misconfiguration or the LDP interface is genuinely down

    regress@R2_RE# show |compare 
    [edit protocols ospf area 0.0.0.0 interface ae1.0]
    +      ldp-synchronization;


    regress@R2_RE> show ospf interface ae1.0 extensive    
    Interface           State   Area            DR ID           BDR ID          Nbrs
    ae1.0               Down    0.0.0.0         0.0.0.0         0.0.0.0            0
      Type: P2P, Address: 100.10.10.2, Mask: 255.255.255.252, MTU: 1500, Cost: 65535
      Adj count: 0
      Hello: 1, Dead: 4, ReXmit: 5, Not Stub
      Auth type: None
      Protection type: None
      Topology default (ID 0) -> Cost: 2000
      LDP sync state: in hold-down, for: 00:00:10, reason: LDP down during config
               config holdtime: infinity

    
    
There is no state change on R1. It still shows the state as 'in sync' with reason as 'IGP interface down' the cost advertised is also normal - 2000. This is expected since in Step 4, the configuration was local to R2 and R1 does not have a way to detect what happened on R2 since the adjacency is totally down. Logically, there is no change for R1 and hence the state does not change and the metric still stays to 2000

    regress@R1_RE> show ospf interface ae1.0 extensive    
    Interface           State   Area            DR ID           BDR ID          Nbrs
    ae1.0               Down    0.0.0.0         0.0.0.0         0.0.0.0            0
      Type: P2P, Address: 100.10.10.1, Mask: 255.255.255.252, MTU: 1500, Cost: 2000
      Adj count: 0
      Hello: 1, Dead: 4, ReXmit: 5, Not Stub
      Auth type: None
      Protection type: None
      Topology default (ID 0) -> Cost: 2000
      LDP sync state: in sync, for: 00:05:26, reason: IGP interface down
               config holdtime: infinity

 

Modification History

2022-08-02: Initial publication.

2026-18-02:  added one additional trigger