- Add support in the pmc tool - Add the TLV in port module. Signed-off-by: Erez Geva <erez.geva....@siemens.com> --- pmc.c | 5 +++++ pmc_common.c | 2 ++ port.c | 6 ++++++ tlv.h | 1 + 4 files changed, 14 insertions(+)
diff --git a/pmc.c b/pmc.c index a767c8a..00d6014 100644 --- a/pmc.c +++ b/pmc.c @@ -335,6 +335,11 @@ static void pmc_show(struct ptp_message *msg, FILE *fp) fprintf(fp, "TIMESCALE_PROPERTIES " IFMT "ptpTimescale %d", mtd->val & PTP_TIMESCALE ? 1 : 0); break; + case TLV_MASTER_ONLY: + mtd = (struct management_tlv_datum *) mgt->data; + fprintf(fp, "MASTER_ONLY " + IFMT "masterOnly %d", mtd->val); + break; case TLV_TIME_STATUS_NP: tsn = (struct time_status_np *) mgt->data; fprintf(fp, "TIME_STATUS_NP " diff --git a/pmc_common.c b/pmc_common.c index c5cd992..2ab32d4 100644 --- a/pmc_common.c +++ b/pmc_common.c @@ -106,6 +106,7 @@ struct management_id idtab[] = { { "ALTERNATE_TIME_OFFSET_PROPERTIES", TLV_ALTERNATE_TIME_OFFSET_PROPERTIES, not_supported }, { "TRANSPARENT_CLOCK_DEFAULT_DATA_SET", TLV_TRANSPARENT_CLOCK_DEFAULT_DATA_SET, not_supported }, { "PRIMARY_DOMAIN", TLV_PRIMARY_DOMAIN, not_supported }, + { "MASTER_ONLY", TLV_MASTER_ONLY, do_get_action }, { "TIME_STATUS_NP", TLV_TIME_STATUS_NP, do_get_action }, { "GRANDMASTER_SETTINGS_NP", TLV_GRANDMASTER_SETTINGS_NP, do_set_action }, { "SUBSCRIBE_EVENTS_NP", TLV_SUBSCRIBE_EVENTS_NP, do_set_action }, @@ -510,6 +511,7 @@ static int pmc_tlv_datalen(struct pmc *pmc, int id) case TLV_CLOCK_ACCURACY: case TLV_TRACEABILITY_PROPERTIES: case TLV_TIMESCALE_PROPERTIES: + case TLV_MASTER_ONLY: len += sizeof(struct management_tlv_datum); break; case TLV_TIME_STATUS_NP: diff --git a/port.c b/port.c index 10bb9e1..9c2857f 100644 --- a/port.c +++ b/port.c @@ -937,6 +937,11 @@ static int port_management_fill_response(struct port *target, mtd->val = target->logMinPdelayReqInterval; datalen = sizeof(*mtd); break; + case TLV_MASTER_ONLY: + mtd = (struct management_tlv_datum *) tlv->data; + mtd->val = target->master_only; + datalen = sizeof(*mtd); + break; case TLV_PORT_DATA_SET_NP: pdsnp = (struct port_ds_np *) tlv->data; pdsnp->neighborPropDelayThresh = target->neighborPropDelayThresh; @@ -2901,6 +2906,7 @@ int port_manage(struct port *p, struct port *ingress, struct ptp_message *msg) case TLV_TRANSPARENT_CLOCK_PORT_DATA_SET: case TLV_DELAY_MECHANISM: case TLV_LOG_MIN_PDELAY_REQ_INTERVAL: + case TLV_MASTER_ONLY: port_management_send_error(p, ingress, msg, TLV_NOT_SUPPORTED); break; default: diff --git a/tlv.h b/tlv.h index a205119..2182fa8 100644 --- a/tlv.h +++ b/tlv.h @@ -93,6 +93,7 @@ enum management_action { #define TLV_ALTERNATE_TIME_OFFSET_MAX_KEY 0x2020 #define TLV_ALTERNATE_TIME_OFFSET_PROPERTIES 0x2021 #define TLV_EXTERNAL_PORT_CONFIGURATION_ENABLED 0x3000 +#define TLV_MASTER_ONLY 0x3001 #define TLV_HOLDOVER_UPGRADE_ENABLE 0x3002 #define TLV_TRANSPARENT_CLOCK_DEFAULT_DATA_SET 0x4000 #define TLV_PRIMARY_DOMAIN 0x4002 -- 2.20.1 _______________________________________________ Linuxptp-devel mailing list Linuxptp-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxptp-devel