{"componentChunkName":"component---src-templates-blog-post-js","path":"/blog/starlingx-ptp-partial-timing-support/","result":{"data":{"markdownRemark":{"id":"22d0254d-3bf6-50e2-8dc1-88bed4032a9b","html":"<p>Learn about the new Partial Timing Support (PTS) feature in StarlingX, enabling unicast PTP\nsynchronization over Layer 3 networks.<!-- more --></p>\n<p>The StarlingX community continues to expand the platform's precision timing capabilities. Following\nthe introduction of <a class=\"siteLink\" href=\"https://www.starlingx.io/blog/starlingx-ptp-multi-instance-features/\" title=\"multi-instance PTP configurations\" target=\"_blank\" rel=\"noopener noreferrer\">multi-instance PTP configurations</a>,\n<a class=\"siteLink\" href=\"https://www.starlingx.io/blog/starlingx-ptp-redundant-ptp-timing-clock-sources/\" title=\"redundant timing sources\" target=\"_blank\" rel=\"noopener noreferrer\">redundant timing sources</a>,\nand <a class=\"siteLink\" href=\"https://www.starlingx.io/blog/starlingx-oran-notification-for-ptp/\" title=\"O-RAN PTP notifications\" target=\"_blank\" rel=\"noopener noreferrer\">O-RAN PTP notifications</a>,\nthe StarlingX 12.0 release introduces Partial Timing Support (PTS) to enable unicast\nPTP time distribution over Layer 3 IP networks.</p>\n<h1>What is Partial Timing Support?</h1>\n<p>In the earlier StarlingX PTP blog posts, we explored configurations based on the ITU-T G.8275.1\ntelecom profile. G.8275.1 uses Layer 2 multicast PTP, meaning that every node in the timing path\nmust directly participate in PTP and be connected at the Ethernet layer. This is referred to as\nFull Timing Support (FTS) because the entire network is timing-aware.</p>\n<p>However, not all network deployments have this luxury. In many real-world scenarios, PTP nodes need\nto synchronize across Layer 3 boundaries via routers, across VLANs, or over wide area\nnetworks where intermediate nodes do not participate in timing. This is where Partial Timing Support\ncomes in.</p>\n<p>PTS corresponds to the ITU-T G.8275.2 telecom profile. Instead of relying on L2 multicast,\nG.8275.2 uses unicast PTP messages transported over IPv4 or IPv6. A PTP node configured for PTS\nestablishes direct unicast sessions with specific grandmaster clocks, requesting timing information\nthrough unicast negotiation. This allows timing distribution across networks where not all\nintermediate nodes are PTP-aware.</p>\n<h1>Why Does PTS Matter?</h1>\n<p>PTS addresses several important deployment scenarios:</p>\n<ul>\n<li><strong>Geographically distributed sites</strong>: Edge nodes at remote locations can synchronize with a\ncentralized grandmaster over an IP network without requiring PTP-aware switches along the path</li>\n<li><strong>Mixed network environments</strong>: In networks where only certain segments support PTP, PTS allows\ntiming to traverse non-PTP segments via standard IP routing</li>\n<li><strong>Flexible transport options</strong>: PTS supports both IPv4 and IPv6, making it adaptable to a wide\nrange of network architectures</li>\n<li><strong>Hybrid topologies</strong>: A single StarlingX node can receive time via unicast PTS on one interface\nwhile distributing time via L2 multicast (G.8275.1) on another, bridging the two timing domains</li>\n</ul>\n<h1>PTS Deployments in StarlingX</h1>\n<p>StarlingX supports two primary PTS deployment models: Telecom Boundary Clock (T-BC) and Telecom\nGrandmaster (T-GM).</p>\n<h2>T-BC PTS Deployment</h2>\n<p>In this configuration, a StarlingX node acts as a boundary clock that receives time from a remote\ngrandmaster over unicast IPv6 (G.8275.2) and distributes it to local downstream nodes over L2\n(G.8275.1).</p>\n<p><img src=\"/static/acca3378002c5cfdf373c54934d6216b/ptp-pts-t-bc.svg\" alt=\"T-BC Partial Timing Support Deployment\"></p>\n<p>The upstream NIC receives timing from the remote grandmaster via unicast and passes a 1PPS signal\nto the downstream NIC, which then distributes time to local nodes using the traditional L2\nmulticast profile. This hybrid approach is particularly useful for edge sites that need to\nsynchronize with a central timing source but distribute time locally using G.8275.1.</p>\n<h2>T-GM PTS Deployment</h2>\n<p>In this configuration, a StarlingX node with a local GNSS receiver acts as a grandmaster, serving\ntime to remote clients over unicast IPv6.</p>\n<p><img src=\"/static/41915243a60b2f32a31a0fc62fbd2556/ptp-pts-t-gm.svg\" alt=\"T-GM Partial Timing Support Deployment\"></p>\n<p>In this topology, the node derives its timing from a connected GNSS antenna and advertises time\nover unicast to remote clients. The remote clients configure their own unicast master tables\npointing to this node's address. This enables a centralized grandmaster to serve accurate time to\ngeographically distributed nodes without requiring PTP support on the intermediate network\ninfrastructure.</p>\n<h1>Key Configuration Concepts</h1>\n<h2>Unicast Master Tables</h2>\n<p>The central concept in PTS configuration is the unicast master table. A unicast master table\ndefines the set of upstream grandmaster addresses that a PTP client node will contact to request\ntime. Each table specifies:</p>\n<ul>\n<li>A unique table ID</li>\n<li>The query interval for unicast grant requests</li>\n<li>One or more grandmaster addresses (IPv4 or IPv6)</li>\n</ul>\n<p>Multiple grandmaster entries within a single table provide redundancy — if one grandmaster becomes\nunreachable, the node can acquire time from another.</p>\n<h2>G.8275.2 Profile Parameters</h2>\n<p>PTS deployments use a distinct set of PTP profile parameters compared to G.8275.1. The most\nnotable differences include:</p>\n<ul>\n<li><strong>Domain 44</strong>: The G.8275.2 profile typically uses PTP domain 44, compared to domain 24 used by\nG.8275.1</li>\n<li><strong>UDP transport</strong>: The network transport is set to UDPv4 or UDPv6 instead of L2</li>\n<li><strong>Dataset comparison</strong>: Uses G.8275.x dataset comparison for clock selection</li>\n<li><strong>Unicast negotiation</strong>: Client ports use <code>inhibit_announce</code> to suppress multicast announce\nmessages, and master ports use <code>unicast_listen</code> to accept incoming unicast requests</li>\n</ul>\n<h2>Mixed-Transport Interfaces</h2>\n<p>One of the strengths of StarlingX's PTS implementation is the ability to configure mixed transport\nmodes within a single ptp4l instance. An upstream interface can operate over unicast IPv6 while a\ndownstream interface operates over L2 within the same instance. This simplifies the\ndeployment of boundary clocks that bridge PTS and FTS network segments.</p>\n<h1>Integration with Existing PTP Features</h1>\n<p>PTS builds on the multi-instance PTP framework that has been available since StarlingX 7.0.\nIt integrates with:</p>\n<ul>\n<li><strong>phc2sys</strong>: System clock synchronization works the same way, reading from the ptp4l-disciplined\nPHC</li>\n<li><strong>ts2phc</strong>: For T-GM deployments, ts2phc provides the GNSS-to-PHC synchronization that feeds the\nunicast grandmaster</li>\n<li><strong>Clock instances</strong>: NIC-level pin configuration (SDP pins, 1PPS routing) is used to relay timing\nbetween NICs in multi-NIC topologies</li>\n<li><strong>PTP monitoring</strong>: The existing collectd-based monitoring and O-RAN notification framework\ncontinues to report timing state for PTS instances</li>\n</ul>\n<h1>Getting Started</h1>\n<p>If you're interested in deploying PTS in your StarlingX environment, the\n<a class=\"siteLink\" href=\"https://docs.starlingx.io/system_configuration/kubernetes/ptp-partial-timing-support-4159a540.html\" title=\"official documentation\" target=\"_blank\" rel=\"noopener noreferrer\">official documentation</a>\nprovides step-by-step configuration procedures for both T-BC and T-GM deployments, including\ncomplete CLI examples and generated configuration file references.</p>\n<p><strong>Prerequisites</strong> for a PTS deployment include:</p>\n<ul>\n<li>Layer 3 IP connectivity between your node and the remote grandmaster</li>\n<li>UDP ports 319 and 320 open for PTP event and general messages</li>\n<li>A NIC that supports hardware timestamping</li>\n<li>At least one configured ptp4l instance using UDP transport</li>\n</ul>\n<h1>Looking Ahead</h1>\n<p>Partial Timing Support is a significant addition to StarlingX's timing portfolio. By enabling\nunicast PTP over IP networks, it opens up deployment scenarios that were previously only achievable\nwith dedicated timing appliances or fully PTP-aware network infrastructure. Whether you're\nconnecting remote edge sites to a central timing source or distributing time across a routed\nnetwork, PTS provides the flexibility to deploy precise timing where it's needed.</p>\n<p>The StarlingX community continues to advance the platform's timing capabilities. Stay tuned for\nfuture enhancements to PTP support, including improvements to servo tuning for PTS networks and\nexpanded monitoring capabilities.</p>\n<p>If you would like to learn more about the project and get involved check the\n<a class=\"siteLink\" href=\"https://www.starlingx.io\" title=\"website\" target=\"_blank\" rel=\"noopener noreferrer\">website</a> for more information or\n<a class=\"siteLink\" href=\"https://opendev.org/starlingx\" title=\"download the code\" target=\"_blank\" rel=\"noopener noreferrer\">download the code</a> and start to experiment with the platform.</p>","frontmatter":{"date":"2026/09/29","title":"Partial Timing Support - Unicast PTP in StarlingX","author":"Cole Walker"}}},"pageContext":{"id":"22d0254d-3bf6-50e2-8dc1-88bed4032a9b"}},"staticQueryHashes":[]}