
A new time traceable flag was added to pmc agent to store the current time traceable status. This flag replaces the utc_offset_traceable flag in the HA clock selection algorithm and status command. Test plan: HA clock selection algorithm PASS: Verify the clock source which time isn't traceable is discarded by the algorithm if ha_gm_timeTraceable is enabled. PASS: Verify the clock source which time is traceable isn't discarded by the algorithm if ha_gm_timeTraceable is enabled. Regression: status command PASS: Verify the response of status command shows the correct GM time traceable. The 'valid sources' command is used to get a list of interfaces which the clock is matching the requirements. The response contains a space separated list of interfaces, or "None" when not a single clock is matching all the requirements. Test plan: valid sources command PASS: Verify that a space separated list of interface is returned when one or more clocks match the requirements. PASS: Verify that the string "None" is returned when not a single clock match the requirements. Now the GM time traceable check is enabled by default as it is an important check for both T-GM and T-BC scenarios. The GM time traceable check is controlled in configuration by using the ha_gm_timeTraceable setting, and it can be disabled using the value 0 (ha_gm_timeTraceable 0). Test plan: default value PASS Verify the check is performed by default. PASS Verify the user can disable the check by configuration. Bonus: Fixed the behavior when none clock is matching the requirements and the active clock source is disabled using the 'disable source <interface>' command. The interface is must be disabled and a new clock source is selected. Test plan: none clock is matching the requirements PASS: Verify that the active source can be disabled and a new one is selected. PASS: Verify that an attempt to disable the last active interface fails and an appopriated message is given as response. PASS: Verify that the interface with higher priority is selected after re-enabling it. PASS: Verify the active clock source doesn't change if another interface is disabled. PASS: Verify the active clock source doesn't change if another interface is re-enabled. Story: 2010723 Task: 48702 Change-Id: I64193575a995e520d36460c0ebb8dd452fa8c2b8 Signed-off-by: Andre Mauricio Zelak <andre.zelak@windriver.com>
144 lines
4.7 KiB
Diff
144 lines
4.7 KiB
Diff
From 87d8e7281e3e66813d0c669bea0b5335a8cbb6b6 Mon Sep 17 00:00:00 2001
|
|
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
|
|
Date: Mon, 12 Jun 2023 13:59:48 -0300
|
|
Subject: [PATCH 12/54] phc2sys: make PMC functions non-static
|
|
|
|
In preparation of a trivial movement of code to pmc_common.c, remove the
|
|
"static" keyword from the functions that will end up there, since they
|
|
will be still called from phc2sys.c for now.
|
|
|
|
Signed-off-by: Vladimir Oltean <olteanv@gmail.com>
|
|
|
|
[commit 2ccbb14450e1e96168a2604c0e8c96ae5a6a5bf0 upstream]
|
|
Signed-off-by: Andre Mauricio Zelak <andre.zelak@windriver.com>
|
|
---
|
|
phc2sys.c | 40 +++++++++++++++++++---------------------
|
|
1 file changed, 19 insertions(+), 21 deletions(-)
|
|
|
|
diff --git a/phc2sys.c b/phc2sys.c
|
|
index 86b9822..d5b8e71 100644
|
|
--- a/phc2sys.c
|
|
+++ b/phc2sys.c
|
|
@@ -137,18 +137,17 @@ struct phc2sys_private {
|
|
|
|
static struct config *phc2sys_config;
|
|
|
|
-static int update_pmc_node(struct pmc_node *node, int subscribe);
|
|
+int update_pmc_node(struct pmc_node *node, int subscribe);
|
|
static int clock_handle_leap(struct phc2sys_private *priv,
|
|
struct clock *clock,
|
|
int64_t offset, uint64_t ts);
|
|
-static int run_pmc_get_utc_offset(struct pmc_node *node,
|
|
- int timeout);
|
|
-static void run_pmc_events(struct pmc_node *node);
|
|
+int run_pmc_get_utc_offset(struct pmc_node *node, int timeout);
|
|
+void run_pmc_events(struct pmc_node *node);
|
|
|
|
static int normalize_state(int state);
|
|
-static int run_pmc_port_properties(struct pmc_node *node,
|
|
- int timeout, unsigned int port,
|
|
- int *state, int *tstamping, char *iface);
|
|
+int run_pmc_port_properties(struct pmc_node *node, int timeout,
|
|
+ unsigned int port, int *state,
|
|
+ int *tstamping, char *iface);
|
|
|
|
static struct servo *servo_add(struct phc2sys_private *priv,
|
|
struct clock *clock)
|
|
@@ -838,13 +837,13 @@ static int is_msg_mgt(struct ptp_message *msg)
|
|
return 0;
|
|
}
|
|
|
|
-static int get_mgt_id(struct ptp_message *msg)
|
|
+int get_mgt_id(struct ptp_message *msg)
|
|
{
|
|
struct management_tlv *mgt = (struct management_tlv *) msg->management.suffix;
|
|
return mgt->id;
|
|
}
|
|
|
|
-static void *get_mgt_data(struct ptp_message *msg)
|
|
+void *get_mgt_data(struct ptp_message *msg)
|
|
{
|
|
struct management_tlv *mgt = (struct management_tlv *) msg->management.suffix;
|
|
return mgt->data;
|
|
@@ -938,9 +937,8 @@ static void send_subscription(struct pmc_node *node)
|
|
pmc_send_set_action(node->pmc, TLV_SUBSCRIBE_EVENTS_NP, &sen, sizeof(sen));
|
|
}
|
|
|
|
-static int init_pmc_node(struct config *cfg, struct pmc_node *node,
|
|
- const char *uds,
|
|
- pmc_node_recv_subscribed_t *recv_subscribed)
|
|
+int init_pmc_node(struct config *cfg, struct pmc_node *node, const char *uds,
|
|
+ pmc_node_recv_subscribed_t *recv_subscribed)
|
|
{
|
|
node->pmc = pmc_create(cfg, TRANS_UDS, uds, 0,
|
|
config_get_int(cfg, NULL, "domainNumber"),
|
|
@@ -1054,7 +1052,7 @@ static int run_pmc_wait_sync(struct pmc_node *node, int timeout)
|
|
}
|
|
}
|
|
|
|
-static int run_pmc_get_utc_offset(struct pmc_node *node, int timeout)
|
|
+int run_pmc_get_utc_offset(struct pmc_node *node, int timeout)
|
|
{
|
|
struct ptp_message *msg;
|
|
int res;
|
|
@@ -1084,7 +1082,7 @@ static int run_pmc_get_utc_offset(struct pmc_node *node, int timeout)
|
|
return 1;
|
|
}
|
|
|
|
-static int run_pmc_get_number_ports(struct pmc_node *node, int timeout)
|
|
+int run_pmc_get_number_ports(struct pmc_node *node, int timeout)
|
|
{
|
|
struct ptp_message *msg;
|
|
int res;
|
|
@@ -1100,7 +1098,7 @@ static int run_pmc_get_number_ports(struct pmc_node *node, int timeout)
|
|
return res;
|
|
}
|
|
|
|
-static int run_pmc_subscribe(struct pmc_node *node, int timeout)
|
|
+int run_pmc_subscribe(struct pmc_node *node, int timeout)
|
|
{
|
|
struct ptp_message *msg;
|
|
int res;
|
|
@@ -1112,16 +1110,16 @@ static int run_pmc_subscribe(struct pmc_node *node, int timeout)
|
|
return 1;
|
|
}
|
|
|
|
-static void run_pmc_events(struct pmc_node *node)
|
|
+void run_pmc_events(struct pmc_node *node)
|
|
{
|
|
struct ptp_message *msg;
|
|
|
|
run_pmc(node, 0, -1, &msg);
|
|
}
|
|
|
|
-static int run_pmc_port_properties(struct pmc_node *node, int timeout,
|
|
- unsigned int port, int *state,
|
|
- int *tstamping, char *iface)
|
|
+int run_pmc_port_properties(struct pmc_node *node, int timeout,
|
|
+ unsigned int port, int *state,
|
|
+ int *tstamping, char *iface)
|
|
{
|
|
struct ptp_message *msg;
|
|
int res, len;
|
|
@@ -1174,7 +1172,7 @@ static int run_pmc_clock_identity(struct pmc_node *node, int timeout)
|
|
return 1;
|
|
}
|
|
|
|
-static void close_pmc_node(struct pmc_node *node)
|
|
+void close_pmc_node(struct pmc_node *node)
|
|
{
|
|
if (!node->pmc)
|
|
return;
|
|
@@ -1262,7 +1260,7 @@ static int auto_init_ports(struct phc2sys_private *priv, int add_rt)
|
|
}
|
|
|
|
/* Returns: -1 in case of error, 0 otherwise */
|
|
-static int update_pmc_node(struct pmc_node *node, int subscribe)
|
|
+int update_pmc_node(struct pmc_node *node, int subscribe)
|
|
{
|
|
struct timespec tp;
|
|
uint64_t ts;
|
|
--
|
|
2.25.1
|
|
|