This section describes how to configure a network function in LLS-C3 mode using the PTP timing pod.

VMware PTP Timing Pod is published in the form of Helm Charts. You need to modify network function CSAR and add the Timing Pod Helm as a prerequisite to the DU/application Helm Chart.

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 the LLS-C3 mode and click EDIT.
  3. Click the Topology tab.
  4. Select and drag 'Helm' from Components to the workspace.
  5. In the Configure Help timing-pod dialog, enter all the required details about the PTP Timing Pod:
    1. Properties:

      Add the details for PTP timing pod
      • Name: Name of the helm chart

      • Description: Description of the helm chart

      • Chart Name: Chart name of the VMware PTP Timing Pod

      • Chart Version: Chart version of the VMware PTP Timing Pod.

      • Helm Version: Helm version.

    2. Helm Property Overrides (Optional): Add an entry for the values.yaml file.
      • Property: values.yaml

      • Type: File

    3. Depends On (Optional): Select the timing pod helm chart and add it as a dependency to your DU Helm chart.

      Add the dependency to the DU Helm chart
  6. Click the Infrastructure Requirements tab and add the PTP devices.

    Add a PTP device
    1. Add a PTP device for the port that is connected to the PTP Grandmaster.
    2. Save the network function.
  7. Instantiate Network function CSAR.

    Add helm details

    Namespace for tca-timing-pod helm: For tca-timing-pod helm charts, do not use 'tca-system' namespace. Use the same namespace where the DU application is installed.

    In the above screenshot, 'testnf' namespace is used for both the DU application and tca-timing-pod.

    values.yaml for tca-timing-pod:

    • Use 'tca-system' as namespace in the tca-timing-pod values.yaml

    • Use '1' as the ProfileId for LLS-C3 (Telco Slave Clock Mode)

    Example: values.yaml for tca-timing-pod for LLS-C3 (T-TSC) Mode.

    ProfileId: "1" # 1: T-TSC, 2: T-BC, 3: T-GM, 4: Dual WPC
     
    namespace: tca-system
     
    nodeSelector: {
          key: value
    }
     
    Containers:
      TimingController:
        name: timing-controller
        image: sebu-tcp-ran-docker-local.artifactory.eng.vmware.com/tca-timing-controller:3.0.7
        resources:
          requests:
            memory: "256Mi"
            cpu: "1"
          limits:
            memory: "256Mi"
            cpu: "1"
      MessageQueue:
        name: rabbitmq
        image: vmwaresaas.jfrog.io/registry/rabbitmq:3.12-management
        resources:
          requests:
            memory: "512Mi"
            cpu: "500m"
          limits:
            memory: "512Mi"
            cpu: "500m"
      Monitor:
        name: monitor
        image: sebu-tcp-ran-docker-local.artifactory.eng.vmware.com/ptp-ocloud-notifications-monitor:3.0.7
        resources:
          requests:
            memory: "256Mi"
            cpu: "500m"
          limits:
            memory: "256Mi"
            cpu: "500m"
        holdoverPeriod: 120
        pollFrequency: 1
        ptpSimulated: False
     
    # ptp4l config for NIC running in T-TSC mode
    Ptp4lNic1GmConf: |
      [global]
      #
      # Default Data Set
      #
      twoStepFlag 1
      slaveOnly 1
      priority1 128
      priority2 128
      clockClass 248
      clockAccuracy 0xFE
      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
      #G.8275.portDS.localPriority 128
      #
      # Port Data Set
      #
      logAnnounceInterval -3
      logSyncInterval -4
      logMinDelayReqInterval -4
      logMinPdelayReqInterval 0
      announceReceiptTimeout 3
      syncReceiptTimeout 100
      delayAsymmetry 0
      fault_reset_interval ASAP
      #fault_reset_interval 4
      neighborPropDelayThresh 20000000
      #
      # Run time options
      #
      assume_two_step 0
      logging_level 6
      path_trace_enabled 0
      follow_up_info 0
      hybrid_e2e 0
      tx_timestamp_timeout 300
      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 1
      pi_integral_scale 0.5
      pi_integral_exponent 1
      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
      #
      # 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_address /var/run/ptp4l
      #
      # Default Interface Options
      #
      # clock_type OC
      network_transport L2
      delay_mechanism E2E
      time_stamping hardware
      tsproc_mode filter
      delay_filter moving_median
      delay_filter_length 50
      egressLatency 0
      ingressLatency 0
      boundary_clock_jbod 0
      #
      # Clock Description
         
      #productDescription ;;
      revisionData ;;
      manufacturerIdentity 00:00:00
      userDescription ;
      timeSource 0xA0
      domainNumber 24
         
      [ptp]
     
    Phc2sysOpts: |
      -a -r -m -R 16 -n 24 -z /var/run/ptp4l