Changes for v2:
        - Made v2.1 as macros.
Changes for v3:
        - Fixed pmc versionNumber printing issue.

> -----Original Message-----
> From: Yangbo Lu <yangbo...@nxp.com>
> Sent: Monday, March 1, 2021 11:41 AM
> To: linuxptp-devel@lists.sourceforge.net
> Cc: Y.b. Lu <yangbo...@nxp.com>
> Subject: [v3] Bump to IEEE 1588-2019 version
> 
> IEEE 1588-2019 specified new UInteger4 type minorVersionPTP field
> in header, and minorVersionNumber data in portDS. It has the value
> 1 for IEEE 1588-2019, and has the value 0 for IEEE 1588-2008.
> 
> This patch is to bump to IEEE 1588-2019 version directly in message,
> considering v2.1 and even future v2.x are all backward compatible.
> 
> Signed-off-by: Yangbo Lu <yangbo...@nxp.com>
> ---
>  msg.c | 5 +----
>  msg.h | 9 +++++++--
>  pmc.c | 6 ++++--
>  3 files changed, 12 insertions(+), 8 deletions(-)
> 
> diff --git a/msg.c b/msg.c
> index d1619d4..c4516ad 100644
> --- a/msg.c
> +++ b/msg.c
> @@ -27,9 +27,6 @@
>  #include "print.h"
>  #include "tlv.h"
> 
> -#define VERSION_MASK 0x0f
> -#define VERSION      0x02
> -
>  int assume_two_step = 0;
> 
>  /*
> @@ -80,7 +77,7 @@ static void announce_post_recv(struct announce_msg
> *m)
> 
>  static int hdr_post_recv(struct ptp_header *m)
>  {
> -     if ((m->ver & VERSION_MASK) != VERSION)
> +     if ((m->ver & MAJOR_VERSION_MASK) != PTP_MAJOR_VERSION)
>               return -EPROTO;
>       m->messageLength = ntohs(m->messageLength);
>       m->correction = net2host64(m->correction);
> diff --git a/msg.h b/msg.h
> index a71df16..b7423ee 100644
> --- a/msg.h
> +++ b/msg.h
> @@ -30,7 +30,12 @@
>  #include "tlv.h"
>  #include "tmv.h"
> 
> -#define PTP_VERSION 2
> +/* Version definition for IEEE 1588-2019 */
> +#define PTP_MAJOR_VERSION    2
> +#define PTP_MINOR_VERSION    1
> +#define PTP_VERSION          (PTP_MINOR_VERSION << 4 |
> PTP_MAJOR_VERSION)
> +
> +#define MAJOR_VERSION_MASK   0x0f
> 
>  /* Values for the messageType field */
>  #define SYNC                  0x0
> @@ -89,7 +94,7 @@ enum controlField {
> 
>  struct ptp_header {
>       uint8_t             tsmt; /* transportSpecific | messageType */
> -     uint8_t             ver;  /* reserved          | versionPTP  */
> +     uint8_t             ver;  /* minorVersionPTP   | versionPTP  */
>       UInteger16          messageLength;
>       UInteger8           domainNumber;
>       Octet               reserved1;
> diff --git a/pmc.c b/pmc.c
> index 3678800..ea2af3f 100644
> --- a/pmc.c
> +++ b/pmc.c
> @@ -413,12 +413,14 @@ static void pmc_show(struct ptp_message *msg,
> FILE *fp)
>                       IFMT "logSyncInterval         %hhd"
>                       IFMT "delayMechanism          %hhu"
>                       IFMT "logMinPdelayReqInterval %hhd"
> -                     IFMT "versionNumber           %hhu",
> +                     IFMT "versionNumber           %u.%u",
>                       pid2str(&p->portIdentity), ps_str[p->portState],
>                       p->logMinDelayReqInterval, p->peerMeanPathDelay >> 16,
>                       p->logAnnounceInterval, p->announceReceiptTimeout,
>                       p->logSyncInterval, p->delayMechanism,
> -                     p->logMinPdelayReqInterval, p->versionNumber);
> +                     p->logMinPdelayReqInterval,
> +                     p->versionNumber & MAJOR_VERSION_MASK,
> +                     p->versionNumber >> 4);
>               break;
>       case TLV_PORT_DATA_SET_NP:
>               pnp = (struct port_ds_np *) mgt->data;
> --
> 2.25.1



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

Reply via email to