Signed-off-by: Richard Cochran <richardcoch...@gmail.com>
---
 config.c | 29 +++++------------------------
 config.h |  1 -
 ptp4l.c  | 14 +++++++++++---
 3 files changed, 16 insertions(+), 28 deletions(-)

diff --git a/config.c b/config.c
index 1c4421b..87d944f 100644
--- a/config.c
+++ b/config.c
@@ -126,11 +126,13 @@ struct config_item config_tab[] = {
        GLOB_ITEM_DBL("pi_proportional_norm_max", 0.7, DBL_MIN, 1.0),
        GLOB_ITEM_DBL("pi_proportional_scale", 0.0, 0.0, DBL_MAX),
        GLOB_ITEM_INT("sanity_freq_limit", 200000000, 0, INT_MAX),
+       GLOB_ITEM_INT("slaveOnly", 0, 0, 1),
        GLOB_ITEM_DBL("step_threshold", 0.0, 0.0, DBL_MAX),
        GLOB_ITEM_INT("summary_interval", 0, INT_MIN, INT_MAX),
        PORT_ITEM_INT("syncReceiptTimeout", 0, 0, UINT8_MAX),
        GLOB_ITEM_INT("timeSource", INTERNAL_OSCILLATOR, 0x10, 0xfe),
        PORT_ITEM_INT("transportSpecific", 0, 0, 0x0F),
+       GLOB_ITEM_INT("twoStepFlag", 1, 0, 1),
        GLOB_ITEM_INT("tx_timestamp_timeout", 1, 1, INT_MAX),
        PORT_ITEM_INT("udp_ttl", 1, 1, 255),
        PORT_ITEM_INT("udp6_scope", 0x0E, 0x00, 0x0F),
@@ -382,7 +384,7 @@ static enum parser_result parse_global_setting(const char 
*option,
                                               const char *value,
                                               struct config *cfg)
 {
-       int i, val, cfg_ignore = cfg->cfg_ignore;
+       int i, cfg_ignore = cfg->cfg_ignore;
        unsigned int uval;
        unsigned char mac[MAC_LEN];
        unsigned char oui[OUI_LEN];
@@ -394,27 +396,7 @@ static enum parser_result parse_global_setting(const char 
*option,
        if (r != NOT_PARSED)
                return r;
 
-       if (!strcmp(option, "twoStepFlag")) {
-               r = get_ranged_int(value, &val, 0, 1);
-               if (r != PARSED_OK)
-                       return r;
-               if (val)
-                       dds->flags |=  DDS_TWO_STEP_FLAG;
-               else
-                       dds->flags &= ~DDS_TWO_STEP_FLAG;
-
-       } else if (!strcmp(option, "slaveOnly")) {
-               r = get_ranged_int(value, &val, 0, 1);
-               if (r != PARSED_OK)
-                       return r;
-               if (!(cfg_ignore & CFG_IGNORE_SLAVEONLY)) {
-                       if (val)
-                               dds->flags |=  DDS_SLAVE_ONLY;
-                       else
-                               dds->flags &= ~DDS_SLAVE_ONLY;
-               }
-
-       } else if (!strcmp(option, "priority1")) {
+       if (!strcmp(option, "priority1")) {
                r = get_ranged_uint(value, &uval, 0, UINT8_MAX);
                if (r != PARSED_OK)
                        return r;
@@ -436,8 +418,7 @@ static enum parser_result parse_global_setting(const char 
*option,
                r = get_ranged_uint(value, &uval, 0, UINT8_MAX);
                if (r != PARSED_OK)
                        return r;
-               if (!(cfg_ignore & CFG_IGNORE_SLAVEONLY))
-                       dds->clockQuality.clockClass = uval;
+               dds->clockQuality.clockClass = uval;
 
        } else if (!strcmp(option, "clockAccuracy")) {
                r = get_ranged_uint(value, &uval, 0, UINT8_MAX);
diff --git a/config.h b/config.h
index 0ccb3ea..9100083 100644
--- a/config.h
+++ b/config.h
@@ -45,7 +45,6 @@ struct interface {
 #define CFG_IGNORE_DM           (1 << 0)
 #define CFG_IGNORE_TRANSPORT    (1 << 1)
 #define CFG_IGNORE_TIMESTAMPING (1 << 2)
-#define CFG_IGNORE_SLAVEONLY    (1 << 3)
 
 struct config {
        /* configuration override */
diff --git a/ptp4l.c b/ptp4l.c
index 08f7512..89a659d 100644
--- a/ptp4l.c
+++ b/ptp4l.c
@@ -44,7 +44,6 @@ static struct config cfg_settings = {
 
        .dds = {
                .dds = {
-                       .flags = DDS_TWO_STEP_FLAG,
                        .priority1 = 128,
                        .clockQuality.clockClass = 248,
                        .clockQuality.clockAccuracy = 0xfe,
@@ -187,8 +186,9 @@ int main(int argc, char *argv[])
                        req_phc = optarg;
                        break;
                case 's':
-                       ds->flags |= DDS_SLAVE_ONLY;
-                       *cfg_ignore |= CFG_IGNORE_SLAVEONLY;
+                       if (config_set_int(cfg, "slaveOnly", 1)) {
+                               return -1;
+                       }
                        break;
                case 'l':
                        if (get_arg_val_i(c, optarg, &print_level,
@@ -225,6 +225,14 @@ int main(int argc, char *argv[])
        sk_check_fupsync = config_get_int(cfg, NULL, "check_fup_sync");
        sk_tx_timeout = config_get_int(cfg, NULL, "tx_timestamp_timeout");
 
+       if (config_get_int(cfg, NULL, "slaveOnly")) {
+           ds->flags |= DDS_SLAVE_ONLY;
+           ds->clockQuality.clockClass = 248;
+       }
+       if (config_get_int(cfg, NULL, "twoStepFlag")) {
+           ds->flags |= DDS_TWO_STEP_FLAG;
+       }
+
        if (!config_get_int(cfg, NULL, "gmCapable") &&
            ds->flags & DDS_SLAVE_ONLY) {
                fprintf(stderr,
-- 
2.1.4


------------------------------------------------------------------------------
_______________________________________________
Linuxptp-devel mailing list
Linuxptp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel

Reply via email to