Description

Before Junos 16.1, precision timers is implemented as a separate pthread in RPD to handle only this functionality (precision timers). In Junos 16.1 and higher, the pthread is supplanted by the pthread 'BGP I/O'. This is done as part of RPD modularity. This pthread is enabled automatically in any logical-system that is active in the router.

Solution

Version 16.1 introduced 'BGP threaded I/O'.  This accounts for a significant change in the architecture on how we manage 'BGP I/O', including the keepalives previously managed by the precision timer feature.

Because of the change, the 'pthread' that was generated before when precision timers was active, is not longer displayed in the output even if precision-timer is explicitly configured. Instead, what you are going to see is the new 'BGP IO'.

Below is the current output with version 16.1 or later where we can see 'BGP IO':

labroot@Router# run show task | match bgp
40 BgpEgressPeeringTE                               <LowPrio>
40 BGP_RT_Background                                <LowPrio>
40 bgpio-0
40 bgp-thrio
40 BGP addpath task
40 BGP_Listen.::+179                         179 94 <Accept LowPrio WriteDisable>
40 BGP_Listen.0.0.0.0+179                    179 93 <Accept LowPrio WriteDisable>
50 BGP_60.2.2.2.2+60733                    60733 96 <LowPrio ReadDisable WriteDisable>
50 BGP_Group_main-logical                           <LowPrio>
50 BGP_10458_69.192.168.69.71+179            179 92 <LowPrio ReadDisable WriteDisable>
50 BGP_Group_external                               <LowPrio>
40 BGP_10458_69.192.168.69.71+179                92 <WriteDisable>                      {bgpio-0-th}
40 BGP_60.2.2.2.2+60733                          96 <WriteDisable>                      {bgpio-0-th}
40 bgpio-0-th                                                          {bgpio-0-th} <<< new pthread


Prior to 16.1, it is supposed to see PthreadTimer and <Pt> flags when configuring BGP precision-timer:

user@router> show task​
 
Pri Task Name                           Pro  Port So Flags​
40 BGP_Listen.::+179                         179 61 <Accept LowPrio>​
40 BGP_Listen.0.0.0.0+179                    179 60 <Accept LowPrio PthreadTimer>​
 
user@router> show task timers task-name BGP_Listen​
 
        Timer Name                          Expires  Jitter  Interval  Flags​
  BGP_Listen.0.0.0.0+179_Task parent​
  BGP_Listen.0.0.0.0+179_Keepalive           24.106                30  <Pt>​
  BGP_Listen.0.0.0.0+179_Keepalive           20.473                30  <Pt</pre>


This is not an error, rather a change in the architecture of RPD. Precision timers is no longer required, since this will be active by default.

Modification History

11/25/2024: Adding SRX platforms