Re: [Linuxptp-devel] [PATCH RFC V2 06/10] config: add a option to enable a poor man's boundary clock.

2014-11-13 Thread Jiri Benc
On Wed,  5 Nov 2014 23:42:32 +0100, Richard Cochran wrote:
 This patch adds a configuration option that allows running a boundary clock
 using just a bunch of devices. Normally each port is probed to make sure
 they all share the same PTP hardware clock, but this option will allow a
 heterogeneous collection of devices, should the user really want it.
 
 Signed-off-by: Richard Cochran richardcoch...@gmail.com

Acked-by: Jiri Benc jb...@redhat.com

-- 
Jiri Benc

--
Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
http://pubads.g.doubleclick.net/gampad/clk?id=154624111iu=/4140/ostg.clktrk
___
Linuxptp-devel mailing list
Linuxptp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel


[Linuxptp-devel] [PATCH RFC V2 06/10] config: add a option to enable a poor man's boundary clock.

2014-11-05 Thread Richard Cochran
This patch adds a configuration option that allows running a boundary clock
using just a bunch of devices. Normally each port is probed to make sure
they all share the same PTP hardware clock, but this option will allow a
heterogeneous collection of devices, should the user really want it.

Signed-off-by: Richard Cochran richardcoch...@gmail.com
---
 config.c|   13 +
 config.h|1 +
 default.cfg |1 +
 ds.h|1 +
 gPTP.cfg|1 +
 ptp4l.8 |   12 +++-
 ptp4l.c |1 +
 7 files changed, 29 insertions(+), 1 deletion(-)

diff --git a/config.c b/config.c
index d5fa378..154c191 100644
--- a/config.c
+++ b/config.c
@@ -205,6 +205,12 @@ static enum parser_result parse_port_setting(const char 
*option,
return r;
iface-delay_filter_length = val;
 
+   } else if (!strcmp(option, boundary_clock_jbod)) {
+   r = get_ranged_int(value, val, 0, 1);
+   if (r != PARSED_OK)
+   return r;
+   iface-boundary_clock_jbod = val;
+
} else
return NOT_PARSED;
 
@@ -562,6 +568,12 @@ static enum parser_result parse_global_setting(const char 
*option,
return r;
cfg-dds.delay_filter_length = val;
 
+   } else if (!strcmp(option, boundary_clock_jbod)) {
+   r = get_ranged_int(value, val, 0, 1);
+   if (r != PARSED_OK)
+   return r;
+   cfg-dds.boundary_clock_jbod = val;
+
} else
return NOT_PARSED;
 
@@ -750,6 +762,7 @@ void config_init_interface(struct interface *iface, struct 
config *cfg)
 
iface-delay_filter = cfg-dds.delay_filter;
iface-delay_filter_length = cfg-dds.delay_filter_length;
+   iface-boundary_clock_jbod = cfg-dds.boundary_clock_jbod;
 }
 
 void config_destroy(struct config *cfg)
diff --git a/config.h b/config.h
index d580496..c870e42 100644
--- a/config.h
+++ b/config.h
@@ -41,6 +41,7 @@ struct interface {
struct sk_ts_info ts_info;
enum filter_type delay_filter;
int delay_filter_length;
+   int boundary_clock_jbod;
 };
 
 #define CFG_IGNORE_DM   (1  0)
diff --git a/default.cfg b/default.cfg
index 9e794ba..4e3ea65 100644
--- a/default.cfg
+++ b/default.cfg
@@ -70,6 +70,7 @@ delay_mechanism   E2E
 time_stamping  hardware
 delay_filter   moving_median
 delay_filter_length10
+boundary_clock_jbod0
 #
 # Clock description
 #
diff --git a/ds.h b/ds.h
index ea25fbb..496b120 100644
--- a/ds.h
+++ b/ds.h
@@ -61,6 +61,7 @@ struct default_ds {
struct clock_description clock_desc;
enum filter_type delay_filter;
int delay_filter_length;
+   int boundary_clock_jbod;
 };
 
 struct dataset {
diff --git a/gPTP.cfg b/gPTP.cfg
index e15a05a..824b854 100644
--- a/gPTP.cfg
+++ b/gPTP.cfg
@@ -69,3 +69,4 @@ delay_mechanism   P2P
 time_stamping  hardware
 delay_filter   moving_median
 delay_filter_length10
+boundary_clock_jbod0
diff --git a/ptp4l.8 b/ptp4l.8
index 687beb6..6a9e331 100644
--- a/ptp4l.8
+++ b/ptp4l.8
@@ -1,4 +1,4 @@
-.TH PTP4l 8 October 2013 linuxptp
+.TH PTP4l 8 November 2014 linuxptp
 .SH NAME
 ptp4l \- PTP Boundary/Ordinary Clock
 
@@ -205,6 +205,16 @@ The default is moving_median.
 .B delay_filter_length
 The length of the delay filter in samples.
 The default is 10.
+.TP
+.B boundary_clock_jbod
+When running as a boundary clock (that is, when more than one network
+interface is configured), ptp4l performs a sanity check to make sure
+that all of the ports share the same hardware clock device. This
+option allows ptp4l to work as a boundary clock using just a bunch of
+devices that are not synchronized to each other. For this mode, the
+collection of clocks must be synchronized by an external program, for
+example phc2sys(8) in automatic mode.
+The default is 0 (disabled).
 
 .SH PROGRAM AND CLOCK OPTIONS
 
diff --git a/ptp4l.c b/ptp4l.c
index 83824f7..dadc4da 100644
--- a/ptp4l.c
+++ b/ptp4l.c
@@ -75,6 +75,7 @@ static struct config cfg_settings = {
},
.delay_filter = FILTER_MOVING_MEDIAN,
.delay_filter_length = 10,
+   .boundary_clock_jbod = 0,
},
 
.pod = {
-- 
1.7.10.4


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