# RTL8153 compatibility and configuration



## jack47 (Oct 30, 2020)

Hello,
I've an old Hp Microserver N36L with XigmaNAS 12.1.0.4 (FreeBSD 12.1-RELEASE P9). The on board NIC is broken, so until now I used a Intel PCie etc card. All worked fine.

I wanted to fresh up a little bit the NAS, so I bought a USB3+gigabit etc card (branded Delock), It has the Realtek 8153 chipset.

Xigmanas doesn't seem to see it out of the box, but after a little of google I managed to make it work more or less.

It seems that there are 2 modules that are compatible with the RTL8153: "if_cdce" and "ure" (or "if_ure", I'm not sure if it's the same).

If I use if_cdce (adding the line "if_cdce_load="YES"" in loader.conf and then "usbconfig -d 0.2 set_config 1") as I said DHCP works at 100Mbit (measured with iperf) even if the speed is negotiated as 1000TX full duplex, and for some reason I can't give a static address (but that probably a configuration issue, it may need to wait that the usb+eth is activated).

Same thing with ure, but I don't need the usbconfig thing.

So Do you have some ideas or advice to make it work completely? (static address and at full gigabit speed)

Thank you
Bye Jack


----------



## SirDice (Oct 30, 2020)

jack47 said:


> Microserver N36L with XigmaNAS 12.1.0.4


Derivatives are not supported here.

PC-BSD, FreeNAS, XigmaNAS, and all other FreeBSD Derivatives



jack47 said:


> so I bought a USB3+gigabit etc card (branded Delock),


You're still going to be limited by the USB2.0 ports of the machine itself. USB2 has a (theoretical) maximum throughput of about 480Mbps, that's less than half the bandwidth of a gigabit network card. Stick to using that PCIe card, it's going to perform much better in all cases.


----------



## jack47 (Oct 30, 2020)

SirDice said:


> Derivatives are not supported here.
> 
> PC-BSD, FreeNAS, XigmaNAS, and all other FreeBSD Derivatives


It's not a problem of the derivative. It's a problem with the driver for the RTL8153 that is bundled with FreeBSD 12.1p9.
It's either a limitation of the driver (I have two other adapters USB-eth that have the same chipset and under linux/macos they work perfectly), or a configuration problem.
That's why I asked here.


SirDice said:


> You're still going to be limited by the USB2.0 ports of the machine itself. USB2 has a (theoretical) maximum throughput of about 480Mbps, that's less than half the bandwidth of a gigabit network card. Stick to using that PCIe card, it's going to perform much better in all cases.



Sorry I didn't explain correctly: I bought a PCIe card that has USB3+gigabit eth (https://www.delock.com/produkte/G_89382/merkmale.html). The USB3 part works correctly, the eth no.

Anyway here some more info:

dmesg:

```
cdce0 on uhub6
cdce0: <CDC Communications Control> on usbus0
ue0: <USB Ethernet> on cdce0
ue0: Ethernet address: 00:50:62:20:0e:1a
```
ifconfig:

```
ue0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether 00:50:62:20:0e:1a
        inet 192.168.1.51 netmask 0xffffff00 broadcast 192.168.1.255
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
```
`usbconfig -u 0 -a 2 dump_device_spec`:

```
ugen0.2: <Realtek USB 10/100/1000 LAN> at usbus0, cfg=1 md=HOST spd=SUPER (5.0Gbps) pwr=ON (64mA)
  bLength = 0x0012 
  bDescriptorType = 0x0001 
  bcdUSB = 0x0300 
  bDeviceClass = 0x0000  <Probed by interface class>
  bDeviceSubClass = 0x0000 
  bDeviceProtocol = 0x0000 
  bMaxPacketSize0 = 0x0009 
  idVendor = 0x0bda 
  idProduct = 0x8153 
  bcdDevice = 0x3000 
  iManufacturer = 0x0001  <Realtek>
  iProduct = 0x0002  <USB 10/100/1000 LAN>
  iSerialNumber = 0x0006  <0000E1000000>
  bNumConfigurations = 0x0002
```
in loader.conf I have  if_cdce_load="YES" and during "PreInit" (a Xigmanas thing) I've set "usbconfig -d 0.2 set_config 1".

With this the adapter can be used with DHCP but the max speed I can get (through iperf) is around 90-95Mbit.

Can somebody help?


----------



## jack47 (Oct 30, 2020)

Just for fun I managed to activate the driver if_ure instead of if_cdce.

ifconfig and iperf (the client is a MacPro connected through one of the onboard gigabit)

```
trevize: ~# ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
    options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
    inet6 ::1 prefixlen 128
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
    inet 127.0.0.1 netmask 0xff000000
    groups: lo
    nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
ue0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
    options=80000<LINKSTATE>
    ether 00:50:62:20:0e:1a
    inet 192.168.1.38 netmask 0xffffff00 broadcast 192.168.1.255
    media: Ethernet autoselect (1000baseT <full-duplex>)
    status: active
    nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
trevize: ~# iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.1.47, port 64786
[  5] local 192.168.1.38 port 5201 connected to 192.168.1.47 port 64787
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  11.0 MBytes  92.1 Mbits/sec                  
[  5]   1.00-2.00   sec  11.0 MBytes  92.2 Mbits/sec                  
[  5]   2.00-3.00   sec  11.0 MBytes  92.2 Mbits/sec                  
[  5]   3.00-4.00   sec  11.0 MBytes  92.4 Mbits/sec                  
[  5]   4.00-5.00   sec  11.0 MBytes  92.5 Mbits/sec                  
[  5]   5.00-6.00   sec  11.0 MBytes  92.5 Mbits/sec                  
[  5]   6.00-7.00   sec  11.0 MBytes  92.5 Mbits/sec                  
[  5]   7.00-8.00   sec  11.0 MBytes  92.5 Mbits/sec                  
[  5]   8.00-9.00   sec  11.0 MBytes  92.5 Mbits/sec                  
[  5]   9.00-10.00  sec  11.0 MBytes  92.5 Mbits/sec                  
[  5]  10.00-10.00  sec  49.5 KBytes  89.9 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec   110 MBytes  92.4 Mbits/sec                  receiver
```


----------

