In LLS-C1 configuration, the DU operates PTP in T-BC mode, sourcing the network time from a Precision Real-Time-Clock/Telecom Grandmaster (PRTC/T-GM) in Midhual. When PTP runs in T-BC mode, one port functions as a Client to a remote PRTC/T-GM and other ports function as Servers, providing time to downstream devices.

In the following example topology, PF0 on the DU receives time from the Cell Site Router (CSR) functioning as T-GM and distributes time to the RUs connected on PF1 and PF3.


LLS-C1 Configuration with T-BC Mode

Prerequisites

Procedure

  1. Navigate to Catalog > Network Function in the Telco Cloud Automation UI.
  2. Select the Network Function you want to set up in T-BC mode and click EDIT.

    Select and edit a network function
  3. Click the Infrastructure Requirements tab.

    Infrastructure Requirements tab
  4. Add PTP devices under PCI PASS THROUGH:

    PTP device details
    1. Click ADD and select PTP from the drop-down list.
    2. In the Add PTP pop-up window, select PTP as the Device Type.
    3. Enable or disable Shared Across NUMA as required.
    4. Enter the name of the PF Group, the PCI Group that you created in the Host Profile. Example: ptp-h0915
    5. Enter the Interface Name you want to create for this PTP Device on the worker node. Example: ptp-h0915
    6. Click ADD.
    7. Repeat steps a-f for each PTP device you want to add.

      Note: When you add one or more PTP Devices, an entry for 'linuxptp' gets created in the Custom Packages section. Modify the linuxptp version as required.


      Custom package entry for PTP devices
  5. Click the Resources tab.
  6. Expand the Artifacts > scripts directory.

    Note: If the scripts folder does not exist, create it and then proceed. For instructions to create the scripts folder, see Infrastructure Requirements Designer.

  7. Add the following configuration files by clicking the + symbol next to 'scripts':
    • phc2sys
      OPTIONS="-s ptp -c CLOCK_REALTIME -O -37 -m"

      phc2sys
    • ptp4l

      OPTIONS="-f /etc/ptp4l.conf"

      ptp4l
    • ptp4l.conf

      Note: This sample configuration file is valid for linuxptp version 4.0-2.ph3

      [global]
      #
      # Default Data Set
      #
      twoStepFlag     1
      clientOnly      0
      socket_priority     0
      priority1       128
      priority2       128
      domainNumber        24
      #utc_offset     37
      clockClass      248
      clockAccuracy       0x21
      offsetScaledLogVariance 0xFFFF
      free_running        0
      freq_est_interval   1
      dscp_event      0
      dscp_general        0
      dataset_comparison  G.8275.x
      G.8275.defaultDS.localPriority  128
      maxStepsRemoved     255
      #
      # Port Data Set
      #
      logAnnounceInterval -3
      logSyncInterval     -4
      operLogSyncInterval 0
      logMinDelayReqInterval  -4
      logMinPdelayReqInterval 0
      operLogPdelayReqInterval 0
      announceReceiptTimeout  3
      syncReceiptTimeout  0
      delayAsymmetry      0
      fault_reset_interval    4
      neighborPropDelayThresh 20000000
      serverOnly      0
      G.8275.portDS.localPriority 128
      asCapable               auto
      BMCA                    ptp
      inhibit_announce        0
      inhibit_delay_req       0
      ignore_source_id        0
      #
      # Run time options
      #
      assume_two_step     0
      logging_level       6
      path_trace_enabled  0
      follow_up_info      0
      hybrid_e2e      0
      inhibit_multicast_service   0
      net_sync_monitor    0
      tc_spanning_tree    0
      tx_timestamp_timeout    300
      unicast_listen      0
      unicast_master_table    0
      unicast_req_duration    3600
      use_syslog      1
      verbose         0
      summary_interval    0
      kernel_leap     1
      check_fup_sync      0
      #
      # Servo Options
      #
      pi_proportional_const   0.0
      pi_integral_const   0.0
      pi_proportional_scale   0.0
      pi_proportional_exponent    -0.3
      pi_proportional_norm_max    0.7
      pi_integral_scale   0.0
      pi_integral_exponent    0.4
      pi_integral_norm_max    0.3
      step_threshold      0.0
      first_step_threshold    0.00002
      max_frequency       900000000
      clock_servo     pi
      sanity_freq_limit   200000000
      ntpshm_segment      0
      msg_interval_request    0
      servo_num_offset_values 10
      servo_offset_threshold  0
      write_phase_mode    0
      #
      # Transport options
      #
      transportSpecific   0x0
      ptp_dst_mac     01:1B:19:00:00:00
      p2p_dst_mac     01:80:C2:00:00:0E
      udp_ttl         1
      udp6_scope      0x0E
      uds_address     /var/run/ptp4l
      uds_ro_address  /var/run/ptp4lro
      #
      # Default interface options
      #
      clock_type      BC
      network_transport   L2
      delay_mechanism     E2E
      time_stamping       hardware
      tsproc_mode     filter
      delay_filter        moving_median
      delay_filter_length 10
      egressLatency       0
      ingressLatency      0
      boundary_clock_jbod 1
      #
      # Clock description
      #
      productDescription  ;;
      revisionData        ;;
      manufacturerIdentity    00:00:00
      userDescription     ;
      timeSource      0x20
       
      # Name of the interface which is getting
      # PTP packets from the network.
      [ptp]
      serverOnly 0
      # interface's connected to RUs
      [ptp-h0915]
      serverOnly 1

      Note: In the following ptp4l.conf file content, you can notice the interface name that you added in Step #4. In this example, only one RU is connected, so there is only one entry 'ptp-h0915'. If multiple RUs are connected, you need an entry for each RU (similar to ptp-h0915).


      ptp4l.conf
  8. Save the CSAR by clicking SAVE.
  9. Click UPDATE PACKAGE or SAVE AS NEW as appropriate.
  10. Click CLOSE.
  11. Instantiate the network function.