Jump to content

Apple Silicon and Ethernet (beware!)


Recommended Posts

Just thought everyone here would be interested. I got a M1 Max 16" Macbook Pro when they were launched. Although at home I mostly use WiFi I got a Gigabit Ethernet adapter just in case. It's always useful to have one around, especially nowadays when you might need to use Dante or other Ethernet audio transport.

 

TL;DR: Buy the Thunderbolt 3 to Thunderbolt 2 adapter and the Thunderbolt 2 to Gigabit Ethernet while supplies last!

 

There are other alternatives in the market (A Sonnet adapter using the same Broadcom chip as the Apple Thunderbult-GbE costs as much as $200), and

out of curiosity I have ordered a D-Link adapter which is claimed to have a non-Realtek, much better controller. I will report back when it arrives.

 

The shocking thing is, I stumbled upon some advice from BJ Buchalter (Metric Halo) recommending to use a dongle processionary (Thunderbolt 3 to Thunderbolt 2 adapter chained with a Thunderbolt 2 to Gigabit Ethernet one) instead of the usual hardware sold by Apple themselves. In my case, a Belkin adapter.

 

I have used Dante very little and I need to record a concert on Sunday, so of course I did my homework testing my Dante configuration, etc, in order to avoid pestering the FOH guy with stupid debugging time. 

 

I was a bit shocked, the timing was more jittery than I remembered. So just in case I ordered the Apple "processionary". It arrived today. 

 

Doing just a simple network performance test called, "iperf" these are the results:

 

10 minutes of bidirectional iperf3 test (TCP) on a clean GbE network, two ARUBA 2530 switches, to a HP server running FreeBSD 13.2
and Broadcom GbE interfaces. 

 

bge0: <Broadcom BCM5720 A0, ASIC rev. 0x5720000>

The processor is a Xeon e3-1260L at 2.4 GHz.

 

Belkin adapter:

 

[ ID][Role] Interval                  Transfer         Bitrate               Retr
[  5][TX-C]   0.00-600.00 sec  41.6 GBytes   596 Mbits/sec                  sender
[  5][TX-C]   0.00-600.00 sec  41.6 GBytes   596 Mbits/sec                  receiver
[  7][RX-C]   0.00-600.00 sec  21.6 GBytes   310 Mbits/sec  24422             sender
[  7][RX-C]   0.00-600.00 sec  21.6 GBytes   309 Mbits/sec                  receiver


Apple processionary:

[ ID][Role] Interval                  Transfer          Bitrate              Retr
[  5][TX-C]   0.00-600.00 sec  58.0 GBytes   830 Mbits/sec                  sender
[  5][TX-C]   0.00-600.00 sec  58.0 GBytes   830 Mbits/sec                  receiver
[  7][RX-C]   0.00-600.00 sec  63.8 GBytes   914 Mbits/sec  4             sender
[  7][RX-C]   0.00-600.00 sec  63.8 GBytes   914 Mbits/sec                  receiver


So, indeed, outrageous! Either the Realtek chip is extremely poor (I was told there was even profanity in the code comments
of a Realtek driver for FreeBSD) and I have indeed had horrible problems with them for other applications, and/or the 
USB-C subsystem is really poorly designed (the Apple interface is connected to PCIe) and/or the Realtek driver is awful.

Still, it feels like a high performance processor like a M1 Max should be able to cope with a mere gigabit without a hitch. The
Xeon inside the server was launched in Q2’11 (THIRTEEN YEARS OLD TECHNOLOGY!).

 

The Apple adapter lost FOUR packets in 10 minutes. The Belkin/Realtek TWENTY FOUR THOUSAND FOUR HUNDRED
TWENTY TWO!

 

I just can’t understand why Apple doesn’t bother to release proper hardware. Charge me $50 or even $100 if they want, but
I demand properly working equipment instead of selling useless crap on their own online store. 
 

Link to comment
Share on other sites

Realtek NIC's have always sucked in my experience.  I've had several adapters using Realtek that I had lots of issues with on intel macs too.  That being said I've done many hours recording Dante on StarTech adapters which use Realtek, so ...... ????

