From b4d3b4126fbd02c486bdd9327b277fda8e959ca7 Mon Sep 17 00:00:00 2001 From: Richard Cochran Date: Sat, 4 Apr 2020 13:03:33 -0700 Subject: [PATCH] tlv: Update macro definitions. The 2019 version of 1588 known as v2.1 introduces new TLV type and management IDs. This patch adds the new definitions. Signed-off-by: Richard Cochran --- tlv.c | 28 ++++++++++++++++++++++++++-- tlv.h | 19 ++++++++++++++++++- 2 files changed, 44 insertions(+), 3 deletions(-) diff --git a/tlv.c b/tlv.c index 6ab54a5..0cf6d5c 100644 --- a/tlv.c +++ b/tlv.c @@ -728,7 +728,7 @@ int tlv_post_recv(struct tlv_extra *extra) } break; case TLV_ALTERNATE_TIME_OFFSET_INDICATOR: - case TLV_AUTHENTICATION: + case TLV_AUTHENTICATION_2008: case TLV_AUTHENTICATION_CHALLENGE: case TLV_SECURITY_ASSOCIATION_UPDATE: case TLV_CUM_FREQ_SCALE_FACTOR_OFFSET: @@ -737,6 +737,18 @@ int tlv_post_recv(struct tlv_extra *extra) case TLV_PTPMON_RESP: result = nsm_resp_post_recv(extra); break; + case TLV_ORGANIZATION_EXTENSION_PROPAGATE: + case TLV_ENHANCED_ACCURACY_METRICS: + case TLV_ORGANIZATION_EXTENSION_DO_NOT_PROPAGATE: + case TLV_L1_SYNC: + case TLV_PORT_COMMUNICATION_AVAILABILITY: + case TLV_PROTOCOL_ADDRESS: + case TLV_SLAVE_RX_SYNC_TIMING_DATA: + case TLV_SLAVE_RX_SYNC_COMPUTED_DATA: + case TLV_SLAVE_TX_EVENT_TIMESTAMPS: + case TLV_CUMULATIVE_RATE_RATIO: + case TLV_PAD: + case TLV_AUTHENTICATION: default: break; } @@ -773,7 +785,7 @@ void tlv_pre_send(struct TLV *tlv, struct tlv_extra *extra) break; case TLV_PATH_TRACE: case TLV_ALTERNATE_TIME_OFFSET_INDICATOR: - case TLV_AUTHENTICATION: + case TLV_AUTHENTICATION_2008: case TLV_AUTHENTICATION_CHALLENGE: case TLV_SECURITY_ASSOCIATION_UPDATE: case TLV_CUM_FREQ_SCALE_FACTOR_OFFSET: @@ -782,6 +794,18 @@ void tlv_pre_send(struct TLV *tlv, struct tlv_extra *extra) case TLV_PTPMON_RESP: nsm_resp_pre_send(extra); break; + case TLV_ORGANIZATION_EXTENSION_PROPAGATE: + case TLV_ENHANCED_ACCURACY_METRICS: + case TLV_ORGANIZATION_EXTENSION_DO_NOT_PROPAGATE: + case TLV_L1_SYNC: + case TLV_PORT_COMMUNICATION_AVAILABILITY: + case TLV_PROTOCOL_ADDRESS: + case TLV_SLAVE_RX_SYNC_TIMING_DATA: + case TLV_SLAVE_RX_SYNC_COMPUTED_DATA: + case TLV_SLAVE_TX_EVENT_TIMESTAMPS: + case TLV_CUMULATIVE_RATE_RATIO: + case TLV_PAD: + case TLV_AUTHENTICATION: default: break; } diff --git a/tlv.h b/tlv.h index 75aa1de..f46a3b8 100644 --- a/tlv.h +++ b/tlv.h @@ -35,12 +35,24 @@ #define TLV_ACKNOWLEDGE_CANCEL_UNICAST_TRANSMISSION 0x0007 #define TLV_PATH_TRACE 0x0008 #define TLV_ALTERNATE_TIME_OFFSET_INDICATOR 0x0009 -#define TLV_AUTHENTICATION 0x2000 +#define TLV_AUTHENTICATION_2008 0x2000 #define TLV_AUTHENTICATION_CHALLENGE 0x2001 #define TLV_SECURITY_ASSOCIATION_UPDATE 0x2002 #define TLV_CUM_FREQ_SCALE_FACTOR_OFFSET 0x2003 #define TLV_PTPMON_REQ 0x21FE #define TLV_PTPMON_RESP 0x21FF +#define TLV_ORGANIZATION_EXTENSION_PROPAGATE 0x4000 +#define TLV_ENHANCED_ACCURACY_METRICS 0x4001 +#define TLV_ORGANIZATION_EXTENSION_DO_NOT_PROPAGATE 0x8000 +#define TLV_L1_SYNC 0x8001 +#define TLV_PORT_COMMUNICATION_AVAILABILITY 0x8002 +#define TLV_PROTOCOL_ADDRESS 0x8003 +#define TLV_SLAVE_RX_SYNC_TIMING_DATA 0x8004 +#define TLV_SLAVE_RX_SYNC_COMPUTED_DATA 0x8005 +#define TLV_SLAVE_TX_EVENT_TIMESTAMPS 0x8006 +#define TLV_CUMULATIVE_RATE_RATIO 0x8007 +#define TLV_PAD 0x8008 +#define TLV_AUTHENTICATION 0x8009 enum management_action { GET, @@ -79,6 +91,8 @@ enum management_action { #define TLV_ALTERNATE_TIME_OFFSET_NAME 0x201F #define TLV_ALTERNATE_TIME_OFFSET_MAX_KEY 0x2020 #define TLV_ALTERNATE_TIME_OFFSET_PROPERTIES 0x2021 +#define TLV_EXTERNAL_PORT_CONFIGURATION_ENABLED 0x3000 +#define TLV_HOLDOVER_UPGRADE_ENABLE 0x3002 #define TLV_TRANSPARENT_CLOCK_DEFAULT_DATA_SET 0x4000 #define TLV_PRIMARY_DOMAIN 0x4002 #define TLV_TIME_STATUS_NP 0xC000 @@ -101,6 +115,9 @@ enum management_action { #define TLV_UNICAST_MASTER_MAX_TABLE_SIZE 0x2019 #define TLV_ACCEPTABLE_MASTER_TABLE_ENABLED 0x201B #define TLV_ALTERNATE_MASTER 0x201D +#define TLV_MASTER_ONLY 0x3001 +#define TLV_EXT_PORT_CONFIG_PORT_DATA_SET 0x3003 +#define TLV_SLAVE_EVENT_MONITORING 0x3004 // TODO - proposed value, missing in 1588 v2.1 #define TLV_TRANSPARENT_CLOCK_PORT_DATA_SET 0x4001 #define TLV_DELAY_MECHANISM 0x6000 #define TLV_LOG_MIN_PDELAY_REQ_INTERVAL 0x6001