On Tue, 28 Feb 2023 at 01:49, Andrew Zaborowski <andrew.zaborow...@intel.com>
wrote:

> From: Christopher S M Hall <christopher.s.h...@intel.com>
>
> IEEE1588-2019 and 802.1AS-2020 both require the field to be 0 in
> transmitted messages except when the "version 1 hardware option" is set
> (IEEE1588-2019 C.4.2) and only with IPv4.  Since ptp4l isn't padding
> the UDP messages to 124 bytes as required for compatibility with the
> "V.1 Hardware" implementations, assume that we're not dealing with such
> hardware, do not implement the option as defined in C.4.2.
>

Make sense.

Why not clean it all?
There are more places that assign the controlField.
$ git grep -l 'header.control\s*='
nsm.c
pmc_common.c
port_signaling.c
tc.c



> Since the default behaviour changes, in principle this could break
>

May break when using non Linuxptp, as far as I understand, linuxptp only
sets the field, but never checks the value.
Anyhow we do not support PTP version 1 hardware,
 so perhaps it is better to break faster :-)

Erez

things.  It is similar to 2a2532d66121 ("Bump to IEEE 1588-2019 version")
> however, where ptp4l switches the version field to the IEEE1588-2019
> value.
>
> Signed-off-by: Andrew Zaborowski <andrew.zaborow...@intel.com>
> ---
> The original patch added a per-port v1_hw_support option that would
> force the previous controlField values but it wasn't implementing the
> rest of the C.4.2 logic so with no indication that there's a use case
> for such partial support and no mention in the specification, I dropped
> it.
>
>  port.c | 9 ---------
>  1 file changed, 9 deletions(-)
>
> diff --git a/port.c b/port.c
> index 3453716..76f817c 100644
> --- a/port.c
> +++ b/port.c
> @@ -1544,7 +1544,6 @@ static int port_pdelay_request(struct port *p)
>         msg->header.correction         = -p->asymmetry;
>         msg->header.sourcePortIdentity = p->portIdentity;
>         msg->header.sequenceId         = p->seqnum.delayreq++;
> -       msg->header.control            = CTL_OTHER;
>         msg->header.logMessageInterval = port_is_ieee8021as(p) ?
>                 p->logPdelayReqInterval : 0x7f;
>
> @@ -1608,7 +1607,6 @@ int port_delay_request(struct port *p)
>         msg->header.correction         = -p->asymmetry;
>         msg->header.sourcePortIdentity = p->portIdentity;
>         msg->header.sequenceId         = p->seqnum.delayreq++;
> -       msg->header.control            = CTL_DELAY_REQ;
>         msg->header.logMessageInterval = 0x7f;
>
>         if (p->hybrid_e2e) {
> @@ -1660,7 +1658,6 @@ int port_tx_announce(struct port *p, struct address
> *dst, uint16_t sequence_id)
>         msg->header.domainNumber       = clock_domain_number(p->clock);
>         msg->header.sourcePortIdentity = p->portIdentity;
>         msg->header.sequenceId         = sequence_id;
> -       msg->header.control            = CTL_OTHER;
>         msg->header.logMessageInterval = p->logAnnounceInterval;
>
>         msg->header.flagField[1] = tp.flags;
> @@ -1743,7 +1740,6 @@ int port_tx_sync(struct port *p, struct address
> *dst, uint16_t sequence_id)
>         msg->header.domainNumber       = clock_domain_number(p->clock);
>         msg->header.sourcePortIdentity = p->portIdentity;
>         msg->header.sequenceId         = sequence_id;
> -       msg->header.control            = CTL_SYNC;
>         msg->header.logMessageInterval = p->logSyncInterval;
>
>         if (p->timestamping != TS_ONESTEP && p->timestamping !=
> TS_P2P1STEP) {
> @@ -1779,7 +1775,6 @@ int port_tx_sync(struct port *p, struct address
> *dst, uint16_t sequence_id)
>         fup->header.domainNumber       = clock_domain_number(p->clock);
>         fup->header.sourcePortIdentity = p->portIdentity;
>         fup->header.sequenceId         = sequence_id;
> -       fup->header.control            = CTL_FOLLOW_UP;
>         fup->header.logMessageInterval = p->logSyncInterval;
>
>         fup->follow_up.preciseOriginTimestamp =
> tmv_to_Timestamp(msg->hwts.ts);
> @@ -2130,7 +2125,6 @@ static int process_delay_req(struct port *p, struct
> ptp_message *m)
>         msg->header.correction         = m->header.correction;
>         msg->header.sourcePortIdentity = p->portIdentity;
>         msg->header.sequenceId         = m->header.sequenceId;
> -       msg->header.control            = CTL_DELAY_RESP;
>         msg->header.logMessageInterval = p->logMinDelayReqInterval;
>
>         msg->delay_resp.receiveTimestamp = tmv_to_Timestamp(m->hwts.ts);
> @@ -2321,7 +2315,6 @@ int process_pdelay_req(struct port *p, struct
> ptp_message *m)
>         rsp->header.domainNumber       = m->header.domainNumber;
>         rsp->header.sourcePortIdentity = p->portIdentity;
>         rsp->header.sequenceId         = m->header.sequenceId;
> -       rsp->header.control            = CTL_OTHER;
>         rsp->header.logMessageInterval = 0x7f;
>
>         /*
> @@ -2369,7 +2362,6 @@ int process_pdelay_req(struct port *p, struct
> ptp_message *m)
>         fup->header.correction         = m->header.correction;
>         fup->header.sourcePortIdentity = p->portIdentity;
>         fup->header.sequenceId         = m->header.sequenceId;
> -       fup->header.control            = CTL_OTHER;
>         fup->header.logMessageInterval = 0x7f;
>
>         fup->pdelay_resp_fup.requestingPortIdentity =
> m->header.sourcePortIdentity;
> @@ -3210,7 +3202,6 @@ port_management_construct(struct PortIdentity pid,
> struct port *ingress,
>         msg->header.domainNumber       =
> clock_domain_number(ingress->clock);
>         msg->header.sourcePortIdentity = pid;
>         msg->header.sequenceId         = sequenceId;
> -       msg->header.control            = CTL_MANAGEMENT;
>         msg->header.logMessageInterval = 0x7f;
>
>         if (targetPortIdentity)
> --
> 2.34.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