Comment 0 for bug 2066897

Revision history for this message
Tony Duan (yifeid) wrote :

* Introduction
DPLL pin was exposed in upstream and backed into Bluefield kernel. But since there are some other value was not needed in Bluefield kernel, they are not in current Bluefield kernel. This may cause the value of IFLA_DPLL_PIN value be not same as upstream and break user application.

* Explain the bug(s)
IFLA_DPLL_PIN is defined in if_link.h as an enum element. The following elements before IFLA_DPLL_PIN are not needed by Bluefield kernel.
    IFLA_GRO_MAX_SIZE,
    IFLA_TSO_MAX_SIZE,
    IFLA_TSO_MAX_SEGS,
    IFLA_ALLMULTI, /* Allmulti count: > 0 means acts ALLMULTI */
    IFLA_DEVLINK_PORT,
    IFLA_GSO_IPV4_MAX_SIZE,
    IFLA_GRO_IPV4_MAX_SIZE,
These missing elements will cause the value of IFLA_DPLL_PIN to be 58 in Bluefield kernel while it is 65 in upstream. This inconsistent value may break userspace applications.

~/synced/build# ./synced -i p0 -t 2 -v
Config file does not exist at default path (/etc/synced/synced.conf), using default values.
--------------------------------------------------------------
SyncED v1.1.20.g0c2006cfeba5-1

Config file: /etc/synced/synced.conf
Log file: /var/log/synced.log
Log file size limit: 500 MB
Wait to restore time: 2 seconds
--------------------------------------------------------------
NOTICE [18/05/2024 00:19:15.078629]:
NOTICE [18/05/2024 00:19:15.078717]: SyncED is initializing...
NOTICE [18/05/2024 00:19:15.078728]:
NOTICE [18/05/2024 00:19:15.078739]: Adding Provider:
NOTICE [18/05/2024 00:19:15.078745]: Name: 'p0'
NOTICE [18/05/2024 00:19:15.078751]: Priority: 1
NOTICE [18/05/2024 00:19:15.078757]: Backend: DPLL
no IFLA_DPLL_PIN

* Brief explanation of fixes

Becasue these missing elements are not needed in Bluefield kernel. A possible fix is to set the IFLA_DPLL_PIN to 65.

* How to test
~/synced/build# ./synced -i p0 -t 2 -v
Config file does not exist at default path (/etc/synced/synced.conf), using default values.
--------------------------------------------------------------
SyncED v1.1.20.g0c2006cfeba5-1

