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 Linuxptp-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxptp-users