Files
test/unit_tests/parser/ptp/cat_ptp_config_test.py
jpike 468d85bfa5 Adding ptp keywords for pmc command
Adding keywords and objects for both pmc
get_default_data_set and get_parent_data_set

Change-Id: Ie266390ee797d1c9886cbeb319694628165ec99a
2025-02-11 09:50:32 -05:00

240 lines
11 KiB
Python

from keywords.ptp.cat.objects.cat_ptp_config_output import CATPtpConfigOutput
cat_ptp_config = [
'[global] \n',
'#\n',
'# Default Data Set\n',
'#\n',
'twoStepFlag 1\n',
'slaveOnly 0\n',
'socket_priority 0\n',
'priority1 128\n',
'priority2 128\n',
'domainNumber 0\n',
'#utc_offset 37\n',
'clockClass 248\n',
'clockAccuracy 0xFE\n',
'offsetScaledLogVariance 0xFFFF\n',
'free_running 0\n',
'freq_est_interval 1\n',
'dscp_event 0\n',
'dscp_general 0\n',
'dataset_comparison ieee1588\n',
'G.8275.defaultDS.localPriority 128\n',
'maxStepsRemoved 255\n',
'#\n',
'# Port Data Set\n',
'#\n',
'logAnnounceInterval 1\n',
'logSyncInterval 0\n',
'operLogSyncInterval 0\n',
'logMinDelayReqInterval 0\n',
'logMinPdelayReqInterval 0\n',
'operLogPdelayReqInterval 0\n',
'announceReceiptTimeout 3\n',
'syncReceiptTimeout 0\n',
'delayAsymmetry 0\n',
'fault_reset_interval 4\n',
'neighborPropDelayThresh 20000000\n',
'masterOnly 0\n',
'G.8275.portDS.localPriority 128\n',
'asCapable auto\n',
'BMCA ptp\n',
'inhibit_announce 0\n',
'inhibit_delay_req 0\n',
'ignore_source_id 0\n',
'#\n',
'# Run time options\n',
'#\n',
'assume_two_step 0\n',
'logging_level 6\n',
'path_trace_enabled 0\n',
'follow_up_info 0\n',
'hybrid_e2e 0\n',
'inhibit_multicast_service 0\n',
'net_sync_monitor 0\n',
'tc_spanning_tree 0\n',
'tx_timestamp_timeout 1\n',
'unicast_listen 0\n',
'unicast_master_table 0\n',
'unicast_req_duration 3600\n',
'use_syslog 1\n',
'verbose 0\n',
'summary_interval 0\n',
'kernel_leap 1\n',
'check_fup_sync 0\n',
'#\n',
'# Servo Options\n',
'#\n',
'pi_proportional_const 0.0\n',
'pi_integral_const 0.0\n',
'pi_proportional_scale 0.0\n',
'pi_proportional_exponent -0.3\n',
'pi_proportional_norm_max 0.7\n',
'pi_integral_scale 0.0\n',
'pi_integral_exponent 0.4\n',
'pi_integral_norm_max 0.3\n',
'step_threshold 0.0\n',
'first_step_threshold 0.00002\n',
'max_frequency 900000000\n',
'clock_servo pi\n',
'sanity_freq_limit 200000000\n',
'ntpshm_segment 0\n',
'msg_interval_request 0\n',
'servo_num_offset_values 10\n',
'servo_offset_threshold 0\n',
'write_phase_mode 0\n',
'#\n',
'# Transport options\n',
'#\n',
'transportSpecific 0x0\n',
'ptp_dst_mac 01:1B:19:00:00:00\n',
'p2p_dst_mac 01:80:C2:00:00:0E\n',
'udp_ttl 1\n',
'udp6_scope 0x0E\n',
'uds_address /var/run/ptp4l\n',
'uds_ro_address /var/run/ptp4lro\n',
'#\n',
'# Default interface options\n',
'#\n',
'clock_type OC\n',
'network_transport UDPv4\n',
'delay_mechanism E2E\n',
'time_stamping hardware\n',
'tsproc_mode filter\n',
'delay_filter moving_median\n',
'delay_filter_length 10\n',
'egressLatency 0\n',
'ingressLatency 0\n',
'boundary_clock_jbod 0\n',
'#\n',
'# Clock description\n',
'#\n',
'productDescription ;;\n',
'revisionData ;;\n',
'manufacturerIdentity 00:00:00\n',
'userDescription ;\n',
'timeSource 0xA0\n',
]
def test_cat_ptp_config_output():
"""
Tests cat_ptp_config_output
Returns:
"""
cat_ptp_config_output = CATPtpConfigOutput(cat_ptp_config)
# validate default data set
default_data_set_object = cat_ptp_config_output.get_data_set_output().get_pmc_get_default_data_set_object()
assert default_data_set_object.get_two_step_flag() == 1
assert default_data_set_object.get_slave_only() == 0
assert default_data_set_object.get_socket_priority() == 0
assert default_data_set_object.get_priority1() == 128
assert default_data_set_object.get_priority2() == 128
assert default_data_set_object.get_domain_number() == '0'
assert default_data_set_object.get_utc_offset() == 37
assert default_data_set_object.get_clock_class() == 248
assert default_data_set_object.get_clock_accuracy() == '0xFE'
assert default_data_set_object.get_offset_scaled_log_variance() == '0xFFFF'
assert default_data_set_object.get_free_running() == 0
assert default_data_set_object.get_freq_est_interval() == 1
assert default_data_set_object.get_dscp_event() == 0
assert default_data_set_object.get_dscp_general() == 0
assert default_data_set_object.get_dataset_comparison() == 'ieee1588'
assert default_data_set_object.get_max_steps_removed() == 255
# validate the port data object
port_data_object = cat_ptp_config_output.get_port_data_set_output().get_port_data_set_object()
assert port_data_object.get_log_announce_interval() == 1
assert port_data_object.get_log_sync_interval() == 0
assert port_data_object.get_oper_log_sync_interval() == 0
assert port_data_object.get_log_min_delay_req_interval() == 0
assert port_data_object.get_log_min_p_delay_req_interval() == 0
assert port_data_object.get_oper_log_p_delay_req_interval() == 0
assert port_data_object.get_announce_receipt_timeout() == 3
assert port_data_object.get_sync_receipt_timeout() == 0
assert port_data_object.get_delay_asymmetry() == 0
assert port_data_object.get_fault_reset_interval() == 4
assert port_data_object.get_neighbor_prop_delay_thresh() == 20000000
assert port_data_object.get_master_only() == 0
assert port_data_object.get_as_capable() == 'auto'
assert port_data_object.get_bmca() == 'ptp'
assert port_data_object.get_inhibit_announce() == 0
assert port_data_object.get_inhibit_delay_req() == 0
assert port_data_object.get_ignore_source_id() == 0
# validate run time options
run_time_options_object = cat_ptp_config_output.get_run_time_options_output().get_run_time_options_object()
assert run_time_options_object.get_assume_two_step() == 0
assert run_time_options_object.get_logging_level() == 6
assert run_time_options_object.get_path_trace_enabled() == 0
assert run_time_options_object.get_follow_up_info() == 0
assert run_time_options_object.get_hybrid_e2e() == 0
assert run_time_options_object.get_inhibit_multicast_service() == 0
assert run_time_options_object.get_net_sync_monitor() == 0
assert run_time_options_object.get_tc_spanning_tree() == 0
assert run_time_options_object.get_tx_timestamp_timeout() == 1
assert run_time_options_object.get_unicast_listen() == 0
assert run_time_options_object.get_unicast_master_table() == 0
assert run_time_options_object.get_unicast_req_duration() == 3600
assert run_time_options_object.get_use_syslog() == 1
assert run_time_options_object.get_verbose() == 0
assert run_time_options_object.get_summary_interval() == 0
assert run_time_options_object.get_kernel_leap() == 1
assert run_time_options_object.get_check_fup_sync() == 0
# validate Servo Options
servo_options_object = cat_ptp_config_output.get_servo_options_output().get_servo_options_object()
assert servo_options_object.get_pi_proportional_const() == 0.0
assert servo_options_object.get_pi_integral_const() == 0.0
assert servo_options_object.get_pi_proportional_scale() == 0.0
assert servo_options_object.get_pi_proportional_exponent() == -0.3
assert servo_options_object.get_pi_proportional_norm_max() == 0.7
assert servo_options_object.get_pi_integral_scale() == 0.0
assert servo_options_object.get_pi_integral_exponent() == 0.4
assert servo_options_object.get_pi_integral_norm_max() == 0.3
assert servo_options_object.get_step_threshold() == 0.0
assert servo_options_object.get_first_step_threshold() == 0.00002
assert servo_options_object.get_max_frequency() == 900000000
assert servo_options_object.get_clock_servo() == 'pi'
assert servo_options_object.get_sanity_freq_limit() == 200000000
assert servo_options_object.get_ntpshm_segment() == 0
assert servo_options_object.get_msg_interval_request() == 0
assert servo_options_object.get_servo_num_offset_values() == 10
assert servo_options_object.get_servo_offset_threshold() == 0
assert servo_options_object.get_write_phase_mode() == 0
# validate transport options
transport_options_object = cat_ptp_config_output.get_transport_options_output().get_transport_options_object()
assert transport_options_object.get_transport_specific() == '0x0'
assert transport_options_object.get_ptp_dst_mac() == '01:1B:19:00:00:00'
assert transport_options_object.get_p2p_dst_mac() == '01:80:C2:00:00:0E'
assert transport_options_object.get_udp_ttl() == 1
assert transport_options_object.get_udp6_scope() == '0x0E'
assert transport_options_object.get_uds_address() == '/var/run/ptp4l'
assert transport_options_object.get_uds_ro_address() == '/var/run/ptp4lro'
# validate default interface options
default_interface_object = cat_ptp_config_output.get_default_interface_options_output().get_default_interface_options_object()
assert default_interface_object.get_clock_type() == 'OC'
assert default_interface_object.get_network_transport() == 'UDPv4'
assert default_interface_object.get_delay_mechanism() == 'E2E'
assert default_interface_object.get_time_stamping() == 'hardware'
assert default_interface_object.get_tsproc_mode() == 'filter'
assert default_interface_object.get_delay_filter() == 'moving_median'
assert default_interface_object.get_delay_filter_length() == 10
assert default_interface_object.get_egress_latency() == 0
assert default_interface_object.get_ingress_latency() == 0
assert default_interface_object.get_boundary_clock_jbod() == 0
# validate clock description
clock_description_object = cat_ptp_config_output.get_clock_description_output().get_clock_description_object()
assert clock_description_object.get_product_description() == ';;'
assert clock_description_object.get_revision_data() == ';;'
assert clock_description_object.get_manufacturer_identity() == '00:00:00'
assert clock_description_object.get_user_description() == ';'
assert clock_description_object.get_time_source() == '0xA0'