Commit e3fd1707 authored by Jukka Rissanen's avatar Jukka Rissanen Committed by Maureen Helm
Browse files

net: gptp: Allow user to tweak priority1 and priority2 values



Instead of hardcoding the priority1 and priority2 values used
in BMCA, let the user tweak the values via Kconfig.

Fixes #28151

Signed-off-by: default avatarJukka Rissanen <jukka.rissanen@linux.intel.com>
parent 5d473dc0
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -34,7 +34,12 @@ extern "C" {

#define GPTP_PRIORITY1_NON_GM_CAPABLE      255
#define GPTP_PRIORITY1_GM_CAPABLE          248

#if defined(CONFIG_NET_GPTP_BMCA_PRIORITY2)
#define GPTP_PRIORITY2_DEFAULT             CONFIG_NET_GPTP_BMCA_PRIORITY2
#else
#define GPTP_PRIORITY2_DEFAULT             248
#endif

/** @endcond */

+25 −0
Original line number Diff line number Diff line
@@ -195,6 +195,31 @@ config NET_GPTP_PATH_TRACE_ELEMENTS
	  Announce message. Each array element takes 8 bytes. If this value
	  is set to 8, then 8 * 8 = 64 bytes of memory is used.

config NET_GPTP_BMCA_PRIORITY1
	int "BMCA priority1 value"
	default 248 if NET_GPTP_GM_CAPABLE
	default 255
	range 0 255
	help
	  The priority1 attribute of the local clock. It is used in the
	  Best Master Clock selection Algorithm (BMCA), lower values take
	  precedence. The default value is 255 if the device is non grand
	  master capable, and 248 if it is GM capable.
	  See Chapter 8.6.2.1 of IEEE 802.1AS for a more detailed description
	  of priority1. Note that if the system	is non GM capable, then the
	  value 255 is used always and this setting is ignored.

config NET_GPTP_BMCA_PRIORITY2
	int "BMCA priority2 value"
	default 248
	range 0 255
	help
	  The priority2 attribute of the local clock. It is used in the BMCA
	  (Best Master Clock selection Algorithm), lower values take
	  precedence. The default value is 248.
	  See Chapter 8.6.2.5 of IEEE 802.1AS for a more detailed description
	  of priority2.

config NET_GPTP_STATISTICS
	bool "Collect gPTP statistics"
	help
+9 −1
Original line number Diff line number Diff line
@@ -382,7 +382,15 @@ static void gptp_init_clock_ds(void)
		GPTP_OFFSET_SCALED_LOG_VAR_UNKNOWN;

	if (default_ds->gm_capable) {
		/* The priority1 value cannot be 255 for GM capable
		 * system.
		 */
		if (CONFIG_NET_GPTP_BMCA_PRIORITY1 ==
		    GPTP_PRIORITY1_NON_GM_CAPABLE) {
			default_ds->priority1 = GPTP_PRIORITY1_GM_CAPABLE;
		} else {
			default_ds->priority1 = CONFIG_NET_GPTP_BMCA_PRIORITY1;
		}
	} else {
		default_ds->priority1 = GPTP_PRIORITY1_NON_GM_CAPABLE;
	}