As you point out, the actual Apple hardware performs excellently.  It's the Belkin hardware that is low quality, even if they have a deal to sell through the Apple store.

 

 

Link to comment
Share on other sites

Yes, I am sure you can record over a Belkin adapter. Although in my opinion it´s unacceptable to lose packets at such a low bandwidth in 2023. It was 10 years ago!


And what really worries me is, sometimes negligible defficiencies can add up in unexpected ways and ruin your day with difficult to debug problems. So it is always better to make sure that each and every element performs like it should

 

So, do they compare in the real, Dante Inferno? I think so. 

 

I have made a latency comparison. 

 

Audio source:

  • 6-core 2010 Mac Pro @3.33 GHz running 10.14.6.
  • iTunes playing audio to a Metric Halo ULN-2 interface, interface looping back audio (otherwise iTunes won´t allow Dante Via to grab it)

 

Audio destination:

  • 16 inch Macbook Pro M1-Max running 13.4.1 with the latest security update (c)
  • Audio aggregate device with a 16 track Dante Virtual Interface and a Sound Devices MixPre 3 (I need to inject timecode to my recording)
  • Digital Performer 11.22

And sending 16 tracks (two of them actual audio, the rest silence) which means around 20 Mbps.

 

Two network configurations:

Belkin adapter (via hardware configuration it seems they claim 5 Gbps!) in "auto" mode (doesn´t allow to tune flow control, etc anyway)

Apple Thunderbolt to gbE via Apple TB3->TB2 dongle

 

I have been recording 17 tracks on DP (16 from Dante, one from the MixPre with the TentacleSync LTC) and while recording I have locked

the screen a couple of times, switched to a different application (like Terminal) and I have also stopped the recording, deleted all the

recorded audio, compacted project.

 

Look at the latency graphs from Dante Controller running on the Mac Pro. I think they speak for themselves. The peak latency events occured when I locked the screen and unlocked it. The Belkin adapter had actual trouble, which is shocking given that these new ARM based machines are actual supercomputers with an unbelievable memory bandwidth.

 

 

Processionary.png

BelkinLatency.png

 

(Not trying to be pedantic especially given that computers and operating systems pay my bills, not audio, but I think all of you should know!)

 

Edited by borjam
corrections
Link to comment
Share on other sites

Very interesting topic. I think Realtek used to publish a driver for macOS, though not sure it's compatible with the latest versions. Have you investigated using a non-default driver? Also interested how the D-Link adapter performs. It was a sad day when Apple stopped including an ethernet port on their laptops.

Link to comment
Share on other sites

On 7/14/2023 at 10:18 PM, Patrick Farrell said:

Very interesting topic. I think Realtek used to publish a driver for macOS, though not sure it's compatible with the latest versions. Have you investigated using a non-default driver? Also interested how the D-Link adapter performs. It was a sad day when Apple stopped including an ethernet port on their laptops.

The driver currently used on Macos Ventura is made by Apple, it seems. I will try to look for other alternatives, but using a third party driver can be problematic in case you update the operating system itself.

 

I think I read somewhere (but there is much fuzzy stuff on "thah intarwebs") that Realteks were problematic until Apple made their driver. However, the problems I have observed are happening with the Apple provided builtin driver in Macos.

 

Amazon delayed the order and I cancelled it. Anyway it seems that D-Link contains a Realtek chip as well. A more advanced one I think. I will still try it eventually and report here.

 

Speaking to Lindy (their representative in Spain was so kind to call back responding to my feedback) there is a model that might work, based on a different chipset.

 

But we still don't know the cause of the problem I saw. It can be either (or all) of these:

 

- Poor driver

- Poorly designed chipset (it can affect driver design enormously)

- Using USB-C: Remeber that the good Apple adapter is Thunderbolt, which means it is attached to PCIe which offers better throughput, direct memory access if necessary and lower latency.

 

I'll keep you posted!

 

Link to comment
Share on other sites

I have tried a different device. This is a UGreen adapter that includes HDMI, a USB-C port, two USB-A ports and Gigabit Ethernet.

 

The chipset is identifed as AX88179A, and the iperf3 test looks good as well.

 

- - - - - - - - - - - - - - - - - - - - - - - - -

[ ID][Role] Interval           Transfer     Bitrate         Retr

[  5][TX-C]   0.00-600.00 sec  58.3 GBytes   834 Mbits/sec                  sender

[  5][TX-C]   0.00-599.96 sec  58.3 GBytes   834 Mbits/sec                  receiver

[  7][RX-C]   0.00-600.00 sec  63.8 GBytes   913 Mbits/sec   78             sender

[  7][RX-C]   0.00-599.96 sec  63.8 GBytes   913 Mbits/sec                  receiver

 

 

A bit more packet loss than the Thunderbolt adapter but not bad anyway.

 

 

Link to comment
Share on other sites

6 hours ago, borjam said:

I have tried a different device. This is a UGreen adapter that includes HDMI, a USB-C port, two USB-A ports and Gigabit Ethernet.

 

The chipset is identifed as AX88179A, and the iperf3 test looks good as well.

 

- - - - - - - - - - - - - - - - - - - - - - - - -

[ ID][Role] Interval           Transfer     Bitrate         Retr

[  5][TX-C]   0.00-600.00 sec  58.3 GBytes   834 Mbits/sec                  sender

[  5][TX-C]   0.00-599.96 sec  58.3 GBytes   834 Mbits/sec                  receiver

[  7][RX-C]   0.00-600.00 sec  63.8 GBytes   913 Mbits/sec   78             sender

[  7][RX-C]   0.00-599.96 sec  63.8 GBytes   913 Mbits/sec                  receiver

 

 

A bit more packet loss than the Thunderbolt adapter but not bad anyway.

 

 

Is it this one? I need to grab an Ethernet adapter for Dante as well, and this actually looks like a decent candidate that can save me from carrying multiple dongles in my bag
image.png

Link to comment
Share on other sites

Yes, it is that one. But let me try actually with Dante this evening/night and I will let you know.

 

Anyway, remember that despite the additional dongle Thunderbolt will always be better than USB-C latency wise.

 

I will put it to work with Dante this evening and check how latency goes compared to the old Thunderbolt to GbE adapter.

 

By the way, the Apple Thunderbolt to GbE adapter supports AVB extensions and it allows you to fine tune the connection mode enabling or disabling flow control. The others

(either Realtek or AX) do not offer that.

 

 

Link to comment
Share on other sites

You all know of course that this is a problem of Apple's own making.  Actually fries my ass, the more than a few years old Apple design path.

 

This is only one of the reasons that I continue to run my large Dante rig on a pair of 2012 MBPs.  You know?  The ones with all the proper ports right on the machine?

 

Grrr!

 

D.

Link to comment
Share on other sites

I have had good results with Dante on an Apple Silicon iMac.  This was, however, with the Apple Gigabit Adapter in the power blob (probably Thunderbolt in some manner?) and not the same type of TB/USB device that would be used with a laptop.

 

For example, for a recent live musical we did, I had 64 channels of Dante coming into the M1 iMac using Dante Virtual Soundcard.  All but a few of these were recorded using Pro Tools running under Rosetta on Monterrey.  The show was close to 3 hours long and I am not aware of any lost audio.  The Dante traffic even was on a shared corporate network without QoS, although all the Dante devices were on a single switch and our stuff lives on its own VLAN.

 

We did encounter the IGMPv2 problem mentioned at https://www.audinate.com/learning/faqs/mac-osx-shows-listening-under-the-clock-status-tab-in-dante-controller.

Like most IGMPv3 devices, Apple's network stack will drop down to IGMPv2 compatibility mode if it sees an IGMPv2 packet.  But it seems to stay there permanently.  So if some IGMPv2 device ever appeared on the network, even briefly, the switches would drop down into compatibility mode.  After a time if the device left, the switch would revert back to IGMPv3 but the Mac would not.  The result was that the Mac would ignore the IGMPv3 multicast group queries, and the switch would drop it from the PTP multicast group.  That would make Dante lose clock.  The solution for our specific case was that our network guy set up the switch with a static subscription to the PTP multicast stream for that specific port.  That way even if the Mac stopped sending IGMP group reports, the switch would still send the PTP packets.

 

