- Add support in the pmc tool
- Add the TLV in port module.
Signed-off-by: Erez Geva <[email protected]>
---
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel