Description

When on QFX5110, with boundary clock if we configure certain IPV6 addresses the downstream clients does not get synced with PTP clocks.

Symptoms

Configure below IPV6 loopback on QFX5110 with PTP boundary clock enabled. Then downstream do not see any PTP clock sync.
  
{master:0}
root@QFX5110> show configuration protocols ptp
Jul 30 17:50:23
clock-mode boundary;
profile-type g.8275.2.enh;
unicast-negotiation;
slave {
  interface et-0/0/50.0 {
    unicast-mode {
      transport ipv6;
      clock-source fec0:abcd:3000:a::2 local-ip-address fec0:abcd:101a:1::2;
    }
  }
  interface et-0/0/51.0 {
    unicast-mode {
      transport ipv6;
      clock-source fec0:abcd:1000:b::2 local-ip-address fec0:abcd:101b:1::2;
    }
  }
}
master {
  interface xe-0/0/26.0 {
    unicast-mode {
      transport ipv4;
      clock-client 53.1.1.2/32 local-ip-address 53.1.1.1;
    }
  }
  interface lo0.0 {
    unicast-mode {
      transport ipv6;
      clock-client 2001:558:1028:3b04::3/128 local-ip-address 2001:558:1c0::278;
      clock-client 2001:558:1028:3b04::2/128 local-ip-address 2001:558:1c0::278;
      clock-client 2001:558:1028:3b04::7/128 local-ip-address 2001:558:1c0::278;
      clock-client 2001:558:1028:3b04::4/128 local-ip-address 2001:558:1c0::278;
      clock-client 2001:558:1028:3b04::6/128 local-ip-address 2001:558:1c0::278;
      clock-client 2001:558:1028:3b04::5/128 local-ip-address 2001:558:1c0::278;
      clock-client 2001:558:1028:3b00::2/128 local-ip-address 2001:558:1c0::278;
      clock-client 2001:558:1028:3b00::3/128 local-ip-address 2001:558:1c0::278;
      clock-client 2001:558:1028:3b00::4/128 local-ip-address 2001:558:1c0::278;
      clock-client 2001:558:1028:3b00::5/128 local-ip-address 2001:558:1c0::278;
      clock-client 2001:558:1028:3b00::6/128 local-ip-address 2001:558:1c0::278;
      clock-client 2001:558:1028:3b00::7/128 local-ip-address 2001:558:1c0::278;
    }
  }
}
 
 
root@coerds102> show ptp statistics detail  
Jul 30 17:50:37
|
|
lo0.0      2001:558:1028:3b04::3 Master   11    1651    3589
     Signalling  Announce    Sync    Delay    Error
  Rx:      3      0      0    1648      0
  Tx:      3     29    1909    1648      0
Local Clock   Remote Clock    Role Stream   Received Transmitted
                    
{master:0}
root@coerds102> show ptp statistics detail  
Jul 30 17:50:43
|
|
lo0.0      2001:558:1028:3b04::3 Master   11    1651    3589 >>>> we can see statistics incrementing
     Signalling  Announce    Sync    Delay    Error
  Rx:      3      0      0    1648      0
  Tx:      3     29    1909    1648      0
Local Clock   Remote Clock    Role Stream   Received Transmitted
                    
{master:0}
root@QFX5110>
 
 
- After we change the loopback to below IPv6 we see RPD losing PTP status and not recovering.
 
{master:0}
root@QFX5110> configure
Jul 30 17:52:50
Entering configuration mode
 
{master:0}[edit]
root@QFX5110# rollback 1
Jul 30 17:52:52
load complete
 
{master:0}[edit]
root@QFX5110# show | compare
Jul 30 17:52:54
[edit interfaces lo0 unit 0 family inet6]
+    address 2001:558:140:0:ffff:fffe:e000:20/128;
-    address 2001:558:1c0::278/128;
[edit protocols ptp master interface lo0.0 unicast-mode]
+    clock-client 2001:558:1028:3b04::3/128 local-ip-address 2001:558:140:0:ffff:fffe:e000:20;
+    clock-client 2001:558:1028:3b04::2/128 local-ip-address 2001:558:140:0:ffff:fffe:e000:20;
+    clock-client 2001:558:1028:3b04::7/128 local-ip-address 2001:558:140:0:ffff:fffe:e000:20;
+    clock-client 2001:558:1028:3b04::4/128 local-ip-address 2001:558:140:0:ffff:fffe:e000:20;
+    clock-client 2001:558:1028:3b04::6/128 local-ip-address 2001:558:140:0:ffff:fffe:e000:20;
+    clock-client 2001:558:1028:3b04::5/128 local-ip-address 2001:558:140:0:ffff:fffe:e000:20;
+    clock-client 2001:558:1028:3b00::2/128 local-ip-address 2001:558:140:0:ffff:fffe:e000:20;
+    clock-client 2001:558:1028:3b00::3/128 local-ip-address 2001:558:140:0:ffff:fffe:e000:20;
+    clock-client 2001:558:1028:3b00::4/128 local-ip-address 2001:558:140:0:ffff:fffe:e000:20;
+    clock-client 2001:558:1028:3b00::5/128 local-ip-address 2001:558:140:0:ffff:fffe:e000:20;
+    clock-client 2001:558:1028:3b00::6/128 local-ip-address 2001:558:140:0:ffff:fffe:e000:20;
+    clock-client 2001:558:1028:3b00::7/128 local-ip-address 2001:558:140:0:ffff:fffe:e000:20;
-    clock-client 2001:558:1028:3b04::3/128 local-ip-address 2001:558:1c0::278;
-    clock-client 2001:558:1028:3b04::2/128 local-ip-address 2001:558:1c0::278;
-    clock-client 2001:558:1028:3b04::7/128 local-ip-address 2001:558:1c0::278;
-    clock-client 2001:558:1028:3b04::4/128 local-ip-address 2001:558:1c0::278;
-    clock-client 2001:558:1028:3b04::6/128 local-ip-address 2001:558:1c0::278;
-    clock-client 2001:558:1028:3b04::5/128 local-ip-address 2001:558:1c0::278;
-    clock-client 2001:558:1028:3b00::2/128 local-ip-address 2001:558:1c0::278;
-    clock-client 2001:558:1028:3b00::3/128 local-ip-address 2001:558:1c0::278;
-    clock-client 2001:558:1028:3b00::4/128 local-ip-address 2001:558:1c0::278;
-    clock-client 2001:558:1028:3b00::5/128 local-ip-address 2001:558:1c0::278;
-    clock-client 2001:558:1028:3b00::6/128 local-ip-address 2001:558:1c0::278;
-    clock-client 2001:558:1028:3b00::7/128 local-ip-address 2001:558:1c0::278;
 
{master:0}[edit]
root@QFX5110# commit and-quit
Jul 30 17:52:56
configuration check succeeds
commit complete
Exiting configuration mode
 
{master:0}
root@QFX5110>
Jul 30 17:53:13
 
{master:0}
root@QFX5110> show ptp lock-status detail
Jul 30 17:53:17
Lock Status:
 
Lock State  : 5 (PHASE ALIGNED)
Phase offset : -0.000000022 sec
State since  : 2024-07-30 15:51:01 PDT (02:02:16 ago)
 
Selected Master Details:
Upstream Master address  : fec0:abcd:1000:b::2
Slave interface      : et-0/0/51.0
Parent Id         : 04:69:8f:ff:fe:0f:70:98
GMC Id           : 04:69:8f:ff:fe:0f:70:98
 
{master:0}
root@QFX5110> show ptp statistics detail
Jul 30 17:53:21
|
|
lo0.0      2001:558:1028:3b04::3 Master   11      0     365
     Signalling  Announce    Sync    Delay    Error
  Rx:      0      0      0      0      0
  Tx:      0      5     360      0      0
Local Clock   Remote Clock    Role Stream   Received Transmitted
                    
{master:0}
root@QFX5110> show ptp statistics detail  
Jul 30 17:53:23
|
|
lo0.0      2001:558:1028:3b04::3 Master   11      0     365
     Signalling  Announce    Sync    Delay    Error
  Rx:      0      0      0      0      0
  Tx:      0      5     360      0      0
Local Clock   Remote Clock    Role Stream   Received Transmitted
                    
{master:0}
root@QFX5110>
Jul 30 17:53:26
 
{master:0}
root@QFX5110> show ptp statistics detail  
Jul 30 17:53:31
|
|
lo0.0      2001:558:1028:3b04::3 Master   11      0     365
     Signalling  Announce    Sync    Delay    Error
  Rx:      0      0      0      0      0
  Tx:      0      5     360      0      0
Local Clock   Remote Clock    Role Stream   Received Transmitted
                    
{master:0}
root@QFX5110> show ptp statistics detail  
Jul 30 17:53:45
|
|
lo0.0      2001:558:1028:3b04::3 Master   11      0     365
     Signalling  Announce    Sync    Delay    Error
  Rx:      0      0      0      0      0
  Tx:      0      5     360      0      0
Local Clock   Remote Clock    Role Stream   Received Transmitted
                    
