Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Intel 810 NIC hashing issue #634

Open
theaxeman206 opened this issue Mar 10, 2023 · 4 comments
Open

Intel 810 NIC hashing issue #634

theaxeman206 opened this issue Mar 10, 2023 · 4 comments
Labels
Operational demand This issue would make Gatekeeper safer and/or cheaper to operate

Comments

@theaxeman206
Copy link

theaxeman206 commented Mar 10, 2023

I'm currently working on a proof of concept for a 100G capable Gatekeeper instance. It has a quartet of these Intel 810 based NICs installed. I've managed to work through a number of hangups, most notably with the ddp firmware, but seem to be getting stuck on this particular hashing related issue. See copypasta from the logs. Let me know if you need more info.

root@grantor01:/home/test/gatekeeper# cat ./gatekeeper_2023_03_09_18_23.log | grep "Main"
Main/0: cycles/second = 1995312622, cycles/millisecond = 1995312, picosec/cycle = 501
Main/0: init_kni: /lib/modules/5.4.0-42-generic/extra/dpdk/rte_kni.ko already inserted
Main/0: check_port_rss(front): port 0 (0000:17:00.0) only supports RSS hash functions 0x7ffc, but Gatekeeper asks for 0xa38c
Main/0: check_port_rss(back): port 2 (0000:4b:00.0) only supports RSS hash functions 0x7ffc, but Gatekeeper asks for 0xa38c
Main/0: lls: calculate_mempool_config_para: total_pkt_burst = 2144 packets, total_rx_desc = 640 descriptors, total_tx_desc = 256 descriptors, max_num_pkt = 3040 packets, num_mbuf = 4095 packets.
Main/0: gk: calculate_mempool_config_para: total_pkt_burst = 632 packets, total_rx_desc = 640 descriptors, total_tx_desc = 256 descriptors, max_num_pkt = 1528 packets, num_mbuf = 2047 packets.
Main/0: ggu: calculate_mempool_config_para: total_pkt_burst = 32 packets, total_rx_desc = 640 descriptors, total_tx_desc = 256 descriptors, max_num_pkt = 928 packets, num_mbuf = 1023 packets.
Main/0: cps: calculate_mempool_config_para: total_pkt_burst = 4256 packets, total_rx_desc = 640 descriptors, total_tx_desc = 256 descriptors, max_num_pkt = 5152 packets, num_mbuf = 8191 packets.
Main/0: check_port_rss_key_update(front): the RSS hash configuration obtained at port 0 does not match the expected RSS configuration
Main/0: start_iface(front): port 0 (0000:17:00.0) does not have the correct RSS hash key
Main/0: net: failed to start Gatekeeper network
@ShawnLeung87
Copy link

This must add 100g PMD driver to load rss. Currently, the project does not add the PMD driver of intel 810. Currently, the project supports PMD of intel 710x 40g.

@ShawnLeung87
Copy link

If you need to add, you can provide the hardware environment to the project manager, who can help add the PMD driver to load the rss of intel 810.

AltraMayor added a commit to cjdoucette/dpdk that referenced this issue Jul 10, 2023
The ICE driver returns only the first 40 bytes of its 52-byte RSS
hash key. This patch corrects this behavior.

Yuying Zhang <[email protected]> wrote the original patch, and
Michel Machado <[email protected]> back ported it to
Gatekeeper's custom DPDK.

This patch addresses one of the problems found with
the Intel 810 NIC. The following issue centralizes all the problems
related with this NIC:
AltraMayor/gatekeeper#634
@AltraMayor AltraMayor added the Operational demand This issue would make Gatekeeper safer and/or cheaper to operate label Jul 11, 2023
@AltraMayor
Copy link
Owner

An update on the Intel 810 NIC.

In order to make this NIC work with Gatekeeper/DPDK, one has to update the package file of the NIC. More information on this is available here. All tests we've done are with package v1.3.40.0, which is currently the latest version. The zip file of the package includes a Technology Guide PDF file with more information on the NIC. The latest version of this PDF is Revision 3.0, released in February 2023.

Due to a bug in DPDK's ICE driver, one must use the branch v1.2.0-dev of Gatekeeper. Gatekeeper v1.2-dev boots and works with IPv4, but not with IPv6 due to another bug still being investigated. One can either ignore IPv6, or disable it by removing the IPv6 addresses of variables front_ips and back_ips in lua/net.lua. Although IPv4 seems to work fine, more tests are needed to homologate the NIC with this setup.

Gatekeeper v1.2-dev works. However, it's under development, so one should not assume it is production ready.

@AltraMayor AltraMayor added this to the 100+ Gbps deployments milestone May 29, 2024
@andrenth
Copy link
Collaborator

andrenth commented Dec 6, 2024

I've managed to get a test deployment working with both IPv4 and IPv6 on Intel 810 NICs using the latest gatekeeper source and the stock NIC package file that comes with Ubuntu 24.04 (ice-1.3.36).

I had to uncompress the pkg file and create a new symbolic link because it seems DPDK can't load compressed firmware files:

# cd /lib/firmware/intel/ice/ddp
# unzstd ice-1.3.36.0.pkg.zst
# ln -s ice-1.3.36.0.pkg ice.pkg

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Operational demand This issue would make Gatekeeper safer and/or cheaper to operate
Projects
None yet
Development

No branches or pull requests

4 participants