Hi,
When try to run ptp4l with unicast ipv6 mode, I get this warning.
ptp4l[517963.237]: port 1: unicast master transport mismatch
I am compiling linuxptp 2.0 with this patch
diff --git a/util.c b/util.c
index c617510..9ad23e0 100644
--- a/util.c
+++ b/util.c
@@ -80,13 +80,17 @@ int addreq(enum transport_type type, struct address *a,
struct address *b)
bufb = &b->sin.sin_addr;
len = sizeof(a->sin);
break;
+ case TRANS_UDP_IPV6:
+ bufa = &a->sin6.sin6_addr;
+ bufb = &b->sin6.sin6_addr;
+ len = sizeof(a->sin6);
+ break;
case TRANS_IEEE_802_3:
bufa = &a->sll.sll_addr;
bufb = &b->sll.sll_addr;
len = MAC_LEN;
break;
case TRANS_UDS:
- case TRANS_UDP_IPV6:
case TRANS_DEVICENET:
case TRANS_CONTROLNET:
case TRANS_PROFINET:
@@ -171,12 +175,12 @@ int str2addr(enum transport_type type, const char *s,
struct address *addr)
{
unsigned char mac[MAC_LEN];
struct in_addr ipv4_addr;
+ struct in6_addr ipv6_addr;
memset(addr, 0, sizeof(*addr));
switch (type) {
case TRANS_UDS:
- case TRANS_UDP_IPV6:
case TRANS_DEVICENET:
case TRANS_CONTROLNET:
case TRANS_PROFINET:
@@ -191,6 +195,15 @@ int str2addr(enum transport_type type, const char *s,
struct address *addr)
addr->sin.sin_addr = ipv4_addr;
addr->len = sizeof(addr->sin);
break;
+ case TRANS_UDP_IPV6:
+ if (1 != inet_pton(AF_INET6, s, &ipv6_addr)) {
+ pr_err("bad IPv6 address");
+ return -1;
+ }
+ addr->sin6.sin6_family = AF_INET6;
+ addr->sin6.sin6_addr = ipv6_addr;
+ addr->len = sizeof(addr->sin6);
+ break;
case TRANS_IEEE_802_3:
if (str2mac(s, mac)) {
pr_err("bad Layer-2 address");
Any idea what am I missing? This is how my config file looks like.
[ni6]
unicast_master_table 1
udp_ttl 20
syncReceiptTimeout 2
logSyncInterval 0
logMinPdelayReqInterval 0
logMinDelayReqInterval 0
delay_mechanism E2E
announceReceiptTimeout 4
[unicast_master_table]
table_id 1
logQueryInterval 0
UDPv6 FE80:CD00:0000:0CDE:1257:0000:211E:729C
[global]
verbose 0
userDescription ;
use_syslog 1
unicast_req_duration 10
unicast_master_table 0
unicast_listen 1
uds_address /var/run/ptp4l
udp6_scope 0x0E
tx_timestamp_timeout 1
twoStepFlag 1
tsproc_mode filter
transportSpecific 0x0
time_stamping hardware
tc_spanning_tree 0
summary_interval 0
step_threshold 0.0
slaveOnly 1
sanity_freq_limit 200000000
revisionData ;;
ptp_dst_mac 01:1B:19:00:00:00
productDescription ;;
pi_proportional_scale 0.0
pi_proportional_norm_max 0.70
pi_proportional_exponent -0.3
pi_proportional_const 0.7
pi_integral_scale 0.0
pi_integral_norm_max 0.3
pi_integral_exponent 0.4
pi_integral_const 0.0
path_trace_enabled 0
p2p_dst_mac 01:80:C2:00:00:0E
offsetScaledLogVariance 0xFFFF
ntpshm_segment 0
net_sync_monitor 1
neighborPropDelayThresh 20000000
max_frequency 900000000
masterOnly 0
manufacturerIdentity 00:00:00
logging_level 6
logAnnounceInterval 1
kernel_leap 1
inhibit_multicast_service 1
ingressLatency 0
hybrid_e2e 0
freq_est_interval 1
free_running 0
follow_up_info 0
first_step_threshold 0.00002
fault_reset_interval 4
egressLatency 0
dscp_general 63
dscp_event 2
domainNumber 0
delay_filter_length 10
delay_filter moving_median
delayAsymmetry 0
Thanks.
Best regards,
Jawad
_______________________________________________
Linuxptp-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxptp-users