Signed-off-by: Richard Cochran <richardcoch...@gmail.com>
---
 pmc.c | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/pmc.c b/pmc.c
index 8e30b1c..65d1d61 100644
--- a/pmc.c
+++ b/pmc.c
@@ -58,6 +58,20 @@ static char *bin2str(Octet *data, int len)
 #define SHOW_TIMESTAMP(ts) \
        ((uint64_t)ts.seconds_lsb) | (((uint64_t)ts.seconds_msb) << 32), 
ts.nanoseconds
 
+static void pmc_show_delay_timing(struct slave_delay_timing_record *record,
+                                 FILE *fp)
+{
+       fprintf(fp,
+               IFMT "sequenceId                 %hu"
+               IFMT "delayOriginTimestamp       %" PRId64 ".%09u"
+               IFMT "totalCorrectionField       %" PRId64
+               IFMT "delayResponseTimestamp     %" PRId64 ".%09u",
+               record->sequenceId,
+               SHOW_TIMESTAMP(record->delayOriginTimestamp),
+               record->totalCorrectionField << 16,
+               SHOW_TIMESTAMP(record->delayResponseTimestamp));
+}
+
 static void pmc_show_rx_sync_timing(struct slave_rx_sync_timing_record *record,
                                    FILE *fp)
 {
@@ -77,7 +91,9 @@ static void pmc_show_rx_sync_timing(struct 
slave_rx_sync_timing_record *record,
 static void pmc_show_signaling(struct ptp_message *msg, FILE *fp)
 {
        struct slave_rx_sync_timing_record *sync_record;
+       struct slave_delay_timing_record *delay_record;
        struct slave_rx_sync_timing_data_tlv *srstd;
+       struct slave_delay_timing_data_tlv *sdtdt;
        struct tlv_extra *extra;
        int i, cnt;
 
@@ -100,6 +116,19 @@ static void pmc_show_signaling(struct ptp_message *msg, 
FILE *fp)
                                sync_record++;
                        }
                        break;
+               case TLV_SLAVE_DELAY_TIMING_DATA_NP:
+                       sdtdt = (struct slave_delay_timing_data_tlv *) 
extra->tlv;
+                       cnt = (sdtdt->length - 
sizeof(sdtdt->sourcePortIdentity)) /
+                               sizeof(*delay_record);
+                       fprintf(fp, "SLAVE_DELAY_TIMING_DATA_NP N %d "
+                               IFMT "sourcePortIdentity         %s",
+                               cnt, pid2str(&sdtdt->sourcePortIdentity));
+                       delay_record = sdtdt->record;
+                       for (i = 0; i < cnt; i++) {
+                               pmc_show_delay_timing(delay_record, fp);
+                               delay_record++;
+                       }
+                       break;
                default:
                        break;
                }
-- 
2.20.1



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

Reply via email to