mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2026-05-03 06:47:04 -04:00
milan-avb: gptp: handle MANAGEMENT_ERROR_STATUS TLV as stale-data signal
This commit is contained in:
parent
09b3f0dc34
commit
4da6e39281
2 changed files with 13 additions and 1 deletions
|
|
@ -588,8 +588,19 @@ static void on_ptp_mgmt_data(void *data, int fd, uint32_t mask)
|
|||
continue;
|
||||
}
|
||||
|
||||
if (ntohs(res.tlv_type_be) == PTP_TLV_TYPE_MGMT_ERROR_STATUS) {
|
||||
pw_log_debug("PTP management error TLV for id=%04x seq=%u",
|
||||
mgmt_id, seq);
|
||||
gptp->req_in_flight = false;
|
||||
gptp->consecutive_timeouts++;
|
||||
if (gptp->consecutive_timeouts >= PTP_LOST_TIMEOUT_THRESHOLD) {
|
||||
gptp_invalidate_state(gptp);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
if (ntohs(res.tlv_type_be) != PTP_TLV_TYPE_MGMT) {
|
||||
pw_log_warn("PTP management returned tlv type %d, expected management",
|
||||
pw_log_debug("PTP management returned unexpected tlv type %d",
|
||||
ntohs(res.tlv_type_be));
|
||||
gptp->req_in_flight = false;
|
||||
continue;
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ extern "C" {
|
|||
#define PTP_MGMT_ACTION_GET 0
|
||||
#define PTP_MGMT_ACTION_RESPONSE 2
|
||||
#define PTP_TLV_TYPE_MGMT 0x0001
|
||||
#define PTP_TLV_TYPE_MGMT_ERROR_STATUS 0x0002
|
||||
#define PTP_MGMT_ID_DEFAULT_DATA_SET 0x2000
|
||||
#define PTP_MGMT_ID_CURRENT_DATA_SET 0x2001
|
||||
#define PTP_MGMT_ID_PARENT_DATA_SET 0x2002
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue