Skip to content

Commit

Permalink
ptp4l: add support for using configured_pi_f_offset servo option
Browse files Browse the repository at this point in the history
This patch adds support for using the configured_pi_f_offset servo option to ptp4l.
If "pi_f_offset_const 0.0" is specified in the config file, stepping on the first
update is prevented. If any other positive value is specified, stepping on the
first update occurs when the offset is larger than the specified value.

change since v1
 - add the new option to default.cfg and gPTP.cfg

Signed-off-by: Ken ICHIKAWA <[email protected]>
  • Loading branch information
ichik1 authored and richardcochran committed Jun 25, 2013
1 parent 28b8dc9 commit fa41be7
Show file tree
Hide file tree
Showing 6 changed files with 17 additions and 1 deletion.
6 changes: 6 additions & 0 deletions config.c
Original file line number Diff line number Diff line change
Expand Up @@ -313,6 +313,12 @@ static enum parser_result parse_global_setting(const char *option,
return r;
*cfg->pi_offset_const = df;

} else if (!strcmp(option, "pi_f_offset_const")) {
r = get_ranged_double(value, &df, 0.0, DBL_MAX);
if (r != PARSED_OK)
return r;
*cfg->pi_f_offset_const = df;

} else if (!strcmp(option, "pi_max_frequency")) {
r = get_ranged_int(value, &val, 0, INT_MAX);
if (r != PARSED_OK)
Expand Down
1 change: 1 addition & 0 deletions config.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ struct config {
double *pi_proportional_const;
double *pi_integral_const;
double *pi_offset_const;
double *pi_f_offset_const;
int *pi_max_frequency;

unsigned char *ptp_dst_mac;
Expand Down
1 change: 1 addition & 0 deletions default.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ kernel_leap 1
pi_proportional_const 0.0
pi_integral_const 0.0
pi_offset_const 0.0
pi_f_offset_const 0.0000001
pi_max_frequency 900000000
clock_servo pi
#
Expand Down
1 change: 1 addition & 0 deletions gPTP.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ kernel_leap 1
pi_proportional_const 0.0
pi_integral_const 0.0
pi_offset_const 0.0
pi_f_offset_const 0.0000001
pi_max_frequency 900000000
clock_servo pi
#
Expand Down
8 changes: 7 additions & 1 deletion ptp4l.8
Original file line number Diff line number Diff line change
Expand Up @@ -268,9 +268,15 @@ The default is 0.0.
.B pi_offset_const
The maximum offset the PI controller will correct by changing the clock
frequency instead of stepping the clock. When set to 0.0, the controller will
never step the clock.
never step the clock except on start.
The default is 0.0.
.TP
.B pi_f_offset_const
The maximum offset the PI controller will correct by changing the clock
frequency instead of stepping the clock. This is only applied on the first
update. When set to 0.0, the controller won't step the clock on start.
The default is 0.0000001 (100 nanoseconds).
.TP
.B pi_max_frequency
The maximum allowed frequency adjustment of the clock in parts per billion
(ppb). This is an additional limit to the maximum allowed by the hardware. When
Expand Down
1 change: 1 addition & 0 deletions ptp4l.c
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ static struct config cfg_settings = {
.pi_proportional_const = &configured_pi_kp,
.pi_integral_const = &configured_pi_ki,
.pi_offset_const = &configured_pi_offset,
.pi_f_offset_const = &configured_pi_f_offset,
.pi_max_frequency = &configured_pi_max_freq,

.ptp_dst_mac = ptp_dst_mac,
Expand Down

0 comments on commit fa41be7

Please sign in to comment.