Re: problem with re(4) interface

From: Stefan Esser <se_at_freebsd.org>
Date: Mon, 22 Nov 2021 18:40:21 UTC
Am 22.11.21 um 18:55 schrieb Warner Losh:
> On Mon, Nov 22, 2021 at 10:51 AM Chuck Tuffli <ctuffli@gmail.com> wrote:
> 
>> On Mon, Nov 22, 2021 at 9:34 AM Chris <bsd-lists@bsdforge.com> wrote:
>>>
>>> On 2021-11-22 08:47, Chuck Tuffli wrote:
>>>> Running on a recent-ish -current
>>>> # uname -a
>>>> FreeBSD stargate.tuffli.net 14.0-CURRENT FreeBSD 14.0-CURRENT
>>>> main-81b22a9892 GENERIC  amd64
>>>>
>>>> I'm having trouble using the second NIC interface in a bridge to
>> provide
>>>> network connectivity to bhyve VMs and need some help figuring out what
>> is
>>>> wrong.
>> ...
>>> Because there's subtle differences between them; are you using the re
>> driver
>>> from base, or from ports?
>>
>> The driver is from base. Didn't realize there was one in ports.
>>
> 
> The ports driver is tricky... It's an older, buggier version of the base
> driver... *BUT*
> a number of issues that aren't fixed in base are fixed in it (mostly
> dealing better with
> errata)...  Ideally, we'd pull in the actual fixes from this driver, but
> it's a huge patch-set
> where it's unclear which bits are for what thing fixed, so nobody (that I
> know of) has
> gone through and even come up with an ugly patch for -current.

I had hoped to be able to merge RTL8125 support into our driver, based on
the Realtek version the port uses, but gave up for lack of documentation
that describes the RTL8125 chips and their PHYs.

But in preparation for this work I have analyzed the differences between
our driver in base and the one from Realtek. The Realtek driver:

- lacks support for a lot of newer features (e.g. NETMAP)
- has lots of conditional sections for antique FreeBSD versions
- special cases some 50 chip versions with regard to features, timing, ...
- contains microcode patches for nearly every RTL chip version

There are even 4 chip versions of the RTL8125 (as the latest Realtek chip)
that are distinguished in the driver (some need microcode patches, some do
not).

I have created patches to bring our version more in line with additions
present in the Realtek driver (e.g. register definitions for RTL8125), but
had decided not to commit them, since I had no way of testing them with the
variety of hardware the driver supports.

I could commit the register definitions and other changes that I consider
low risk (even if I do not have the particular hardware revision the changes
address).

It is sad that Realtek does not provide developers with detailed information.
I'll look again for any leaked RTL8125 data books, but last I checked, there
were none.

Regards, STefan