From: Izunna Otiji <[email protected]>
Signed-off-by: Izunna Otiji <[email protected]>
---
clock.c | 12 ++++++++++++
pmc.c | 5 +++++
pmc_common.c | 3 +++
tlv.h | 1 +
4 files changed, 21 insertions(+)
diff --git a/clock.c b/clock.c
index 05b5f31..6d9c97d 100644
--- a/clock.c
+++ b/clock.c
@@ -462,6 +462,11 @@ static int clock_management_fill_response(struct clock *c,
struct port *p,
mtd->val = c->local_sync_uncertain;
datalen = sizeof(*mtd);
break;
+ case MID_MAX_STEPS_REMOVED_NP:
+ mtd = (struct management_tlv_datum *) tlv->data;
+ mtd->val = c->max_steps_removed;
+ datalen = sizeof(*mtd);
+ break;
default:
/* The caller should *not* respond to this message. */
tlv_extra_recycle(extra);
@@ -564,6 +569,12 @@ static int clock_management_set(struct clock *c, struct
port *p,
break;
}
break;
+ case MID_MAX_STEPS_REMOVED_NP:
+ mtd = (struct management_tlv_datum *) tlv->data;
+ c->max_steps_removed = mtd->val;
+ *changed = 1;
+ respond = 1;
+ break;
}
if (respond && !clock_management_get_response(c, p, id, req))
pr_err("failed to send management set response");
@@ -1542,6 +1553,7 @@ int clock_manage(struct clock *c, struct port *p, struct
ptp_message *msg)
case MID_GRANDMASTER_SETTINGS_NP:
case MID_SUBSCRIBE_EVENTS_NP:
case MID_SYNCHRONIZATION_UNCERTAIN_NP:
+ case MID_MAX_STEPS_REMOVED_NP:
clock_management_send_error(p, msg, MID_NOT_SUPPORTED);
break;
default:
diff --git a/pmc.c b/pmc.c
index e218ca4..b498da5 100644
--- a/pmc.c
+++ b/pmc.c
@@ -426,6 +426,11 @@ static void pmc_show(struct ptp_message *msg, FILE *fp)
fprintf(fp, "SYNCHRONIZATION_UNCERTAIN_NP "
IFMT "uncertain %hhu", mtd->val);
break;
+ case MID_MAX_STEPS_REMOVED_NP:
+ mtd = (struct management_tlv_datum *) mgt->data;
+ fprintf(fp, "MAX_STEPS_REMOVED_NP "
+ IFMT "maxStepsRemoved %d", mtd->val);
+ break;
case MID_PORT_DATA_SET:
p = (struct portDS *) mgt->data;
if (p->portState > PS_SLAVE) {
diff --git a/pmc_common.c b/pmc_common.c
index bc01903..5a93eb4 100644
--- a/pmc_common.c
+++ b/pmc_common.c
@@ -130,6 +130,7 @@ struct management_id idtab[] = {
{ "GRANDMASTER_SETTINGS_NP", MID_GRANDMASTER_SETTINGS_NP, do_set_action
},
{ "SUBSCRIBE_EVENTS_NP", MID_SUBSCRIBE_EVENTS_NP, do_set_action },
{ "SYNCHRONIZATION_UNCERTAIN_NP", MID_SYNCHRONIZATION_UNCERTAIN_NP,
do_set_action },
+ { "MAX_STEPS_REMOVED_NP", MID_MAX_STEPS_REMOVED_NP, do_set_action},
/* Port management ID values */
{ "NULL_MANAGEMENT", MID_NULL_MANAGEMENT, null_management },
{ "CLOCK_DESCRIPTION", MID_CLOCK_DESCRIPTION, do_get_action },
@@ -198,6 +199,7 @@ static void do_set_action(struct pmc *pmc, int action, int
index, char *str)
case MID_SLAVE_ONLY:
case MID_ANNOUNCE_RECEIPT_TIMEOUT:
case MID_MASTER_ONLY:
+ case MID_MAX_STEPS_REMOVED_NP:
cnt = sscanf(str, " %*s %*s %hhu", &mtd.val);
if (cnt != 1) {
fprintf(stderr, "%s SET needs 1 value\n",
@@ -540,6 +542,7 @@ static int pmc_tlv_datalen(struct pmc *pmc, int id)
case MID_TIMESCALE_PROPERTIES:
case MID_MASTER_ONLY:
case MID_SYNCHRONIZATION_UNCERTAIN_NP:
+ case MID_MAX_STEPS_REMOVED_NP:
len += sizeof(struct management_tlv_datum);
break;
case MID_TIME_STATUS_NP:
diff --git a/tlv.h b/tlv.h
index 8966696..567a419 100644
--- a/tlv.h
+++ b/tlv.h
@@ -128,6 +128,7 @@ enum management_action {
#define MID_PORT_SERVICE_STATS_NP 0xC007
#define MID_UNICAST_MASTER_TABLE_NP 0xC008
#define MID_PORT_HWCLOCK_NP 0xC009
+#define MID_MAX_STEPS_REMOVED_NP 0xC00A
/* Management error ID values */
#define MID_RESPONSE_TOO_BIG 0x0001
--
2.37.2
_______________________________________________
Linuxptp-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel