On 11/10/2023 5:43 PM, Erez wrote:
>
>
> On Fri, 10 Nov 2023 at 14:05, Maciek Machnikowski
> <[email protected] <mailto:[email protected]>> wrote:
>
> Additionally, forcing PTP minor version to be nonzero causes
> interoperability issues with some legacy grandmasters.
>
> Signed-off-by: Maciek Machnikowski <[email protected]
> <mailto:[email protected]>>
> ---
> config.c | 1 +
> configs/default.cfg | 1 +
> ptp4l.8 | 5 +++++
> ptp4l.c | 4 ++++
> 4 files changed, 11 insertions(+)
>
> diff --git a/config.c b/config.c
> index b104f1b..f03a9d2 100644
> --- a/config.c
> +++ b/config.c
> @@ -279,6 +279,7 @@ struct config_item config_tab[] = {
> PORT_ITEM_INT("interface_rate_tlv", 0, 0, 1),
> GLOB_ITEM_INT("kernel_leap", 1, 0, 1),
> GLOB_ITEM_STR("leapfile", NULL),
> + GLOB_ITEM_INT("legacy_ptp_ver", 0, 0, 1),
> PORT_ITEM_INT("logAnnounceInterval", 1, INT8_MIN, INT8_MAX),
> PORT_ITEM_INT("logMinDelayReqInterval", 0, INT8_MIN, INT8_MAX),
> PORT_ITEM_INT("logMinPdelayReqInterval", 0, INT8_MIN, INT8_MAX),
> diff --git a/configs/default.cfg b/configs/default.cfg
> index 00429b9..f0cc2c2 100644
> --- a/configs/default.cfg
> +++ b/configs/default.cfg
> @@ -46,6 +46,7 @@ power_profile.2011.networkTimeInaccuracy -1
> power_profile.2017.totalTimeInaccuracy -1
> power_profile.grandmasterID 0
> power_profile.version none
> +legacy_ptp_ver 0
>
>
> Perhaps legacy_ptp2_min_ver ?
I'll change it to force_compatible_ptp_version
>
>
>
>
> #
> # Run time options
> #
> diff --git a/ptp4l.8 b/ptp4l.8
> index 40c66c2..43dbd5e 100644
> --- a/ptp4l.8
> +++ b/ptp4l.8
> @@ -676,6 +676,11 @@ one-second offset slowly by changing the clock
> frequency (unless the
> option is set to correct such offset by stepping).
> Relevant only with software time stamping. The default is 1 (enabled).
>
> +.TP
> +.B legacy_ptp_ver
> +This option forces legacy PTP header version 2.0. May be required
> on some
> +legacy hardware that expects exact match on PTP header version.
>
>
> The default is 1 for 2.1.
> You should be explicit.
No - it's works as described - if this option is enabled - the version
will fallback to the compatible 2.0
>
>
> +
> .TP
> .B logging_level
> The maximum logging level of messages which should be printed.
> diff --git a/ptp4l.c b/ptp4l.c
> index c61175b..8eaeaf3 100644
> --- a/ptp4l.c
> +++ b/ptp4l.c
> @@ -192,6 +192,10 @@ int main(int argc, char *argv[])
> sk_tx_timeout = config_get_int(cfg, NULL,
> "tx_timestamp_timeout");
> sk_hwts_filter_mode = config_get_int(cfg, NULL, "hwts_filter");
>
> + if(config_get_int(cfg, NULL, "legacy_ptp_ver")) {
> + ptp_hdr_ver = PTP_MAJOR_VERSION;
>
>
> This looks bad,
> It should be:
>
> legacy_ptp2_min_ver = config_get_int(cfg, NULL, ...
> ptp_hdr_ver = (legacy_ptp2_min_ver << 4 | PTP_MAJOR_VERSION);
> The default should be 1.
> config_get_int() return the configured value or the default value.
I don't like using a user input to form anything that's sent over the
wire - I don't see the value in it.
Regards
Maciek
>
>
> + }
> +
> if (config_get_int(cfg, NULL, "clock_servo") ==
> CLOCK_SERVO_NTPSHM) {
> config_set_int(cfg, "kernel_leap", 0);
> config_set_int(cfg, "sanity_freq_limit", 0);
> --
> 2.30.2
>
>
>
> _______________________________________________
> Linuxptp-devel mailing list
> [email protected]
> <mailto:[email protected]>
> https://lists.sourceforge.net/lists/listinfo/linuxptp-devel
> <https://lists.sourceforge.net/lists/listinfo/linuxptp-devel>
>
_______________________________________________
Linuxptp-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel