[Samba] Multichannel and RSS Not Detected

Chris Dos chris at chrisdos.com
Sat Aug 7 22:43:03 UTC 2021


I've spent the last couple of days trying to get Multichannel and RSS working
and it's been hit and miss.  Mostly miss at this point.

I have two servers on the same network, running the same dual Mellanox 100G
card with mostly identical samba configs.  A Win 10 client sees multichannel
and RSS from one server but not the other when running
"Get-SmbMultichannelConnection -IncludeNotSelected".

Servers are running Devuan (Debian 10) with the 5.10 kernel and ZFS.  I
thought my original issue was because the mlx5_core driver in the 5.10 kernel
did not show any queues in /proc/interrupts (grep lan2 /proc/interrupts). 
Installing the driver from Mellanox fixed that problem.  But the odd thing is,
the server that is working, is running the stock kernel driver and and does
not show anything in /proc/interrupts.  I tried both the stock and Mellanox
driver on the server that is not working.

I'm at a loss on how to debug this on why the Win 10 client does not see
multichannel or RSS for one server but not the other..  I upgraded the server
to samba 4.14.6+dfsg-0.1buster1 from 4.9.  The server that is working used
both versions of samba and the Win 10 client saw it with each version.

I'm mostly intested in getting RSS working as I read for multiple nics to work
I would need to put the IPs on different subnets.

Each server has both of the 100G links bonded into a 802.3ad LAG.

Information:

smb.conf:
[global]
    netbios name = SB1
    interfaces = "172.28.202.10;capability=RSS" "172.28.90.10;capability=RSS"
"172.28.133.10;capability=RSS,speed=100000000000"
        server multi channel support = yes
    workgroup = GIANT
    wins server = 172.28.202.5
    os level = 20
        log level = 3
    client min protocol = SMB3
        os level = 8
        local master = No
        domain master = No
    ntlm auth = yes
    log file = /var/log/samba/log.%m
        max log size = 1000
    server role = standalone server
    obey pam restrictions = No
    unix password sync = no
    passwd program = /usr/bin/passwd %u
    passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:*
%n\n *password\supdated\ssuccessfully*
    invalid users = root
    usershare path =
    usershare allow guests = yes
    guest account = nas
    aio read size = 1
    aio write size = 1
    aio max threads = 100
    vfs objects = catia
        mangled names = no
        catia:mappings =
0x22:0xa8,0x2a:0xa4,0x2f:0xf8,0x3a:0xf7,0x3c:0xab,0x3e:0xbb,0x3f:0xbf,0x5c:0xff,0x7c:0xa6
    smb2 leases = yes
    posix locking = no
    security = user
    map to guest = bad user   
    store dos attributes = yes
    dos filetimes = yes

[plaid]
    path = /netshares/plaid
    force user = nas
    force group = nas
    create mask = 770
    force create mode = 770
    directory mask = 2770
    force directory mode = 2770
    guest ok = yes
    read only = no
    hosts allow = 172.28.133. 172.28.90.
    dos filetimes = yes



ethtool -l lan2
Channel parameters for lan2:
Pre-set maximums:
RX:        0
TX:        0
Other:        0
Combined:    32
Current hardware settings:
RX:        0
TX:        0
Other:        0
Combined:    32

ethtool -g lan2
Ring parameters for lan2:
Pre-set maximums:
RX:        8192
RX Mini:    0
RX Jumbo:    0
TX:        8192
Current hardware settings:
RX:        1024
RX Mini:    0
RX Jumbo:    0
TX:        1024

ethtool -x lan2
RX flow hash indirection table for lan2 with 32 RX ring(s):
    0:      0     1     2     3     4     5     6     7
    8:      8     9    10    11    12    13    14    15
   16:     16    17    18    19    20    21    22    23
   24:     24    25    26    27    28    29    30    31
   32:      0     1     2     3     4     5     6     7
   40:      8     9    10    11    12    13    14    15
   48:     16    17    18    19    20    21    22    23
   56:     24    25    26    27    28    29    30    31
   64:      0     1     2     3     4     5     6     7
   72:      8     9    10    11    12    13    14    15
   80:     16    17    18    19    20    21    22    23
   88:     24    25    26    27    28    29    30    31
   96:      0     1     2     3     4     5     6     7
  104:      8     9    10    11    12    13    14    15
  112:     16    17    18    19    20    21    22    23
  120:     24    25    26    27    28    29    30    31
RSS hash key:
12:e3:f3:8e:92:fa:db:eb:5b:29:e2:49:cd:39:39:9c:a4:ea:41:e8:c9:ee:66:7f:37:9b:ea:33:99:d9:45:3c:8a:db:bd:a1:bc:66:24:05
RSS hash function:
    toeplitz: on
    xor: off
    crc32: off

grep lan2 /proc/interrupts  
    http://ix.io/3viC  (note, need very wide window)

ifconfig bond_private
bond_private: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST>  mtu 9000
        inet 172.28.133.10  netmask 255.255.255.0  broadcast 172.28.133.255
        inet6 fe80::ae1f:6bff:fecf:20e0  prefixlen 64  scopeid 0x20<link>
        ether ac:1f:6b:cf:20:e0  txqueuelen 1000  (Ethernet)
        RX packets 54063955  bytes 326509018851 (304.0 GiB)
        RX errors 0  dropped 5  overruns 0  frame 0
        TX packets 34841728  bytes 299047275167 (278.5 GiB)
        TX errors 0  dropped 5 overruns 0  carrier 0  collisions 0


PS C:\> Get-SmbClientNetworkInterface

Interface Index RSS Capable RDMA Capable Speed   
IpAddresses                                 Friendly Name
--------------- ----------- ------------ -----   
-----------                                 -------------
14              True        False        100 Gbps {fe80::f0b7:6e80:9de4:df83,
172.28.133.101} Ethernet 4

Please let me know if there is any other information I can provide to help me
get this figured out.

    Chris


More information about the samba mailing list