06c396fbe3
The issue reported is a particular case of a BC configured with redundant PTP clocks with same priority. When a clock recovers from a failure, as both clock were configured with same priority it's expected the active clock source to remain active. But if the recovered clock presented a better local clock class than active, it was being selected active. This specific case was fixed. Closes-bug: 2084723 Test plan: BC with same priority PASS: Start the PTP service with all clocks out of requirements, one is selected, no matter which one. PASS: Then, when the backup clock recovers from failure it is selected active. PASS: Then, when the other clock recovers from failure it remains as backup, no matter the local clock class. PASS: Then, when the active goes out of requirement, the backup is set active. Test plan: GM with same priority PASS: Start the PTP service with all clocks out of requirements, one is selected, no matter which one. PASS: Then, when the backup clock recovers from failure it is selected active. PASS: Then, when the other clock recovers from failure it remains as backup, no matter the local clock class. PASS: Then, when the active goes out of requirement, the backup is set active. Change-Id: Id2568bc8bbaad4cbf15070314f7904d3c3bbd53d Signed-off-by: Andre Mauricio Zelak <andre.zelak@windriver.com>
140 lines
4.6 KiB
Diff
140 lines
4.6 KiB
Diff
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
|
|
Date: Mon, 12 Jun 2023 13:59:48 -0300
|
|
Subject: [PATCH 12/61] 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;
|