phc2sys: Add option to set domain number.

Signed-off-by: Miroslav Lichvar <mlichvar@redhat.com>
master
Miroslav Lichvar 2013-04-08 15:44:08 +02:00 committed by Richard Cochran
parent d5cf47f7f6
commit 24c4e851fc
2 changed files with 15 additions and 5 deletions

View File

@ -31,6 +31,8 @@ phc2sys \- synchronize two clocks
] [ ] [
.B \-w .B \-w
] [ ] [
.BI \-n " domain-number"
] [
.B \-x .B \-x
] [ ] [
.BI \-l " print-level" .BI \-l " print-level"
@ -129,6 +131,9 @@ option is not used, also keep the offset between the slave and master
times updated according to the currentUtcOffset value obtained from ptp4l and times updated according to the currentUtcOffset value obtained from ptp4l and
the direction of the clock synchronization. the direction of the clock synchronization.
.TP .TP
.BI \-n " domain-number"
Specify the domain number used by ptp4l. The default is 0.
.TP
.B \-x .B \-x
When a leap second is announced, don't apply it in the kernel by stepping the When a leap second is announced, don't apply it in the kernel by stepping the
clock, but let the servo correct the one-second offset slowly by changing the clock, but let the servo correct the one-second offset slowly by changing the

View File

@ -337,9 +337,10 @@ static void *get_mgt_data(struct ptp_message *msg)
return mgt->data; return mgt->data;
} }
static int init_pmc(struct clock *clock) static int init_pmc(struct clock *clock, int domain_number)
{ {
clock->pmc = pmc_create(TRANS_UDS, "/var/run/phc2sys", 0, 0, 0); clock->pmc = pmc_create(TRANS_UDS, "/var/run/phc2sys", 0,
domain_number, 0);
if (!clock->pmc) { if (!clock->pmc) {
pr_err("failed to create pmc"); pr_err("failed to create pmc");
return -1; return -1;
@ -525,6 +526,7 @@ static void usage(char *progname)
" -O [offset] slave-master time offset (0)\n" " -O [offset] slave-master time offset (0)\n"
" -u [num] number of clock updates in summary stats (0)\n" " -u [num] number of clock updates in summary stats (0)\n"
" -w wait for ptp4l\n" " -w wait for ptp4l\n"
" -n [num] domain number (0)\n"
" -x apply leap seconds by servo instead of kernel\n" " -x apply leap seconds by servo instead of kernel\n"
" -l [num] set the logging level to 'num' (6)\n" " -l [num] set the logging level to 'num' (6)\n"
" -m print messages to stdout\n" " -m print messages to stdout\n"
@ -539,7 +541,7 @@ int main(int argc, char *argv[])
{ {
char *progname, *ethdev = NULL; char *progname, *ethdev = NULL;
clockid_t src = CLOCK_INVALID; clockid_t src = CLOCK_INVALID;
int c, phc_readings = 5, phc_rate = 1, pps_fd = -1; int c, domain_number = 0, phc_readings = 5, phc_rate = 1, pps_fd = -1;
int max_ppb, r, wait_sync = 0, forced_sync_offset = 0; int max_ppb, r, wait_sync = 0, forced_sync_offset = 0;
int print_level = LOG_INFO, use_syslog = 1, verbose = 0; int print_level = LOG_INFO, use_syslog = 1, verbose = 0;
double ppb; double ppb;
@ -556,7 +558,7 @@ int main(int argc, char *argv[])
progname = strrchr(argv[0], '/'); progname = strrchr(argv[0], '/');
progname = progname ? 1+progname : argv[0]; progname = progname ? 1+progname : argv[0];
while (EOF != (c = getopt(argc, argv, while (EOF != (c = getopt(argc, argv,
"c:d:hs:P:I:S:R:N:O:i:u:wxl:mqv"))) { "c:d:hs:P:I:S:R:N:O:i:u:wn:xl:mqv"))) {
switch (c) { switch (c) {
case 'c': case 'c':
dst_clock.clkid = clock_open(optarg); dst_clock.clkid = clock_open(optarg);
@ -601,6 +603,9 @@ int main(int argc, char *argv[])
case 'w': case 'w':
wait_sync = 1; wait_sync = 1;
break; break;
case 'n':
domain_number = atoi(optarg);
break;
case 'x': case 'x':
dst_clock.kernel_leap = 0; dst_clock.kernel_leap = 0;
break; break;
@ -664,7 +669,7 @@ int main(int argc, char *argv[])
print_set_level(print_level); print_set_level(print_level);
if (wait_sync) { if (wait_sync) {
if (init_pmc(&dst_clock)) if (init_pmc(&dst_clock, domain_number))
return -1; return -1;
while (1) { while (1) {