Make use of the configuration file for the default data set.
Signed-off-by: Richard Cochran <richardcochran@gmail.com>master
parent
ec5e783e84
commit
1092c4237b
26
ptp4l.c
26
ptp4l.c
|
@ -22,6 +22,7 @@
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#include "clock.h"
|
#include "clock.h"
|
||||||
|
#include "config.h"
|
||||||
#include "print.h"
|
#include "print.h"
|
||||||
#include "transport.h"
|
#include "transport.h"
|
||||||
#include "udp.h"
|
#include "udp.h"
|
||||||
|
@ -30,6 +31,7 @@
|
||||||
|
|
||||||
static int running = 1;
|
static int running = 1;
|
||||||
static struct defaultDS ds;
|
static struct defaultDS ds;
|
||||||
|
static struct port_defaults pod;
|
||||||
|
|
||||||
static int generate_clock_identity(struct ClockIdentity *ci, char *name)
|
static int generate_clock_identity(struct ClockIdentity *ci, char *name)
|
||||||
{
|
{
|
||||||
|
@ -60,11 +62,12 @@ static void usage(char *progname)
|
||||||
" -s SOFTWARE\n"
|
" -s SOFTWARE\n"
|
||||||
" -z LEGACY HW\n\n"
|
" -z LEGACY HW\n\n"
|
||||||
" Other Options\n\n"
|
" Other Options\n\n"
|
||||||
|
" -f [file] read configuration from 'file'\n"
|
||||||
" -h prints this message and exits\n"
|
" -h prints this message and exits\n"
|
||||||
" -i [dev] interface device to use, for example 'eth0'\n"
|
" -i [dev] interface device to use, for example 'eth0'\n"
|
||||||
" (may be specified multiple times)\n"
|
" (may be specified multiple times)\n"
|
||||||
" -l [num] set the logging level to 'num'\n"
|
" -l [num] set the logging level to 'num'\n"
|
||||||
" -m slave only mode\n"
|
" -m slave only mode (overrides configuration file)\n"
|
||||||
" -p [dev] PTP hardware clock device to use, default '%s'\n"
|
" -p [dev] PTP hardware clock device to use, default '%s'\n"
|
||||||
" (ignored for SOFTWARE/LEGACY HW time stamping)\n\n",
|
" (ignored for SOFTWARE/LEGACY HW time stamping)\n\n",
|
||||||
progname, DEFAULT_PHC);
|
progname, DEFAULT_PHC);
|
||||||
|
@ -72,7 +75,7 @@ static void usage(char *progname)
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
char *phc = DEFAULT_PHC, *progname;
|
char *config = NULL, *phc = DEFAULT_PHC, *progname;
|
||||||
int c, i, nports = 0, slaveonly = 0;
|
int c, i, nports = 0, slaveonly = 0;
|
||||||
struct interface iface[MAX_PORTS];
|
struct interface iface[MAX_PORTS];
|
||||||
enum transport_type transport = TRANS_UDP_IPV4;
|
enum transport_type transport = TRANS_UDP_IPV4;
|
||||||
|
@ -82,7 +85,7 @@ int main(int argc, char *argv[])
|
||||||
/* Process the command line arguments. */
|
/* Process the command line arguments. */
|
||||||
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, "246hi:l:mp:rsz"))) {
|
while (EOF != (c = getopt(argc, argv, "246f:hi:l:mp:rsz"))) {
|
||||||
switch (c) {
|
switch (c) {
|
||||||
case '2':
|
case '2':
|
||||||
transport = TRANS_IEEE_802_3;
|
transport = TRANS_IEEE_802_3;
|
||||||
|
@ -93,6 +96,9 @@ int main(int argc, char *argv[])
|
||||||
case '6':
|
case '6':
|
||||||
transport = TRANS_UDP_IPV6;
|
transport = TRANS_UDP_IPV6;
|
||||||
break;
|
break;
|
||||||
|
case 'f':
|
||||||
|
config = optarg;
|
||||||
|
break;
|
||||||
case 'i':
|
case 'i':
|
||||||
if (nports < MAX_PORTS) {
|
if (nports < MAX_PORTS) {
|
||||||
iface[nports++].name = optarg;
|
iface[nports++].name = optarg;
|
||||||
|
@ -143,9 +149,9 @@ int main(int argc, char *argv[])
|
||||||
phc = NULL;
|
phc = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
ds.slaveOnly = slaveonly ? TRUE : FALSE;
|
ds.slaveOnly = FALSE;
|
||||||
ds.priority1 = 128;
|
ds.priority1 = 128;
|
||||||
ds.clockQuality.clockClass = slaveonly ? 255 : 248;
|
ds.clockQuality.clockClass = 248;
|
||||||
ds.clockQuality.clockAccuracy = 0xfe;
|
ds.clockQuality.clockAccuracy = 0xfe;
|
||||||
ds.clockQuality.offsetScaledLogVariance = 0xffff;
|
ds.clockQuality.offsetScaledLogVariance = 0xffff;
|
||||||
ds.priority2 = 128;
|
ds.priority2 = 128;
|
||||||
|
@ -155,6 +161,16 @@ int main(int argc, char *argv[])
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (config && config_read(config, &ds, &pod)) {
|
||||||
|
fprintf(stderr, "failed to read configuration file\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (slaveonly) {
|
||||||
|
ds.slaveOnly = TRUE;
|
||||||
|
ds.clockQuality.clockClass = 255;
|
||||||
|
}
|
||||||
|
|
||||||
clock = clock_create(phc, iface, nports, &ds);
|
clock = clock_create(phc, iface, nports, &ds);
|
||||||
if (!clock) {
|
if (!clock) {
|
||||||
fprintf(stderr, "failed to create a clock\n");
|
fprintf(stderr, "failed to create a clock\n");
|
||||||
|
|
Loading…
Reference in New Issue