Description

The DCE (Data Communication Equipment) side of an interface with frame-relay encapsulation keeps flapping when keepalives are enabled. The DTE (Data Terminal Equipment) side of the interface remains up with no faults reported.

Symptoms

The DCE side of the frame-relay interface keeps flapping unexpectedly when keepalives are also configured.  The following messages are seen in the log file:

Sep 7 13:49:19 riga rpd[1199]: EVENT <UpDown> so-0/1/0.100 index 81 <Broadcast PointToPoint Multicast> address #0 18.41
Sep 7 13:49:19 riga mib2d[1206]: SNMP_TRAP_LINK_DOWN: ifIndex 130, ifAdminStatus up(1), ifOperStatus down(2), ifName so-0/1/0
Sep 7 13:49:19 riga rpd[1199]: EVENT UpDown so-0/1/0.100 index 81 <Broadcast PointToPoint Multicast Localup>
Sep 7 13:49:19 riga rpd[1199]: EVENT UpDown so-0/1/0.100 index 81 10.0.75.5 -> 10.0.75.5 <Broadcast PointToPoint Multicast Localup>
Sep 7 13:49:19 riga rpd[1199]: EVENT <UpDown> index 128 <Broadcast Multicast>

The following configuration is used on the DCE side of the link.

lab@riga> show configuration interfaces so-0/1/0 
keepalives;
dce;
encapsulation frame-relay; unit 100 { dlci 100; family inet { address 10.0.75.5/24; } } lab@riga>

The remote end of the link as the configuration below.

lab@ipswich-re1> show configuration interfaces so-0/1/0  
encapsulation frame-relay;
unit 100 {
    dlci 100;
    family inet {
        address 10.0.75.7/24;
    }
}

lab@ipswich-re1> 

Solution

The flaps are caused by the DCE side of the link having keepalives explicitly configured. This will result in the DCE side also sending out LMI enquiry messages to the remote end as can be seen by the capture below.

lab@riga> monitor traffic interface so-0/1/0 detail size 1500 
Address resolution is ON. Use  to avoid any reverse lookup delay.
Address resolution timeout is 4s.
Listening on so-0/1/0, capture size 1500 bytes

13:52:49.386514 Out Q.933, ANSI, codeset 5, Status Enquiry (0x75), length 10
ANSI Report Type IE (0x01), length 1: Link verify (1)
ANSI Link Verify IE (0x03), length 2: TX Seq: 51, RX Seq: 0
13:52:55.209196 In Q.933, ANSI, codeset 5, Status Enquiry (0x75), length 10 ANSI Report Type IE (0x01), length 1: Link verify (1) ANSI Link Verify IE (0x03), length 2: TX Seq: 77, RX Seq: 76 13:52:55.209226 Out Q.933, ANSI, codeset 5, Status Reply (0x7d), length 10 ANSI Report Type IE (0x01), length 1: Link verify (1) ANSI Link Verify IE (0x03), length 2: TX Seq: 77, RX Seq: 77 ^C 3 packets received by filter 0 packets dropped by kernel lab@riga> <no-resolve>

The output below show the counters for the DCE interface. It is clear that the DCE interface is also sending DTE enquiry messages but does not receive any responses

lab@riga> show interfaces extensive so-0/1/0    
Physical interface: so-0/1/0, Enabled, Physical link is Up
  Interface index: 128, SNMP ifIndex: 130, Generation: 131
  Link-level type: Frame-Relay, MTU: 4474, Clocking: Internal, SDH mode, Speed: OC3, Loopback: None, FCS: 16,
  Payload scrambler: Enabled
  Device flags   : Present Running
  Interface flags: Point-To-Point SNMP-Traps Internal: 0x4000
  Link flags     : Keepalives DCE
  Hold-times     : Up 0 ms, Down 0 ms
  ANSI LMI settings: n392dce 3, n393dce 4, t392dce 15 seconds
  LMI statistics:
    Input : 21 (last seen 00:00:05 ago)
    Output: 35 (last sent 00:00:05 ago)
  DTE statistics:
Enquiries sent : 12
Full enquiries sent : 2
Enquiry responses received : 0
Full enquiry responses received : 0
DCE statistics: Enquiries received : 18 Full enquiries received : 3 Enquiry responses sent : 32 Full enquiry responses sent : 3 Common statistics: Unknown messages received : 0 Asynchronous updates received : 0 Out-of-sequence packets received : 0 Keepalive responses timedout         : 0

The correct configuration is to not explicitly enable keepalives on the DCE side of the link. This will result in the DCE always reporting the logical interfaces as up provided that the physical interface is up. The configuration should therefore look something like this.

lab@riga> show configuration interfaces so-0/1/0             
dce;
encapsulation frame-relay;
unit 100 {
    dlci 100;
    family inet {
        address 10.0.75.5/24;
    }
}

lab@riga> 

Below is the interface output for a correctly configured DCE interface.

lab@riga> show interfaces so-0/1/0 extensive        
Physical interface: so-0/1/0, Enabled, Physical link is Up
  Interface index: 128, SNMP ifIndex: 130, Generation: 131
  Link-level type: Frame-Relay, MTU: 4474, Clocking: Internal, SDH mode, Speed: OC3, Loopback: None, FCS: 16,
  Payload scrambler: Enabled
  Device flags   : Present Running
  Interface flags: Point-To-Point SNMP-Traps Internal: 0x4000
  Link flags     : No-Keepalives DCE
  Hold-times     : Up 0 ms, Down 0 ms
  ANSI LMI settings: n392dce 3, n393dce 4, t392dce 15 seconds
  LMI statistics:
    Input : 18 (last seen 00:00:00 ago)
    Output: 18 (last sent 00:00:00 ago)
  DTE statistics:
    Enquiries sent                       : 0
    Full enquiries sent                  : 0
    Enquiry responses received           : 0
    Full enquiry responses received      : 0
  DCE statistics:
Enquiries received : 15
Full enquiries received : 3
Enquiry responses sent : 15
Full enquiry responses sent : 3
Common statistics: Unknown messages received : 0 Asynchronous updates received : 0 Out-of-sequence packets received : 0 Keepalive responses timedout : 0