Link to comment
Share on other sites

@Vincent R. It works, it seems.


That said, when moving it from one USB-C port to another I was forced to delete the interface and recreate it. Otherwise it was unable to achieve clock lock.

 

I have made the test connected to a 2010 Mac Pro running Mojave through a direct cable, dedicated interface (no switches messing around).

 

Latency is good. iperf throughput is as it should.

 

But it was trickier to make it work, being USB-C. Curiously latency with the Thunderbolt adapter is a bit higher. But seems to be more solid.  I mean, I had to do some voodoo macumba in order to make the hub work, deleting the interface and recreating again when I changed USB ports. Otherwise it would not achieve lock. 

 

 

Link to comment
Share on other sites

5 hours ago, tourtelot said:

You all know of course that this is a problem of Apple's own making.  Actually fries my ass, the more than a few years old Apple design path.

 

This is only one of the reasons that I continue to run my large Dante rig on a pair of 2012 MBPs.  You know?  The ones with all the proper ports right on the machine?

 

Indeed, Apple have been quite stupid (in my opinion). They should keep an up to date proper Ethernet interface. Maybe not cheap but at least with a minimum expectation of being solid. 

 

I can imagine countless situations in which someone goes to record a concert with a $4000 laptop and a $25 crappy Ethernet adapter only to find that it won't work while others (maybe with built in Ethernet port) are capable of doing it. 

 

Dodgy hardware can damage reputation more than non existant products. And I got the Belkin adapter from the Apple Store together with the laptop. it was the recommended model.

 

At least the hub I have just tried is not terrible, but it was a bit more troublesome to set up than the TB-GbE. And it probably means that other dongles based on the same chipset should work.

 

 

 

One more test. 

 

With the Thunderbolt adapter running a full duplex iperf3, kernel CPU consumption was about 44% with full bandwidth.

 

With the Ugreen hub, 70 - 75% CPU, good performance. Not sure about its buffering strategy, it took some seconds to reach full bandwith while the Thunderbolt was almost instantly topping it. 

 

With the crappy Belkin, 92% CPU (!!!!) and appalling performance.  (

[ ID][Role] Interval           Transfer     Bitrate

[  5][TX-C]   0.00-30.00  sec  2.75 GBytes   787 Mbits/sec                  sender

[  5][TX-C]   0.00-30.00  sec  2.75 GBytes   787 Mbits/sec                  receiver

[  7][RX-C]   0.00-30.00  sec  1.11 GBytes   319 Mbits/sec                  sender

[  7][RX-C]   0.00-30.00  sec  1.11 GBytes   319 Mbits/sec                  receiver

 

 

As far as I know that is not 44% (or 72%) of the whole CPU power, but of one core. 

 

 

Link to comment
Share on other sites

For reference, sorry about the post avalanche, I would for now avoid this. 

 

If you see Realtek as the vendor ID, run for your life. I think there are better Realtek chips (maybe the D-Link for which I cancelled the order was better) but this one is unacceptable.

 

image.png

Link to comment
Share on other sites

2 hours ago, borjam said:

@Vincent R. It works, it seems.


That said, when moving it from one USB-C port to another I was forced to delete the interface and recreate it. Otherwise it was unable to achieve clock lock.

 

I have made the test connected to a 2010 Mac Pro running Mojave through a direct cable, dedicated interface (no switches messing around).

 

Latency is good. iperf throughput is as it should.

 

But it was trickier to make it work, being USB-C. Curiously latency with the Thunderbolt adapter is a bit higher. But seems to be more solid.  I mean, I had to do some voodoo macumba in order to make the hub work, deleting the interface and recreating again when I changed USB ports. Otherwise it would not achieve lock. 

 

 

Thanks for checking it out.

Link to comment
Share on other sites

  • 1 month later...

 

On 7/18/2023 at 4:24 PM, borjam said:

For reference, sorry about the post avalanche, I would for now avoid this. 

 

If you see Realtek as the vendor ID, run for your life. I think there are better Realtek chips (maybe the D-Link for which I cancelled the order was better) but this one is unacceptable.

 

image.png

Wow, I was about to get one of those for my travels. Thanks for the info!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...