On 11/28/2020 9:08 AM, Richard Cochran wrote:
> The number of ports is already available in the cached default data
> set. Use it directly.
>
> Signed-off-by: Richard Cochran <richardcoch...@gmail.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 5386cf4..16daa66 100644
> --- a/phc2sys.c
> +++ b/phc2sys.c
> @@ -864,7 +864,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 4c5b18a..d3db975 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;
> @@ -292,6 +276,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;
> +}
> +
Based on your previous patches suggestions, shouldn't this be
"pmc_agent_query_number_ports", considering that this is returning a
cached value?
> 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 2bb3101..abe62f5 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);
>
> /**
> @@ -56,6 +55,16 @@ void pmc_agent_destroy(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().
>
_______________________________________________
Linuxptp-devel mailing list
Linuxptp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel