On Tue, Nov 16, 2021 at 12:47:09PM +0000, Karthikkumar V via Linuxptp-devel 
wrote:
> PORT_PROPERTIES_NP PMC Command will now display the phcIndex along with
> other interface details. A typical use case will be Users can fetch the
> phcIndex to use the clock APIs of the kernel (clock_gettime and clock_settime)
> to get the PHC time from user applications.
> 
> Signed-off-by: Karthikkumar V <kval...@altiostar.com>
> Signed-off-by: Ramana Reddy <rre...@altiostar.com>
> ---

May I suggest that
(a) you should not modify the binary format of management TLVs in
    incompatible ways, as that would require everybody else to adapt and
    somehow know which format ptp4l expects, and
(b) you can deduce the PHC index already from the struct PTPText interface,
    see posix_clock_open() -> sk_get_ts_info().

>  pmc.c  | 6 ++++--
>  port.c | 1 +
>  tlv.h  | 1 +
>  3 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/pmc.c b/pmc.c
> index a1ee787..67e33a3 100644
> --- a/pmc.c
> +++ b/pmc.c
> @@ -443,11 +443,13 @@ static void pmc_show(struct ptp_message *msg, FILE *fp)
>                       IFMT "portIdentity            %s"
>                       IFMT "portState               %s"
>                       IFMT "timestamping            %s"
> -                     IFMT "interface               %s",
> +                     IFMT "interface               %s"
> +                     IFMT "phcIndex                %d",
>                       pid2str(&ppn->portIdentity),
>                       ps_str[ppn->port_state],
>                       ts_str(ppn->timestamping),
> -                     text2str(&ppn->interface));
> +                     text2str(&ppn->interface),
> +                     ppn->phc_index);
>               break;
>       case MID_PORT_STATS_NP:
>               pcp = (struct port_stats_np *) mgt->data;
> diff --git a/port.c b/port.c
> index 7e51e77..743b7c7 100644
> --- a/port.c
> +++ b/port.c
> @@ -956,6 +956,7 @@ static int port_management_fill_response(struct port 
> *target,
>               else
>                       ppn->port_state = target->state;
>               ppn->timestamping = target->timestamping;
> +             ppn->phc_index = target->phc_index;
>               ts_label = interface_label(target->iface);
>               ptp_text_set(&ppn->interface, ts_label);
>               datalen = sizeof(*ppn) + ppn->interface.length;
> diff --git a/tlv.h b/tlv.h
> index 97615fd..0f6cf28 100644
> --- a/tlv.h
> +++ b/tlv.h
> @@ -341,6 +341,7 @@ struct port_properties_np {
>       struct PortIdentity portIdentity;
>       uint8_t port_state;
>       uint8_t timestamping;
> +     Integer32 phc_index;
>       struct PTPText interface;
>  } PACKED;
>  
> -- 
> 1.8.3.1
> 
> 
> 
> _______________________________________________
> Linuxptp-devel mailing list
> Linuxptp-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/linuxptp-devel



_______________________________________________
Linuxptp-devel mailing list
Linuxptp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel

Reply via email to