phc2sys.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/phc2sys.c b/phc2sys.c
index 5c54055..dc5a71a 100644
--- a/phc2sys.c
+++ b/phc2sys.c
@@ -871,13 +871,13 @@ static void send_subscription(struct node *node)
pmc_send_set_action(node->pmc, TLV_SUBSCRIBE_EVENTS_NP, &sen,
sizeof(sen));
}
-static int init_pmc(struct config *cfg, struct node *node, int domain_number)
+static int init_pmc(struct config *cfg, struct node *node, int domain_number,
int
transport_specific)
{
char uds_local[MAX_IFNAME_SIZE + 1];
snprintf(uds_local, sizeof(uds_local), "/var/run/phc2sys.%d",
getpid());
- node->pmc = pmc_create(cfg, TRANS_UDS, uds_local, 0,
domain_number, 0, 1);
+ node->pmc = pmc_create(cfg, TRANS_UDS, uds_local, 0,
domain_number, transport_specific, 1);
if (!node->pmc) {
pr_err("failed to create pmc");
return -1;
@@ -1295,6 +1295,7 @@ static void usage(char *progname)
" -N [num] number of master clock readings per update
(5)\n"
" -L [limit] sanity frequency limit in ppb (200000000)\n"
" -M [num] NTP SHM segment number (0)\n"
+ " -T [hex] transport specific field (default 0x0)\n"
" -u [num] number of clock updates in summary stats (0)\n"
" -n [num] domain number (0)\n"
" -x apply leap seconds by servo instead of
kernel\n"
@@ -1319,6 +1320,7 @@ int main(int argc, char *argv[])
int c, domain_number = 0, pps_fd = -1;
int r = -1, wait_sync = 0;
int print_level = LOG_INFO, use_syslog = 1, verbose = 0;
+ int transport_specific = 0;
int ntpshm_segment;
double phc_rate, tmp;
struct node node = {
@@ -1343,7 +1345,7 @@ int main(int argc, char *argv[])
progname = strrchr(argv[0], '/');
progname = progname ? 1+progname : argv[0];
while (EOF != (c = getopt(argc, argv,
-
"arc:d:s:E:P:I:S:F:R:N:O:L:M:i:u:wn:xz:l:t:mqvh"))) {
+
"arc:d:s:E:P:I:S:F:R:N:O:L:M:T:i:u:wn:xz:l:t:mqvh"))) {
switch (c) {
case 'a':
autocfg = 1;
@@ -1425,6 +1427,10 @@ int main(int argc, char *argv[])
config_set_int(cfg, "ntpshm_segment",
ntpshm_segment))
goto end;
break;
+ case 'T':
+ if (1 == sscanf(optarg, "%x", &c))
+ transport_specific = c << 4;
+ break;
case 'u':
if (get_arg_val_ui(c, optarg, &node.stats_max_count,
0, UINT_MAX))
@@ -1506,7 +1512,7 @@ int main(int argc, char *argv[])
print_set_level(print_level);
if (autocfg) {
- if (init_pmc(cfg, &node, domain_number))
+ if (init_pmc(cfg, &node, domain_number, transport_specific))
goto end;
if (auto_init_ports(&node, rt) < 0)
goto end;
@@ -1542,7 +1548,7 @@ int main(int argc, char *argv[])
r = -1;
if (wait_sync) {
- if (init_pmc(cfg, &node, domain_number))
+ if (init_pmc(cfg, &node, domain_number, transport_specific))
goto end;
while (is_running()) {
--
2.7.4
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Linuxptp-devel mailing list
Linuxptp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel