integ/base/linuxptp/debian/patches/0030-pmc_agent-Simplify-the-method-that-gets-of-the-numbe.patch
Andre Mauricio Zelak b707fdb119 HA domain number
Support multiple domain numbers for each uds socket used in HA phc2sys.

The ha_domainNumber option is an interface setting to configure
the domain number for an uds socket. It ranges from 0 to 127.
If the ha_domainNumber is not configured for a given interface,
the global domainNumber setting is used.

Test plan:
PASS: Verify use of ha_domainNumber configuration in manual
configuration.

Failure path: domain number match
PASS: Verify that phc2sys fails to start if domain number
doesn't match ptp4l instance parameter.

Regression:
PASS: Verify use of global domain number in manual configuration.
PASS: Verify auto configuration uses global domain number.

Story: 2010723
Task: 48656

Change-Id: If71775f6ce02586573f005c3b3e805b5351a5a86
Signed-off-by: Andre Mauricio Zelak <andre.zelak@windriver.com>
2023-08-21 14:35:31 -03:00

107 lines
3.1 KiB
Diff

From d3b877cae9576beddb00d4c5db67bf49c944b222 Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Mon, 12 Jun 2023 17:30:57 -0300
Subject: [PATCH 30/48] pmc_agent: Simplify the method that gets of the number
of local ports.
The number of ports is already available in the cached default data
set. Use it directly.
Signed-off-by: Richard Cochran <richardcochran@gmail.com>
[commit 6bc9eb81dd254d90b5fe059684271b9beebf6b9b upstream]
Signed-off-by: Andre Mauricio Zelak <andre.zelak@windriver.com>
---
phc2sys.c | 2 +-
pmc_agent.c | 24 ++++++++----------------
pmc_agent.h | 11 ++++++++++-
3 files changed, 19 insertions(+), 18 deletions(-)
diff --git a/phc2sys.c b/phc2sys.c
index 0f33630..569544e 100644
--- a/phc2sys.c
+++ b/phc2sys.c
@@ -875,7 +875,7 @@ static int auto_init_ports(struct phc2sys_private *priv, int add_rt)
}
}
- number_ports = run_pmc_get_number_ports(priv->node, 1000);
+ number_ports = pmc_agent_get_number_ports(priv->node);
if (number_ports <= 0) {
pr_err("failed to get number of ports");
return -1;
diff --git a/pmc_agent.c b/pmc_agent.c
index 51023d1..aa2347d 100644
--- a/pmc_agent.c
+++ b/pmc_agent.c
@@ -229,22 +229,6 @@ int run_pmc_wait_sync(struct pmc_agent *node, int timeout)
}
}
-int run_pmc_get_number_ports(struct pmc_agent *node, int timeout)
-{
- struct ptp_message *msg;
- int res;
- struct defaultDS *dds;
-
- res = run_pmc(node, timeout, TLV_DEFAULT_DATA_SET, &msg);
- if (res <= 0)
- return res;
-
- dds = (struct defaultDS *) management_tlv_data(msg);
- res = dds->numberPorts;
- msg_put(msg);
- return res;
-}
-
void run_pmc_events(struct pmc_agent *node)
{
struct ptp_message *msg;
@@ -300,6 +284,14 @@ int pmc_agent_get_sync_offset(struct pmc_agent *agent)
return agent->sync_offset;
}
+int pmc_agent_get_number_ports(struct pmc_agent *node)
+{
+ if (!node->dds_valid) {
+ return -1;
+ }
+ return node->dds.numberPorts;
+}
+
int pmc_agent_query_dds(struct pmc_agent *node, int timeout)
{
struct ptp_message *msg;
diff --git a/pmc_agent.h b/pmc_agent.h
index 9d8bd1c..f0e2c7a 100644
--- a/pmc_agent.h
+++ b/pmc_agent.h
@@ -34,7 +34,6 @@ typedef int pmc_node_recv_subscribed_t(void *context, struct ptp_message *msg,
int init_pmc_node(struct config *cfg, struct pmc_agent *agent, const char *uds,
pmc_node_recv_subscribed_t *recv_subscribed, void *context);
int run_pmc_wait_sync(struct pmc_agent *agent, int timeout);
-int run_pmc_get_number_ports(struct pmc_agent *agent, int timeout);
void run_pmc_events(struct pmc_agent *agent);
/**
@@ -62,6 +61,16 @@ void pmc_agent_disable(struct pmc_agent *agent);
*/
int pmc_agent_get_leap(struct pmc_agent *agent);
+/**
+ * Gets the number of local ports from the default data set. Users
+ * should first call pmc_agent_query_dds() before invoking this
+ * function.
+ *
+ * @param agent Pointer to a PMC instance obtained via @ref pmc_agent_create().
+ * @return The non-negative number of ports, or -1 if unknown.
+ */
+int pmc_agent_get_number_ports(struct pmc_agent *agent);
+
/**
* Gets the TAI-UTC offset.
* @param agent Pointer to a PMC instance obtained via @ref pmc_agent_create().
--
2.25.1