Support Support Downloads Knowledge Base Case Manager My Juniper Community

Knowledge Base

Search our Knowledge Base sites to find answers to your questions.

Ask All Knowledge Base Sites All Knowledge Base Sites JunosE Defect (KA)Knowledge BaseSecurity AdvisoriesTechnical BulletinsTechnotes Sign in to display secure content and recently viewed articles

[MX] Understanding precision timers before and after Junos 16.1



Article ID: KB34153 KB Last Updated: 29 Apr 2019Version: 1.0

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.


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.                    179 93 <Accept LowPrio WriteDisable>
50 BGP_60.                    60733 96 <LowPrio ReadDisable WriteDisable>
50 BGP_Group_main-logical                           <LowPrio>
50 BGP_10458_69.            179 92 <LowPrio ReadDisable WriteDisable>
50 BGP_Group_external                               <LowPrio>
40 BGP_10458_69.                92 <WriteDisable>                     {bgpio-0-th}
40 BGP_60.                          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.                    179 60 <Accept LowPrio PthreadTimer>​
user@router> show task timers task-name BGP_Listen​
        Timer Name                          Expires  Jitter  Interval  Flags​
  BGP_Listen. parent​
  BGP_Listen.           24.106                30  <Pt>​
  BGP_Listen.           20.473                30  <Pt

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.

Comment on this article > Affected Products Browse the Knowledge Base for more articles related to these product categories. Select a category to begin.

Getting Up and Running with Junos

Getting Up and Running with Junos Security Alerts and Vulnerabilities Product Alerts and Software Release Notices Problem Report (PR) Search Tool EOL Notices and Bulletins JTAC User Guide Customer Care User Guide Pathfinder SRX High Availability Configurator SRX VPN Configurator Training Courses and Videos End User Licence Agreement Global Search