As most of us use little endian hardware and
 to retain backward compatible with most of us,
 we decide to use little endian.

Signed-off-by: Erez Geva <erez.geva....@siemens.com>
---
 pmc.c  | 51 +++++++++++++++++++++++++++++++--------------------
 port.c |  6 +++++-
 2 files changed, 36 insertions(+), 21 deletions(-)

diff --git a/pmc.c b/pmc.c
index 1e569b5..9cf52c6 100644
--- a/pmc.c
+++ b/pmc.c
@@ -137,6 +137,17 @@ static void pmc_show_signaling(struct ptp_message *msg, 
FILE *fp)
        fflush(fp);
 }
 
+static inline uint64_t getStat(struct port_stats_np *pcp, bool rx, int index)
+{
+       uint64_t ret;
+
+       if (rx)
+               ret = pcp->stats.rxMsgType[index];
+       else
+               ret = pcp->stats.txMsgType[index];
+       return le64toh(ret);
+}
+
 static void pmc_show(struct ptp_message *msg, FILE *fp)
 {
        struct grandmaster_settings_np *gsn;
@@ -469,26 +480,26 @@ static void pmc_show(struct ptp_message *msg, FILE *fp)
                        IFMT "tx_Signaling              %" PRIu64
                        IFMT "tx_Management             %" PRIu64,
                        pid2str(&pcp->portIdentity),
-                       pcp->stats.rxMsgType[SYNC],
-                       pcp->stats.rxMsgType[DELAY_REQ],
-                       pcp->stats.rxMsgType[PDELAY_REQ],
-                       pcp->stats.rxMsgType[PDELAY_RESP],
-                       pcp->stats.rxMsgType[FOLLOW_UP],
-                       pcp->stats.rxMsgType[DELAY_RESP],
-                       pcp->stats.rxMsgType[PDELAY_RESP_FOLLOW_UP],
-                       pcp->stats.rxMsgType[ANNOUNCE],
-                       pcp->stats.rxMsgType[SIGNALING],
-                       pcp->stats.rxMsgType[MANAGEMENT],
-                       pcp->stats.txMsgType[SYNC],
-                       pcp->stats.txMsgType[DELAY_REQ],
-                       pcp->stats.txMsgType[PDELAY_REQ],
-                       pcp->stats.txMsgType[PDELAY_RESP],
-                       pcp->stats.txMsgType[FOLLOW_UP],
-                       pcp->stats.txMsgType[DELAY_RESP],
-                       pcp->stats.txMsgType[PDELAY_RESP_FOLLOW_UP],
-                       pcp->stats.txMsgType[ANNOUNCE],
-                       pcp->stats.txMsgType[SIGNALING],
-                       pcp->stats.txMsgType[MANAGEMENT]);
+                       getStat(pcp, true, SYNC),
+                       getStat(pcp, true, DELAY_REQ),
+                       getStat(pcp, true, PDELAY_REQ),
+                       getStat(pcp, true, PDELAY_RESP),
+                       getStat(pcp, true, FOLLOW_UP),
+                       getStat(pcp, true, DELAY_RESP),
+                       getStat(pcp, true, PDELAY_RESP_FOLLOW_UP),
+                       getStat(pcp, true, ANNOUNCE),
+                       getStat(pcp, true, SIGNALING),
+                       getStat(pcp, true, MANAGEMENT),
+                       getStat(pcp, false, SYNC),
+                       getStat(pcp, false, DELAY_REQ),
+                       getStat(pcp, false, PDELAY_REQ),
+                       getStat(pcp, false, PDELAY_RESP),
+                       getStat(pcp, false, FOLLOW_UP),
+                       getStat(pcp, false, DELAY_RESP),
+                       getStat(pcp, false, PDELAY_RESP_FOLLOW_UP),
+                       getStat(pcp, false, ANNOUNCE),
+                       getStat(pcp, false, SIGNALING),
+                       getStat(pcp, false, MANAGEMENT));
                break;
        case TLV_LOG_ANNOUNCE_INTERVAL:
                mtd = (struct management_tlv_datum *) mgt->data;
diff --git a/port.c b/port.c
index cefe780..7f45bf3 100644
--- a/port.c
+++ b/port.c
@@ -806,6 +806,7 @@ static int port_management_fill_response(struct port 
*target,
        uint16_t u16;
        uint8_t *buf;
        int datalen;
+       int i;
 
        extra = tlv_extra_alloc();
        if (!extra) {
@@ -958,7 +959,10 @@ static int port_management_fill_response(struct port 
*target,
        case TLV_PORT_STATS_NP:
                psn = (struct port_stats_np *)tlv->data;
                psn->portIdentity = target->portIdentity;
-               psn->stats = target->stats;
+               for (i = 0 ; i < MAX_MESSAGE_TYPES; i++) {
+                       psn->stats.rxMsgType[i] = 
htole64(target->stats.rxMsgType[i]);
+                       psn->stats.txMsgType[i] = 
htole64(target->stats.txMsgType[i]);
+               }
                datalen = sizeof(*psn);
                break;
        default:
-- 
2.20.1



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

Reply via email to