According to IEEE 1588 The slave only flag in the SLAVE_ONLY TLV
is bit 0 and not bit 1 as in the DEFAULT_DATA_SET TLV.
To retain backward compatibility and as bit 1 in SLAVE_ONLY
is not used anyway. Read and set both bits with same value.
---
clock.c | 2 +-
pmc.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/clock.c b/clock.c
index f88df58..410a5df 100644
--- a/clock.c
+++ b/clock.c
@@ -404,7 +404,7 @@ static int clock_management_fill_response(struct clock *c,
struct port *p,
break;
case TLV_SLAVE_ONLY:
mtd = (struct management_tlv_datum *) tlv->data;
- mtd->val = c->dds.flags & DDS_SLAVE_ONLY;
+ mtd->val = c->dds.flags & DDS_SLAVE_ONLY ? 0x3 : 0;
datalen = sizeof(*mtd);
break;
case TLV_CLOCK_ACCURACY:
diff --git a/pmc.c b/pmc.c
index 1e569b5..680c244 100644
--- a/pmc.c
+++ b/pmc.c
@@ -315,7 +315,7 @@ static void pmc_show(struct ptp_message *msg, FILE *fp)
case TLV_SLAVE_ONLY:
mtd = (struct management_tlv_datum *) mgt->data;
fprintf(fp, "SLAVE_ONLY "
- IFMT "slaveOnly %d", mtd->val & DDS_SLAVE_ONLY ? 1 : 0);
+ IFMT "slaveOnly %d", mtd->val > 0 ? 1 : 0);
break;
case TLV_CLOCK_ACCURACY:
mtd = (struct management_tlv_datum *) mgt->data;
--
2.20.1
_______________________________________________
Linuxptp-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel