HA domain number

Support multiple domain numbers for each uds socket used in HA phc2sys.

The ha_domainNumber option is an interface setting to configure
the domain number for an uds socket. It ranges from 0 to 127.
If the ha_domainNumber is not configured for a given interface,
the global domainNumber setting is used.

Test plan:
PASS: Verify use of ha_domainNumber configuration in manual
configuration.

Failure path: domain number match
PASS: Verify that phc2sys fails to start if domain number
doesn't match ptp4l instance parameter.

Regression:
PASS: Verify use of global domain number in manual configuration.
PASS: Verify auto configuration uses global domain number.

Story: 2010723
Task: 48656

Change-Id: If71775f6ce02586573f005c3b3e805b5351a5a86
Signed-off-by: Andre Mauricio Zelak <andre.zelak@windriver.com>
This commit is contained in:
Andre Mauricio Zelak 2023-08-21 14:35:31 -03:00
parent deeacbcdf3
commit b707fdb119
49 changed files with 194 additions and 48 deletions

View File

@ -1,7 +1,7 @@
From 63b43924294da6cb177d0509120b2e957580441c Mon Sep 17 00:00:00 2001
From: Miroslav Lichvar <mlichvar@redhat.com>
Date: Mon, 31 May 2021 11:07:52 +0200
Subject: [PATCH 1/47] clock: Reset state when switching port with same best clock.
Subject: [PATCH 1/48] clock: Reset state when switching port with same best clock.
When the best port is changed, but the ID of the best clock doesn't
change (e.g. a passive port is activated on link failure), reset the

View File

@ -4,7 +4,7 @@ In-Reply-To: <0389752e3aecf8d2b2743f16ce1408a58088bea9.1630418391.git.Jim.Somerv
References: <0389752e3aecf8d2b2743f16ce1408a58088bea9.1630418391.git.Jim.Somerville@windriver.com>
From: Miroslav Lichvar <mlichvar@redhat.com>
Date: Mon, 31 May 2021 11:07:53 +0200
Subject: [PATCH 2/47] clock: Reset clock check on best clock/port change.
Subject: [PATCH 2/48] clock: Reset clock check on best clock/port change.
Reset the clock check when the best clock or port changes, together with
the other state like current estimated delay and frequency. This avoids

View File

@ -4,7 +4,7 @@ In-Reply-To: <0389752e3aecf8d2b2743f16ce1408a58088bea9.1630418391.git.Jim.Somerv
References: <0389752e3aecf8d2b2743f16ce1408a58088bea9.1630418391.git.Jim.Somerville@windriver.com>
From: Miroslav Lichvar <mlichvar@redhat.com>
Date: Mon, 31 May 2021 11:07:54 +0200
Subject: [PATCH 3/47] port: Don't check timestamps from non-slave ports.
Subject: [PATCH 3/48] port: Don't check timestamps from non-slave ports.
Don't perform the sanity check on receive timestamps from ports in
non-slave states to avoid false positives in the jbod mode, where

View File

@ -4,7 +4,7 @@ In-Reply-To: <0389752e3aecf8d2b2743f16ce1408a58088bea9.1630418391.git.Jim.Somerv
References: <0389752e3aecf8d2b2743f16ce1408a58088bea9.1630418391.git.Jim.Somerville@windriver.com>
From: Miroslav Lichvar <mlichvar@redhat.com>
Date: Mon, 31 May 2021 11:07:55 +0200
Subject: [PATCH 4/47] port: Don't renew raw transport.
Subject: [PATCH 4/48] port: Don't renew raw transport.
Renewing of the transport on announce/sync timeout is needed in the
client-only mode to avoid getting stuck with a broken multicast socket

View File

@ -4,7 +4,7 @@ In-Reply-To: <0389752e3aecf8d2b2743f16ce1408a58088bea9.1630611367.git.Jim.Somerv
References: <0389752e3aecf8d2b2743f16ce1408a58088bea9.1630611367.git.Jim.Somerville@windriver.com>
From: Miroslav Lichvar <mlichvar@redhat.com>
Date: Mon, 31 May 2021 11:07:56 +0200
Subject: [PATCH 5/47] clockcheck: Increase minimum interval.
Subject: [PATCH 5/48] clockcheck: Increase minimum interval.
Increase the minimum check interval to 1 second to measure the frequency
offset more accurately and with default configuration make false

View File

@ -4,7 +4,7 @@ In-Reply-To: <0389752e3aecf8d2b2743f16ce1408a58088bea9.1630418391.git.Jim.Somerv
References: <0389752e3aecf8d2b2743f16ce1408a58088bea9.1630418391.git.Jim.Somerville@windriver.com>
From: Cole Walker <cole.walker@windriver.com>
Date: Wed, 23 Jun 2021 11:14:41 -0400
Subject: [PATCH 6/47] Add option to disable default port selection in phc2sys
Subject: [PATCH 6/48] Add option to disable default port selection in phc2sys
This change serves to address an issue in phc2sys
where the local ptp clocks are not synced together properly if the local

View File

@ -1,7 +1,7 @@
From 6428c2628c013c408ec09355ad37eb12fa6bb20f Mon Sep 17 00:00:00 2001
From: Miroslav Lichvar <mlichvar@redhat.com>
Date: Wed, 18 May 2022 11:33:35 +0200
Subject: [PATCH 7/47] sysoff: Change sysoff_measure() to return errno.
Subject: [PATCH 7/48] sysoff: Change sysoff_measure() to return errno.
Return -errno from failed ioctl instead of the SYSOFF_* enum from the
measurement functions to allow the callers to check for specific errors.

View File

@ -1,7 +1,7 @@
From 38a530d94fc5aa73bde424d05e2e38348e64d7e5 Mon Sep 17 00:00:00 2001
From: Miroslav Lichvar <mlichvar@redhat.com>
Date: Wed, 18 May 2022 11:33:36 +0200
Subject: [PATCH 8/47] sysoff: Change log level of ioctl error messages.
Subject: [PATCH 8/48] sysoff: Change log level of ioctl error messages.
Change the log level of ioctl error messages to the error level to make
them visible in default configuration, with the exception of EOPNOTSUPP

View File

@ -1,7 +1,7 @@
From 11ae077e31d9957df01aacfa17eea5b5d548b249 Mon Sep 17 00:00:00 2001
From: Miroslav Lichvar <mlichvar@redhat.com>
Date: Wed, 18 May 2022 11:33:37 +0200
Subject: [PATCH 9/47] sysoff: Retry on EBUSY when probing supported ioctls.
Subject: [PATCH 9/48] sysoff: Retry on EBUSY when probing supported ioctls.
Handle EBUSY when probing support for a PTP_SYS_OFFSET ioctl. Try each
ioctl up to three times before giving up on it to make the detection

View File

@ -1,7 +1,7 @@
From e4fd6a930213e6f0f009eb070d51b1e14db60d1b Mon Sep 17 00:00:00 2001
From: Miroslav Lichvar <mlichvar@redhat.com>
Date: Wed, 18 May 2022 11:33:38 +0200
Subject: [PATCH 10/47] phc2sys: Don't exit when reading of PHC fails with EBUSY.
Subject: [PATCH 10/48] phc2sys: Don't exit when reading of PHC fails with EBUSY.
Reading of the PHC can occasionally fail with some drivers, e.g. the ice
driver returns EBUSY when it fails to get a lock. Continue in the loop

View File

@ -1,7 +1,7 @@
From 0c5c39a8cd3675d91e872a75d75854907950957d Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Mon, 12 Jun 2023 13:47:47 -0300
Subject: [PATCH 11/47] phc2sys: extract PMC functionality into a smaller
Subject: [PATCH 11/48] phc2sys: extract PMC functionality into a smaller
struct pmc_node
This creates a smaller structure within phc2sys_private, which embeds

View File

@ -1,7 +1,7 @@
From 87d8e7281e3e66813d0c669bea0b5335a8cbb6b6 Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Mon, 12 Jun 2023 13:59:48 -0300
Subject: [PATCH 12/47] phc2sys: make PMC functions non-static
Subject: [PATCH 12/48] phc2sys: make PMC functions non-static
In preparation of a trivial movement of code to pmc_common.c, remove the
"static" keyword from the functions that will end up there, since they

View File

@ -1,7 +1,7 @@
From ba9c2ea0e1f7a96093bca1147d4745a7d0ce17b6 Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Mon, 12 Jun 2023 14:34:19 -0300
Subject: [PATCH 13/47] phc2sys: break out pmc code into pmc_common.c
Subject: [PATCH 13/48] phc2sys: break out pmc code into pmc_common.c
The code through which phc2sys sends various PTP management messages to
ptp4l via pmc can be reused.

View File

@ -1,7 +1,7 @@
From c00e75286b2ad882cf8e89549ea58e438c877f95 Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Mon, 12 Jun 2023 14:40:59 -0300
Subject: [PATCH 14/47] Introduce the PMC agent module.
Subject: [PATCH 14/48] Introduce the PMC agent module.
The logic for placing PTP management queries migrated out of phc2sys into
pmc_common in order to be shared with other programs in the future. This

View File

@ -1,7 +1,7 @@
From 82258917b8de7110545f3d4f99d3ac88a609f019 Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Mon, 12 Jun 2023 14:47:36 -0300
Subject: [PATCH 15/47] pmc_agent: Rename pmc_node to something more
Subject: [PATCH 15/48] pmc_agent: Rename pmc_node to something more
descriptive.
Signed-off-by: Richard Cochran <richardcochran@gmail.com>

View File

@ -1,7 +1,7 @@
From f6d7bb0a62f15fcca0343c42891f7e056f502949 Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Mon, 12 Jun 2023 14:55:29 -0300
Subject: [PATCH 16/47] pmc_agent: Hide the implementation.
Subject: [PATCH 16/48] pmc_agent: Hide the implementation.
The PMC agent's implementation should not be exposed to its users. This
patch hides the details and provides a method to create an instance. In

View File

@ -1,7 +1,7 @@
From 4ebb69f5c55e7f1f08d1a73df87d42fe70147ec9 Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Mon, 12 Jun 2023 14:58:09 -0300
Subject: [PATCH 17/47] Find a better home for the management TLV ID helper
Subject: [PATCH 17/48] Find a better home for the management TLV ID helper
function.
Signed-off-by: Richard Cochran <richardcochran@gmail.com>

View File

@ -1,7 +1,7 @@
From 6e4f8ea8531b7678a44a9b3ed021fda94eccdc27 Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Mon, 12 Jun 2023 14:59:57 -0300
Subject: [PATCH 18/47] Find a better home for the management TLV data helper
Subject: [PATCH 18/48] Find a better home for the management TLV data helper
function.
Signed-off-by: Richard Cochran <richardcochran@gmail.com>

View File

@ -1,7 +1,7 @@
From 95e4983c9ab517b9dda1faf171721f0dd877e076 Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Mon, 12 Jun 2023 15:04:11 -0300
Subject: [PATCH 19/47] Introduce error codes for the run_pmc method.
Subject: [PATCH 19/48] Introduce error codes for the run_pmc method.
The run_pmc function is used by several of the PMC agent methods, but it
breaks the pattern of returning zero on success. However, the user facing

View File

@ -1,7 +1,7 @@
From 8c1dd261683d27acba49e047d9f6da52dada3c98 Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Mon, 12 Jun 2023 15:08:01 -0300
Subject: [PATCH 20/47] pmc_agent: Convert the subscribe method into the
Subject: [PATCH 20/48] pmc_agent: Convert the subscribe method into the
canonical form.
This patch renames the function to have the module prefix and corrects the

View File

@ -1,7 +1,7 @@
From 82a369b4fe44a7cea41fb0ccf408c02b1b6aa694 Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Mon, 12 Jun 2023 15:17:26 -0300
Subject: [PATCH 21/47] pmc_agent: Simplify the update method.
Subject: [PATCH 21/48] pmc_agent: Simplify the update method.
The main method that causes the PMC agent to update its status takes a flag
that results in different behavior when push notifications are active.

View File

@ -1,7 +1,7 @@
From 731e8938953e56578007a679dbaa29e9471650ac Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Mon, 12 Jun 2023 15:18:36 -0300
Subject: [PATCH 22/47] pmc_agent: Simplify logic in update method.
Subject: [PATCH 22/48] pmc_agent: Simplify logic in update method.
If the pmc pointer is not set, then there is no need to read the time only
to later discard the result. This patch simplifies the flow by returning

View File

@ -1,7 +1,7 @@
From 357e24c897e1e2d29cf011b3a38c3a6b2a7943c3 Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Mon, 12 Jun 2023 15:33:43 -0300
Subject: [PATCH 23/47] pmc_agent: Remove bogus comparison between last update
Subject: [PATCH 23/48] pmc_agent: Remove bogus comparison between last update
and now.
The monotonic clock can never go backwards. If you take T1 and later T2

View File

@ -1,7 +1,7 @@
From d5421e4d4d86907648a59810ab9c27e739591971 Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Mon, 12 Jun 2023 15:35:23 -0300
Subject: [PATCH 24/47] pmc_agent: Perform time comparison using positive
Subject: [PATCH 24/48] pmc_agent: Perform time comparison using positive
logic.
In the update_pmc_node() method, reduce the expression

View File

@ -1,7 +1,7 @@
From a304d4df86a76c187fc7074755fe9b5ad349efbe Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Mon, 12 Jun 2023 15:36:38 -0300
Subject: [PATCH 25/47] pmc_agent: Rename the update method and attempt to
Subject: [PATCH 25/48] pmc_agent: Rename the update method and attempt to
document it.
This patch renames the function to have the module prefix and tries to

View File

@ -1,7 +1,7 @@
From 5aacbe319db97907a15741005e2790bbf4c742a0 Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Mon, 12 Jun 2023 15:37:46 -0300
Subject: [PATCH 26/47] phc2sys: Fix null pointer de-reference in manual mode.
Subject: [PATCH 26/48] phc2sys: Fix null pointer de-reference in manual mode.
If both the -w and -O command line options are specified (or when
using -w when both source and destination clocks are PHCs), then

View File

@ -1,7 +1,7 @@
From b8188a4fd51bc8983e5d19f18fe37b8ca39d03a6 Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Mon, 12 Jun 2023 17:20:04 -0300
Subject: [PATCH 27/47] pmc_agent: Convert the method that queries TAI-UTC
Subject: [PATCH 27/48] pmc_agent: Convert the method that queries TAI-UTC
offset into the canonical form.
This patch renames the function to have the module prefix and corrects the

View File

@ -1,7 +1,7 @@
From acdf74df9fa69b81c1e9332f10d4efcd3e9bae48 Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Mon, 12 Jun 2023 17:23:29 -0300
Subject: [PATCH 28/47] pmc_agent: Convert the method that queries the port
Subject: [PATCH 28/48] pmc_agent: Convert the method that queries the port
properties.
Prefix the function with the module name and correct the return code

View File

@ -1,7 +1,7 @@
From 3e6dd047083625ca03df9b4bbdc781e7dd079ff2 Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Mon, 12 Jun 2023 17:29:30 -0300
Subject: [PATCH 29/47] pmc_agent: Generalize the method that queries the local
Subject: [PATCH 29/48] pmc_agent: Generalize the method that queries the local
clock identity.
When started in automatic mode, the phc2sys program first queries the

View File

@ -1,7 +1,7 @@
From d3b877cae9576beddb00d4c5db67bf49c944b222 Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Mon, 12 Jun 2023 17:30:57 -0300
Subject: [PATCH 30/47] pmc_agent: Simplify the method that gets of the number
Subject: [PATCH 30/48] pmc_agent: Simplify the method that gets of the number
of local ports.
The number of ports is already available in the cached default data

View File

@ -1,7 +1,7 @@
From 156728d14591dd2b3131bcff49959e806523c1bb Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Mon, 12 Jun 2023 17:32:27 -0300
Subject: [PATCH 31/47] pmc_agent: Let the update method poll for push events.
Subject: [PATCH 31/48] pmc_agent: Let the update method poll for push events.
Signed-off-by: Richard Cochran <richardcochran@gmail.com>

View File

@ -1,7 +1,7 @@
From 0e504e57af6c576202bbe1abe5a99eb24a981b73 Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Mon, 12 Jun 2023 17:51:10 -0300
Subject: [PATCH 32/47] phc2sys: Fix regression in the automatic mode.
Subject: [PATCH 32/48] phc2sys: Fix regression in the automatic mode.
Commit ac7d69bbc476 ("pmc_agent: Convert the method that queries the
port properties.") had the well meant intention of the cleaning up the

View File

@ -1,7 +1,7 @@
From 06a6734e3350e4020b4bb7b24a15d43aa42b4ca7 Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Mon, 12 Jun 2023 17:57:11 -0300
Subject: [PATCH 33/47] Implement push notification for TIME_STATUS_NP
Subject: [PATCH 33/48] Implement push notification for TIME_STATUS_NP
Subscribers to NOTIFY_TIME_SYNC will be notified on every clock
synchronization.

View File

@ -1,7 +1,7 @@
From babbe47ab091071e16fcd527bf1aad06e5aec377 Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Mon, 12 Jun 2023 18:16:31 -0300
Subject: [PATCH 34/47] clock: Rename UDS variables to read-write.
Subject: [PATCH 34/48] clock: Rename UDS variables to read-write.
In preparation for a new read-only UDS port, rename variables of the
current UDS port to make it clear it is read-write, as opposed to

View File

@ -1,7 +1,7 @@
From 4af24949b94eda84b4b74d77b9164cf3fe0eccf9 Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Mon, 12 Jun 2023 18:18:29 -0300
Subject: [PATCH 35/47] clock: Add read-only UDS port for monitoring.
Subject: [PATCH 35/48] clock: Add read-only UDS port for monitoring.
Add a second UDS port to allow untrusted applications to monitor ptp4l.
On this "read-only" UDS port disable non-GET actions and forwarding.

View File

@ -1,7 +1,7 @@
From 019f50868bc4300c591025d364898035ea9817b9 Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Mon, 12 Jun 2023 18:20:50 -0300
Subject: [PATCH 36/47] Rename management ID macros.
Subject: [PATCH 36/48] Rename management ID macros.
The management ID macros are prefixed with TLV. This is confusing,
because the true TLV tags have the same prefix. Make the code more

View File

@ -1,7 +1,7 @@
From 2a6ddfe1b9700ce8e0c62da8a7a4f2edcd4e1cad Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Sun, 18 Jun 2023 20:58:34 -0300
Subject: [PATCH 37/47] Enhance phc2sys to accept multiple ptp4l inputs
Subject: [PATCH 37/48] Enhance phc2sys to accept multiple ptp4l inputs
A new configuration option called ha_enabled was created. When it is set 1
multiple ptp4l inputs are accepted and the high availability algorithms

View File

@ -1,7 +1,7 @@
From 142b30b1f996a5bd48f0edc9b5fb0f51af0b97fd Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Tue, 4 Jul 2023 17:27:50 -0300
Subject: [PATCH 38/47] Best source selection algorithm
Subject: [PATCH 38/48] Best source selection algorithm
An algorithm to select the best available clock and use it
as clock source.

View File

@ -1,7 +1,7 @@
From c61a91f5da1c07a783b0922e713c9f1d32adfa80 Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Sat, 8 Jul 2023 19:02:50 -0300
Subject: [PATCH 39/47] Select best source clock after state changes
Subject: [PATCH 39/48] Select best source clock after state changes
During operation, the clock states might change and require a new clock
to be selected. For example, the local clock class of the current active

View File

@ -1,7 +1,7 @@
From 7d5061d971a8abc2ba8443edccde38e9a7a6f0ce Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Wed, 26 Jul 2023 15:08:15 -0300
Subject: [PATCH 40/47] Forced lock a clock source in configuration
Subject: [PATCH 40/48] Forced lock a clock source in configuration
To help on maintenance and debuging tasks was implemented a configuration
to forced lock to a single clock. It disables the automatic clock

View File

@ -1,7 +1,7 @@
From fce993dd36e481aace337a62ff81331cd2411bec Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Thu, 27 Jul 2023 14:22:47 -0300
Subject: [PATCH 41/47] HA phc2sys com socket
Subject: [PATCH 41/48] HA phc2sys com socket
A new communication path was created to retrieve status and to control
the high availability algorithm.

View File

@ -1,7 +1,7 @@
From e77783a9873baeeda277cfa59059021ce121a693 Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Fri, 4 Aug 2023 15:44:12 -0300
Subject: [PATCH 42/47] Commands 'enable lock' and 'disable lock.
Subject: [PATCH 42/48] Commands 'enable lock' and 'disable lock.
The 'enable lock' command is used to lock to a single clock
source and disable the HA clock selection algorithm. The

View File

@ -1,7 +1,7 @@
From 27b5c6afff470053b30ade14537be43f1c1c376d Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Fri, 4 Aug 2023 19:01:57 -0300
Subject: [PATCH 43/47] Commands 'enable source' and 'disable source'.
Subject: [PATCH 43/48] Commands 'enable source' and 'disable source'.
These commands controls the list of clocks available to clock
selection algorithm.

View File

@ -1,7 +1,7 @@
From 2d40cc7cf52bbf054856c34902e4bda9f13ebb79 Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Mon, 7 Aug 2023 14:55:12 -0300
Subject: [PATCH 44/47] Stream type phc2sys com socket
Subject: [PATCH 44/48] Stream type phc2sys com socket
The type of the socket was changed from datagram to stream.

View File

@ -1,7 +1,7 @@
From 2896553d6dfa975102cba4cc45105b000ec0ae52 Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Tue, 8 Aug 2023 13:10:50 -0300
Subject: [PATCH 45/47] Functions starts_with and str_at_column
Subject: [PATCH 45/48] Functions starts_with and str_at_column
Renaming starts_with and str_at_column functions to match ptp4l code
style.

View File

@ -1,7 +1,7 @@
From f480fb54182da36baeb35bac90154abafcaf854a Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Tue, 8 Aug 2023 14:06:55 -0300
Subject: [PATCH 46/47] Robustness improvements to phc2sys socket
Subject: [PATCH 46/48] Robustness improvements to phc2sys socket
When phc2sys abnormally exits the socket file might remain created.
To avoid error when phc2sys is relaunched, the exixting file is

View File

@ -1,7 +1,7 @@
From c5e1599748877f16bfd1dea6910f6b8b57be7ddd Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Mon, 7 Aug 2023 18:19:37 -0300
Subject: [PATCH 47/47] phc2sys without -w option.
Subject: [PATCH 47/48] phc2sys without -w option.
Fix bad clock and pmc initialization when -w command argument
is not provided.

View File

@ -0,0 +1,145 @@
From c9a2a5398bace2f000ecc5ae6185b331cefa3a2c Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Mon, 21 Aug 2023 14:28:20 -0300
Subject: [PATCH] HA domain number
Support multiple domain numbers for each uds socket used in HA phc2sys.
The ha_domainNumber option is an interface setting to configure the domain
number for an uds socket. It ranges from 0 to 127. If the ha_domainNumber
is not configured for a given interface, the global domainNumber setting
is used.
Test plan:
PASS: Verify use of ha_domainNumber configuration in manual configuration.
Failure path: domain number match
PASS: Verify that phc2sys fails to start if domain number
doesn't match ptp4l instance parameter.
Regression:
PASS: Verify use of global domain number in manual configuration.
PASS: Verify auto configuration uses global domain number.
Signed-off-by: Andre Mauricio Zelak <andre.zelak@windriver.com>
---
config.c | 16 +++++++++++++++-
config.h | 3 +++
phc2sys.c | 11 +++++++++--
pmc_agent.c | 6 +++---
pmc_agent.h | 3 ++-
5 files changed, 32 insertions(+), 7 deletions(-)
diff --git a/config.c b/config.c
index 6a1bfb4..1b7ed51 100644
--- a/config.c
+++ b/config.c
@@ -250,8 +250,9 @@ struct config_item config_tab[] = {
GLOB_ITEM_INT("G.8275.defaultDS.localPriority", 128, 1, UINT8_MAX),
PORT_ITEM_INT("G.8275.portDS.localPriority", 128, 1, UINT8_MAX),
GLOB_ITEM_INT("gmCapable", 1, 0, 1),
- GLOB_ITEM_INT("ha_frequencyTraceable", 0, 0, 1),
+ PORT_ITEM_INT("ha_domainNumber", 0, 0, 127),
GLOB_ITEM_INT("ha_enabled", 0, 0, 1),
+ GLOB_ITEM_INT("ha_frequencyTraceable", 0, 0, 1),
GLOB_ITEM_INT("ha_min_clockAccuracy", 0xfe, 0, 0xff),
GLOB_ITEM_INT("ha_min_gm_ClockClass", 135, 6, 255),
GLOB_ITEM_INT("ha_min_local_clockClass", 135, 6, 255),
@@ -1022,6 +1023,19 @@ unsigned int config_get_interfaces(struct config *cfg, char *interfaces[], unsig
return counter;
}
+bool config_is_option_set(struct config *cfg, const char *section,
+ const char *option)
+{
+ struct config_item *ci;
+ if (section) {
+ ci = config_section_item(cfg, section, option);
+ } else {
+ ci = config_global_item(cfg, option);
+ }
+ fprintf(stderr, "section: %s option: %s ci:%p\n", section, option, ci);
+ return !!ci;
+}
+
int config_harmonize_onestep(struct config *cfg)
{
enum timestamp_type tstype = config_get_int(cfg, NULL, "time_stamping");
diff --git a/config.h b/config.h
index 645fb42..f074736 100644
--- a/config.h
+++ b/config.h
@@ -66,6 +66,9 @@ char *config_get_string(struct config *cfg, const char *section,
unsigned int config_get_interfaces(struct config *cfg, char *interfaces[], unsigned int max);
+bool config_is_option_set(struct config *cfg, const char *section,
+ const char *option);
+
int config_harmonize_onestep(struct config *cfg);
static inline struct option *config_long_options(struct config *cfg)
diff --git a/phc2sys.c b/phc2sys.c
index 065b7f0..be7b07a 100644
--- a/phc2sys.c
+++ b/phc2sys.c
@@ -2226,7 +2226,8 @@ int main(int argc, char *argv[])
getpid());
if (autocfg) {
- if (init_pmc_node(cfg, node, uds_local,
+ domain_number = config_get_int(cfg, NULL, "domainNumber");
+ if (init_pmc_node(cfg, node, uds_local, domain_number,
phc2sys_recv_subscribed, &priv))
goto end;
if (auto_init_ports(&priv, rt) < 0)
@@ -2305,7 +2306,13 @@ int main(int argc, char *argv[])
snprintf(uds_local, sizeof(uds_local), "/var/run/phc2sys.%d.%s",
getpid(), src->device);
- if (init_pmc_node(cfg, src->node, uds_local,
+ if (config_is_option_set(cfg, src->device, "ha_domainNumber")) {
+ domain_number = config_get_int(cfg, src->device,
+ "ha_domainNumber");
+ } else {
+ domain_number = config_get_int(cfg, NULL, "domainNumber");
+ }
+ if (init_pmc_node(cfg, src->node, uds_local, domain_number,
phc2sys_recv_subscribed, &priv))
goto end;
diff --git a/pmc_agent.c b/pmc_agent.c
index af15710..92fc14c 100644
--- a/pmc_agent.c
+++ b/pmc_agent.c
@@ -220,10 +220,10 @@ void run_pmc_events(struct pmc_agent *node)
}
int init_pmc_node(struct config *cfg, struct pmc_agent *node, const char *uds,
- pmc_node_recv_subscribed_t *recv_subscribed, void *context)
+ int domain_number, pmc_node_recv_subscribed_t *recv_subscribed,
+ void *context)
{
- node->pmc = pmc_create(cfg, TRANS_UDS, uds, 0,
- config_get_int(cfg, NULL, "domainNumber"),
+ node->pmc = pmc_create(cfg, TRANS_UDS, uds, 0, domain_number,
config_get_int(cfg, NULL, "transportSpecific") << 4, 1);
if (!node->pmc) {
pr_err("failed to create pmc");
diff --git a/pmc_agent.h b/pmc_agent.h
index 8207c46..38951b1 100644
--- a/pmc_agent.h
+++ b/pmc_agent.h
@@ -56,7 +56,8 @@ struct pmc_agent {
};
int init_pmc_node(struct config *cfg, struct pmc_agent *agent, const char *uds,
- pmc_node_recv_subscribed_t *recv_subscribed, void *context);
+ int domain_number, pmc_node_recv_subscribed_t *recv_subscribed,
+ void *context);
int run_pmc_wait_sync(struct pmc_agent *agent, int timeout);
void run_pmc_events(struct pmc_agent *agent);
--
2.25.1

View File

@ -44,4 +44,5 @@
0044-Stream-type-phc2sys-com-socket.patch
0045-Functions-starts_with-and-str_at_column.patch
0046-Robustness-improvements-to-phc2sys-socket.patch
0047-phc2sys-without-w-option.patch
0047-phc2sys-without-w-option.patch
0048-HA-domain-number.patch