Config file: /etc/synced/synced.conf
Log file: /var/log/synced.log
Log file size limit: 500 MB
Wait to restore time: 2 seconds
--------------------------------------------------------------
NOTICE [21/05/2024 10:07:29.097788]:
NOTICE [21/05/2024 10:07:29.098014]: SyncED is initializing...
NOTICE [21/05/2024 10:07:29.098036]:
NOTICE [21/05/2024 10:07:29.098050]: Adding Provider:
NOTICE [21/05/2024 10:07:29.098068]: Name: 'p0'
NOTICE [21/05/2024 10:07:29.098076]: Priority: 1
NOTICE [21/05/2024 10:07:29.098082]: Backend: DPLL
NOTICE [21/05/2024 10:07:29.098236]: DPLL pin ID: 0
NOTICE [21/05/2024 10:07:29.098375]: DPLL device ID: 0
NOTICE [21/05/2024 10:07:29.138093]: network_option: 1
NOTICE [21/05/2024 10:07:29.138139]: local_clock_QL: QL_EEC1 [1]
NOTICE [21/05/2024 10:07:29.138149]: local_ssm_code: 0xb
NOTICE [21/05/2024 10:07:29.138156]: local_enhanced_ssm_code: 0xff
NOTICE [21/05/2024 10:07:29.138162]: local_clock_ID: 0x48b02dfffea60fdc
NOTICE [21/05/2024 10:07:29.138343]: DPLL pin ID: 0
NOTICE [21/05/2024 10:07:29.138495]: DPLL device ID: 0
NOTICE [21/05/2024 10:07:29.138585]: Adding it to Group #0
NOTICE [21/05/2024 10:07:29.138809]:
NOTICE [21/05/2024 10:07:29.138833]: Active groups:
NOTICE [21/05/2024 10:07:29.138840]: SyncE Group #0:
NOTICE [21/05/2024 10:07:29.138847]: network_option = 1
NOTICE [21/05/2024 10:07:29.138854]: local_clock_QL = QL_EEC1 [1]
NOTICE [21/05/2024 10:07:29.138861]: local_clock_ID = 0x48b02dfffea60fdc
NOTICE [21/05/2024 10:07:29.138867]: local_clock_interface = p0
NOTICE [21/05/2024 10:07:29.138873]: SyncE Provider Interfaces =
NOTICE [21/05/2024 10:07:29.138879]: p0 [Priority 1]
NOTICE [21/05/2024 10:07:29.138885]:
NOTICE [21/05/2024 10:07:29.138977]: Group #0: The device is in FREE_RUNNING mode.
INFO [21/05/2024 10:07:29.139384]: SyncE Group #0: is in FREE_RUNNING mode.
INFO [21/05/2024 10:07:30.139749]: SyncE Group #0: is in FREE_RUNNING mode.
INFO [21/05/2024 10:07:31.140004]: SyncE Group #0: is in FREE_RUNNING mode.
INFO [21/05/2024 10:07:32.140266]: SyncE Group #0: is in FREE_RUNNING mode.
INFO [21/05/2024 10:07:33.140534]: SyncE Group #0: is in FREE_RUNNING mode.
CRITICAL [21/05/2024 10:07:34.139681]: Group #0: Provider p0: ESMC Signal was lost!
INFO [21/05/2024 10:07:34.139873]: Group #0: Provider p0: source info changed:
    From: QL=QL_DNU [0], source_clock_id=0x0, mixed_eec_eeec=0, partial_chain=0, num_cascaded_e_eecs=0, num_of_cascaded_eecs=0
    To: QL=QL_FAILED [-1], source_clock_id=0x0, mixed_eec_eeec=0, partial_chain=0, num_cascaded_e_eecs=0, num_of_cascaded_eecs=0
INFO [21/05/2024 10:07:34.140985]: SyncE Group #0: is in FREE_RUNNING mode.
INFO [21/05/2024 10:07:35.141271]: SyncE Group #0: is in FREE_RUNNING mode.
INFO [21/05/2024 10:07:36.141562]: SyncE Group #0: is in FREE_RUNNING mode.
INFO [21/05/2024 10:07:37.141902]: SyncE Group #0: is in FREE_RUNNING mode.
INFO [21/05/2024 10:07:38.142153]: SyncE Group #0: is in FREE_RUNNING mode.
INFO [21/05/2024 10:07:39.142517]: SyncE Group #0: is in FREE_RUNNING mode.
INFO [21/05/2024 10:07:40.142782]: SyncE Group #0: is in FREE_RUNNING mode.
INFO [21/05/2024 10:07:41.143077]: SyncE Group #0: is in FREE_RUNNING mode.
INFO [21/05/2024 10:07:42.143442]: SyncE Group #0: is in FREE_RUNNING mode.
INFO [21/05/2024 10:07:43.143723]: SyncE Group #0: is in FREE_RUNNING mode.
INFO [21/05/2024 10:07:44.143999]: SyncE Group #0: is in FREE_RUNNING mode.
INFO [21/05/2024 10:07:45.144268]: SyncE Group #0: is in FREE_RUNNING mode.
INFO [21/05/2024 10:07:46.144591]: SyncE Group #0: is in FREE_RUNNING mode.
INFO [21/05/2024 10:07:47.144844]: SyncE Group #0: is in FREE_RUNNING mode.
INFO [21/05/2024 10:07:48.145125]: SyncE Group #0: is in FREE_RUNNING mode.
INFO [21/05/2024 10:07:49.145747]: SyncE Group #0: is in FREE_RUNNING mode.
INFO [21/05/2024 10:07:50.146040]: SyncE Group #0: is in FREE_RUNNING mode.
^CNOTICE [21/05/2024 10:07:50.510110]: SyncED is cleaning up exiting, please wait...