- 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

Reply via email to