> I think you should try a bit more, we are here to help.
I second Thomas's opinion. Mellanox CX5 is a well-tested NIC on DPDK,
and I think you can make it work in only a few more steps.
I've never tried rte_eth_dev_reset(), and now I suspect that ENOTSUPP
might have made the whole NIC functions stopped.
IIRC the ptype was working fine on CX5 in my app too.
Can you comment out the rte_eth_dev_reset() ?
(I think it's worth to try.)
I don't think it is so uphill, but I don't disagree with you about
purchasing another
Intel 40G NICs. It'll also work perfectly fine.
2024年11月15日(金) 4:16 Thomas Monjalon <thomas@monjalon.net>:
>
> 14/11/2024 17:10, CJ Sculti:
> > I figured out the initial issue. For some reason, having both devices in a
> > bond on the kernel results in only 1 of the two ports being exposed as
> > 'verb' devices. Previously, ibv_devinfo returned only one port. After
> > removing both from the bond, ibv_devinfo returns both ports, and the DPDK
> > application successfully takes both in. I'm still having some weird
> > behavior trying to create a bypass interface with these ports though. I'm
> > using the same code that I've been using on my Intel NICs with igb_uio for
> > years, but seeing weird behavior. The ports are connected to our 40Gbps
> > Ethernet switch, and set to link_layer: Ethernet.
>
> You should be able to make it work with kernel bonding,
> but I'm not sure what's wrong to do that.
> And it looks not a priority for you. Let's focus on the other parts.
>
>
> > The first thing I noticed is that rte_eth_dev_reset() fails on these
> > interfaces with "ENOTSUP: hardware doesn't support reset".
>
> You don't need the reset procedure with mlx5,
> so you can make this code optional.
>
>
> > Secondly, when checking ptypes, I noticed my code says these NICs are
> > unable to support any sort of packet detection capability (code below, all
> > return false). The MLX5 docs do say that all of these ptypes used here are
> > supported by MLX5.
>
> The supported ptypes can be checked in mlx5_dev_supported_ptypes_get() code.
> I don't understand why it does not work for you.
>
>
> > I'm just picking up a project that was left off by an older dev. It hasn't
> > been touched in years, but has been working fine with our Intel NICs. All
> > I'm trying to do is update DPDK (which is done, updated from dpdk 19.05 to
> > DPDK 22.11, latest version with KNI support),
>
> You don't need KNI with mlx5.
> That's a big benefit of mlx5 design, it is natively bifurcated:
> https://doc.dpdk.org/guides/howto/flow_bifurcation.html
>
>
> > and get it to work with our Mellanox CX5 NICs.
> > This is my first time working with DPDK and I'm not very
> > familiar. Should I expect to be able to do this without having to make a
> > ton of code changes, or is this going to be an uphill battle for me? If
> > it's the latter, I will likely just go purchase Intel NICs and give up on
> > this.
>
> The NICs have difference that DPDK is trying to hide.
> If something is not compatible you may consider it as a bug or a limitation.
> I think you should try a bit more, we are here to help.
>
>