steven.y Posted August 31, 2020 Share Posted August 31, 2020 Dear Miska: I'm trying to run Network Audio Adapter (4.11) on MacOS Catalina (10.15.6) but failed. I don't see my DAC (ifi i-nano, connected with USB) on HQPlayer 4.6. Please find a command line output of the networkaudiod below: $ (cd ~/Downloads/networkaudiod-411/; sudo ./networkaudiod) Password: [./networkaudiod] (564): networkaudiod Copyright (C) 2011-2020 Jussi Laako / Signalyst. All rights reserved. [./networkaudiod] (564): create coreaudio engine [./networkaudiod] (564): Network interfaces: [./networkaudiod] (564): if[en0] ipv4=192.168.1.117 ipv6=fe80::856:3f40:d693:6003%en0 idx=7 [./networkaudiod] (564): if[lo0] ipv4=127.0.0.1 ipv6=::1 idx=1 [./networkaudiod] (564): listen discovery on en0 [./networkaudiod] (564): clSocket::SetOption(): setsockopt(..., 41,12, ...): Can't assign requested address [./networkaudiod] (564): Socket failure, falling back to IPv4-only! [./networkaudiod] (564): listen discovery on 0.0.0.0 In Output Device Setting menu of HQPlayer, I see Sonore microRendu but not iFi i-nano device on Macbook Pro in "NetworkAudioAdapter" nor "NetworkAudioAdapter IPv6". - Steven Y. Link to comment
Miska Posted August 31, 2020 Share Posted August 31, 2020 Does the networkaudiod output show display information about discovery messages from HQPlayer? If not, it is not receiving those messages. One possible reason is that HQPlayer computer has multiple active network interfaces and the discovery messages end up on wrong link. Signalyst - Developer of HQPlayer Pulse & Fidelity - Software Defined Amplifiers Link to comment
steven.y Posted September 1, 2020 Author Share Posted September 1, 2020 11 hours ago, Miska said: Does the networkaudiod output show display information about discovery messages from HQPlayer? I Negative, the last output from networkaudiod is [./networkaudiod] (564): listen discovery on 0.0.0.0. To isolate issue, I boot the macbook pro, an NAA device connect with iFi i-nano, to Ubuntu. Its networkaudiod (version 4.11) works as it intended to be with Ubuntu. Ubuntu:~$ netstat -a Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp6 0 0 [::]:43210 [::]:* LISTEN tcp6 211400 0 stevenyUbuntu:43210 fe80::497:7f54:6e:59825 ESTABLISHED udp6 0 0 [::]:43210 [::]:* udp 0 0 0.0.0.0:43210 0.0.0.0:* On the other hand, in a same machine/configurarion, boot to MacOS and networkaudiod fails to be discovered by HQPlayer. StevenMac:~$ sudo ~/Downloads/networkaudiod-411/networkaudiod Password: [/Users/yamd/Downloads/networkaudiod-411/networkaudiod] (431): networkaudiod Copyright (C) 2011-2020 Jussi Laako / Signalyst. All rights reserved. [/Users/yamd/Downloads/networkaudiod-411/networkaudiod] (431): create coreaudio engine [/Users/yamd/Downloads/networkaudiod-411/networkaudiod] (431): Network interfaces: [/Users/yamd/Downloads/networkaudiod-411/networkaudiod] (431): if[en1] ipv4=192.168.1.108 ipv6=fe80::f9:364f:8979:a0e1%en1 idx=9 [/Users/yamd/Downloads/networkaudiod-411/networkaudiod] (431): if[lo0] ipv4=127.0.0.1 ipv6=::1 idx=1 [/Users/yamd/Downloads/networkaudiod-411/networkaudiod] (431): listen discovery on en1 [/Users/yamd/Downloads/networkaudiod-411/networkaudiod] (431): clSocket::SetOption(): setsockopt(..., 41,12, ...): Can't assign requested address [/Users/yamd/Downloads/networkaudiod-411/networkaudiod] (431): Socket failure, falling back to IPv4-only! [/Users/yamd/Downloads/networkaudiod-411/networkaudiod] (431): listen discovery on 0.0.0.0 StevenMac:~$ netstat -a Active Internet connections (including servers) Proto Recv-Q Send-Q Local Address Foreign Address (state) tcp4 0 0 *.43210 *.* LISTEN udp4 0 0 *.43210 *.* It looks like that MacOS version of the networkaudiod fails to bind ipv6 address and also fails to get the broadcast packet with ipv4. - Steven Y. Link to comment
steven.y Posted September 1, 2020 Author Share Posted September 1, 2020 12 hours ago, Miska said: One possible reason is that HQPlayer computer has multiple active network interfaces and the discovery messages end up on wrong link. You are right. I write tiny test program that send ipv4 broadcast message on udp:43210 and networkaudiod discover the packet. So the root cause shoud be in the HQPlayer machine (mac mini). I will investigate further and report it. - Steven Y. Link to comment
Miska Posted September 1, 2020 Share Posted September 1, 2020 Broadcast is privileged operation and also bad in general (and that's why IPv6 doesn't even support such). So NAA discovery uses multicast packets destined to local network (non-routable) scope. macOS doesn't like multicast bindings to fe80:: IPv6 automatic local addresses, this is why there is automatic IPv4 fallback. If you switch the IPv6 to use for example static IP's in fc00:: prefix it works. steven.y 1 Signalyst - Developer of HQPlayer Pulse & Fidelity - Software Defined Amplifiers Link to comment
steven.y Posted September 5, 2020 Author Share Posted September 5, 2020 On 9/1/2020 at 4:29 PM, Miska said: If you switch the IPv6 to use for example static IP's in fc00:: prefix it works. Miska, I configured NAA machine's ipv6 network interface to "Unique local address", in my case, fd00:1::38f9:d349:f061 prefixlen 64. Unfortunately, it dose not work and end up "Can't assign requested address" error and "Socket failure, falling back to IPv4-only!". [networkaudiod-411/networkaudiod] (6184): networkaudiod Copyright (C) 2011-2020 Jussi Laako / Signalyst. All rights reserved. [networkaudiod-411/networkaudiod] (6184): create coreaudio engine [networkaudiod-411/networkaudiod] (6184): Network interfaces: [networkaudiod-411/networkaudiod] (6184): if[en0] ipv4=192.168.1.117 ipv6=fd00:1::38f9:d349:f061 idx=6 [networkaudiod-411/networkaudiod] (6184): if[lo0] ipv4=127.0.0.1 ipv6=::1 idx=1 [networkaudiod-411/networkaudiod] (6184): listen discovery on en0 [networkaudiod-411/networkaudiod] (6184): clSocket::SetOption(): setsockopt(..., 41,12, ...): Can't assign requested address [networkaudiod-411/networkaudiod] (6184): Socket failure, falling back to IPv4-only! [networkaudiod-411/networkaudiod] (6184): listen discovery on 0.0.0.0 As souce code of networkaudiod is not available, I have no clue to solving the issue by myself but I suspect that mreq.ipv6mr_interface args in setsockopt() call is wrong. Quote Receiving IPv6 Multicast Datagrams Before a host can receive IP multicast datagrams, the host must become a member of one, or more IP multicast groups. A process can ask the host to join a multicast group by using the following socket option: struct ipv6_mreq mreq; setsockopt(sock, IPPROTO_IPV6, IPV6_JOIN_GROUP, &mreq, sizeof(mreq)) where mreq is the structure: struct ipv6_mreq { struct in6_addr ipv6mr_multiaddr; /* IPv6 multicast addr */ unsigned int ipv6mr_interface; /* interface index */ } Each membership is associated with a single interface. You can join the same group on more than one interface. Specify ipv6_interface to be 0 to choose the default multicast interface. Specify an interface index for one of the host's interfaces to choose that multicast-capable interface. (source: https://docs.oracle.com/cd/E19253-01/817-4415/6mjum5spv/index.html) In my NAA machine, macbook pro, the default multicast interface is "lo0" (loopback interface). Setting it to default value (zero) end up "Can't assign requested address" error. It sould be set to "en0", that is, mreq.ipv6mr_interface = if_nametoindex("en0"); . I hope this help solving the issue. - Steven Link to comment
Miska Posted September 5, 2020 Share Posted September 5, 2020 12 hours ago, steven.y said: I configured NAA machine's ipv6 network interface to "Unique local address", in my case, fd00:1::38f9:d349:f061 prefixlen 64. Unfortunately, it dose not work and end up "Can't assign requested address" error and "Socket failure, falling back to IPv4-only!". For me, fc00/64 prefix is working fine. But macOS is a bit painful and mysterious about IPv6. Signalyst - Developer of HQPlayer Pulse & Fidelity - Software Defined Amplifiers Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now