{master:0}
root@QFX5110>
Jul 30 17:53:47
 
{master:0}
root@QFX5110> show ptp statistics detail  
Jul 30 17:53:59
|
|
lo0.0      2001:558:1028:3b04::3 Master   11      0     365 >>>> no increments in statistics.
     Signalling  Announce    Sync    Delay    Error
  Rx:      0      0      0      0      0
  Tx:      0      5     360      0      0
Local Clock   Remote Clock    Role Stream   Received Transmitted
                    
{master:0}
root@QFX5110>
 

Solution

Resolved-In

junos:24.2R2 junos:24.3R1


Another workaround is;

1. What is the affected range of IPV6 addresses for this issue?
XXXX:XXXX:XXXX:XXXX:XXXX:e000:00**, where the ** are represented by HEX values and are in the range as follows,
1)  E0-00-00-20 - E0-00-00-3F  (Range, Both Inclusive)
2)  E0-00-00-40 - E0-00-00-7F  (Range, Both Inclusive)
3)  E0-00-00-80 - E0-00-00-FF  (Range, Both Inclusive)

2. Is there any workaround exist other than avoiding above from configuring?

We have only one way and that is to disable the PFE filters. These are not persistent after device reboot or PFE restart, so we need to disable again whenever device/pfe reboots.  
By disabling these filters if there is any multicast traffic running on the device, it would be affected.  If there is no V4 MC traffic on the network, then we do not expect any issues.

I have tested disabling the filters manually in our lab and it worked. Snippets from CFTS lab;

Logs from the device
Initially when issue seen, PTP does not work with clients.

{master:0}
root@QFX5110> show version
localre:
--------------------------------------------------------------------------
Hostname: QFX5110
Model: qfx5110-48s-4c
Junos: 20.4R3-S9.3
                                       
{master:0}
root@QFX5110> show ptp lock-status detail
Lock Status:

Lock State    : 5 (PHASE ALIGNED)
Phase offset  : 0.000000004 sec
State since   : 2024-09-11 10:32:49 PDT (00:20:26 ago)

Selected Master Details:
Upstream Master address    : fec0:abcd:1000:b::2
Slave interface            : et-0/0/51.0
Parent Id                  : 04:69:8f:ff:fe:0f:70:98
GMC Id                     : 04:69:8f:ff:fe:0f:70:98

{master:0}
root@QFX5110> show interfaces terse lo0
Interface               Admin Link Proto    Local                 Remote
lo0                     up    up
lo0.0                   up    up   inet     96.109.90.152       --> 0/0
                                   iso      49.0023.9610.0099.0152
                                   inet6    2001:558:140:0:ffff:fffe:e000:32
                                            fe80::6af3:8e0f:fcb9:6f80
lo0.16385               up    up   inet   

{master:0}
root@QFX5110> show ptp statistics brief
Local Clock      Remote Clock       Role  Stream      Received  Transmitted
|
lo0.0            2001:558:1028:3b04::5 Master     13           0           0
|

{master:0}
root@QFX5110> show ptp statistics brief   
Local Clock      Remote Clock       Role  Stream      Received  Transmitted
|
lo0.0            2001:558:1028:3b04::5 Master     13           0           0
|

{master:0}
root@QFX5110> show ptp statistics detail  
Local Clock      Remote Clock       Role  Stream      Received  Transmitted
lo0.0            2001:558:1028:3b04::5 Master     13           0           0
         Signalling    Announce        Sync       Delay       Error
   Rx:            0           0           0           0           0
   Tx:            0           0           0           0           0

Filter details:

{master:0}
root@QFX5110> start shell
root@QFX5110:RE:0% cprod -A fpc0 -c "show filter hw dynamic"

List of dynamic filters:
========================
  0 dyn-vccpdf
  1 dyn-vc_ipc
  |
177 dyn-block_unused_reserved_mcast >>> this is the filter in question.
|
========================
root@QFX5110:RE:0% cprod -A fpc0 -c "show filter hw dynamic" | grep block_unused_reserved_mcast
177 dyn-block_unused_reserved_mcast >>>> index of the filter is seen here.
root@QFX5110:RE:0%
root@QFX5110:RE:0%
root@QFX5110:RE:0% cprod -A fpc0 -c "show filter hw dynamic 177"  >>>> has three different terms/ids as shown below

Filter name          : dyn-block_unused_reserved_mcast
Filter enum          : 177
Filter location      : IFP
List of tcam entries : [(total entries: 3) ]
              unit:   0 pipe:  0 entry:  175 H:0 A:SRV stat (id  175 val 0x0000000000000000)
              unit:   0 pipe:  0 entry:  176 H:0 A:SRV stat (id  176 val 0x0000000000000000)
              unit:   0 pipe:  0 entry:  177 H:0 A:SRV stat (id  177 val 0x0000000000000057)

root@QFX5110:RE:0%
root@QFX5110:RE:0%
root@QFX5110:RE:0% cprod -A fpc0 -c 'set dcbcm bcm "fp show entry 175"'


HW (unit 0)
EID 0x000000af: gid=0x11,
         slice=4, slice_idx=0x4f, part =0 prio=0x7ffffffb, flags=0x210602, Installed, Enabled >>> filter enabled by default.
              tcam: color_indep=1,
 |
root@QFX5110:RE:0% cprod -A fpc0 -c 'set dcbcm bcm "fp show entry 176"'


HW (unit 0)
EID 0x000000b0: gid=0x11,
         slice=4, slice_idx=0x50, part =0 prio=0x7ffffffb, flags=0x210602, Installed, Enabled >>> filter enabled by default.
              tcam: color_indep=1,
 |
root@QFX5110:RE:0% cprod -A fpc0 -c 'set dcbcm bcm "fp show entry 177"'


HW (unit 0)
EID 0x000000b1: gid=0x11,
         slice=4, slice_idx=0x51, part =0 prio=0x7ffffffb, flags=0x210602, Installed, Enabled >>> filter enabled by default.
 |
root@QFX5110:RE:0%


Disabling the filter

root@QFX5110:RE:0%
root@QFX5110:RE:0% cprod -A fpc0 -c 'show filter hw dynamic' | grep block_unused_reserved_mcast | awk '{print $1}'
177 >> index of the block_unused_reserved_mcast  dynamic filter
root@QFX5110:RE:0% cprod -A fpc0 -c 'show filter hw dynamic '"177"'' | grep -o 'entry:  [0-9]\+' | tr -d 'entry:  '
175 >> these give you the entries present under that filter.
176
177
root@QFX5110:RE:0%
root@QFX5110:RE:0% cprod -A fpc0 -c 'set dcbcm bcmshell "fp entry disable '"175"'"'


HW (unit 0)
root@QFX5110:RE:0% cprod -A fpc0 -c 'set dcbcm bcmshell "fp entry disable '"176"'"'


HW (unit 0)
root@QFX5110:RE:0% cprod -A fpc0 -c 'set dcbcm bcmshell "fp entry disable '"177"'"'


HW (unit 0)
root@QFX5110:RE:0%

After disabling the terms in the filter
After disabling the filter terms , we see PTP clients work with no issues seen.

root@QFX5110:RE:0%
root@QFX5110:RE:0% cprod -A fpc0 -c 'set dcbcm bcm "fp show entry 175"'



HW (unit 0)
EID 0x000000af: gid=0x11,
         slice=4, slice_idx=0x4f, part =0 prio=0x7ffffffb, flags=0x200602, Installed, Disabled >>> filter is disabled.
              tcam: color_indep=1,
 |
root@QFX5110:RE:0% cprod -A fpc0 -c 'set dcbcm bcm "fp show entry 176"'


HW (unit 0)
EID 0x000000b0: gid=0x11,
         slice=4, slice_idx=0x50, part =0 prio=0x7ffffffb, flags=0x200602, Installed, Disabled >>> filter is disabled.
              tcam: color_indep=1,
 |
root@QFX5110:RE:0% cprod -A fpc0 -c 'set dcbcm bcm "fp show entry 177"'


HW (unit 0)
EID 0x000000b1: gid=0x11,
         slice=4, slice_idx=0x51, part =0 prio=0x7ffffffb, flags=0x200602, Installed, Disabled >>> filter is disabled.
              tcam: color_indep=1,
 |
root@QFX5110:RE:0%

PTP statistics after filter disable;


{master:0}
root@QFX5110> show ptp statistics brief
|
lo0.0            2001:558:1028:3b04::5 Master     13       34138       69155


{master:0}
root@QFX5110> show ptp statistics brief   
Local Clock      Remote Clock       Role  Stream      Received  Transmitted
|
lo0.0            2001:558:1028:3b04::5 Master     13       34774       70441

{master:0}
root@QFX5110> show ptp statistics brief    
Local Clock      Remote Clock       Role  Stream      Received  Transmitted
et-0/0/51.0      fec0:abcd:1000:b::2  Slave      0      332182       164367
et-0/0/50.0      fec0:abcd:3000:a::2  Slave      1           0          442
|
lo0.0            2001:558:1028:3b04::5 Master     13       34774       70441


{master:0}

 

Modification History

2024-08-09 : Article Created